Imported Upstream version 3.0.30 upstream/3.0.30
authorRyan Ware <ware@linux.intel.com>
Wed, 14 Aug 2013 00:13:28 +0000 (17:13 -0700)
committerRyan Ware <ware@linux.intel.com>
Wed, 14 Aug 2013 00:13:28 +0000 (17:13 -0700)
2347 files changed:
ChangeLog
GNUmakefile
Makefile.am
Makefile.in
NEWS
aclocal.m4
build-aux/compile
build-aux/config.rpath
build-aux/config.sub
build-aux/depcomp
build-aux/gendocs.sh
build-aux/ltmain.sh
build-aux/pmccabe2html
build-aux/snippet/arg-nonnull.h
build-aux/snippet/c++defs.h
build-aux/snippet/warn-on-use.h
build-aux/texinfo.tex
build-aux/useless-if-before-free
build-aux/vc-list-files
cfg.mk
config.h.in
configure
configure.ac
doc/Makefile.am
doc/Makefile.in
doc/abstract-api.texi
doc/algorithms.texi
doc/cha-gtls-app.texi
doc/cha-intro-tls.texi
doc/credentials/Makefile.in
doc/credentials/openpgp/Makefile.in
doc/credentials/srp/Makefile.in
doc/credentials/x509/Makefile.in
doc/cyclo/Makefile.in
doc/enums.texi
doc/enums/gnutls_certificate_status_t
doc/enums/gnutls_certificate_verify_flags
doc/enums/gnutls_pkcs11_obj_attr_t
doc/error_codes.texi
doc/examples/Makefile.in
doc/functions/gnutls_alert_get.short [new file with mode: 0644]
doc/functions/gnutls_alert_get_name.short [new file with mode: 0644]
doc/functions/gnutls_alert_get_strname.short [new file with mode: 0644]
doc/functions/gnutls_alert_send.short [new file with mode: 0644]
doc/functions/gnutls_alert_send_appropriate.short [new file with mode: 0644]
doc/functions/gnutls_anon_allocate_client_credentials.short [new file with mode: 0644]
doc/functions/gnutls_anon_allocate_server_credentials.short [new file with mode: 0644]
doc/functions/gnutls_anon_free_client_credentials.short [new file with mode: 0644]
doc/functions/gnutls_anon_free_server_credentials.short [new file with mode: 0644]
doc/functions/gnutls_anon_set_params_function.short [new file with mode: 0644]
doc/functions/gnutls_anon_set_server_dh_params.short [new file with mode: 0644]
doc/functions/gnutls_anon_set_server_params_function.short [new file with mode: 0644]
doc/functions/gnutls_auth_client_get_type.short [new file with mode: 0644]
doc/functions/gnutls_auth_get_type.short [new file with mode: 0644]
doc/functions/gnutls_auth_server_get_type.short [new file with mode: 0644]
doc/functions/gnutls_bye.short [new file with mode: 0644]
doc/functions/gnutls_certificate_activation_time_peers.short [new file with mode: 0644]
doc/functions/gnutls_certificate_allocate_credentials.short [new file with mode: 0644]
doc/functions/gnutls_certificate_client_get_request_status.short [new file with mode: 0644]
doc/functions/gnutls_certificate_expiration_time_peers.short [new file with mode: 0644]
doc/functions/gnutls_certificate_free_ca_names.short [new file with mode: 0644]
doc/functions/gnutls_certificate_free_cas.short [new file with mode: 0644]
doc/functions/gnutls_certificate_free_credentials.short [new file with mode: 0644]
doc/functions/gnutls_certificate_free_crls.short [new file with mode: 0644]
doc/functions/gnutls_certificate_free_keys.short [new file with mode: 0644]
doc/functions/gnutls_certificate_get_issuer.short [new file with mode: 0644]
doc/functions/gnutls_certificate_get_ours.short [new file with mode: 0644]
doc/functions/gnutls_certificate_get_peers.short [new file with mode: 0644]
doc/functions/gnutls_certificate_send_x509_rdn_sequence.short [new file with mode: 0644]
doc/functions/gnutls_certificate_server_set_request.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_dh_params.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_key.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_openpgp_key.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_openpgp_key_file.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_openpgp_key_file2.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_openpgp_key_mem.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_openpgp_key_mem2.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_openpgp_keyring_file.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_openpgp_keyring_mem.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_params_function.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_retrieve_function.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_retrieve_function2.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_rsa_export_params.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_verify_flags
doc/functions/gnutls_certificate_set_verify_flags.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_verify_function.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_verify_limits.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_crl.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_crl_file.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_crl_mem.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_key.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_key_file.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_key_mem.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_simple_pkcs12_file.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_simple_pkcs12_mem.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_system_trust.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_trust.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_trust_file.short [new file with mode: 0644]
doc/functions/gnutls_certificate_set_x509_trust_mem.short [new file with mode: 0644]
doc/functions/gnutls_certificate_type_get.short [new file with mode: 0644]
doc/functions/gnutls_certificate_type_get_id.short [new file with mode: 0644]
doc/functions/gnutls_certificate_type_get_name.short [new file with mode: 0644]
doc/functions/gnutls_certificate_type_list.short [new file with mode: 0644]
doc/functions/gnutls_certificate_type_set_priority.short [new file with mode: 0644]
doc/functions/gnutls_certificate_verify_peers2.short [new file with mode: 0644]
doc/functions/gnutls_check_version.short [new file with mode: 0644]
doc/functions/gnutls_cipher_add_auth.short [new file with mode: 0644]
doc/functions/gnutls_cipher_decrypt.short [new file with mode: 0644]
doc/functions/gnutls_cipher_decrypt2.short [new file with mode: 0644]
doc/functions/gnutls_cipher_deinit.short [new file with mode: 0644]
doc/functions/gnutls_cipher_encrypt.short [new file with mode: 0644]
doc/functions/gnutls_cipher_encrypt2.short [new file with mode: 0644]
doc/functions/gnutls_cipher_get.short [new file with mode: 0644]
doc/functions/gnutls_cipher_get_block_size.short [new file with mode: 0644]
doc/functions/gnutls_cipher_get_id.short [new file with mode: 0644]
doc/functions/gnutls_cipher_get_key_size.short [new file with mode: 0644]
doc/functions/gnutls_cipher_get_name.short [new file with mode: 0644]
doc/functions/gnutls_cipher_init.short [new file with mode: 0644]
doc/functions/gnutls_cipher_list.short [new file with mode: 0644]
doc/functions/gnutls_cipher_set_iv.short [new file with mode: 0644]
doc/functions/gnutls_cipher_set_priority.short [new file with mode: 0644]
doc/functions/gnutls_cipher_suite_get_name.short [new file with mode: 0644]
doc/functions/gnutls_cipher_suite_info.short [new file with mode: 0644]
doc/functions/gnutls_cipher_tag.short [new file with mode: 0644]
doc/functions/gnutls_compression_get.short [new file with mode: 0644]
doc/functions/gnutls_compression_get_id.short [new file with mode: 0644]
doc/functions/gnutls_compression_get_name.short [new file with mode: 0644]
doc/functions/gnutls_compression_list.short [new file with mode: 0644]
doc/functions/gnutls_compression_set_priority.short [new file with mode: 0644]
doc/functions/gnutls_credentials_clear.short [new file with mode: 0644]
doc/functions/gnutls_credentials_set.short [new file with mode: 0644]
doc/functions/gnutls_db_check_entry.short [new file with mode: 0644]
doc/functions/gnutls_db_get_ptr.short [new file with mode: 0644]
doc/functions/gnutls_db_remove_session.short [new file with mode: 0644]
doc/functions/gnutls_db_set_cache_expiration.short [new file with mode: 0644]
doc/functions/gnutls_db_set_ptr.short [new file with mode: 0644]
doc/functions/gnutls_db_set_remove_function.short [new file with mode: 0644]
doc/functions/gnutls_db_set_retrieve_function.short [new file with mode: 0644]
doc/functions/gnutls_db_set_store_function.short [new file with mode: 0644]
doc/functions/gnutls_deinit.short [new file with mode: 0644]
doc/functions/gnutls_dh_get_group.short [new file with mode: 0644]
doc/functions/gnutls_dh_get_peers_public_bits.short [new file with mode: 0644]
doc/functions/gnutls_dh_get_prime_bits.short [new file with mode: 0644]
doc/functions/gnutls_dh_get_pubkey.short [new file with mode: 0644]
doc/functions/gnutls_dh_get_secret_bits.short [new file with mode: 0644]
doc/functions/gnutls_dh_params_cpy.short [new file with mode: 0644]
doc/functions/gnutls_dh_params_deinit.short [new file with mode: 0644]
doc/functions/gnutls_dh_params_export_pkcs3.short [new file with mode: 0644]
doc/functions/gnutls_dh_params_export_raw.short [new file with mode: 0644]
doc/functions/gnutls_dh_params_generate2.short [new file with mode: 0644]
doc/functions/gnutls_dh_params_import_pkcs3.short [new file with mode: 0644]
doc/functions/gnutls_dh_params_import_raw.short [new file with mode: 0644]
doc/functions/gnutls_dh_params_init.short [new file with mode: 0644]
doc/functions/gnutls_dh_set_prime_bits.short [new file with mode: 0644]
doc/functions/gnutls_dtls_cookie_send.short [new file with mode: 0644]
doc/functions/gnutls_dtls_cookie_verify.short [new file with mode: 0644]
doc/functions/gnutls_dtls_get_data_mtu.short [new file with mode: 0644]
doc/functions/gnutls_dtls_get_mtu.short [new file with mode: 0644]
doc/functions/gnutls_dtls_get_timeout.short [new file with mode: 0644]
doc/functions/gnutls_dtls_prestate_set.short [new file with mode: 0644]
doc/functions/gnutls_dtls_set_data_mtu.short [new file with mode: 0644]
doc/functions/gnutls_dtls_set_mtu.short [new file with mode: 0644]
doc/functions/gnutls_dtls_set_timeouts.short [new file with mode: 0644]
doc/functions/gnutls_ecc_curve_get.short [new file with mode: 0644]
doc/functions/gnutls_ecc_curve_get_name.short [new file with mode: 0644]
doc/functions/gnutls_ecc_curve_get_size.short [new file with mode: 0644]
doc/functions/gnutls_ecc_curve_list.short [new file with mode: 0644]
doc/functions/gnutls_error_is_fatal.short [new file with mode: 0644]
doc/functions/gnutls_error_to_alert.short [new file with mode: 0644]
doc/functions/gnutls_fingerprint.short [new file with mode: 0644]
doc/functions/gnutls_global_deinit.short [new file with mode: 0644]
doc/functions/gnutls_global_init.short [new file with mode: 0644]
doc/functions/gnutls_global_set_audit_log_function.short [new file with mode: 0644]
doc/functions/gnutls_global_set_log_function.short [new file with mode: 0644]
doc/functions/gnutls_global_set_log_level.short [new file with mode: 0644]
doc/functions/gnutls_global_set_mem_functions.short [new file with mode: 0644]
doc/functions/gnutls_global_set_mutex.short [new file with mode: 0644]
doc/functions/gnutls_global_set_time_function.short [new file with mode: 0644]
doc/functions/gnutls_handshake.short [new file with mode: 0644]
doc/functions/gnutls_handshake_get_last_in.short [new file with mode: 0644]
doc/functions/gnutls_handshake_get_last_out.short [new file with mode: 0644]
doc/functions/gnutls_handshake_set_max_packet_length.short [new file with mode: 0644]
doc/functions/gnutls_handshake_set_post_client_hello_function.short [new file with mode: 0644]
doc/functions/gnutls_handshake_set_private_extensions.short [new file with mode: 0644]
doc/functions/gnutls_hash.short [new file with mode: 0644]
doc/functions/gnutls_hash_deinit.short [new file with mode: 0644]
doc/functions/gnutls_hash_fast.short [new file with mode: 0644]
doc/functions/gnutls_hash_get_len.short [new file with mode: 0644]
doc/functions/gnutls_hash_init.short [new file with mode: 0644]
doc/functions/gnutls_hash_output.short [new file with mode: 0644]
doc/functions/gnutls_hex2bin.short [new file with mode: 0644]
doc/functions/gnutls_hex_decode.short [new file with mode: 0644]
doc/functions/gnutls_hex_encode.short [new file with mode: 0644]
doc/functions/gnutls_hmac.short [new file with mode: 0644]
doc/functions/gnutls_hmac_deinit.short [new file with mode: 0644]
doc/functions/gnutls_hmac_fast.short [new file with mode: 0644]
doc/functions/gnutls_hmac_get_len.short [new file with mode: 0644]
doc/functions/gnutls_hmac_init.short [new file with mode: 0644]
doc/functions/gnutls_hmac_output.short [new file with mode: 0644]
doc/functions/gnutls_init
doc/functions/gnutls_init.short [new file with mode: 0644]
doc/functions/gnutls_key_generate.short [new file with mode: 0644]
doc/functions/gnutls_kx_get.short [new file with mode: 0644]
doc/functions/gnutls_kx_get_id.short [new file with mode: 0644]
doc/functions/gnutls_kx_get_name.short [new file with mode: 0644]
doc/functions/gnutls_kx_list.short [new file with mode: 0644]
doc/functions/gnutls_kx_set_priority.short [new file with mode: 0644]
doc/functions/gnutls_mac_get.short [new file with mode: 0644]
doc/functions/gnutls_mac_get_id.short [new file with mode: 0644]
doc/functions/gnutls_mac_get_key_size.short [new file with mode: 0644]
doc/functions/gnutls_mac_get_name.short [new file with mode: 0644]
doc/functions/gnutls_mac_list.short [new file with mode: 0644]
doc/functions/gnutls_mac_set_priority.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_add_cert.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_add_cert_id.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_deinit.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_export.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_get_cert_id.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_get_extension.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_get_nonce.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_get_version.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_import.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_init.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_print.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_randomize_nonce.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_set_extension.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_req_set_nonce.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_check_crt [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_check_crt.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_deinit.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_export.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_certs.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_extension.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_nonce.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_produced.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_responder.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_response.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_signature.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_signature_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_single
doc/functions/gnutls_ocsp_resp_get_single.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_status.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_get_version.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_import.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_init.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_print.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_verify.short [new file with mode: 0644]
doc/functions/gnutls_ocsp_resp_verify_direct.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_check_hostname.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_deinit.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_export
doc/functions/gnutls_openpgp_crt_export.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_auth_subkey
doc/functions/gnutls_openpgp_crt_get_auth_subkey.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_creation_time.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_expiration_time.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_fingerprint.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_key_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_key_usage.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_name.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_pk_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_pk_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_preferred_key_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_revoked_status.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_count.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_creation_time.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_expiration_time.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_fingerprint.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_idx.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_revoked_status.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_subkey_usage.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_get_version.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_import.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_init.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_print.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_set_preferred_key_id
doc/functions/gnutls_openpgp_crt_set_preferred_key_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_verify_ring.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_crt_verify_self.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_keyring_check_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_keyring_deinit.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_keyring_get_crt.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_keyring_get_crt_count.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_keyring_import.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_keyring_init.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_deinit.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_export.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_export_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_export_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_export_subkey_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_export_subkey_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_fingerprint.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_key_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_preferred_key_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_revoked_status.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_subkey_count.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_subkey_creation_time.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_subkey_fingerprint.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_subkey_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_subkey_idx.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_get_subkey_revoked_status.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_import.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_init.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_sec_param.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_set_preferred_key_id
doc/functions/gnutls_openpgp_privkey_set_preferred_key_id.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_privkey_sign_hash.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_send_cert.short [new file with mode: 0644]
doc/functions/gnutls_openpgp_set_recv_key_function
doc/functions/gnutls_openpgp_set_recv_key_function.short [new file with mode: 0644]
doc/functions/gnutls_pcert_deinit.short [new file with mode: 0644]
doc/functions/gnutls_pcert_import_openpgp.short [new file with mode: 0644]
doc/functions/gnutls_pcert_import_openpgp_raw.short [new file with mode: 0644]
doc/functions/gnutls_pcert_import_x509.short [new file with mode: 0644]
doc/functions/gnutls_pcert_import_x509_raw.short [new file with mode: 0644]
doc/functions/gnutls_pcert_list_import_x509_raw.short [new file with mode: 0644]
doc/functions/gnutls_pem_base64_decode.short [new file with mode: 0644]
doc/functions/gnutls_pem_base64_decode_alloc.short [new file with mode: 0644]
doc/functions/gnutls_pem_base64_encode.short [new file with mode: 0644]
doc/functions/gnutls_pem_base64_encode_alloc.short [new file with mode: 0644]
doc/functions/gnutls_perror.short [new file with mode: 0644]
doc/functions/gnutls_pk_algorithm_get_name.short [new file with mode: 0644]
doc/functions/gnutls_pk_bits_to_sec_param.short [new file with mode: 0644]
doc/functions/gnutls_pk_get_id.short [new file with mode: 0644]
doc/functions/gnutls_pk_get_name.short [new file with mode: 0644]
doc/functions/gnutls_pk_list.short [new file with mode: 0644]
doc/functions/gnutls_pk_to_sign.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_add_provider.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_copy_secret_key.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_copy_x509_crt.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_copy_x509_privkey.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_deinit.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_delete_url.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_init.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_obj_deinit.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_obj_export.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_obj_export_url.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_obj_get_info.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_obj_get_type.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_obj_import_url.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_obj_init.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_obj_list_import_url.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_privkey_deinit.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_privkey_export_url.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_privkey_generate.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_privkey_get_info.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_privkey_get_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_privkey_import_url.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_privkey_init.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_reinit.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_set_pin_function.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_set_token_function.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_token_get_flags.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_token_get_info.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_token_get_mechanism.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_token_get_url.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_token_init.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_token_set_pin.short [new file with mode: 0644]
doc/functions/gnutls_pkcs11_type_get_name.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_decrypt.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_deinit.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_encrypt.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_get_count.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_get_data.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_get_friendly_name.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_get_key_id.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_get_type.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_init.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_set_crl.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_set_crt.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_set_data.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_set_friendly_name.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_bag_set_key_id.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_deinit.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_export.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_generate_mac.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_get_bag.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_import.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_init.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_set_bag.short [new file with mode: 0644]
doc/functions/gnutls_pkcs12_verify_mac.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_deinit.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_delete_crl.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_delete_crt.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_export.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_get_crl_count.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_get_crl_raw.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_get_crt_count.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_get_crt_raw.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_import.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_init.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_set_crl.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_set_crl_raw.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_set_crt.short [new file with mode: 0644]
doc/functions/gnutls_pkcs7_set_crt_raw.short [new file with mode: 0644]
doc/functions/gnutls_prf.short [new file with mode: 0644]
doc/functions/gnutls_prf_raw.short [new file with mode: 0644]
doc/functions/gnutls_priority_certificate_type_list.short [new file with mode: 0644]
doc/functions/gnutls_priority_compression_list.short [new file with mode: 0644]
doc/functions/gnutls_priority_deinit.short [new file with mode: 0644]
doc/functions/gnutls_priority_ecc_curve_list.short [new file with mode: 0644]
doc/functions/gnutls_priority_get_cipher_suite_index.short [new file with mode: 0644]
doc/functions/gnutls_priority_init.short [new file with mode: 0644]
doc/functions/gnutls_priority_protocol_list.short [new file with mode: 0644]
doc/functions/gnutls_priority_set.short [new file with mode: 0644]
doc/functions/gnutls_priority_set_direct.short [new file with mode: 0644]
doc/functions/gnutls_priority_sign_list.short [new file with mode: 0644]
doc/functions/gnutls_privkey_decrypt_data.short [new file with mode: 0644]
doc/functions/gnutls_privkey_deinit.short [new file with mode: 0644]
doc/functions/gnutls_privkey_get_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_privkey_get_type.short [new file with mode: 0644]
doc/functions/gnutls_privkey_import_ext.short [new file with mode: 0644]
doc/functions/gnutls_privkey_import_openpgp.short [new file with mode: 0644]
doc/functions/gnutls_privkey_import_pkcs11.short [new file with mode: 0644]
doc/functions/gnutls_privkey_import_x509.short [new file with mode: 0644]
doc/functions/gnutls_privkey_init.short [new file with mode: 0644]
doc/functions/gnutls_privkey_sign_data.short [new file with mode: 0644]
doc/functions/gnutls_privkey_sign_hash.short [new file with mode: 0644]
doc/functions/gnutls_protocol_get_id.short [new file with mode: 0644]
doc/functions/gnutls_protocol_get_name.short [new file with mode: 0644]
doc/functions/gnutls_protocol_get_version.short [new file with mode: 0644]
doc/functions/gnutls_protocol_list.short [new file with mode: 0644]
doc/functions/gnutls_protocol_set_priority.short [new file with mode: 0644]
doc/functions/gnutls_psk_allocate_client_credentials.short [new file with mode: 0644]
doc/functions/gnutls_psk_allocate_server_credentials.short [new file with mode: 0644]
doc/functions/gnutls_psk_client_get_hint.short [new file with mode: 0644]
doc/functions/gnutls_psk_free_client_credentials.short [new file with mode: 0644]
doc/functions/gnutls_psk_free_server_credentials.short [new file with mode: 0644]
doc/functions/gnutls_psk_server_get_username.short [new file with mode: 0644]
doc/functions/gnutls_psk_set_client_credentials.short [new file with mode: 0644]
doc/functions/gnutls_psk_set_client_credentials_function.short [new file with mode: 0644]
doc/functions/gnutls_psk_set_params_function.short [new file with mode: 0644]
doc/functions/gnutls_psk_set_server_credentials_file.short [new file with mode: 0644]
doc/functions/gnutls_psk_set_server_credentials_function.short [new file with mode: 0644]
doc/functions/gnutls_psk_set_server_credentials_hint.short [new file with mode: 0644]
doc/functions/gnutls_psk_set_server_dh_params.short [new file with mode: 0644]
doc/functions/gnutls_psk_set_server_params_function.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_deinit.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_encrypt_data.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_export.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_key_id.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_key_usage.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_openpgp_key_id
doc/functions/gnutls_pubkey_get_openpgp_key_id.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_pk_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_pk_ecc_raw.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_pk_ecc_x962.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_pk_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_preferred_hash_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_get_verify_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_ecc_raw.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_ecc_x962.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_openpgp.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_pkcs11.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_pkcs11_url.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_privkey.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_import_x509.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_init.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_set_key_usage.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_verify_data.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_verify_data2.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_verify_hash
doc/functions/gnutls_pubkey_verify_hash.short [new file with mode: 0644]
doc/functions/gnutls_pubkey_verify_hash2.short [new file with mode: 0644]
doc/functions/gnutls_random_art.short [new file with mode: 0644]
doc/functions/gnutls_record_check_pending.short [new file with mode: 0644]
doc/functions/gnutls_record_disable_padding.short [new file with mode: 0644]
doc/functions/gnutls_record_get_direction.short [new file with mode: 0644]
doc/functions/gnutls_record_get_discarded.short [new file with mode: 0644]
doc/functions/gnutls_record_get_max_size.short [new file with mode: 0644]
doc/functions/gnutls_record_recv.short [new file with mode: 0644]
doc/functions/gnutls_record_recv_seq.short [new file with mode: 0644]
doc/functions/gnutls_record_send.short [new file with mode: 0644]
doc/functions/gnutls_record_set_max_size.short [new file with mode: 0644]
doc/functions/gnutls_rehandshake.short [new file with mode: 0644]
doc/functions/gnutls_rnd.short [new file with mode: 0644]
doc/functions/gnutls_rsa_export_get_modulus_bits.short [new file with mode: 0644]
doc/functions/gnutls_rsa_export_get_pubkey.short [new file with mode: 0644]
doc/functions/gnutls_rsa_params_cpy.short [new file with mode: 0644]
doc/functions/gnutls_rsa_params_deinit.short [new file with mode: 0644]
doc/functions/gnutls_rsa_params_export_pkcs1.short [new file with mode: 0644]
doc/functions/gnutls_rsa_params_export_raw.short [new file with mode: 0644]
doc/functions/gnutls_rsa_params_generate2.short [new file with mode: 0644]
doc/functions/gnutls_rsa_params_import_pkcs1.short [new file with mode: 0644]
doc/functions/gnutls_rsa_params_import_raw.short [new file with mode: 0644]
doc/functions/gnutls_rsa_params_init.short [new file with mode: 0644]
doc/functions/gnutls_safe_renegotiation_status.short [new file with mode: 0644]
doc/functions/gnutls_sec_param_get_name.short [new file with mode: 0644]
doc/functions/gnutls_sec_param_to_pk_bits.short [new file with mode: 0644]
doc/functions/gnutls_server_name_get.short [new file with mode: 0644]
doc/functions/gnutls_server_name_set.short [new file with mode: 0644]
doc/functions/gnutls_session_channel_binding.short [new file with mode: 0644]
doc/functions/gnutls_session_enable_compatibility_mode.short [new file with mode: 0644]
doc/functions/gnutls_session_get_data.short [new file with mode: 0644]
doc/functions/gnutls_session_get_data2.short [new file with mode: 0644]
doc/functions/gnutls_session_get_id.short [new file with mode: 0644]
doc/functions/gnutls_session_get_ptr.short [new file with mode: 0644]
doc/functions/gnutls_session_get_random.short [new file with mode: 0644]
doc/functions/gnutls_session_is_resumed.short [new file with mode: 0644]
doc/functions/gnutls_session_resumption_requested.short [new file with mode: 0644]
doc/functions/gnutls_session_set_data.short [new file with mode: 0644]
doc/functions/gnutls_session_set_premaster.short [new file with mode: 0644]
doc/functions/gnutls_session_set_ptr.short [new file with mode: 0644]
doc/functions/gnutls_session_ticket_enable_client.short [new file with mode: 0644]
doc/functions/gnutls_session_ticket_enable_server.short [new file with mode: 0644]
doc/functions/gnutls_session_ticket_key_generate.short [new file with mode: 0644]
doc/functions/gnutls_set_default_export_priority.short [new file with mode: 0644]
doc/functions/gnutls_set_default_priority.short [new file with mode: 0644]
doc/functions/gnutls_sign_algorithm_get_requested.short [new file with mode: 0644]
doc/functions/gnutls_sign_callback_get.short [new file with mode: 0644]
doc/functions/gnutls_sign_callback_set.short [new file with mode: 0644]
doc/functions/gnutls_sign_get_id.short [new file with mode: 0644]
doc/functions/gnutls_sign_get_name.short [new file with mode: 0644]
doc/functions/gnutls_sign_list.short [new file with mode: 0644]
doc/functions/gnutls_srp_allocate_client_credentials.short [new file with mode: 0644]
doc/functions/gnutls_srp_allocate_server_credentials.short [new file with mode: 0644]
doc/functions/gnutls_srp_base64_decode.short [new file with mode: 0644]
doc/functions/gnutls_srp_base64_decode_alloc.short [new file with mode: 0644]
doc/functions/gnutls_srp_base64_encode.short [new file with mode: 0644]
doc/functions/gnutls_srp_base64_encode_alloc.short [new file with mode: 0644]
doc/functions/gnutls_srp_free_client_credentials.short [new file with mode: 0644]
doc/functions/gnutls_srp_free_server_credentials.short [new file with mode: 0644]
doc/functions/gnutls_srp_server_get_username.short [new file with mode: 0644]
doc/functions/gnutls_srp_set_client_credentials.short [new file with mode: 0644]
doc/functions/gnutls_srp_set_client_credentials_function.short [new file with mode: 0644]
doc/functions/gnutls_srp_set_prime_bits.short [new file with mode: 0644]
doc/functions/gnutls_srp_set_server_credentials_file.short [new file with mode: 0644]
doc/functions/gnutls_srp_set_server_credentials_function.short [new file with mode: 0644]
doc/functions/gnutls_srp_verifier.short [new file with mode: 0644]
doc/functions/gnutls_store_commitment.short [new file with mode: 0644]
doc/functions/gnutls_store_pubkey.short [new file with mode: 0644]
doc/functions/gnutls_strerror.short [new file with mode: 0644]
doc/functions/gnutls_strerror_name.short [new file with mode: 0644]
doc/functions/gnutls_supplemental_get_name.short [new file with mode: 0644]
doc/functions/gnutls_tdb_deinit.short [new file with mode: 0644]
doc/functions/gnutls_tdb_init.short [new file with mode: 0644]
doc/functions/gnutls_tdb_set_store_commitment_func.short [new file with mode: 0644]
doc/functions/gnutls_tdb_set_store_func.short [new file with mode: 0644]
doc/functions/gnutls_tdb_set_verify_func.short [new file with mode: 0644]
doc/functions/gnutls_transport_get_ptr.short [new file with mode: 0644]
doc/functions/gnutls_transport_get_ptr2.short [new file with mode: 0644]
doc/functions/gnutls_transport_set_errno.short [new file with mode: 0644]
doc/functions/gnutls_transport_set_errno_function.short [new file with mode: 0644]
doc/functions/gnutls_transport_set_ptr.short [new file with mode: 0644]
doc/functions/gnutls_transport_set_ptr2.short [new file with mode: 0644]
doc/functions/gnutls_transport_set_pull_function.short [new file with mode: 0644]
doc/functions/gnutls_transport_set_pull_timeout_function.short [new file with mode: 0644]
doc/functions/gnutls_transport_set_push_function.short [new file with mode: 0644]
doc/functions/gnutls_transport_set_vec_push_function.short [new file with mode: 0644]
doc/functions/gnutls_verify_stored_pubkey.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_check_issuer.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_deinit.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_export.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_authority_key_gn_serial.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_authority_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_crt_count.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_crt_serial.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_dn_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_extension_data.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_extension_info.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_extension_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_issuer_dn.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_issuer_dn_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_next_update.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_number.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_raw_issuer_dn.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_signature.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_signature_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_this_update.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_get_version.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_import.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_init.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_list_import.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_list_import2.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_print.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_privkey_sign.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_set_authority_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_set_crt.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_set_crt_serial.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_set_next_update.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_set_number.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_set_this_update.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_set_version.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_sign.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_sign2.short [new file with mode: 0644]
doc/functions/gnutls_x509_crl_verify.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_deinit.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_export.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_attribute_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_attribute_data.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_attribute_info.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_basic_constraints.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_challenge_password.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_dn.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_dn_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_dn_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_extension_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_extension_data.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_extension_info.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_key_purpose_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_key_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_key_usage.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_private_key_usage_period.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_subject_alt_name.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_subject_alt_othername_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_get_version.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_import.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_init.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_print.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_privkey_sign.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_attribute_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_basic_constraints.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_challenge_password.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_dn_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_key.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_key_purpose_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_key_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_key_usage.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_private_key_usage_period.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_pubkey.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_subject_alt_name.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_set_version.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_sign.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_sign2.short [new file with mode: 0644]
doc/functions/gnutls_x509_crq_verify.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_check_hostname.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_check_issuer
doc/functions/gnutls_x509_crt_check_issuer.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_check_revocation.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_cpy_crl_dist_points.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_deinit.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_export.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_activation_time.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_authority_info_access.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_authority_key_gn_serial.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_authority_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_basic_constraints.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_ca_status.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_crl_dist_points.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_dn.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_dn_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_dn_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_expiration_time.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_extension_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_extension_data.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_extension_info.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_extension_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_fingerprint.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_issuer.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_issuer_alt_name.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_issuer_alt_name2.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_issuer_alt_othername_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_issuer_dn.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_issuer_dn_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_issuer_dn_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_issuer_unique_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_key_purpose_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_key_usage.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_pk_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_pk_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_preferred_hash_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_private_key_usage_period.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_proxy.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_raw_dn
doc/functions/gnutls_x509_crt_get_raw_dn.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_raw_issuer_dn
doc/functions/gnutls_x509_crt_get_raw_issuer_dn.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_serial.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_signature.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_signature_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_subject.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_subject_alt_name.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_subject_alt_name2.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_subject_alt_othername_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_subject_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_subject_unique_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_verify_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_get_version.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_import.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_import_pkcs11.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_import_pkcs11_url.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_init.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_list_import.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_list_import2
doc/functions/gnutls_x509_crt_list_import2.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_list_import_pkcs11.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_list_verify.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_print.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_privkey_sign.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_activation_time.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_authority_info_access.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_authority_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_basic_constraints.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_ca_status.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_crl_dist_points.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_crl_dist_points2.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_crq.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_crq_extensions.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_dn_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_expiration_time.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_extension_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_issuer_dn_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_key.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_key_purpose_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_key_usage.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_private_key_usage_period.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_proxy.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_proxy_dn.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_pubkey.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_serial.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_subject_alt_name.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_subject_alternative_name.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_subject_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_set_version.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_sign.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_sign2.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_verify.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_verify_data.short [new file with mode: 0644]
doc/functions/gnutls_x509_crt_verify_hash.short [new file with mode: 0644]
doc/functions/gnutls_x509_dn_deinit.short [new file with mode: 0644]
doc/functions/gnutls_x509_dn_export.short [new file with mode: 0644]
doc/functions/gnutls_x509_dn_get_rdn_ava.short [new file with mode: 0644]
doc/functions/gnutls_x509_dn_import.short [new file with mode: 0644]
doc/functions/gnutls_x509_dn_init.short [new file with mode: 0644]
doc/functions/gnutls_x509_dn_oid_known.short [new file with mode: 0644]
doc/functions/gnutls_x509_dn_oid_name.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_cpy.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_deinit.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_export.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_export_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_export_ecc_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_export_pkcs8.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_export_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_export_rsa_raw2.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_fix.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_generate.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_get_key_id.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_get_pk_algorithm.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_import
doc/functions/gnutls_x509_privkey_import.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_import_dsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_import_ecc_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_import_pkcs8.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_import_rsa_raw.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_import_rsa_raw2.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_init.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_sec_param.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_sign_data.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_sign_hash.short [new file with mode: 0644]
doc/functions/gnutls_x509_privkey_verify_params.short [new file with mode: 0644]
doc/functions/gnutls_x509_rdn_get.short [new file with mode: 0644]
doc/functions/gnutls_x509_rdn_get_by_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_rdn_get_oid.short [new file with mode: 0644]
doc/functions/gnutls_x509_trust_list_add_cas.short [new file with mode: 0644]
doc/functions/gnutls_x509_trust_list_add_crls.short [new file with mode: 0644]
doc/functions/gnutls_x509_trust_list_add_named_crt.short [new file with mode: 0644]
doc/functions/gnutls_x509_trust_list_deinit.short [new file with mode: 0644]
doc/functions/gnutls_x509_trust_list_get_issuer.short [new file with mode: 0644]
doc/functions/gnutls_x509_trust_list_init.short [new file with mode: 0644]
doc/functions/gnutls_x509_trust_list_verify_crt.short [new file with mode: 0644]
doc/functions/gnutls_x509_trust_list_verify_named_crt.short [new file with mode: 0644]
doc/gnutls-api.texi
doc/gnutls-guile.html
doc/gnutls-guile.info
doc/gnutls-guile.pdf
doc/gnutls.html
doc/gnutls.info
doc/gnutls.info-1 [new file with mode: 0644]
doc/gnutls.info-2 [new file with mode: 0644]
doc/gnutls.info-3
doc/gnutls.info-4
doc/gnutls.pdf
doc/gnutls.texi
doc/invoke-certtool.texi
doc/invoke-gnutls-cli-debug.texi
doc/invoke-gnutls-cli.texi
doc/invoke-gnutls-serv.texi
doc/invoke-ocsptool.texi
doc/invoke-p11tool.texi
doc/invoke-psktool.texi
doc/invoke-srptool.texi
doc/latex/Makefile.in
doc/manpages/Makefile.am
doc/manpages/Makefile.in
doc/manpages/certtool.1
doc/manpages/gnutls-cli-debug.1
doc/manpages/gnutls-cli.1
doc/manpages/gnutls-serv.1
doc/manpages/gnutls_alert_get.3
doc/manpages/gnutls_alert_get_name.3
doc/manpages/gnutls_alert_get_strname.3
doc/manpages/gnutls_alert_send.3
doc/manpages/gnutls_alert_send_appropriate.3
doc/manpages/gnutls_anon_allocate_client_credentials.3
doc/manpages/gnutls_anon_allocate_server_credentials.3
doc/manpages/gnutls_anon_free_client_credentials.3
doc/manpages/gnutls_anon_free_server_credentials.3
doc/manpages/gnutls_anon_set_params_function.3
doc/manpages/gnutls_anon_set_server_dh_params.3
doc/manpages/gnutls_anon_set_server_params_function.3
doc/manpages/gnutls_auth_client_get_type.3
doc/manpages/gnutls_auth_get_type.3
doc/manpages/gnutls_auth_server_get_type.3
doc/manpages/gnutls_bye.3
doc/manpages/gnutls_certificate_activation_time_peers.3
doc/manpages/gnutls_certificate_allocate_credentials.3
doc/manpages/gnutls_certificate_client_get_request_status.3
doc/manpages/gnutls_certificate_expiration_time_peers.3
doc/manpages/gnutls_certificate_free_ca_names.3
doc/manpages/gnutls_certificate_free_cas.3
doc/manpages/gnutls_certificate_free_credentials.3
doc/manpages/gnutls_certificate_free_crls.3
doc/manpages/gnutls_certificate_free_keys.3
doc/manpages/gnutls_certificate_get_issuer.3
doc/manpages/gnutls_certificate_get_ours.3
doc/manpages/gnutls_certificate_get_peers.3
doc/manpages/gnutls_certificate_send_x509_rdn_sequence.3
doc/manpages/gnutls_certificate_server_set_request.3
doc/manpages/gnutls_certificate_set_dh_params.3
doc/manpages/gnutls_certificate_set_key.3
doc/manpages/gnutls_certificate_set_openpgp_key.3
doc/manpages/gnutls_certificate_set_openpgp_key_file.3
doc/manpages/gnutls_certificate_set_openpgp_key_file2.3
doc/manpages/gnutls_certificate_set_openpgp_key_mem.3
doc/manpages/gnutls_certificate_set_openpgp_key_mem2.3
doc/manpages/gnutls_certificate_set_openpgp_keyring_file.3
doc/manpages/gnutls_certificate_set_openpgp_keyring_mem.3
doc/manpages/gnutls_certificate_set_params_function.3
doc/manpages/gnutls_certificate_set_retrieve_function.3
doc/manpages/gnutls_certificate_set_retrieve_function2.3
doc/manpages/gnutls_certificate_set_rsa_export_params.3
doc/manpages/gnutls_certificate_set_verify_flags.3
doc/manpages/gnutls_certificate_set_verify_function.3
doc/manpages/gnutls_certificate_set_verify_limits.3
doc/manpages/gnutls_certificate_set_x509_crl.3
doc/manpages/gnutls_certificate_set_x509_crl_file.3
doc/manpages/gnutls_certificate_set_x509_crl_mem.3
doc/manpages/gnutls_certificate_set_x509_key.3
doc/manpages/gnutls_certificate_set_x509_key_file.3
doc/manpages/gnutls_certificate_set_x509_key_mem.3
doc/manpages/gnutls_certificate_set_x509_simple_pkcs12_file.3
doc/manpages/gnutls_certificate_set_x509_simple_pkcs12_mem.3
doc/manpages/gnutls_certificate_set_x509_system_trust.3
doc/manpages/gnutls_certificate_set_x509_trust.3
doc/manpages/gnutls_certificate_set_x509_trust_file.3
doc/manpages/gnutls_certificate_set_x509_trust_mem.3
doc/manpages/gnutls_certificate_type_get.3
doc/manpages/gnutls_certificate_type_get_id.3
doc/manpages/gnutls_certificate_type_get_name.3
doc/manpages/gnutls_certificate_type_list.3
doc/manpages/gnutls_certificate_type_set_priority.3
doc/manpages/gnutls_certificate_verify_peers2.3
doc/manpages/gnutls_check_version.3
doc/manpages/gnutls_cipher_add_auth.3
doc/manpages/gnutls_cipher_decrypt.3
doc/manpages/gnutls_cipher_decrypt2.3
doc/manpages/gnutls_cipher_deinit.3
doc/manpages/gnutls_cipher_encrypt.3
doc/manpages/gnutls_cipher_encrypt2.3
doc/manpages/gnutls_cipher_get.3
doc/manpages/gnutls_cipher_get_block_size.3
doc/manpages/gnutls_cipher_get_id.3
doc/manpages/gnutls_cipher_get_key_size.3
doc/manpages/gnutls_cipher_get_name.3
doc/manpages/gnutls_cipher_init.3
doc/manpages/gnutls_cipher_list.3
doc/manpages/gnutls_cipher_set_iv.3
doc/manpages/gnutls_cipher_set_priority.3
doc/manpages/gnutls_cipher_suite_get_name.3
doc/manpages/gnutls_cipher_suite_info.3
doc/manpages/gnutls_cipher_tag.3
doc/manpages/gnutls_compression_get.3
doc/manpages/gnutls_compression_get_id.3
doc/manpages/gnutls_compression_get_name.3
doc/manpages/gnutls_compression_list.3
doc/manpages/gnutls_compression_set_priority.3
doc/manpages/gnutls_credentials_clear.3
doc/manpages/gnutls_credentials_set.3
doc/manpages/gnutls_db_check_entry.3
doc/manpages/gnutls_db_get_ptr.3
doc/manpages/gnutls_db_remove_session.3
doc/manpages/gnutls_db_set_cache_expiration.3
doc/manpages/gnutls_db_set_ptr.3
doc/manpages/gnutls_db_set_remove_function.3
doc/manpages/gnutls_db_set_retrieve_function.3
doc/manpages/gnutls_db_set_store_function.3
doc/manpages/gnutls_deinit.3
doc/manpages/gnutls_dh_get_group.3
doc/manpages/gnutls_dh_get_peers_public_bits.3
doc/manpages/gnutls_dh_get_prime_bits.3
doc/manpages/gnutls_dh_get_pubkey.3
doc/manpages/gnutls_dh_get_secret_bits.3
doc/manpages/gnutls_dh_params_cpy.3
doc/manpages/gnutls_dh_params_deinit.3
doc/manpages/gnutls_dh_params_export_pkcs3.3
doc/manpages/gnutls_dh_params_export_raw.3
doc/manpages/gnutls_dh_params_generate2.3
doc/manpages/gnutls_dh_params_import_pkcs3.3
doc/manpages/gnutls_dh_params_import_raw.3
doc/manpages/gnutls_dh_params_init.3
doc/manpages/gnutls_dh_set_prime_bits.3
doc/manpages/gnutls_dtls_cookie_send.3
doc/manpages/gnutls_dtls_cookie_verify.3
doc/manpages/gnutls_dtls_get_data_mtu.3
doc/manpages/gnutls_dtls_get_mtu.3
doc/manpages/gnutls_dtls_get_timeout.3
doc/manpages/gnutls_dtls_prestate_set.3
doc/manpages/gnutls_dtls_set_data_mtu.3 [new file with mode: 0644]
doc/manpages/gnutls_dtls_set_mtu.3
doc/manpages/gnutls_dtls_set_timeouts.3
doc/manpages/gnutls_ecc_curve_get.3
doc/manpages/gnutls_ecc_curve_get_name.3
doc/manpages/gnutls_ecc_curve_get_size.3
doc/manpages/gnutls_ecc_curve_list.3
doc/manpages/gnutls_error_is_fatal.3
doc/manpages/gnutls_error_to_alert.3
doc/manpages/gnutls_fingerprint.3
doc/manpages/gnutls_global_deinit.3
doc/manpages/gnutls_global_init.3
doc/manpages/gnutls_global_set_audit_log_function.3
doc/manpages/gnutls_global_set_log_function.3
doc/manpages/gnutls_global_set_log_level.3
doc/manpages/gnutls_global_set_mem_functions.3
doc/manpages/gnutls_global_set_mutex.3
doc/manpages/gnutls_global_set_time_function.3
doc/manpages/gnutls_handshake.3
doc/manpages/gnutls_handshake_get_last_in.3
doc/manpages/gnutls_handshake_get_last_out.3
doc/manpages/gnutls_handshake_set_max_packet_length.3
doc/manpages/gnutls_handshake_set_post_client_hello_function.3
doc/manpages/gnutls_handshake_set_private_extensions.3
doc/manpages/gnutls_hash.3
doc/manpages/gnutls_hash_deinit.3
doc/manpages/gnutls_hash_fast.3
doc/manpages/gnutls_hash_get_len.3
doc/manpages/gnutls_hash_init.3
doc/manpages/gnutls_hash_output.3
doc/manpages/gnutls_hex2bin.3
doc/manpages/gnutls_hex_decode.3
doc/manpages/gnutls_hex_encode.3
doc/manpages/gnutls_hmac.3
doc/manpages/gnutls_hmac_deinit.3
doc/manpages/gnutls_hmac_fast.3
doc/manpages/gnutls_hmac_get_len.3
doc/manpages/gnutls_hmac_init.3
doc/manpages/gnutls_hmac_output.3
doc/manpages/gnutls_init.3
doc/manpages/gnutls_key_generate.3
doc/manpages/gnutls_kx_get.3
doc/manpages/gnutls_kx_get_id.3
doc/manpages/gnutls_kx_get_name.3
doc/manpages/gnutls_kx_list.3
doc/manpages/gnutls_kx_set_priority.3
doc/manpages/gnutls_mac_get.3
doc/manpages/gnutls_mac_get_id.3
doc/manpages/gnutls_mac_get_key_size.3
doc/manpages/gnutls_mac_get_name.3
doc/manpages/gnutls_mac_list.3
doc/manpages/gnutls_mac_set_priority.3
doc/manpages/gnutls_ocsp_req_add_cert.3
doc/manpages/gnutls_ocsp_req_add_cert_id.3
doc/manpages/gnutls_ocsp_req_deinit.3
doc/manpages/gnutls_ocsp_req_export.3
doc/manpages/gnutls_ocsp_req_get_cert_id.3
doc/manpages/gnutls_ocsp_req_get_extension.3
doc/manpages/gnutls_ocsp_req_get_nonce.3
doc/manpages/gnutls_ocsp_req_get_version.3
doc/manpages/gnutls_ocsp_req_import.3
doc/manpages/gnutls_ocsp_req_init.3
doc/manpages/gnutls_ocsp_req_print.3
doc/manpages/gnutls_ocsp_req_randomize_nonce.3
doc/manpages/gnutls_ocsp_req_set_extension.3
doc/manpages/gnutls_ocsp_req_set_nonce.3
doc/manpages/gnutls_ocsp_resp_deinit.3
doc/manpages/gnutls_ocsp_resp_export.3
doc/manpages/gnutls_ocsp_resp_get_certs.3
doc/manpages/gnutls_ocsp_resp_get_extension.3
doc/manpages/gnutls_ocsp_resp_get_nonce.3
doc/manpages/gnutls_ocsp_resp_get_produced.3
doc/manpages/gnutls_ocsp_resp_get_responder.3
doc/manpages/gnutls_ocsp_resp_get_response.3
doc/manpages/gnutls_ocsp_resp_get_signature.3
doc/manpages/gnutls_ocsp_resp_get_signature_algorithm.3
doc/manpages/gnutls_ocsp_resp_get_single.3
doc/manpages/gnutls_ocsp_resp_get_status.3
doc/manpages/gnutls_ocsp_resp_get_version.3
doc/manpages/gnutls_ocsp_resp_import.3
doc/manpages/gnutls_ocsp_resp_init.3
doc/manpages/gnutls_ocsp_resp_print.3
doc/manpages/gnutls_ocsp_resp_verify.3
doc/manpages/gnutls_ocsp_resp_verify_direct.3
doc/manpages/gnutls_openpgp_crt_check_hostname.3
doc/manpages/gnutls_openpgp_crt_deinit.3
doc/manpages/gnutls_openpgp_crt_export.3
doc/manpages/gnutls_openpgp_crt_get_auth_subkey.3
doc/manpages/gnutls_openpgp_crt_get_creation_time.3
doc/manpages/gnutls_openpgp_crt_get_expiration_time.3
doc/manpages/gnutls_openpgp_crt_get_fingerprint.3
doc/manpages/gnutls_openpgp_crt_get_key_id.3
doc/manpages/gnutls_openpgp_crt_get_key_usage.3
doc/manpages/gnutls_openpgp_crt_get_name.3
doc/manpages/gnutls_openpgp_crt_get_pk_algorithm.3
doc/manpages/gnutls_openpgp_crt_get_pk_dsa_raw.3
doc/manpages/gnutls_openpgp_crt_get_pk_rsa_raw.3
doc/manpages/gnutls_openpgp_crt_get_preferred_key_id.3
doc/manpages/gnutls_openpgp_crt_get_revoked_status.3
doc/manpages/gnutls_openpgp_crt_get_subkey_count.3
doc/manpages/gnutls_openpgp_crt_get_subkey_creation_time.3
doc/manpages/gnutls_openpgp_crt_get_subkey_expiration_time.3
doc/manpages/gnutls_openpgp_crt_get_subkey_fingerprint.3
doc/manpages/gnutls_openpgp_crt_get_subkey_id.3
doc/manpages/gnutls_openpgp_crt_get_subkey_idx.3
doc/manpages/gnutls_openpgp_crt_get_subkey_pk_algorithm.3
doc/manpages/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.3
doc/manpages/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.3
doc/manpages/gnutls_openpgp_crt_get_subkey_revoked_status.3
doc/manpages/gnutls_openpgp_crt_get_subkey_usage.3
doc/manpages/gnutls_openpgp_crt_get_version.3
doc/manpages/gnutls_openpgp_crt_import.3
doc/manpages/gnutls_openpgp_crt_init.3
doc/manpages/gnutls_openpgp_crt_print.3
doc/manpages/gnutls_openpgp_crt_set_preferred_key_id.3
doc/manpages/gnutls_openpgp_crt_verify_ring.3
doc/manpages/gnutls_openpgp_crt_verify_self.3
doc/manpages/gnutls_openpgp_keyring_check_id.3
doc/manpages/gnutls_openpgp_keyring_deinit.3
doc/manpages/gnutls_openpgp_keyring_get_crt.3
doc/manpages/gnutls_openpgp_keyring_get_crt_count.3
doc/manpages/gnutls_openpgp_keyring_import.3
doc/manpages/gnutls_openpgp_keyring_init.3
doc/manpages/gnutls_openpgp_privkey_deinit.3
doc/manpages/gnutls_openpgp_privkey_export.3
doc/manpages/gnutls_openpgp_privkey_export_dsa_raw.3
doc/manpages/gnutls_openpgp_privkey_export_rsa_raw.3
doc/manpages/gnutls_openpgp_privkey_export_subkey_dsa_raw.3
doc/manpages/gnutls_openpgp_privkey_export_subkey_rsa_raw.3
doc/manpages/gnutls_openpgp_privkey_get_fingerprint.3
doc/manpages/gnutls_openpgp_privkey_get_key_id.3
doc/manpages/gnutls_openpgp_privkey_get_pk_algorithm.3
doc/manpages/gnutls_openpgp_privkey_get_preferred_key_id.3
doc/manpages/gnutls_openpgp_privkey_get_revoked_status.3
doc/manpages/gnutls_openpgp_privkey_get_subkey_count.3
doc/manpages/gnutls_openpgp_privkey_get_subkey_creation_time.3
doc/manpages/gnutls_openpgp_privkey_get_subkey_fingerprint.3
doc/manpages/gnutls_openpgp_privkey_get_subkey_id.3
doc/manpages/gnutls_openpgp_privkey_get_subkey_idx.3
doc/manpages/gnutls_openpgp_privkey_get_subkey_pk_algorithm.3
doc/manpages/gnutls_openpgp_privkey_get_subkey_revoked_status.3
doc/manpages/gnutls_openpgp_privkey_import.3
doc/manpages/gnutls_openpgp_privkey_init.3
doc/manpages/gnutls_openpgp_privkey_sec_param.3
doc/manpages/gnutls_openpgp_privkey_set_preferred_key_id.3
doc/manpages/gnutls_openpgp_privkey_sign_hash.3
doc/manpages/gnutls_openpgp_send_cert.3
doc/manpages/gnutls_openpgp_set_recv_key_function.3
doc/manpages/gnutls_pcert_deinit.3
doc/manpages/gnutls_pcert_import_openpgp.3
doc/manpages/gnutls_pcert_import_openpgp_raw.3
doc/manpages/gnutls_pcert_import_x509.3
doc/manpages/gnutls_pcert_import_x509_raw.3
doc/manpages/gnutls_pcert_list_import_x509_raw.3
doc/manpages/gnutls_pem_base64_decode.3
doc/manpages/gnutls_pem_base64_decode_alloc.3
doc/manpages/gnutls_pem_base64_encode.3
doc/manpages/gnutls_pem_base64_encode_alloc.3
doc/manpages/gnutls_perror.3
doc/manpages/gnutls_pk_algorithm_get_name.3
doc/manpages/gnutls_pk_bits_to_sec_param.3
doc/manpages/gnutls_pk_get_id.3
doc/manpages/gnutls_pk_get_name.3
doc/manpages/gnutls_pk_list.3
doc/manpages/gnutls_pk_to_sign.3
doc/manpages/gnutls_pkcs11_add_provider.3
doc/manpages/gnutls_pkcs11_copy_secret_key.3
doc/manpages/gnutls_pkcs11_copy_x509_crt.3
doc/manpages/gnutls_pkcs11_copy_x509_privkey.3
doc/manpages/gnutls_pkcs11_deinit.3
doc/manpages/gnutls_pkcs11_delete_url.3
doc/manpages/gnutls_pkcs11_init.3
doc/manpages/gnutls_pkcs11_obj_deinit.3
doc/manpages/gnutls_pkcs11_obj_export.3
doc/manpages/gnutls_pkcs11_obj_export_url.3
doc/manpages/gnutls_pkcs11_obj_get_info.3
doc/manpages/gnutls_pkcs11_obj_get_type.3
doc/manpages/gnutls_pkcs11_obj_import_url.3
doc/manpages/gnutls_pkcs11_obj_init.3
doc/manpages/gnutls_pkcs11_obj_list_import_url.3
doc/manpages/gnutls_pkcs11_privkey_deinit.3
doc/manpages/gnutls_pkcs11_privkey_export_url.3
doc/manpages/gnutls_pkcs11_privkey_generate.3
doc/manpages/gnutls_pkcs11_privkey_get_info.3
doc/manpages/gnutls_pkcs11_privkey_get_pk_algorithm.3
doc/manpages/gnutls_pkcs11_privkey_import_url.3
doc/manpages/gnutls_pkcs11_privkey_init.3
doc/manpages/gnutls_pkcs11_reinit.3
doc/manpages/gnutls_pkcs11_set_pin_function.3
doc/manpages/gnutls_pkcs11_set_token_function.3
doc/manpages/gnutls_pkcs11_token_get_flags.3
doc/manpages/gnutls_pkcs11_token_get_info.3
doc/manpages/gnutls_pkcs11_token_get_mechanism.3
doc/manpages/gnutls_pkcs11_token_get_url.3
doc/manpages/gnutls_pkcs11_token_init.3
doc/manpages/gnutls_pkcs11_token_set_pin.3
doc/manpages/gnutls_pkcs11_type_get_name.3
doc/manpages/gnutls_pkcs12_bag_decrypt.3
doc/manpages/gnutls_pkcs12_bag_deinit.3
doc/manpages/gnutls_pkcs12_bag_encrypt.3
doc/manpages/gnutls_pkcs12_bag_get_count.3
doc/manpages/gnutls_pkcs12_bag_get_data.3
doc/manpages/gnutls_pkcs12_bag_get_friendly_name.3
doc/manpages/gnutls_pkcs12_bag_get_key_id.3
doc/manpages/gnutls_pkcs12_bag_get_type.3
doc/manpages/gnutls_pkcs12_bag_init.3
doc/manpages/gnutls_pkcs12_bag_set_crl.3
doc/manpages/gnutls_pkcs12_bag_set_crt.3
doc/manpages/gnutls_pkcs12_bag_set_data.3
doc/manpages/gnutls_pkcs12_bag_set_friendly_name.3
doc/manpages/gnutls_pkcs12_bag_set_key_id.3
doc/manpages/gnutls_pkcs12_deinit.3
doc/manpages/gnutls_pkcs12_export.3
doc/manpages/gnutls_pkcs12_generate_mac.3
doc/manpages/gnutls_pkcs12_get_bag.3
doc/manpages/gnutls_pkcs12_import.3
doc/manpages/gnutls_pkcs12_init.3
doc/manpages/gnutls_pkcs12_set_bag.3
doc/manpages/gnutls_pkcs12_verify_mac.3
doc/manpages/gnutls_pkcs7_deinit.3
doc/manpages/gnutls_pkcs7_delete_crl.3
doc/manpages/gnutls_pkcs7_delete_crt.3
doc/manpages/gnutls_pkcs7_export.3
doc/manpages/gnutls_pkcs7_get_crl_count.3
doc/manpages/gnutls_pkcs7_get_crl_raw.3
doc/manpages/gnutls_pkcs7_get_crt_count.3
doc/manpages/gnutls_pkcs7_get_crt_raw.3
doc/manpages/gnutls_pkcs7_import.3
doc/manpages/gnutls_pkcs7_init.3
doc/manpages/gnutls_pkcs7_set_crl.3
doc/manpages/gnutls_pkcs7_set_crl_raw.3
doc/manpages/gnutls_pkcs7_set_crt.3
doc/manpages/gnutls_pkcs7_set_crt_raw.3
doc/manpages/gnutls_prf.3
doc/manpages/gnutls_prf_raw.3
doc/manpages/gnutls_priority_certificate_type_list.3
doc/manpages/gnutls_priority_compression_list.3
doc/manpages/gnutls_priority_deinit.3
doc/manpages/gnutls_priority_ecc_curve_list.3
doc/manpages/gnutls_priority_get_cipher_suite_index.3
doc/manpages/gnutls_priority_init.3
doc/manpages/gnutls_priority_protocol_list.3
doc/manpages/gnutls_priority_set.3
doc/manpages/gnutls_priority_set_direct.3
doc/manpages/gnutls_priority_sign_list.3
doc/manpages/gnutls_privkey_decrypt_data.3
doc/manpages/gnutls_privkey_deinit.3
doc/manpages/gnutls_privkey_get_pk_algorithm.3
doc/manpages/gnutls_privkey_get_type.3
doc/manpages/gnutls_privkey_import_ext.3
doc/manpages/gnutls_privkey_import_openpgp.3
doc/manpages/gnutls_privkey_import_pkcs11.3
doc/manpages/gnutls_privkey_import_x509.3
doc/manpages/gnutls_privkey_init.3
doc/manpages/gnutls_privkey_sign_data.3
doc/manpages/gnutls_privkey_sign_hash.3
doc/manpages/gnutls_protocol_get_id.3
doc/manpages/gnutls_protocol_get_name.3
doc/manpages/gnutls_protocol_get_version.3
doc/manpages/gnutls_protocol_list.3
doc/manpages/gnutls_protocol_set_priority.3
doc/manpages/gnutls_psk_allocate_client_credentials.3
doc/manpages/gnutls_psk_allocate_server_credentials.3
doc/manpages/gnutls_psk_client_get_hint.3
doc/manpages/gnutls_psk_free_client_credentials.3
doc/manpages/gnutls_psk_free_server_credentials.3
doc/manpages/gnutls_psk_server_get_username.3
doc/manpages/gnutls_psk_set_client_credentials.3
doc/manpages/gnutls_psk_set_client_credentials_function.3
doc/manpages/gnutls_psk_set_params_function.3
doc/manpages/gnutls_psk_set_server_credentials_file.3
doc/manpages/gnutls_psk_set_server_credentials_function.3
doc/manpages/gnutls_psk_set_server_credentials_hint.3
doc/manpages/gnutls_psk_set_server_dh_params.3
doc/manpages/gnutls_psk_set_server_params_function.3
doc/manpages/gnutls_pubkey_deinit.3
doc/manpages/gnutls_pubkey_encrypt_data.3
doc/manpages/gnutls_pubkey_export.3
doc/manpages/gnutls_pubkey_get_key_id.3
doc/manpages/gnutls_pubkey_get_key_usage.3
doc/manpages/gnutls_pubkey_get_openpgp_key_id.3
doc/manpages/gnutls_pubkey_get_pk_algorithm.3
doc/manpages/gnutls_pubkey_get_pk_dsa_raw.3
doc/manpages/gnutls_pubkey_get_pk_ecc_raw.3
doc/manpages/gnutls_pubkey_get_pk_ecc_x962.3
doc/manpages/gnutls_pubkey_get_pk_rsa_raw.3
doc/manpages/gnutls_pubkey_get_preferred_hash_algorithm.3
doc/manpages/gnutls_pubkey_get_verify_algorithm.3
doc/manpages/gnutls_pubkey_import.3
doc/manpages/gnutls_pubkey_import_dsa_raw.3
doc/manpages/gnutls_pubkey_import_ecc_raw.3
doc/manpages/gnutls_pubkey_import_ecc_x962.3
doc/manpages/gnutls_pubkey_import_openpgp.3
doc/manpages/gnutls_pubkey_import_pkcs11.3
doc/manpages/gnutls_pubkey_import_pkcs11_url.3
doc/manpages/gnutls_pubkey_import_privkey.3
doc/manpages/gnutls_pubkey_import_rsa_raw.3
doc/manpages/gnutls_pubkey_import_x509.3
doc/manpages/gnutls_pubkey_init.3
doc/manpages/gnutls_pubkey_set_key_usage.3
doc/manpages/gnutls_pubkey_verify_data.3
doc/manpages/gnutls_pubkey_verify_data2.3
doc/manpages/gnutls_pubkey_verify_hash.3
doc/manpages/gnutls_pubkey_verify_hash2.3
doc/manpages/gnutls_random_art.3
doc/manpages/gnutls_record_check_pending.3
doc/manpages/gnutls_record_disable_padding.3
doc/manpages/gnutls_record_get_direction.3
doc/manpages/gnutls_record_get_discarded.3
doc/manpages/gnutls_record_get_max_size.3
doc/manpages/gnutls_record_recv.3
doc/manpages/gnutls_record_recv_seq.3
doc/manpages/gnutls_record_send.3
doc/manpages/gnutls_record_set_max_size.3
doc/manpages/gnutls_rehandshake.3
doc/manpages/gnutls_rnd.3
doc/manpages/gnutls_rsa_export_get_modulus_bits.3
doc/manpages/gnutls_rsa_export_get_pubkey.3
doc/manpages/gnutls_rsa_params_cpy.3
doc/manpages/gnutls_rsa_params_deinit.3
doc/manpages/gnutls_rsa_params_export_pkcs1.3
doc/manpages/gnutls_rsa_params_export_raw.3
doc/manpages/gnutls_rsa_params_generate2.3
doc/manpages/gnutls_rsa_params_import_pkcs1.3
doc/manpages/gnutls_rsa_params_import_raw.3
doc/manpages/gnutls_rsa_params_init.3
doc/manpages/gnutls_safe_renegotiation_status.3
doc/manpages/gnutls_sec_param_get_name.3
doc/manpages/gnutls_sec_param_to_pk_bits.3
doc/manpages/gnutls_server_name_get.3
doc/manpages/gnutls_server_name_set.3
doc/manpages/gnutls_session_channel_binding.3
doc/manpages/gnutls_session_enable_compatibility_mode.3
doc/manpages/gnutls_session_get_data.3
doc/manpages/gnutls_session_get_data2.3
doc/manpages/gnutls_session_get_id.3
doc/manpages/gnutls_session_get_ptr.3
doc/manpages/gnutls_session_get_random.3
doc/manpages/gnutls_session_is_resumed.3
doc/manpages/gnutls_session_resumption_requested.3
doc/manpages/gnutls_session_set_data.3
doc/manpages/gnutls_session_set_premaster.3 [new file with mode: 0644]
doc/manpages/gnutls_session_set_ptr.3
doc/manpages/gnutls_session_ticket_enable_client.3
doc/manpages/gnutls_session_ticket_enable_server.3
doc/manpages/gnutls_session_ticket_key_generate.3
doc/manpages/gnutls_set_default_export_priority.3
doc/manpages/gnutls_set_default_priority.3
doc/manpages/gnutls_sign_algorithm_get_requested.3
doc/manpages/gnutls_sign_callback_get.3
doc/manpages/gnutls_sign_callback_set.3
doc/manpages/gnutls_sign_get_id.3
doc/manpages/gnutls_sign_get_name.3
doc/manpages/gnutls_sign_list.3
doc/manpages/gnutls_srp_allocate_client_credentials.3
doc/manpages/gnutls_srp_allocate_server_credentials.3
doc/manpages/gnutls_srp_base64_decode.3
doc/manpages/gnutls_srp_base64_decode_alloc.3
doc/manpages/gnutls_srp_base64_encode.3
doc/manpages/gnutls_srp_base64_encode_alloc.3
doc/manpages/gnutls_srp_free_client_credentials.3
doc/manpages/gnutls_srp_free_server_credentials.3
doc/manpages/gnutls_srp_server_get_username.3
doc/manpages/gnutls_srp_set_client_credentials.3
doc/manpages/gnutls_srp_set_client_credentials_function.3
doc/manpages/gnutls_srp_set_prime_bits.3
doc/manpages/gnutls_srp_set_server_credentials_file.3
doc/manpages/gnutls_srp_set_server_credentials_function.3
doc/manpages/gnutls_srp_verifier.3
doc/manpages/gnutls_store_commitment.3
doc/manpages/gnutls_store_pubkey.3
doc/manpages/gnutls_strerror.3
doc/manpages/gnutls_strerror_name.3
doc/manpages/gnutls_supplemental_get_name.3
doc/manpages/gnutls_tdb_deinit.3
doc/manpages/gnutls_tdb_init.3
doc/manpages/gnutls_tdb_set_store_commitment_func.3
doc/manpages/gnutls_tdb_set_store_func.3
doc/manpages/gnutls_tdb_set_verify_func.3
doc/manpages/gnutls_transport_get_ptr.3
doc/manpages/gnutls_transport_get_ptr2.3
doc/manpages/gnutls_transport_set_errno.3
doc/manpages/gnutls_transport_set_errno_function.3
doc/manpages/gnutls_transport_set_ptr.3
doc/manpages/gnutls_transport_set_ptr2.3
doc/manpages/gnutls_transport_set_pull_function.3
doc/manpages/gnutls_transport_set_pull_timeout_function.3
doc/manpages/gnutls_transport_set_push_function.3
doc/manpages/gnutls_transport_set_vec_push_function.3
doc/manpages/gnutls_verify_stored_pubkey.3
doc/manpages/gnutls_x509_crl_check_issuer.3
doc/manpages/gnutls_x509_crl_deinit.3
doc/manpages/gnutls_x509_crl_export.3
doc/manpages/gnutls_x509_crl_get_authority_key_gn_serial.3
doc/manpages/gnutls_x509_crl_get_authority_key_id.3
doc/manpages/gnutls_x509_crl_get_crt_count.3
doc/manpages/gnutls_x509_crl_get_crt_serial.3
doc/manpages/gnutls_x509_crl_get_dn_oid.3
doc/manpages/gnutls_x509_crl_get_extension_data.3
doc/manpages/gnutls_x509_crl_get_extension_info.3
doc/manpages/gnutls_x509_crl_get_extension_oid.3
doc/manpages/gnutls_x509_crl_get_issuer_dn.3
doc/manpages/gnutls_x509_crl_get_issuer_dn_by_oid.3
doc/manpages/gnutls_x509_crl_get_next_update.3
doc/manpages/gnutls_x509_crl_get_number.3
doc/manpages/gnutls_x509_crl_get_raw_issuer_dn.3
doc/manpages/gnutls_x509_crl_get_signature.3
doc/manpages/gnutls_x509_crl_get_signature_algorithm.3
doc/manpages/gnutls_x509_crl_get_this_update.3
doc/manpages/gnutls_x509_crl_get_version.3
doc/manpages/gnutls_x509_crl_import.3
doc/manpages/gnutls_x509_crl_init.3
doc/manpages/gnutls_x509_crl_list_import.3
doc/manpages/gnutls_x509_crl_list_import2.3
doc/manpages/gnutls_x509_crl_print.3
doc/manpages/gnutls_x509_crl_privkey_sign.3
doc/manpages/gnutls_x509_crl_set_authority_key_id.3
doc/manpages/gnutls_x509_crl_set_crt.3
doc/manpages/gnutls_x509_crl_set_crt_serial.3
doc/manpages/gnutls_x509_crl_set_next_update.3
doc/manpages/gnutls_x509_crl_set_number.3
doc/manpages/gnutls_x509_crl_set_this_update.3
doc/manpages/gnutls_x509_crl_set_version.3
doc/manpages/gnutls_x509_crl_sign.3
doc/manpages/gnutls_x509_crl_sign2.3
doc/manpages/gnutls_x509_crl_verify.3
doc/manpages/gnutls_x509_crq_deinit.3
doc/manpages/gnutls_x509_crq_export.3
doc/manpages/gnutls_x509_crq_get_attribute_by_oid.3
doc/manpages/gnutls_x509_crq_get_attribute_data.3
doc/manpages/gnutls_x509_crq_get_attribute_info.3
doc/manpages/gnutls_x509_crq_get_basic_constraints.3
doc/manpages/gnutls_x509_crq_get_challenge_password.3
doc/manpages/gnutls_x509_crq_get_dn.3
doc/manpages/gnutls_x509_crq_get_dn_by_oid.3
doc/manpages/gnutls_x509_crq_get_dn_oid.3
doc/manpages/gnutls_x509_crq_get_extension_by_oid.3
doc/manpages/gnutls_x509_crq_get_extension_data.3
doc/manpages/gnutls_x509_crq_get_extension_info.3
doc/manpages/gnutls_x509_crq_get_key_id.3
doc/manpages/gnutls_x509_crq_get_key_purpose_oid.3
doc/manpages/gnutls_x509_crq_get_key_rsa_raw.3
doc/manpages/gnutls_x509_crq_get_key_usage.3
doc/manpages/gnutls_x509_crq_get_pk_algorithm.3
doc/manpages/gnutls_x509_crq_get_private_key_usage_period.3
doc/manpages/gnutls_x509_crq_get_subject_alt_name.3
doc/manpages/gnutls_x509_crq_get_subject_alt_othername_oid.3
doc/manpages/gnutls_x509_crq_get_version.3
doc/manpages/gnutls_x509_crq_import.3
doc/manpages/gnutls_x509_crq_init.3
doc/manpages/gnutls_x509_crq_print.3
doc/manpages/gnutls_x509_crq_privkey_sign.3
doc/manpages/gnutls_x509_crq_set_attribute_by_oid.3
doc/manpages/gnutls_x509_crq_set_basic_constraints.3
doc/manpages/gnutls_x509_crq_set_challenge_password.3
doc/manpages/gnutls_x509_crq_set_dn_by_oid.3
doc/manpages/gnutls_x509_crq_set_key.3
doc/manpages/gnutls_x509_crq_set_key_purpose_oid.3
doc/manpages/gnutls_x509_crq_set_key_rsa_raw.3
doc/manpages/gnutls_x509_crq_set_key_usage.3
doc/manpages/gnutls_x509_crq_set_private_key_usage_period.3
doc/manpages/gnutls_x509_crq_set_pubkey.3
doc/manpages/gnutls_x509_crq_set_subject_alt_name.3
doc/manpages/gnutls_x509_crq_set_version.3
doc/manpages/gnutls_x509_crq_sign.3
doc/manpages/gnutls_x509_crq_sign2.3
doc/manpages/gnutls_x509_crq_verify.3
doc/manpages/gnutls_x509_crt_check_hostname.3
doc/manpages/gnutls_x509_crt_check_issuer.3
doc/manpages/gnutls_x509_crt_check_revocation.3
doc/manpages/gnutls_x509_crt_cpy_crl_dist_points.3
doc/manpages/gnutls_x509_crt_deinit.3
doc/manpages/gnutls_x509_crt_export.3
doc/manpages/gnutls_x509_crt_get_activation_time.3
doc/manpages/gnutls_x509_crt_get_authority_info_access.3
doc/manpages/gnutls_x509_crt_get_authority_key_gn_serial.3
doc/manpages/gnutls_x509_crt_get_authority_key_id.3
doc/manpages/gnutls_x509_crt_get_basic_constraints.3
doc/manpages/gnutls_x509_crt_get_ca_status.3
doc/manpages/gnutls_x509_crt_get_crl_dist_points.3
doc/manpages/gnutls_x509_crt_get_dn.3
doc/manpages/gnutls_x509_crt_get_dn_by_oid.3
doc/manpages/gnutls_x509_crt_get_dn_oid.3
doc/manpages/gnutls_x509_crt_get_expiration_time.3
doc/manpages/gnutls_x509_crt_get_extension_by_oid.3
doc/manpages/gnutls_x509_crt_get_extension_data.3
doc/manpages/gnutls_x509_crt_get_extension_info.3
doc/manpages/gnutls_x509_crt_get_extension_oid.3
doc/manpages/gnutls_x509_crt_get_fingerprint.3
doc/manpages/gnutls_x509_crt_get_issuer.3
doc/manpages/gnutls_x509_crt_get_issuer_alt_name.3
doc/manpages/gnutls_x509_crt_get_issuer_alt_name2.3
doc/manpages/gnutls_x509_crt_get_issuer_alt_othername_oid.3
doc/manpages/gnutls_x509_crt_get_issuer_dn.3
doc/manpages/gnutls_x509_crt_get_issuer_dn_by_oid.3
doc/manpages/gnutls_x509_crt_get_issuer_dn_oid.3
doc/manpages/gnutls_x509_crt_get_issuer_unique_id.3
doc/manpages/gnutls_x509_crt_get_key_id.3
doc/manpages/gnutls_x509_crt_get_key_purpose_oid.3
doc/manpages/gnutls_x509_crt_get_key_usage.3
doc/manpages/gnutls_x509_crt_get_pk_algorithm.3
doc/manpages/gnutls_x509_crt_get_pk_dsa_raw.3
doc/manpages/gnutls_x509_crt_get_pk_rsa_raw.3
doc/manpages/gnutls_x509_crt_get_preferred_hash_algorithm.3
doc/manpages/gnutls_x509_crt_get_private_key_usage_period.3
doc/manpages/gnutls_x509_crt_get_proxy.3
doc/manpages/gnutls_x509_crt_get_raw_dn.3
doc/manpages/gnutls_x509_crt_get_raw_issuer_dn.3
doc/manpages/gnutls_x509_crt_get_serial.3
doc/manpages/gnutls_x509_crt_get_signature.3
doc/manpages/gnutls_x509_crt_get_signature_algorithm.3
doc/manpages/gnutls_x509_crt_get_subject.3
doc/manpages/gnutls_x509_crt_get_subject_alt_name.3
doc/manpages/gnutls_x509_crt_get_subject_alt_name2.3
doc/manpages/gnutls_x509_crt_get_subject_alt_othername_oid.3
doc/manpages/gnutls_x509_crt_get_subject_key_id.3
doc/manpages/gnutls_x509_crt_get_subject_unique_id.3
doc/manpages/gnutls_x509_crt_get_verify_algorithm.3
doc/manpages/gnutls_x509_crt_get_version.3
doc/manpages/gnutls_x509_crt_import.3
doc/manpages/gnutls_x509_crt_import_pkcs11.3
doc/manpages/gnutls_x509_crt_import_pkcs11_url.3
doc/manpages/gnutls_x509_crt_init.3
doc/manpages/gnutls_x509_crt_list_import.3
doc/manpages/gnutls_x509_crt_list_import2.3
doc/manpages/gnutls_x509_crt_list_import_pkcs11.3
doc/manpages/gnutls_x509_crt_list_verify.3
doc/manpages/gnutls_x509_crt_print.3
doc/manpages/gnutls_x509_crt_privkey_sign.3
doc/manpages/gnutls_x509_crt_set_activation_time.3
doc/manpages/gnutls_x509_crt_set_authority_info_access.3
doc/manpages/gnutls_x509_crt_set_authority_key_id.3
doc/manpages/gnutls_x509_crt_set_basic_constraints.3
doc/manpages/gnutls_x509_crt_set_ca_status.3
doc/manpages/gnutls_x509_crt_set_crl_dist_points.3
doc/manpages/gnutls_x509_crt_set_crl_dist_points2.3
doc/manpages/gnutls_x509_crt_set_crq.3
doc/manpages/gnutls_x509_crt_set_crq_extensions.3
doc/manpages/gnutls_x509_crt_set_dn_by_oid.3
doc/manpages/gnutls_x509_crt_set_expiration_time.3
doc/manpages/gnutls_x509_crt_set_extension_by_oid.3
doc/manpages/gnutls_x509_crt_set_issuer_dn_by_oid.3
doc/manpages/gnutls_x509_crt_set_key.3
doc/manpages/gnutls_x509_crt_set_key_purpose_oid.3
doc/manpages/gnutls_x509_crt_set_key_usage.3
doc/manpages/gnutls_x509_crt_set_private_key_usage_period.3
doc/manpages/gnutls_x509_crt_set_proxy.3
doc/manpages/gnutls_x509_crt_set_proxy_dn.3
doc/manpages/gnutls_x509_crt_set_pubkey.3
doc/manpages/gnutls_x509_crt_set_serial.3
doc/manpages/gnutls_x509_crt_set_subject_alt_name.3
doc/manpages/gnutls_x509_crt_set_subject_alternative_name.3
doc/manpages/gnutls_x509_crt_set_subject_key_id.3
doc/manpages/gnutls_x509_crt_set_version.3
doc/manpages/gnutls_x509_crt_sign.3
doc/manpages/gnutls_x509_crt_sign2.3
doc/manpages/gnutls_x509_crt_verify.3
doc/manpages/gnutls_x509_crt_verify_data.3
doc/manpages/gnutls_x509_crt_verify_hash.3
doc/manpages/gnutls_x509_dn_deinit.3
doc/manpages/gnutls_x509_dn_export.3
doc/manpages/gnutls_x509_dn_get_rdn_ava.3
doc/manpages/gnutls_x509_dn_import.3
doc/manpages/gnutls_x509_dn_init.3
doc/manpages/gnutls_x509_dn_oid_known.3
doc/manpages/gnutls_x509_dn_oid_name.3
doc/manpages/gnutls_x509_privkey_cpy.3
doc/manpages/gnutls_x509_privkey_deinit.3
doc/manpages/gnutls_x509_privkey_export.3
doc/manpages/gnutls_x509_privkey_export_dsa_raw.3
doc/manpages/gnutls_x509_privkey_export_ecc_raw.3
doc/manpages/gnutls_x509_privkey_export_pkcs8.3
doc/manpages/gnutls_x509_privkey_export_rsa_raw.3
doc/manpages/gnutls_x509_privkey_export_rsa_raw2.3
doc/manpages/gnutls_x509_privkey_fix.3
doc/manpages/gnutls_x509_privkey_generate.3
doc/manpages/gnutls_x509_privkey_get_key_id.3
doc/manpages/gnutls_x509_privkey_get_pk_algorithm.3
doc/manpages/gnutls_x509_privkey_import.3
doc/manpages/gnutls_x509_privkey_import_dsa_raw.3
doc/manpages/gnutls_x509_privkey_import_ecc_raw.3
doc/manpages/gnutls_x509_privkey_import_pkcs8.3
doc/manpages/gnutls_x509_privkey_import_rsa_raw.3
doc/manpages/gnutls_x509_privkey_import_rsa_raw2.3
doc/manpages/gnutls_x509_privkey_init.3
doc/manpages/gnutls_x509_privkey_sec_param.3
doc/manpages/gnutls_x509_privkey_sign_data.3
doc/manpages/gnutls_x509_privkey_sign_hash.3
doc/manpages/gnutls_x509_privkey_verify_params.3
doc/manpages/gnutls_x509_rdn_get.3
doc/manpages/gnutls_x509_rdn_get_by_oid.3
doc/manpages/gnutls_x509_rdn_get_oid.3
doc/manpages/gnutls_x509_trust_list_add_cas.3
doc/manpages/gnutls_x509_trust_list_add_crls.3
doc/manpages/gnutls_x509_trust_list_add_named_crt.3
doc/manpages/gnutls_x509_trust_list_deinit.3
doc/manpages/gnutls_x509_trust_list_get_issuer.3
doc/manpages/gnutls_x509_trust_list_init.3
doc/manpages/gnutls_x509_trust_list_verify_crt.3
doc/manpages/gnutls_x509_trust_list_verify_named_crt.3
doc/manpages/ocsptool.1
doc/manpages/p11tool.1
doc/manpages/psktool.1
doc/manpages/srptool.1
doc/ocsp-api.texi
doc/pgp-api.texi
doc/pkcs11-api.texi
doc/reference/Makefile.in
doc/reference/html/api-index-2-10-0.html [new file with mode: 0644]
doc/reference/html/api-index-2-12-0.html [new file with mode: 0644]
doc/reference/html/api-index-2-4-0.html [new file with mode: 0644]
doc/reference/html/api-index-2-6-0.html [new file with mode: 0644]
doc/reference/html/api-index-2-8-0.html [new file with mode: 0644]
doc/reference/html/api-index-3-0.html [new file with mode: 0644]
doc/reference/html/api-index-deprecated.html [new file with mode: 0644]
doc/reference/html/api-index-full.html [new file with mode: 0644]
doc/reference/html/gnutls-abstract.html
doc/reference/html/gnutls-crypto.html [new file with mode: 0644]
doc/reference/html/gnutls-gnutls.html
doc/reference/html/gnutls-openpgp.html [new file with mode: 0644]
doc/reference/html/gnutls-pkcs11.html [new file with mode: 0644]
doc/reference/html/gnutls-pkcs12.html [new file with mode: 0644]
doc/reference/html/gnutls-x509.html [new file with mode: 0644]
doc/reference/html/gnutls.devhelp2 [new file with mode: 0644]
doc/reference/html/home.png [new file with mode: 0644]
doc/reference/html/index.html [new file with mode: 0644]
doc/reference/html/index.sgml [new file with mode: 0644]
doc/reference/html/intro.html [new file with mode: 0644]
doc/reference/html/left.png [new file with mode: 0644]
doc/reference/html/right.png [new file with mode: 0644]
doc/reference/html/style.css [new file with mode: 0644]
doc/reference/html/up.png [new file with mode: 0644]
doc/reference/tmpl/gnutls.sgml
doc/reference/tmpl/pkcs11.sgml
doc/reference/tmpl/x509.sgml
doc/scripts/Makefile.in
doc/scripts/cleanup-autogen.pl
doc/scripts/gdoc
doc/scripts/getfuncs.pl
doc/stamp-1
doc/stamp-vti
doc/version-guile.texi
doc/version.texi
doc/x509-api.texi
extra/Makefile.in
extra/includes/Makefile.in
gl/Makefile.am
gl/Makefile.in
gl/accept.c
gl/alloca.in.h
gl/alphasort.c
gl/argp-ba.c
gl/argp-eexst.c
gl/argp-fmtstream.c
gl/argp-fmtstream.h
gl/argp-fs-xinl.c
gl/argp-help.c
gl/argp-namefrob.h
gl/argp-parse.c
gl/argp-pin.c
gl/argp-pv.c
gl/argp-pvh.c
gl/argp-xinl.c
gl/argp.h
gl/arpa_inet.in.h
gl/asnprintf.c
gl/asprintf.c
gl/base64.c
gl/base64.h
gl/basename-lgpl.c
gl/bind.c
gl/byteswap.in.h
gl/c-ctype.c
gl/c-ctype.h
gl/close.c
gl/closedir.c
gl/connect.c
gl/dirent-private.h
gl/dirent.in.h
gl/dirname-lgpl.c
gl/dirname.h
gl/dosname.h
gl/dup2.c [moved from gl/tests/dup2.c with 95% similarity]
gl/errno.in.h
gl/error.c
gl/error.h
gl/fd-hook.c
gl/fd-hook.h
gl/filename.h
gl/float+.h
gl/float.c
gl/float.in.h
gl/fpucw.h
gl/frexp.c
gl/frexpl.c
gl/fseek.c
gl/fseeko.c
gl/fseterr.c
gl/fseterr.h
gl/fstat.c
gl/ftell.c
gl/ftello.c
gl/gai_strerror.c
gl/getaddrinfo.c
gl/getdelim.c
gl/getline.c
gl/getopt.c
gl/getopt.in.h
gl/getopt1.c
gl/getopt_int.h
gl/getpass.c
gl/getpass.h
gl/getpeername.c
gl/getsubopt.c
gl/gettext.h
gl/gettime.c
gl/gettimeofday.c
gl/glthread/threadlib.c
gl/hash-pjw-bare.c [new file with mode: 0644]
gl/hash-pjw-bare.h [new file with mode: 0644]
gl/inet_ntop.c
gl/inet_pton.c
gl/intprops.h
gl/isnan.c
gl/isnand-nolibm.h
gl/isnand.c
gl/isnanf-nolibm.h
gl/isnanf.c
gl/isnanl-nolibm.h
gl/isnanl.c
gl/itold.c
gl/listen.c
gl/lseek.c
gl/m4/00gnulib.m4
gl/m4/alloca.m4
gl/m4/alphasort.m4
gl/m4/argp.m4
gl/m4/arpa_inet_h.m4
gl/m4/base64.m4
gl/m4/byteswap.m4
gl/m4/clock_time.m4
gl/m4/close.m4
gl/m4/closedir.m4
gl/m4/dirent_h.m4
gl/m4/dirname.m4
gl/m4/double-slash-root.m4
gl/m4/dup2.m4
gl/m4/eealloc.m4
gl/m4/environ.m4
gl/m4/errno_h.m4
gl/m4/error.m4
gl/m4/exponentd.m4
gl/m4/exponentf.m4
gl/m4/exponentl.m4
gl/m4/extensions.m4
gl/m4/extern-inline.m4 [new file with mode: 0644]
gl/m4/fcntl_h.m4
gl/m4/fdopen.m4
gl/m4/float_h.m4
gl/m4/fpieee.m4
gl/m4/frexp.m4
gl/m4/frexpl.m4
gl/m4/fseek.m4
gl/m4/fseeko.m4
gl/m4/fseterr.m4 [new file with mode: 0644]
gl/m4/fstat.m4
gl/m4/ftell.m4
gl/m4/ftello.m4
gl/m4/ftruncate.m4
gl/m4/func.m4
gl/m4/getaddrinfo.m4
gl/m4/getcwd.m4
gl/m4/getdelim.m4
gl/m4/getdtablesize.m4 [new file with mode: 0644]
gl/m4/getline.m4
gl/m4/getopt.m4
gl/m4/getpagesize.m4
gl/m4/getpass.m4
gl/m4/getsubopt.m4
gl/m4/gettime.m4
gl/m4/gettimeofday.m4
gl/m4/gnulib-cache.m4
gl/m4/gnulib-common.m4
gl/m4/gnulib-comp.m4
gl/m4/hostent.m4
gl/m4/include_next.m4
gl/m4/inet_ntop.m4
gl/m4/inet_pton.m4
gl/m4/intmax_t.m4
gl/m4/inttypes.m4
gl/m4/ioctl.m4
gl/m4/isnand.m4
gl/m4/isnanf.m4
gl/m4/isnanl.m4
gl/m4/largefile.m4
gl/m4/ld-output-def.m4
gl/m4/ld-version-script.m4
gl/m4/ldexpl.m4
gl/m4/lseek.m4
gl/m4/lstat.m4
gl/m4/malloc.m4
gl/m4/malloca.m4
gl/m4/manywarnings.m4
gl/m4/math_h.m4
gl/m4/memchr.m4
gl/m4/memmem.m4
gl/m4/mempcpy.m4
gl/m4/minmax.m4
gl/m4/mmap-anon.m4
gl/m4/mode_t.m4
gl/m4/msvc-inval.m4
gl/m4/msvc-nothrow.m4
gl/m4/multiarch.m4
gl/m4/netdb_h.m4
gl/m4/netinet_in_h.m4
gl/m4/nocrash.m4
gl/m4/off_t.m4
gl/m4/open.m4
gl/m4/opendir.m4
gl/m4/pathmax.m4
gl/m4/perror.m4
gl/m4/pipe.m4
gl/m4/printf-frexp.m4
gl/m4/printf-frexpl.m4
gl/m4/printf.m4
gl/m4/putenv.m4
gl/m4/rawmemchr.m4
gl/m4/read-file.m4
gl/m4/readdir.m4
gl/m4/realloc.m4
gl/m4/scandir.m4
gl/m4/select.m4
gl/m4/servent.m4
gl/m4/setenv.m4
gl/m4/signal_h.m4
gl/m4/signbit.m4
gl/m4/sleep.m4
gl/m4/snprintf.m4
gl/m4/socketlib.m4
gl/m4/sockets.m4
gl/m4/socklen.m4
gl/m4/sockpfaf.m4
gl/m4/ssize_t.m4
gl/m4/stat.m4
gl/m4/stdalign.m4
gl/m4/stdarg.m4
gl/m4/stdbool.m4
gl/m4/stddef_h.m4
gl/m4/stdint.m4
gl/m4/stdio_h.m4
gl/m4/stdlib_h.m4
gl/m4/strcase.m4
gl/m4/strchrnul.m4
gl/m4/strdup.m4
gl/m4/strerror.m4
gl/m4/strerror_r.m4
gl/m4/string_h.m4
gl/m4/strings_h.m4
gl/m4/strndup.m4
gl/m4/strnlen.m4
gl/m4/strtok_r.m4
gl/m4/strverscmp.m4
gl/m4/symlink.m4
gl/m4/sys_ioctl_h.m4
gl/m4/sys_select_h.m4
gl/m4/sys_socket_h.m4
gl/m4/sys_stat_h.m4
gl/m4/sys_time_h.m4
gl/m4/sys_types_h.m4
gl/m4/sys_uio_h.m4
gl/m4/sysexits.m4
gl/m4/time_h.m4
gl/m4/time_r.m4
gl/m4/timer_time.m4
gl/m4/timespec.m4
gl/m4/ungetc.m4
gl/m4/unistd_h.m4
gl/m4/valgrind-tests.m4
gl/m4/vasnprintf.m4
gl/m4/vasprintf.m4
gl/m4/version-etc.m4
gl/m4/vfprintf-posix.m4
gl/m4/vprintf-posix.m4
gl/m4/vsnprintf.m4
gl/m4/warn-on-use.m4
gl/m4/warnings.m4
gl/m4/wchar_h.m4
gl/malloc.c
gl/math.c [new file with mode: 0644]
gl/math.in.h
gl/memchr.c
gl/memmem.c
gl/mempcpy.c
gl/minmax.h
gl/msvc-inval.c
gl/msvc-inval.h
gl/msvc-nothrow.c
gl/msvc-nothrow.h
gl/netdb.in.h
gl/netinet_in.in.h
gl/opendir.c
gl/printf-args.c
gl/printf-args.h
gl/printf-frexp.c
gl/printf-frexp.h
gl/printf-frexpl.c
gl/printf-frexpl.h
gl/printf-parse.c
gl/printf-parse.h
gl/progname.c
gl/progname.h
gl/rawmemchr.c
gl/read-file.c
gl/read-file.h
gl/readdir.c
gl/realloc.c
gl/recv.c
gl/recvfrom.c
gl/scandir.c
gl/select.c
gl/send.c
gl/sendto.c
gl/setsockopt.c
gl/shutdown.c
gl/signal.in.h
gl/signbitd.c
gl/signbitf.c
gl/signbitl.c
gl/size_max.h
gl/sleep.c
gl/snprintf.c
gl/socket.c
gl/sockets.c
gl/sockets.h
gl/stdalign.in.h
gl/stdarg.in.h
gl/stdbool.in.h
gl/stddef.in.h
gl/stdint.in.h
gl/stdio-impl.h
gl/stdio.in.h
gl/stdlib.in.h
gl/str-two-way.h
gl/strcasecmp.c
gl/strchrnul.c
gl/strdup.c
gl/strerror-override.c
gl/strerror-override.h
gl/strerror.c
gl/string.in.h
gl/strings.in.h
gl/stripslash.c
gl/strncasecmp.c
gl/strndup.c
gl/strnlen.c
gl/strtok_r.c
gl/strverscmp.c
gl/sys_select.in.h
gl/sys_socket.c [new file with mode: 0644]
gl/sys_socket.in.h
gl/sys_stat.in.h
gl/sys_time.in.h
gl/sys_types.in.h
gl/sys_uio.in.h
gl/sysexits.in.h
gl/tests/Makefile.am
gl/tests/Makefile.in
gl/tests/binary-io.c [new file with mode: 0644]
gl/tests/binary-io.h
gl/tests/fcntl.in.h
gl/tests/fdopen.c
gl/tests/ftruncate.c
gl/tests/getcwd-lgpl.c
gl/tests/getdtablesize.c [new file with mode: 0644]
gl/tests/getpagesize.c
gl/tests/glthread/lock.c
gl/tests/glthread/lock.h
gl/tests/ignore-value.h
gl/tests/infinity.h
gl/tests/init.sh
gl/tests/inttypes.in.h
gl/tests/ioctl.c
gl/tests/lstat.c
gl/tests/macros.h
gl/tests/malloca.c
gl/tests/malloca.h
gl/tests/minus-zero.h
gl/tests/nan.h
gl/tests/open.c
gl/tests/pathmax.h
gl/tests/perror.c
gl/tests/pipe.c
gl/tests/putenv.c
gl/tests/randomd.c
gl/tests/randoml.c
gl/tests/same-inode.h
gl/tests/setenv.c
gl/tests/signature.h
gl/tests/stat.c
gl/tests/strerror_r.c
gl/tests/symlink.c
gl/tests/sys_ioctl.in.h
gl/tests/test-accept.c
gl/tests/test-alloca-opt.c
gl/tests/test-argp-2.sh
gl/tests/test-argp.c
gl/tests/test-arpa_inet.c
gl/tests/test-base64.c
gl/tests/test-binary-io.c
gl/tests/test-bind.c
gl/tests/test-byteswap.c
gl/tests/test-c-ctype.c
gl/tests/test-close.c
gl/tests/test-connect.c
gl/tests/test-dirent.c
gl/tests/test-dup2.c
gl/tests/test-environ.c
gl/tests/test-errno.c
gl/tests/test-fcntl-h.c
gl/tests/test-fdopen.c
gl/tests/test-fgetc.c
gl/tests/test-float.c
gl/tests/test-fprintf-posix.h
gl/tests/test-fputc.c
gl/tests/test-fread.c
gl/tests/test-frexp.c
gl/tests/test-frexp.h
gl/tests/test-frexpl.c
gl/tests/test-fseek.c
gl/tests/test-fseeko.c
gl/tests/test-fseeko3.c
gl/tests/test-fseeko4.c
gl/tests/test-fseterr.c
gl/tests/test-fstat.c
gl/tests/test-ftell.c
gl/tests/test-ftell3.c
gl/tests/test-ftello.c
gl/tests/test-ftello3.c
gl/tests/test-ftello4.c
gl/tests/test-ftruncate.c
gl/tests/test-func.c
gl/tests/test-fwrite.c
gl/tests/test-getaddrinfo.c
gl/tests/test-getcwd-lgpl.c
gl/tests/test-getdelim.c
gl/tests/test-getdtablesize.c [new file with mode: 0644]
gl/tests/test-getline.c
gl/tests/test-getopt.c
gl/tests/test-getopt.h
gl/tests/test-getopt_long.h
gl/tests/test-getpeername.c
gl/tests/test-gettimeofday.c
gl/tests/test-ignore-value.c
gl/tests/test-inet_ntop.c
gl/tests/test-inet_pton.c
gl/tests/test-init.sh
gl/tests/test-intprops.c
gl/tests/test-inttypes.c
gl/tests/test-ioctl.c
gl/tests/test-isnand-nolibm.c
gl/tests/test-isnand.h
gl/tests/test-isnanf-nolibm.c
gl/tests/test-isnanf.h
gl/tests/test-isnanl-nolibm.c
gl/tests/test-isnanl.h
gl/tests/test-listen.c
gl/tests/test-lstat.c
gl/tests/test-lstat.h
gl/tests/test-malloc-gnu.c
gl/tests/test-malloca.c
gl/tests/test-math.c
gl/tests/test-memchr.c
gl/tests/test-netdb.c
gl/tests/test-netinet_in.c
gl/tests/test-open.c
gl/tests/test-open.h
gl/tests/test-pathmax.c
gl/tests/test-perror.c
gl/tests/test-perror2.c
gl/tests/test-pipe.c
gl/tests/test-printf-frexp.c
gl/tests/test-printf-frexpl.c
gl/tests/test-printf-posix.h
gl/tests/test-rawmemchr.c
gl/tests/test-read-file.c
gl/tests/test-recv.c
gl/tests/test-recvfrom.c
gl/tests/test-select-fd.c
gl/tests/test-select-stdin.c
gl/tests/test-select.c
gl/tests/test-select.h
gl/tests/test-send.c
gl/tests/test-sendto.c
gl/tests/test-setenv.c
gl/tests/test-setsockopt.c
gl/tests/test-shutdown.c
gl/tests/test-signal-h.c
gl/tests/test-signbit.c
gl/tests/test-sleep.c
gl/tests/test-snprintf.c
gl/tests/test-sockets.c
gl/tests/test-stat.c
gl/tests/test-stat.h
gl/tests/test-stdalign.c
gl/tests/test-stdbool.c
gl/tests/test-stddef.c
gl/tests/test-stdint.c
gl/tests/test-stdio.c
gl/tests/test-stdlib.c
gl/tests/test-strchrnul.c
gl/tests/test-strerror.c
gl/tests/test-strerror_r.c
gl/tests/test-string.c
gl/tests/test-strings.c
gl/tests/test-strnlen.c
gl/tests/test-strverscmp.c
gl/tests/test-symlink.c
gl/tests/test-symlink.h
gl/tests/test-sys_ioctl.c
gl/tests/test-sys_select.c
gl/tests/test-sys_socket.c
gl/tests/test-sys_stat.c
gl/tests/test-sys_time.c
gl/tests/test-sys_types.c
gl/tests/test-sys_uio.c
gl/tests/test-sys_wait.h
gl/tests/test-sysexits.c
gl/tests/test-time.c
gl/tests/test-u64.c
gl/tests/test-unistd.c
gl/tests/test-unsetenv.c
gl/tests/test-vasnprintf.c
gl/tests/test-vasprintf.c
gl/tests/test-vc-list-files-cvs.sh
gl/tests/test-vc-list-files-git.sh
gl/tests/test-verify.c
gl/tests/test-version-etc.c
gl/tests/test-version-etc.sh
gl/tests/test-vfprintf-posix.c
gl/tests/test-vprintf-posix.c
gl/tests/test-vsnprintf.c
gl/tests/test-wchar.c
gl/tests/unsetenv.c
gl/tests/w32sock.h
gl/tests/zerosize-ptr.h
gl/time.in.h
gl/time_r.c
gl/timespec.c [new file with mode: 0644]
gl/timespec.h
gl/u64.c [new file with mode: 0644]
gl/u64.h
gl/unistd.c [new file with mode: 0644]
gl/unistd.in.h
gl/vasnprintf.c
gl/vasnprintf.h
gl/vasprintf.c
gl/verify.h
gl/version-etc-fsf.c
gl/version-etc.c
gl/version-etc.h
gl/vfprintf.c
gl/vprintf.c
gl/vsnprintf.c
gl/w32sock.h
gl/wchar.in.h
gl/xsize.c [new file with mode: 0644]
gl/xsize.h
guile/Makefile.in
guile/modules/Makefile.in
guile/src/Makefile.am
guile/src/Makefile.in
guile/tests/Makefile.in
lib/Makefile.am
lib/Makefile.in
lib/abstract_int.h
lib/accelerated/Makefile.in
lib/accelerated/x86/Makefile.in
lib/accelerated/x86/hmac-padlock.c
lib/accelerated/x86/sha-padlock.c
lib/algorithms.h
lib/algorithms/Makefile.in
lib/algorithms/ciphersuites.c
lib/auth/Makefile.in
lib/auth/cert.c
lib/auth/cert.h
lib/auth/dh_common.c
lib/auth/rsa.c
lib/auth/rsa_export.c
lib/auth/srp_passwd.c
lib/crypto-api.c
lib/crypto-backend.c
lib/ext/Makefile.in
lib/ext/safe_renegotiation.c
lib/ext/session_ticket.c
lib/ext/signature.c
lib/extras/Makefile.in
lib/gnutls.asn
lib/gnutls_asn1_tab.c
lib/gnutls_cert.c
lib/gnutls_cipher.c
lib/gnutls_compress.c
lib/gnutls_compress.h
lib/gnutls_constate.c
lib/gnutls_db.c
lib/gnutls_dtls.c
lib/gnutls_dtls.h
lib/gnutls_errors.c
lib/gnutls_handshake.c
lib/gnutls_handshake.h
lib/gnutls_hash_int.h
lib/gnutls_int.h
lib/gnutls_pcert.c
lib/gnutls_priority.c
lib/gnutls_pubkey.c
lib/gnutls_record.c
lib/gnutls_rsa_export.c
lib/gnutls_session_pack.c
lib/gnutls_sig.c
lib/gnutls_state.c
lib/gnutls_str.c
lib/gnutls_ui.c
lib/gnutls_x509.c
lib/includes/Makefile.in
lib/includes/gnutls/abstract.h
lib/includes/gnutls/gnutls.h.in
lib/includes/gnutls/ocsp.h
lib/includes/gnutls/openpgp.h
lib/includes/gnutls/pkcs11.h
lib/includes/gnutls/x509.h
lib/libgnutls.map
lib/minitasn1/Makefile.in
lib/minitasn1/coding.c
lib/minitasn1/decoding.c
lib/minitasn1/element.c
lib/minitasn1/element.h
lib/minitasn1/errors.c
lib/minitasn1/gstr.c
lib/minitasn1/gstr.h
lib/minitasn1/int.h
lib/minitasn1/libtasn1.h
lib/minitasn1/parser_aux.c
lib/minitasn1/parser_aux.h
lib/minitasn1/structure.c
lib/minitasn1/structure.h
lib/minitasn1/version.c
lib/nettle/Makefile.in
lib/nettle/cipher.c
lib/nettle/pk.c
lib/opencdk/Makefile.in
lib/opencdk/armor.c
lib/opencdk/kbnode.c
lib/opencdk/keydb.c
lib/opencdk/literal.c
lib/opencdk/main.h
lib/opencdk/misc.c
lib/opencdk/new-packet.c
lib/opencdk/read-packet.c
lib/opencdk/stream.c
lib/opencdk/write-packet.c
lib/openpgp/Makefile.in
lib/openpgp/gnutls_openpgp.c
lib/openpgp/pgp.c
lib/openpgp/privkey.c
lib/pkcs11.c
lib/pkcs11_privkey.c
lib/pkix.asn
lib/pkix_asn1_tab.c
lib/x509/Makefile.in
lib/x509/common.c
lib/x509/mpi.c
lib/x509/ocsp.c
lib/x509/ocsp_output.c
lib/x509/pkcs12_encr.c
lib/x509/privkey.c
lib/x509/privkey_pkcs8.c
lib/x509/verify-high.c
lib/x509/verify-high.h
lib/x509/verify.c
lib/x509/x509.c
lib/x509/x509_int.h
m4/hooks.m4
m4/libtool.m4
maint.mk
po/LINGUAS
po/cs.gmo
po/cs.po
po/de.gmo
po/de.po
po/en@boldquot.gmo
po/en@boldquot.po
po/en@quot.gmo
po/en@quot.po
po/eo.gmo [new file with mode: 0644]
po/eo.po [new file with mode: 0644]
po/fi.gmo
po/fi.po
po/fr.gmo
po/fr.po
po/gnutls.pot
po/it.gmo
po/it.po
po/ms.gmo
po/ms.po
po/nl.gmo
po/nl.po
po/pl.gmo
po/pl.po
po/sv.gmo
po/sv.po
po/uk.gmo
po/uk.po
po/vi.gmo
po/vi.po
po/zh_CN.gmo
po/zh_CN.po
src/Makefile.am
src/Makefile.in
src/args-std.def
src/certtool-args.c
src/certtool-args.h
src/certtool-common.c
src/certtool.c
src/cli-args.c
src/cli-args.h
src/cli-debug-args.c
src/cli-debug-args.h
src/cli.c
src/common.c
src/crywrap/Makefile.in
src/libopts/COPYING.gplv3
src/libopts/COPYING.lgplv3
src/libopts/Makefile.am
src/libopts/Makefile.in
src/libopts/README
src/libopts/ag-char-map.h
src/libopts/alias.c
src/libopts/ao-strs.c
src/libopts/ao-strs.h
src/libopts/autoopts.c
src/libopts/autoopts.h
src/libopts/autoopts/options.h
src/libopts/autoopts/project.h
src/libopts/autoopts/usage-txt.h
src/libopts/boolean.c
src/libopts/check.c
src/libopts/compat/compat.h
src/libopts/compat/pathfind.c
src/libopts/compat/snprintf.c
src/libopts/compat/strchr.c
src/libopts/compat/strdup.c
src/libopts/compat/windows-config.h
src/libopts/configfile.c
src/libopts/cook.c
src/libopts/enum.c
src/libopts/env.c
src/libopts/file.c
src/libopts/find.c
src/libopts/genshell.c
src/libopts/genshell.h
src/libopts/gettext.h [new file with mode: 0644]
src/libopts/init.c [new file with mode: 0644]
src/libopts/libopts.c
src/libopts/load.c
src/libopts/m4/libopts.m4
src/libopts/m4/liboptschk.m4
src/libopts/makeshell.c
src/libopts/nested.c
src/libopts/numeric.c
src/libopts/option-value-type.c [new file with mode: 0644]
src/libopts/option-value-type.h [new file with mode: 0644]
src/libopts/option-xat-attribute.c [new file with mode: 0644]
src/libopts/option-xat-attribute.h [new file with mode: 0644]
src/libopts/parse-duration.c
src/libopts/parse-duration.h
src/libopts/pgusage.c
src/libopts/proto.h
src/libopts/putshell.c
src/libopts/reset.c
src/libopts/restore.c
src/libopts/save.c
src/libopts/sort.c
src/libopts/stack.c
src/libopts/streqvcmp.c
src/libopts/text_mmap.c
src/libopts/time.c
src/libopts/tokenize.c
src/libopts/usage.c
src/libopts/value-type.c [deleted file]
src/libopts/value-type.h [deleted file]
src/libopts/version.c
src/libopts/xat-attribute.c [deleted file]
src/libopts/xat-attribute.h [deleted file]
src/ocsptool-args.c
src/ocsptool-args.h
src/p11tool-args.c
src/p11tool-args.h
src/psk-args.c
src/psk-args.h
src/serv-args.c
src/serv-args.h
src/serv.c
src/srptool-args.c
src/srptool-args.h
tests/Makefile.am
tests/Makefile.in
tests/cert-tests/Makefile.in
tests/dsa/Makefile.in
tests/dtls/Makefile.in
tests/ecdsa/Makefile.in
tests/key-id/Makefile.in
tests/mini-overhead.c [new file with mode: 0644]
tests/openpgp-auth.c
tests/openpgp-auth2.c
tests/openpgp-certs/Makefile.in
tests/pkcs1-padding/Makefile.in
tests/pkcs12-decode/Makefile.in
tests/pkcs8-decode/Makefile.in
tests/rsa-md5-collision/Makefile.in
tests/safe-renegotiation/Makefile.in
tests/scripts/Makefile.in
tests/sha2/Makefile.in
tests/slow/Makefile.in
tests/srp/Makefile.in
tests/suite/Makefile.in
tests/userid/Makefile.in

index e989240..fb8179a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-2012-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, m4/hooks.m4: bumped version
-
-2012-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.c: removed warning for bits==512
-
-2012-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fix
-
-2012-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c: Handle EC DER keys.
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am: Added missing functions
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented update
-
-2012-06-30  David Woodhouse <David.Woodhouse@intel.com>
-
-       * lib/gnutls_record.c: Return GNUTLS_E_LARGE_PACKET instead of
-       truncating when sending DTLS record Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: fix
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: no need to check for DTLS
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: no need for _gnutls prefix.
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: only block ciphers need 1 byte padding.
-
-2012-06-29  David Woodhouse <David.Woodhouse@intel.com>
-
-       * lib/gnutls_dtls.c: Fix documentation for gnutls_dtls_set_mtu() It *isn't* the interface MTU, it's the transport MTU.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented update
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: sign fixes
-
-2012-06-29  David Woodhouse <David.Woodhouse@intel.com>
-
-       * lib/gnutls_dtls.c, lib/includes/gnutls/dtls.h, lib/libgnutls.map: 
-       Add gnutls_dtls_set_data_mtu() Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_dtls.c, lib/gnutls_int.h, lib/gnutls_state.c,
-       lib/gnutls_state.h: gnutls_dtls_get_data_mtu() is more precise.
-       Based on patch by David Woodhouse.
-
-2012-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, src/certtool-args.c, src/certtool-args.h,
-       src/cli-args.c, src/cli-args.h, src/cli-debug-args.c,
-       src/cli-debug-args.h, src/ocsptool-args.c, src/ocsptool-args.h,
-       src/p11tool-args.c, src/p11tool-args.h, src/psk-args.c,
-       src/psk-args.h, src/serv-args.c, src/serv-args.h,
-       src/srptool-args.c, src/srptool-args.h: Added autogen generated
-       files.
-
-2012-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: cleaned up errno handling.
-
-2012-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-gtls-app.texi, lib/gnutls_buffers.c,
-       lib/gnutls_errors.c, lib/gnutls_record.c, lib/system.c: Return
-       GNUTLS_E_LARGE_PACKET when errno is EMSGSIZE
-
-2012-06-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-args.def: do not require load-privkey for to-p12
-
-2012-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fix
-
-2012-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/pkcs11.c, lib/pkcs11_privkey.c: Use the label when looking for
-       a certificate or private key in PKCS #11.  Patch by David Woodhouse.  Conflicts:        lib/pkcs11.c
+       * NEWS: released 3.0.30
 
-2012-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: removed crap
+       * src/certtool-args.c, src/certtool-args.h, src/cli-args.c,
+       src/cli-args.h, src/cli-debug-args.c, src/cli-debug-args.h,
+       src/ocsptool-args.c, src/ocsptool-args.h, src/p11tool-args.c,
+       src/p11tool-args.h, src/psk-args.c, src/psk-args.h,
+       src/serv-args.c, src/serv-args.h, src/srptool-args.c,
+       src/srptool-args.h: updated libopts generated files
 
-2012-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/Makefile.am, lib/algorithms.h,
-       lib/algorithms/ciphersuites.c, lib/algorithms/protocols.c,
-       lib/gnutls_constate.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_session_pack.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Added support
-       for an old version of the DTLS protocol used by openconnect vpn
-       client for compatibility with Cisco's AnyConnect SSL VPN. It is
-       marked as GNUTLS_DTLS0_9. Do not use it for newer protocols as it
-       has issues.  Conflicts:         NEWS    lib/libgnutls.map
+       * src/libopts/COPYING.gplv3, src/libopts/COPYING.lgplv3,
+       src/libopts/Makefile.am, src/libopts/README,
+       src/libopts/ag-char-map.h, src/libopts/alias.c,
+       src/libopts/ao-strs.c, src/libopts/ao-strs.h,
+       src/libopts/autoopts.c, src/libopts/autoopts.h,
+       src/libopts/autoopts/options.h, src/libopts/autoopts/project.h,
+       src/libopts/autoopts/usage-txt.h, src/libopts/boolean.c,
+       src/libopts/check.c, src/libopts/compat/compat.h,
+       src/libopts/compat/pathfind.c, src/libopts/compat/snprintf.c,
+       src/libopts/compat/strchr.c, src/libopts/compat/strdup.c,
+       src/libopts/compat/windows-config.h, src/libopts/configfile.c,
+       src/libopts/cook.c, src/libopts/enum.c, src/libopts/env.c,
+       src/libopts/file.c, src/libopts/find.c, src/libopts/genshell.c,
+       src/libopts/genshell.h, src/libopts/libopts.c, src/libopts/load.c,
+       src/libopts/m4/libopts.m4, src/libopts/m4/liboptschk.m4,
+       src/libopts/makeshell.c, src/libopts/nested.c,
+       src/libopts/numeric.c, src/libopts/parse-duration.c,
+       src/libopts/parse-duration.h, src/libopts/pgusage.c,
+       src/libopts/proto.h, src/libopts/putshell.c, src/libopts/reset.c,
+       src/libopts/restore.c, src/libopts/save.c, src/libopts/sort.c,
+       src/libopts/stack.c, src/libopts/streqvcmp.c,
+       src/libopts/text_mmap.c, src/libopts/time.c,
+       src/libopts/tokenize.c, src/libopts/usage.c, src/libopts/version.c: 
+       updated libopts
 
-2012-06-15  Diego Elio Pettenò <flameeyes@flameeyes.eu>
+2013-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am: build: make sure to declare the generated source
-       files as BUILT_SOURCES This allows proper building when using parallel make on a multi-core
-       system.  Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: check for suse's CA bundle file
 
-2012-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dtls/dtls-stress.c: correct comparison of sent data in
-       dtls-stress.
+       * po/LINGUAS, po/eo.po.in: Sync with TP.
 
-2012-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented fix
+       * NEWS: doc update
 
-2012-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/privkey_pkcs8.c: Fixed leaks in PKCS #8 decoding
+       * lib/algorithms/ciphersuites.c: allow ciphersuites with elliptic
+       curves even when using SSL 3.0.  This works around a bug on openssl in certain Debian systems.
 
-2012-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-cert-select-pkcs11.c: documented pin_callback
-       expectations.
+       * configure.ac, m4/hooks.m4: bumped version
 
-2012-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c: Print the fingerprint only in the first certificate
-       in the chain.
+       * lib/algorithms.h, lib/gnutls_dtls.c: corrected AEAD tag size
 
-2012-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: corrected function name
+       * lib/gnutls_dtls.c: more precise calculation of DTLS overhead
 
-2012-06-06  Mark Brand <mabrand@mabrand.nl>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: add missing include wincrypt.h Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/Makefile.am, gl/argp-help.c, gl/intprops.h,
+       gl/m4/extensions.m4, gl/m4/extern-inline.m4, gl/m4/frexp.m4,
+       gl/m4/getdtablesize.m4, gl/m4/gnulib-comp.m4, gl/m4/intl.m4,
+       gl/m4/lock.m4, gl/m4/manywarnings.m4, gl/m4/po.m4, gl/m4/putenv.m4,
+       gl/m4/stdalign.m4, gl/m4/sys_types_h.m4, gl/m4/warnings.m4,
+       gl/stdio.in.h, gl/sys_select.in.h, gl/sys_time.in.h,
+       gl/tests/Makefile.am, gl/tests/getdtablesize.c, gl/tests/malloca.c,
+       gl/tests/malloca.h, gl/tests/putenv.c, gl/tests/test-dup2.c,
+       gl/tests/test-getaddrinfo.c, gl/tests/test-getdtablesize.c,
+       gl/tests/test-snprintf.c, gl/tests/test-sys_socket.c,
+       gl/tests/test-vasnprintf.c, gl/tests/test-vsnprintf.c,
+       gl/unistd.in.h, maint.mk: updated gnulib
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: mention retrieve_function2
+       * tests/mini-overhead.c: avoid global_init
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/gnutls.h.in: corrected invalid char
+       * tests/mini-overhead.c: removed unsupported ciphersuites
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-upgrade.texi, doc/latex/Makefile.am: updates in latex
-       build
+       * tests/Makefile.am, tests/mini-overhead.c: Check overhead in DTLS.
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/latex/gnutls.tex: no need for eurosans
+       * NEWS: doc update
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi: do not use @euro{}
+       * lib/gnutls_handshake.c: revive gnutls_handshake_get_last_in().
+       Report by Mann Ern Kang.
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * build-aux/ar-lib, build-aux/config.rpath,
-       build-aux/snippet/_Noreturn.h, gl/Makefile.am, gl/errno.in.h,
-       gl/fseeko.c, gl/fstat.c, gl/ftello.c, gl/lseek.c, gl/m4/dup2.m4,
-       gl/m4/errno_h.m4, gl/m4/fseeko.m4, gl/m4/fstat.m4, gl/m4/ftello.m4,
-       gl/m4/ftruncate.m4, gl/m4/getcwd.m4, gl/m4/getdelim.m4,
-       gl/m4/getline.m4, gl/m4/gettimeofday.m4, gl/m4/gnulib-common.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/largefile.m4, gl/m4/lseek.m4,
-       gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/manywarnings.m4,
-       gl/m4/memmem.m4, gl/m4/mmap-anon.m4, gl/m4/off_t.m4,
-       gl/m4/putenv.m4, gl/m4/realloc.m4, gl/m4/setenv.m4,
-       gl/m4/signbit.m4, gl/m4/sleep.m4, gl/m4/stat.m4, gl/m4/strerror.m4,
-       gl/m4/symlink.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_types_h.m4,
-       gl/m4/ungetc.m4, gl/m4/unistd_h.m4, gl/m4/warnings.m4, gl/select.c,
-       gl/stdint.in.h, gl/stdio.in.h, gl/strerror-override.c,
-       gl/strerror-override.h, gl/sys_stat.in.h, gl/sys_types.in.h,
-       gl/tests/binary-io.h, gl/tests/fcntl.in.h, gl/tests/ftruncate.c,
-       gl/tests/ignore-value.h, gl/tests/init.sh, gl/tests/stat.c,
-       gl/tests/test-binary-io.c, gl/tests/test-binary-io.sh,
-       gl/tests/test-errno.c, gl/u64.h, gl/unistd.in.h, ltmain.sh,
-       maint.mk: updated gnulib
+       * src/cli.c: corrected signal() call
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore: move files to ignore
+       * lib/accelerated/x86/hmac-padlock.c,
+       lib/accelerated/x86/sha-padlock.c: corrected memory leak in
+       padlock_hash_fast()
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/Makefile.am, tests/cert-tests/Makefile.am,
-       tests/cert-tests/ca-certs.pem, tests/certs/ca-certs.pem: moved
-       ca-certs.
+       * lib/gnutls_handshake.c: make a short list of the available PK
+       algorithms
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * : updated
+       * NEWS: updated
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, m4/hooks.m4: bumped version
+       * lib/auth/rsa.c, lib/gnutls_int.h, lib/gnutls_priority.c,
+       lib/gnutls_record.c: When in compatibility mode allow for a wrong
+       version in the RSA PMS.
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: doc fix
+       * NEWS: set release date
 
-2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi: removed text about function that doesn't
-       exist in this release.
+       * NEWS, lib/auth/cert.c, lib/gnutls_pubkey.c,
+       lib/includes/gnutls/abstract.h, lib/includes/gnutls/openpgp.h,
+       lib/openpgp/gnutls_openpgp.c: Fixes in openpgp handshake with
+       fingerprints. Reported by Joke de Buhr.
 
-2012-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool-cfg.c: print warning to stderr
+       * NEWS, lib/gnutls_sig.c: correct issue with the (deprecated)
+       external key signing and TLS 1.2
 
-2012-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi: doc updates
+       * lib/pkcs11.c: search only for slots with tokens and avoid caching
+       to prevent issues with multiple threads.
 
-2012-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/openpgp/pgpverify.c: fixes in openpgp certificate
-       verification.
+       * NEWS: updated
 
-2012-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/libgnutls.map: Removed duplicate entries and added an explicit
-       local.
+       * lib/pkcs11.c: avoid internal error
 
-2012-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/pkcs11.c: better function naming.
+       * configure.ac, m4/hooks.m4: bumped version
 
-2012-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
        * NEWS: updated
 
-2012-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: doc updates
+2013-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/pkcs11.c: scan slots on PKCS #11 providers only when needed,
+       not on initialization.
 
-       * lib/includes/gnutls/gnutls.h.in: corrected text
+2013-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: removed
 
-       * lib/x509/verify.c: corrected typo
+2013-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_x509.c: return unimplemented feature on encounter of a
+       known but unsupported url
 
-       * lib/gnutls_ui.c: typo fix
+2013-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/Makefile.am, gl/hash-pjw-bare.c, gl/hash-pjw-bare.h,
+       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Added hash-pjw-bare in
+       gl which is used by minitasn1. Reported by David Woodhouse.
 
-       * lib/x509/privkey.c: documented behavior.
+2013-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: Fixes in cpu and cross-compilation detection
 
-       * lib/x509/privkey_pkcs8.c: Do not crash if password is null and
-       GNUTLS_PKCS_PLAIN is not specified.
+2013-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_x509.c: check revocation prior to reading local certs.
 
-       * .gitignore, lib/gnutls_buffers.c, tests/Makefile.am,
-       tests/certs/ca-certs.pem, tests/mini-x509-cas.c: Corrected handling
-       of handshake packets that span multiple records.
+2013-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_x509.c, lib/x509/verify-high.c, lib/x509/verify-high.h: 
+       deinitialize certificate and use internal function name for
+       gnutls_x509_trust_list_remove_cas
 
-       * doc/cha-gtls-app.texi: documentation update
+2013-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * : added missing file
+2013-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: backported configure check for trust store.
 
-       * configure.ac, cross.mk, m4/hooks.m4: bumped version
+2013-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_x509.c, lib/x509/verify-high.c, lib/x509/verify-high.h: 
+       correctly remove revoked certificates. That required quite some
+       backports from the 3.1 branch.
 
-       * lib/gnutls_session_pack.c: corrected data copy
+2013-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_x509.c: Check for revoked certs in android and do not
+       add. Suggested by David Woodhouse.
 
-       * NEWS: documented fix
+2013-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_priority.c: lower the priority of the DHE_*
+       ciphersuites.
 
-       * src/certtool-cfg.c: MAX_ENTRIES increased to 128.
+2013-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_x509.c: handle the interesting variance between
+       directories
 
-       * doc/cha-gtls-app.texi: Updated documentation on DTLS.
+2013-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/suite/mini-eagain2.c: include config.h
 
-       * doc/cha-gtls-examples.texi: updated documentation.
+2013-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: configure.ac updates
 
-       * doc/Makefile.am: no need to distribute gnutls.ps
+2013-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * GNUmakefile, build-aux/config.rpath, build-aux/gendocs.sh,
+       build-aux/pmccabe2html, build-aux/snippet/arg-nonnull.h,
+       build-aux/snippet/c++defs.h, build-aux/snippet/warn-on-use.h,
+       build-aux/useless-if-before-free, build-aux/vc-list-files,
+       doc/gendocs_template, gl/Makefile.am, gl/accept.c, gl/alloca.in.h,
+       gl/alphasort.c, gl/argp-ba.c, gl/argp-eexst.c, gl/argp-fmtstream.c,
+       gl/argp-fmtstream.h, gl/argp-fs-xinl.c, gl/argp-help.c,
+       gl/argp-namefrob.h, gl/argp-parse.c, gl/argp-pin.c, gl/argp-pv.c,
+       gl/argp-pvh.c, gl/argp-xinl.c, gl/argp.h, gl/arpa_inet.in.h,
+       gl/asnprintf.c, gl/asprintf.c, gl/base64.c, gl/base64.h,
+       gl/basename-lgpl.c, gl/bind.c, gl/byteswap.in.h, gl/c-ctype.c,
+       gl/c-ctype.h, gl/close.c, gl/closedir.c, gl/connect.c,
+       gl/dirent-private.h, gl/dirent.in.h, gl/dirname-lgpl.c,
+       gl/dirname.h, gl/dosname.h, gl/dup2.c, gl/errno.in.h, gl/error.c,
+       gl/error.h, gl/fd-hook.c, gl/fd-hook.h, gl/filename.h, gl/float+.h,
+       gl/float.c, gl/float.in.h, gl/fpucw.h, gl/frexp.c, gl/frexpl.c,
+       gl/fseek.c, gl/fseeko.c, gl/fseterr.c, gl/fseterr.h, gl/fstat.c,
+       gl/ftell.c, gl/ftello.c, gl/gai_strerror.c, gl/getaddrinfo.c,
+       gl/getdelim.c, gl/getline.c, gl/getopt.c, gl/getopt.in.h,
+       gl/getopt1.c, gl/getopt_int.h, gl/getpass.c, gl/getpass.h,
+       gl/getpeername.c, gl/getsubopt.c, gl/gettext.h, gl/gettime.c,
+       gl/gettimeofday.c, gl/glthread/threadlib.c, gl/inet_ntop.c,
+       gl/inet_pton.c, gl/intprops.h, gl/isnan.c, gl/isnand-nolibm.h,
+       gl/isnand.c, gl/isnanf-nolibm.h, gl/isnanf.c, gl/isnanl-nolibm.h,
+       gl/isnanl.c, gl/itold.c, gl/listen.c, gl/lseek.c,
+       gl/m4/00gnulib.m4, gl/m4/alloca.m4, gl/m4/alphasort.m4,
+       gl/m4/argp.m4, gl/m4/arpa_inet_h.m4, gl/m4/base64.m4,
+       gl/m4/byteswap.m4, gl/m4/clock_time.m4, gl/m4/close.m4,
+       gl/m4/closedir.m4, gl/m4/codeset.m4, gl/m4/dirent_h.m4,
+       gl/m4/dirname.m4, gl/m4/double-slash-root.m4, gl/m4/dup2.m4,
+       gl/m4/eealloc.m4, gl/m4/environ.m4, gl/m4/errno_h.m4,
+       gl/m4/error.m4, gl/m4/exponentd.m4, gl/m4/exponentf.m4,
+       gl/m4/exponentl.m4, gl/m4/extensions.m4, gl/m4/extern-inline.m4,
+       gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4, gl/m4/fdopen.m4,
+       gl/m4/float_h.m4, gl/m4/fpieee.m4, gl/m4/frexp.m4, gl/m4/frexpl.m4,
+       gl/m4/fseek.m4, gl/m4/fseeko.m4, gl/m4/fseterr.m4, gl/m4/fstat.m4,
+       gl/m4/ftell.m4, gl/m4/ftello.m4, gl/m4/ftruncate.m4, gl/m4/func.m4,
+       gl/m4/getaddrinfo.m4, gl/m4/getcwd.m4, gl/m4/getdelim.m4,
+       gl/m4/getline.m4, gl/m4/getopt.m4, gl/m4/getpagesize.m4,
+       gl/m4/getpass.m4, gl/m4/getsubopt.m4, gl/m4/gettext.m4,
+       gl/m4/gettime.m4, gl/m4/gettimeofday.m4, gl/m4/glibc2.m4,
+       gl/m4/glibc21.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/hostent.m4,
+       gl/m4/iconv.m4, gl/m4/include_next.m4, gl/m4/inet_ntop.m4,
+       gl/m4/inet_pton.m4, gl/m4/intdiv0.m4, gl/m4/intl.m4,
+       gl/m4/intldir.m4, gl/m4/intlmacosx.m4, gl/m4/intmax.m4,
+       gl/m4/intmax_t.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4,
+       gl/m4/inttypes_h.m4, gl/m4/ioctl.m4, gl/m4/isnand.m4,
+       gl/m4/isnanf.m4, gl/m4/isnanl.m4, gl/m4/largefile.m4,
+       gl/m4/lcmessage.m4, gl/m4/ld-output-def.m4,
+       gl/m4/ld-version-script.m4, gl/m4/ldexpl.m4, gl/m4/lib-ld.m4,
+       gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/m4/lock.m4,
+       gl/m4/longlong.m4, gl/m4/lseek.m4, gl/m4/lstat.m4, gl/m4/malloc.m4,
+       gl/m4/malloca.m4, gl/m4/manywarnings.m4, gl/m4/math_h.m4,
+       gl/m4/memchr.m4, gl/m4/memmem.m4, gl/m4/mempcpy.m4,
+       gl/m4/minmax.m4, gl/m4/mmap-anon.m4, gl/m4/mode_t.m4,
+       gl/m4/msvc-inval.m4, gl/m4/msvc-nothrow.m4, gl/m4/multiarch.m4,
+       gl/m4/netdb_h.m4, gl/m4/netinet_in_h.m4, gl/m4/nls.m4,
+       gl/m4/nocrash.m4, gl/m4/off_t.m4, gl/m4/open.m4, gl/m4/opendir.m4,
+       gl/m4/pathmax.m4, gl/m4/perror.m4, gl/m4/pipe.m4, gl/m4/po.m4,
+       gl/m4/printf-frexp.m4, gl/m4/printf-frexpl.m4,
+       gl/m4/printf-posix.m4, gl/m4/printf.m4, gl/m4/progtest.m4,
+       gl/m4/putenv.m4, gl/m4/rawmemchr.m4, gl/m4/read-file.m4,
+       gl/m4/readdir.m4, gl/m4/realloc.m4, gl/m4/scandir.m4,
+       gl/m4/select.m4, gl/m4/servent.m4, gl/m4/setenv.m4,
+       gl/m4/signal_h.m4, gl/m4/signbit.m4, gl/m4/size_max.m4,
+       gl/m4/sleep.m4, gl/m4/snprintf.m4, gl/m4/socketlib.m4,
+       gl/m4/sockets.m4, gl/m4/socklen.m4, gl/m4/sockpfaf.m4,
+       gl/m4/ssize_t.m4, gl/m4/stat.m4, gl/m4/stdalign.m4,
+       gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4,
+       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdio_h.m4,
+       gl/m4/stdlib_h.m4, gl/m4/strcase.m4, gl/m4/strchrnul.m4,
+       gl/m4/strdup.m4, gl/m4/strerror.m4, gl/m4/strerror_r.m4,
+       gl/m4/string_h.m4, gl/m4/strings_h.m4, gl/m4/strndup.m4,
+       gl/m4/strnlen.m4, gl/m4/strtok_r.m4, gl/m4/strverscmp.m4,
+       gl/m4/symlink.m4, gl/m4/sys_ioctl_h.m4, gl/m4/sys_select_h.m4,
+       gl/m4/sys_socket_h.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4,
+       gl/m4/sys_types_h.m4, gl/m4/sys_uio_h.m4, gl/m4/sysexits.m4,
+       gl/m4/threadlib.m4, gl/m4/time_h.m4, gl/m4/time_r.m4,
+       gl/m4/timer_time.m4, gl/m4/timespec.m4, gl/m4/uintmax_t.m4,
+       gl/m4/ungetc.m4, gl/m4/unistd_h.m4, gl/m4/valgrind-tests.m4,
+       gl/m4/vasnprintf.m4, gl/m4/vasprintf.m4, gl/m4/version-etc.m4,
+       gl/m4/vfprintf-posix.m4, gl/m4/visibility.m4,
+       gl/m4/vprintf-posix.m4, gl/m4/vsnprintf.m4, gl/m4/warn-on-use.m4,
+       gl/m4/warnings.m4, gl/m4/wchar_h.m4, gl/m4/wchar_t.m4,
+       gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/malloc.c, gl/math.c,
+       gl/math.in.h, gl/memchr.c, gl/memmem.c, gl/mempcpy.c, gl/minmax.h,
+       gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c,
+       gl/msvc-nothrow.h, gl/netdb.in.h, gl/netinet_in.in.h, gl/opendir.c,
+       gl/printf-args.c, gl/printf-args.h, gl/printf-frexp.c,
+       gl/printf-frexp.h, gl/printf-frexpl.c, gl/printf-frexpl.h,
+       gl/printf-parse.c, gl/printf-parse.h, gl/progname.c, gl/progname.h,
+       gl/rawmemchr.c, gl/read-file.c, gl/read-file.h, gl/readdir.c,
+       gl/realloc.c, gl/recv.c, gl/recvfrom.c, gl/scandir.c, gl/select.c,
+       gl/send.c, gl/sendto.c, gl/setsockopt.c, gl/shutdown.c,
+       gl/signal.in.h, gl/signbitd.c, gl/signbitf.c, gl/signbitl.c,
+       gl/size_max.h, gl/sleep.c, gl/snprintf.c, gl/socket.c,
+       gl/sockets.c, gl/sockets.h, gl/stdalign.in.h, gl/stdarg.in.h,
+       gl/stdbool.in.h, gl/stddef.in.h, gl/stdint.in.h, gl/stdio-impl.h,
+       gl/stdio.in.h, gl/stdlib.in.h, gl/str-two-way.h, gl/strcasecmp.c,
+       gl/strchrnul.c, gl/strdup.c, gl/strerror-override.c,
+       gl/strerror-override.h, gl/strerror.c, gl/string.in.h,
+       gl/strings.in.h, gl/stripslash.c, gl/strncasecmp.c, gl/strndup.c,
+       gl/strnlen.c, gl/strtok_r.c, gl/strverscmp.c, gl/sys_select.in.h,
+       gl/sys_socket.c, gl/sys_socket.in.h, gl/sys_stat.in.h,
+       gl/sys_time.in.h, gl/sys_types.in.h, gl/sys_uio.in.h,
+       gl/sysexits.in.h, gl/tests/Makefile.am, gl/tests/binary-io.c,
+       gl/tests/binary-io.h, gl/tests/dup2.c, gl/tests/fcntl.in.h,
+       gl/tests/fdopen.c, gl/tests/ftruncate.c, gl/tests/getcwd-lgpl.c,
+       gl/tests/getpagesize.c, gl/tests/glthread/lock.c,
+       gl/tests/glthread/lock.h, gl/tests/ignore-value.h,
+       gl/tests/infinity.h, gl/tests/init.sh, gl/tests/inttypes.in.h,
+       gl/tests/ioctl.c, gl/tests/lstat.c, gl/tests/macros.h,
+       gl/tests/malloca.c, gl/tests/malloca.h, gl/tests/minus-zero.h,
+       gl/tests/nan.h, gl/tests/open.c, gl/tests/pathmax.h,
+       gl/tests/perror.c, gl/tests/pipe.c, gl/tests/putenv.c,
+       gl/tests/randomd.c, gl/tests/randoml.c, gl/tests/same-inode.h,
+       gl/tests/setenv.c, gl/tests/signature.h, gl/tests/stat.c,
+       gl/tests/strerror_r.c, gl/tests/symlink.c, gl/tests/sys_ioctl.in.h,
+       gl/tests/test-accept.c, gl/tests/test-alloca-opt.c,
+       gl/tests/test-argp-2.sh, gl/tests/test-argp.c,
+       gl/tests/test-arpa_inet.c, gl/tests/test-base64.c,
+       gl/tests/test-binary-io.c, gl/tests/test-bind.c,
+       gl/tests/test-byteswap.c, gl/tests/test-c-ctype.c,
+       gl/tests/test-close.c, gl/tests/test-connect.c,
+       gl/tests/test-dirent.c, gl/tests/test-dup2.c,
+       gl/tests/test-environ.c, gl/tests/test-errno.c,
+       gl/tests/test-fcntl-h.c, gl/tests/test-fdopen.c,
+       gl/tests/test-fgetc.c, gl/tests/test-float.c,
+       gl/tests/test-fprintf-posix.h, gl/tests/test-fputc.c,
+       gl/tests/test-fread.c, gl/tests/test-frexp.c,
+       gl/tests/test-frexp.h, gl/tests/test-frexpl.c,
+       gl/tests/test-fseek.c, gl/tests/test-fseeko.c,
+       gl/tests/test-fseeko3.c, gl/tests/test-fseeko4.c,
+       gl/tests/test-fseterr.c, gl/tests/test-fstat.c,
+       gl/tests/test-ftell.c, gl/tests/test-ftell3.c,
+       gl/tests/test-ftello.c, gl/tests/test-ftello3.c,
+       gl/tests/test-ftello4.c, gl/tests/test-ftruncate.c,
+       gl/tests/test-func.c, gl/tests/test-fwrite.c,
+       gl/tests/test-getaddrinfo.c, gl/tests/test-getcwd-lgpl.c,
+       gl/tests/test-getdelim.c, gl/tests/test-getline.c,
+       gl/tests/test-getopt.c, gl/tests/test-getopt.h,
+       gl/tests/test-getopt_long.h, gl/tests/test-getpeername.c,
+       gl/tests/test-gettimeofday.c, gl/tests/test-ignore-value.c,
+       gl/tests/test-inet_ntop.c, gl/tests/test-inet_pton.c,
+       gl/tests/test-init.sh, gl/tests/test-intprops.c,
+       gl/tests/test-inttypes.c, gl/tests/test-ioctl.c,
+       gl/tests/test-isnand-nolibm.c, gl/tests/test-isnand.h,
+       gl/tests/test-isnanf-nolibm.c, gl/tests/test-isnanf.h,
+       gl/tests/test-isnanl-nolibm.c, gl/tests/test-isnanl.h,
+       gl/tests/test-listen.c, gl/tests/test-lstat.c,
+       gl/tests/test-lstat.h, gl/tests/test-malloc-gnu.c,
+       gl/tests/test-malloca.c, gl/tests/test-math.c,
+       gl/tests/test-memchr.c, gl/tests/test-netdb.c,
+       gl/tests/test-netinet_in.c, gl/tests/test-open.c,
+       gl/tests/test-open.h, gl/tests/test-pathmax.c,
+       gl/tests/test-perror.c, gl/tests/test-perror2.c,
+       gl/tests/test-pipe.c, gl/tests/test-printf-frexp.c,
+       gl/tests/test-printf-frexpl.c, gl/tests/test-printf-posix.h,
+       gl/tests/test-rawmemchr.c, gl/tests/test-read-file.c,
+       gl/tests/test-recv.c, gl/tests/test-recvfrom.c,
+       gl/tests/test-select-fd.c, gl/tests/test-select-stdin.c,
+       gl/tests/test-select.c, gl/tests/test-select.h,
+       gl/tests/test-send.c, gl/tests/test-sendto.c,
+       gl/tests/test-setenv.c, gl/tests/test-setsockopt.c,
+       gl/tests/test-shutdown.c, gl/tests/test-signal-h.c,
+       gl/tests/test-signbit.c, gl/tests/test-sleep.c,
+       gl/tests/test-snprintf.c, gl/tests/test-sockets.c,
+       gl/tests/test-stat.c, gl/tests/test-stat.h,
+       gl/tests/test-stdalign.c, gl/tests/test-stdbool.c,
+       gl/tests/test-stddef.c, gl/tests/test-stdint.c,
+       gl/tests/test-stdio.c, gl/tests/test-stdlib.c,
+       gl/tests/test-strchrnul.c, gl/tests/test-strerror.c,
+       gl/tests/test-strerror_r.c, gl/tests/test-string.c,
+       gl/tests/test-strings.c, gl/tests/test-strnlen.c,
+       gl/tests/test-strverscmp.c, gl/tests/test-symlink.c,
+       gl/tests/test-symlink.h, gl/tests/test-sys_ioctl.c,
+       gl/tests/test-sys_select.c, gl/tests/test-sys_socket.c,
+       gl/tests/test-sys_stat.c, gl/tests/test-sys_time.c,
+       gl/tests/test-sys_types.c, gl/tests/test-sys_uio.c,
+       gl/tests/test-sys_wait.h, gl/tests/test-sysexits.c,
+       gl/tests/test-time.c, gl/tests/test-u64.c, gl/tests/test-unistd.c,
+       gl/tests/test-unsetenv.c, gl/tests/test-vasnprintf.c,
+       gl/tests/test-vasprintf.c, gl/tests/test-vc-list-files-cvs.sh,
+       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
+       gl/tests/test-version-etc.c, gl/tests/test-version-etc.sh,
+       gl/tests/test-vfprintf-posix.c, gl/tests/test-vprintf-posix.c,
+       gl/tests/test-vsnprintf.c, gl/tests/test-wchar.c,
+       gl/tests/unsetenv.c, gl/tests/w32sock.h, gl/tests/zerosize-ptr.h,
+       gl/time.in.h, gl/time_r.c, gl/timespec.c, gl/timespec.h, gl/u64.c,
+       gl/u64.h, gl/unistd.c, gl/unistd.in.h, gl/vasnprintf.c,
+       gl/vasnprintf.h, gl/vasprintf.c, gl/verify.h, gl/version-etc-fsf.c,
+       gl/version-etc.c, gl/version-etc.h, gl/vfprintf.c, gl/vprintf.c,
+       gl/vsnprintf.c, gl/w32sock.h, gl/wchar.in.h, gl/xsize.c,
+       gl/xsize.h, maint.mk: Updated gnulib.
 
-       * lib/Makefile.am, lib/gnutls_x509.c: Use windows trusted
-       certificate store.
+2013-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/gnutls_x509.c: load CA certificates in Android 4.x
+       systems.
 
-       * configure.ac, lib/gnutls_x509.c: Added the notion of a default CRL
-       file.
+2013-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: gl_EARLY called earlier
 
-       * doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/cha-shared-key.texi, doc/examples/ex-client-x509.c,
-       doc/manpages/Makefile.am: documentation updates
+2013-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: removed Werror flags
 
-       * lib/gnutls_cert.c: updated doc
+2013-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * src/common.h: no need for netinet/ip.h
+2013-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: Select CPU optimizations based on target cpu rather
+       than the host.
 
-       * src/cli.c: no need for default_ca_file
+2013-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, src/certtool.c: use ARCFOUR by default on PKCS #12 file
+       generation
 
-       * lib/x509/verify.c: When checking for an issuer check for a match
-       in the key identifiers.
+2013-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/pkcs11.c: Fixed gnutls_pkcs11_reinit() to reinitialize
+       all modules.
 
-       * doc/cha-gtls-app.texi: Added text for gnutls_dh_set_prime_bits and
-       gnutls_srp_set_prime_bits
+2013-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * lib/gnutls_ui.c: Document the effect of lowering the DH bits.
+2013-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_pubkey.c: corrected gnutls_pubkey_verify_data()
 
-       * doc/examples/ex-client-x509.c, doc/examples/ex-serv-x509.c,
-       lib/gnutls_x509.c: Be more conservative with examples.
-       gnutls_certificate_set_x509_system_trust() returns
-       GNUTLS_E_UNIMPLEMENTED_FEATURE on systems that do not have a (known)
-       default trust store.
+2013-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/verify-high.c: reduced hash table size
 
-       * doc/examples/ex-client-dtls.c, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-client-x509.c: Revert
-       "updated examples" This reverts commit 559614fc7a288bf6eaf36ebe696e07b150c96be5.
+2013-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/x509/common.c: DN variable 'T' was expanded to 'title'
 
-       * src/cli.c, src/common.c: Print certificate if --print-cert is
-       given, even on verification failure.
+2013-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: prepared release
 
-       * src/certtool-args.def: documented uri option
+2013-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented fix
 
-       * configure.ac: Revert "This patch fixes following kind of issue
-       with automake 1.12" It was suggested that this need not to be solved
-       by gnutls.  This reverts commit ace8a662ff90679c575658e787f48577e2fd5940.
+2013-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_cipher.c, lib/gnutls_hash_int.h: Fixes to avoid a
+       timing attack in TLS CBC record parsing.
 
-       * NEWS, src/certtool-cfg.c, src/certtool-cfg.h, src/certtool.c,
-       tests/cert-tests/template-test.pem: Added support for the URI type
-       of subject alternative name in certtool.
+2013-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_x509.c, lib/includes/gnutls/pkcs11.h, lib/pkcs11.c: 
+       Added GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA to specify trusted CA
+       certificates.
 
-       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi,
-       doc/cha-intro-tls.texi: updated examples and documentation.
+2013-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_db.c: simplified DB storing
 
-       * doc/examples/ex-client-dtls.c, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-client-x509.c: updated
-       examples
+2013-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_db.c: remove function is not required to add or
+       retrieve from db.
 
-       * NEWS, lib/gnutls_x509.c, lib/libgnutls.map: fixes in patch.
+2013-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-08  Ludwig Nussel <ludwig.nussel@suse.de>
+       * NEWS, lib/gnutls_db.c, lib/gnutls_handshake.c,
+       lib/gnutls_session_pack.c: Fixes in server side of DTLS-0.9.
 
-       * configure.ac, doc/Makefile.am, doc/manpages/Makefile.am,
-       lib/gnutls_x509.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, src/cli.c: introduce
-       gnutls_certificate_set_x509_system_trust gnutls_certificate_set_x509_system_trust() imports the trusted root
-       CA's from a compile time defined location. That way applications
-       don't need to know.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2013-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented fix
 
-       * doc/Makefile.am: added new functions
+2013-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/crypto-api.c: Fix AEAD out-of-place decryption
 
-       * README-alpha, src/libopts/Makefile.am, src/libopts/ag-char-map.h,
-       src/libopts/ao-strs.c, src/libopts/ao-strs.h,
-       src/libopts/autoopts.c, src/libopts/autoopts.h,
-       src/libopts/autoopts/options.h, src/libopts/autoopts/project.h,
-       src/libopts/autoopts/usage-txt.h, src/libopts/boolean.c,
-       src/libopts/check.c, src/libopts/compat/compat.h,
-       src/libopts/compat/pathfind.c, src/libopts/configfile.c,
-       src/libopts/cook.c, src/libopts/enum.c, src/libopts/env.c,
-       src/libopts/find.c, src/libopts/genshell.c, src/libopts/genshell.h,
-       src/libopts/libopts.c, src/libopts/load.c,
-       src/libopts/m4/libopts.m4, src/libopts/makeshell.c,
-       src/libopts/nested.c, src/libopts/parse-duration.c,
-       src/libopts/pgusage.c, src/libopts/proto.h, src/libopts/putshell.c,
-       src/libopts/reset.c, src/libopts/save.c, src/libopts/stack.c,
-       src/libopts/streqvcmp.c, src/libopts/tokenize.c,
-       src/libopts/usage.c, src/libopts/value-type.h,
-       src/libopts/xat-attribute.h: updated libopts
+2013-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac, m4/hooks.m4: use AC_CONFIG_HEADERS() and bumped
+       version.
 
-       * NEWS, doc/cha-cert-auth2.texi, lib/abstract_int.h,
-       lib/algorithms.h, lib/algorithms/sign.c, lib/ext/signature.c,
-       lib/gnutls_pubkey.c, lib/gnutls_sig.c,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_int.h, tests/x509sign-verify.c: Added
-       gnutls_pubkey_verify_hash2() and gnutls_pk_to_sign().
+2013-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/nettle/pk.c: added checks on decryption and verification.
 
-       * configure.ac: This patch fixes following kind of issue with
-       automake 1.12 | automake: warnings are treated as errors |
-       /.../automake-1.12/am/ltlibrary.am: warning: 'libgnutls.la': linking
-       libtool libraries using a non-POSIX |
-       /.../automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR'
-       in 'configure.ac' Patch by: Nitin A Kamble <nitin.a.kamble@intel.com>
+2013-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-       * lib/gnutls_sig.c: Corrected allocation check
+2012-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/nettle/pk.c: Stricter RSA PKCS #1 1.5 encoding. Reported
+       by Kikuchi Masashi.
 
-       * src/libopts/autoopts/options.h: removed redundant declaration.
+2012-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * devel/perlasm/cpuid-x86_64.pl,
-       lib/accelerated/x86/coff/cpuid-x86-64-coff.s: Corrected win64
-       cpuid() code. Report and patch by Mann Ern Kang.
+2012-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: document fix
 
-       * lib/gnutls_mpi.c: corrected bug in scan_nz()
+2012-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_cipher.c: Corrected bugs in record parsing.  Corrected bugs in record padding parsing. Reported by Kenny
+       Patterson and Nadhem Alfardan.
 
-       * NEWS, build-aux/config.rpath, configure.ac, m4/hooks.m4: 
-       documented updates and bumped version.
+2012-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * lib/gnutls_dh.c, lib/gnutls_dh.h: corrected typo
+2012-12-01  Ludovic Courtès <ludo@gnu.org>
 
-2012-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * guile/src/Makefile.am: guile: Fix dependencies to be
+       parallel-safe.
 
-       * lib/auth/dh_common.c, lib/gnutls_dh.c, lib/gnutls_dh.h: Return
-       proper error code if parameter check fails.
+2012-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
+       lib/minitasn1/element.c, lib/minitasn1/element.h,
+       lib/minitasn1/errors.c, lib/minitasn1/gstr.c, lib/minitasn1/gstr.h,
+       lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
+       lib/minitasn1/parser_aux.c, lib/minitasn1/parser_aux.h,
+       lib/minitasn1/structure.c, lib/minitasn1/structure.h: updated
+       libtasn1
 
-       * lib/auth/srp.c: Added complete check in SRP parameters.
+2012-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am: updated
 
-       * lib/gnutls_dh.c: Added better sanity checks in Diffie-Hellman key
-       exchange.
+2012-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am: updated
 
-       * configure.ac: Added option to unconditionally disable crywrap.
-       Patch by Daniel Mierswa.
+2012-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/scripts/cleanup-autogen.pl, doc/scripts/gdoc,
+       doc/scripts/getfuncs.pl, doc/scripts/mytexi2latex: updated scripts
 
-       * lib/verify-tofu.c: Use openpgp if enabled.
+2012-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-       * NEWS, lib/pkcs11.c: If a callback fails try the other.
+2012-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_compress.c: removed debugging
 
-       * NEWS, lib/pkcs11.c: by default register a file callback in p11-kit
-       to read a file from the pin-source pkcs11url field.
+2012-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/gnutls_int.h, lib/gnutls_priority.c, lib/gnutls_sig.c: 
+       Tolerate key usage violation.
 
-       * po/cs.po.in, po/de.po.in, po/fi.po.in, po/it.po.in, po/nl.po.in,
-       po/pl.po.in, po/sv.po.in, po/uk.po.in, po/vi.po.in: Sync with TP.
+2012-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/includes/gnutls/gnutls.h.in, lib/x509/verify.c,
+       src/certtool.c: Too old -> superseded.
 
-       * src/Makefile.am, src/cli.c, src/srptool.c: No need to include
-       gettext.h. Link against libintl when needed.
+2012-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/certtool.c: corrected checks
 
-       * NEWS: no abi change in 3.0.19
+2012-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * NEWS, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c, lib/includes/gnutls/gnutls.h.in: 
-       gnutls_record_check_unprocessed is now inline function.
+2012-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/pkcs12_encr.c: Increased maximum password len in PKCS
+       #12.
 
-       * lib/nettle/rnd.c: Update random state on all cases.
+2012-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/gnutls_cert.c, lib/includes/gnutls/gnutls.h.in,
+       lib/x509/verify.c, src/certtool.c: CRL verification includes the
+       time checks.
 
-       * gl/tests/ioctl.c: updated gnulib
+2012-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/auth/cert.c, lib/openpgp/privkey.c: Added debugging, and
+       reverted some changes from the 3.1 backport.
 
-       * tests/suite/testcompat-main: Added TLS 1.2 interop tests.
+2012-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, m4/hooks.m4: bumped versions
 
-       * NEWS, lib/gnutls_pubkey.c, lib/gnutls_state.c: Relax strict
-       DSA/ECDSA checks to allow broader interoperability. Stronger hash
-       algorithms are now allowed even if DSA might only allow SHA1.
+2012-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am: updated doc
 
-       * lib/gnutls_dh.c: Add sanity checks in Diffie-Hellman key exchange
-       values.
+2012-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/auth/cert.c, lib/gnutls_pcert.c, lib/openpgp/pgp.c,
+       lib/openpgp/privkey.c: Added (back) RFC5081 support in client mode.
 
-       * lib/nettle/mpi.c: corrected DH generation check.
+2012-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/auth/cert.c, lib/auth/cert.h, lib/gnutls_pcert.c,
+       lib/gnutls_pubkey.c, lib/includes/gnutls/openpgp.h,
+       lib/openpgp/pgp.c, lib/openpgp/privkey.c: Several OpenPGP updates.  Removed compatibility code with RFC5081.  The
+       gnutls_openpgp_*_get_subkey_*() functions return the master key
+       parameters if provided with GNUTLS_OPENPGP_MASTER_KEYID_IDX.
 
-       * doc/Makefile.am: updated
+2012-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/cli.c: do not set verify_flags
 
-       * NEWS, lib/gnutls_buffers.c, lib/gnutls_handshake.c,
-       lib/includes/gnutls/gnutls.h.in: gnutls_record_check_pending
-       functionality was divided to gnutls_record_check_pending and
-       gnutls_record_check_unprocessed.
+2012-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/includes/gnutls/ocsp.h, lib/x509/ocsp.c: 
+       gnutls_ocsp_resp_check_crt() accepts the response index.
 
-       * lib/gnutls_int.h: doc updates
+2012-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/gnutls_errors.c, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/ocsp.h, lib/libgnutls.map, lib/x509/ocsp.c: 
+       Added gnutls_ocsp_resp_check_crt() to check whether the OCSP
+       response corresponds to the given certificate.
 
-       * lib/nettle/mpi.c: refuse to generate small group sizes.
+2012-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/ext/session_ticket.c, lib/gnutls_handshake.c,
+       lib/gnutls_handshake.h, lib/gnutls_int.h: Backported fix for
+       receiving session tickets during session resumption.
 
-       * configure.ac: do not check for fchmod
+2012-09-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: released 3.0.24
 
-       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi: updated
-       documentation for dtls.
+2012-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * src/certtool-args.def: updated documentation
+2012-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/opencdk/kbnode.c, lib/opencdk/main.h, lib/opencdk/misc.c,
+       lib/opencdk/read-packet.c, lib/opencdk/stream.c,
+       lib/opencdk/write-packet.c: reduced verbosity and better debugging.
 
-       * tests/mini-loss-time.c: Revert "avoid killing child" This reverts commit 4965c2fbfd3405e2dfe7f7d747d03185d155c2a1.
+2012-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/opencdk/new-packet.c: Corrected bug in PGP subpacket encoding
 
-       * NEWS: documented fixes
+2012-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: doc update
 
-       * src/certtool.c: do not print Key ID in a pkcs12 structure if it is
-       null.
+2012-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_session_pack.c: small fix
 
-       * src/common.c: raw_to_string no longer returns NULL.
+2012-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/Makefile.am, tests/chainverify-unsorted.c: removed test
+       depending on 3.1 functions.
 
-       * tests/pkcs12-decode/pkcs12: improved test and added debugging
+2012-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/privkey.c: corrected bug in gnutls_x509_privkey_sign_data
 
-       * lib/gnutls_sig.c: corrected comparison
+2012-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/auth/cert.c, lib/auth/dh_common.c, lib/auth/rsa.c,
+       lib/auth/rsa_export.c, lib/auth/srp_passwd.c, lib/crypto-backend.c,
+       lib/ext/safe_renegotiation.c, lib/gnutls_constate.c,
+       lib/gnutls_handshake.c, lib/gnutls_session_pack.c,
+       lib/gnutls_str.c, lib/gnutls_x509.c, lib/nettle/pk.c,
+       lib/opencdk/armor.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
+       lib/opencdk/stream.c, lib/opencdk/write-packet.c, lib/pkcs11.c,
+       lib/x509/ocsp_output.c: several cleanups
 
-       * gl/Makefile.am, gl/dirent.in.h, gl/m4/math_h.m4,
-       gl/m4/stdio_h.m4, gl/m4/warn-on-use.m4, gl/m4/warnings.m4,
-       gl/math.in.h, gl/stdio.in.h, gl/stdlib.in.h, gl/string.in.h,
-       gl/tests/strerror_r.c, gl/tests/test-float.c, gl/tests/test-math.c,
-       gl/wchar.in.h, maint.mk: updated gnulib
+2012-09-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am, doc/manpages/Makefile.am: updated makefiles
 
-       * doc/cha-upgrade.texi: Added more deprecated functions
+2012-09-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac, m4/hooks.m4: bumped version
 
-       * gl/override/tests/test-float.c.diff: avoid the floating point
-       test.
+2012-09-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, doc/cha-gtls-app.texi, lib/gnutls_dtls.c,
+       lib/gnutls_dtls.h, lib/gnutls_int.h, lib/gnutls_record.c: Correctly
+       restore gnutls_record_recv() in DTLS mode if interrupted during the
+       retrasmition of handshake data.
 
-       * tests/mini-dtls-rehandshake.c, tests/mini-loss-time.c,
-       tests/mini-record.c, tests/mini-termination.c,
-       tests/openpgp-auth.c, tests/openpgp-auth2.c: use AF_UNIX for
-       socketpair.
+2012-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * Makefile.am, doc/Makefile.am: compare-makefile is only executed
+       during make dist.
 
-       * cross.mk: updated
+2012-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * configure.ac: make dist will also make lzip compressed tarball
+2012-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: do not complain on overlength strings
 
-       * lib/accelerated/x86/hmac-padlock.c, lib/algorithms.h,
-       lib/algorithms/kx.c, lib/algorithms/mac.c, lib/crypto-api.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_constate.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_pk.c,
-       lib/gnutls_pubkey.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/includes/gnutls/crypto.h, lib/opencdk/armor.c,
-       lib/opencdk/misc.c, lib/opencdk/new-packet.c, lib/x509/ocsp.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h: several
-       type changes to please clang
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_cert.c, lib/gnutls_ui.c, lib/includes/gnutls/x509.h,
+       lib/x509/verify-high.c, tests/chainverify-unsorted.c: Added
+       verification flags GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN, which is
+       enabled by default for verifying TLS sessions.
 
-       * NEWS: set release date
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/verify-high.c, tests/Makefile.am,
+       tests/chainverify-unsorted.c: Added function to sort the provided
+       certificate chain prior to verification.
 
-       * NEWS, lib/minitasn1/decoding.c: updated libtasn1
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/x509.c, lib/x509/x509_int.h: avoid duplicate asn1
+       structure initialization.
 
-       * doc/Makefile.am: removed old function.
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_pubkey.c: fix ECDSA issues with openssl
 
-       * configure.ac, m4/hooks.m4: bumped versions
+2012-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_pubkey.c: Be tolerant is ECDSA-violating signatures.
 
-       * lib/includes/gnutls/gnutls.h.in: removed function that didn't
-       exist
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented updates
 
-       * tests/mini-termination.c: initialize value
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_sig.c: corrected prototype.
 
-       * tests/mini-loss-time.c: avoid killing child
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/mpi.c, lib/x509/x509_int.h: removed old libtasn1
+       requirements
 
-       * tests/mini-dtls-rehandshake.c: avoid closing fd[1] on server. For
-       some reason it makes connection fail.
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/verify-high.c: MAX_NAME_SIZE -> MAX_SERVER_NAME_SIZE
 
-       * doc/Makefile.am: Add FUNCS to distribution
+2012-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/x509.c: Use the new asn1_read_node_value()
 
-       * .gitignore, NEWS, lib/gnutls_record.c, tests/Makefile.am,
-       tests/mini-dtls-rehandshake.c, tests/mini-record.c,
-       tests/mini-termination.c: Make sure that
-       GNUTLS_E_PREMATURE_TERMINATION is returned if there is premature
-       termination.
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
+       lib/minitasn1/element.c, lib/minitasn1/errors.c,
+       lib/minitasn1/gstr.c, lib/minitasn1/int.h,
+       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
+       lib/minitasn1/version.c: updated minitasn1 to 2.14.
 
-       * tests/dtls/dtls-stress.c: do not build test with timers when posix
-       timers are not present.
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/Makefile.am, m4/hooks.m4: Use the pkg-config macro to find
+       libtasn1.
 
-       * lib/opencdk/keydb.c, lib/opencdk/literal.c: corrected types
+2012-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
+       lib/gnutls_cipher.c, lib/gnutls_int.h, lib/gnutls_priority.c,
+       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in: use a
+       %STATELESS_COMPRESSION priority string instead of gnutls_init()
+       flag.
 
-       * lib/x509/ocsp.c: use correct type in snprintf.
+2012-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/certtool.c: Do not ask unnecessary questions when signing a
+       certificate (request).
 
-       * lib/includes/gnutls/compat.h: added prototypes for inline
-       functions (some gcc versions couldn't compile without)
+2012-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented update
 
-       * lib/auth/cert.c, lib/gnutls_auth.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_ui.c: even more
-       cleanups
+2012-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/cha-intro-tls.texi, lib/gnutls_cipher.c,
+       lib/gnutls_compress.c, lib/gnutls_compress.h, lib/gnutls_int.h,
+       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in: Added
+       GNUTLS_STATELESS_COMPRESSION flag to gnutls_init().
 
-       * lib/auth/cert.c, lib/auth/cert.h, lib/auth/dhe.c, lib/auth/rsa.c,
-       lib/auth/rsa_export.c, lib/auth/srp_rsa.c: more cleanups
+2012-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented update
 
-       * cross.mk: updated
+2012-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_int.h, lib/gnutls_priority.c, lib/gnutls_sig.c: Key
+       usage violations are allowed when the COMPAT keyword is specified.  I've noticed in the SSL observatory data that most key usage bits in
+       a certificate are set randomly (e.g., there are DSA certificates
+       marked for encryption, and most RSA certificates marked for
+       signature only are used for encryption anyway). There is no point of
+       being strict in such environment.
 
-       * tests/ocsp.c, tests/openpgp-auth2.c, tests/resume-dtls.c: Fixes
-       for win32 and time. OCSP test now sets a fixed time to avoid
-       expiration errors.
+2012-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am, lib/Makefile.am: Refer to files with explicit
+       path. Patch by LRN.
 
-       * lib/auth/cert.c, lib/auth/cert.h, lib/auth/dhe.c, lib/auth/rsa.c,
-       lib/auth/rsa_export.c, lib/auth/srp_rsa.c: simplified internal
-       function names.
+2012-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/tests/ioctl.c: win32 fix. Patch by LRN.
 
-       * m4/hooks.m4: improvements in long long usage
+2012-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/libopts/Makefile.am: libopts depends on libintl. Patch by LRN.
 
-       * lib/accelerated/cryptodev.c: corrected probing of cryptodev
-       digests.
+2012-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls.asn, lib/gnutls_asn1_tab.c, lib/pkix.asn,
+       lib/pkix_asn1_tab.c: small optimizations in ASN.1 to save memory
 
-       * NEWS, lib/accelerated/x86/aes-x86.h, m4/hooks.m4: Do not assume
-       sizeof(unsigned long)==sizeof(void*).  Based on patch by B. Scott
-       Michel.
+2012-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am, doc/gnutls.texi: backported the short function
+       inclusion
 
-       * src/libopts/genshell.h: include libintl. Patch by B. Scott Michel
+2012-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am: Added missing files
 
-       * src/libopts/Makefile.am, src/libopts/genshell.h: Revert "use
-       header files from gl/ and include gettext.h" This reverts commit 6b3d7b6e31ddab337e185922910262d68f1fc6fa.
+2012-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-       * src/libopts/Makefile.am, src/libopts/genshell.h: use header files
-       from gl/ and include gettext.h
+2012-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/abstract_int.h, lib/ext/signature.c,
+       lib/gnutls_pubkey.c, lib/gnutls_sig.c: Be tolerant in
+       ECDSA-violating signatures.
 
-       * doc/examples/ex-cxx.cpp: more warnings to silence.
+2012-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/suite/testcompat-main: Added server mode tests for the
+       various EC curves.
 
-       * NEWS: updated
+2012-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/certs/cert-ecc256.pem, tests/certs/cert-ecc384.pem,
+       tests/certs/cert-ecc521.pem, tests/certs/ecc256.pem,
+       tests/certs/ecc384.pem, tests/certs/ecc521.pem,
+       tests/suite/testcompat-main: Added suite for ECDSA under various
+       curves
 
-       * doc/examples/ex-serv-anon.c: silence warnings. Patch by B. Scott
-       Michel.
+2012-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented fix
 
-       * doc/scripts/getfuncs.pl, lib/includes/gnutls/compat.h: Added
-       doc-skip to skip certain functions from documentation.
+2012-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/serv.c: On Linux with /proc/sys/net/ipv6/bindv6only == 0
+       (which is now the default), gnutls-serv cannot listen on ipv6. Patch
+       by Bernhard R. Link.
 
-       * lib/includes/gnutls/compat.h: remove brackets.
+2012-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented fix
 
-       * lib/includes/gnutls/compat.h: Cleaned up deprecated types and
-       added a deprecation warning on them.
+2012-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/pkcs11_privkey.c: fix DSA and ECDSA signing in smart cards.
 
-       * lib/includes/gnutls/compat.h: Provide compatibility inline
-       functions for gnutls_session_get_server_random() and
-       gnutls_session_get_client_random().
+2012-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/common.c: null terminate the certificate being print
 
-       * NEWS, lib/accelerated/x86/aes-padlock.c: Only call
-       check_phe_partial() if PHE has been detected.
+2012-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Simon Josefsson <simon@josefsson.org>
+       * lib/x509/privkey_pkcs8.c: Prevent the usage of strlen() on null
+       values.
 
-       * README-alpha: Update bootstrapping instructions.
+2012-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Simon Josefsson <simon@josefsson.org>
+       * lib/ext/signature.c: When selecting a session signature algorithm
+       consider the enabled.
 
-       * .gitignore, doc/Makefile.am: Tell automake about all filenames to
-       fix 'make distcheck'.
+2012-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Simon Josefsson <simon@josefsson.org>
+       * src/Makefile.am: Link srptool with libintl. Suggested by B. Scott
+       Michel.
 
-       * README-alpha: Clarify bootstrapping.
+2012-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Simon Josefsson <simon@josefsson.org>
+       * cfg.mk, doc/Makefile.am: the new makeinfo sets the FLOAT_NAME by
+       default.
 
-       * doc/manpages/Makefile.am: Generated.
+2012-08-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Simon Josefsson <simon@josefsson.org>
+       * cfg.mk: corrected html generation
 
-       * doc/Makefile.am: Build functions/ files (this should be done by
-       listing all files instead).
+2012-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-21  Simon Josefsson <simon@josefsson.org>
+       * cfg.mk: updated html doc
 
-       * gl/Makefile.am, gl/fpucw.h, gl/glthread/threadlib.c,
-       gl/isnanf-nolibm.h, gl/m4/frexpl.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/ldexpl.m4, gl/m4/math_h.m4, gl/m4/timer_time.m4,
-       gl/math.in.h, gl/tests/Makefile.am, gl/tests/glthread/threadlib.c,
-       gl/tests/macros.h, gl/tests/randomd.c, gl/tests/randoml.c,
-       gl/tests/test-frexp.c, gl/tests/test-frexp.h,
-       gl/tests/test-frexpl.c, gl/tests/test-math.c, maint.mk: Update
-       gnulib files.
+2012-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am, doc/gnutls.texi: use  FLOAT_NAME_IN_XREF
 
-       * NEWS, devel/perlasm/e_padlock-x86.pl,
-       devel/perlasm/e_padlock-x86_64.pl, devel/perlasm/ghash-x86.pl,
-       lib/accelerated/x86/README,
-       lib/accelerated/x86/coff/padlock-x86-64-coff.s,
-       lib/accelerated/x86/coff/padlock-x86-coff.s,
-       lib/accelerated/x86/elf/padlock-x86-64.s,
-       lib/accelerated/x86/license.txt,
-       lib/accelerated/x86/macosx/padlock-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/padlock-x86-macosx.s: updated openssl
-       code
+2012-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-19  Simon Josefsson <simon@josefsson.org>
+       * lib/gnutls_rsa_export.c: corrected typo
 
-       * lib/includes/gnutls/compat.h: Remove TLS_RANDOM_SIZE and
-       TLS_MASTER_SIZE compat mappings.
+2012-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * cross.mk: bumped version
 
-       * .gitignore, NEWS, doc/cha-upgrade.texi, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Added
-       gnutls_session_get_random()
+2012-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am, doc/gnutls.texi: better doc output
 
-       * NEWS, lib/libgnutls.map: added missing function
+2012-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: corrected news entry.
 
-       * m4/hooks.m4: better error message
+2012-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-       * doc/scripts/mytexi2latex: updated
+2012-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * doc/Makefile.am, doc/cha-upgrade.texi, doc/gnutls.texi,
-       doc/latex/Makefile.am, doc/latex/gnutls.tex: Added chapter to
-       describe changes needed when upgrading.
+2012-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/privkey_pkcs8.c: Revert "Do not crash if password is null
+       and GNUTLS_PKCS_PLAIN is not specified." This allows decrypting PKCS
+       #12 structures that are encrypted with a NULL password (which is
+       different than empty).  This reverts commit 7b20e72332e3e5238e8236375a2a82b1387e2e06.
 
-       * doc/cha-library.texi: doc update
+2012-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented update
 
-       * NEWS, lib/includes/gnutls/x509.h, lib/libgnutls.map,
-       lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/crl.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/output.c, lib/x509/x509.c,
-       lib/x509/x509_write.c, tests/cert-tests/template-test.pem: Added
-       gnutls_x509_crt_set_private_key_usage_period() and
-       gnutls_x509_crt_get_private_key_usage_period(). The time stored in
-       generated certificates is now GeneralizedTime.
+2012-07-26  Petr Písař <petr.pisar@atlas.cz>
 
-2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/certtool.c: Respect certtool --hash when signing request and
+       CRL The certtool hard-codes the digest algorithm despite '--hash' option
+       exists.  This patch allows user to choose the algorithm when signing
+       certificate request or certificate revocation list.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: changed debugging level for message
+2012-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/openpgp-auth.c, tests/openpgp-auth2.c: use stack for file
+       paths
 
-       * lib/algorithms/ciphersuites.c: corrected ciphersuite number
+2012-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/scripts/mytexi2latex: handle noindent
 
-       * lib/gnutls_handshake.c: Added debugging message when encounter an
-       invalid ciphersuite.
+2012-07-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: Check for /etc/ssl/cert.pem in OpenBSD. Reported by
+       David Woodhouse and Mike Miller.
 
-       * NEWS, src/certtool.c: Applied patch to cast days to (time_t)
-       before converting it to seconds to prevent a Y2K38 bug. Patch by
-       Robert Millan.
+2012-07-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/openpgp-auth.c, tests/openpgp-auth2.c: Avoid the usage of
+       alloca(). Reported by Rob McMahon.
 
-       * doc/Makefile.am, doc/gnutls.texi, doc/scripts/split-texi.pl: 
-       texinfo documentation is similar to the printed manual.
+2012-07-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/nettle/cipher.c: Avoid returning from void function. Patch by
+       Rob McMahon.
 
-       * NEWS, configure.ac, cross.mk, m4/hooks.m4: bumped version
+2012-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/verify-high.c: When verifying a certificate chain make
+       sure it is chain.  If the chain is interrupted (wrong) at some point then truncate,
+       only try to verify the correct part. Patch by David Woodhouse.
 
-       * lib/gnutls_pubkey.c, lib/x509/crq.c, lib/x509/x509.c: corrected
-       the documentation of the verification functions.
+2012-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/certtool-common.c: added support for legacy sec-param.
 
-       * NEWS: released 3.0.16
+2012-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-       * configure.ac: enable_local_libopts is by default no
+2012-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_ui.c: removed warning for bits==512
 
-       * m4/hooks.m4: bumped shared lib version
+2012-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented fix
 
-       * NEWS, lib/includes/gnutls/x509.h, lib/libgnutls.map,
-       lib/x509/x509_write.c, src/certtool-args.def, src/certtool-cfg.c,
-       src/certtool-cfg.h, src/certtool.c: Added
-       gnutls_x509_crt_set_authority_info_access.
+2012-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/privkey.c: Handle EC DER keys.
 
-       * lib/accelerated/x86/README: updated
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am: Added missing functions
 
-       * devel/perlasm/license-gnutls.txt, devel/perlasm/license.txt,
-       lib/accelerated/x86/coff/appro-aes-gcm-x86-64-coff.s,
-       lib/accelerated/x86/coff/appro-aes-x86-64-coff.s,
-       lib/accelerated/x86/coff/appro-aes-x86-coff.s,
-       lib/accelerated/x86/coff/cpuid-x86-64-coff.s,
-       lib/accelerated/x86/coff/cpuid-x86-coff.s,
-       lib/accelerated/x86/coff/padlock-x86-64-coff.s,
-       lib/accelerated/x86/coff/padlock-x86-coff.s,
-       lib/accelerated/x86/elf/appro-aes-gcm-x86-64.s,
-       lib/accelerated/x86/elf/appro-aes-x86-64.s,
-       lib/accelerated/x86/elf/appro-aes-x86.s,
-       lib/accelerated/x86/elf/cpuid-x86-64.s,
-       lib/accelerated/x86/elf/cpuid-x86.s,
-       lib/accelerated/x86/elf/padlock-x86-64.s,
-       lib/accelerated/x86/elf/padlock-x86.s,
-       lib/accelerated/x86/macosx/appro-aes-gcm-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/appro-aes-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/appro-aes-x86-macosx.s,
-       lib/accelerated/x86/macosx/cpuid-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/cpuid-x86-macosx.s,
-       lib/accelerated/x86/macosx/padlock-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/padlock-x86-macosx.s: updated licenses
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented update
 
-       * cfg.mk, lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/asm-coff/appro-aes-gcm-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/appro-aes-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/appro-aes-x86-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
-       lib/accelerated/x86/asm-coff/padlock-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/padlock-x86-coff.s,
-       lib/accelerated/x86/asm-macosx/appro-aes-gcm-x86-64-macosx.s,
-       lib/accelerated/x86/asm-macosx/appro-aes-x86-64-macosx.s,
-       lib/accelerated/x86/asm-macosx/appro-aes-x86-macosx.s,
-       lib/accelerated/x86/asm-macosx/cpuid-x86-64-macosx.s,
-       lib/accelerated/x86/asm-macosx/cpuid-x86-macosx.s,
-       lib/accelerated/x86/asm-macosx/padlock-x86-64-macosx.s,
-       lib/accelerated/x86/asm-macosx/padlock-x86-macosx.s,
-       lib/accelerated/x86/asm/appro-aes-gcm-x86-64.s,
-       lib/accelerated/x86/asm/appro-aes-x86-64.s,
-       lib/accelerated/x86/asm/appro-aes-x86.s,
-       lib/accelerated/x86/asm/cpuid-x86-64.s,
-       lib/accelerated/x86/asm/cpuid-x86.s,
-       lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s,
-       lib/accelerated/x86/coff/appro-aes-gcm-x86-64-coff.s,
-       lib/accelerated/x86/coff/appro-aes-x86-64-coff.s,
-       lib/accelerated/x86/coff/appro-aes-x86-coff.s,
-       lib/accelerated/x86/coff/cpuid-x86-64-coff.s,
-       lib/accelerated/x86/coff/cpuid-x86-coff.s,
-       lib/accelerated/x86/coff/padlock-x86-64-coff.s,
-       lib/accelerated/x86/coff/padlock-x86-coff.s,
-       lib/accelerated/x86/elf/appro-aes-gcm-x86-64.s,
-       lib/accelerated/x86/elf/appro-aes-x86-64.s,
-       lib/accelerated/x86/elf/appro-aes-x86.s,
-       lib/accelerated/x86/elf/cpuid-x86-64.s,
-       lib/accelerated/x86/elf/cpuid-x86.s,
-       lib/accelerated/x86/elf/padlock-x86-64.s,
-       lib/accelerated/x86/elf/padlock-x86.s,
-       lib/accelerated/x86/macosx/appro-aes-gcm-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/appro-aes-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/appro-aes-x86-macosx.s,
-       lib/accelerated/x86/macosx/cpuid-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/cpuid-x86-macosx.s,
-       lib/accelerated/x86/macosx/padlock-x86-64-macosx.s,
-       lib/accelerated/x86/macosx/padlock-x86-macosx.s: renamed asm
-       directories.
+2012-06-30  David Woodhouse <David.Woodhouse@intel.com>
 
-2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_record.c: Return GNUTLS_E_LARGE_PACKET instead of
+       truncating when sending DTLS record Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented update
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_dtls.c: fix
 
-       * lib/accelerated/x86/Makefile.am: corrected makefile
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_dtls.c: no need to check for DTLS
 
-       * configure.ac: Added missing elf part.
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_dtls.c: no need for _gnutls prefix.
 
-       * cfg.mk, configure.ac, lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/asm-macosx/appro-aes-gcm-x86-64-macosx.s,
-       lib/accelerated/x86/asm-macosx/appro-aes-x86-64-macosx.s,
-       lib/accelerated/x86/asm-macosx/appro-aes-x86-macosx.s,
-       lib/accelerated/x86/asm-macosx/cpuid-x86-64-macosx.s,
-       lib/accelerated/x86/asm-macosx/cpuid-x86-macosx.s,
-       lib/accelerated/x86/asm-macosx/padlock-x86-64-macosx.s,
-       lib/accelerated/x86/asm-macosx/padlock-x86-macosx.s: Added assembly
-       for macosx
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_dtls.c: only block ciphers need 1 byte padding.
 
-       * doc/cha-gtls-app.texi: corrected typo
+2012-06-29  David Woodhouse <David.Woodhouse@intel.com>
 
-2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_dtls.c: Fix documentation for gnutls_dtls_set_mtu() It *isn't* the interface MTU, it's the transport MTU.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-verify-ssh.c: reduced lines
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: documented update
 
-       * src/certtool-args.def, src/p11tool-args.def: doc updates
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_dtls.c: sign fixes
 
-       * src/certtool-args.def: added spacing
+2012-06-29  David Woodhouse <David.Woodhouse@intel.com>
 
-2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_dtls.c, lib/includes/gnutls/dtls.h, lib/libgnutls.map: 
+       Add gnutls_dtls_set_data_mtu() Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/srp/Makefile.am, tests/srp/mini-srp.c, tests/srp/tpasswd,
-       tests/srp/tpasswd.conf: generate tpasswd files on the spot.
+2012-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/gnutls_dtls.c, lib/gnutls_int.h, lib/gnutls_state.c,
+       lib/gnutls_state.h: gnutls_dtls_get_data_mtu() is more precise.
+       Based on patch by David Woodhouse.
 
-       * tests/ca.pem, tests/enc3pkcs8.pem, tests/test1.pem,
-       tests/test10.pem, tests/test13.pem, tests/test2.pem,
-       tests/test20.pem, tests/test21.pem, tests/test22.pem,
-       tests/test23.pem, tests/test24.pem, tests/test25.pem,
-       tests/test26.pem, tests/test3.pem, tests/x509_test.c: removed unused
+2012-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+
+       * .gitignore, src/certtool-args.c, src/certtool-args.h,
+       src/cli-args.c, src/cli-args.h, src/cli-debug-args.c,
+       src/cli-debug-args.h, src/ocsptool-args.c, src/ocsptool-args.h,
+       src/p11tool-args.c, src/p11tool-args.h, src/psk-args.c,
+       src/psk-args.h, src/serv-args.c, src/serv-args.h,
+       src/srptool-args.c, src/srptool-args.h: Added autogen generated
        files.
 
-2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: stamp_enums is shipped to avoid regenerating
-       parts of doc
+       * lib/gnutls_buffers.c: cleaned up errno handling.
 
-2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README: corrected urls
+       * NEWS, doc/cha-gtls-app.texi, lib/gnutls_buffers.c,
+       lib/gnutls_errors.c, lib/gnutls_record.c, lib/system.c: Return
+       GNUTLS_E_LARGE_PACKET when errno is EMSGSIZE
 
-2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, m4/hooks.m4: bumped version.
+       * src/certtool-args.def: do not require load-privkey for to-p12
 
-2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: corrected call to gnutls_error_is_fatal().
+       * NEWS: documented fix
 
-2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated description
+       * lib/pkcs11.c, lib/pkcs11_privkey.c: Use the label when looking for
+       a certificate or private key in PKCS #11.  Patch by David Woodhouse.  Conflicts:        lib/pkcs11.c
 
-2012-03-14  Simon Josefsson <simon@josefsson.org>
+2012-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/libtasn1.h: Update minitasn1.
+       * NEWS: removed crap
 
-2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/suite/Makefile.am, tests/suite/invalid-cert: Added test on
-       an invalid certificate.
+       * NEWS, doc/Makefile.am, lib/algorithms.h,
+       lib/algorithms/ciphersuites.c, lib/algorithms/protocols.c,
+       lib/gnutls_constate.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_kx.c, lib/gnutls_session_pack.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Added support
+       for an old version of the DTLS protocol used by openconnect vpn
+       client for compatibility with Cisco's AnyConnect SSL VPN. It is
+       marked as GNUTLS_DTLS0_9. Do not use it for newer protocols as it
+       has issues.  Conflicts:         NEWS    lib/libgnutls.map
 
-2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-15  Diego Elio Pettenò <flameeyes@flameeyes.eu>
 
-       * lib/minitasn1/decoding.c: updated.
+       * src/Makefile.am: build: make sure to declare the generated source
+       files as BUILT_SOURCES This allows proper building when using parallel make on a multi-core
+       system.  Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/libtasn1.h: more recent libtasn1
+       * tests/dtls/dtls-stress.c: correct comparison of sent data in
+       dtls-stress.
 
-2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/element.h,
-       lib/minitasn1/errors.c, lib/minitasn1/gstr.c, lib/minitasn1/gstr.h,
-       lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/parser_aux.c, lib/minitasn1/parser_aux.h,
-       lib/minitasn1/structure.c, lib/minitasn1/structure.h,
-       lib/minitasn1/version.c: updated included libtasn1
+       * NEWS: documented fix
 
-2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: gnutls-cli honours the --x509fmtder.
+       * lib/x509/privkey_pkcs8.c: Fixed leaks in PKCS #8 decoding
 
-2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: only set the server name if we do not have an IP
-       address.
+       * doc/examples/ex-cert-select-pkcs11.c: documented pin_callback
+       expectations.
 
-2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README: Do not use fixed versions
+       * src/common.c: Print the fingerprint only in the first certificate
+       in the chain.
 
-2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi,
-       lib/includes/gnutls/gnutls.h.in: Documentation updates
+       * doc/cha-gtls-app.texi: corrected function name
 
-2012-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-06  Mark Brand <mabrand@mabrand.nl>
 
-       * lib/accelerated/cryptodev.c: when using cryptodev do not set all
-       the digest function since they are not always faster.
+       * lib/gnutls_x509.c: add missing include wincrypt.h Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/x86/aes-gcm-padlock.c,
-       lib/accelerated/x86/aes-gcm-x86.c: corrected comments.
+       * doc/cha-gtls-app.texi: mention retrieve_function2
 
-2012-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: reset the siop structure on every
-       loop
+       * lib/includes/gnutls/gnutls.h.in: corrected invalid char
 
-2012-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/benchmark-cipher.c: add more space to dst to allow GCM mode
-       tests in cryptodev.
+       * doc/cha-upgrade.texi, doc/latex/Makefile.am: updates in latex
+       build
 
-2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/certtool-args.def, src/certtool-cfg.c,
-       src/certtool-cfg.h, src/certtool.c: certtool may explicitly set the
-       domain component (DC) field of a DN.
+       * doc/latex/gnutls.tex: no need for eurosans
 
-2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/x509.h, src/certtool-args.def: Added a real
-       key purpose OID as example
+       * doc/cha-cert-auth.texi: do not use @euro{}
 
-2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/p11tool-args.def: updated p11tool documentation.
+       * build-aux/ar-lib, build-aux/config.rpath,
+       build-aux/snippet/_Noreturn.h, gl/Makefile.am, gl/errno.in.h,
+       gl/fseeko.c, gl/fstat.c, gl/ftello.c, gl/lseek.c, gl/m4/dup2.m4,
+       gl/m4/errno_h.m4, gl/m4/fseeko.m4, gl/m4/fstat.m4, gl/m4/ftello.m4,
+       gl/m4/ftruncate.m4, gl/m4/getcwd.m4, gl/m4/getdelim.m4,
+       gl/m4/getline.m4, gl/m4/gettimeofday.m4, gl/m4/gnulib-common.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/largefile.m4, gl/m4/lseek.m4,
+       gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/manywarnings.m4,
+       gl/m4/memmem.m4, gl/m4/mmap-anon.m4, gl/m4/off_t.m4,
+       gl/m4/putenv.m4, gl/m4/realloc.m4, gl/m4/setenv.m4,
+       gl/m4/signbit.m4, gl/m4/sleep.m4, gl/m4/stat.m4, gl/m4/strerror.m4,
+       gl/m4/symlink.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_types_h.m4,
+       gl/m4/ungetc.m4, gl/m4/unistd_h.m4, gl/m4/warnings.m4, gl/select.c,
+       gl/stdint.in.h, gl/stdio.in.h, gl/strerror-override.c,
+       gl/strerror-override.h, gl/sys_stat.in.h, gl/sys_types.in.h,
+       gl/tests/binary-io.h, gl/tests/fcntl.in.h, gl/tests/ftruncate.c,
+       gl/tests/ignore-value.h, gl/tests/init.sh, gl/tests/stat.c,
+       gl/tests/test-binary-io.c, gl/tests/test-binary-io.sh,
+       gl/tests/test-errno.c, gl/u64.h, gl/unistd.in.h, ltmain.sh,
+       maint.mk: updated gnulib
 
-2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/p11tool.c: Only set the private status if it has been
-       explicitly specified. That is because some tokens don't want it set.
+       * .gitignore: move files to ignore
 
-2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool.c: The default cipher when encrypting with PKCS12 is
-       AES.
+       * tests/Makefile.am, tests/cert-tests/Makefile.am,
+       tests/cert-tests/ca-certs.pem, tests/certs/ca-certs.pem: moved
+       ca-certs.
 
-2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool-args.def: to-p12 requires the load-certificate and
-       load-privkey.
+       * : updated
 
-2012-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/latex/cover.tex: updated front-page to include all
-       contributors.
+       * NEWS, m4/hooks.m4: bumped version
 
-2012-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-bib.texi, doc/cha-internals.texi, doc/latex/gnutls.bib: 
-       Some updates on supplemental data handling.
+       * NEWS: doc fix
 
-2012-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/safe-renegotiation/Makefile.am: safe renegotiation tests
-       only run under valgrind in the devel environment.
+       * doc/cha-cert-auth2.texi: removed text about function that doesn't
+       exist in this release.
 
-2012-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/latex/gnutls.tex: updated
+       * src/certtool-cfg.c: print warning to stderr
 
-2012-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi, doc/scripts/mytexi2latex: changes in
-       asynchronous documentation
+       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi: doc updates
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented fix
+       * lib/openpgp/pgpverify.c: fixes in openpgp certificate
+       verification.
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/libopts/makeshell.c: Added ifdef HAVE_FCHMOD
+       * lib/libgnutls.map: Removed duplicate entries and added an explicit
+       local.
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-shared-key.texi: More documentation on SRP
+       * lib/pkcs11.c: better function naming.
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/srp/mini-srp.c: Test SRP-RSA and plain SRP.
+       * NEWS: updated
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/srp_rsa.c: Corrected SRP-RSA in TLS 1.2
+       * lib/x509/x509.c: doc updates
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-internals.texi: break line on long string.
+       * lib/includes/gnutls/gnutls.h.in: corrected text
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk, cross.mk: small updates
+       * lib/x509/verify.c: corrected typo
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-client-psk.c: Corrected PSK client example.
+       * lib/gnutls_ui.c: typo fix
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/srp/Makefile.am: Added missing files.
+       * lib/x509/privkey.c: documented behavior.
 
-2012-03-02  Carolin Latze <latze@angry-red-pla.net>
+2012-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-internals.texi: supp data doc added Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/privkey_pkcs8.c: Do not crash if password is null and
+       GNUTLS_PKCS_PLAIN is not specified.
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: released 3.0.15
+       * .gitignore, lib/gnutls_buffers.c, tests/Makefile.am,
+       tests/certs/ca-certs.pem, tests/mini-x509-cas.c: Corrected handling
+       of handshake packets that span multiple records.
 
-2012-03-02  Simon Josefsson <simon@josefsson.org>
+2012-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/reference/gnutls-docs.sgml: Fix index with new 3.0.x symbols.
+       * doc/cha-gtls-app.texi: documentation update
 
-2012-03-02  Simon Josefsson <simon@josefsson.org>
+2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/ocsp.h,
-       lib/verify-tofu.c: Doc fixes for GTK-DOC.
+       * : added missing file
 
-2012-03-02  Simon Josefsson <simon@josefsson.org>
+2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c, lib/gnutls_dtls.h: De-inline some dtls
-       functions.  Avoids compiler error on gcc 4.4.5 (Debian Squeeze) that complains
-       about "call is unlikely and code size would grow".
+       * configure.ac, cross.mk, m4/hooks.m4: bumped version
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, configure.ac, tests/Makefile.am,
-       tests/srp/Makefile.am, tests/srp/mini-srp.c, tests/srp/tpasswd,
-       tests/srp/tpasswd.conf: Added SRP test.
+       * lib/gnutls_session_pack.c: corrected data copy
 
-2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/srp_passwd.c, lib/ext/srp.c, lib/gnutls_errors.c: Fixes
-       and memory leak elimination in SRP authentication.
+       * NEWS: documented fix
 
-2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth/srp.c: Eliminate double free during SRP
-       authentication.
+       * src/certtool-cfg.c: MAX_ENTRIES increased to 128.
 
-2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am: corrected version replacement in .texi.
+       * doc/cha-gtls-app.texi: Updated documentation on DTLS.
 
-2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, m4/hooks.m4: bumped version
+       * doc/cha-gtls-examples.texi: updated documentation.
 
-2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: avoid regeneration of header files
+       * doc/Makefile.am: no need to distribute gnutls.ps
 
-2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/pkcs11.c: No longer crash on a pkcs11 object without an
-       ID.
+       * lib/Makefile.am, lib/gnutls_x509.c: Use windows trusted
+       certificate store.
 
-2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated
+       * configure.ac, lib/gnutls_x509.c: Added the notion of a default CRL
+       file.
 
-2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/mini-record.c: eliminated memory leaks in new test.
+       * doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/cha-shared-key.texi, doc/examples/ex-client-x509.c,
+       doc/manpages/Makefile.am: documentation updates
 
-2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented fix
+       * lib/gnutls_cert.c: updated doc
 
-2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, tests/Makefile.am, tests/mini-record.c: Added test for
-       invalid record packet sizes.
+       * src/common.h: no need for netinet/ip.h
 
-2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_mbuffers.c, lib/gnutls_record.c: 
-       artistic changes.
+       * src/cli.c: no need for default_ca_file
 
-2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_mbuffers.c: corrected copying of buffers.
+       * lib/x509/verify.c: When checking for an issuer check for a match
+       in the key identifiers.
 
-2012-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: corrected check_command() input
+       * doc/cha-gtls-app.texi: Added text for gnutls_dh_set_prime_bits and
+       gnutls_srp_set_prime_bits
 
-2012-02-29  Simon Josefsson <simon@josefsson.org>
+2012-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/Makefile.am, gl/m4/fpieee.m4, gl/m4/math_h.m4, gl/math.in.h: 
-       Update gnulib files.
+       * lib/gnutls_ui.c: Document the effect of lowering the DH bits.
 
-2012-02-29  Simon Josefsson <simon@josefsson.org>
+2012-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/libopts/Makefile.am, src/libopts/ag-char-map.h,
-       src/libopts/ao-strs.c, src/libopts/ao-strs.h,
-       src/libopts/autoopts/options.h, src/libopts/autoopts/usage-txt.h,
-       src/libopts/genshell.c, src/libopts/genshell.h,
-       src/libopts/m4/libopts.m4, src/libopts/makeshell.c,
-       src/libopts/proto.h, src/libopts/value-type.h,
-       src/libopts/xat-attribute.h: Update to autogen 5.15.
+       * doc/examples/ex-client-x509.c, doc/examples/ex-serv-x509.c,
+       lib/gnutls_x509.c: Be more conservative with examples.
+       gnutls_certificate_set_x509_system_trust() returns
+       GNUTLS_E_UNIMPLEMENTED_FEATURE on systems that do not have a (known)
+       default trust store.
 
-2012-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c: changes in packet parsing.
+       * doc/examples/ex-client-dtls.c, doc/examples/ex-client-resume.c,
+       doc/examples/ex-client-srp.c, doc/examples/ex-client-x509.c: Revert
+       "updated examples" This reverts commit 559614fc7a288bf6eaf36ebe696e07b150c96be5.
 
-2012-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * THANKS, src/common.c: Do not call gnutls_x509_crt_check_hostname()
-       if hostname eq NULL. Reported by Matthew Hall.
+       * src/cli.c, src/common.c: Print certificate if --print-cert is
+       given, even on verification failure.
 
-2012-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi, lib/gnutls_state.c: Updated documentation
-       on gnutls_prf()
+       * src/certtool-args.def: documented uri option
 
-2012-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated
+       * configure.ac: Revert "This patch fixes following kind of issue
+       with automake 1.12" It was suggested that this need not to be solved
+       by gnutls.  This reverts commit ace8a662ff90679c575658e787f48577e2fd5940.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: re-updated
+       * NEWS, src/certtool-cfg.c, src/certtool-cfg.h, src/certtool.c,
+       tests/cert-tests/template-test.pem: Added support for the URI type
+       of subject alternative name in certtool.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: Revert "always link against the distributed libopts" This reverts commit ae3033fee01f058a028406648ebc32294774e282.
+       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi,
+       doc/cha-intro-tls.texi: updated examples and documentation.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am: replace @VERSION@ in the program documentation.
+       * doc/examples/ex-client-dtls.c, doc/examples/ex-client-resume.c,
+       doc/examples/ex-client-srp.c, doc/examples/ex-client-x509.c: updated
+       examples
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README-alpha: document autogen minimum version
+       * NEWS, lib/gnutls_x509.c, lib/libgnutls.map: fixes in patch.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-08  Ludwig Nussel <ludwig.nussel@suse.de>
 
-       * NEWS, lib/accelerated/cryptodev.c: Updated cryptodev code.  Hash
-       reset is being performed in a single ioctl() with update and TLS
-       versions (<1.1) that do not have explicit IV are correctly handled.
+       * configure.ac, doc/Makefile.am, doc/manpages/Makefile.am,
+       lib/gnutls_x509.c, lib/includes/gnutls/gnutls.h.in,
+       lib/libgnutls.map, src/cli.c: introduce
+       gnutls_certificate_set_x509_system_trust gnutls_certificate_set_x509_system_trust() imports the trusted root
+       CA's from a compile time defined location. That way applications
+       don't need to know.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/mini-dtls-rehandshake.c: added all cases.
+       * doc/Makefile.am: added new functions
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev-gcm.c: removed debugging
+       * README-alpha, src/libopts/Makefile.am, src/libopts/ag-char-map.h,
+       src/libopts/ao-strs.c, src/libopts/ao-strs.h,
+       src/libopts/autoopts.c, src/libopts/autoopts.h,
+       src/libopts/autoopts/options.h, src/libopts/autoopts/project.h,
+       src/libopts/autoopts/usage-txt.h, src/libopts/boolean.c,
+       src/libopts/check.c, src/libopts/compat/compat.h,
+       src/libopts/compat/pathfind.c, src/libopts/configfile.c,
+       src/libopts/cook.c, src/libopts/enum.c, src/libopts/env.c,
+       src/libopts/find.c, src/libopts/genshell.c, src/libopts/genshell.h,
+       src/libopts/libopts.c, src/libopts/load.c,
+       src/libopts/m4/libopts.m4, src/libopts/makeshell.c,
+       src/libopts/nested.c, src/libopts/parse-duration.c,
+       src/libopts/pgusage.c, src/libopts/proto.h, src/libopts/putshell.c,
+       src/libopts/reset.c, src/libopts/save.c, src/libopts/stack.c,
+       src/libopts/streqvcmp.c, src/libopts/tokenize.c,
+       src/libopts/usage.c, src/libopts/value-type.h,
+       src/libopts/xat-attribute.h: updated libopts
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev-gcm.c, lib/accelerated/cryptodev.c: 
-       simplified gcm registration in cryptodev.
+       * NEWS, doc/cha-cert-auth2.texi, lib/abstract_int.h,
+       lib/algorithms.h, lib/algorithms/sign.c, lib/ext/signature.c,
+       lib/gnutls_pubkey.c, lib/gnutls_sig.c,
+       lib/includes/gnutls/abstract.h, lib/includes/gnutls/gnutls.h.in,
+       lib/libgnutls.map, lib/x509/verify.c, lib/x509/x509.c,
+       lib/x509/x509_int.h, tests/x509sign-verify.c: Added
+       gnutls_pubkey_verify_hash2() and gnutls_pk_to_sign().
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-args.def: doc updates
+       * configure.ac: This patch fixes following kind of issue with
+       automake 1.12 | automake: warnings are treated as errors |
+       /.../automake-1.12/am/ltlibrary.am: warning: 'libgnutls.la': linking
+       libtool libraries using a non-POSIX |
+       /.../automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR'
+       in 'configure.ac' Patch by: Nitin A Kamble <nitin.a.kamble@intel.com>
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented updates
+       * lib/gnutls_sig.c: Corrected allocation check
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: If a client hello is received immediately
-       after a completed handshake delete the async_timer to rehandshake.
+       * src/libopts/autoopts/options.h: removed redundant declaration.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented fix
+       * devel/perlasm/cpuid-x86_64.pl,
+       lib/accelerated/x86/coff/cpuid-x86-64-coff.s: Corrected win64
+       cpuid() code. Report and patch by Mann Ern Kang.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.h, lib/gnutls_handshake.c: When rehandshake is
-       requested by server force the cleanup of the previous handshake
-       state.
+       * lib/gnutls_mpi.c: corrected bug in scan_nz()
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, tests/Makefile.am, tests/mini-dtls-rehandshake.c,
-       tests/mini-rehandshake.c, tests/mini-x509-rehandshake.c,
-       tests/resume-dtls.c: Added mini-dtls-rehandshake.c to test
-       rehandshake in DTLS.
+       * NEWS, build-aux/config.rpath, configure.ac, m4/hooks.m4: 
+       documented updates and bumped version.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: Corrected session resumption for DTLS
+       * lib/gnutls_dh.c, lib/gnutls_dh.h: corrected typo
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/Makefile.am, tests/mini-loss.c: removed redundant test.
+       * lib/auth/dh_common.c, lib/gnutls_dh.c, lib/gnutls_dh.h: Return
+       proper error code if parameter check fails.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_constate.c, lib/gnutls_dtls.c,
-       lib/gnutls_dtls.h, lib/gnutls_handshake.c, lib/gnutls_record.c: 
-       fixes in DTLS rehandshake and epoch cleanup.
+       * lib/auth/srp.c: Added complete check in SRP parameters.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c, src/common.h, src/serv.c, src/udp-serv.c: 
-       rehandshake command works in udp mode as well.
+       * lib/gnutls_dh.c: Added better sanity checks in Diffie-Hellman key
+       exchange.
 
-2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi, src/ocsptool-args.def,
-       src/p11tool-args.def: properly break lines.
+       * configure.ac: Added option to unconditionally disable crywrap.
+       Patch by Daniel Mierswa.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/cleanup-autogen.pl: updated
+       * lib/verify-tofu.c: Use openpgp if enabled.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/libopts/Makefile.am, src/libopts/ag-char-map.h,
-       src/libopts/alias.c, src/libopts/ao-strs.c, src/libopts/ao-strs.h,
-       src/libopts/autoopts.h, src/libopts/autoopts/options.h,
-       src/libopts/autoopts/usage-txt.h, src/libopts/compat/compat.h,
-       src/libopts/configfile.c, src/libopts/cook.c,
-       src/libopts/genshell.c, src/libopts/genshell.h,
-       src/libopts/m4/libopts.m4, src/libopts/numeric.c,
-       src/libopts/proto.h, src/libopts/putshell.c,
-       src/libopts/value-type.h, src/libopts/xat-attribute.h: Updated
-       libopts.
+       * NEWS, lib/pkcs11.c: If a callback fails try the other.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: always link against the distributed libopts
+       * NEWS, lib/pkcs11.c: by default register a file callback in p11-kit
+       to read a file from the pin-source pkcs11url field.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, src/Makefile.am, tests/dtls/Makefile.am: Link to
-       correct libraries.
+       * po/cs.po.in, po/de.po.in, po/fi.po.in, po/it.po.in, po/nl.po.in,
+       po/pl.po.in, po/sv.po.in, po/uk.po.in, po/vi.po.in: Sync with TP.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dtls/dtls-stress.c: updated headers.
+       * src/Makefile.am, src/cli.c, src/srptool.c: No need to include
+       gettext.h. Link against libintl when needed.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * GNUmakefile, gl/Makefile.am, gl/alloca.in.h, gl/alphasort.c,
-       gl/arpa_inet.in.h, gl/asnprintf.c, gl/asprintf.c, gl/base64.c,
-       gl/base64.h, gl/c-ctype.c, gl/c-ctype.h, gl/errno.in.h,
-       gl/float+.h, gl/fseeko.c, gl/gai_strerror.c, gl/getaddrinfo.c,
-       gl/getdelim.c, gl/getline.c, gl/getpass.c, gl/getpass.h,
-       gl/gettext.h, gl/gettimeofday.c, gl/inet_ntop.c, gl/lseek.c,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/math_h.m4,
-       gl/m4/timer_time.m4, gl/malloc.c, gl/math.in.h, gl/memmem.c,
-       gl/mempcpy.c, gl/minmax.h, gl/msvc-inval.c, gl/msvc-inval.h,
-       gl/msvc-nothrow.c, gl/msvc-nothrow.h, gl/netdb.in.h,
-       gl/netinet_in.in.h, gl/printf-args.c, gl/printf-args.h,
-       gl/printf-parse.c, gl/printf-parse.h, gl/read-file.c,
-       gl/read-file.h, gl/scandir.c, gl/select.c, gl/size_max.h,
-       gl/snprintf.c, gl/stdalign.in.h, gl/stdarg.in.h, gl/stdbool.in.h,
-       gl/stddef.in.h, gl/stdint.in.h, gl/stdio.in.h, gl/str-two-way.h,
-       gl/strcasecmp.c, gl/strdup.c, gl/string.in.h, gl/strings.in.h,
-       gl/strncasecmp.c, gl/strndup.c, gl/strnlen.c, gl/strverscmp.c,
-       gl/sys_select.in.h, gl/sys_socket.in.h, gl/sys_stat.in.h,
-       gl/sys_time.in.h, gl/sys_types.in.h, gl/sys_uio.in.h,
-       gl/tests/glthread/lock.c, gl/tests/glthread/lock.h,
-       gl/tests/glthread/threadlib.c, gl/tests/malloca.c,
-       gl/tests/malloca.h, gl/tests/pathmax.h, gl/tests/pipe.c,
-       gl/tests/sys_ioctl.in.h, gl/tests/test-base64.c,
-       gl/tests/test-fgetc.c, gl/tests/test-fputc.c,
-       gl/tests/test-fread.c, gl/tests/test-fwrite.c,
-       gl/tests/test-getdelim.c, gl/tests/test-getline.c,
-       gl/tests/test-perror.c, gl/tests/test-perror2.c,
-       gl/tests/test-pipe.c, gl/tests/test-strerror.c,
-       gl/tests/test-strerror_r.c, gl/tests/test-strverscmp.c,
-       gl/time.in.h, gl/time_r.c, gl/unistd.in.h, gl/vasnprintf.c,
-       gl/vasnprintf.h, gl/vasprintf.c, gl/vsnprintf.c, gl/wchar.in.h,
-       gl/xsize.h, maint.mk: Added timer_time.
+       * NEWS: no abi change in 3.0.19
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented fix
+       * NEWS, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
+       lib/gnutls_handshake.c, lib/includes/gnutls/gnutls.h.in: 
+       gnutls_record_check_unprocessed is now inline function.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/udp-serv.c: provide accurate value to select
+       * lib/nettle/rnd.c: Update random state on all cases.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/system.c: make sure that the microseconds field does not
-       overflow
+       * gl/tests/ioctl.c: updated gnulib
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/Makefile.am: use valgrind only on development environment.
+       * tests/suite/testcompat-main: Added TLS 1.2 interop tests.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: updated libopts check
+       * NEWS, lib/gnutls_pubkey.c, lib/gnutls_state.c: Relax strict
+       DSA/ECDSA checks to allow broader interoperability. Stronger hash
+       algorithms are now allowed even if DSA might only allow SHA1.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cross.mk: updated
+       * lib/gnutls_dh.c: Add sanity checks in Diffie-Hellman key exchange
+       values.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.ac: Link with local libopts if the installed is an
-       old one.
+       * lib/nettle/mpi.c: corrected DH generation check.
 
-2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/Makefile.am: Added getfuncs.pl to distribution.
+       * doc/Makefile.am: updated
 
-2012-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated NEWS
+       * NEWS, lib/gnutls_buffers.c, lib/gnutls_handshake.c,
+       lib/includes/gnutls/gnutls.h.in: gnutls_record_check_pending
+       functionality was divided to gnutls_record_check_pending and
+       gnutls_record_check_unprocessed.
 
-2012-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev-gcm.c, lib/accelerated/cryptodev.c,
-       lib/accelerated/cryptodev.h: compilation fixes.
+       * lib/gnutls_int.h: doc updates
 
-2012-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/accelerated/Makefile.am,
-       lib/accelerated/cryptodev-gcm.c, lib/accelerated/cryptodev.c,
-       lib/accelerated/cryptodev.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_record.c,
-       tests/slow/cipher-test.c: Added GCM mode using cryptodev. This is
-       mostly a hack due to how GCM mode is exported from kernel.
+       * lib/nettle/mpi.c: refuse to generate small group sizes.
 
-2012-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/pkcs11.c: free allocated module name. Reported by Sam
-       Varshavchik.
+       * configure.ac: do not check for fchmod
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/system.c: updated documentation
+       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi: updated
+       documentation for dtls.
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/pkcs7.c: added newline at end of file.
+       * src/certtool-args.def: updated documentation
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, src/Makefile.am: account args-std.def in make dist
+       * tests/mini-loss-time.c: Revert "avoid killing child" This reverts commit 4965c2fbfd3405e2dfe7f7d747d03185d155c2a1.
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c: check errno in pull_timeout_func.
+       * NEWS: documented fixes
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: updates for cryptodev. Require the
-       COP_FLAG_RESET.
+       * src/certtool.c: do not print Key ID in a pkcs12 structure if it is
+       null.
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/gc.c, tests/pskself.c: added error reporting
+       * src/common.c: raw_to_string no longer returns NULL.
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/mini-loss-time.c: properly deinitialize session.
+       * tests/pkcs12-decode/pkcs12: improved test and added debugging
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/slow/cipher-test.c: added (dead) code to test the
-       _hmac_fast.
+       * lib/gnutls_sig.c: corrected comparison
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: Always deinitialize.
+       * gl/Makefile.am, gl/dirent.in.h, gl/m4/math_h.m4,
+       gl/m4/stdio_h.m4, gl/m4/warn-on-use.m4, gl/m4/warnings.m4,
+       gl/math.in.h, gl/stdio.in.h, gl/stdlib.in.h, gl/string.in.h,
+       gl/tests/strerror_r.c, gl/tests/test-float.c, gl/tests/test-math.c,
+       gl/wchar.in.h, maint.mk: updated gnulib
 
-2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c: check _gnutls_auth_cipher_add_auth for error
-       codes.
+       * doc/cha-upgrade.texi: Added more deprecated functions
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: added reset
+       * gl/override/tests/test-float.c.diff: avoid the floating point
+       test.
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/x86/sha-padlock.c, lib/crypto-backend.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/nettle/mac.c: hash
-       copy no longer needed.
+       * tests/mini-dtls-rehandshake.c, tests/mini-loss-time.c,
+       tests/mini-record.c, tests/mini-termination.c,
+       tests/openpgp-auth.c, tests/openpgp-auth2.c: use AF_UNIX for
+       socketpair.
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: initialize memory for siop
+       * cross.mk: updated
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_constate.c, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/openpgp/gnutls_openpgp.c: simplified the _datum functions.
+       * configure.ac: make dist will also make lzip compressed tarball
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, m4/hooks.m4: bumped versions
+       * lib/accelerated/x86/hmac-padlock.c, lib/algorithms.h,
+       lib/algorithms/kx.c, lib/algorithms/mac.c, lib/crypto-api.c,
+       lib/gnutls_cipher_int.c, lib/gnutls_constate.c,
+       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_pk.c,
+       lib/gnutls_pubkey.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
+       lib/includes/gnutls/crypto.h, lib/opencdk/armor.c,
+       lib/opencdk/misc.c, lib/opencdk/new-packet.c, lib/x509/ocsp.c,
+       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h: several
+       type changes to please clang
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: properly deinitialize cryptodev
-       resources, and only register ciphers if they are hw accelerated.
+       * NEWS: set release date
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: benchmark-ciphers re-enabled
+       * NEWS, lib/minitasn1/decoding.c: updated libtasn1
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: fixes in cryptodev support. Added
-       support for digest algorithms.
+       * doc/Makefile.am: removed old function.
 
-2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: fixes in cryptodev support. Added
-       support for digest algorithms.
+       * configure.ac, m4/hooks.m4: bumped versions
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, src/Makefile.am, src/args-std.def,
-       src/certtool-args.def, src/cli-args.def, src/cli-debug-args.def,
-       src/ocsptool-args.def, src/p11tool-args.def, src/psk-args.def,
-       src/serv-args.def, src/srptool-args.def: Optimizations in command
-       line argument handling. Patch by Bruce Korb.
+       * lib/includes/gnutls/gnutls.h.in: removed function that didn't
+       exist
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented fix
+       * tests/mini-termination.c: initialize value
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore: more files to ignore
+       * tests/mini-loss-time.c: avoid killing child
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/cert.c, lib/gnutls_pcert.c: Deinitialize the correct
-       number of certificates. Reported by Remi Gacogne.
+       * tests/mini-dtls-rehandshake.c: avoid closing fd[1] on server. For
+       some reason it makes connection fail.
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/mini-loss-time.c: force kill of child process.
+       * doc/Makefile.am: Add FUNCS to distribution
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated
+       * .gitignore, NEWS, lib/gnutls_record.c, tests/Makefile.am,
+       tests/mini-dtls-rehandshake.c, tests/mini-record.c,
+       tests/mini-termination.c: Make sure that
+       GNUTLS_E_PREMATURE_TERMINATION is returned if there is premature
+       termination.
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: update in cryptodev
+       * tests/dtls/dtls-stress.c: do not build test with timers when posix
+       timers are not present.
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/cryptodev.c: register the .fast function for
-       cryptodev
+       * lib/opencdk/keydb.c, lib/opencdk/literal.c: corrected types
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dtls/dtls, tests/dtls/dtls-nb: Added more tests.
+       * lib/x509/ocsp.c: use correct type in snprintf.
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dtls/dtls-stress.c: Added new dtls-stress.c by Sean
+       * lib/includes/gnutls/compat.h: added prototypes for inline
+       functions (some gcc versions couldn't compile without)
 
-2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/libopts/m4/libopts.m4: Included libopts is not installed by
-       default.
+       * lib/auth/cert.c, lib/gnutls_auth.h, lib/gnutls_handshake.c,
+       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
+       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_ui.c: even more
+       cleanups
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/mini-loss-time.c: updated description
+       * lib/auth/cert.c, lib/auth/cert.h, lib/auth/dhe.c, lib/auth/rsa.c,
+       lib/auth/rsa_export.c, lib/auth/srp_rsa.c: more cleanups
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc: corrected latex output
+       * cross.mk: updated
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: added date
+       * tests/ocsp.c, tests/openpgp-auth2.c, tests/resume-dtls.c: Fixes
+       for win32 and time. OCSP test now sets a fixed time to avoid
+       expiration errors.
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms/ecc.c, lib/crypto-api.c, lib/gnutls_alert.c,
-       lib/gnutls_cert.c, lib/gnutls_dtls.c, lib/gnutls_global.c,
-       lib/gnutls_pcert.c, lib/gnutls_priority.c, lib/gnutls_privkey.c,
-       lib/gnutls_pubkey.c, lib/gnutls_record.c, lib/gnutls_state.c,
-       lib/gnutls_x509.c, lib/pkcs11.c, lib/pkcs11_privkey.c,
-       lib/system_override.c, lib/verify-tofu.c, lib/x509/common.c,
-       lib/x509/crl.c, lib/x509/privkey.c, lib/x509/verify-high.c,
-       lib/x509/x509.c: Since: 3.0.0 -> Since 3.0 to reflect that it might
-       be on a later version than 3.0.0.
+       * lib/auth/cert.c, lib/auth/cert.h, lib/auth/dhe.c, lib/auth/rsa.c,
+       lib/auth/rsa_export.c, lib/auth/srp_rsa.c: simplified internal
+       function names.
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: Added new functions
+       * m4/hooks.m4: improvements in long long usage
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/mini-tdb.c: verify that the correct error code is returned
+       * lib/accelerated/cryptodev.c: corrected probing of cryptodev
+       digests.
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc: do not stick parameters to the next word.
+       * NEWS, lib/accelerated/x86/aes-x86.h, m4/hooks.m4: Do not assume
+       sizeof(unsigned long)==sizeof(void*).  Based on patch by B. Scott
+       Michel.
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/verify-tofu.c: return the documented error code
+       * src/libopts/genshell.h: include libintl. Patch by B. Scott Michel
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk: copy gnutls.epub to webdir
+       * src/libopts/Makefile.am, src/libopts/genshell.h: Revert "use
+       header files from gl/ and include gettext.h" This reverts commit 6b3d7b6e31ddab337e185922910262d68f1fc6fa.
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README-alpha: gaa is no longer needed
+       * src/libopts/Makefile.am, src/libopts/genshell.h: use header files
+       from gl/ and include gettext.h
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: Set the handshake type when calling
-       record_add_to_buffers().
+       * doc/examples/ex-cxx.cpp: more warnings to silence.
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: do not try to verify certificates when not needed.
+       * NEWS: updated
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_record.c,
-       lib/includes/gnutls/gnutls.h.in: properly report unexpected EOF.
-
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dtls/dtls-stress.c: increase the total timeout in the tests
-       since they seem to exceed the default DTLS maximum timeout.
-
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: Do not update twice the DTLS retransmission
-       timer on finished messages. Report and patch by Sean Buckheister.
-
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: Cleanups in DTLS timers usage.
-
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/verify-tofu.c: corrected memory leak
-
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, NEWS, doc/cha-cert-auth.texi,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
-       lib/verify-tofu.c, tests/Makefile.am, tests/mini-deflate.c,
-       tests/mini-tdb.c: The public key storage backend was made
-       extendable.  Added self test for the pubkey  trust default backend.
+       * doc/examples/ex-serv-anon.c: silence warnings. Patch by B. Scott
+       Michel.
 
-2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dn.c, tests/dn2.c: corrected var names
+       * doc/scripts/getfuncs.pl, lib/includes/gnutls/compat.h: Added
+       doc-skip to skip certain functions from documentation.
 
-2012-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/ocsptool-args.def: updated doc
+       * lib/includes/gnutls/compat.h: remove brackets.
 
-2012-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: Added missing functions.
+       * lib/includes/gnutls/compat.h: Cleaned up deprecated types and
+       added a deprecation warning on them.
 
-2012-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: corrected typo
+       * lib/includes/gnutls/compat.h: Provide compatibility inline
+       functions for gnutls_session_get_server_random() and
+       gnutls_session_get_client_random().
 
-2012-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/cha-gtls-app.texi, lib/gnutls_dtls.c,
-       lib/includes/gnutls/dtls.h, lib/libgnutls.map: Added
-       gnutls_dtls_get_timeout()
+       * NEWS, lib/accelerated/x86/aes-padlock.c: Only call
+       check_phe_partial() if PHE has been detected.
 
-2012-02-15  Giuseppe Scrivano <giuseppe@southpole.se>
+2012-03-21  Simon Josefsson <simon@josefsson.org>
 
-       * doc/examples/ex-cert-select.c: Fix file leak in an example
-       application.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * README-alpha: Update bootstrapping instructions.
 
-2012-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Simon Josefsson <simon@josefsson.org>
 
-       * tests/dtls/dtls, tests/dtls/dtls-nb: Added more tests.
+       * .gitignore, doc/Makefile.am: Tell automake about all filenames to
+       fix 'make distcheck'.
 
-2012-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Simon Josefsson <simon@josefsson.org>
 
-       * doc/cha-cert-auth.texi, lib/includes/gnutls/gnutls.h.in,
-       lib/verify-tofu.c: Modified the trust_db API to avoid dependendance
-       on a structure.
+       * README-alpha: Clarify bootstrapping.
 
-2012-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_record.c: Prevent any handshake packet except client
-       hello to trigger a rehandshake error. Patch by Sean Buckheister.
+       * doc/manpages/Makefile.am: Generated.
 
-2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Simon Josefsson <simon@josefsson.org>
 
-       * doc/cha-cert-auth.texi, doc/cha-internals.texi: doc updates
+       * doc/Makefile.am: Build functions/ files (this should be done by
+       listing all files instead).
 
-2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_global.c, lib/verify-tofu.c: make the default storage
-       backend thread safe.
+       * gl/Makefile.am, gl/fpucw.h, gl/glthread/threadlib.c,
+       gl/isnanf-nolibm.h, gl/m4/frexpl.m4, gl/m4/gnulib-comp.m4,
+       gl/m4/ldexpl.m4, gl/m4/math_h.m4, gl/m4/timer_time.m4,
+       gl/math.in.h, gl/tests/Makefile.am, gl/tests/glthread/threadlib.c,
+       gl/tests/macros.h, gl/tests/randomd.c, gl/tests/randoml.c,
+       gl/tests/test-frexp.c, gl/tests/test-frexp.h,
+       gl/tests/test-frexpl.c, gl/tests/test-math.c, maint.mk: Update
+       gnulib files.
 
-2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dtls/dtls, tests/dtls/dtls-nb: added more test cases
+       * NEWS, devel/perlasm/e_padlock-x86.pl,
+       devel/perlasm/e_padlock-x86_64.pl, devel/perlasm/ghash-x86.pl,
+       lib/accelerated/x86/README,
+       lib/accelerated/x86/coff/padlock-x86-64-coff.s,
+       lib/accelerated/x86/coff/padlock-x86-coff.s,
+       lib/accelerated/x86/elf/padlock-x86-64.s,
+       lib/accelerated/x86/license.txt,
+       lib/accelerated/x86/macosx/padlock-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/padlock-x86-macosx.s: updated openssl
+       code
 
-2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-19  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS: updated
+       * lib/includes/gnutls/compat.h: Remove TLS_RANDOM_SIZE and
+       TLS_MASTER_SIZE compat mappings.
 
-2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c: Corrected DTLS retransmission in non-blocking
-       mode. Based on patch by Sean Buckheister.
+       * .gitignore, NEWS, doc/cha-upgrade.texi, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Added
+       gnutls_session_get_random()
 
-2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi, lib/Makefile.am,
-       lib/includes/gnutls/gnutls.h.in, lib/verify-ssh.c,
-       lib/verify-tofu.c: The hash in gnutls_store_commitment() is
-       specified in raw format.
+       * NEWS, lib/libgnutls.map: added missing function
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi, doc/cha-intro-tls.texi: doc updates
+       * m4/hooks.m4: better error message
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog.1: removed unneeded file.
+       * doc/scripts/mytexi2latex: updated
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/alert-printlist.c, doc/common.c,
-       doc/common.h, doc/errcodes.c, doc/printlist.c: break long strings.
+       * doc/Makefile.am, doc/cha-upgrade.texi, doc/gnutls.texi,
+       doc/latex/Makefile.am, doc/latex/gnutls.tex: Added chapter to
+       describe changes needed when upgrading.
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/libgnutls.map: documented added function
+       * doc/cha-library.texi: doc update
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dtls/Makefile.am, tests/dtls/dtls, tests/dtls/dtls-nb,
-       tests/dtls/dtls-stress.c: Added tests for non-blocking DTLS
+       * NEWS, lib/includes/gnutls/x509.h, lib/libgnutls.map,
+       lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/common.c,
+       lib/x509/common.h, lib/x509/crl.c, lib/x509/crl_write.c,
+       lib/x509/crq.c, lib/x509/output.c, lib/x509/x509.c,
+       lib/x509/x509_write.c, tests/cert-tests/template-test.pem: Added
+       gnutls_x509_crt_set_private_key_usage_period() and
+       gnutls_x509_crt_get_private_key_usage_period(). The time stored in
+       generated certificates is now GeneralizedTime.
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-bib.texi, doc/cha-cert-auth.texi, doc/latex/gnutls.bib,
-       lib/includes/gnutls/gnutls.h.in, lib/verify-ssh.c: Added ability to
-       store commitments (hashes) of public keys.
+       * lib/gnutls_handshake.c: changed debugging level for message
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: Avoid generation of invoke-* in platforms other
-       than the development
+       * lib/algorithms/ciphersuites.c: corrected ciphersuite number
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dtls/dtls: more tests
+       * lib/gnutls_handshake.c: Added debugging message when encounter an
+       invalid ciphersuite.
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/Makefile.am, doc/scripts/cleanup-autogen.pl: added
-       cleanup-autogen.pl
+       * NEWS, src/certtool.c: Applied patch to cast days to (time_t)
+       before converting it to seconds to prevent a Y2K38 bug. Patch by
+       Robert Millan.
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_constate.c: reset sliding window size on new epochs
+       * doc/Makefile.am, doc/gnutls.texi, doc/scripts/split-texi.pl: 
+       texinfo documentation is similar to the printed manual.
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/dtls/dtls, tests/dtls/dtls-stress.c: added more tests and
-       updated to compile with gnutls' options
+       * NEWS, configure.ac, cross.mk, m4/hooks.m4: bumped version
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, tests/Makefile.am, tests/dtls/Makefile.am,
-       tests/dtls/dtls, tests/dtls/dtls-stress.c: Added DTLS-stress test.
-       Contributed by Sean Buckheister.
+       * lib/gnutls_pubkey.c, lib/x509/crq.c, lib/x509/x509.c: corrected
+       the documentation of the verification functions.
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, doc/Makefile.am, doc/epub.texi: Added rules to build
-       epub version.
+       * NEWS: released 3.0.16
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_record.c: discard unexpected
-       buffered changecipherspec
+       * configure.ac: enable_local_libopts is by default no
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c, lib/gnutls_dtls.h, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_state.c: simplified sliding window.
-       Now a different window is kept per epoch.
+       * m4/hooks.m4: bumped shared lib version
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-intro-tls.texi: documentation update
+       * NEWS, lib/includes/gnutls/x509.h, lib/libgnutls.map,
+       lib/x509/x509_write.c, src/certtool-args.def, src/certtool-cfg.c,
+       src/certtool-cfg.h, src/certtool.c: Added
+       gnutls_x509_crt_set_authority_info_access.
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/gnutls.texi, doc/scripts/cleanup-autogen.pl: 
-       updated documentation for included programs.
+       * lib/accelerated/x86/README: updated
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
-       lib/gnutls_record.c: handle GNUTLS_E_INTERRUPTED when in DTLS mode.
+       * devel/perlasm/license-gnutls.txt, devel/perlasm/license.txt,
+       lib/accelerated/x86/coff/appro-aes-gcm-x86-64-coff.s,
+       lib/accelerated/x86/coff/appro-aes-x86-64-coff.s,
+       lib/accelerated/x86/coff/appro-aes-x86-coff.s,
+       lib/accelerated/x86/coff/cpuid-x86-64-coff.s,
+       lib/accelerated/x86/coff/cpuid-x86-coff.s,
+       lib/accelerated/x86/coff/padlock-x86-64-coff.s,
+       lib/accelerated/x86/coff/padlock-x86-coff.s,
+       lib/accelerated/x86/elf/appro-aes-gcm-x86-64.s,
+       lib/accelerated/x86/elf/appro-aes-x86-64.s,
+       lib/accelerated/x86/elf/appro-aes-x86.s,
+       lib/accelerated/x86/elf/cpuid-x86-64.s,
+       lib/accelerated/x86/elf/cpuid-x86.s,
+       lib/accelerated/x86/elf/padlock-x86-64.s,
+       lib/accelerated/x86/elf/padlock-x86.s,
+       lib/accelerated/x86/macosx/appro-aes-gcm-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/appro-aes-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/appro-aes-x86-macosx.s,
+       lib/accelerated/x86/macosx/cpuid-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/cpuid-x86-macosx.s,
+       lib/accelerated/x86/macosx/padlock-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/padlock-x86-macosx.s: updated licenses
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/key-id/key-id: added a valid template
+       * cfg.mk, lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/asm-coff/appro-aes-gcm-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/appro-aes-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/appro-aes-x86-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
+       lib/accelerated/x86/asm-coff/padlock-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/padlock-x86-coff.s,
+       lib/accelerated/x86/asm-macosx/appro-aes-gcm-x86-64-macosx.s,
+       lib/accelerated/x86/asm-macosx/appro-aes-x86-64-macosx.s,
+       lib/accelerated/x86/asm-macosx/appro-aes-x86-macosx.s,
+       lib/accelerated/x86/asm-macosx/cpuid-x86-64-macosx.s,
+       lib/accelerated/x86/asm-macosx/cpuid-x86-macosx.s,
+       lib/accelerated/x86/asm-macosx/padlock-x86-64-macosx.s,
+       lib/accelerated/x86/asm-macosx/padlock-x86-macosx.s,
+       lib/accelerated/x86/asm/appro-aes-gcm-x86-64.s,
+       lib/accelerated/x86/asm/appro-aes-x86-64.s,
+       lib/accelerated/x86/asm/appro-aes-x86.s,
+       lib/accelerated/x86/asm/cpuid-x86-64.s,
+       lib/accelerated/x86/asm/cpuid-x86.s,
+       lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s,
+       lib/accelerated/x86/coff/appro-aes-gcm-x86-64-coff.s,
+       lib/accelerated/x86/coff/appro-aes-x86-64-coff.s,
+       lib/accelerated/x86/coff/appro-aes-x86-coff.s,
+       lib/accelerated/x86/coff/cpuid-x86-64-coff.s,
+       lib/accelerated/x86/coff/cpuid-x86-coff.s,
+       lib/accelerated/x86/coff/padlock-x86-64-coff.s,
+       lib/accelerated/x86/coff/padlock-x86-coff.s,
+       lib/accelerated/x86/elf/appro-aes-gcm-x86-64.s,
+       lib/accelerated/x86/elf/appro-aes-x86-64.s,
+       lib/accelerated/x86/elf/appro-aes-x86.s,
+       lib/accelerated/x86/elf/cpuid-x86-64.s,
+       lib/accelerated/x86/elf/cpuid-x86.s,
+       lib/accelerated/x86/elf/padlock-x86-64.s,
+       lib/accelerated/x86/elf/padlock-x86.s,
+       lib/accelerated/x86/macosx/appro-aes-gcm-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/appro-aes-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/appro-aes-x86-macosx.s,
+       lib/accelerated/x86/macosx/cpuid-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/cpuid-x86-macosx.s,
+       lib/accelerated/x86/macosx/padlock-x86-64-macosx.s,
+       lib/accelerated/x86/macosx/padlock-x86-macosx.s: renamed asm
+       directories.
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/ext/session_ticket.c, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_dtls.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c: Do not
-       treat any message from the peer as an indication that the last
-       flight was correctly received.  Verify instead that the received
-       handshake message has an expected sequence number.
+       * NEWS: documented update
 
-2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: changecipherspec is correctly added into
-       buffers.
+       * lib/accelerated/x86/Makefile.am: corrected makefile
 
-2012-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, src/libopts/m4/libopts.m4: use NEED_LIBOPTS_DIR=true
-       instead of modifying libopts.m4
+       * configure.ac: Added missing elf part.
 
-2012-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c, lib/gnutls_dtls.h: update and reset timers on
-       final flight and print timeout value in debugging mode.
+       * cfg.mk, configure.ac, lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/asm-macosx/appro-aes-gcm-x86-64-macosx.s,
+       lib/accelerated/x86/asm-macosx/appro-aes-x86-64-macosx.s,
+       lib/accelerated/x86/asm-macosx/appro-aes-x86-macosx.s,
+       lib/accelerated/x86/asm-macosx/cpuid-x86-64-macosx.s,
+       lib/accelerated/x86/asm-macosx/cpuid-x86-macosx.s,
+       lib/accelerated/x86/asm-macosx/padlock-x86-64-macosx.s,
+       lib/accelerated/x86/asm-macosx/padlock-x86-macosx.s: Added assembly
+       for macosx
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/mini-loss-time.c, tests/mini-loss.c: tests with fork are
-       disabled in windows
+       * doc/cha-gtls-app.texi: corrected typo
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore: updated
+       * doc/examples/ex-verify-ssh.c: reduced lines
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c, lib/gnutls_dtls.h, lib/gnutls_int.h,
-       lib/gnutls_state.c: use subsecond granularity for DTLS packet
-       retransmissions.
+       * src/certtool-args.def, src/p11tool-args.def: doc updates
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/Makefile.am, tests/mini-loss-time.c: added test to check
-       whether the DTLS timeout is within a reasonable time.
+       * src/certtool-args.def: added spacing
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/tests.c, src/tests.h, src/tls_test.c: Added more tests to
-       check whether various TLS versions need to be disabled.
+       * tests/srp/Makefile.am, tests/srp/mini-srp.c, tests/srp/tpasswd,
+       tests/srp/tpasswd.conf: generate tpasswd files on the spot.
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: be more silent
+       * tests/ca.pem, tests/enc3pkcs8.pem, tests/test1.pem,
+       tests/test10.pem, tests/test13.pem, tests/test2.pem,
+       tests/test20.pem, tests/test21.pem, tests/test22.pem,
+       tests/test23.pem, tests/test24.pem, tests/test25.pem,
+       tests/test26.pem, tests/test3.pem, tests/x509_test.c: removed unused
+       files.
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am: do not generate .texi on make dist.
+       * doc/Makefile.am: stamp_enums is shipped to avoid regenerating
+       parts of doc
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cross.mk: cross building updates
+       * README: corrected urls
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi: updated
+       * configure.ac, m4/hooks.m4: bumped version.
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/libopts/m4/libopts.m4, src/libopts/makeshell.c: corrections
+       * lib/gnutls_record.c: corrected call to gnutls_error_is_fatal().
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/libopts/COPYING.gplv3, src/libopts/COPYING.lgplv3,
-       src/libopts/Makefile.am, src/libopts/README,
-       src/libopts/ag-char-map.h, src/libopts/alias.c,
-       src/libopts/ao-strs.c, src/libopts/ao-strs.h,
-       src/libopts/autoopts.c, src/libopts/autoopts.h,
-       src/libopts/autoopts/options.h, src/libopts/autoopts/usage-txt.h,
-       src/libopts/boolean.c, src/libopts/check.c,
-       src/libopts/compat/compat.h, src/libopts/compat/windows-config.h,
-       src/libopts/configfile.c, src/libopts/cook.c, src/libopts/enum.c,
-       src/libopts/env.c, src/libopts/file.c, src/libopts/find.c,
-       src/libopts/genshell.c, src/libopts/genshell.h,
-       src/libopts/libopts.c, src/libopts/load.c,
-       src/libopts/m4/libopts.m4, src/libopts/m4/liboptschk.m4,
-       src/libopts/makeshell.c, src/libopts/nested.c,
-       src/libopts/numeric.c, src/libopts/parse-duration.c,
-       src/libopts/parse-duration.h, src/libopts/pgusage.c,
-       src/libopts/proto.h, src/libopts/putshell.c, src/libopts/reset.c,
-       src/libopts/restore.c, src/libopts/save.c, src/libopts/sort.c,
-       src/libopts/stack.c, src/libopts/streqvcmp.c,
-       src/libopts/text_mmap.c, src/libopts/time.c,
-       src/libopts/tokenize.c, src/libopts/usage.c,
-       src/libopts/value-type.h, src/libopts/version.c,
-       src/libopts/xat-attribute.h: updated libopts
+       * NEWS: updated description
 
-2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-14  Simon Josefsson <simon@josefsson.org>
 
-       * Makefile.am: corrected move of files
+       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
+       lib/minitasn1/libtasn1.h: Update minitasn1.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi: escaped brackets
+       * tests/suite/Makefile.am, tests/suite/invalid-cert: Added test on
+       an invalid certificate.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cross.mk: depend on p11-kit 0.11
+       * lib/minitasn1/decoding.c: updated.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: disabled dead code when PKCS11 is not there
+       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
+       lib/minitasn1/libtasn1.h: more recent libtasn1
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.ac: depend on p11-kit 0.11
+       * NEWS, lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
+       lib/minitasn1/element.c, lib/minitasn1/element.h,
+       lib/minitasn1/errors.c, lib/minitasn1/gstr.c, lib/minitasn1/gstr.h,
+       lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
+       lib/minitasn1/parser_aux.c, lib/minitasn1/parser_aux.h,
+       lib/minitasn1/structure.c, lib/minitasn1/structure.h,
+       lib/minitasn1/version.c: updated included libtasn1
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi, lib/includes/gnutls/gnutls.h.in,
-       lib/verify-ssh.c: updated documentation for back-end.
+       * src/cli.c: gnutls-cli honours the --x509fmtder.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/latex/gnutls.tex: index after bibliography
+       * src/cli.c: only set the server name if we do not have an IP
+       address.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, doc/latex/.gitignore: more files to ignore
+       * README: Do not use fixed versions
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/alert-printlist.c, doc/errcodes.c, doc/printlist.c: avoid
-       headers in tables
+       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi,
+       lib/includes/gnutls/gnutls.h.in: Documentation updates
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-args.def: documentation update
+       * lib/accelerated/cryptodev.c: when using cryptodev do not set all
+       the digest function since they are not always faster.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/verify-ssh.c: documentation update
+       * lib/accelerated/x86/aes-gcm-padlock.c,
+       lib/accelerated/x86/aes-gcm-x86.c: corrected comments.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/latex/Makefile.am, doc/scripts/gdoc,
-       doc/scripts/mytexi2latex: updated doc generation
+       * lib/accelerated/cryptodev.c: reset the siop structure on every
+       loop
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool-args.def, src/p11tool-args.def, src/srptool-args.def: 
-       doc fixes
+       * src/benchmark-cipher.c: add more space to dst to allow GCM mode
+       tests in cryptodev.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated NEWS
+       * NEWS, src/certtool-args.def, src/certtool-cfg.c,
+       src/certtool-cfg.h, src/certtool.c: certtool may explicitly set the
+       domain component (DC) field of a DN.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/Makefile.am: added missing files
+       * lib/includes/gnutls/x509.h, src/certtool-args.def: Added a real
+       key purpose OID as example
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: resolve port only when needed to.
+       * src/p11tool-args.def: updated p11tool documentation.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cross.mk: updated makefile
+       * NEWS, src/p11tool.c: Only set the private status if it has been
+       explicitly specified. That is because some tokens don't want it set.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c: fix in non-blocking case.
+       * src/certtool.c: The default cipher when encrypting with PKCS12 is
+       AES.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: small correction
+       * src/certtool-args.def: to-p12 requires the load-certificate and
+       load-privkey.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, src/Makefile.am: corrected subdirs for libopts
+       * doc/latex/cover.tex: updated front-page to include all
+       contributors.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c, lib/x509/crl.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/extensions.c, lib/x509/mpi.c,
-       lib/x509/output.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
-       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_write.c, src/cli.c, src/dh.c,
-       src/serv.c: ENABLE_PKI is no more
+       * doc/cha-bib.texi, doc/cha-internals.texi, doc/latex/gnutls.bib: 
+       Some updates on supplemental data handling.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * m4/hooks.m4, src/Makefile.am: fix
+       * tests/safe-renegotiation/Makefile.am: safe renegotiation tests
+       only run under valgrind in the devel environment.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/Makefile.am, src/Makefile.am, src/socket.c: fix
-       compilation
+       * doc/latex/gnutls.tex: updated
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c: fixed leak
+       * doc/cha-gtls-app.texi, doc/scripts/mytexi2latex: changes in
+       asynchronous documentation
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, m4/hooks.m4: cleanup enable/disable options stuff.
+       * NEWS: documented fix
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, src/libopts/compat/compat.h, src/libopts/cook.c,
-       src/libopts/makeshell.c, src/libopts/text_mmap.c: fixes to allow
-       libopts to compile in windows
+       * src/libopts/makeshell.c: Added ifdef HAVE_FCHMOD
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/system.c: corrected typo
+       * doc/cha-shared-key.texi: More documentation on SRP
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/examples/ex-verify-ssh.c,
-       lib/includes/gnutls/gnutls.h.in, lib/verify-ssh.c,
-       src/cli-args.def, src/cli.c: gnutls_verify_stored_pubkey() and
-       gnutls_store_pubkey() allow for alternative storage back-end.
+       * tests/srp/mini-srp.c: Test SRP-RSA and plain SRP.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/socket.c, src/socket.h: use getservbyport() to
-       obtain the service name.
+       * lib/auth/srp_rsa.c: Corrected SRP-RSA in TLS 1.2
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4: added servent
+       * doc/cha-internals.texi: break line on long string.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-verify-ssh.c, src/cli.c: use updated api
+       * cfg.mk, cross.mk: small updates
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/benchmark-tls.c: updated for new eagain-common.h
+       * doc/examples/ex-client-psk.c: Corrected PSK client example.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi, doc/cha-gtls-examples.texi,
-       doc/examples/ex-verify-ssh.c, lib/includes/gnutls/gnutls.h.in,
-       lib/verify-ssh.c: Removed the application field and added an
-       expiration field.
+       * tests/srp/Makefile.am: Added missing files.
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Carolin Latze <latze@angry-red-pla.net>
 
-       * doc/examples/ex-client-x509.c: updated example
+       * doc/cha-internals.texi: supp data doc added Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c, lib/gnutls_record.c: More robust behavior
-       against packet loss
+       * NEWS: released 3.0.15
 
-2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Simon Josefsson <simon@josefsson.org>
 
-       * lib/system.c, lib/system.h: removed unneeded function.
+       * doc/reference/gnutls-docs.sgml: Fix index with new 3.0.x symbols.
 
-2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Simon Josefsson <simon@josefsson.org>
 
-       * doc/examples/ex-client-srp.c: updated example
+       * lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/ocsp.h,
+       lib/verify-tofu.c: Doc fixes for GTK-DOC.
 
-2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_record.c: updated
+       * lib/gnutls_dtls.c, lib/gnutls_dtls.h: De-inline some dtls
+       functions.  Avoids compiler error on gcc 4.4.5 (Debian Squeeze) that complains
+       about "call is unlikely and code size would grow".
 
-2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: prevent sending EOF to caller.
+       * .gitignore, configure.ac, tests/Makefile.am,
+       tests/srp/Makefile.am, tests/srp/mini-srp.c, tests/srp/tpasswd,
+       tests/srp/tpasswd.conf: Added SRP test.
 
-2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/safe-renegotiation/srn0.c, tests/safe-renegotiation/srn1.c,
-       tests/safe-renegotiation/srn2.c, tests/safe-renegotiation/srn3.c,
-       tests/safe-renegotiation/srn4.c, tests/safe-renegotiation/srn5.c: 
-       print client/server when in debugging
+       * lib/auth/srp_passwd.c, lib/ext/srp.c, lib/gnutls_errors.c: Fixes
+       and memory leak elimination in SRP authentication.
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, THANKS, tests/mini-loss.c: Added Sean.
+       * NEWS, lib/auth/srp.c: Eliminate double free during SRP
+       authentication.
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/eagain-common.h, tests/mini-deflate.c,
-       tests/mini-eagain-dtls.c, tests/mini-eagain.c,
-       tests/mini-x509-rehandshake.c, tests/mini-x509.c, tests/mini.c: 
-       tests print server or client side in debugging output.
+       * Makefile.am: corrected version replacement in .texi.
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_record.c: 
-       gnutls_record_check_pending() accounts data not yet processed.  DTLS
-       layer avoids multiple retransmissions in non-blocking mode.
+       * configure.ac, m4/hooks.m4: bumped version
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c: avoid many allocations for transmitting DTLS
-       packets.
+       * doc/Makefile.am: avoid regeneration of header files
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/Makefile.am, tests/loss-common.h, tests/mini-loss.c,
-       tests/mini-loss2.c: mini-loss2 is more robust.
+       * NEWS, lib/pkcs11.c: No longer crash on a pkcs11 object without an
+       ID.
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dtls.c, lib/gnutls_dtls.h, lib/gnutls_handshake.c,
-       lib/gnutls_record.c: DTLS is more tolerant in packet loss during
-       last flight.
+       * NEWS: updated
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, tests/Makefile.am, tests/mini-loss2.c: Added test
-       program mini-loss2.
+       * tests/mini-record.c: eliminated memory leaks in new test.
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-client-anon.c, doc/examples/ex-client-dtls.c,
-       doc/examples/ex-client-psk.c, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-dtls.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv-x509.c: updated examples
+       * NEWS: documented fix
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: enable crywrap only if function daemon exists.
+       * .gitignore, tests/Makefile.am, tests/mini-record.c: Added test for
+       invalid record packet sizes.
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h: Be
-       conservative when sending GNUTLS_E_AGAIN and check for a DTLS
-       timeout before.
+       * lib/gnutls_buffers.c, lib/gnutls_mbuffers.c, lib/gnutls_record.c: 
+       artistic changes.
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, gl/Makefile.am, gl/argp-help.c, gl/argp-parse.c,
-       gl/argp.h, gl/base64.c, gl/fseeko.c, gl/fseterr.c,
-       gl/gettimeofday.c, gl/m4/exponentd.m4, gl/m4/gettimeofday.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/po.m4, gl/m4/stdalign.m4,
-       gl/m4/sys_time_h.m4, gl/m4/vasnprintf.m4, gl/select.c, gl/sleep.c,
-       gl/stdio-impl.h, gl/stdio.in.h, gl/sys_select.in.h,
-       gl/sys_socket.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
-       gl/tests/init.sh, gl/tests/ioctl.c, gl/tests/test-base64.c,
-       gl/tests/test-init.sh, gl/tests/test-strerror.c,
-       gl/tests/test-sys_select.c, gl/tests/test-sys_time.c,
-       gl/tests/w32sock.h, gl/vasnprintf.c, gl/version-etc.h,
-       gl/w32sock.h, maint.mk: added strndup and updated gnulib.
+       * lib/gnutls_mbuffers.c: corrected copying of buffers.
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, tests/Makefile.am, tests/loss-common.h,
-       tests/mini-loss.c: Added test to simulate loss of packets in DTLS.
+       * src/serv.c: corrected check_command() input
 
-2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-29  Simon Josefsson <simon@josefsson.org>
 
-       * lib/debug.c, lib/gnutls_buffers.c, lib/gnutls_dtls.c,
-       lib/gnutls_record.c: DTLS fixes.  Corrected bugs in DTLS sliding
-       window code to account for lost packets arriving after an epoch
-       change. The last handshake flight is now being kept by both parties
-       in order to be used as a lost packet indication.
+       * gl/Makefile.am, gl/m4/fpieee.m4, gl/m4/math_h.m4, gl/math.in.h: 
+       Update gnulib files.
 
-2012-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-29  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_record.c: Discard unexpected handshake or other packets
-       in DTLS
+       * src/libopts/Makefile.am, src/libopts/ag-char-map.h,
+       src/libopts/ao-strs.c, src/libopts/ao-strs.h,
+       src/libopts/autoopts/options.h, src/libopts/autoopts/usage-txt.h,
+       src/libopts/genshell.c, src/libopts/genshell.h,
+       src/libopts/m4/libopts.m4, src/libopts/makeshell.c,
+       src/libopts/proto.h, src/libopts/value-type.h,
+       src/libopts/xat-attribute.h: Update to autogen 5.15.
 
-2012-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: initial_negotiation_completed type changed to
-       unsigned
+       * lib/gnutls_cipher.c: changes in packet parsing.
 
-2012-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/x86/Makefile.am: Included missing file in windows
-       builds.
+       * THANKS, src/common.c: Do not call gnutls_x509_crt_check_hostname()
+       if hostname eq NULL. Reported by Matthew Hall.
 
-2012-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/cert.c: Corrected check for the callback for
-       gnutls_certificate_set_retrieve_function(). Reported by Dan Winship.
+       * doc/cha-gtls-app.texi, lib/gnutls_state.c: Updated documentation
+       on gnutls_prf()
 
-2012-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c: updated documentation for
-       gnutls_certificate_set_retrieve_function2.
+       * NEWS: updated
 
-2012-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/abstract.h: include
-       gnutls_certificate_set_retrieve_function2() to documentation.
-       Reported by Dan Winship.
+       * NEWS: re-updated
 
-2012-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
-       lib/gnutls_int.h, lib/gnutls_state.c: Corrected DTLS retransmission
-       timeouts. Added the _ms suffix to the time variables in
-       milliseconds. Report and patch by Sean Buckheister.
+       * configure.ac: Revert "always link against the distributed libopts" This reverts commit ae3033fee01f058a028406648ebc32294774e282.
 
-2012-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc: updated information in manpages.
+       * Makefile.am: replace @VERSION@ in the program documentation.
 
-2012-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: updated manpages
+       * README-alpha: document autogen minimum version
 
-2012-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: corrected added function
+       * NEWS, lib/accelerated/cryptodev.c: Updated cryptodev code.  Hash
+       reset is being performed in a single ioctl() with update and TLS
+       versions (<1.1) that do not have explicit IV are correctly handled.
 
-2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_global.c: text update
+       * tests/mini-dtls-rehandshake.c: added all cases.
 
-2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi, lib/gnutls_pubkey.c: Updated
-       documentation for gnutls_pubkey.
+       * lib/accelerated/cryptodev-gcm.c: removed debugging
 
-2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, doc/Makefile.am, doc/manpages/Makefile.am: replacing
-       the version is not enough. Regenerate all files depending on .dep on
-       dist-hook.
+       * lib/accelerated/cryptodev-gcm.c, lib/accelerated/cryptodev.c: 
+       simplified gcm registration in cryptodev.
 
-2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, Makefile.am, configure.ac, src/certtool-args.def,
-       src/certtool-args.def.in, src/cli-args.def, src/cli-args.def.in,
-       src/cli-debug-args.def, src/cli-debug-args.def.in,
-       src/ocsptool-args.def, src/ocsptool-args.def.in,
-       src/p11tool-args.def, src/p11tool-args.def.in, src/psk-args.def,
-       src/psk-args.def.in, src/serv-args.def, src/serv-args.def.in,
-       src/srptool-args.def, src/srptool-args.def.in: No need for .def.in
-       files.  The @VERSION@ is now being replaced on dist-hook.  Also
-       corrected the dist-hook for ChangeLog.
+       * src/cli-args.def: doc updates
 
-2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: updates
+       * NEWS: documented updates
 
-2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: make configure detect valgrind.  This is by creating
-       the suppressions.valgrind file.
+       * lib/gnutls_record.c: If a client hello is received immediately
+       after a completed handshake delete the async_timer to rehandshake.
 
-2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_b64.c: use gnulib's base64 code
+       * NEWS: documented fix
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/cert-tests/Makefile.am, tests/cert-tests/funny-spacing.pem,
-       tests/cert-tests/pem-decoding: Added test to ensure we can decode
-       PEM encoded certificates with carriage returns, spaces and tabs.
+       * lib/gnutls_dtls.h, lib/gnutls_handshake.c: When rehandshake is
+       requested by server force the cleanup of the previous handshake
+       state.
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/opencdk/armor.c: use gnulib's base64 encoding/decoding code
+       * .gitignore, tests/Makefile.am, tests/mini-dtls-rehandshake.c,
+       tests/mini-rehandshake.c, tests/mini-x509-rehandshake.c,
+       tests/resume-dtls.c: Added mini-dtls-rehandshake.c to test
+       rehandshake in DTLS.
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/openpgp-certs/testcerts: silence test
+       * lib/gnutls_handshake.c: Corrected session resumption for DTLS
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/opencdk/armor.c: align crc32 table
+       * tests/Makefile.am, tests/mini-loss.c: removed redundant test.
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/opencdk/armor.c: __MINGW32__ -> _WIN32
+       * lib/gnutls_buffers.c, lib/gnutls_constate.c, lib/gnutls_dtls.c,
+       lib/gnutls_dtls.h, lib/gnutls_handshake.c, lib/gnutls_record.c: 
+       fixes in DTLS rehandshake and epoch cleanup.
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/opencdk/armor.c, lib/opencdk/main.h: removed dummy function
+       * src/common.c, src/common.h, src/serv.c, src/udp-serv.c: 
+       rehandshake command works in udp mode as well.
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/opencdk/write-packet.c: corrected spacing
+       * doc/cha-gtls-app.texi, src/ocsptool-args.def,
+       src/p11tool-args.def: properly break lines.
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/opencdk/write-packet.c: Correct export of openpgp packets that
-       have no private keying material in it's primary key.  Patch by Sean
-       Buckheister.
+       * doc/scripts/cleanup-autogen.pl: updated
 
-2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/common.c, src/common.h: added
-       print_cert_info_compact().
+       * src/libopts/Makefile.am, src/libopts/ag-char-map.h,
+       src/libopts/alias.c, src/libopts/ao-strs.c, src/libopts/ao-strs.h,
+       src/libopts/autoopts.h, src/libopts/autoopts/options.h,
+       src/libopts/autoopts/usage-txt.h, src/libopts/compat/compat.h,
+       src/libopts/configfile.c, src/libopts/cook.c,
+       src/libopts/genshell.c, src/libopts/genshell.h,
+       src/libopts/m4/libopts.m4, src/libopts/numeric.c,
+       src/libopts/proto.h, src/libopts/putshell.c,
+       src/libopts/value-type.h, src/libopts/xat-attribute.h: Updated
+       libopts.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/ocsptool-common.c: send_ocsp_request is more tolerant on
-       errors.
+       * configure.ac: always link against the distributed libopts
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated doc
+       * lib/Makefile.am, src/Makefile.am, tests/dtls/Makefile.am: Link to
+       correct libraries.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/m4/valgrind-tests.m4: valgrind with suppressions.
+       * tests/dtls/dtls-stress.c: updated headers.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: until autogen supports subheading tag
-       live with a workaround.
+       * GNUmakefile, gl/Makefile.am, gl/alloca.in.h, gl/alphasort.c,
+       gl/arpa_inet.in.h, gl/asnprintf.c, gl/asprintf.c, gl/base64.c,
+       gl/base64.h, gl/c-ctype.c, gl/c-ctype.h, gl/errno.in.h,
+       gl/float+.h, gl/fseeko.c, gl/gai_strerror.c, gl/getaddrinfo.c,
+       gl/getdelim.c, gl/getline.c, gl/getpass.c, gl/getpass.h,
+       gl/gettext.h, gl/gettimeofday.c, gl/inet_ntop.c, gl/lseek.c,
+       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/math_h.m4,
+       gl/m4/timer_time.m4, gl/malloc.c, gl/math.in.h, gl/memmem.c,
+       gl/mempcpy.c, gl/minmax.h, gl/msvc-inval.c, gl/msvc-inval.h,
+       gl/msvc-nothrow.c, gl/msvc-nothrow.h, gl/netdb.in.h,
+       gl/netinet_in.in.h, gl/printf-args.c, gl/printf-args.h,
+       gl/printf-parse.c, gl/printf-parse.h, gl/read-file.c,
+       gl/read-file.h, gl/scandir.c, gl/select.c, gl/size_max.h,
+       gl/snprintf.c, gl/stdalign.in.h, gl/stdarg.in.h, gl/stdbool.in.h,
+       gl/stddef.in.h, gl/stdint.in.h, gl/stdio.in.h, gl/str-two-way.h,
+       gl/strcasecmp.c, gl/strdup.c, gl/string.in.h, gl/strings.in.h,
+       gl/strncasecmp.c, gl/strndup.c, gl/strnlen.c, gl/strverscmp.c,
+       gl/sys_select.in.h, gl/sys_socket.in.h, gl/sys_stat.in.h,
+       gl/sys_time.in.h, gl/sys_types.in.h, gl/sys_uio.in.h,
+       gl/tests/glthread/lock.c, gl/tests/glthread/lock.h,
+       gl/tests/glthread/threadlib.c, gl/tests/malloca.c,
+       gl/tests/malloca.h, gl/tests/pathmax.h, gl/tests/pipe.c,
+       gl/tests/sys_ioctl.in.h, gl/tests/test-base64.c,
+       gl/tests/test-fgetc.c, gl/tests/test-fputc.c,
+       gl/tests/test-fread.c, gl/tests/test-fwrite.c,
+       gl/tests/test-getdelim.c, gl/tests/test-getline.c,
+       gl/tests/test-perror.c, gl/tests/test-perror2.c,
+       gl/tests/test-pipe.c, gl/tests/test-strerror.c,
+       gl/tests/test-strerror_r.c, gl/tests/test-strverscmp.c,
+       gl/time.in.h, gl/time_r.c, gl/unistd.in.h, gl/vasnprintf.c,
+       gl/vasnprintf.h, gl/vasprintf.c, gl/vsnprintf.c, gl/wchar.in.h,
+       gl/xsize.h, maint.mk: Added timer_time.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-args.def.in, src/psk-args.def.in: updated manpages
+       * NEWS: documented fix
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: autogen required for building.
+       * src/udp-serv.c: provide accurate value to select
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: Revert "autogen failure is not fatal." This reverts commit 175e021fd8d0c195690b2d8806bd3a07e84415ce.
+       * lib/system.c: make sure that the microseconds field does not
+       overflow
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: autogen failure is not fatal.
+       * tests/Makefile.am: use valgrind only on development environment.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/override/m4/valgrind-tests.m4.diff: Added --leak-check=full to
-       valgrind options.
+       * configure.ac: updated libopts check
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/ocsp.c: updated for new gnutls_ocsp_resp_verify_direct
-       semantics.
+       * cross.mk: updated
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, doc/.gitignore: more files to ignore
+       * NEWS, configure.ac: Link with local libopts if the installed is an
+       old one.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/cert.h, lib/includes/gnutls/ocsp.h,
-       lib/openpgp/openpgp_int.h, lib/x509/ocsp.c, lib/x509/ocsp_output.c: 
-       small fixes
+       * doc/scripts/Makefile.am: Added getfuncs.pl to distribution.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/cert.h, lib/includes/gnutls/ocsp.h, lib/libgnutls.map,
-       lib/openpgp/openpgp_int.h, lib/x509/ocsp.c, lib/x509/ocsp_output.c: 
-       Revert "Added gnutls_ocsp_resp_verify() and some sign fixes." This reverts commit efaa2ee176568fcd009ff2ca9daa1b7fdac4c491.  Conflicts:         lib/x509/ocsp.c
+       * NEWS: updated NEWS
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/m4/valgrind-tests.m4, gl/override/m4/valgrind-tests.m4.diff: 
-       Revert "Enable valgrind again." This commit disabled the
-       suppressions which is required for tests to succeed.  This reverts commit 82498bad27645c47222fa932a7caa2e95747980a.
+       * lib/accelerated/cryptodev-gcm.c, lib/accelerated/cryptodev.c,
+       lib/accelerated/cryptodev.h: compilation fixes.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/ocsptool-args.def.in: updated text
+       * NEWS, lib/accelerated/Makefile.am,
+       lib/accelerated/cryptodev-gcm.c, lib/accelerated/cryptodev.c,
+       lib/accelerated/cryptodev.h, lib/gnutls_cipher.c,
+       lib/gnutls_cipher_int.h, lib/gnutls_record.c,
+       tests/slow/cipher-test.c: Added GCM mode using cryptodev. This is
+       mostly a hack due to how GCM mode is exported from kernel.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/ocsptool.c: removed debugging code
+       * NEWS, lib/pkcs11.c: free allocated module name. Reported by Sam
+       Varshavchik.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/ocsp.c: gnutls_ocsp_resp_verify_direct() will use the
-       intermediate certificates in the response in order to verify the
-       validity, thus aligning its functionality with
-       gnutls_ocsp_resp_verify().
+       * lib/system.c: updated documentation
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/common.c, src/common.h, src/ocsptool-common.c,
-       src/ocsptool-common.h, src/ocsptool.c, src/serv.c, src/tests.c: 
-       cleanup a bit the printing information stuff.
+       * lib/x509/pkcs7.c: added newline at end of file.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am: corrected dependencies
+       * Makefile.am, src/Makefile.am: account args-std.def in make dist
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi,
-       doc/cha-programs.texi, doc/cha-shared-key.texi,
-       src/certtool-args.def.in, src/cli-args.def.in,
-       src/cli-debug-args.def.in, src/ocsptool-args.def.in,
-       src/p11tool-args.def.in, src/psk-args.def.in, src/serv-args.def.in,
-       src/srptool-args.def.in: Manual pages for included programs are
-       auto-generated using the autoopts definitions.
+       * lib/gnutls_buffers.c: check errno in pull_timeout_func.
 
-2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: corrected dependencies
+       * lib/accelerated/cryptodev.c: updates for cryptodev. Require the
+       COP_FLAG_RESET.
 
-2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli-args.def.in, src/cli.c, src/common.c,
-       src/common.h, src/ocsptool-common.c, src/ocsptool-common.h,
-       src/ocsptool.c, src/serv.c: gnutls-cli will try to verify ocsp
-       responses if --ocsp is given.
+       * tests/gc.c, tests/pskself.c: added error reporting
 
-2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/cert.h, lib/includes/gnutls/ocsp.h, lib/libgnutls.map,
-       lib/openpgp/openpgp_int.h, lib/x509/ocsp.c, lib/x509/ocsp_output.c: 
-       Added gnutls_ocsp_resp_verify() and some sign fixes.
+       * tests/mini-loss-time.c: properly deinitialize session.
 
-2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: updated todo
+       * tests/slow/cipher-test.c: added (dead) code to test the
+       _hmac_fast.
 
-2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated text.
+       * lib/accelerated/cryptodev.c: Always deinitialize.
 
-2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-verify-ssh.c, src/cli.c: Do not store a key when
-       it already exists.
+       * lib/gnutls_cipher.c: check _gnutls_auth_cipher_add_auth for error
+       codes.
 
-2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/cli-args.def.in, src/cli.c: ssh flag is has the option
-       to be disabled/enabled.
+       * lib/accelerated/cryptodev.c: added reset
 
-2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.ac, doc/cha-cert-auth.texi,
-       doc/cha-gtls-examples.texi, doc/examples/Makefile.am,
-       doc/examples/ex-cert-select-pkcs11.c,
-       doc/examples/ex-cert-select.c, doc/examples/ex-client-dtls.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client-x509.c, doc/examples/ex-serv-dtls.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv-x509.c, doc/examples/ex-verify-ssh.c,
-       doc/examples/examples.h, lib/Makefile.am,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
-       lib/openpgp/output.c, lib/system.c, lib/system.h, lib/verify-ssh.c,
-       lib/x509/output.c, src/cli-args.def.in, src/cli.c, src/common.c,
-       src/common.h, src/tests.c: Added gnutls_verify_stored_pubkey() and
-       gnutls_store_pubkey().  This enables using ssh-like authentication
-       for TLS sessions.
+       * lib/accelerated/x86/sha-padlock.c, lib/crypto-backend.h,
+       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/nettle/mac.c: hash
+       copy no longer needed.
 
-2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/ocsptool.c: allow the usage of --load-trust with --ask
+       * lib/accelerated/cryptodev.c: initialize memory for siop
 
-2012-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/strtok_r.m4, gl/strtok_r.c: Added strtok_r.
+       * lib/gnutls_constate.c, lib/gnutls_datum.c, lib/gnutls_datum.h,
+       lib/openpgp/gnutls_openpgp.c: simplified the _datum functions.
 
-2012-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/Makefile.am, gl/base64.c, gl/base64.h, gl/m4/base64.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/stdalign.m4,
-       gl/tests/Makefile.am, gl/tests/malloca.c, gl/tests/test-base64.c: 
-       added base64 module
+       * configure.ac, m4/hooks.m4: bumped versions
 
-2012-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_b64.c: added fixme
+       * lib/accelerated/cryptodev.c: properly deinitialize cryptodev
+       resources, and only register ciphers if they are hw accelerated.
 
-2012-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/ocsptool-args.def.in: updated description
+       * src/cli.c: benchmark-ciphers re-enabled
 
-2012-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/cha-gtls-examples.texi, doc/examples/Makefile.am,
-       doc/examples/ex-ocsp-client.c, doc/examples/ex-ocsp-verify.c: 
-       Combined ocsp apps to 1 using libcurl.
+       * lib/accelerated/cryptodev.c: fixes in cryptodev support. Added
+       support for digest algorithms.
 
-2012-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/ocsp.h, lib/x509/ocsp_output.c,
-       src/Makefile.am, src/cli.c, src/common.c, src/common.h,
-       src/ocsptool-args.def.in, src/ocsptool.c, src/serv.c, src/socket.c,
-       src/socket.h, src/tls_test.c: Added --ask option to ocsptool.
+       * lib/accelerated/cryptodev.c: fixes in cryptodev support. Added
+       support for digest algorithms.
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am, src/Makefile.am: Fix builddir != srcdir
-       builds.
+       * Makefile.am, src/Makefile.am, src/args-std.def,
+       src/certtool-args.def, src/cli-args.def, src/cli-debug-args.def,
+       src/ocsptool-args.def, src/p11tool-args.def, src/psk-args.def,
+       src/serv-args.def, src/srptool-args.def: Optimizations in command
+       line argument handling. Patch by Bruce Korb.
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/extras/randomart.c: Revert template fix.
+       * NEWS: documented fix
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/infoaccess.c, tests/mpi.c, tests/openpgp-auth.c,
-       tests/openpgp-auth2.c, tests/openssl.c, tests/pkcs12_encode.c,
-       tests/rng-fork.c: Fix mem leaks.
+       * .gitignore: more files to ignore
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/m4/valgrind-tests.m4, gl/override/m4/valgrind-tests.m4.diff: 
-       Enable valgrind again.
+       * lib/auth/cert.c, lib/gnutls_pcert.c: Deinitialize the correct
+       number of certificates. Reported by Remi Gacogne.
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/abstract_int.h, lib/crypto-api.c, lib/crypto-backend.c,
-       lib/crypto.h, lib/debug.c, lib/ext/max_record.c,
-       lib/ext/max_record.h, lib/ext/safe_renegotiation.c,
-       lib/ext/server_name.c, lib/ext/server_name.h,
-       lib/ext/session_ticket.c, lib/ext/signature.c, lib/ext/signature.h,
-       lib/ext/srp.c, lib/ext/srp.h, lib/gnutls.pc.in, lib/gnutls_alert.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_compress.c, lib/gnutls_constate.c, lib/gnutls_datum.c,
-       lib/gnutls_dh.c, lib/gnutls_dh_primes.c, lib/gnutls_ecc.h,
-       lib/gnutls_errors.c, lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_hash_int.c, lib/gnutls_helper.c, lib/gnutls_helper.h,
-       lib/gnutls_kx.c, lib/gnutls_mem.c, lib/gnutls_mpi.c,
-       lib/gnutls_num.c, lib/gnutls_priority.c, lib/gnutls_psk.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_supplemental.c, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/gnutlsxx.cpp, lib/hash.h, lib/locks.h, lib/nettle/cipher.c,
-       lib/nettle/ecc.h, lib/nettle/egd.c, lib/nettle/egd.h,
-       lib/nettle/init.c, lib/nettle/mac.c, lib/nettle/mpi.c,
-       lib/nettle/pk.c, lib/nettle/rnd.c, lib/opencdk/armor.c,
-       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/keydb.h,
-       lib/opencdk/literal.c, lib/opencdk/main.h, lib/opencdk/misc.c,
-       lib/opencdk/new-packet.c, lib/opencdk/opencdk.h,
-       lib/opencdk/packet.h, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/stream.h, lib/opencdk/types.h,
-       lib/opencdk/write-packet.c, lib/openpgp/compat.c,
-       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.h,
-       lib/openpgp/openpgp_int.h, lib/openpgp/output.c,
-       lib/openpgp/pgpverify.c, lib/pkcs11_int.h, lib/random.c,
-       lib/system.c, lib/system.h, lib/x509/crl.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/mpi.c,
-       lib/x509/pbkdf2-sha1.c, lib/x509/pbkdf2-sha1.h, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c,
-       lib/x509/x509_write.c, src/benchmark.h, src/certtool-cfg.h,
-       src/certtool-common.h, src/common.h, src/p11common.h,
-       src/p11tool.h, src/pkcs11.c, src/serv.c, src/tests.h,
-       src/udp-serv.h, tests/anonself.c, tests/certder.c,
-       tests/certificate_set_x509_crl.c, tests/certuniqueid.c,
-       tests/chainverify.c, tests/crq_apis.c, tests/cve-2008-4989.c,
-       tests/cve-2009-1415.c, tests/dhepskself.c, tests/dn.c, tests/dn2.c,
-       tests/gc.c, tests/hostname-check.c, tests/init_roundtrip.c,
-       tests/mini-deflate.c, tests/mini-eagain-dtls.c,
-       tests/mini-eagain.c, tests/mini-x509-rehandshake.c,
-       tests/mini-x509.c, tests/mini.c, tests/moredn.c, tests/mpi.c,
-       tests/nul-in-x509-names.c, tests/openpgp-keyring.c,
-       tests/openpgpself.c, tests/openssl.c, tests/parse_ca.c,
-       tests/pgps2kgnu.c, tests/pkcs12_encode.c, tests/pkcs12_s2k.c,
-       tests/pskself.c, tests/resume.c, tests/rfc2253-escape-test,
-       tests/rng-fork.c, tests/set_pkcs12_cred.c, tests/setcredcrash.c,
-       tests/simple.c, tests/utils.h, tests/x509_altname.c,
-       tests/x509_test.c, tests/x509dn.c, tests/x509self.c: Cleanup
-       copyright headers.
+       * tests/mini-loss-time.c: force kill of child process.
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk, lib/extras/randomart.c: Silence update-copyright.
+       * NEWS: updated
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk, doc/cha-programs.texi, src/cli-args.def.in: Fix
-       syntax-check nits.
+       * lib/accelerated/cryptodev.c: update in cryptodev
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore: Add ChangeLog.  Sort.
+       * lib/accelerated/cryptodev.c: register the .fast function for
+       cryptodev
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * build-aux/config.rpath, build-aux/pmccabe.css, gl/Makefile.am,
-       gl/argp-pin.c, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/thread.m4, gl/m4/yield.m4, gl/stdint.in.h,
-       gl/tests/Makefile.am, gl/tests/glthread/thread.c,
-       gl/tests/glthread/thread.h, gl/tests/glthread/yield.h,
-       gl/tests/test-accept.c, gl/tests/test-bind.c,
-       gl/tests/test-connect.c, gl/tests/test-getpeername.c,
-       gl/tests/test-isnand-nolibm.c, gl/tests/test-listen.c,
-       gl/tests/test-lock.c, gl/tests/test-recv.c,
-       gl/tests/test-recvfrom.c, gl/tests/test-send.c,
-       gl/tests/test-sendto.c, gl/tests/test-setsockopt.c,
-       gl/tests/test-shutdown.c, gl/tests/test-thread_create.c,
-       gl/tests/test-thread_self.c, maint.mk: Update gnulib files.  Drop
-       slow test-lock check.
+       * tests/dtls/dtls, tests/dtls/dtls-nb: Added more tests.
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk: Silence autoreconf with a dummy ChangeLog file.
+       * tests/dtls/dtls-stress.c: Added new dtls-stress.c by Sean
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, ChangeLog.1: Don't store generated ChangeLog in git.
+       * src/libopts/m4/libopts.m4: Included libopts is not installed by
+       default.
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/cert-tests/template-test, tests/pkcs1-padding/pkcs1-pad: Fix
-       datefudge checks, for when datefudge is missing.
+       * tests/mini-loss-time.c: updated description
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am: Only rebuild autogen sources if the real input
-       file is modified.
+       * doc/scripts/gdoc: corrected latex output
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/manpages/Makefile.am,
-       tests/cert-tests/Makefile.am: Fix distcheck.
+       * NEWS: added date
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/pkcs1-padding/pkcs1-pad, tests/suite/testcompat: Fix
-       datefudge checks.
+       * lib/algorithms/ecc.c, lib/crypto-api.c, lib/gnutls_alert.c,
+       lib/gnutls_cert.c, lib/gnutls_dtls.c, lib/gnutls_global.c,
+       lib/gnutls_pcert.c, lib/gnutls_priority.c, lib/gnutls_privkey.c,
+       lib/gnutls_pubkey.c, lib/gnutls_record.c, lib/gnutls_state.c,
+       lib/gnutls_x509.c, lib/pkcs11.c, lib/pkcs11_privkey.c,
+       lib/system_override.c, lib/verify-tofu.c, lib/x509/common.c,
+       lib/x509/crl.c, lib/x509/privkey.c, lib/x509/verify-high.c,
+       lib/x509/x509.c: Since: 3.0.0 -> Since 3.0 to reflect that it might
+       be on a later version than 3.0.0.
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: Generated.
+       * doc/manpages/Makefile.am: Added new functions
 
-2012-01-25  Simon Josefsson <simon@josefsson.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/cert-tests/template-test: Improve datefudge check.  Fix
-       builddir != srcdir.
+       * tests/mini-tdb.c: verify that the correct error code is returned
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented update
+       * doc/scripts/gdoc: do not stick parameters to the next word.
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/gnutls.h.in: corrected prototypes.
+       * lib/verify-tofu.c: return the documented error code
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/libopts/m4/libopts.m4: generate libopts makefile outside the
-       conditional.
+       * cfg.mk: copy gnutls.epub to webdir
 
-2012-01-24  Patrick Pelletier <code@funwithsoftware.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-internals.texi, extra/includes/gnutls/openssl.h,
-       lib/accelerated/x86/hmac-padlock.c, lib/crypto-backend.h,
-       lib/gnutls_int.h, lib/includes/gnutls/gnutls.h.in,
-       lib/nettle/cipher.c, lib/nettle/init.c, lib/nettle/mac.c: Fix up
-       some typos and obsolete comments Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * README-alpha: gaa is no longer needed
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/cha-programs.texi, lib/gnutls_priority.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/common.c: 
-       Added functions to allow quering a priority structure.  That is to
-       allow more information being extracted than only the ciphersuites.  gnutls_priority_certificate_type_list: Added
-       gnutls_priority_sign_list: Added gnutls_priority_protocol_list:
-       Added gnutls_priority_compression_list: Added
-       gnutls_priority_ecc_curve_list: Added
+       * lib/gnutls_record.c: Set the handshake type when calling
+       record_add_to_buffers().
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/printlist.c, lib/algorithms/ecc.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/common.c: 
-       Allow quering available elliptic curves by adding
-       gnutls_ecc_curve_list().
+       * src/serv.c: do not try to verify certificates when not needed.
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: updated
+       * lib/gnutls_errors.c, lib/gnutls_record.c,
+       lib/includes/gnutls/gnutls.h.in: properly report unexpected EOF.
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/key-id/key-id: it seems libopts does not want completely
-       empty templates.
+       * tests/dtls/dtls-stress.c: increase the total timeout in the tests
+       since they seem to exceed the default DTLS maximum timeout.
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-intro-tls.texi: correct typo
+       * lib/gnutls_dtls.c: Do not update twice the DTLS retransmission
+       timer on finished messages. Report and patch by Sean Buckheister.
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/common.c: Do not print the same things twice.
+       * lib/gnutls_dtls.c: Cleanups in DTLS timers usage.
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: libcfg is no longer required.
+       * lib/verify-tofu.c: corrected memory leak
 
-2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi: updated
-       interoperability and priority strings sections.
+       * .gitignore, NEWS, doc/cha-cert-auth.texi,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
+       lib/verify-tofu.c, tests/Makefile.am, tests/mini-deflate.c,
+       tests/mini-tdb.c: The public key storage backend was made
+       extendable.  Added self test for the pubkey  trust default backend.
 
-2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: Added more text on interoperability
+       * tests/dn.c, tests/dn2.c: corrected var names
 
-2012-01-24  Simon Josefsson <simon@josefsson.org>
+2012-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, src/Makefile.am: Fix make dist.
+       * src/ocsptool-args.def: updated doc
 
-2012-01-24  Simon Josefsson <simon@josefsson.org>
+2012-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, configure.ac, libopts/COPYING.gplv3,
-       libopts/COPYING.lgplv3, libopts/COPYING.mbsd, libopts/MakeDefs.inc,
-       libopts/Makefile.am, libopts/README, libopts/ag-char-map.h,
-       libopts/autoopts.c, libopts/autoopts.h, libopts/autoopts/options.h,
-       libopts/autoopts/project.h, libopts/autoopts/usage-txt.h,
-       libopts/boolean.c, libopts/check.c, libopts/compat/compat.h,
-       libopts/compat/pathfind.c, libopts/compat/snprintf.c,
-       libopts/compat/strchr.c, libopts/compat/strdup.c,
-       libopts/compat/windows-config.h, libopts/configfile.c,
-       libopts/cook.c, libopts/enum.c, libopts/env.c, libopts/file.c,
-       libopts/find.c, libopts/genshell.c, libopts/genshell.h,
-       libopts/libopts.c, libopts/load.c, libopts/makeshell.c,
-       libopts/nested.c, libopts/numeric.c, libopts/parse-duration.c,
-       libopts/parse-duration.h, libopts/pgusage.c, libopts/proto.h,
-       libopts/putshell.c, libopts/reset.c, libopts/restore.c,
-       libopts/save.c, libopts/sort.c, libopts/stack.c,
-       libopts/streqvcmp.c, libopts/text_mmap.c, libopts/time.c,
-       libopts/tokenize.c, libopts/usage.c, libopts/value-type.c,
-       libopts/value-type.h, libopts/version.c, libopts/xat-attribute.c,
-       libopts/xat-attribute.h, m4/libopts.m4, m4/liboptschk.m4,
-       src/Makefile.am, src/cli-gaa.c, src/cli-gaa.h,
-       src/libopts/COPYING.gplv3, src/libopts/COPYING.lgplv3,
-       src/libopts/COPYING.mbsd, src/libopts/MakeDefs.inc,
-       src/libopts/Makefile.am, src/libopts/README,
-       src/libopts/ag-char-map.h, src/libopts/autoopts.c,
-       src/libopts/autoopts.h, src/libopts/autoopts/options.h,
-       src/libopts/autoopts/project.h, src/libopts/autoopts/usage-txt.h,
-       src/libopts/boolean.c, src/libopts/check.c,
-       src/libopts/compat/compat.h, src/libopts/compat/pathfind.c,
-       src/libopts/compat/snprintf.c, src/libopts/compat/strchr.c,
-       src/libopts/compat/strdup.c, src/libopts/compat/windows-config.h,
-       src/libopts/configfile.c, src/libopts/cook.c, src/libopts/enum.c,
-       src/libopts/env.c, src/libopts/file.c, src/libopts/find.c,
-       src/libopts/genshell.c, src/libopts/genshell.h,
-       src/libopts/libopts.c, src/libopts/load.c,
-       src/libopts/m4/libopts.m4, src/libopts/m4/liboptschk.m4,
-       src/libopts/makeshell.c, src/libopts/nested.c,
-       src/libopts/numeric.c, src/libopts/parse-duration.c,
-       src/libopts/parse-duration.h, src/libopts/pgusage.c,
-       src/libopts/proto.h, src/libopts/putshell.c, src/libopts/reset.c,
-       src/libopts/restore.c, src/libopts/save.c, src/libopts/sort.c,
-       src/libopts/stack.c, src/libopts/streqvcmp.c,
-       src/libopts/text_mmap.c, src/libopts/time.c,
-       src/libopts/tokenize.c, src/libopts/usage.c,
-       src/libopts/value-type.c, src/libopts/value-type.h,
-       src/libopts/version.c, src/libopts/xat-attribute.c,
-       src/libopts/xat-attribute.h, src/srptool-gaa.c, src/srptool-gaa.h: 
-       Move libopts/ to src/libopts/.  Drop gaa remains.
+       * doc/manpages/Makefile.am: Added missing functions.
 
-2012-01-24  Simon Josefsson <simon@josefsson.org>
+2012-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/x509.h, lib/x509/crl.c: Doc fixes.
+       * doc/cha-gtls-app.texi: corrected typo
 
-2012-01-24  Simon Josefsson <simon@josefsson.org>
+2012-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: Drop src/cfg/ stuff.
+       * NEWS, doc/cha-gtls-app.texi, lib/gnutls_dtls.c,
+       lib/includes/gnutls/dtls.h, lib/libgnutls.map: Added
+       gnutls_dtls_get_timeout()
 
-2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-15  Giuseppe Scrivano <giuseppe@southpole.se>
 
-       * src/psk-args.def.in: corrected typo
+       * doc/examples/ex-cert-select.c: Fix file leak in an example
+       application.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, configure.ac, doc/manpages/Makefile.am,
-       src/Makefile.am, src/ocsptool-args.def.in, src/ocsptool.c,
-       src/ocsptool.gaa: ocsptool uses libopts
+       * tests/dtls/dtls, tests/dtls/dtls-nb: Added more tests.
 
-2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/p11tool-args.def.in, src/p11tool.c: updated inder and inraw
-       commands.
+       * doc/cha-cert-auth.texi, lib/includes/gnutls/gnutls.h.in,
+       lib/verify-tofu.c: Modified the trust_db API to avoid dependendance
+       on a structure.
 
-2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool-args.def.in, src/cli-args.def.in,
-       src/cli-debug-args.def.in, src/p11tool-args.def.in,
-       src/psk-args.def.in, src/serv-args.def.in, src/srptool-args.def.in: 
-       the short version of --help is -h.
+       * lib/gnutls_record.c: Prevent any handshake packet except client
+       hello to trigger a rehandshake error. Patch by Sean Buckheister.
 
-2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/cha-cert-auth2.texi, lib/includes/gnutls/pkcs11.h,
-       lib/libgnutls.map, lib/pkcs11.c: Added gnutls_pkcs11_reinit().
+       * doc/cha-cert-auth.texi, doc/cha-internals.texi: doc updates
 
-2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool-cfg.c: corrected token parsing.
+       * lib/gnutls_global.c, lib/verify-tofu.c: make the default storage
+       backend thread safe.
 
-2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool-cfg.c: READ_MULTI_LINE_TOKENIZED was corrected to
-       account the whole string.
+       * tests/dtls/dtls, tests/dtls/dtls-nb: added more test cases
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: updated
+       * NEWS: updated
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_priority.c: Updated SUITEB requirements according
-       to rfc6460.
+       * lib/gnutls_dtls.c: Corrected DTLS retransmission in non-blocking
+       mode. Based on patch by Sean Buckheister.
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi, src/Makefile.am, src/certtool-cfg.c,
-       src/cfg/Makefile.am, src/cfg/README, src/cfg/cfg+.c,
-       src/cfg/cfg+.h, src/cfg/cfgfile.c, src/cfg/cfgfile.h,
-       src/cfg/cmdline.c, src/cfg/cmdline.h, src/cfg/parse.c,
-       src/cfg/platon/Makefile.am, src/cfg/platon/str/Makefile.am,
-       src/cfg/platon/str/dynfgets.c, src/cfg/platon/str/dynfgets.h,
-       src/cfg/platon/str/strctype.c, src/cfg/platon/str/strctype.h,
-       src/cfg/platon/str/strdyn.c, src/cfg/platon/str/strdyn.h,
-       src/cfg/platon/str/strplus.c, src/cfg/platon/str/strplus.h,
-       src/cfg/props.c, src/cfg/shared.c, src/cfg/shared.h,
-       tests/cert-tests/Makefile.am, tests/cert-tests/template-test,
-       tests/cert-tests/template-test.key,
-       tests/cert-tests/template-test.pem,
-       tests/cert-tests/template-test.tmpl: Certtool completely relies on
-       libopts. As a side-effect the syntax of dn_oid and key_purpose_oids
-       has changed.
+       * doc/cha-cert-auth.texi, lib/Makefile.am,
+       lib/includes/gnutls/gnutls.h.in, lib/verify-ssh.c,
+       lib/verify-tofu.c: The hash in gnutls_store_commitment() is
+       specified in raw format.
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool.c: check for --inraw  and --outraw.
+       * doc/cha-cert-auth.texi, doc/cha-intro-tls.texi: doc updates
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore: more files to ignore
+       * ChangeLog.1: removed unneeded file.
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/certtool.1: removed certtool.1.
+       * doc/Makefile.am, doc/alert-printlist.c, doc/common.c,
+       doc/common.h, doc/errcodes.c, doc/printlist.c: break long strings.
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/p11tool.c, src/p11tool.h: No need for action enumerations.
+       * NEWS, lib/libgnutls.map: documented added function
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, doc/manpages/Makefile.am, src/Makefile.am,
-       src/certtool-args.def.in, src/certtool-common.h,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa, src/p11tool-args.def.in: certtool uses libopts for
-       command line parsing.
+       * tests/dtls/Makefile.am, tests/dtls/dtls, tests/dtls/dtls-nb,
+       tests/dtls/dtls-stress.c: Added tests for non-blocking DTLS
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: enums.texi is not run multiple times. Suggested
-       by Eli Zaretskii.
+       * doc/cha-bib.texi, doc/cha-cert-auth.texi, doc/latex/gnutls.bib,
+       lib/includes/gnutls/gnutls.h.in, lib/verify-ssh.c: Added ability to
+       store commitments (hashes) of public keys.
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli-args.def.in, src/cli-debug-args.def.in,
-       src/p11tool-args.def.in, src/psk-args.def.in, src/serv-args.def.in,
-       src/srptool-args.def.in: updated docs
+       * doc/Makefile.am: Avoid generation of invoke-* in platforms other
+       than the development
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/p11tool-args.def.in, src/p11tool.c: p11tool parses arguments
-       are before (with gaa).
+       * tests/dtls/dtls: more tests
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli-args.def.in, src/cli-debug-args.def.in,
-       src/cli.c, src/p11tool-args.def.in, src/p11tool.c,
-       src/psk-args.def.in, src/serv-args.def.in, src/serv.c,
-       src/srptool-args.def.in: corrected command line parsing issues.
+       * doc/scripts/Makefile.am, doc/scripts/cleanup-autogen.pl: added
+       cleanup-autogen.pl
 
-2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/crl.c, lib/x509/x509.c: Added Since
+       * lib/gnutls_constate.c: reset sliding window size on new epochs
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: disable parallel builds.
+       * tests/dtls/dtls, tests/dtls/dtls-stress.c: added more tests and
+       updated to compile with gnutls' options
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc: Do not allow space between section name and ':'.
+       * configure.ac, tests/Makefile.am, tests/dtls/Makefile.am,
+       tests/dtls/dtls, tests/dtls/dtls-stress.c: Added DTLS-stress test.
+       Contributed by Sean Buckheister.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/latex/gnutls.bib, doc/latex/gnutls.tex: updated bibliography
-       and changed style.
+       * .gitignore, doc/Makefile.am, doc/epub.texi: Added rules to build
+       epub version.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/p11tool-gaa.c, src/p11tool-gaa.h, src/p11tool.gaa: removed old
-       files.
+       * lib/gnutls_buffers.c, lib/gnutls_record.c: discard unexpected
+       buffered changecipherspec
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/gnutls-guile.texi: removed references to IA
+       * lib/gnutls_dtls.c, lib/gnutls_dtls.h, lib/gnutls_int.h,
+       lib/gnutls_record.c, lib/gnutls_state.c: simplified sliding window.
+       Now a different window is kept per epoch.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/p11tool-args.def.in, src/p11tool.c: updated p11tool def.
+       * doc/cha-intro-tls.texi: documentation update
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, configure.ac, doc/manpages/Makefile.am,
-       doc/manpages/p11tool.1, src/Makefile.am, src/cli-args.def.in,
-       src/cli-debug-args.def.in, src/p11tool-args.def.in, src/p11tool.c,
-       src/psk-args.def.in, src/serv-args.def.in, src/srptool-args.def.in: 
-       p11tool uses libopts
+       * doc/Makefile.am, doc/gnutls.texi, doc/scripts/cleanup-autogen.pl: 
+       updated documentation for included programs.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-args.def.in, src/serv-args.def.in: keyfile and certfile
-       types were changed to string, to allow for PKCS #11 urls
+       * lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
+       lib/gnutls_record.c: handle GNUTLS_E_INTERRUPTED when in DTLS mode.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi, doc/fdl-1.3.texi: replaced smallexample
-       with example.
+       * tests/key-id/key-id: added a valid template
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, src/cli-args.c, src/cli-args.h, src/cli-debug-args.c,
-       src/cli-debug-args.h, src/psk-args.c, src/psk-args.h,
-       src/serv-args.c, src/serv-args.h, src/srptool-args.c,
-       src/srptool-args.h: Removed all auto-generated files.
+       * lib/ext/session_ticket.c, lib/gnutls_buffers.c,
+       lib/gnutls_buffers.h, lib/gnutls_dtls.c, lib/gnutls_handshake.c,
+       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c: Do not
+       treat any message from the peer as an indication that the last
+       flight was correctly received.  Verify instead that the received
+       handshake message has an expected sequence number.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/output.c, tests/cert-tests/aki-cert.pem: corrected AKI
-       test.
+       * lib/gnutls_record.c: changecipherspec is correctly added into
+       buffers.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: corrected typo
+       * configure.ac, src/libopts/m4/libopts.m4: use NEED_LIBOPTS_DIR=true
+       instead of modifying libopts.m4
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, README-alpha, doc/manpages/gnutls-cli-debug.1,
-       doc/manpages/gnutls-serv.1, doc/manpages/psktool.1,
-       doc/manpages/srptool.1: Do not store auto-generated manpages to git.
+       * lib/gnutls_dtls.c, lib/gnutls_dtls.h: update and reset timers on
+       final flight and print timeout value in debugging mode.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/cert-tests/ca-no-pathlen.pem,
-       tests/cert-tests/no-ca-or-pathlen.pem: uploaded for new legacy sec
-       level
+       * tests/mini-loss-time.c, tests/mini-loss.c: tests with fork are
+       disabled in windows
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, doc/manpages/gnutls-cli-debug.1,
-       doc/manpages/gnutls-serv.1, doc/manpages/psktool.1,
-       doc/manpages/srptool.1, src/cli-args.c, src/cli-args.h,
-       src/cli-debug-args.c, src/cli-debug-args.h, src/psk-args.c,
-       src/psk-args.h, src/serv-args.c, src/serv-args.h,
-       src/srptool-args.c, src/srptool-args.h: Added missing files.
+       * .gitignore: updated
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.ac, lib/gnutls_errors.c,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/x509.h,
-       lib/x509/crl.c, lib/x509/output.c, lib/x509/x509.c,
-       tests/Makefile.am, tests/cert-tests/Makefile.am,
-       tests/cert-tests/aki, tests/cert-tests/aki-cert.pem,
-       tests/cert-tests/ca-no-pathlen.pem,
-       tests/cert-tests/no-ca-or-pathlen.pem, tests/cert-tests/pathlen,
-       tests/pathlen/Makefile.am, tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem, tests/pathlen/pathlen: Added
-       functions to parse authority key identifiers when stored as a
-       'general name' and serial combo.
+       * lib/gnutls_dtls.c, lib/gnutls_dtls.h, lib/gnutls_int.h,
+       lib/gnutls_state.c: use subsecond granularity for DTLS packet
+       retransmissions.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/x509.c: Corrected bug in _gnutls_parse_aia()
+       * tests/Makefile.am, tests/mini-loss-time.c: added test to check
+       whether the DTLS timeout is within a reasonable time.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-args.c, src/cli-args.def.in, src/cli-args.h,
-       src/serv-args.c, src/serv-args.def.in, src/serv-args.h, src/serv.c,
-       src/srptool-args.c, src/srptool-args.def.in, src/srptool-args.h: 
-       updated parameter parsing.
+       * src/tests.c, src/tests.h, src/tls_test.c: Added more tests to
+       check whether various TLS versions need to be disabled.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv-gaa.c, src/serv-gaa.h, src/serv.gaa: removed serv gaa
-       files
+       * doc/Makefile.am: be more silent
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/gnutls-cli-debug.1, doc/manpages/psktool.1,
-       doc/manpages/srptool.1, src/cli-args.c, src/cli-args.h,
-       src/srptool-args.c, src/srptool-args.h: updates.
+       * Makefile.am: do not generate .texi on make dist.
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, configure.ac, doc/manpages/Makefile.am,
-       doc/manpages/gnutls-serv.1, src/Makefile.am, src/serv-args.c,
-       src/serv-args.def.in, src/serv-args.h, src/serv.c: gnutls-serv uses
-       libopts.
+       * cross.mk: cross building updates
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-ocsp-client.c, doc/examples/ex-ocsp-verify.c,
-       lib/x509/ocsp.c, lib/x509/ocsp_output.c, src/ocsptool.c: sign fixes.
+       * doc/cha-cert-auth.texi: updated
 
-2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/includes/gnutls/gnutls.h.in: Documented updates.
+       * src/libopts/m4/libopts.m4, src/libopts/makeshell.c: corrections
 
-2012-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi, lib/algorithms/secparams.c,
-       lib/includes/gnutls/gnutls.h.in, tests/slow/keygen.c: Added new
-       security level "legacy" for 96-bit security.
+       * src/libopts/COPYING.gplv3, src/libopts/COPYING.lgplv3,
+       src/libopts/Makefile.am, src/libopts/README,
+       src/libopts/ag-char-map.h, src/libopts/alias.c,
+       src/libopts/ao-strs.c, src/libopts/ao-strs.h,
+       src/libopts/autoopts.c, src/libopts/autoopts.h,
+       src/libopts/autoopts/options.h, src/libopts/autoopts/usage-txt.h,
+       src/libopts/boolean.c, src/libopts/check.c,
+       src/libopts/compat/compat.h, src/libopts/compat/windows-config.h,
+       src/libopts/configfile.c, src/libopts/cook.c, src/libopts/enum.c,
+       src/libopts/env.c, src/libopts/file.c, src/libopts/find.c,
+       src/libopts/genshell.c, src/libopts/genshell.h,
+       src/libopts/libopts.c, src/libopts/load.c,
+       src/libopts/m4/libopts.m4, src/libopts/m4/liboptschk.m4,
+       src/libopts/makeshell.c, src/libopts/nested.c,
+       src/libopts/numeric.c, src/libopts/parse-duration.c,
+       src/libopts/parse-duration.h, src/libopts/pgusage.c,
+       src/libopts/proto.h, src/libopts/putshell.c, src/libopts/reset.c,
+       src/libopts/restore.c, src/libopts/save.c, src/libopts/sort.c,
+       src/libopts/stack.c, src/libopts/streqvcmp.c,
+       src/libopts/text_mmap.c, src/libopts/time.c,
+       src/libopts/tokenize.c, src/libopts/usage.c,
+       src/libopts/value-type.h, src/libopts/version.c,
+       src/libopts/xat-attribute.h: updated libopts
 
-2012-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, configure.ac, doc/manpages/Makefile.am,
-       doc/manpages/gnutls-cli-debug.1, doc/manpages/psktool.1,
-       doc/manpages/srptool.1, src/Makefile.am, src/cli-args.c,
-       src/cli-args.h, src/psk-args.def.in, src/psk-gaa.c, src/psk-gaa.h,
-       src/psk.c, src/psk.gaa, src/srptool-args.c, src/srptool-args.h: 
-       psktool also uses libopt.
+       * Makefile.am: corrected move of files
 
-2012-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, Makefile.am, configure.ac, doc/manpages/Makefile.am,
-       doc/manpages/gnutls-cli.1, doc/manpages/srptool.1,
-       libopts/COPYING.gplv3, libopts/COPYING.lgplv3,
-       libopts/COPYING.mbsd, libopts/MakeDefs.inc, libopts/Makefile.am,
-       libopts/README, libopts/ag-char-map.h, libopts/autoopts.c,
-       libopts/autoopts.h, libopts/autoopts/options.h,
-       libopts/autoopts/project.h, libopts/autoopts/usage-txt.h,
-       libopts/boolean.c, libopts/check.c, libopts/compat/compat.h,
-       libopts/compat/pathfind.c, libopts/compat/snprintf.c,
-       libopts/compat/strchr.c, libopts/compat/strdup.c,
-       libopts/compat/windows-config.h, libopts/configfile.c,
-       libopts/cook.c, libopts/enum.c, libopts/env.c, libopts/file.c,
-       libopts/find.c, libopts/genshell.c, libopts/genshell.h,
-       libopts/libopts.c, libopts/load.c, libopts/makeshell.c,
-       libopts/nested.c, libopts/numeric.c, libopts/parse-duration.c,
-       libopts/parse-duration.h, libopts/pgusage.c, libopts/proto.h,
-       libopts/putshell.c, libopts/reset.c, libopts/restore.c,
-       libopts/save.c, libopts/sort.c, libopts/stack.c,
-       libopts/streqvcmp.c, libopts/text_mmap.c, libopts/time.c,
-       libopts/tokenize.c, libopts/usage.c, libopts/value-type.c,
-       libopts/value-type.h, libopts/version.c, libopts/xat-attribute.c,
-       libopts/xat-attribute.h, m4/libopts.m4, m4/liboptschk.m4,
-       src/Makefile.am, src/cli-args.c, src/cli-args.def.in,
-       src/cli-args.h, src/cli-debug-args.def.in, src/cli.c, src/cli.gaa,
-       src/common.h, src/srptool-args.c, src/srptool-args.def.in,
-       src/srptool-args.h, src/srptool.c, src/srptool.gaa,
-       src/tls_test-gaa.c, src/tls_test-gaa.h, src/tls_test.c,
-       src/tls_test.gaa: gnutls-cli, gnutls-cli-debug and srptool use
-       libopts.
+       * doc/cha-cert-auth.texi: escaped brackets
 
-2012-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/cert.c: If peer doesn't send any issuers and we have a
-       single certificate then send that one.
+       * cross.mk: depend on p11-kit 0.11
 
-2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac, doc/examples/ex-client-psk.c,
-       doc/examples/ex-pkcs11-list.c, doc/examples/ex-pkcs12.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv-x509.c, doc/examples/tcp.c,
-       lib/abstract_int.h, lib/accelerated/cryptodev.c, lib/algorithms.h,
-       lib/algorithms/ciphersuites.c, lib/algorithms/secparams.c,
-       lib/auth/anon.c, lib/auth/anon_ecdh.c, lib/auth/cert.c,
-       lib/auth/cert.h, lib/auth/dh_common.c, lib/auth/dh_common.h,
-       lib/auth/dhe.c, lib/auth/dhe_psk.c, lib/auth/ecdh_common.c,
-       lib/auth/ecdh_common.h, lib/auth/psk.c, lib/auth/psk_passwd.c,
-       lib/auth/rsa.c, lib/auth/rsa_export.c, lib/auth/srp.c,
-       lib/auth/srp.h, lib/auth/srp_passwd.c, lib/auth/srp_passwd.h,
-       lib/auth/srp_rsa.c, lib/auth/srp_sb64.c, lib/ext/cert_type.c,
-       lib/ext/ecc.c, lib/ext/ecc.h, lib/ext/max_record.c,
-       lib/ext/safe_renegotiation.c, lib/ext/server_name.c,
-       lib/ext/server_name.h, lib/ext/session_ticket.c,
-       lib/ext/signature.c, lib/ext/signature.h, lib/ext/srp.c,
-       lib/extras/randomart.c, lib/gnutls_auth.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_constate.c, lib/gnutls_datum.c,
-       lib/gnutls_datum.h, lib/gnutls_dh_primes.c, lib/gnutls_dtls.c,
-       lib/gnutls_ecc.c, lib/gnutls_ecc.h, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_mbuffers.c, lib/gnutls_mpi.c, lib/gnutls_num.c,
-       lib/gnutls_num.h, lib/gnutls_pcert.c, lib/gnutls_pk.c,
-       lib/gnutls_psk.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/gnutls_str_array.h, lib/gnutls_supplemental.c, lib/gnutls_ui.c,
-       lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h, lib/gnutls_x509.c,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/pkcs11.h,
-       lib/includes/gnutls/x509.h, lib/nettle/cipher.c, lib/nettle/egd.c,
-       lib/nettle/mpi.c, lib/nettle/pk.c, lib/nettle/rnd.c,
-       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/kbnode.c,
-       lib/opencdk/main.h, lib/opencdk/stream.c, lib/opencdk/stream.h,
-       lib/opencdk/write-packet.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/gnutls_openpgp.h,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/privkey.c,
-       lib/pkcs11.c, lib/pkcs11_int.h, lib/pkcs11_secret.c,
-       lib/pkcs11_write.c, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/extensions.c, lib/x509/key_decode.c,
-       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/pbkdf2-sha1.c, lib/x509/pbkdf2-sha1.h, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify-high.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h,
-       lib/x509/x509_write.c, lib/x509_b64.c, lib/x509_b64.h,
-       src/benchmark-tls.c, src/certtool-common.c, src/certtool.c,
-       src/cli.c, src/common.c, src/crywrap/crywrap.c, src/dh.c,
-       src/pkcs11.c, src/serv.c, src/srptool.c, tests/anonself.c,
-       tests/certificate_set_x509_crl.c, tests/chainverify.c,
-       tests/cve-2008-4989.c, tests/cve-2009-1415.c, tests/dhepskself.c,
-       tests/dn.c, tests/dn2.c, tests/gc.c, tests/hostname-check.c,
-       tests/infoaccess.c, tests/mini-deflate.c, tests/mini-eagain-dtls.c,
-       tests/mini-eagain.c, tests/mini.c, tests/moredn.c,
-       tests/nul-in-x509-names.c, tests/openpgp-auth.c,
-       tests/openpgp-auth2.c, tests/openpgpself.c, tests/parse_ca.c,
-       tests/pkcs12_encode.c, tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c,
-       tests/pskself.c, tests/resume.c, tests/rsa-encrypt-decrypt.c,
-       tests/slow/cipher-test.c, tests/utils.c, tests/utils.h,
-       tests/x509_altname.c, tests/x509cert.c, tests/x509dn.c,
-       tests/x509self.c, tests/x509sign-verify.c: Fixed signed/unsigned
-       warnings.  Dropped opaque type (replaced with uint8_t)
+       * lib/gnutls_x509.c: disabled dead code when PKCS11 is not there
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
-       lib/opencdk/misc.c, lib/x509/common.c, lib/x509/crl.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.c, lib/x509_b64.c: Modulo
-       operations are only occuring on unsigned integers.
+       * NEWS, configure.ac: depend on p11-kit 0.11
 
-2012-01-20  Ludovic Courtès <ludo@gnu.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk, guile/modules/gnutls/build/priorities.scm,
-       guile/src/core.c: guile: Don't cast return value of `alloca'.
+       * doc/cha-cert-auth.texi, lib/includes/gnutls/gnutls.h.in,
+       lib/verify-ssh.c: updated documentation for back-end.
 
-2012-01-20  Ludovic Courtès <ludo@gnu.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * guile/modules/gnutls.in, guile/modules/gnutls/build/enums.scm: 
-       guile: Update the list of error codes.
+       * doc/latex/gnutls.tex: index after bibliography
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * po/cs.po.in, po/de.po.in, po/fr.po.in, po/it.po.in, po/ms.po.in,
-       po/nl.po.in, po/pl.po.in, po/sv.po.in, po/uk.po.in, po/zh_CN.po.in: 
-       Sync with TP.
+       * .gitignore, doc/latex/.gitignore: more files to ignore
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk: Ignore assembler code.
+       * doc/alert-printlist.c, doc/errcodes.c, doc/printlist.c: avoid
+       headers in tables
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/latex/cover-epub.tex, doc/latex/cover.tex,
-       doc/scripts/Makefile.am, doc/scripts/getfuncs.pl,
-       doc/scripts/mytexi2latex, doc/scripts/sort1.pl,
-       doc/scripts/sort2.pl, doc/scripts/split-texi.pl,
-       doc/scripts/split.pl, lib/gnutls_dtls.c, lib/gnutls_mbuffers.c,
-       lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/pkcs11.c,
-       lib/pkcs11_privkey.c, lib/pkcs11_secret.c, lib/pkcs11_write.c,
-       lib/x509/verify.c, tests/openpgp-auth.c, tests/openpgp-auth2.c,
-       tests/scripts/common.sh: Add/fix copyright headers.
+       * src/cli-args.def: documentation update
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk: Add rules to generate clang analysis.
+       * lib/verify-ssh.c: documentation update
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * build-aux/gendocs.sh, doc/gendocs_template, gl/Makefile.am,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/stdlib_h.m4,
-       gl/stdlib.in.h, gl/sys_stat.in.h, gl/tests/fcntl.in.h,
-       gl/unistd.in.h: Update gnulib files.
+       * doc/Makefile.am, doc/latex/Makefile.am, doc/scripts/gdoc,
+       doc/scripts/mytexi2latex: updated doc generation
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: Generated.
+       * src/certtool-args.def, src/p11tool-args.def, src/srptool-args.def: 
+       doc fixes
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.ac: Version 3.0.12.
+       * NEWS: updated NEWS
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk, po/POTFILES.in: Fix syntax-check rules.
+       * doc/examples/Makefile.am: added missing files
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, NEWS, configure.ac, doc/Makefile.am,
-       doc/cha-bib.texi, doc/cha-cert-auth2.texi, doc/cha-functions.texi,
-       doc/cha-gtls-examples.texi, doc/examples/Makefile.am,
-       doc/examples/ex-ocsp-client.c, doc/examples/ex-ocsp-verify.c,
-       doc/manpages/Makefile.am, doc/reference/gnutls-docs.sgml,
-       lib/includes/Makefile.am, lib/includes/gnutls/ocsp.h,
-       lib/libgnutls.map, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/Makefile.am, lib/x509/ocsp.c, lib/x509/ocsp_output.c,
-       m4/hooks.m4, src/Makefile.am, src/ocsptool-common.h,
-       src/ocsptool.c, src/ocsptool.gaa, tests/Makefile.am, tests/ocsp.c: 
-       Add OCSP functionality.
+       * src/cli.c: resolve port only when needed to.
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/verify-high.c, lib/x509/verify-high.h: Fix semantics of
-       (unused) _gnutls_trustlist_inlist.
+       * cross.mk: updated makefile
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: Bump copyright year on manpages.
+       * lib/gnutls_dtls.c: fix in non-blocking case.
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/x509.c: Fix mem leak.
+       * configure.ac: small correction
 
-2012-01-20  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: Cosmetic improvement of build output.
+       * Makefile.am, src/Makefile.am: corrected subdirs for libopts
 
-2012-01-19  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * guile/tests/Makefile.am: Print detailed guile warnings (for
-       obsolete functions).
+       * lib/gnutls_x509.c, lib/x509/crl.c, lib/x509/crl_write.c,
+       lib/x509/crq.c, lib/x509/extensions.c, lib/x509/mpi.c,
+       lib/x509/output.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
+       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
+       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify.c,
+       lib/x509/x509.c, lib/x509/x509_write.c, src/cli.c, src/dh.c,
+       src/serv.c: ENABLE_PKI is no more
 
-2012-01-18  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: Fix doc/enums/ generation to work with 'make
-       distcheck'.
+       * m4/hooks.m4, src/Makefile.am: fix
 
-2012-01-18  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * guile/pre-inst-guile.in: Fix builddir != srcdir builds.
+       * doc/examples/Makefile.am, src/Makefile.am, src/socket.c: fix
+       compilation
 
-2012-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: doc fix
+       * lib/gnutls_dtls.c: fixed leak
 
-2012-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_errors.c, lib/gnutls_priority.c, src/cli.c: 
-       GNUTLS_E_NO_PRIORITIES_WERE_SET is also returned by
-       gnutls_priority_set_* This allows to warn when an incomplete set of
-       priorities is specified.  Reported by Yaroslav Stavnichiy.
+       * configure.ac, m4/hooks.m4: cleanup enable/disable options stuff.
 
-2012-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_handshake.c,
-       lib/includes/gnutls/gnutls.h.in: introduced
-       GNUTLS_E_NO_PRIORITIES_WERE_SET.
+       * configure.ac, src/libopts/compat/compat.h, src/libopts/cook.c,
+       src/libopts/makeshell.c, src/libopts/text_mmap.c: fixes to allow
+       libopts to compile in windows
 
-2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi, doc/texinfo.css: more documentation
-       updates.
+       * lib/system.c: corrected typo
 
-2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-internals.texi: added more information to internals''
+       * NEWS, doc/examples/ex-verify-ssh.c,
+       lib/includes/gnutls/gnutls.h.in, lib/verify-ssh.c,
+       src/cli-args.def, src/cli.c: gnutls_verify_stored_pubkey() and
+       gnutls_store_pubkey() allow for alternative storage back-end.
 
-2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/printlist.c: better print supported algorithms.
+       * src/cli.c, src/socket.c, src/socket.h: use getservbyport() to
+       obtain the service name.
 
-2012-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-client-x509.c: Added
-       gnutls_certificate_set_x509_key_file in a comment.
+       * gl/Makefile.am, gl/m4/gnulib-cache.m4: added servent
 
-2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/examples/ex-pkcs11-list.c, doc/examples/print-ciphersuites.c: 
-       added boilerplate
+       * doc/examples/ex-verify-ssh.c, src/cli.c: use updated api
 
-2012-01-17  Ludovic Courtès <ludo@gnu.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * guile/pre-inst-guile.in: Fix $(srcdir) != $(builddir) for Guile.  Now that modules/gnutls.scm is generated, $(builddir) must be in the
-       search path.
+       * src/benchmark-tls.c: updated for new eagain-common.h
 
-2012-01-16  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/ecdsa/ecdsa: Fix srcdir != builddir builds.  Tiny patch from Elias Pipping <pipping@lavabit.com>.
+       * doc/cha-cert-auth.texi, doc/cha-gtls-examples.texi,
+       doc/examples/ex-verify-ssh.c, lib/includes/gnutls/gnutls.h.in,
+       lib/verify-ssh.c: Removed the application field and added an
+       expiration field.
 
-2012-01-16  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/gnutls.h.in, lib/nettle/ecc_mulmod.c: GTK-DOC
-       fixes.
+       * doc/examples/ex-client-x509.c: updated example
 
-2012-01-16  Simon Josefsson <simon@josefsson.org>
+2012-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/manpages/Makefile.am: Generated.
+       * lib/gnutls_dtls.c, lib/gnutls_record.c: More robust behavior
+       against packet loss
 
-2012-01-16  Simon Josefsson <simon@josefsson.org>
+2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-programs.texi: Fix sc_space_tab syntax-check nit.
+       * lib/system.c, lib/system.h: removed unneeded function.
 
-2012-01-16  Simon Josefsson <simon@josefsson.org>
+2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .clcopying, AUTHORS, cfg.mk, doc/Makefile.am,
-       doc/alert-printlist.c, doc/credentials/Makefile.am, doc/errcodes.c,
-       doc/examples/Makefile.am, doc/extract-guile-c-doc.scm,
-       doc/fdl-1.3.texi, doc/gpl-3.0.texi, doc/lgpl-2.1.texi,
-       doc/printlist.c, extra/Makefile.am, extra/gnutls_openssl.c,
-       extra/includes/Makefile.am, extra/includes/gnutls/openssl.h,
-       extra/openssl_compat.c, extra/openssl_compat.h, guile/Makefile.am,
-       guile/modules/Makefile.am, guile/modules/gnutls.in,
-       guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/priorities.scm,
-       guile/modules/gnutls/build/smobs.scm,
-       guile/modules/gnutls/build/utils.scm,
-       guile/modules/gnutls/extra.scm,
-       guile/modules/system/documentation/c-snarf.scm,
-       guile/modules/system/documentation/output.scm,
-       guile/pre-inst-guile.in, guile/src/errors.c, guile/src/utils.c,
-       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
-       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/openpgp-keys.scm, guile/tests/pkcs-import-export.scm,
-       guile/tests/session-record-port.scm, guile/tests/srp-base64.scm,
-       guile/tests/x509-auth.scm, guile/tests/x509-certificates.scm,
-       lib/auth/anon.c, lib/auth/anon_ecdh.c, lib/auth/dh_common.c,
-       lib/auth/dhe.c, lib/auth/dhe_psk.c, lib/auth/psk.c,
-       lib/auth/psk_passwd.c, lib/auth/rsa.c, lib/auth/rsa_export.c,
-       lib/auth/srp_passwd.c, lib/auth/srp_rsa.c, lib/auth/srp_sb64.c: 
-       Collapse and cleanup copyright information.
+       * doc/examples/ex-client-srp.c: updated example
 
-2012-01-16  Simon Josefsson <simon@josefsson.org>
+2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .clcopying, AUTHORS, ChangeLog, ChangeLog.1, Makefile.am, NEWS,
-       README, README-alpha, THANKS, configure.ac, doc/Makefile.am,
-       doc/alert-printlist.c, doc/credentials/Makefile.am,
-       doc/cyclo/Makefile.am, doc/errcodes.c, doc/examples/Makefile.am,
-       doc/extract-guile-c-doc.scm, doc/fdl-1.3.texi,
-       doc/gnutls-guile.texi, doc/gnutls.texi, doc/gpl-3.0.texi,
-       doc/lgpl-2.1.texi, doc/manpages/Makefile.am, doc/printlist.c,
-       extra/Makefile.am, extra/gnutls_openssl.c,
-       extra/includes/Makefile.am, extra/includes/gnutls/openssl.h,
-       extra/openssl_compat.c, extra/openssl_compat.h, guile/Makefile.am,
-       guile/modules/Makefile.am, guile/modules/gnutls.in,
-       guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/priorities.scm,
-       guile/modules/gnutls/build/smobs.scm,
-       guile/modules/gnutls/build/tests.scm,
-       guile/modules/gnutls/build/utils.scm,
-       guile/modules/gnutls/extra.scm,
-       guile/modules/system/documentation/c-snarf.scm,
-       guile/modules/system/documentation/output.scm,
-       guile/pre-inst-guile.in, guile/src/Makefile.am, guile/src/core.c,
-       guile/src/errors.c, guile/src/errors.h,
-       guile/src/make-enum-header.scm, guile/src/make-enum-map.scm,
-       guile/src/make-session-priorities.scm,
-       guile/src/make-smob-header.scm, guile/src/make-smob-types.scm,
-       guile/src/utils.c, guile/src/utils.h, guile/tests/Makefile.am,
-       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
-       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/openpgp-keys.scm, guile/tests/pkcs-import-export.scm,
-       guile/tests/priorities.scm, guile/tests/session-record-port.scm,
-       guile/tests/srp-base64.scm, guile/tests/x509-auth.scm,
-       guile/tests/x509-certificates.scm, lib/Makefile.am,
-       lib/accelerated/Makefile.am, lib/accelerated/accelerated.c,
-       lib/accelerated/cryptodev.c, lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/aes-gcm-padlock.c,
-       lib/accelerated/x86/aes-gcm-x86.c,
-       lib/accelerated/x86/aes-padlock.c, lib/accelerated/x86/aes-x86.c,
-       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
-       lib/accelerated/x86/asm/cpuid-x86-64.s,
-       lib/accelerated/x86/asm/cpuid-x86.s,
-       lib/accelerated/x86/hmac-padlock.c,
-       lib/accelerated/x86/sha-padlock.c, lib/accelerated/x86/x86.h,
-       lib/algorithms.h, lib/algorithms/Makefile.am,
-       lib/algorithms/cert_types.c, lib/algorithms/ciphers.c,
-       lib/algorithms/ciphersuites.c, lib/algorithms/ecc.c,
-       lib/algorithms/kx.c, lib/algorithms/mac.c,
-       lib/algorithms/protocols.c, lib/algorithms/publickey.c,
-       lib/algorithms/secparams.c, lib/algorithms/sign.c,
-       lib/auth/Makefile.am, lib/auth/anon.c, lib/auth/anon.h,
-       lib/auth/anon_ecdh.c, lib/auth/cert.c, lib/auth/cert.h,
-       lib/auth/dh_common.c, lib/auth/dh_common.h, lib/auth/dhe.c,
-       lib/auth/dhe_psk.c, lib/auth/ecdh_common.c, lib/auth/ecdh_common.h,
-       lib/auth/psk.c, lib/auth/psk.h, lib/auth/psk_passwd.c,
-       lib/auth/psk_passwd.h, lib/auth/rsa.c, lib/auth/rsa_export.c,
-       lib/auth/srp.c, lib/auth/srp.h, lib/auth/srp_passwd.c,
-       lib/auth/srp_passwd.h, lib/auth/srp_rsa.c, lib/auth/srp_sb64.c,
-       lib/crypto-api.c, lib/crypto-backend.c, lib/crypto-backend.h,
-       lib/crypto.h, lib/debug.c, lib/debug.h, lib/ext/Makefile.am,
-       lib/ext/cert_type.c, lib/ext/cert_type.h, lib/ext/ecc.c,
-       lib/ext/ecc.h, lib/ext/max_record.c, lib/ext/max_record.h,
-       lib/ext/safe_renegotiation.c, lib/ext/safe_renegotiation.h,
-       lib/ext/server_name.c, lib/ext/server_name.h,
-       lib/ext/session_ticket.c, lib/ext/session_ticket.h,
-       lib/ext/signature.c, lib/ext/signature.h, lib/ext/srp.c,
-       lib/ext/srp.h, lib/extras/Makefile.am, lib/gnutls.pc.in,
-       lib/gnutls_alert.c, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_auth.h, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_constate.c, lib/gnutls_constate.h, lib/gnutls_datum.c,
-       lib/gnutls_datum.h, lib/gnutls_db.c, lib/gnutls_db.h,
-       lib/gnutls_dh.c, lib/gnutls_dh.h, lib/gnutls_dh_primes.c,
-       lib/gnutls_dtls.h, lib/gnutls_ecc.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_helper.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_mbuffers.h, lib/gnutls_mem.c, lib/gnutls_mem.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_num.c,
-       lib/gnutls_num.h, lib/gnutls_pcert.c, lib/gnutls_pk.h,
-       lib/gnutls_priority.c, lib/gnutls_psk.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_srp.c,
-       lib/gnutls_srp.h, lib/gnutls_state.h, lib/gnutls_str.c,
-       lib/gnutls_str.h, lib/gnutls_str_array.h,
-       lib/gnutls_supplemental.c, lib/gnutls_supplemental.h,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/hash.c,
-       lib/includes/Makefile.am, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/crypto.h,
-       lib/includes/gnutls/dtls.h, lib/includes/gnutls/gnutlsxx.h,
-       lib/includes/gnutls/openpgp.h, lib/includes/gnutls/pkcs11.h,
-       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/libgnutlsxx.map, lib/locks.c,
-       lib/minitasn1/Makefile.am, lib/minitasn1/coding.c,
-       lib/minitasn1/decoding.c, lib/minitasn1/element.c,
-       lib/minitasn1/element.h, lib/minitasn1/errors.c,
-       lib/minitasn1/gstr.c, lib/minitasn1/gstr.h, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/parser_aux.h, lib/minitasn1/structure.c,
-       lib/minitasn1/structure.h, lib/minitasn1/version.c,
-       lib/nettle/Makefile.am, lib/nettle/cipher.c, lib/nettle/ecc_free.c,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
-       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_mulmod_timing.c,
-       lib/nettle/ecc_points.c, lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_check_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/ecc_verify_hash.c, lib/nettle/egd.c, lib/nettle/init.c,
-       lib/nettle/mac.c, lib/nettle/mpi.c, lib/nettle/pk.c,
-       lib/nettle/rnd.c, lib/opencdk/Makefile.am, lib/opencdk/armor.c,
-       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
-       lib/opencdk/main.h, lib/opencdk/misc.c, lib/opencdk/new-packet.c,
-       lib/opencdk/opencdk.h, lib/opencdk/packet.h, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/stream.h, lib/opencdk/types.h,
-       lib/opencdk/write-packet.c, lib/openpgp/Makefile.am,
-       lib/openpgp/compat.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
-       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
-       lib/random.c, lib/random.h, lib/system.c, lib/system_override.c,
-       lib/x509/Makefile.am, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/extensions.c, lib/x509/key_decode.c,
-       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/pbkdf2-sha1.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
-       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818_hostname.c,
-       lib/x509/sign.c, lib/x509/verify-high.c, lib/x509/verify-high.h,
-       lib/x509/x509_int.h, lib/x509/x509_write.c, lib/x509_b64.c,
-       lib/x509_b64.h, m4/gcc.m4, m4/guile.m4, m4/hooks.m4, po/cs.po.in,
-       po/de.po.in, po/fr.po.in, po/it.po.in, po/ms.po.in, po/nl.po.in,
-       po/pl.po.in, po/sv.po.in, po/uk.po.in, po/zh_CN.po.in,
-       src/Makefile.am, src/benchmark-cipher.c, src/benchmark-tls.c,
-       src/benchmark.c, src/certtool-cfg.c, src/certtool-common.c,
-       src/certtool.c, src/cli.c, src/common.c, src/crywrap/Makefile.am,
-       src/dh.c, src/p11common.c, src/p11tool.c, src/pkcs11.c, src/psk.c,
-       src/serv.c, src/srptool.c, src/tests.c, src/tls_test.c,
-       src/udp-serv.c, tests/Makefile.am, tests/anonself.c,
-       tests/certder.c, tests/certificate_set_x509_crl.c,
-       tests/certuniqueid.c, tests/chainverify.c, tests/crq_apis.c,
-       tests/crq_key_id.c, tests/cve-2008-4989.c, tests/cve-2009-1415.c,
-       tests/cve-2009-1416.c, tests/dhepskself.c, tests/dn.c, tests/dn2.c,
-       tests/dsa/Makefile.am, tests/dsa/testdsa, tests/ecdsa/Makefile.am,
-       tests/ecdsa/ecdsa, tests/gc.c, tests/hostname-check.c,
-       tests/infoaccess.c, tests/init_roundtrip.c,
-       tests/key-id/Makefile.am, tests/key-id/README, tests/key-id/key-id,
-       tests/mini-deflate.c, tests/mini-eagain-dtls.c,
-       tests/mini-eagain.c, tests/mini-x509-rehandshake.c,
-       tests/mini-x509.c, tests/mini.c, tests/moredn.c, tests/mpi.c,
-       tests/nist-pkits/pkits, tests/nist-pkits/pkits_crl,
-       tests/nist-pkits/pkits_crt, tests/nist-pkits/pkits_pkcs12,
-       tests/nist-pkits/pkits_smime, tests/nul-in-x509-names.c,
-       tests/openpgp-certs/Makefile.am, tests/openpgp-certs/testcerts,
-       tests/openpgp-certs/testselfsigs, tests/openpgp-keyring.c,
-       tests/openpgpself.c, tests/openssl.c, tests/parse_ca.c,
-       tests/pathlen/Makefile.am, tests/pathlen/pathlen,
-       tests/pgps2kgnu.c, tests/pkcs1-padding/Makefile.am,
-       tests/pkcs1-padding/pkcs1-pad, tests/pkcs12-decode/Makefile.am,
-       tests/pkcs12-decode/pkcs12, tests/pkcs12_encode.c,
-       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c,
-       tests/pkcs8-decode/Makefile.am, tests/pkcs8-decode/pkcs8,
-       tests/pskself.c, tests/resume.c, tests/rfc2253-escape-test,
-       tests/rng-fork.c, tests/rsa-encrypt-decrypt.c,
-       tests/rsa-md5-collision/Makefile.am,
-       tests/rsa-md5-collision/README,
-       tests/rsa-md5-collision/rsa-md5-collision,
-       tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/srn0.c, tests/safe-renegotiation/srn1.c,
-       tests/safe-renegotiation/srn2.c, tests/safe-renegotiation/srn3.c,
-       tests/safe-renegotiation/srn4.c, tests/safe-renegotiation/srn5.c,
-       tests/scripts/Makefile.am, tests/set_pkcs12_cred.c,
-       tests/setcredcrash.c, tests/sha2/Makefile.am, tests/sha2/sha2,
-       tests/sha2/sha2-dsa, tests/simple.c, tests/slow/Makefile.am,
-       tests/slow/gendh.c, tests/slow/keygen.c, tests/suite/Makefile.am,
-       tests/suite/chain, tests/suite/eagain, tests/suite/testcompat,
-       tests/suite/testcompat-main, tests/suite/testsrn,
-       tests/suppressions.valgrind, tests/userid/Makefile.am,
-       tests/userid/userid, tests/userid/userid.pem, tests/utils.c,
-       tests/utils.h, tests/x509_altname.c, tests/x509cert-tl.c,
-       tests/x509cert.c, tests/x509dn.c, tests/x509self.c,
-       tests/x509sign-verify.c: Run 'make update-copyright'.
+       * lib/gnutls_record.c: updated
 
-2012-01-16  Simon Josefsson <simon@josefsson.org>
+2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk: Ignore pkg.m4.  Copyright fixes.
+       * lib/gnutls_record.c: prevent sending EOF to caller.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: improved doc
+       * tests/safe-renegotiation/srn0.c, tests/safe-renegotiation/srn1.c,
+       tests/safe-renegotiation/srn2.c, tests/safe-renegotiation/srn3.c,
+       tests/safe-renegotiation/srn4.c, tests/safe-renegotiation/srn5.c: 
+       print client/server when in debugging
 
-2012-01-14  Simon Josefsson <simon@josefsson.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_pk.c: Fix memory leak.
+       * NEWS, THANKS, tests/mini-loss.c: Added Sean.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/cha-intro-tls.texi: properly spread authentication and
-       credentials doc.
+       * tests/eagain-common.h, tests/mini-deflate.c,
+       tests/mini-eagain-dtls.c, tests/mini-eagain.c,
+       tests/mini-x509-rehandshake.c, tests/mini-x509.c, tests/mini.c: 
+       tests print server or client side in debugging output.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: updated text
+       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
+       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_record.c: 
+       gnutls_record_check_pending() accounts data not yet processed.  DTLS
+       layer avoids multiple retransmissions in non-blocking mode.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cfg.mk: no longer use texi2html. makeinfo --html has decent
-       output.
+       * lib/gnutls_dtls.c: avoid many allocations for transmitting DTLS
+       packets.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/errcodes.c: print numeric error codes everywhere.
+       * tests/Makefile.am, tests/loss-common.h, tests/mini-loss.c,
+       tests/mini-loss2.c: mini-loss2 is more robust.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-programs.texi: SECURE256 -> SECURE192
+       * lib/gnutls_dtls.c, lib/gnutls_dtls.h, lib/gnutls_handshake.c,
+       lib/gnutls_record.c: DTLS is more tolerant in packet loss during
+       last flight.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/alert-printlist.c, doc/scripts/gdoc,
-       doc/scripts/split-texi.pl, doc/texinfo.css: updated css for better
-       html output.
+       * .gitignore, tests/Makefile.am, tests/mini-loss2.c: Added test
+       program mini-loss2.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/gnutls.h.in: better indent
-       gnutls_certificate_set_x509_simple_pkcs12_file to allow them being
-       found by doc script.
+       * doc/examples/ex-client-anon.c, doc/examples/ex-client-dtls.c,
+       doc/examples/ex-client-psk.c, doc/examples/ex-client-resume.c,
+       doc/examples/ex-client-srp.c, doc/examples/ex-serv-anon.c,
+       doc/examples/ex-serv-dtls.c, doc/examples/ex-serv-srp.c,
+       doc/examples/ex-serv-x509.c: updated examples
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/gnutls.texi, doc/scripts/gdoc, doc/scripts/split-texi.pl: 
-       caption is set on enumerations in texinfo. Unfortunately they are
-       not visible to the pdf output due to a probable bug in texinfo.
+       * configure.ac: enable crywrap only if function daemon exists.
 
-2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi: Added pkcs12_simple function.
+       * lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h: Be
+       conservative when sending GNUTLS_E_AGAIN and check for a DTLS
+       timeout before.
 
-2012-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore: more files to ignore
+       * .gitignore, gl/Makefile.am, gl/argp-help.c, gl/argp-parse.c,
+       gl/argp.h, gl/base64.c, gl/fseeko.c, gl/fseterr.c,
+       gl/gettimeofday.c, gl/m4/exponentd.m4, gl/m4/gettimeofday.m4,
+       gl/m4/gnulib-cache.m4, gl/m4/po.m4, gl/m4/stdalign.m4,
+       gl/m4/sys_time_h.m4, gl/m4/vasnprintf.m4, gl/select.c, gl/sleep.c,
+       gl/stdio-impl.h, gl/stdio.in.h, gl/sys_select.in.h,
+       gl/sys_socket.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
+       gl/tests/init.sh, gl/tests/ioctl.c, gl/tests/test-base64.c,
+       gl/tests/test-init.sh, gl/tests/test-strerror.c,
+       gl/tests/test-sys_select.c, gl/tests/test-sys_time.c,
+       gl/tests/w32sock.h, gl/vasnprintf.c, gl/version-etc.h,
+       gl/w32sock.h, maint.mk: added strndup and updated gnulib.
 
-2012-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * gl/Makefile.am, gl/argp-parse.c, gl/inet_ntop.c,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/ld-version-script.m4, gl/m4/printf.m4, gl/m4/stdlib_h.m4,
-       gl/m4/usleep.m4, gl/select.c, gl/stdlib.in.h, gl/tests/Makefile.am,
-       gl/tests/ignore-value.h, gl/tests/pipe.c, gl/tests/test-init.sh,
-       gl/tests/test-usleep.c, gl/usleep.c, maint.mk, src/udp-serv.c: 
-       usleep() is no longer used.
+       * .gitignore, tests/Makefile.am, tests/loss-common.h,
+       tests/mini-loss.c: Added test to simulate loss of packets in DTLS.
 
-2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-intro-tls.texi, doc/errcodes.c: documentation updates
+       * lib/debug.c, lib/gnutls_buffers.c, lib/gnutls_dtls.c,
+       lib/gnutls_record.c: DTLS fixes.  Corrected bugs in DTLS sliding
+       window code to account for lost packets arriving after an epoch
+       change. The last handshake flight is now being kept by both parties
+       in order to be used as a lost packet indication.
 
-2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc: improved gdoc output for function parameters.
+       * lib/gnutls_record.c: Discard unexpected handshake or other packets
+       in DTLS
 
-2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms/ciphers.c, lib/algorithms/mac.c,
-       lib/crypto-backend.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/nettle/cipher.c, lib/nettle/mac.c: Only
-       list algorithms if they are implemented.
+       * lib/gnutls_int.h: initial_negotiation_completed type changed to
+       unsigned
 
-2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms/ciphers.c: reordered ciphers to place on top the
-       most used.
+       * lib/accelerated/x86/Makefile.am: Included missing file in windows
+       builds.
 
-2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, doc/cha-gtls-app.texi, doc/cha-gtls-examples.texi,
-       doc/cha-programs.texi, doc/examples/Makefile.am,
-       doc/examples/print-ciphersuites.c: Documented ways to list the
-       enabled ciphersuites.
+       * lib/auth/cert.c: Corrected check for the callback for
+       gnutls_certificate_set_retrieve_function(). Reported by Dan Winship.
 
-2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: updated
+       * lib/gnutls_cert.c: updated documentation for
+       gnutls_certificate_set_retrieve_function2.
 
-2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: documentation update
+       * lib/includes/gnutls/abstract.h: include
+       gnutls_certificate_set_retrieve_function2() to documentation.
+       Reported by Dan Winship.
 
-2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map: Added gnutls_session_resumption_requested().
+       * NEWS, lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
+       lib/gnutls_int.h, lib/gnutls_state.c: Corrected DTLS retransmission
+       timeouts. Added the _ms suffix to the time variables in
+       milliseconds. Report and patch by Sean Buckheister.
 
-2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated
+       * doc/scripts/gdoc: updated information in manpages.
 
-2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/ecdh_common.c: avoid allocating a privkey param for the
-       public key.
+       * doc/manpages/Makefile.am: updated manpages
 
-2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/nettle/ecc_shared_secret.c: corrected issue in ECDH key
-       generation.  This issue prevented an ECDH key that was smaller than
-       the prime from being correctly aligned.
+       * NEWS: corrected added function
 
-2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_alert.c: better handle alert for
-       GNUTLS_E_PREMATURE_TERMINATION
+       * lib/gnutls_global.c: text update
 
-2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: do not absorb error message
+       * doc/cha-cert-auth2.texi, lib/gnutls_pubkey.c: Updated
+       documentation for gnutls_pubkey.
 
-2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/nettle/ecc_projective_check_point.c: Eliminated memory
-       leak in ecc_projective_check_point().
+       * Makefile.am, doc/Makefile.am, doc/manpages/Makefile.am: replacing
+       the version is not enough. Regenerate all files depending on .dep on
+       dist-hook.
 
-2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * cross.mk: updated
+       * .gitignore, Makefile.am, configure.ac, src/certtool-args.def,
+       src/certtool-args.def.in, src/cli-args.def, src/cli-args.def.in,
+       src/cli-debug-args.def, src/cli-debug-args.def.in,
+       src/ocsptool-args.def, src/ocsptool-args.def.in,
+       src/p11tool-args.def, src/p11tool-args.def.in, src/psk-args.def,
+       src/psk-args.def.in, src/serv-args.def, src/serv-args.def.in,
+       src/srptool-args.def, src/srptool-args.def.in: No need for .def.in
+       files.  The @VERSION@ is now being replaced on dist-hook.  Also
+       corrected the dist-hook for ChangeLog.
 
-2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/x509.h, lib/x509/common.c, lib/x509/dn.c: 
-       gnutls_x509_dn_oid_name() was extended with a flags option that
-       accepts currently GNUTLS_X509_DN_OID_RETURN_OID or 0.
+       * doc/Makefile.am: updates
 
-2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-bib.texi, doc/cha-cert-auth.texi, doc/latex/gnutls.bib,
-       lib/includes/gnutls/compat.h, lib/x509/crl.c, lib/x509/dn.c,
-       lib/x509/x509.c: Added discussion of distinguished names.
+       * configure.ac: make configure detect valgrind.  This is by creating
+       the suppressions.valgrind file.
 
-2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi: describe gnutls_privkey_import_ext in
-       more detail.
+       * lib/x509_b64.c: use gnulib's base64 code
 
-2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/includes/gnutls/x509.h, lib/libgnutls.map,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/dn.c: Added
-       gnutls_x509_dn_oid_name().
+       * tests/cert-tests/Makefile.am, tests/cert-tests/funny-spacing.pem,
+       tests/cert-tests/pem-decoding: Added test to ensure we can decode
+       PEM encoded certificates with carriage returns, spaces and tabs.
 
-2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi: discuss the change
-       in Diffie-Hellman parameters.
+       * lib/opencdk/armor.c: use gnulib's base64 encoding/decoding code
 
-2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi, lib/gnutls_priority.c: Defined more
-       precisely the SECURE levels.
+       * tests/openpgp-certs/testcerts: silence test
 
-2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi: updated for
-       pkg-config autoconf macro and added gnutls_pubkey_encrypt_data.
+       * lib/opencdk/armor.c: align crc32 table
 
-2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/x509.c: updated descriptions
+       * lib/opencdk/armor.c: __MINGW32__ -> _WIN32
 
-2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509/x509.c: removed not applicable comments.
+       * lib/opencdk/armor.c, lib/opencdk/main.h: removed dummy function
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_pubkey.c, lib/includes/gnutls/abstract.h,
-       lib/libgnutls.map, tests/Makefile.am, tests/rsa-encrypt-decrypt.c: 
-       Added gnutls_pubkey_encrypt_data().
+       * lib/opencdk/write-packet.c: corrected spacing
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.ac: more gcc warnings to ignore
+       * lib/opencdk/write-packet.c: Correct export of openpgp packets that
+       have no private keying material in it's primary key.  Patch by Sean
+       Buckheister.
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c, src/udp-serv.c, src/udp-serv.h: tcp and udp server are
-       now void functions.
+       * src/cli.c, src/common.c, src/common.h: added
+       print_cert_info_compact().
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/certtool.c: --outder option works for public keys.
+       * src/ocsptool-common.c: send_ocsp_request is more tolerant on
+       errors.
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/certtool.c: certtool --outder option now works for
-       private keys as well.
+       * NEWS: updated doc
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/x86/Makefile.am: removed trailing slash.
+       * gl/m4/valgrind-tests.m4: valgrind with suppressions.
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * THANKS: updated thanks
+       * doc/manpages/Makefile.am: until autogen supports subheading tag
+       live with a workaround.
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/slow/Makefile.am: remove trailing slash.
+       * src/cli-args.def.in, src/psk-args.def.in: updated manpages
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * GNUmakefile, build-aux/config.rpath, build-aux/pmccabe2html,
-       build-aux/snippet/arg-nonnull.h, build-aux/snippet/c++defs.h,
-       build-aux/snippet/warn-on-use.h, build-aux/useless-if-before-free,
-       build-aux/vc-list-files, gl/Makefile.am, gl/accept.c, gl/alloca.c,
-       gl/alloca.in.h, gl/alphasort.c, gl/argp-ba.c, gl/argp-eexst.c,
-       gl/argp-fmtstream.c, gl/argp-fmtstream.h, gl/argp-fs-xinl.c,
-       gl/argp-help.c, gl/argp-namefrob.h, gl/argp-parse.c, gl/argp-pin.c,
-       gl/argp-pv.c, gl/argp-pvh.c, gl/argp-xinl.c, gl/argp.h,
-       gl/arpa_inet.in.h, gl/asnprintf.c, gl/asprintf.c,
-       gl/basename-lgpl.c, gl/bind.c, gl/byteswap.in.h, gl/c-ctype.c,
-       gl/c-ctype.h, gl/close.c, gl/closedir.c, gl/connect.c,
-       gl/dirent-private.h, gl/dirent.in.h, gl/dirname-lgpl.c,
-       gl/dirname.h, gl/dosname.h, gl/errno.in.h, gl/error.c, gl/error.h,
-       gl/fd-hook.c, gl/fd-hook.h, gl/filename.h, gl/float+.h, gl/float.c,
-       gl/float.in.h, gl/fpucw.h, gl/frexp.c, gl/frexpl.c, gl/fseek.c,
-       gl/fseeko.c, gl/fseterr.c, gl/fseterr.h, gl/fstat.c, gl/ftell.c,
-       gl/ftello.c, gl/gai_strerror.c, gl/getaddrinfo.c, gl/getdelim.c,
-       gl/getline.c, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c,
-       gl/getopt_int.h, gl/getpass.c, gl/getpass.h, gl/getpeername.c,
-       gl/getsubopt.c, gl/gettext.h, gl/gettime.c, gl/gettimeofday.c,
-       gl/inet_ntop.c, gl/inet_pton.c, gl/intprops.h, gl/isnan.c,
-       gl/isnand-nolibm.h, gl/isnand.c, gl/isnanf-nolibm.h, gl/isnanf.c,
-       gl/isnanl-nolibm.h, gl/isnanl.c, gl/itold.c, gl/listen.c,
-       gl/lseek.c, gl/m4/00gnulib.m4, gl/m4/alloca.m4, gl/m4/alphasort.m4,
-       gl/m4/argp.m4, gl/m4/arpa_inet_h.m4, gl/m4/byteswap.m4,
-       gl/m4/clock_time.m4, gl/m4/close.m4, gl/m4/closedir.m4,
-       gl/m4/codeset.m4, gl/m4/dirent_h.m4, gl/m4/dirname.m4,
-       gl/m4/double-slash-root.m4, gl/m4/dup2.m4, gl/m4/eealloc.m4,
-       gl/m4/environ.m4, gl/m4/errno_h.m4, gl/m4/error.m4,
-       gl/m4/exponentd.m4, gl/m4/exponentf.m4, gl/m4/exponentl.m4,
-       gl/m4/extensions.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4,
-       gl/m4/fdopen.m4, gl/m4/float_h.m4, gl/m4/fpieee.m4, gl/m4/frexp.m4,
-       gl/m4/frexpl.m4, gl/m4/fseek.m4, gl/m4/fseeko.m4, gl/m4/fstat.m4,
-       gl/m4/ftell.m4, gl/m4/ftello.m4, gl/m4/ftruncate.m4, gl/m4/func.m4,
-       gl/m4/getaddrinfo.m4, gl/m4/getcwd.m4, gl/m4/getdelim.m4,
-       gl/m4/getline.m4, gl/m4/getopt.m4, gl/m4/getpagesize.m4,
-       gl/m4/getpass.m4, gl/m4/getsubopt.m4, gl/m4/gettext.m4,
-       gl/m4/gettime.m4, gl/m4/gettimeofday.m4, gl/m4/glibc2.m4,
-       gl/m4/glibc21.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/hostent.m4,
-       gl/m4/iconv.m4, gl/m4/include_next.m4, gl/m4/inet_ntop.m4,
-       gl/m4/inet_pton.m4, gl/m4/intdiv0.m4, gl/m4/intl.m4,
-       gl/m4/intldir.m4, gl/m4/intlmacosx.m4, gl/m4/intmax.m4,
-       gl/m4/intmax_t.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4,
-       gl/m4/inttypes_h.m4, gl/m4/ioctl.m4, gl/m4/isnand.m4,
-       gl/m4/isnanf.m4, gl/m4/isnanl.m4, gl/m4/largefile.m4,
-       gl/m4/lcmessage.m4, gl/m4/ld-output-def.m4,
-       gl/m4/ld-version-script.m4, gl/m4/ldexpl.m4, gl/m4/lib-ld.m4,
-       gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/m4/lock.m4,
-       gl/m4/longlong.m4, gl/m4/lseek.m4, gl/m4/lstat.m4, gl/m4/malloc.m4,
-       gl/m4/malloca.m4, gl/m4/manywarnings.m4, gl/m4/math_h.m4,
-       gl/m4/memchr.m4, gl/m4/memmem.m4, gl/m4/mempcpy.m4,
-       gl/m4/minmax.m4, gl/m4/mmap-anon.m4, gl/m4/mode_t.m4,
-       gl/m4/msvc-inval.m4, gl/m4/msvc-nothrow.m4, gl/m4/multiarch.m4,
-       gl/m4/netdb_h.m4, gl/m4/netinet_in_h.m4, gl/m4/nls.m4,
-       gl/m4/nocrash.m4, gl/m4/open.m4, gl/m4/opendir.m4,
-       gl/m4/pathmax.m4, gl/m4/perror.m4, gl/m4/pipe.m4, gl/m4/po.m4,
-       gl/m4/printf-frexp.m4, gl/m4/printf-frexpl.m4,
-       gl/m4/printf-posix.m4, gl/m4/printf.m4, gl/m4/progtest.m4,
-       gl/m4/putenv.m4, gl/m4/rawmemchr.m4, gl/m4/read-file.m4,
-       gl/m4/readdir.m4, gl/m4/realloc.m4, gl/m4/scandir.m4,
-       gl/m4/select.m4, gl/m4/servent.m4, gl/m4/setenv.m4,
-       gl/m4/signal_h.m4, gl/m4/signbit.m4, gl/m4/size_max.m4,
-       gl/m4/sleep.m4, gl/m4/snprintf.m4, gl/m4/socketlib.m4,
-       gl/m4/sockets.m4, gl/m4/socklen.m4, gl/m4/sockpfaf.m4,
-       gl/m4/ssize_t.m4, gl/m4/stat.m4, gl/m4/stdalign.m4,
-       gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4,
-       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdio_h.m4,
-       gl/m4/stdlib_h.m4, gl/m4/strcase.m4, gl/m4/strchrnul.m4,
-       gl/m4/strdup.m4, gl/m4/strerror.m4, gl/m4/strerror_r.m4,
-       gl/m4/string_h.m4, gl/m4/strings_h.m4, gl/m4/strndup.m4,
-       gl/m4/strnlen.m4, gl/m4/strverscmp.m4, gl/m4/symlink.m4,
-       gl/m4/sys_ioctl_h.m4, gl/m4/sys_select_h.m4, gl/m4/sys_socket_h.m4,
-       gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4, gl/m4/sys_types_h.m4,
-       gl/m4/sys_uio_h.m4, gl/m4/sysexits.m4, gl/m4/thread.m4,
-       gl/m4/threadlib.m4, gl/m4/time_h.m4, gl/m4/time_r.m4,
-       gl/m4/timespec.m4, gl/m4/uintmax_t.m4, gl/m4/ungetc.m4,
-       gl/m4/unistd_h.m4, gl/m4/usleep.m4, gl/m4/valgrind-tests.m4,
-       gl/m4/vasnprintf.m4, gl/m4/vasprintf.m4, gl/m4/version-etc.m4,
-       gl/m4/vfprintf-posix.m4, gl/m4/visibility.m4,
-       gl/m4/vprintf-posix.m4, gl/m4/vsnprintf.m4, gl/m4/warn-on-use.m4,
-       gl/m4/warnings.m4, gl/m4/wchar_h.m4, gl/m4/wchar_t.m4,
-       gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/m4/yield.m4, gl/malloc.c,
-       gl/math.in.h, gl/memchr.c, gl/memmem.c, gl/mempcpy.c, gl/minmax.h,
-       gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c,
-       gl/msvc-nothrow.h, gl/netdb.in.h, gl/netinet_in.in.h, gl/opendir.c,
-       gl/override/m4/valgrind-tests.m4.diff, gl/printf-args.c,
-       gl/printf-args.h, gl/printf-frexp.c, gl/printf-frexp.h,
-       gl/printf-frexpl.c, gl/printf-frexpl.h, gl/printf-parse.c,
-       gl/printf-parse.h, gl/progname.c, gl/progname.h, gl/rawmemchr.c,
-       gl/read-file.c, gl/read-file.h, gl/readdir.c, gl/realloc.c,
-       gl/recv.c, gl/recvfrom.c, gl/scandir.c, gl/select.c, gl/send.c,
-       gl/sendto.c, gl/setsockopt.c, gl/shutdown.c, gl/signal.in.h,
-       gl/signbitd.c, gl/signbitf.c, gl/signbitl.c, gl/size_max.h,
-       gl/sleep.c, gl/snprintf.c, gl/socket.c, gl/sockets.c, gl/sockets.h,
-       gl/stdalign.in.h, gl/stdarg.in.h, gl/stdbool.in.h, gl/stddef.in.h,
-       gl/stdint.in.h, gl/stdio-impl.h, gl/stdio.in.h, gl/stdlib.in.h,
-       gl/str-two-way.h, gl/strcasecmp.c, gl/strchrnul.c, gl/strdup.c,
-       gl/strerror-override.c, gl/strerror-override.h, gl/strerror.c,
-       gl/string.in.h, gl/strings.in.h, gl/stripslash.c, gl/strncasecmp.c,
-       gl/strndup.c, gl/strnlen.c, gl/strverscmp.c, gl/sys_select.in.h,
-       gl/sys_socket.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
-       gl/sys_types.in.h, gl/sys_uio.in.h, gl/sysexits.in.h,
-       gl/tests/Makefile.am, gl/tests/binary-io.h, gl/tests/dup2.c,
-       gl/tests/fcntl.in.h, gl/tests/fdopen.c, gl/tests/getcwd-lgpl.c,
-       gl/tests/getpagesize.c, gl/tests/glthread/lock.c,
-       gl/tests/glthread/lock.h, gl/tests/glthread/thread.c,
-       gl/tests/glthread/thread.h, gl/tests/glthread/threadlib.c,
-       gl/tests/glthread/yield.h, gl/tests/ignore-value.h,
-       gl/tests/infinity.h, gl/tests/init.sh, gl/tests/inttypes.in.h,
-       gl/tests/ioctl.c, gl/tests/lstat.c, gl/tests/macros.h,
-       gl/tests/malloca.c, gl/tests/malloca.h, gl/tests/minus-zero.h,
-       gl/tests/nan.h, gl/tests/open.c, gl/tests/pathmax.h,
-       gl/tests/perror.c, gl/tests/pipe.c, gl/tests/putenv.c,
-       gl/tests/same-inode.h, gl/tests/setenv.c, gl/tests/signature.h,
-       gl/tests/stat.c, gl/tests/strerror_r.c, gl/tests/symlink.c,
-       gl/tests/sys_ioctl.in.h, gl/tests/test-accept.c,
-       gl/tests/test-alloca-opt.c, gl/tests/test-argp-2.sh,
-       gl/tests/test-argp.c, gl/tests/test-arpa_inet.c,
-       gl/tests/test-binary-io.c, gl/tests/test-binary-io.sh,
-       gl/tests/test-bind.c, gl/tests/test-byteswap.c,
-       gl/tests/test-c-ctype.c, gl/tests/test-close.c,
-       gl/tests/test-connect.c, gl/tests/test-dirent.c,
-       gl/tests/test-dup2.c, gl/tests/test-environ.c,
-       gl/tests/test-errno.c, gl/tests/test-fcntl-h.c,
-       gl/tests/test-fdopen.c, gl/tests/test-fgetc.c,
-       gl/tests/test-float.c, gl/tests/test-fprintf-posix.h,
-       gl/tests/test-fputc.c, gl/tests/test-fread.c,
-       gl/tests/test-frexp.c, gl/tests/test-frexpl.c,
-       gl/tests/test-fseek.c, gl/tests/test-fseeko.c,
-       gl/tests/test-fseeko3.c, gl/tests/test-fseeko4.c,
-       gl/tests/test-fseterr.c, gl/tests/test-fstat.c,
-       gl/tests/test-ftell.c, gl/tests/test-ftell3.c,
-       gl/tests/test-ftello.c, gl/tests/test-ftello3.c,
-       gl/tests/test-ftello4.c, gl/tests/test-ftruncate.c,
-       gl/tests/test-func.c, gl/tests/test-fwrite.c,
-       gl/tests/test-getaddrinfo.c, gl/tests/test-getcwd-lgpl.c,
-       gl/tests/test-getdelim.c, gl/tests/test-getline.c,
-       gl/tests/test-getopt.c, gl/tests/test-getopt.h,
-       gl/tests/test-getopt_long.h, gl/tests/test-getpeername.c,
-       gl/tests/test-gettimeofday.c, gl/tests/test-ignore-value.c,
-       gl/tests/test-inet_ntop.c, gl/tests/test-inet_pton.c,
-       gl/tests/test-init.sh, gl/tests/test-intprops.c,
-       gl/tests/test-inttypes.c, gl/tests/test-ioctl.c,
-       gl/tests/test-isnand-nolibm.c, gl/tests/test-isnand.h,
-       gl/tests/test-isnanf-nolibm.c, gl/tests/test-isnanf.h,
-       gl/tests/test-isnanl-nolibm.c, gl/tests/test-isnanl.h,
-       gl/tests/test-listen.c, gl/tests/test-lock.c,
-       gl/tests/test-lstat.c, gl/tests/test-lstat.h,
-       gl/tests/test-malloc-gnu.c, gl/tests/test-malloca.c,
-       gl/tests/test-math.c, gl/tests/test-memchr.c,
-       gl/tests/test-netdb.c, gl/tests/test-netinet_in.c,
-       gl/tests/test-open.c, gl/tests/test-open.h,
-       gl/tests/test-pathmax.c, gl/tests/test-perror.c,
-       gl/tests/test-perror2.c, gl/tests/test-pipe.c,
-       gl/tests/test-printf-frexp.c, gl/tests/test-printf-frexpl.c,
-       gl/tests/test-printf-posix.h, gl/tests/test-rawmemchr.c,
-       gl/tests/test-read-file.c, gl/tests/test-recv.c,
-       gl/tests/test-recvfrom.c, gl/tests/test-select-fd.c,
-       gl/tests/test-select-stdin.c, gl/tests/test-select.c,
-       gl/tests/test-select.h, gl/tests/test-send.c,
-       gl/tests/test-sendto.c, gl/tests/test-setenv.c,
-       gl/tests/test-setsockopt.c, gl/tests/test-shutdown.c,
-       gl/tests/test-signal-h.c, gl/tests/test-signbit.c,
-       gl/tests/test-sleep.c, gl/tests/test-snprintf.c,
-       gl/tests/test-sockets.c, gl/tests/test-stat.c,
-       gl/tests/test-stat.h, gl/tests/test-stdalign.c,
-       gl/tests/test-stdbool.c, gl/tests/test-stddef.c,
-       gl/tests/test-stdint.c, gl/tests/test-stdio.c,
-       gl/tests/test-stdlib.c, gl/tests/test-strchrnul.c,
-       gl/tests/test-strerror.c, gl/tests/test-strerror_r.c,
-       gl/tests/test-string.c, gl/tests/test-strings.c,
-       gl/tests/test-strnlen.c, gl/tests/test-strverscmp.c,
-       gl/tests/test-symlink.c, gl/tests/test-symlink.h,
-       gl/tests/test-sys_ioctl.c, gl/tests/test-sys_select.c,
-       gl/tests/test-sys_socket.c, gl/tests/test-sys_stat.c,
-       gl/tests/test-sys_time.c, gl/tests/test-sys_types.c,
-       gl/tests/test-sys_uio.c, gl/tests/test-sys_wait.h,
-       gl/tests/test-sysexits.c, gl/tests/test-thread_create.c,
-       gl/tests/test-thread_self.c, gl/tests/test-time.c,
-       gl/tests/test-u64.c, gl/tests/test-unistd.c,
-       gl/tests/test-unsetenv.c, gl/tests/test-usleep.c,
-       gl/tests/test-vasnprintf.c, gl/tests/test-vasprintf.c,
-       gl/tests/test-vc-list-files-cvs.sh,
-       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
-       gl/tests/test-version-etc.c, gl/tests/test-version-etc.sh,
-       gl/tests/test-vfprintf-posix.c, gl/tests/test-vprintf-posix.c,
-       gl/tests/test-vsnprintf.c, gl/tests/test-wchar.c,
-       gl/tests/unsetenv.c, gl/tests/w32sock.h, gl/tests/zerosize-ptr.h,
-       gl/time.in.h, gl/time_r.c, gl/timespec.h, gl/u64.h, gl/unistd.in.h,
-       gl/usleep.c, gl/vasnprintf.c, gl/vasnprintf.h, gl/vasprintf.c,
-       gl/verify.h, gl/version-etc-fsf.c, gl/version-etc.c,
-       gl/version-etc.h, gl/vfprintf.c, gl/vprintf.c, gl/vsnprintf.c,
-       gl/w32sock.h, gl/wchar.in.h, gl/xsize.h, maint.mk: Updated gnulib
-       and added usleep and getaddrinfo modules.
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/manpages/Makefile.am: autogen required for building.
 
-       * lib/x509/output.c: Authority information access information ->
-       Authority information access
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am: Revert "autogen failure is not fatal." This reverts commit 175e021fd8d0c195690b2d8806bd3a07e84415ce.
 
-       * lib/auth/cert.c, lib/auth/cert.h, lib/auth/dhe.c, lib/auth/rsa.c,
-       lib/auth/rsa_export.c, lib/auth/srp_rsa.c: 
-       _gnutls_proc_cert_client_certificate and
-       _gnutls_proc_cert_server_certificate renamed to
-       _gnutls_proc_certificate.
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am: autogen failure is not fatal.
 
-       * NEWS: updated news
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/override/m4/valgrind-tests.m4.diff: Added --leak-check=full to
+       valgrind options.
 
-       * lib/gnutls_dh_primes.c: gnutls_dh_params_cpy() copies the
-       src->q_bits.
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/ocsp.c: updated for new gnutls_ocsp_resp_verify_direct
+       semantics.
 
-       * tests/slow/gendh.c: properly deinitialize.
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * .gitignore, doc/.gitignore: more files to ignore
 
-       * lib/nettle/mpi.c: corrected leak in DH parameter generation.
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/auth/cert.h, lib/includes/gnutls/ocsp.h,
+       lib/openpgp/openpgp_int.h, lib/x509/ocsp.c, lib/x509/ocsp_output.c: 
+       small fixes
 
-       * ChangeLog: updated changelog
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/auth/cert.h, lib/includes/gnutls/ocsp.h, lib/libgnutls.map,
+       lib/openpgp/openpgp_int.h, lib/x509/ocsp.c, lib/x509/ocsp_output.c: 
+       Revert "Added gnutls_ocsp_resp_verify() and some sign fixes." This reverts commit efaa2ee176568fcd009ff2ca9daa1b7fdac4c491.  Conflicts:         lib/x509/ocsp.c
 
-       * lib/nettle/mpi.c: removed old comment
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/m4/valgrind-tests.m4, gl/override/m4/valgrind-tests.m4.diff: 
+       Revert "Enable valgrind again." This commit disabled the
+       suppressions which is required for tests to succeed.  This reverts commit 82498bad27645c47222fa932a7caa2e95747980a.
 
-       * ChangeLog, NEWS: updated changelog and news for release
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, src/ocsptool-args.def.in: updated text
 
-       * lib/gnutls_cipher.c: corrected typo
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/ocsptool.c: removed debugging code
 
-       * NEWS, configure.ac, m4/hooks.m4: bumped version
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/ocsp.c: gnutls_ocsp_resp_verify_direct() will use the
+       intermediate certificates in the response in order to verify the
+       validity, thus aligning its functionality with
+       gnutls_ocsp_resp_verify().
 
-       * lib/gnutls_buffers.c: Corrected functionality of
-       gnutls_record_get_direction(). Reported by Philip Allison.
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/cli.c, src/common.c, src/common.h, src/ocsptool-common.c,
+       src/ocsptool-common.h, src/ocsptool.c, src/serv.c, src/tests.c: 
+       cleanup a bit the printing information stuff.
 
-       * NEWS, lib/gnutls_cipher.c: provide less timing information when
-       decoding packets. Patch by Nadhem Alfardan.
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/Makefile.am: corrected dependencies
 
-       * src/serv.c: use AI_ADDRCONFIG if available.
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am, doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi,
+       doc/cha-programs.texi, doc/cha-shared-key.texi,
+       src/certtool-args.def.in, src/cli-args.def.in,
+       src/cli-debug-args.def.in, src/ocsptool-args.def.in,
+       src/p11tool-args.def.in, src/psk-args.def.in, src/serv-args.def.in,
+       src/srptool-args.def.in: Manual pages for included programs are
+       auto-generated using the autoopts definitions.
 
-       * configure.ac: prevent building of crywrap in windows
+2012-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/manpages/Makefile.am: corrected dependencies
 
-       * cross.mk: updated
+2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/Makefile.am, src/cli-args.def.in, src/cli.c, src/common.c,
+       src/common.h, src/ocsptool-common.c, src/ocsptool-common.h,
+       src/ocsptool.c, src/serv.c: gnutls-cli will try to verify ocsp
+       responses if --ocsp is given.
 
-       * ChangeLog: updated
+2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/auth/cert.h, lib/includes/gnutls/ocsp.h, lib/libgnutls.map,
+       lib/openpgp/openpgp_int.h, lib/x509/ocsp.c, lib/x509/ocsp_output.c: 
+       Added gnutls_ocsp_resp_verify() and some sign fixes.
 
-       * lib/extras/Makefile.am: added missing file
+2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/TODO: updated todo
 
-       * NEWS, configure.ac, m4/hooks.m4: bumped version
+2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated text.
 
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/p11tool-gaa.c: Updated
-       auto-generated files
+2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/examples/ex-verify-ssh.c, src/cli.c: Do not store a key when
+       it already exists.
 
-       * doc/latex/.gitignore, doc/latex/cover.tex: added missing file
+2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, src/cli-args.def.in, src/cli.c: ssh flag is has the option
+       to be disabled/enabled.
 
-       * src/benchmark-tls.c: print the RSA and DH bits as well as EC bits
-       for comparison.
+2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, doc/cha-cert-auth.texi,
+       doc/cha-gtls-examples.texi, doc/examples/Makefile.am,
+       doc/examples/ex-cert-select-pkcs11.c,
+       doc/examples/ex-cert-select.c, doc/examples/ex-client-dtls.c,
+       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
+       doc/examples/ex-client-x509.c, doc/examples/ex-serv-dtls.c,
+       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
+       doc/examples/ex-serv-x509.c, doc/examples/ex-verify-ssh.c,
+       doc/examples/examples.h, lib/Makefile.am,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
+       lib/openpgp/output.c, lib/system.c, lib/system.h, lib/verify-ssh.c,
+       lib/x509/output.c, src/cli-args.def.in, src/cli.c, src/common.c,
+       src/common.h, src/tests.c: Added gnutls_verify_stored_pubkey() and
+       gnutls_store_pubkey().  This enables using ssh-like authentication
+       for TLS sessions.
 
-       * src/benchmark-tls.c: use 1840 bit DH and RSA to compare with 192
-       bits of ECDH
+2012-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2012-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/ocsptool.c: allow the usage of --load-trust with --ask
 
-       * lib/algorithms/publickey.c, lib/algorithms/secparams.c,
-       lib/algorithms/sign.c, lib/auth/cert.c, lib/auth/ecdh_common.c,
-       lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/gnutls_sig.c,
-       lib/includes/gnutls/gnutls.h.in, lib/nettle/pk.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, lib/pkcs11_write.c, lib/x509/key_decode.c,
-       lib/x509/key_encode.c, lib/x509/output.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/verify.c, src/certtool.c,
-       src/p11tool.gaa, tests/slow/keygen.c: GNUTLS_PK_ECC -> GNUTLS_PK_EC
+2012-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
+       gl/m4/strtok_r.m4, gl/strtok_r.c: Added strtok_r.
 
-       * lib/openpgp/gnutls_openpgp.c: CDK_EOF error code now returns
-       GNUTLS_E_PARSING_ERROR
+2012-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/Makefile.am, gl/base64.c, gl/base64.h, gl/m4/base64.m4,
+       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/stdalign.m4,
+       gl/tests/Makefile.am, gl/tests/malloca.c, gl/tests/test-base64.c: 
+       added base64 module
 
-       * lib/opencdk/armor.c, lib/opencdk/opencdk.h: removed
-       cdk_armor_filter_use()
+2012-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509_b64.c: added fixme
 
-       * src/certtool.c: correctly report 0 keys on a keyring
+2012-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/ocsptool-args.def.in: updated description
 
-       * lib/opencdk/kbnode.c, lib/opencdk/opencdk.h,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c: more opencdk simplifications
+2012-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, doc/cha-gtls-examples.texi, doc/examples/Makefile.am,
+       doc/examples/ex-ocsp-client.c, doc/examples/ex-ocsp-verify.c: 
+       Combined ocsp apps to 1 using libcurl.
 
-       * tests/openpgp-certs/testselfsigs: specify key type (raw) to
-       certtool
+2012-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/includes/gnutls/ocsp.h, lib/x509/ocsp_output.c,
+       src/Makefile.am, src/cli.c, src/common.c, src/common.h,
+       src/ocsptool-args.def.in, src/ocsptool.c, src/serv.c, src/socket.c,
+       src/socket.h, src/tls_test.c: Added --ask option to ocsptool.
 
-       * lib/opencdk/Makefile.am, lib/opencdk/armor.c,
-       lib/opencdk/keydb.c, lib/opencdk/main.c, lib/opencdk/opencdk.h,
-       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.c: Removed unneeded
-       opencdk functionality.
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/manpages/Makefile.am, src/Makefile.am: Fix builddir != srcdir
+       builds.
 
-       * cross.mk: verify signatures on download
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/extras/randomart.c: Revert template fix.
 
-       * lib/gnutls_global.c, lib/gnutls_mem.c: _gnutls_is_secure_memory is
-       no more.
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/infoaccess.c, tests/mpi.c, tests/openpgp-auth.c,
+       tests/openpgp-auth2.c, tests/openssl.c, tests/pkcs12_encode.c,
+       tests/rng-fork.c: Fix mem leaks.
 
-       * NEWS, src/cli.c: gnutls-cli can now read input from win32.
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/m4/valgrind-tests.m4, gl/override/m4/valgrind-tests.m4.diff: 
+       Enable valgrind again.
 
-       * NEWS, lib/openpgp/pgp.c, lib/openpgp/privkey.c: Avoid using base64
-       armor auto-detection which causes decoding errors in win32.  For
-       some reason reading from the stream modifies the stream and this
-       work-around avoids that issue.
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/abstract_int.h, lib/crypto-api.c, lib/crypto-backend.c,
+       lib/crypto.h, lib/debug.c, lib/ext/max_record.c,
+       lib/ext/max_record.h, lib/ext/safe_renegotiation.c,
+       lib/ext/server_name.c, lib/ext/server_name.h,
+       lib/ext/session_ticket.c, lib/ext/signature.c, lib/ext/signature.h,
+       lib/ext/srp.c, lib/ext/srp.h, lib/gnutls.pc.in, lib/gnutls_alert.c,
+       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
+       lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
+       lib/gnutls_compress.c, lib/gnutls_constate.c, lib/gnutls_datum.c,
+       lib/gnutls_dh.c, lib/gnutls_dh_primes.c, lib/gnutls_ecc.h,
+       lib/gnutls_errors.c, lib/gnutls_extensions.c, lib/gnutls_global.c,
+       lib/gnutls_hash_int.c, lib/gnutls_helper.c, lib/gnutls_helper.h,
+       lib/gnutls_kx.c, lib/gnutls_mem.c, lib/gnutls_mpi.c,
+       lib/gnutls_num.c, lib/gnutls_priority.c, lib/gnutls_psk.c,
+       lib/gnutls_rsa_export.c, lib/gnutls_session.c,
+       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
+       lib/gnutls_supplemental.c, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
+       lib/gnutlsxx.cpp, lib/hash.h, lib/locks.h, lib/nettle/cipher.c,
+       lib/nettle/ecc.h, lib/nettle/egd.c, lib/nettle/egd.h,
+       lib/nettle/init.c, lib/nettle/mac.c, lib/nettle/mpi.c,
+       lib/nettle/pk.c, lib/nettle/rnd.c, lib/opencdk/armor.c,
+       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/hash.c,
+       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/keydb.h,
+       lib/opencdk/literal.c, lib/opencdk/main.h, lib/opencdk/misc.c,
+       lib/opencdk/new-packet.c, lib/opencdk/opencdk.h,
+       lib/opencdk/packet.h, lib/opencdk/pubkey.c,
+       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
+       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
+       lib/opencdk/stream.h, lib/opencdk/types.h,
+       lib/opencdk/write-packet.c, lib/openpgp/compat.c,
+       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.h,
+       lib/openpgp/openpgp_int.h, lib/openpgp/output.c,
+       lib/openpgp/pgpverify.c, lib/pkcs11_int.h, lib/random.c,
+       lib/system.c, lib/system.h, lib/x509/crl.c, lib/x509/crl_write.c,
+       lib/x509/crq.c, lib/x509/dn.c, lib/x509/mpi.c,
+       lib/x509/pbkdf2-sha1.c, lib/x509/pbkdf2-sha1.h, lib/x509/pkcs12.c,
+       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
+       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
+       lib/x509/rfc2818_hostname.c, lib/x509/sign.c,
+       lib/x509/x509_write.c, src/benchmark.h, src/certtool-cfg.h,
+       src/certtool-common.h, src/common.h, src/p11common.h,
+       src/p11tool.h, src/pkcs11.c, src/serv.c, src/tests.h,
+       src/udp-serv.h, tests/anonself.c, tests/certder.c,
+       tests/certificate_set_x509_crl.c, tests/certuniqueid.c,
+       tests/chainverify.c, tests/crq_apis.c, tests/cve-2008-4989.c,
+       tests/cve-2009-1415.c, tests/dhepskself.c, tests/dn.c, tests/dn2.c,
+       tests/gc.c, tests/hostname-check.c, tests/init_roundtrip.c,
+       tests/mini-deflate.c, tests/mini-eagain-dtls.c,
+       tests/mini-eagain.c, tests/mini-x509-rehandshake.c,
+       tests/mini-x509.c, tests/mini.c, tests/moredn.c, tests/mpi.c,
+       tests/nul-in-x509-names.c, tests/openpgp-keyring.c,
+       tests/openpgpself.c, tests/openssl.c, tests/parse_ca.c,
+       tests/pgps2kgnu.c, tests/pkcs12_encode.c, tests/pkcs12_s2k.c,
+       tests/pskself.c, tests/resume.c, tests/rfc2253-escape-test,
+       tests/rng-fork.c, tests/set_pkcs12_cred.c, tests/setcredcrash.c,
+       tests/simple.c, tests/utils.h, tests/x509_altname.c,
+       tests/x509_test.c, tests/x509dn.c, tests/x509self.c: Cleanup
+       copyright headers.
 
-       * tests/pgps2kgnu.c: enable debugging in pgps2kgnu
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * cfg.mk, lib/extras/randomart.c: Silence update-copyright.
 
-       * tests/Makefile.am, tests/openpgp-auth2.c: do not use valgrind in
-       windows
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * cfg.mk, doc/cha-programs.texi, src/cli-args.def.in: Fix
+       syntax-check nits.
 
-       * cross.mk: gmp is compiled with --enable-fat.
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * .gitignore: Add ChangeLog.  Sort.
 
-       * tests/Makefile.am: link libutils with libgnu.
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * build-aux/config.rpath, build-aux/pmccabe.css, gl/Makefile.am,
+       gl/argp-pin.c, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
+       gl/m4/thread.m4, gl/m4/yield.m4, gl/stdint.in.h,
+       gl/tests/Makefile.am, gl/tests/glthread/thread.c,
+       gl/tests/glthread/thread.h, gl/tests/glthread/yield.h,
+       gl/tests/test-accept.c, gl/tests/test-bind.c,
+       gl/tests/test-connect.c, gl/tests/test-getpeername.c,
+       gl/tests/test-isnand-nolibm.c, gl/tests/test-listen.c,
+       gl/tests/test-lock.c, gl/tests/test-recv.c,
+       gl/tests/test-recvfrom.c, gl/tests/test-send.c,
+       gl/tests/test-sendto.c, gl/tests/test-setsockopt.c,
+       gl/tests/test-shutdown.c, gl/tests/test-thread_create.c,
+       gl/tests/test-thread_self.c, maint.mk: Update gnulib files.  Drop
+       slow test-lock check.
 
-       * .gitignore: more files to ignore
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * cfg.mk: Silence autoreconf with a dummy ChangeLog file.
 
-       * doc/manpages/Makefile.am: Added missing function names.
-
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-       * cross.mk: Added a preliminary win32 compilation makefile.
+       * ChangeLog, ChangeLog.1: Don't store generated ChangeLog in git.
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-       * doc/Makefile.am: win32 fixes
+       * tests/cert-tests/template-test, tests/pkcs1-padding/pkcs1-pad: Fix
+       datefudge checks, for when datefudge is missing.
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-       * configure.ac: do not build crywrap on win32
+       * src/Makefile.am: Only rebuild autogen sources if the real input
+       file is modified.
 
-2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-       * extra/includes/gnutls/openssl.h: undefine possible system macros.
+       * doc/Makefile.am, doc/manpages/Makefile.am,
+       tests/cert-tests/Makefile.am: Fix distcheck.
 
-2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-       * doc/examples/ex-serv-dtls.c: updated DTLS example
+       * tests/pkcs1-padding/pkcs1-pad, tests/suite/testcompat: Fix
+       datefudge checks.
 
-2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi,
-       doc/cha-programs.texi: more updates
+       * doc/manpages/Makefile.am: Generated.
 
-2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-25  Simon Josefsson <simon@josefsson.org>
 
-       * doc/cha-ciphersuites.texi, doc/cha-copying.texi,
-       doc/cha-gtls-app.texi, doc/cha-gtls-examples.texi,
-       doc/cha-internals.texi, doc/cha-library.texi,
-       doc/cha-shared-key.texi, doc/gnutls.texi: Small improvements in
-       documentation.
+       * tests/cert-tests/template-test: Improve datefudge check.  Fix
+       builddir != srcdir.
 
-2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/x509/privkey.c: corrected bug in DSA private key
-       parsing.
+       * NEWS: documented update
 
-2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool.gaa: Added --rsa option which is a no-op for now.
+       * lib/includes/gnutls/gnutls.h.in: corrected prototypes.
 
-2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/extras/randomart.c, lib/extras/randomart.h, lib/gnutls_ui.c,
-       lib/openpgp/output.c, lib/x509/output.c,
-       tests/pathlen/ca-no-pathlen.pem, tests/pathlen/no-ca-or-pathlen.pem: 
-       Allow the insertion of characters to align the randomart.
+       * src/libopts/m4/libopts.m4: generate libopts makefile outside the
+       conditional.
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Patrick Pelletier <code@funwithsoftware.org>
 
-       * src/certtool.c: Print the fingerprint of PGP keys and not only the
-       key ID.
+       * doc/cha-internals.texi, extra/includes/gnutls/openssl.h,
+       lib/accelerated/x86/hmac-padlock.c, lib/crypto-backend.h,
+       lib/gnutls_int.h, lib/includes/gnutls/gnutls.h.in,
+       lib/nettle/cipher.c, lib/nettle/init.c, lib/nettle/mac.c: Fix up
+       some typos and obsolete comments Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: Add random art to keys.
+       * NEWS, doc/cha-programs.texi, lib/gnutls_priority.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/common.c: 
+       Added functions to allow quering a priority structure.  That is to
+       allow more information being extracted than only the ciphersuites.  gnutls_priority_certificate_type_list: Added
+       gnutls_priority_sign_list: Added gnutls_priority_protocol_list:
+       Added gnutls_priority_compression_list: Added
+       gnutls_priority_ecc_curve_list: Added
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/mini-deflate.c: Skip deflate test if libz is not available.
+       * NEWS, doc/printlist.c, lib/algorithms/ecc.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/common.c: 
+       Allow quering available elliptic curves by adding
+       gnutls_ecc_curve_list().
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/openpgp/output.c, lib/x509/output.c, src/certtool.c: updated
-       random art's messages.
+       * doc/cha-gtls-app.texi: updated
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/certtool.c: Print the pgp key's randomart as well.
+       * tests/key-id/key-id: it seems libopts does not want completely
+       empty templates.
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/openpgp/output.c, lib/x509/output.c: Print the randomart on
-       the key ID and not the fingerprint.
+       * doc/cha-intro-tls.texi: correct typo
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c: Updated GNUTLS_E_NO_CERTIFICATE_FOUND
-       description.
+       * src/cli.c, src/common.c: Do not print the same things twice.
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore: more files to ignore
+       * configure.ac: libcfg is no longer required.
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/extras/randomart.c, lib/extras/randomart.h, lib/gnutls_ui.c,
-       lib/openpgp/output.c, lib/x509/output.c, src/certtool.c: print
-       randomart for private keys as well.
+       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi: updated
+       interoperability and priority strings sections.
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/extras/randomart.c, lib/system.c, lib/system.h,
-       lib/x509/output.c: gnutls_atfork was no longer in use.
+       * doc/cha-gtls-app.texi: Added more text on interoperability
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, configure.ac, lib/Makefile.am, lib/extras/Makefile.am,
-       lib/extras/randomart.c, lib/extras/randomart.h, lib/gnutls_ui.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
-       lib/openpgp/output.c, lib/x509/output.c: Added function
-       gnutls_random_art() to convert fingerprints to images (currently
-       ascii-art).
+       * Makefile.am, src/Makefile.am: Fix make dist.
 
-2011-12-28  Patrick Pelletier <code@funwithsoftware.org>
+2012-01-24  Simon Josefsson <simon@josefsson.org>
 
-       * doc/cha-gtls-app.texi, doc/cha-gtls-examples.texi,
-       doc/cha-internals.texi, lib/algorithms/ciphers.c,
-       lib/algorithms/protocols.c, lib/algorithms/secparams.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_db.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_priority.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/nettle/rnd.c: minor doc and
-       comment fixes Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * Makefile.am, configure.ac, libopts/COPYING.gplv3,
+       libopts/COPYING.lgplv3, libopts/COPYING.mbsd, libopts/MakeDefs.inc,
+       libopts/Makefile.am, libopts/README, libopts/ag-char-map.h,
+       libopts/autoopts.c, libopts/autoopts.h, libopts/autoopts/options.h,
+       libopts/autoopts/project.h, libopts/autoopts/usage-txt.h,
+       libopts/boolean.c, libopts/check.c, libopts/compat/compat.h,
+       libopts/compat/pathfind.c, libopts/compat/snprintf.c,
+       libopts/compat/strchr.c, libopts/compat/strdup.c,
+       libopts/compat/windows-config.h, libopts/configfile.c,
+       libopts/cook.c, libopts/enum.c, libopts/env.c, libopts/file.c,
+       libopts/find.c, libopts/genshell.c, libopts/genshell.h,
+       libopts/libopts.c, libopts/load.c, libopts/makeshell.c,
+       libopts/nested.c, libopts/numeric.c, libopts/parse-duration.c,
+       libopts/parse-duration.h, libopts/pgusage.c, libopts/proto.h,
+       libopts/putshell.c, libopts/reset.c, libopts/restore.c,
+       libopts/save.c, libopts/sort.c, libopts/stack.c,
+       libopts/streqvcmp.c, libopts/text_mmap.c, libopts/time.c,
+       libopts/tokenize.c, libopts/usage.c, libopts/value-type.c,
+       libopts/value-type.h, libopts/version.c, libopts/xat-attribute.c,
+       libopts/xat-attribute.h, m4/libopts.m4, m4/liboptschk.m4,
+       src/Makefile.am, src/cli-gaa.c, src/cli-gaa.h,
+       src/libopts/COPYING.gplv3, src/libopts/COPYING.lgplv3,
+       src/libopts/COPYING.mbsd, src/libopts/MakeDefs.inc,
+       src/libopts/Makefile.am, src/libopts/README,
+       src/libopts/ag-char-map.h, src/libopts/autoopts.c,
+       src/libopts/autoopts.h, src/libopts/autoopts/options.h,
+       src/libopts/autoopts/project.h, src/libopts/autoopts/usage-txt.h,
+       src/libopts/boolean.c, src/libopts/check.c,
+       src/libopts/compat/compat.h, src/libopts/compat/pathfind.c,
+       src/libopts/compat/snprintf.c, src/libopts/compat/strchr.c,
+       src/libopts/compat/strdup.c, src/libopts/compat/windows-config.h,
+       src/libopts/configfile.c, src/libopts/cook.c, src/libopts/enum.c,
+       src/libopts/env.c, src/libopts/file.c, src/libopts/find.c,
+       src/libopts/genshell.c, src/libopts/genshell.h,
+       src/libopts/libopts.c, src/libopts/load.c,
+       src/libopts/m4/libopts.m4, src/libopts/m4/liboptschk.m4,
+       src/libopts/makeshell.c, src/libopts/nested.c,
+       src/libopts/numeric.c, src/libopts/parse-duration.c,
+       src/libopts/parse-duration.h, src/libopts/pgusage.c,
+       src/libopts/proto.h, src/libopts/putshell.c, src/libopts/reset.c,
+       src/libopts/restore.c, src/libopts/save.c, src/libopts/sort.c,
+       src/libopts/stack.c, src/libopts/streqvcmp.c,
+       src/libopts/text_mmap.c, src/libopts/time.c,
+       src/libopts/tokenize.c, src/libopts/usage.c,
+       src/libopts/value-type.c, src/libopts/value-type.h,
+       src/libopts/version.c, src/libopts/xat-attribute.c,
+       src/libopts/xat-attribute.h, src/srptool-gaa.c, src/srptool-gaa.h: 
+       Move libopts/ to src/libopts/.  Drop gaa remains.
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Simon Josefsson <simon@josefsson.org>
 
-       * doc/Makefile.am, doc/cha-gtls-app.texi,
-       doc/cha-gtls-examples.texi, doc/cha-intro-tls.texi,
-       doc/examples/Makefile.am, doc/examples/ex-client-anon.c,
-       doc/examples/ex-client-dtls.c, doc/examples/ex-client-psk.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client-udp.c, doc/examples/ex-client-x509.c,
-       doc/examples/ex-client1.c, doc/examples/ex-rfc2818.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv-x509.c, doc/examples/ex-serv1.c: updated
-       examples and added new "handling alerts" section.
+       * doc/manpages/Makefile.am, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/x509.h, lib/x509/crl.c: Doc fixes.
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-24  Simon Josefsson <simon@josefsson.org>
 
-       * doc/cha-gtls-examples.texi, doc/examples/udp.c: updated and
-       included in the documentation the udp code.
+       * configure.ac: Drop src/cfg/ stuff.
 
-2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/cli.c, src/serv.c: Set don't fragment bit in Linux as
-       well as in BSD variants.
+       * src/psk-args.def.in: corrected typo
 
-2011-12-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .gitignore, doc/examples/ex-serv-dtls.c, doc/examples/ex-serv1.c: 
-       updated server examples
+       * .gitignore, configure.ac, doc/manpages/Makefile.am,
+       src/Makefile.am, src/ocsptool-args.def.in, src/ocsptool.c,
+       src/ocsptool.gaa: ocsptool uses libopts
 
-2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi,
-       doc/cha-gtls-app.texi, doc/cha-programs.texi,
-       doc/cha-shared-key.texi: smallexample is no longer used. It is
-       intended only for typesetting with smaller pages and had no relation
-       to our usage.
+       * src/p11tool-args.def.in, src/p11tool.c: updated inder and inraw
+       commands.
 
-2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: prepend UDP to server application name when in UDP
-       mode.
+       * src/certtool-args.def.in, src/cli-args.def.in,
+       src/cli-debug-args.def.in, src/p11tool-args.def.in,
+       src/psk-args.def.in, src/serv-args.def.in, src/srptool-args.def.in: 
+       the short version of --help is -h.
 
-2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi, doc/cha-gtls-examples.texi,
-       doc/examples/Makefile.am, doc/examples/ex-serv-dtls.c,
-       doc/examples/ex-serv1.c: Added DTLS server example.
+       * NEWS, doc/cha-cert-auth2.texi, lib/includes/gnutls/pkcs11.h,
+       lib/libgnutls.map, lib/pkcs11.c: Added gnutls_pkcs11_reinit().
 
-2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/udp-serv.c: corrected a leak
+       * src/certtool-cfg.c: corrected token parsing.
 
-2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: Added SECP192R1 curve.
+       * src/certtool-cfg.c: READ_MULTI_LINE_TOKENIZED was corrected to
+       account the whole string.
 
-2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/includes/gnutls/abstract.h, lib/includes/gnutls/pkcs11.h: 
-       pkcs11.h and abstract.h use extern C idiom for C++.
+       * doc/TODO: updated
 
-2011-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/algorithms/ciphersuites.c: Added ciphersuites:
-       GNUTLS_PSK_WITH_AES_256_GCM_SHA384 and
-       GNUTLS_DHE_PSK_WITH_AES_256_GCM_SHA384.
+       * NEWS, lib/gnutls_priority.c: Updated SUITEB requirements according
+       to rfc6460.
 
-2011-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/algorithms/ciphersuites.c: Corrected ciphersuite
-       GNUTLS_ECDHE_PSK_AES_256_CBC_SHA384
+       * doc/cha-cert-auth2.texi, src/Makefile.am, src/certtool-cfg.c,
+       src/cfg/Makefile.am, src/cfg/README, src/cfg/cfg+.c,
+       src/cfg/cfg+.h, src/cfg/cfgfile.c, src/cfg/cfgfile.h,
+       src/cfg/cmdline.c, src/cfg/cmdline.h, src/cfg/parse.c,
+       src/cfg/platon/Makefile.am, src/cfg/platon/str/Makefile.am,
+       src/cfg/platon/str/dynfgets.c, src/cfg/platon/str/dynfgets.h,
+       src/cfg/platon/str/strctype.c, src/cfg/platon/str/strctype.h,
+       src/cfg/platon/str/strdyn.c, src/cfg/platon/str/strdyn.h,
+       src/cfg/platon/str/strplus.c, src/cfg/platon/str/strplus.h,
+       src/cfg/props.c, src/cfg/shared.c, src/cfg/shared.h,
+       tests/cert-tests/Makefile.am, tests/cert-tests/template-test,
+       tests/cert-tests/template-test.key,
+       tests/cert-tests/template-test.pem,
+       tests/cert-tests/template-test.tmpl: Certtool completely relies on
+       libopts. As a side-effect the syntax of dn_oid and key_purpose_oids
+       has changed.
 
-2011-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: Only use configured interfaces. Patch by Pino Toscano.
+       * src/certtool.c: check for --inraw  and --outraw.
 
-2011-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms/protocols.c: better comments.
+       * .gitignore: more files to ignore
 
-2011-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c: 
-       gnutls_protocol_get_version() and _gnutls_set_current_version() are
-       now inline functions
+       * doc/manpages/certtool.1: removed certtool.1.
 
-2011-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms/ciphersuites.c: documented
-       _gnutls_supported_ciphersuites()
+       * src/p11tool.c, src/p11tool.h: No need for action enumerations.
 
-2011-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms/ciphersuites.c: renamed the _SHA ciphersuites to
-       _SHA1.
+       * configure.ac, doc/manpages/Makefile.am, src/Makefile.am,
+       src/certtool-args.def.in, src/certtool-common.h,
+       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
+       src/certtool.gaa, src/p11tool-args.def.in: certtool uses libopts for
+       command line parsing.
 
-2011-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/nettle/mpi.c: correctly set the odd bits.
+       * doc/Makefile.am: enums.texi is not run multiple times. Suggested
+       by Eli Zaretskii.
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, Makefile.am, cfg.mk: make dist forces regeneration of
-       ChangeLog and manpages.
+       * src/Makefile.am, src/cli-args.def.in, src/cli-debug-args.def.in,
+       src/p11tool-args.def.in, src/psk-args.def.in, src/serv-args.def.in,
+       src/srptool-args.def.in: updated docs
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: Added missing file
+       * src/p11tool-args.def.in, src/p11tool.c: p11tool parses arguments
+       are before (with gaa).
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.ac, m4/hooks.m4: bumped version
+       * src/Makefile.am, src/cli-args.def.in, src/cli-debug-args.def.in,
+       src/cli.c, src/p11tool-args.def.in, src/p11tool.c,
+       src/psk-args.def.in, src/serv-args.def.in, src/serv.c,
+       src/srptool-args.def.in: corrected command line parsing issues.
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-gtls-app.texi: documented new priority strings.
+       * lib/x509/crl.c, lib/x509/x509.c: Added Since
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: server precedence also used in compression
-       methods.
+       * doc/Makefile.am: disable parallel builds.
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
-       lib/auth/dh_common.c, lib/auth/rsa.c, lib/auth/rsa_export.c,
-       lib/gnutls_auth.c, lib/gnutls_constate.c, lib/gnutls_constate.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_session_pack.c, lib/gnutls_state.c,
-       lib/gnutls_v2_compat.c: cipher_suite_st is no longer used
-       internally. We only use a point to 2 bytes.
+       * doc/scripts/gdoc: Do not allow space between section name and ':'.
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c: Added new priority string %SERVER_PRECEDENCE.
+       * doc/latex/gnutls.bib, doc/latex/gnutls.tex: updated bibliography
+       and changed style.
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_priority.c: Removed 128-bit ciphers from secure192, but
-       added SHA256 (or no ciphersuites are there).
+       * src/p11tool-gaa.c, src/p11tool-gaa.h, src/p11tool.gaa: removed old
+       files.
 
-2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/Makefile.am, src/certtool-common.h, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa, src/dh.c,
-       src/prime.c: Added the --dh-info parameter to certtool.
+       * doc/gnutls-guile.texi: removed references to IA
 
-2011-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/manpages/Makefile.am, lib/algorithms/ciphersuites.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/common.c: 
-       gnutls_priority_get_cipher_suite was renamed to
-       gnutls_priority_get_cipher_suite_index.  This makes a more
-       consistent API at the cost of requiring
-       gnutls_get_cipher_suite_info().  An advantage however is that more
-       information can now be accessed.
+       * src/p11tool-args.def.in, src/p11tool.c: updated p11tool def.
 
-2011-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth/anon.c, lib/auth/dh_common.c,
-       lib/auth/dh_common.h, lib/auth/dhe.c, lib/auth/dhe_psk.c,
-       lib/crypto-backend.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_int.h, lib/nettle/mpi.c,
-       src/benchmark-tls.c, src/benchmark.c, src/prime.c: Diffie Hellman
-       PKCS #3 parameters now contain the recommended private key size.  By
-       using the recommended key size the calculations for the server side
-       are reduced, giving a 50% increase in DH calculations.
+       * .gitignore, configure.ac, doc/manpages/Makefile.am,
+       doc/manpages/p11tool.1, src/Makefile.am, src/cli-args.def.in,
+       src/cli-debug-args.def.in, src/p11tool-args.def.in, src/p11tool.c,
+       src/psk-args.def.in, src/serv-args.def.in, src/srptool-args.def.in: 
+       p11tool uses libopts
 
-2011-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/nettle/mpi.c: small cleanups.
+       * src/cli-args.def.in, src/serv-args.def.in: keyfile and certfile
+       types were changed to string, to allow for PKCS #11 urls
 
-2011-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth/psk_passwd.c, lib/auth/rsa.c, lib/auth/rsa_export.c,
-       lib/auth/srp_passwd.c, lib/crypto-api.c, lib/ext/session_ticket.c,
-       lib/gnutls_cipher.c, lib/gnutls_handshake.c, lib/gnutls_mpi.c,
-       lib/gnutls_pk.c, lib/nettle/gnettle.h, lib/nettle/mpi.c,
-       lib/nettle/pk.c, lib/nettle/rnd.c, lib/opencdk/misc.c,
-       lib/pkcs11_secret.c, lib/random.c, lib/random.h, lib/x509/pkcs12.c,
-       lib/x509/privkey_pkcs8.c: Optimizations in DH parameter generation.  The larger prime is find first and the big loop needs to find a
-       smaller prime, increasing performance.  The _gnutls_rnd() function
-       is now inline and GNUTLS_RND_NONCE doesn't update random generator
-       state.
+       * doc/cha-cert-auth2.texi, doc/fdl-1.3.texi: replaced smallexample
+       with example.
 
-2011-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: updated
+       * .gitignore, src/cli-args.c, src/cli-args.h, src/cli-debug-args.c,
+       src/cli-debug-args.h, src/psk-args.c, src/psk-args.h,
+       src/serv-args.c, src/serv-args.h, src/srptool-args.c,
+       src/srptool-args.h: Removed all auto-generated files.
 
-2011-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/ext/session_ticket.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h: If a ticket is sent to client then don't store the
-       session information in the session cache.
+       * lib/x509/output.c, tests/cert-tests/aki-cert.pem: corrected AKI
+       test.
 
-2011-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/algorithms/ciphersuites.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/cli-gaa.c,
-       src/cli.gaa, src/common.c, src/common.h, src/serv-gaa.c,
-       src/serv.gaa: Added gnutls_priority_get_cipher_suite().  This allows
-       listing the ciphersuites enabled in a priority structure.  The
-       certtool -l option was overloaded so if combined with --priority it
-       will only list the ciphersuites that are enabled by the given
-       priority string.
+       * NEWS: corrected typo
 
-2011-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/nettle/ecc_mulmod.c: removed unused variables.
+       * .gitignore, README-alpha, doc/manpages/gnutls-cli-debug.1,
+       doc/manpages/gnutls-serv.1, doc/manpages/psktool.1,
+       doc/manpages/srptool.1: Do not store auto-generated manpages to git.
 
-2011-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_priority.c: Added 192-bit curve in normal priorities.
+       * tests/cert-tests/ca-no-pathlen.pem,
+       tests/cert-tests/no-ca-or-pathlen.pem: uploaded for new legacy sec
+       level
 
-2011-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented updates
+       * .gitignore, doc/manpages/gnutls-cli-debug.1,
+       doc/manpages/gnutls-serv.1, doc/manpages/psktool.1,
+       doc/manpages/srptool.1, src/cli-args.c, src/cli-args.h,
+       src/cli-debug-args.c, src/cli-debug-args.h, src/psk-args.c,
+       src/psk-args.h, src/serv-args.c, src/serv-args.h,
+       src/srptool-args.c, src/srptool-args.h: Added missing files.
 
-2011-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c: Print ephemeral information after certificate
-       information.
+       * NEWS, configure.ac, lib/gnutls_errors.c,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/x509.h,
+       lib/x509/crl.c, lib/x509/output.c, lib/x509/x509.c,
+       tests/Makefile.am, tests/cert-tests/Makefile.am,
+       tests/cert-tests/aki, tests/cert-tests/aki-cert.pem,
+       tests/cert-tests/ca-no-pathlen.pem,
+       tests/cert-tests/no-ca-or-pathlen.pem, tests/cert-tests/pathlen,
+       tests/pathlen/Makefile.am, tests/pathlen/ca-no-pathlen.pem,
+       tests/pathlen/no-ca-or-pathlen.pem, tests/pathlen/pathlen: Added
+       functions to parse authority key identifiers when stored as a
+       'general name' and serial combo.
 
-2011-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
-       lib/gnutls_handshake.c: Optimized ciphersuite sorting.
+       * lib/x509/x509.c: Corrected bug in _gnutls_parse_aia()
 
-2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/benchmark-tls.c: modified the test to a level of 80bits of
-       security.
+       * src/cli-args.c, src/cli-args.def.in, src/cli-args.h,
+       src/serv-args.c, src/serv-args.def.in, src/serv-args.h, src/serv.c,
+       src/srptool-args.c, src/srptool-args.def.in, src/srptool-args.h: 
+       updated parameter parsing.
 
-2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/algorithms/ecc.c, lib/includes/gnutls/gnutls.h.in: Added
-       SECP192R1 curve.
+       * src/serv-gaa.c, src/serv-gaa.h, src/serv.gaa: removed serv gaa
+       files
 
-2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/x509cert.c: be less verbose.
+       * doc/manpages/gnutls-cli-debug.1, doc/manpages/psktool.1,
+       doc/manpages/srptool.1, src/cli-args.c, src/cli-args.h,
+       src/srptool-args.c, src/srptool-args.h: updates.
 
-2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: documented fix
+       * .gitignore, configure.ac, doc/manpages/Makefile.am,
+       doc/manpages/gnutls-serv.1, src/Makefile.am, src/serv-args.c,
+       src/serv-args.def.in, src/serv-args.h, src/serv.c: gnutls-serv uses
+       libopts.
 
-2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/benchmark-tls.c: Added ECDHE-ECDSA test.
+       * doc/examples/ex-ocsp-client.c, doc/examples/ex-ocsp-verify.c,
+       lib/x509/ocsp.c, lib/x509/ocsp_output.c, src/ocsptool.c: sign fixes.
 
-2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/nettle/Makefile.am, lib/nettle/ecc.h,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_mulmod.c,
-       lib/nettle/ecc_mulmod_timing.c, lib/nettle/ecc_sign_hash.c: The
-       timing resistant ecc_mulmod() is only used when signing using the
-       ECDSA private key. This improves performance in all other cases that
-       do not require timing resistance.
+       * NEWS, lib/includes/gnutls/gnutls.h.in: Documented updates.
 
-2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/accelerated/x86/x86.h: corrected have_cpuid for x86-64.
+       * doc/cha-gtls-app.texi, lib/algorithms/secparams.c,
+       lib/includes/gnutls/gnutls.h.in, tests/slow/keygen.c: Added new
+       security level "legacy" for 96-bit security.
 
-2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/cha-cert-auth2.texi: renamed hardware tokens
-       to security modules.
+       * .gitignore, configure.ac, doc/manpages/Makefile.am,
+       doc/manpages/gnutls-cli-debug.1, doc/manpages/psktool.1,
+       doc/manpages/srptool.1, src/Makefile.am, src/cli-args.c,
+       src/cli-args.h, src/psk-args.def.in, src/psk-gaa.c, src/psk-gaa.h,
+       src/psk.c, src/psk.gaa, src/srptool-args.c, src/srptool-args.h: 
+       psktool also uses libopt.
 
-2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/cha-cert-auth2.texi: Added section 'Managing encrypted keys'
-       to include PKCS 12 structures.
+       * .gitignore, Makefile.am, configure.ac, doc/manpages/Makefile.am,
+       doc/manpages/gnutls-cli.1, doc/manpages/srptool.1,
+       libopts/COPYING.gplv3, libopts/COPYING.lgplv3,
+       libopts/COPYING.mbsd, libopts/MakeDefs.inc, libopts/Makefile.am,
+       libopts/README, libopts/ag-char-map.h, libopts/autoopts.c,
+       libopts/autoopts.h, libopts/autoopts/options.h,
+       libopts/autoopts/project.h, libopts/autoopts/usage-txt.h,
+       libopts/boolean.c, libopts/check.c, libopts/compat/compat.h,
+       libopts/compat/pathfind.c, libopts/compat/snprintf.c,
+       libopts/compat/strchr.c, libopts/compat/strdup.c,
+       libopts/compat/windows-config.h, libopts/configfile.c,
+       libopts/cook.c, libopts/enum.c, libopts/env.c, libopts/file.c,
+       libopts/find.c, libopts/genshell.c, libopts/genshell.h,
+       libopts/libopts.c, libopts/load.c, libopts/makeshell.c,
+       libopts/nested.c, libopts/numeric.c, libopts/parse-duration.c,
+       libopts/parse-duration.h, libopts/pgusage.c, libopts/proto.h,
+       libopts/putshell.c, libopts/reset.c, libopts/restore.c,
+       libopts/save.c, libopts/sort.c, libopts/stack.c,
+       libopts/streqvcmp.c, libopts/text_mmap.c, libopts/time.c,
+       libopts/tokenize.c, libopts/usage.c, libopts/value-type.c,
+       libopts/value-type.h, libopts/version.c, libopts/xat-attribute.c,
+       libopts/xat-attribute.h, m4/libopts.m4, m4/liboptschk.m4,
+       src/Makefile.am, src/cli-args.c, src/cli-args.def.in,
+       src/cli-args.h, src/cli-debug-args.def.in, src/cli.c, src/cli.gaa,
+       src/common.h, src/srptool-args.c, src/srptool-args.def.in,
+       src/srptool-args.h, src/srptool.c, src/srptool.gaa,
+       src/tls_test-gaa.c, src/tls_test-gaa.h, src/tls_test.c,
+       src/tls_test.gaa: gnutls-cli, gnutls-cli-debug and srptool use
+       libopts.
 
-2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/benchmark-tls.c: Added RSA key exchange to comparison.
+       * lib/auth/cert.c: If peer doesn't send any issuers and we have a
+       single certificate then send that one.
 
-2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * devel/perlasm/cpuid-x86.pl, devel/perlasm/cpuid-x86_64.pl,
-       lib/accelerated/accelerated.c, lib/accelerated/x86/aes-padlock.c,
-       lib/accelerated/x86/aes-x86.c,
-       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
-       lib/accelerated/x86/asm/cpuid-x86-64.s,
-       lib/accelerated/x86/asm/cpuid-x86.s, lib/accelerated/x86/x86.h: 
-       Exported gnutls_cpuid() and gnutls_have_cpuid().
+       * configure.ac, doc/examples/ex-client-psk.c,
+       doc/examples/ex-pkcs11-list.c, doc/examples/ex-pkcs12.c,
+       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-pgp.c,
+       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
+       doc/examples/ex-serv-x509.c, doc/examples/tcp.c,
+       lib/abstract_int.h, lib/accelerated/cryptodev.c, lib/algorithms.h,
+       lib/algorithms/ciphersuites.c, lib/algorithms/secparams.c,
+       lib/auth/anon.c, lib/auth/anon_ecdh.c, lib/auth/cert.c,
+       lib/auth/cert.h, lib/auth/dh_common.c, lib/auth/dh_common.h,
+       lib/auth/dhe.c, lib/auth/dhe_psk.c, lib/auth/ecdh_common.c,
+       lib/auth/ecdh_common.h, lib/auth/psk.c, lib/auth/psk_passwd.c,
+       lib/auth/rsa.c, lib/auth/rsa_export.c, lib/auth/srp.c,
+       lib/auth/srp.h, lib/auth/srp_passwd.c, lib/auth/srp_passwd.h,
+       lib/auth/srp_rsa.c, lib/auth/srp_sb64.c, lib/ext/cert_type.c,
+       lib/ext/ecc.c, lib/ext/ecc.h, lib/ext/max_record.c,
+       lib/ext/safe_renegotiation.c, lib/ext/server_name.c,
+       lib/ext/server_name.h, lib/ext/session_ticket.c,
+       lib/ext/signature.c, lib/ext/signature.h, lib/ext/srp.c,
+       lib/extras/randomart.c, lib/gnutls_auth.h, lib/gnutls_buffers.c,
+       lib/gnutls_buffers.h, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
+       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
+       lib/gnutls_compress.h, lib/gnutls_constate.c, lib/gnutls_datum.c,
+       lib/gnutls_datum.h, lib/gnutls_dh_primes.c, lib/gnutls_dtls.c,
+       lib/gnutls_ecc.c, lib/gnutls_ecc.h, lib/gnutls_extensions.c,
+       lib/gnutls_extensions.h, lib/gnutls_handshake.c,
+       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
+       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
+       lib/gnutls_mbuffers.c, lib/gnutls_mpi.c, lib/gnutls_num.c,
+       lib/gnutls_num.h, lib/gnutls_pcert.c, lib/gnutls_pk.c,
+       lib/gnutls_psk.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
+       lib/gnutls_record.h, lib/gnutls_session.c,
+       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
+       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_state.c,
+       lib/gnutls_state.h, lib/gnutls_str.c, lib/gnutls_str.h,
+       lib/gnutls_str_array.h, lib/gnutls_supplemental.c, lib/gnutls_ui.c,
+       lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h, lib/gnutls_x509.c,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/pkcs11.h,
+       lib/includes/gnutls/x509.h, lib/nettle/cipher.c, lib/nettle/egd.c,
+       lib/nettle/mpi.c, lib/nettle/pk.c, lib/nettle/rnd.c,
+       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/kbnode.c,
+       lib/opencdk/main.h, lib/opencdk/stream.c, lib/opencdk/stream.h,
+       lib/opencdk/write-packet.c, lib/openpgp/extras.c,
+       lib/openpgp/gnutls_openpgp.c, lib/openpgp/gnutls_openpgp.h,
+       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/privkey.c,
+       lib/pkcs11.c, lib/pkcs11_int.h, lib/pkcs11_secret.c,
+       lib/pkcs11_write.c, lib/x509/common.c, lib/x509/common.h,
+       lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
+       lib/x509/dn.c, lib/x509/extensions.c, lib/x509/key_decode.c,
+       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/output.c,
+       lib/x509/pbkdf2-sha1.c, lib/x509/pbkdf2-sha1.h, lib/x509/pkcs12.c,
+       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
+       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify-high.c,
+       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h,
+       lib/x509/x509_write.c, lib/x509_b64.c, lib/x509_b64.h,
+       src/benchmark-tls.c, src/certtool-common.c, src/certtool.c,
+       src/cli.c, src/common.c, src/crywrap/crywrap.c, src/dh.c,
+       src/pkcs11.c, src/serv.c, src/srptool.c, tests/anonself.c,
+       tests/certificate_set_x509_crl.c, tests/chainverify.c,
+       tests/cve-2008-4989.c, tests/cve-2009-1415.c, tests/dhepskself.c,
+       tests/dn.c, tests/dn2.c, tests/gc.c, tests/hostname-check.c,
+       tests/infoaccess.c, tests/mini-deflate.c, tests/mini-eagain-dtls.c,
+       tests/mini-eagain.c, tests/mini.c, tests/moredn.c,
+       tests/nul-in-x509-names.c, tests/openpgp-auth.c,
+       tests/openpgp-auth2.c, tests/openpgpself.c, tests/parse_ca.c,
+       tests/pkcs12_encode.c, tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c,
+       tests/pskself.c, tests/resume.c, tests/rsa-encrypt-decrypt.c,
+       tests/slow/cipher-test.c, tests/utils.c, tests/utils.h,
+       tests/x509_altname.c, tests/x509cert.c, tests/x509dn.c,
+       tests/x509self.c, tests/x509sign-verify.c: Fixed signed/unsigned
+       warnings.  Dropped opaque type (replaced with uint8_t)
 
-2011-12-06  Simon Josefsson <simon@josefsson.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: Fix descriptive text.
+       * lib/gnutls_cipher.c, lib/gnutls_handshake.c,
+       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_state.c,
+       lib/gnutls_state.h, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
+       lib/opencdk/misc.c, lib/x509/common.c, lib/x509/crl.c,
+       lib/x509/privkey_pkcs8.c, lib/x509/x509.c, lib/x509_b64.c: Modulo
+       operations are only occuring on unsigned integers.
 
-2011-12-06  Simon Josefsson <simon@josefsson.org>
+2012-01-20  Ludovic Courtès <ludo@gnu.org>
 
-       * doc/manpages/Makefile.am, doc/scripts/getfuncs.pl: Fix getfuncs.pl
-       parse bug; require non-empty list of function parameters.  Otherwise it would detect a comment like '* foo()' as another
-       function.
+       * cfg.mk, guile/modules/gnutls/build/priorities.scm,
+       guile/src/core.c: guile: Don't cast return value of `alloca'.
 
-2011-12-06  Simon Josefsson <simon@josefsson.org>
+2012-01-20  Ludovic Courtès <ludo@gnu.org>
 
-       * doc/manpages/gnutls_init.3,
-       doc/manpages/gnutls_pk_algorithm_get_name.3: Really remove manpages.
+       * guile/modules/gnutls.in, guile/modules/gnutls/build/enums.scm: 
+       guile: Update the list of error codes.
 
-2011-12-06  Simon Josefsson <simon@josefsson.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * .gitignore, doc/manpages/Makefile.am: Fix whitespace in last
-       commit.
+       * po/cs.po.in, po/de.po.in, po/fr.po.in, po/it.po.in, po/ms.po.in,
+       po/nl.po.in, po/pl.po.in, po/sv.po.in, po/uk.po.in, po/zh_CN.po.in: 
+       Sync with TP.
 
-2011-12-06  Simon Josefsson <simon@josefsson.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * doc/manpages/Makefile.am: Don't rebuild man pages on every 'make'
-       invocation.
+       * cfg.mk: Ignore assembler code.
 
-2011-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * doc/manpages/Makefile.am, doc/manpages/gnutls_alert_get.3,
-       doc/manpages/gnutls_alert_get_name.3,
-       doc/manpages/gnutls_alert_get_strname.3,
-       doc/manpages/gnutls_alert_send.3,
-       doc/manpages/gnutls_alert_send_appropriate.3,
-       doc/manpages/gnutls_anon_allocate_client_credentials.3,
-       doc/manpages/gnutls_anon_allocate_server_credentials.3,
-       doc/manpages/gnutls_anon_free_client_credentials.3,
-       doc/manpages/gnutls_anon_free_server_credentials.3,
-       doc/manpages/gnutls_anon_set_params_function.3,
-       doc/manpages/gnutls_anon_set_server_dh_params.3,
-       doc/manpages/gnutls_anon_set_server_params_function.3,
-       doc/manpages/gnutls_auth_client_get_type.3,
-       doc/manpages/gnutls_auth_get_type.3,
-       doc/manpages/gnutls_auth_server_get_type.3,
-       doc/manpages/gnutls_bye.3,
-       doc/manpages/gnutls_certificate_activation_time_peers.3,
-       doc/manpages/gnutls_certificate_allocate_credentials.3,
-       doc/manpages/gnutls_certificate_client_get_request_status.3,
-       doc/manpages/gnutls_certificate_expiration_time_peers.3,
-       doc/manpages/gnutls_certificate_free_ca_names.3,
-       doc/manpages/gnutls_certificate_free_cas.3,
-       doc/manpages/gnutls_certificate_free_credentials.3,
-       doc/manpages/gnutls_certificate_free_crls.3,
-       doc/manpages/gnutls_certificate_free_keys.3,
-       doc/manpages/gnutls_certificate_get_issuer.3,
-       doc/manpages/gnutls_certificate_get_openpgp_keyring.3,
-       doc/manpages/gnutls_certificate_get_ours.3,
-       doc/manpages/gnutls_certificate_get_peers.3,
-       doc/manpages/gnutls_certificate_send_x509_rdn_sequence.3,
-       doc/manpages/gnutls_certificate_server_set_request.3,
-       doc/manpages/gnutls_certificate_set_dh_params.3,
-       doc/manpages/gnutls_certificate_set_key.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key_file.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key_file2.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key_mem.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key_mem2.3,
-       doc/manpages/gnutls_certificate_set_params_function.3,
-       doc/manpages/gnutls_certificate_set_rsa_export_params.3,
-       doc/manpages/gnutls_certificate_set_verify_flags.3,
-       doc/manpages/gnutls_certificate_set_verify_function.3,
-       doc/manpages/gnutls_certificate_set_verify_limits.3,
-       doc/manpages/gnutls_certificate_set_x509_crl.3,
-       doc/manpages/gnutls_certificate_set_x509_crl_file.3,
-       doc/manpages/gnutls_certificate_set_x509_crl_mem.3,
-       doc/manpages/gnutls_certificate_set_x509_key.3,
-       doc/manpages/gnutls_certificate_set_x509_key_file.3,
-       doc/manpages/gnutls_certificate_set_x509_key_mem.3,
-       doc/manpages/gnutls_certificate_set_x509_trust.3,
-       doc/manpages/gnutls_certificate_set_x509_trust_file.3,
-       doc/manpages/gnutls_certificate_set_x509_trust_mem.3,
-       doc/manpages/gnutls_certificate_type_get.3,
-       doc/manpages/gnutls_certificate_type_get_id.3,
-       doc/manpages/gnutls_certificate_type_get_name.3,
-       doc/manpages/gnutls_certificate_type_list.3,
-       doc/manpages/gnutls_certificate_type_set_priority.3,
-       doc/manpages/gnutls_certificate_verify_peers2.3,
-       doc/manpages/gnutls_check_version.3,
-       doc/manpages/gnutls_cipher_add_auth.3,
-       doc/manpages/gnutls_cipher_decrypt.3,
-       doc/manpages/gnutls_cipher_decrypt2.3,
-       doc/manpages/gnutls_cipher_deinit.3,
-       doc/manpages/gnutls_cipher_encrypt.3,
-       doc/manpages/gnutls_cipher_encrypt2.3,
-       doc/manpages/gnutls_cipher_get.3,
-       doc/manpages/gnutls_cipher_get_block_size.3,
-       doc/manpages/gnutls_cipher_get_id.3,
-       doc/manpages/gnutls_cipher_get_key_size.3,
-       doc/manpages/gnutls_cipher_get_name.3,
-       doc/manpages/gnutls_cipher_init.3,
-       doc/manpages/gnutls_cipher_list.3,
-       doc/manpages/gnutls_cipher_set_iv.3,
-       doc/manpages/gnutls_cipher_set_priority.3,
-       doc/manpages/gnutls_cipher_suite_get_name.3,
-       doc/manpages/gnutls_cipher_suite_info.3,
-       doc/manpages/gnutls_cipher_tag.3,
-       doc/manpages/gnutls_compression_get.3,
-       doc/manpages/gnutls_compression_get_id.3,
-       doc/manpages/gnutls_compression_get_name.3,
-       doc/manpages/gnutls_compression_list.3,
-       doc/manpages/gnutls_compression_set_priority.3,
-       doc/manpages/gnutls_credentials_clear.3,
-       doc/manpages/gnutls_credentials_set.3,
-       doc/manpages/gnutls_db_check_entry.3,
-       doc/manpages/gnutls_db_get_ptr.3,
-       doc/manpages/gnutls_db_remove_session.3,
-       doc/manpages/gnutls_db_set_cache_expiration.3,
-       doc/manpages/gnutls_db_set_ptr.3,
-       doc/manpages/gnutls_db_set_remove_function.3,
-       doc/manpages/gnutls_db_set_retrieve_function.3,
-       doc/manpages/gnutls_db_set_store_function.3,
-       doc/manpages/gnutls_deinit.3, doc/manpages/gnutls_dh_get_group.3,
-       doc/manpages/gnutls_dh_get_peers_public_bits.3,
-       doc/manpages/gnutls_dh_get_prime_bits.3,
-       doc/manpages/gnutls_dh_get_pubkey.3,
-       doc/manpages/gnutls_dh_get_secret_bits.3,
-       doc/manpages/gnutls_dh_params_cpy.3,
-       doc/manpages/gnutls_dh_params_deinit.3,
-       doc/manpages/gnutls_dh_params_export_pkcs3.3,
-       doc/manpages/gnutls_dh_params_export_raw.3,
-       doc/manpages/gnutls_dh_params_generate2.3,
-       doc/manpages/gnutls_dh_params_import_pkcs3.3,
-       doc/manpages/gnutls_dh_params_import_raw.3,
-       doc/manpages/gnutls_dh_params_init.3,
-       doc/manpages/gnutls_dh_set_prime_bits.3,
-       doc/manpages/gnutls_dtls_cookie_send.3,
-       doc/manpages/gnutls_dtls_cookie_verify.3,
-       doc/manpages/gnutls_dtls_get_data_mtu.3,
-       doc/manpages/gnutls_dtls_get_mtu.3,
-       doc/manpages/gnutls_dtls_prestate_set.3,
-       doc/manpages/gnutls_dtls_set_mtu.3,
-       doc/manpages/gnutls_dtls_set_timeouts.3,
-       doc/manpages/gnutls_ecc_curve_get.3,
-       doc/manpages/gnutls_ecc_curve_get_name.3,
-       doc/manpages/gnutls_ecc_curve_get_size.3,
-       doc/manpages/gnutls_error_is_fatal.3,
-       doc/manpages/gnutls_error_to_alert.3,
-       doc/manpages/gnutls_fingerprint.3,
-       doc/manpages/gnutls_global_deinit.3,
-       doc/manpages/gnutls_global_init.3,
-       doc/manpages/gnutls_global_set_audit_log_function.3,
-       doc/manpages/gnutls_global_set_log_function.3,
-       doc/manpages/gnutls_global_set_log_level.3,
-       doc/manpages/gnutls_global_set_mem_functions.3,
-       doc/manpages/gnutls_global_set_mutex.3,
-       doc/manpages/gnutls_global_set_time_function.3,
-       doc/manpages/gnutls_handshake.3,
-       doc/manpages/gnutls_handshake_get_last_in.3,
-       doc/manpages/gnutls_handshake_get_last_out.3,
-       doc/manpages/gnutls_handshake_set_max_packet_length.3,
-       doc/manpages/gnutls_handshake_set_post_client_hello_function.3,
-       doc/manpages/gnutls_handshake_set_private_extensions.3,
-       doc/manpages/gnutls_hash.3, doc/manpages/gnutls_hash_deinit.3,
-       doc/manpages/gnutls_hash_fast.3,
-       doc/manpages/gnutls_hash_get_len.3,
-       doc/manpages/gnutls_hash_init.3, doc/manpages/gnutls_hash_output.3,
-       doc/manpages/gnutls_hex2bin.3, doc/manpages/gnutls_hex_decode.3,
-       doc/manpages/gnutls_hex_encode.3, doc/manpages/gnutls_hmac.3,
-       doc/manpages/gnutls_hmac_deinit.3, doc/manpages/gnutls_hmac_fast.3,
-       doc/manpages/gnutls_hmac_get_len.3,
-       doc/manpages/gnutls_hmac_init.3, doc/manpages/gnutls_hmac_output.3,
-       doc/manpages/gnutls_init.3, doc/manpages/gnutls_key_generate.3,
-       doc/manpages/gnutls_kx_get.3, doc/manpages/gnutls_kx_get_id.3,
-       doc/manpages/gnutls_kx_get_name.3, doc/manpages/gnutls_kx_list.3,
-       doc/manpages/gnutls_kx_set_priority.3,
-       doc/manpages/gnutls_mac_get.3, doc/manpages/gnutls_mac_get_id.3,
-       doc/manpages/gnutls_mac_get_key_size.3,
-       doc/manpages/gnutls_mac_get_name.3, doc/manpages/gnutls_mac_list.3,
-       doc/manpages/gnutls_mac_set_priority.3,
-       doc/manpages/gnutls_openpgp_crt_check_hostname.3,
-       doc/manpages/gnutls_openpgp_crt_deinit.3,
-       doc/manpages/gnutls_openpgp_crt_export.3,
-       doc/manpages/gnutls_openpgp_crt_get_auth_subkey.3,
-       doc/manpages/gnutls_openpgp_crt_get_creation_time.3,
-       doc/manpages/gnutls_openpgp_crt_get_expiration_time.3,
-       doc/manpages/gnutls_openpgp_crt_get_fingerprint.3,
-       doc/manpages/gnutls_openpgp_crt_get_key_id.3,
-       doc/manpages/gnutls_openpgp_crt_get_key_usage.3,
-       doc/manpages/gnutls_openpgp_crt_get_name.3,
-       doc/manpages/gnutls_openpgp_crt_get_pk_algorithm.3,
-       doc/manpages/gnutls_openpgp_crt_get_pk_dsa_raw.3,
-       doc/manpages/gnutls_openpgp_crt_get_pk_rsa_raw.3,
-       doc/manpages/gnutls_openpgp_crt_get_preferred_key_id.3,
-       doc/manpages/gnutls_openpgp_crt_get_revoked_status.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_count.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_creation_time.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_expiration_time.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_fingerprint.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_id.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_idx.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_algorithm.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_revoked_status.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_usage.3,
-       doc/manpages/gnutls_openpgp_crt_get_version.3,
-       doc/manpages/gnutls_openpgp_crt_import.3,
-       doc/manpages/gnutls_openpgp_crt_init.3,
-       doc/manpages/gnutls_openpgp_crt_print.3,
-       doc/manpages/gnutls_openpgp_crt_set_preferred_key_id.3,
-       doc/manpages/gnutls_openpgp_crt_verify_ring.3,
-       doc/manpages/gnutls_openpgp_crt_verify_self.3,
-       doc/manpages/gnutls_openpgp_keyring_check_id.3,
-       doc/manpages/gnutls_openpgp_keyring_deinit.3,
-       doc/manpages/gnutls_openpgp_keyring_get_crt.3,
-       doc/manpages/gnutls_openpgp_keyring_get_crt_count.3,
-       doc/manpages/gnutls_openpgp_keyring_import.3,
-       doc/manpages/gnutls_openpgp_keyring_init.3,
-       doc/manpages/gnutls_openpgp_privkey_deinit.3,
-       doc/manpages/gnutls_openpgp_privkey_export.3,
-       doc/manpages/gnutls_openpgp_privkey_export_dsa_raw.3,
-       doc/manpages/gnutls_openpgp_privkey_export_rsa_raw.3,
-       doc/manpages/gnutls_openpgp_privkey_export_subkey_dsa_raw.3,
-       doc/manpages/gnutls_openpgp_privkey_export_subkey_rsa_raw.3,
-       doc/manpages/gnutls_openpgp_privkey_get_fingerprint.3,
-       doc/manpages/gnutls_openpgp_privkey_get_key_id.3,
-       doc/manpages/gnutls_openpgp_privkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_openpgp_privkey_get_preferred_key_id.3,
-       doc/manpages/gnutls_openpgp_privkey_get_revoked_status.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_count.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_creation_time.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_fingerprint.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_id.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_idx.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_pk_algorithm.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_revoked_status.3,
-       doc/manpages/gnutls_openpgp_privkey_import.3,
-       doc/manpages/gnutls_openpgp_privkey_init.3,
-       doc/manpages/gnutls_openpgp_privkey_sec_param.3,
-       doc/manpages/gnutls_openpgp_privkey_set_preferred_key_id.3,
-       doc/manpages/gnutls_openpgp_privkey_sign_hash.3,
-       doc/manpages/gnutls_openpgp_send_cert.3,
-       doc/manpages/gnutls_openpgp_set_recv_key_function.3,
-       doc/manpages/gnutls_pcert_deinit.3,
-       doc/manpages/gnutls_pcert_import_openpgp.3,
-       doc/manpages/gnutls_pcert_import_openpgp_raw.3,
-       doc/manpages/gnutls_pcert_import_x509.3,
-       doc/manpages/gnutls_pcert_import_x509_raw.3,
-       doc/manpages/gnutls_pcert_list_import_x509_raw.3,
-       doc/manpages/gnutls_pem_base64_decode.3,
-       doc/manpages/gnutls_pem_base64_decode_alloc.3,
-       doc/manpages/gnutls_pem_base64_encode.3,
-       doc/manpages/gnutls_pem_base64_encode_alloc.3,
-       doc/manpages/gnutls_perror.3,
-       doc/manpages/gnutls_pk_algorithm_get_name.3,
-       doc/manpages/gnutls_pk_bits_to_sec_param.3,
-       doc/manpages/gnutls_pk_get_id.3, doc/manpages/gnutls_pk_get_name.3,
-       doc/manpages/gnutls_pk_list.3,
-       doc/manpages/gnutls_pkcs11_add_provider.3,
-       doc/manpages/gnutls_pkcs11_copy_secret_key.3,
-       doc/manpages/gnutls_pkcs11_copy_x509_crt.3,
-       doc/manpages/gnutls_pkcs11_copy_x509_privkey.3,
-       doc/manpages/gnutls_pkcs11_deinit.3,
-       doc/manpages/gnutls_pkcs11_delete_url.3,
-       doc/manpages/gnutls_pkcs11_init.3,
-       doc/manpages/gnutls_pkcs11_obj_deinit.3,
-       doc/manpages/gnutls_pkcs11_obj_export.3,
-       doc/manpages/gnutls_pkcs11_obj_export_url.3,
-       doc/manpages/gnutls_pkcs11_obj_get_info.3,
-       doc/manpages/gnutls_pkcs11_obj_get_type.3,
-       doc/manpages/gnutls_pkcs11_obj_import_url.3,
-       doc/manpages/gnutls_pkcs11_obj_init.3,
-       doc/manpages/gnutls_pkcs11_obj_list_import_url.3,
-       doc/manpages/gnutls_pkcs11_privkey_deinit.3,
-       doc/manpages/gnutls_pkcs11_privkey_export_url.3,
-       doc/manpages/gnutls_pkcs11_privkey_generate.3,
-       doc/manpages/gnutls_pkcs11_privkey_get_info.3,
-       doc/manpages/gnutls_pkcs11_privkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_pkcs11_privkey_import_url.3,
-       doc/manpages/gnutls_pkcs11_privkey_init.3,
-       doc/manpages/gnutls_pkcs11_set_pin_function.3,
-       doc/manpages/gnutls_pkcs11_set_token_function.3,
-       doc/manpages/gnutls_pkcs11_token_get_flags.3,
-       doc/manpages/gnutls_pkcs11_token_get_info.3,
-       doc/manpages/gnutls_pkcs11_token_get_mechanism.3,
-       doc/manpages/gnutls_pkcs11_token_get_url.3,
-       doc/manpages/gnutls_pkcs11_token_init.3,
-       doc/manpages/gnutls_pkcs11_token_set_pin.3,
-       doc/manpages/gnutls_pkcs11_type_get_name.3,
-       doc/manpages/gnutls_pkcs12_bag_decrypt.3,
-       doc/manpages/gnutls_pkcs12_bag_deinit.3,
-       doc/manpages/gnutls_pkcs12_bag_encrypt.3,
-       doc/manpages/gnutls_pkcs12_bag_get_count.3,
-       doc/manpages/gnutls_pkcs12_bag_get_data.3,
-       doc/manpages/gnutls_pkcs12_bag_get_friendly_name.3,
-       doc/manpages/gnutls_pkcs12_bag_get_key_id.3,
-       doc/manpages/gnutls_pkcs12_bag_get_type.3,
-       doc/manpages/gnutls_pkcs12_bag_init.3,
-       doc/manpages/gnutls_pkcs12_bag_set_crl.3,
-       doc/manpages/gnutls_pkcs12_bag_set_crt.3,
-       doc/manpages/gnutls_pkcs12_bag_set_data.3,
-       doc/manpages/gnutls_pkcs12_bag_set_friendly_name.3,
-       doc/manpages/gnutls_pkcs12_bag_set_key_id.3,
-       doc/manpages/gnutls_pkcs12_deinit.3,
-       doc/manpages/gnutls_pkcs12_export.3,
-       doc/manpages/gnutls_pkcs12_generate_mac.3,
-       doc/manpages/gnutls_pkcs12_get_bag.3,
-       doc/manpages/gnutls_pkcs12_import.3,
-       doc/manpages/gnutls_pkcs12_init.3,
-       doc/manpages/gnutls_pkcs12_set_bag.3,
-       doc/manpages/gnutls_pkcs12_verify_mac.3,
-       doc/manpages/gnutls_pkcs7_deinit.3,
-       doc/manpages/gnutls_pkcs7_delete_crl.3,
-       doc/manpages/gnutls_pkcs7_delete_crt.3,
-       doc/manpages/gnutls_pkcs7_export.3,
-       doc/manpages/gnutls_pkcs7_get_crl_count.3,
-       doc/manpages/gnutls_pkcs7_get_crl_raw.3,
-       doc/manpages/gnutls_pkcs7_get_crt_count.3,
-       doc/manpages/gnutls_pkcs7_get_crt_raw.3,
-       doc/manpages/gnutls_pkcs7_import.3,
-       doc/manpages/gnutls_pkcs7_init.3,
-       doc/manpages/gnutls_pkcs7_set_crl.3,
-       doc/manpages/gnutls_pkcs7_set_crl_raw.3,
-       doc/manpages/gnutls_pkcs7_set_crt.3,
-       doc/manpages/gnutls_pkcs7_set_crt_raw.3, doc/manpages/gnutls_prf.3,
-       doc/manpages/gnutls_prf_raw.3,
-       doc/manpages/gnutls_priority_deinit.3,
-       doc/manpages/gnutls_priority_init.3,
-       doc/manpages/gnutls_priority_set.3,
-       doc/manpages/gnutls_priority_set_direct.3,
-       doc/manpages/gnutls_privkey_decrypt_data.3,
-       doc/manpages/gnutls_privkey_deinit.3,
-       doc/manpages/gnutls_privkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_privkey_get_type.3,
-       doc/manpages/gnutls_privkey_import_ext.3,
-       doc/manpages/gnutls_privkey_import_openpgp.3,
-       doc/manpages/gnutls_privkey_import_pkcs11.3,
-       doc/manpages/gnutls_privkey_import_x509.3,
-       doc/manpages/gnutls_privkey_init.3,
-       doc/manpages/gnutls_privkey_sign_data.3,
-       doc/manpages/gnutls_privkey_sign_hash.3,
-       doc/manpages/gnutls_protocol_get_id.3,
-       doc/manpages/gnutls_protocol_get_name.3,
-       doc/manpages/gnutls_protocol_get_version.3,
-       doc/manpages/gnutls_protocol_list.3,
-       doc/manpages/gnutls_protocol_set_priority.3,
-       doc/manpages/gnutls_psk_allocate_client_credentials.3,
-       doc/manpages/gnutls_psk_allocate_server_credentials.3,
-       doc/manpages/gnutls_psk_client_get_hint.3,
-       doc/manpages/gnutls_psk_free_client_credentials.3,
-       doc/manpages/gnutls_psk_free_server_credentials.3,
-       doc/manpages/gnutls_psk_server_get_username.3,
-       doc/manpages/gnutls_psk_set_client_credentials.3,
-       doc/manpages/gnutls_psk_set_params_function.3,
-       doc/manpages/gnutls_psk_set_server_credentials_file.3,
-       doc/manpages/gnutls_psk_set_server_credentials_hint.3,
-       doc/manpages/gnutls_psk_set_server_dh_params.3,
-       doc/manpages/gnutls_psk_set_server_params_function.3,
-       doc/manpages/gnutls_pubkey_deinit.3,
-       doc/manpages/gnutls_pubkey_export.3,
-       doc/manpages/gnutls_pubkey_get_key_id.3,
-       doc/manpages/gnutls_pubkey_get_key_usage.3,
-       doc/manpages/gnutls_pubkey_get_openpgp_key_id.3,
-       doc/manpages/gnutls_pubkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_pubkey_get_pk_dsa_raw.3,
-       doc/manpages/gnutls_pubkey_get_pk_ecc_raw.3,
-       doc/manpages/gnutls_pubkey_get_pk_ecc_x962.3,
-       doc/manpages/gnutls_pubkey_get_pk_rsa_raw.3,
-       doc/manpages/gnutls_pubkey_get_preferred_hash_algorithm.3,
-       doc/manpages/gnutls_pubkey_get_verify_algorithm.3,
-       doc/manpages/gnutls_pubkey_import.3,
-       doc/manpages/gnutls_pubkey_import_dsa_raw.3,
-       doc/manpages/gnutls_pubkey_import_ecc_raw.3,
-       doc/manpages/gnutls_pubkey_import_ecc_x962.3,
-       doc/manpages/gnutls_pubkey_import_openpgp.3,
-       doc/manpages/gnutls_pubkey_import_pkcs11.3,
-       doc/manpages/gnutls_pubkey_import_pkcs11_url.3,
-       doc/manpages/gnutls_pubkey_import_privkey.3,
-       doc/manpages/gnutls_pubkey_import_rsa_raw.3,
-       doc/manpages/gnutls_pubkey_import_x509.3,
-       doc/manpages/gnutls_pubkey_init.3,
-       doc/manpages/gnutls_pubkey_set_key_usage.3,
-       doc/manpages/gnutls_pubkey_verify_data.3,
-       doc/manpages/gnutls_pubkey_verify_data2.3,
-       doc/manpages/gnutls_pubkey_verify_hash.3,
-       doc/manpages/gnutls_record_check_pending.3,
-       doc/manpages/gnutls_record_disable_padding.3,
-       doc/manpages/gnutls_record_get_direction.3,
-       doc/manpages/gnutls_record_get_discarded.3,
-       doc/manpages/gnutls_record_get_max_size.3,
-       doc/manpages/gnutls_record_recv.3,
-       doc/manpages/gnutls_record_recv_seq.3,
-       doc/manpages/gnutls_record_send.3,
-       doc/manpages/gnutls_record_set_max_size.3,
-       doc/manpages/gnutls_rehandshake.3, doc/manpages/gnutls_rnd.3,
-       doc/manpages/gnutls_rsa_export_get_modulus_bits.3,
-       doc/manpages/gnutls_rsa_export_get_pubkey.3,
-       doc/manpages/gnutls_rsa_params_cpy.3,
-       doc/manpages/gnutls_rsa_params_deinit.3,
-       doc/manpages/gnutls_rsa_params_export_pkcs1.3,
-       doc/manpages/gnutls_rsa_params_export_raw.3,
-       doc/manpages/gnutls_rsa_params_generate2.3,
-       doc/manpages/gnutls_rsa_params_import_pkcs1.3,
-       doc/manpages/gnutls_rsa_params_import_raw.3,
-       doc/manpages/gnutls_rsa_params_init.3,
-       doc/manpages/gnutls_safe_renegotiation_status.3,
-       doc/manpages/gnutls_sec_param_get_name.3,
-       doc/manpages/gnutls_sec_param_to_pk_bits.3,
-       doc/manpages/gnutls_server_name_get.3,
-       doc/manpages/gnutls_server_name_set.3,
-       doc/manpages/gnutls_session_channel_binding.3,
-       doc/manpages/gnutls_session_enable_compatibility_mode.3,
-       doc/manpages/gnutls_session_get_data.3,
-       doc/manpages/gnutls_session_get_data2.3,
-       doc/manpages/gnutls_session_get_id.3,
-       doc/manpages/gnutls_session_get_ptr.3,
-       doc/manpages/gnutls_session_is_resumed.3,
-       doc/manpages/gnutls_session_set_data.3,
-       doc/manpages/gnutls_session_set_ptr.3,
-       doc/manpages/gnutls_session_ticket_enable_client.3,
-       doc/manpages/gnutls_session_ticket_enable_server.3,
-       doc/manpages/gnutls_session_ticket_key_generate.3,
-       doc/manpages/gnutls_set_default_export_priority.3,
-       doc/manpages/gnutls_set_default_priority.3,
-       doc/manpages/gnutls_sign_algorithm_get_requested.3,
-       doc/manpages/gnutls_sign_callback_get.3,
-       doc/manpages/gnutls_sign_callback_set.3,
-       doc/manpages/gnutls_sign_get_id.3,
-       doc/manpages/gnutls_sign_get_name.3,
-       doc/manpages/gnutls_sign_list.3,
-       doc/manpages/gnutls_srp_allocate_client_credentials.3,
-       doc/manpages/gnutls_srp_allocate_server_credentials.3,
-       doc/manpages/gnutls_srp_base64_decode.3,
-       doc/manpages/gnutls_srp_base64_decode_alloc.3,
-       doc/manpages/gnutls_srp_base64_encode.3,
-       doc/manpages/gnutls_srp_base64_encode_alloc.3,
-       doc/manpages/gnutls_srp_free_client_credentials.3,
-       doc/manpages/gnutls_srp_free_server_credentials.3,
-       doc/manpages/gnutls_srp_server_get_username.3,
-       doc/manpages/gnutls_srp_set_client_credentials.3,
-       doc/manpages/gnutls_srp_set_prime_bits.3,
-       doc/manpages/gnutls_srp_set_server_credentials_file.3,
-       doc/manpages/gnutls_srp_verifier.3, doc/manpages/gnutls_strerror.3,
-       doc/manpages/gnutls_strerror_name.3,
-       doc/manpages/gnutls_supplemental_get_name.3,
-       doc/manpages/gnutls_transport_get_ptr.3,
-       doc/manpages/gnutls_transport_get_ptr2.3,
-       doc/manpages/gnutls_transport_set_errno.3,
-       doc/manpages/gnutls_transport_set_errno_function.3,
-       doc/manpages/gnutls_transport_set_ptr.3,
-       doc/manpages/gnutls_transport_set_ptr2.3,
-       doc/manpages/gnutls_transport_set_pull_function.3,
-       doc/manpages/gnutls_transport_set_pull_timeout_function.3,
-       doc/manpages/gnutls_transport_set_push_function.3,
-       doc/manpages/gnutls_transport_set_vec_push_function.3,
-       doc/manpages/gnutls_x509_crl_check_issuer.3,
-       doc/manpages/gnutls_x509_crl_deinit.3,
-       doc/manpages/gnutls_x509_crl_export.3,
-       doc/manpages/gnutls_x509_crl_get_authority_key_id.3,
-       doc/manpages/gnutls_x509_crl_get_crt_count.3,
-       doc/manpages/gnutls_x509_crl_get_crt_serial.3,
-       doc/manpages/gnutls_x509_crl_get_dn_oid.3,
-       doc/manpages/gnutls_x509_crl_get_extension_data.3,
-       doc/manpages/gnutls_x509_crl_get_extension_info.3,
-       doc/manpages/gnutls_x509_crl_get_extension_oid.3,
-       doc/manpages/gnutls_x509_crl_get_issuer_dn.3,
-       doc/manpages/gnutls_x509_crl_get_issuer_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crl_get_next_update.3,
-       doc/manpages/gnutls_x509_crl_get_number.3,
-       doc/manpages/gnutls_x509_crl_get_raw_issuer_dn.3,
-       doc/manpages/gnutls_x509_crl_get_signature.3,
-       doc/manpages/gnutls_x509_crl_get_signature_algorithm.3,
-       doc/manpages/gnutls_x509_crl_get_this_update.3,
-       doc/manpages/gnutls_x509_crl_get_version.3,
-       doc/manpages/gnutls_x509_crl_import.3,
-       doc/manpages/gnutls_x509_crl_init.3,
-       doc/manpages/gnutls_x509_crl_list_import.3,
-       doc/manpages/gnutls_x509_crl_list_import2.3,
-       doc/manpages/gnutls_x509_crl_print.3,
-       doc/manpages/gnutls_x509_crl_privkey_sign.3,
-       doc/manpages/gnutls_x509_crl_set_authority_key_id.3,
-       doc/manpages/gnutls_x509_crl_set_crt.3,
-       doc/manpages/gnutls_x509_crl_set_crt_serial.3,
-       doc/manpages/gnutls_x509_crl_set_next_update.3,
-       doc/manpages/gnutls_x509_crl_set_number.3,
-       doc/manpages/gnutls_x509_crl_set_this_update.3,
-       doc/manpages/gnutls_x509_crl_set_version.3,
-       doc/manpages/gnutls_x509_crl_sign.3,
-       doc/manpages/gnutls_x509_crl_sign2.3,
-       doc/manpages/gnutls_x509_crl_verify.3,
-       doc/manpages/gnutls_x509_crq_deinit.3,
-       doc/manpages/gnutls_x509_crq_export.3,
-       doc/manpages/gnutls_x509_crq_get_attribute_by_oid.3,
-       doc/manpages/gnutls_x509_crq_get_attribute_data.3,
-       doc/manpages/gnutls_x509_crq_get_attribute_info.3,
-       doc/manpages/gnutls_x509_crq_get_basic_constraints.3,
-       doc/manpages/gnutls_x509_crq_get_challenge_password.3,
-       doc/manpages/gnutls_x509_crq_get_dn.3,
-       doc/manpages/gnutls_x509_crq_get_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crq_get_dn_oid.3,
-       doc/manpages/gnutls_x509_crq_get_extension_by_oid.3,
-       doc/manpages/gnutls_x509_crq_get_extension_data.3,
-       doc/manpages/gnutls_x509_crq_get_extension_info.3,
-       doc/manpages/gnutls_x509_crq_get_key_id.3,
-       doc/manpages/gnutls_x509_crq_get_key_purpose_oid.3,
-       doc/manpages/gnutls_x509_crq_get_key_rsa_raw.3,
-       doc/manpages/gnutls_x509_crq_get_key_usage.3,
-       doc/manpages/gnutls_x509_crq_get_pk_algorithm.3,
-       doc/manpages/gnutls_x509_crq_get_subject_alt_name.3,
-       doc/manpages/gnutls_x509_crq_get_subject_alt_othername_oid.3,
-       doc/manpages/gnutls_x509_crq_get_version.3,
-       doc/manpages/gnutls_x509_crq_import.3,
-       doc/manpages/gnutls_x509_crq_init.3,
-       doc/manpages/gnutls_x509_crq_print.3,
-       doc/manpages/gnutls_x509_crq_privkey_sign.3,
-       doc/manpages/gnutls_x509_crq_set_attribute_by_oid.3,
-       doc/manpages/gnutls_x509_crq_set_basic_constraints.3,
-       doc/manpages/gnutls_x509_crq_set_challenge_password.3,
-       doc/manpages/gnutls_x509_crq_set_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crq_set_key.3,
-       doc/manpages/gnutls_x509_crq_set_key_purpose_oid.3,
-       doc/manpages/gnutls_x509_crq_set_key_rsa_raw.3,
-       doc/manpages/gnutls_x509_crq_set_key_usage.3,
-       doc/manpages/gnutls_x509_crq_set_pubkey.3,
-       doc/manpages/gnutls_x509_crq_set_subject_alt_name.3,
-       doc/manpages/gnutls_x509_crq_set_version.3,
-       doc/manpages/gnutls_x509_crq_sign.3,
-       doc/manpages/gnutls_x509_crq_sign2.3,
-       doc/manpages/gnutls_x509_crq_verify.3,
-       doc/manpages/gnutls_x509_crt_check_hostname.3,
-       doc/manpages/gnutls_x509_crt_check_issuer.3,
-       doc/manpages/gnutls_x509_crt_check_revocation.3,
-       doc/manpages/gnutls_x509_crt_cpy_crl_dist_points.3,
-       doc/manpages/gnutls_x509_crt_deinit.3,
-       doc/manpages/gnutls_x509_crt_export.3,
-       doc/manpages/gnutls_x509_crt_get_activation_time.3,
-       doc/manpages/gnutls_x509_crt_get_authority_info_access.3,
-       doc/manpages/gnutls_x509_crt_get_authority_key_id.3,
-       doc/manpages/gnutls_x509_crt_get_basic_constraints.3,
-       doc/manpages/gnutls_x509_crt_get_ca_status.3,
-       doc/manpages/gnutls_x509_crt_get_crl_dist_points.3,
-       doc/manpages/gnutls_x509_crt_get_dn.3,
-       doc/manpages/gnutls_x509_crt_get_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crt_get_dn_oid.3,
-       doc/manpages/gnutls_x509_crt_get_expiration_time.3,
-       doc/manpages/gnutls_x509_crt_get_extension_by_oid.3,
-       doc/manpages/gnutls_x509_crt_get_extension_data.3,
-       doc/manpages/gnutls_x509_crt_get_extension_info.3,
-       doc/manpages/gnutls_x509_crt_get_extension_oid.3,
-       doc/manpages/gnutls_x509_crt_get_fingerprint.3,
-       doc/manpages/gnutls_x509_crt_get_issuer.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_alt_name.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_alt_name2.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_alt_othername_oid.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_dn.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_dn_oid.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_unique_id.3,
-       doc/manpages/gnutls_x509_crt_get_key_id.3,
-       doc/manpages/gnutls_x509_crt_get_key_purpose_oid.3,
-       doc/manpages/gnutls_x509_crt_get_key_usage.3,
-       doc/manpages/gnutls_x509_crt_get_pk_algorithm.3,
-       doc/manpages/gnutls_x509_crt_get_pk_dsa_raw.3,
-       doc/manpages/gnutls_x509_crt_get_pk_rsa_raw.3,
-       doc/manpages/gnutls_x509_crt_get_preferred_hash_algorithm.3,
-       doc/manpages/gnutls_x509_crt_get_proxy.3,
-       doc/manpages/gnutls_x509_crt_get_raw_dn.3,
-       doc/manpages/gnutls_x509_crt_get_raw_issuer_dn.3,
-       doc/manpages/gnutls_x509_crt_get_serial.3,
-       doc/manpages/gnutls_x509_crt_get_signature.3,
-       doc/manpages/gnutls_x509_crt_get_signature_algorithm.3,
-       doc/manpages/gnutls_x509_crt_get_subject.3,
-       doc/manpages/gnutls_x509_crt_get_subject_alt_name.3,
-       doc/manpages/gnutls_x509_crt_get_subject_alt_name2.3,
-       doc/manpages/gnutls_x509_crt_get_subject_alt_othername_oid.3,
-       doc/manpages/gnutls_x509_crt_get_subject_key_id.3,
-       doc/manpages/gnutls_x509_crt_get_subject_unique_id.3,
-       doc/manpages/gnutls_x509_crt_get_verify_algorithm.3,
-       doc/manpages/gnutls_x509_crt_get_version.3,
-       doc/manpages/gnutls_x509_crt_import.3,
-       doc/manpages/gnutls_x509_crt_import_pkcs11.3,
-       doc/manpages/gnutls_x509_crt_import_pkcs11_url.3,
-       doc/manpages/gnutls_x509_crt_init.3,
-       doc/manpages/gnutls_x509_crt_list_import.3,
-       doc/manpages/gnutls_x509_crt_list_import2.3,
-       doc/manpages/gnutls_x509_crt_list_import_pkcs11.3,
-       doc/manpages/gnutls_x509_crt_list_verify.3,
-       doc/manpages/gnutls_x509_crt_print.3,
-       doc/manpages/gnutls_x509_crt_privkey_sign.3,
-       doc/manpages/gnutls_x509_crt_set_activation_time.3,
-       doc/manpages/gnutls_x509_crt_set_authority_key_id.3,
-       doc/manpages/gnutls_x509_crt_set_basic_constraints.3,
-       doc/manpages/gnutls_x509_crt_set_ca_status.3,
-       doc/manpages/gnutls_x509_crt_set_crl_dist_points.3,
-       doc/manpages/gnutls_x509_crt_set_crl_dist_points2.3,
-       doc/manpages/gnutls_x509_crt_set_crq.3,
-       doc/manpages/gnutls_x509_crt_set_crq_extensions.3,
-       doc/manpages/gnutls_x509_crt_set_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crt_set_expiration_time.3,
-       doc/manpages/gnutls_x509_crt_set_extension_by_oid.3,
-       doc/manpages/gnutls_x509_crt_set_issuer_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crt_set_key.3,
-       doc/manpages/gnutls_x509_crt_set_key_purpose_oid.3,
-       doc/manpages/gnutls_x509_crt_set_key_usage.3,
-       doc/manpages/gnutls_x509_crt_set_proxy.3,
-       doc/manpages/gnutls_x509_crt_set_proxy_dn.3,
-       doc/manpages/gnutls_x509_crt_set_pubkey.3,
-       doc/manpages/gnutls_x509_crt_set_serial.3,
-       doc/manpages/gnutls_x509_crt_set_subject_alt_name.3,
-       doc/manpages/gnutls_x509_crt_set_subject_alternative_name.3,
-       doc/manpages/gnutls_x509_crt_set_subject_key_id.3,
-       doc/manpages/gnutls_x509_crt_set_version.3,
-       doc/manpages/gnutls_x509_crt_sign.3,
-       doc/manpages/gnutls_x509_crt_sign2.3,
-       doc/manpages/gnutls_x509_crt_verify.3,
-       doc/manpages/gnutls_x509_crt_verify_data.3,
-       doc/manpages/gnutls_x509_crt_verify_hash.3,
-       doc/manpages/gnutls_x509_dn_deinit.3,
-       doc/manpages/gnutls_x509_dn_export.3,
-       doc/manpages/gnutls_x509_dn_get_rdn_ava.3,
-       doc/manpages/gnutls_x509_dn_import.3,
-       doc/manpages/gnutls_x509_dn_init.3,
-       doc/manpages/gnutls_x509_dn_oid_known.3,
-       doc/manpages/gnutls_x509_privkey_cpy.3,
-       doc/manpages/gnutls_x509_privkey_deinit.3,
-       doc/manpages/gnutls_x509_privkey_export.3,
-       doc/manpages/gnutls_x509_privkey_export_dsa_raw.3,
-       doc/manpages/gnutls_x509_privkey_export_ecc_raw.3,
-       doc/manpages/gnutls_x509_privkey_export_pkcs8.3,
-       doc/manpages/gnutls_x509_privkey_export_rsa_raw.3,
-       doc/manpages/gnutls_x509_privkey_export_rsa_raw2.3,
-       doc/manpages/gnutls_x509_privkey_fix.3,
-       doc/manpages/gnutls_x509_privkey_generate.3,
-       doc/manpages/gnutls_x509_privkey_get_key_id.3,
-       doc/manpages/gnutls_x509_privkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_x509_privkey_import.3,
-       doc/manpages/gnutls_x509_privkey_import_dsa_raw.3,
-       doc/manpages/gnutls_x509_privkey_import_ecc_raw.3,
-       doc/manpages/gnutls_x509_privkey_import_pkcs8.3,
-       doc/manpages/gnutls_x509_privkey_import_rsa_raw.3,
-       doc/manpages/gnutls_x509_privkey_import_rsa_raw2.3,
-       doc/manpages/gnutls_x509_privkey_init.3,
-       doc/manpages/gnutls_x509_privkey_sec_param.3,
-       doc/manpages/gnutls_x509_privkey_sign_data.3,
-       doc/manpages/gnutls_x509_privkey_sign_hash.3,
-       doc/manpages/gnutls_x509_privkey_verify_params.3,
-       doc/manpages/gnutls_x509_rdn_get.3,
-       doc/manpages/gnutls_x509_rdn_get_by_oid.3,
-       doc/manpages/gnutls_x509_rdn_get_oid.3,
-       doc/manpages/gnutls_x509_trust_list_add_cas.3,
-       doc/manpages/gnutls_x509_trust_list_add_crls.3,
-       doc/manpages/gnutls_x509_trust_list_add_named_crt.3,
-       doc/manpages/gnutls_x509_trust_list_deinit.3,
-       doc/manpages/gnutls_x509_trust_list_get_issuer.3,
-       doc/manpages/gnutls_x509_trust_list_init.3,
-       doc/manpages/gnutls_x509_trust_list_verify_crt.3,
-       doc/manpages/gnutls_x509_trust_list_verify_named_crt.3: manpages
-       don't need to be in the repository.
-
-2011-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am, tests/cipher-test.c, tests/slow/Makefile.am,
-       tests/slow/cipher-test.c: cipher-test is now run without valgrind
-
-2011-11-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.h: removed superfluous check.
-
-2011-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, tests/suite/chain: Fix syntax-check nits.
-
-2011-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
-       doc/scripts/mytexi2latex: documentation updates.
-
-2011-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: use emph instead of cite since cite produces bad
-       output in texi2html.
-
-2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth2.texi, doc/scripts/mytexi2latex: updates in
-       sectioning. Subheading was used instead of subsection in few cases.
-
-2011-11-25  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/system/documentation/output.scm: guile: Fix the
-       (unused) `output-procedure-texi-documentation-from-c-file'.  Reported by Mike Gran <spk121@yahoo.com>.
-
-2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk: copy images to html_node
-
-2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth2.texi: added missing node
-
-2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi,
-       doc/cha-internals.texi, doc/cha-intro-tls.texi,
-       doc/cha-library.texi, doc/cha-programs.texi, doc/scripts/gdoc,
-       doc/scripts/mytexi2latex: updates in texi and tex documentation.
-
-2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/Makefile.am, lib/opencdk/dummy.c, lib/opencdk/main.h: 
-       dropped unneeded function.
-
-2011-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, doc/Makefile.am, doc/cha-functions.texi,
-       doc/cha-gtls-app.texi, doc/gnutls.texi, doc/scripts/gdoc,
-       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/openpgp.h: Separated API reference to header
-       files in the texi manual.
-
-2011-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-examples.texi: removed text for tcp functions.
-
-2011-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, cfg.mk, doc/manpages/Makefile.am,
-       doc/manpages/gnutls_alert_get.3,
-       doc/manpages/gnutls_alert_get_name.3,
-       doc/manpages/gnutls_alert_get_strname.3,
-       doc/manpages/gnutls_alert_send.3,
-       doc/manpages/gnutls_alert_send_appropriate.3,
-       doc/manpages/gnutls_anon_allocate_client_credentials.3,
-       doc/manpages/gnutls_anon_allocate_server_credentials.3,
-       doc/manpages/gnutls_anon_free_client_credentials.3,
-       doc/manpages/gnutls_anon_free_server_credentials.3,
-       doc/manpages/gnutls_anon_set_params_function.3,
-       doc/manpages/gnutls_anon_set_server_dh_params.3,
-       doc/manpages/gnutls_anon_set_server_params_function.3,
-       doc/manpages/gnutls_auth_client_get_type.3,
-       doc/manpages/gnutls_auth_get_type.3,
-       doc/manpages/gnutls_auth_server_get_type.3,
-       doc/manpages/gnutls_bye.3,
-       doc/manpages/gnutls_certificate_activation_time_peers.3,
-       doc/manpages/gnutls_certificate_allocate_credentials.3,
-       doc/manpages/gnutls_certificate_client_get_request_status.3,
-       doc/manpages/gnutls_certificate_expiration_time_peers.3,
-       doc/manpages/gnutls_certificate_free_ca_names.3,
-       doc/manpages/gnutls_certificate_free_cas.3,
-       doc/manpages/gnutls_certificate_free_credentials.3,
-       doc/manpages/gnutls_certificate_free_crls.3,
-       doc/manpages/gnutls_certificate_free_keys.3,
-       doc/manpages/gnutls_certificate_get_issuer.3,
-       doc/manpages/gnutls_certificate_get_openpgp_keyring.3,
-       doc/manpages/gnutls_certificate_get_ours.3,
-       doc/manpages/gnutls_certificate_get_peers.3,
-       doc/manpages/gnutls_certificate_send_x509_rdn_sequence.3,
-       doc/manpages/gnutls_certificate_server_set_request.3,
-       doc/manpages/gnutls_certificate_set_dh_params.3,
-       doc/manpages/gnutls_certificate_set_key.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key_file.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key_file2.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key_mem.3,
-       doc/manpages/gnutls_certificate_set_openpgp_key_mem2.3,
-       doc/manpages/gnutls_certificate_set_params_function.3,
-       doc/manpages/gnutls_certificate_set_rsa_export_params.3,
-       doc/manpages/gnutls_certificate_set_verify_flags.3,
-       doc/manpages/gnutls_certificate_set_verify_function.3,
-       doc/manpages/gnutls_certificate_set_verify_limits.3,
-       doc/manpages/gnutls_certificate_set_x509_crl.3,
-       doc/manpages/gnutls_certificate_set_x509_crl_file.3,
-       doc/manpages/gnutls_certificate_set_x509_crl_mem.3,
-       doc/manpages/gnutls_certificate_set_x509_key.3,
-       doc/manpages/gnutls_certificate_set_x509_key_file.3,
-       doc/manpages/gnutls_certificate_set_x509_key_mem.3,
-       doc/manpages/gnutls_certificate_set_x509_trust.3,
-       doc/manpages/gnutls_certificate_set_x509_trust_file.3,
-       doc/manpages/gnutls_certificate_set_x509_trust_mem.3,
-       doc/manpages/gnutls_certificate_type_get.3,
-       doc/manpages/gnutls_certificate_type_get_id.3,
-       doc/manpages/gnutls_certificate_type_get_name.3,
-       doc/manpages/gnutls_certificate_type_list.3,
-       doc/manpages/gnutls_certificate_type_set_priority.3,
-       doc/manpages/gnutls_certificate_verify_peers2.3,
-       doc/manpages/gnutls_check_version.3,
-       doc/manpages/gnutls_cipher_add_auth.3,
-       doc/manpages/gnutls_cipher_decrypt.3,
-       doc/manpages/gnutls_cipher_decrypt2.3,
-       doc/manpages/gnutls_cipher_deinit.3,
-       doc/manpages/gnutls_cipher_encrypt.3,
-       doc/manpages/gnutls_cipher_encrypt2.3,
-       doc/manpages/gnutls_cipher_get.3,
-       doc/manpages/gnutls_cipher_get_block_size.3,
-       doc/manpages/gnutls_cipher_get_id.3,
-       doc/manpages/gnutls_cipher_get_key_size.3,
-       doc/manpages/gnutls_cipher_get_name.3,
-       doc/manpages/gnutls_cipher_init.3,
-       doc/manpages/gnutls_cipher_list.3,
-       doc/manpages/gnutls_cipher_set_iv.3,
-       doc/manpages/gnutls_cipher_set_priority.3,
-       doc/manpages/gnutls_cipher_suite_get_name.3,
-       doc/manpages/gnutls_cipher_suite_info.3,
-       doc/manpages/gnutls_cipher_tag.3,
-       doc/manpages/gnutls_compression_get.3,
-       doc/manpages/gnutls_compression_get_id.3,
-       doc/manpages/gnutls_compression_get_name.3,
-       doc/manpages/gnutls_compression_list.3,
-       doc/manpages/gnutls_compression_set_priority.3,
-       doc/manpages/gnutls_credentials_clear.3,
-       doc/manpages/gnutls_credentials_set.3,
-       doc/manpages/gnutls_db_check_entry.3,
-       doc/manpages/gnutls_db_get_ptr.3,
-       doc/manpages/gnutls_db_remove_session.3,
-       doc/manpages/gnutls_db_set_cache_expiration.3,
-       doc/manpages/gnutls_db_set_ptr.3,
-       doc/manpages/gnutls_db_set_remove_function.3,
-       doc/manpages/gnutls_db_set_retrieve_function.3,
-       doc/manpages/gnutls_db_set_store_function.3,
-       doc/manpages/gnutls_deinit.3, doc/manpages/gnutls_dh_get_group.3,
-       doc/manpages/gnutls_dh_get_peers_public_bits.3,
-       doc/manpages/gnutls_dh_get_prime_bits.3,
-       doc/manpages/gnutls_dh_get_pubkey.3,
-       doc/manpages/gnutls_dh_get_secret_bits.3,
-       doc/manpages/gnutls_dh_params_cpy.3,
-       doc/manpages/gnutls_dh_params_deinit.3,
-       doc/manpages/gnutls_dh_params_export_pkcs3.3,
-       doc/manpages/gnutls_dh_params_export_raw.3,
-       doc/manpages/gnutls_dh_params_generate2.3,
-       doc/manpages/gnutls_dh_params_import_pkcs3.3,
-       doc/manpages/gnutls_dh_params_import_raw.3,
-       doc/manpages/gnutls_dh_params_init.3,
-       doc/manpages/gnutls_dh_set_prime_bits.3,
-       doc/manpages/gnutls_dtls_cookie_send.3,
-       doc/manpages/gnutls_dtls_cookie_verify.3,
-       doc/manpages/gnutls_dtls_get_data_mtu.3,
-       doc/manpages/gnutls_dtls_get_mtu.3,
-       doc/manpages/gnutls_dtls_prestate_set.3,
-       doc/manpages/gnutls_dtls_set_mtu.3,
-       doc/manpages/gnutls_dtls_set_timeouts.3,
-       doc/manpages/gnutls_ecc_curve_get.3,
-       doc/manpages/gnutls_ecc_curve_get_name.3,
-       doc/manpages/gnutls_ecc_curve_get_size.3,
-       doc/manpages/gnutls_error_is_fatal.3,
-       doc/manpages/gnutls_error_to_alert.3,
-       doc/manpages/gnutls_fingerprint.3,
-       doc/manpages/gnutls_global_deinit.3,
-       doc/manpages/gnutls_global_init.3,
-       doc/manpages/gnutls_global_set_audit_log_function.3,
-       doc/manpages/gnutls_global_set_log_function.3,
-       doc/manpages/gnutls_global_set_log_level.3,
-       doc/manpages/gnutls_global_set_mem_functions.3,
-       doc/manpages/gnutls_global_set_mutex.3,
-       doc/manpages/gnutls_global_set_time_function.3,
-       doc/manpages/gnutls_handshake.3,
-       doc/manpages/gnutls_handshake_get_last_in.3,
-       doc/manpages/gnutls_handshake_get_last_out.3,
-       doc/manpages/gnutls_handshake_set_max_packet_length.3,
-       doc/manpages/gnutls_handshake_set_post_client_hello_function.3,
-       doc/manpages/gnutls_handshake_set_private_extensions.3,
-       doc/manpages/gnutls_hash.3, doc/manpages/gnutls_hash_deinit.3,
-       doc/manpages/gnutls_hash_fast.3,
-       doc/manpages/gnutls_hash_get_len.3,
-       doc/manpages/gnutls_hash_init.3, doc/manpages/gnutls_hash_output.3,
-       doc/manpages/gnutls_hex2bin.3, doc/manpages/gnutls_hex_decode.3,
-       doc/manpages/gnutls_hex_encode.3, doc/manpages/gnutls_hmac.3,
-       doc/manpages/gnutls_hmac_deinit.3, doc/manpages/gnutls_hmac_fast.3,
-       doc/manpages/gnutls_hmac_get_len.3,
-       doc/manpages/gnutls_hmac_init.3, doc/manpages/gnutls_hmac_output.3,
-       doc/manpages/gnutls_init.3, doc/manpages/gnutls_key_generate.3,
-       doc/manpages/gnutls_kx_get.3, doc/manpages/gnutls_kx_get_id.3,
-       doc/manpages/gnutls_kx_get_name.3, doc/manpages/gnutls_kx_list.3,
-       doc/manpages/gnutls_kx_set_priority.3,
-       doc/manpages/gnutls_mac_get.3, doc/manpages/gnutls_mac_get_id.3,
-       doc/manpages/gnutls_mac_get_key_size.3,
-       doc/manpages/gnutls_mac_get_name.3, doc/manpages/gnutls_mac_list.3,
-       doc/manpages/gnutls_mac_set_priority.3,
-       doc/manpages/gnutls_openpgp_crt_check_hostname.3,
-       doc/manpages/gnutls_openpgp_crt_deinit.3,
-       doc/manpages/gnutls_openpgp_crt_export.3,
-       doc/manpages/gnutls_openpgp_crt_get_auth_subkey.3,
-       doc/manpages/gnutls_openpgp_crt_get_creation_time.3,
-       doc/manpages/gnutls_openpgp_crt_get_expiration_time.3,
-       doc/manpages/gnutls_openpgp_crt_get_fingerprint.3,
-       doc/manpages/gnutls_openpgp_crt_get_key_id.3,
-       doc/manpages/gnutls_openpgp_crt_get_key_usage.3,
-       doc/manpages/gnutls_openpgp_crt_get_name.3,
-       doc/manpages/gnutls_openpgp_crt_get_pk_algorithm.3,
-       doc/manpages/gnutls_openpgp_crt_get_pk_dsa_raw.3,
-       doc/manpages/gnutls_openpgp_crt_get_pk_rsa_raw.3,
-       doc/manpages/gnutls_openpgp_crt_get_preferred_key_id.3,
-       doc/manpages/gnutls_openpgp_crt_get_revoked_status.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_count.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_creation_time.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_expiration_time.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_fingerprint.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_id.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_idx.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_algorithm.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_revoked_status.3,
-       doc/manpages/gnutls_openpgp_crt_get_subkey_usage.3,
-       doc/manpages/gnutls_openpgp_crt_get_version.3,
-       doc/manpages/gnutls_openpgp_crt_import.3,
-       doc/manpages/gnutls_openpgp_crt_init.3,
-       doc/manpages/gnutls_openpgp_crt_print.3,
-       doc/manpages/gnutls_openpgp_crt_set_preferred_key_id.3,
-       doc/manpages/gnutls_openpgp_crt_verify_ring.3,
-       doc/manpages/gnutls_openpgp_crt_verify_self.3,
-       doc/manpages/gnutls_openpgp_keyring_check_id.3,
-       doc/manpages/gnutls_openpgp_keyring_deinit.3,
-       doc/manpages/gnutls_openpgp_keyring_get_crt.3,
-       doc/manpages/gnutls_openpgp_keyring_get_crt_count.3,
-       doc/manpages/gnutls_openpgp_keyring_import.3,
-       doc/manpages/gnutls_openpgp_keyring_init.3,
-       doc/manpages/gnutls_openpgp_privkey_deinit.3,
-       doc/manpages/gnutls_openpgp_privkey_export.3,
-       doc/manpages/gnutls_openpgp_privkey_export_dsa_raw.3,
-       doc/manpages/gnutls_openpgp_privkey_export_rsa_raw.3,
-       doc/manpages/gnutls_openpgp_privkey_export_subkey_dsa_raw.3,
-       doc/manpages/gnutls_openpgp_privkey_export_subkey_rsa_raw.3,
-       doc/manpages/gnutls_openpgp_privkey_get_fingerprint.3,
-       doc/manpages/gnutls_openpgp_privkey_get_key_id.3,
-       doc/manpages/gnutls_openpgp_privkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_openpgp_privkey_get_preferred_key_id.3,
-       doc/manpages/gnutls_openpgp_privkey_get_revoked_status.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_count.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_creation_time.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_fingerprint.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_id.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_idx.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_pk_algorithm.3,
-       doc/manpages/gnutls_openpgp_privkey_get_subkey_revoked_status.3,
-       doc/manpages/gnutls_openpgp_privkey_import.3,
-       doc/manpages/gnutls_openpgp_privkey_init.3,
-       doc/manpages/gnutls_openpgp_privkey_sec_param.3,
-       doc/manpages/gnutls_openpgp_privkey_set_preferred_key_id.3,
-       doc/manpages/gnutls_openpgp_privkey_sign_hash.3,
-       doc/manpages/gnutls_openpgp_send_cert.3,
-       doc/manpages/gnutls_openpgp_set_recv_key_function.3,
-       doc/manpages/gnutls_pcert_deinit.3,
-       doc/manpages/gnutls_pcert_import_openpgp.3,
-       doc/manpages/gnutls_pcert_import_openpgp_raw.3,
-       doc/manpages/gnutls_pcert_import_x509.3,
-       doc/manpages/gnutls_pcert_import_x509_raw.3,
-       doc/manpages/gnutls_pcert_list_import_x509_raw.3,
-       doc/manpages/gnutls_pem_base64_decode.3,
-       doc/manpages/gnutls_pem_base64_decode_alloc.3,
-       doc/manpages/gnutls_pem_base64_encode.3,
-       doc/manpages/gnutls_pem_base64_encode_alloc.3,
-       doc/manpages/gnutls_perror.3,
-       doc/manpages/gnutls_pk_algorithm_get_name.3,
-       doc/manpages/gnutls_pk_bits_to_sec_param.3,
-       doc/manpages/gnutls_pk_get_id.3, doc/manpages/gnutls_pk_get_name.3,
-       doc/manpages/gnutls_pk_list.3,
-       doc/manpages/gnutls_pkcs11_add_provider.3,
-       doc/manpages/gnutls_pkcs11_copy_secret_key.3,
-       doc/manpages/gnutls_pkcs11_copy_x509_crt.3,
-       doc/manpages/gnutls_pkcs11_copy_x509_privkey.3,
-       doc/manpages/gnutls_pkcs11_deinit.3,
-       doc/manpages/gnutls_pkcs11_delete_url.3,
-       doc/manpages/gnutls_pkcs11_init.3,
-       doc/manpages/gnutls_pkcs11_obj_deinit.3,
-       doc/manpages/gnutls_pkcs11_obj_export.3,
-       doc/manpages/gnutls_pkcs11_obj_export_url.3,
-       doc/manpages/gnutls_pkcs11_obj_get_info.3,
-       doc/manpages/gnutls_pkcs11_obj_get_type.3,
-       doc/manpages/gnutls_pkcs11_obj_import_url.3,
-       doc/manpages/gnutls_pkcs11_obj_init.3,
-       doc/manpages/gnutls_pkcs11_obj_list_import_url.3,
-       doc/manpages/gnutls_pkcs11_privkey_deinit.3,
-       doc/manpages/gnutls_pkcs11_privkey_export_url.3,
-       doc/manpages/gnutls_pkcs11_privkey_generate.3,
-       doc/manpages/gnutls_pkcs11_privkey_get_info.3,
-       doc/manpages/gnutls_pkcs11_privkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_pkcs11_privkey_import_url.3,
-       doc/manpages/gnutls_pkcs11_privkey_init.3,
-       doc/manpages/gnutls_pkcs11_set_pin_function.3,
-       doc/manpages/gnutls_pkcs11_set_token_function.3,
-       doc/manpages/gnutls_pkcs11_token_get_flags.3,
-       doc/manpages/gnutls_pkcs11_token_get_info.3,
-       doc/manpages/gnutls_pkcs11_token_get_mechanism.3,
-       doc/manpages/gnutls_pkcs11_token_get_url.3,
-       doc/manpages/gnutls_pkcs11_token_init.3,
-       doc/manpages/gnutls_pkcs11_token_set_pin.3,
-       doc/manpages/gnutls_pkcs11_type_get_name.3,
-       doc/manpages/gnutls_pkcs12_bag_decrypt.3,
-       doc/manpages/gnutls_pkcs12_bag_deinit.3,
-       doc/manpages/gnutls_pkcs12_bag_encrypt.3,
-       doc/manpages/gnutls_pkcs12_bag_get_count.3,
-       doc/manpages/gnutls_pkcs12_bag_get_data.3,
-       doc/manpages/gnutls_pkcs12_bag_get_friendly_name.3,
-       doc/manpages/gnutls_pkcs12_bag_get_key_id.3,
-       doc/manpages/gnutls_pkcs12_bag_get_type.3,
-       doc/manpages/gnutls_pkcs12_bag_init.3,
-       doc/manpages/gnutls_pkcs12_bag_set_crl.3,
-       doc/manpages/gnutls_pkcs12_bag_set_crt.3,
-       doc/manpages/gnutls_pkcs12_bag_set_data.3,
-       doc/manpages/gnutls_pkcs12_bag_set_friendly_name.3,
-       doc/manpages/gnutls_pkcs12_bag_set_key_id.3,
-       doc/manpages/gnutls_pkcs12_deinit.3,
-       doc/manpages/gnutls_pkcs12_export.3,
-       doc/manpages/gnutls_pkcs12_generate_mac.3,
-       doc/manpages/gnutls_pkcs12_get_bag.3,
-       doc/manpages/gnutls_pkcs12_import.3,
-       doc/manpages/gnutls_pkcs12_init.3,
-       doc/manpages/gnutls_pkcs12_set_bag.3,
-       doc/manpages/gnutls_pkcs12_verify_mac.3,
-       doc/manpages/gnutls_pkcs7_deinit.3,
-       doc/manpages/gnutls_pkcs7_delete_crl.3,
-       doc/manpages/gnutls_pkcs7_delete_crt.3,
-       doc/manpages/gnutls_pkcs7_export.3,
-       doc/manpages/gnutls_pkcs7_get_crl_count.3,
-       doc/manpages/gnutls_pkcs7_get_crl_raw.3,
-       doc/manpages/gnutls_pkcs7_get_crt_count.3,
-       doc/manpages/gnutls_pkcs7_get_crt_raw.3,
-       doc/manpages/gnutls_pkcs7_import.3,
-       doc/manpages/gnutls_pkcs7_init.3,
-       doc/manpages/gnutls_pkcs7_set_crl.3,
-       doc/manpages/gnutls_pkcs7_set_crl_raw.3,
-       doc/manpages/gnutls_pkcs7_set_crt.3,
-       doc/manpages/gnutls_pkcs7_set_crt_raw.3, doc/manpages/gnutls_prf.3,
-       doc/manpages/gnutls_prf_raw.3,
-       doc/manpages/gnutls_priority_deinit.3,
-       doc/manpages/gnutls_priority_init.3,
-       doc/manpages/gnutls_priority_set.3,
-       doc/manpages/gnutls_priority_set_direct.3,
-       doc/manpages/gnutls_privkey_decrypt_data.3,
-       doc/manpages/gnutls_privkey_deinit.3,
-       doc/manpages/gnutls_privkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_privkey_get_type.3,
-       doc/manpages/gnutls_privkey_import_ext.3,
-       doc/manpages/gnutls_privkey_import_openpgp.3,
-       doc/manpages/gnutls_privkey_import_pkcs11.3,
-       doc/manpages/gnutls_privkey_import_x509.3,
-       doc/manpages/gnutls_privkey_init.3,
-       doc/manpages/gnutls_privkey_sign_data.3,
-       doc/manpages/gnutls_privkey_sign_hash.3,
-       doc/manpages/gnutls_protocol_get_id.3,
-       doc/manpages/gnutls_protocol_get_name.3,
-       doc/manpages/gnutls_protocol_get_version.3,
-       doc/manpages/gnutls_protocol_list.3,
-       doc/manpages/gnutls_protocol_set_priority.3,
-       doc/manpages/gnutls_psk_allocate_client_credentials.3,
-       doc/manpages/gnutls_psk_allocate_server_credentials.3,
-       doc/manpages/gnutls_psk_client_get_hint.3,
-       doc/manpages/gnutls_psk_free_client_credentials.3,
-       doc/manpages/gnutls_psk_free_server_credentials.3,
-       doc/manpages/gnutls_psk_server_get_username.3,
-       doc/manpages/gnutls_psk_set_client_credentials.3,
-       doc/manpages/gnutls_psk_set_params_function.3,
-       doc/manpages/gnutls_psk_set_server_credentials_file.3,
-       doc/manpages/gnutls_psk_set_server_credentials_hint.3,
-       doc/manpages/gnutls_psk_set_server_dh_params.3,
-       doc/manpages/gnutls_psk_set_server_params_function.3,
-       doc/manpages/gnutls_pubkey_deinit.3,
-       doc/manpages/gnutls_pubkey_export.3,
-       doc/manpages/gnutls_pubkey_get_key_id.3,
-       doc/manpages/gnutls_pubkey_get_key_usage.3,
-       doc/manpages/gnutls_pubkey_get_openpgp_key_id.3,
-       doc/manpages/gnutls_pubkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_pubkey_get_pk_dsa_raw.3,
-       doc/manpages/gnutls_pubkey_get_pk_ecc_raw.3,
-       doc/manpages/gnutls_pubkey_get_pk_ecc_x962.3,
-       doc/manpages/gnutls_pubkey_get_pk_rsa_raw.3,
-       doc/manpages/gnutls_pubkey_get_preferred_hash_algorithm.3,
-       doc/manpages/gnutls_pubkey_get_verify_algorithm.3,
-       doc/manpages/gnutls_pubkey_import.3,
-       doc/manpages/gnutls_pubkey_import_dsa_raw.3,
-       doc/manpages/gnutls_pubkey_import_ecc_raw.3,
-       doc/manpages/gnutls_pubkey_import_ecc_x962.3,
-       doc/manpages/gnutls_pubkey_import_openpgp.3,
-       doc/manpages/gnutls_pubkey_import_pkcs11.3,
-       doc/manpages/gnutls_pubkey_import_pkcs11_url.3,
-       doc/manpages/gnutls_pubkey_import_privkey.3,
-       doc/manpages/gnutls_pubkey_import_rsa_raw.3,
-       doc/manpages/gnutls_pubkey_import_x509.3,
-       doc/manpages/gnutls_pubkey_init.3,
-       doc/manpages/gnutls_pubkey_set_key_usage.3,
-       doc/manpages/gnutls_pubkey_verify_data.3,
-       doc/manpages/gnutls_pubkey_verify_data2.3,
-       doc/manpages/gnutls_pubkey_verify_hash.3,
-       doc/manpages/gnutls_record_check_pending.3,
-       doc/manpages/gnutls_record_disable_padding.3,
-       doc/manpages/gnutls_record_get_direction.3,
-       doc/manpages/gnutls_record_get_discarded.3,
-       doc/manpages/gnutls_record_get_max_size.3,
-       doc/manpages/gnutls_record_recv.3,
-       doc/manpages/gnutls_record_recv_seq.3,
-       doc/manpages/gnutls_record_send.3,
-       doc/manpages/gnutls_record_set_max_size.3,
-       doc/manpages/gnutls_rehandshake.3, doc/manpages/gnutls_rnd.3,
-       doc/manpages/gnutls_rsa_export_get_modulus_bits.3,
-       doc/manpages/gnutls_rsa_export_get_pubkey.3,
-       doc/manpages/gnutls_rsa_params_cpy.3,
-       doc/manpages/gnutls_rsa_params_deinit.3,
-       doc/manpages/gnutls_rsa_params_export_pkcs1.3,
-       doc/manpages/gnutls_rsa_params_export_raw.3,
-       doc/manpages/gnutls_rsa_params_generate2.3,
-       doc/manpages/gnutls_rsa_params_import_pkcs1.3,
-       doc/manpages/gnutls_rsa_params_import_raw.3,
-       doc/manpages/gnutls_rsa_params_init.3,
-       doc/manpages/gnutls_safe_renegotiation_status.3,
-       doc/manpages/gnutls_sec_param_get_name.3,
-       doc/manpages/gnutls_sec_param_to_pk_bits.3,
-       doc/manpages/gnutls_server_name_get.3,
-       doc/manpages/gnutls_server_name_set.3,
-       doc/manpages/gnutls_session_channel_binding.3,
-       doc/manpages/gnutls_session_enable_compatibility_mode.3,
-       doc/manpages/gnutls_session_get_data.3,
-       doc/manpages/gnutls_session_get_data2.3,
-       doc/manpages/gnutls_session_get_id.3,
-       doc/manpages/gnutls_session_get_ptr.3,
-       doc/manpages/gnutls_session_is_resumed.3,
-       doc/manpages/gnutls_session_set_data.3,
-       doc/manpages/gnutls_session_set_ptr.3,
-       doc/manpages/gnutls_session_ticket_enable_client.3,
-       doc/manpages/gnutls_session_ticket_enable_server.3,
-       doc/manpages/gnutls_session_ticket_key_generate.3,
-       doc/manpages/gnutls_set_default_export_priority.3,
-       doc/manpages/gnutls_set_default_priority.3,
-       doc/manpages/gnutls_sign_algorithm_get_requested.3,
-       doc/manpages/gnutls_sign_callback_get.3,
-       doc/manpages/gnutls_sign_callback_set.3,
-       doc/manpages/gnutls_sign_get_id.3,
-       doc/manpages/gnutls_sign_get_name.3,
-       doc/manpages/gnutls_sign_list.3,
-       doc/manpages/gnutls_srp_allocate_client_credentials.3,
-       doc/manpages/gnutls_srp_allocate_server_credentials.3,
-       doc/manpages/gnutls_srp_base64_decode.3,
-       doc/manpages/gnutls_srp_base64_decode_alloc.3,
-       doc/manpages/gnutls_srp_base64_encode.3,
-       doc/manpages/gnutls_srp_base64_encode_alloc.3,
-       doc/manpages/gnutls_srp_free_client_credentials.3,
-       doc/manpages/gnutls_srp_free_server_credentials.3,
-       doc/manpages/gnutls_srp_server_get_username.3,
-       doc/manpages/gnutls_srp_set_client_credentials.3,
-       doc/manpages/gnutls_srp_set_prime_bits.3,
-       doc/manpages/gnutls_srp_set_server_credentials_file.3,
-       doc/manpages/gnutls_srp_verifier.3, doc/manpages/gnutls_strerror.3,
-       doc/manpages/gnutls_strerror_name.3,
-       doc/manpages/gnutls_supplemental_get_name.3,
-       doc/manpages/gnutls_transport_get_ptr.3,
-       doc/manpages/gnutls_transport_get_ptr2.3,
-       doc/manpages/gnutls_transport_set_errno.3,
-       doc/manpages/gnutls_transport_set_errno_function.3,
-       doc/manpages/gnutls_transport_set_ptr.3,
-       doc/manpages/gnutls_transport_set_ptr2.3,
-       doc/manpages/gnutls_transport_set_pull_function.3,
-       doc/manpages/gnutls_transport_set_pull_timeout_function.3,
-       doc/manpages/gnutls_transport_set_push_function.3,
-       doc/manpages/gnutls_transport_set_vec_push_function.3,
-       doc/manpages/gnutls_x509_crl_check_issuer.3,
-       doc/manpages/gnutls_x509_crl_deinit.3,
-       doc/manpages/gnutls_x509_crl_export.3,
-       doc/manpages/gnutls_x509_crl_get_authority_key_id.3,
-       doc/manpages/gnutls_x509_crl_get_crt_count.3,
-       doc/manpages/gnutls_x509_crl_get_crt_serial.3,
-       doc/manpages/gnutls_x509_crl_get_dn_oid.3,
-       doc/manpages/gnutls_x509_crl_get_extension_data.3,
-       doc/manpages/gnutls_x509_crl_get_extension_info.3,
-       doc/manpages/gnutls_x509_crl_get_extension_oid.3,
-       doc/manpages/gnutls_x509_crl_get_issuer_dn.3,
-       doc/manpages/gnutls_x509_crl_get_issuer_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crl_get_next_update.3,
-       doc/manpages/gnutls_x509_crl_get_number.3,
-       doc/manpages/gnutls_x509_crl_get_raw_issuer_dn.3,
-       doc/manpages/gnutls_x509_crl_get_signature.3,
-       doc/manpages/gnutls_x509_crl_get_signature_algorithm.3,
-       doc/manpages/gnutls_x509_crl_get_this_update.3,
-       doc/manpages/gnutls_x509_crl_get_version.3,
-       doc/manpages/gnutls_x509_crl_import.3,
-       doc/manpages/gnutls_x509_crl_init.3,
-       doc/manpages/gnutls_x509_crl_list_import.3,
-       doc/manpages/gnutls_x509_crl_list_import2.3,
-       doc/manpages/gnutls_x509_crl_print.3,
-       doc/manpages/gnutls_x509_crl_privkey_sign.3,
-       doc/manpages/gnutls_x509_crl_set_authority_key_id.3,
-       doc/manpages/gnutls_x509_crl_set_crt.3,
-       doc/manpages/gnutls_x509_crl_set_crt_serial.3,
-       doc/manpages/gnutls_x509_crl_set_next_update.3,
-       doc/manpages/gnutls_x509_crl_set_number.3,
-       doc/manpages/gnutls_x509_crl_set_this_update.3,
-       doc/manpages/gnutls_x509_crl_set_version.3,
-       doc/manpages/gnutls_x509_crl_sign.3,
-       doc/manpages/gnutls_x509_crl_sign2.3,
-       doc/manpages/gnutls_x509_crl_verify.3,
-       doc/manpages/gnutls_x509_crq_deinit.3,
-       doc/manpages/gnutls_x509_crq_export.3,
-       doc/manpages/gnutls_x509_crq_get_attribute_by_oid.3,
-       doc/manpages/gnutls_x509_crq_get_attribute_data.3,
-       doc/manpages/gnutls_x509_crq_get_attribute_info.3,
-       doc/manpages/gnutls_x509_crq_get_basic_constraints.3,
-       doc/manpages/gnutls_x509_crq_get_challenge_password.3,
-       doc/manpages/gnutls_x509_crq_get_dn.3,
-       doc/manpages/gnutls_x509_crq_get_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crq_get_dn_oid.3,
-       doc/manpages/gnutls_x509_crq_get_extension_by_oid.3,
-       doc/manpages/gnutls_x509_crq_get_extension_data.3,
-       doc/manpages/gnutls_x509_crq_get_extension_info.3,
-       doc/manpages/gnutls_x509_crq_get_key_id.3,
-       doc/manpages/gnutls_x509_crq_get_key_purpose_oid.3,
-       doc/manpages/gnutls_x509_crq_get_key_rsa_raw.3,
-       doc/manpages/gnutls_x509_crq_get_key_usage.3,
-       doc/manpages/gnutls_x509_crq_get_pk_algorithm.3,
-       doc/manpages/gnutls_x509_crq_get_subject_alt_name.3,
-       doc/manpages/gnutls_x509_crq_get_subject_alt_othername_oid.3,
-       doc/manpages/gnutls_x509_crq_get_version.3,
-       doc/manpages/gnutls_x509_crq_import.3,
-       doc/manpages/gnutls_x509_crq_init.3,
-       doc/manpages/gnutls_x509_crq_print.3,
-       doc/manpages/gnutls_x509_crq_privkey_sign.3,
-       doc/manpages/gnutls_x509_crq_set_attribute_by_oid.3,
-       doc/manpages/gnutls_x509_crq_set_basic_constraints.3,
-       doc/manpages/gnutls_x509_crq_set_challenge_password.3,
-       doc/manpages/gnutls_x509_crq_set_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crq_set_key.3,
-       doc/manpages/gnutls_x509_crq_set_key_purpose_oid.3,
-       doc/manpages/gnutls_x509_crq_set_key_rsa_raw.3,
-       doc/manpages/gnutls_x509_crq_set_key_usage.3,
-       doc/manpages/gnutls_x509_crq_set_pubkey.3,
-       doc/manpages/gnutls_x509_crq_set_subject_alt_name.3,
-       doc/manpages/gnutls_x509_crq_set_version.3,
-       doc/manpages/gnutls_x509_crq_sign.3,
-       doc/manpages/gnutls_x509_crq_sign2.3,
-       doc/manpages/gnutls_x509_crq_verify.3,
-       doc/manpages/gnutls_x509_crt_check_hostname.3,
-       doc/manpages/gnutls_x509_crt_check_issuer.3,
-       doc/manpages/gnutls_x509_crt_check_revocation.3,
-       doc/manpages/gnutls_x509_crt_cpy_crl_dist_points.3,
-       doc/manpages/gnutls_x509_crt_deinit.3,
-       doc/manpages/gnutls_x509_crt_export.3,
-       doc/manpages/gnutls_x509_crt_get_activation_time.3,
-       doc/manpages/gnutls_x509_crt_get_authority_info_access.3,
-       doc/manpages/gnutls_x509_crt_get_authority_key_id.3,
-       doc/manpages/gnutls_x509_crt_get_basic_constraints.3,
-       doc/manpages/gnutls_x509_crt_get_ca_status.3,
-       doc/manpages/gnutls_x509_crt_get_crl_dist_points.3,
-       doc/manpages/gnutls_x509_crt_get_dn.3,
-       doc/manpages/gnutls_x509_crt_get_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crt_get_dn_oid.3,
-       doc/manpages/gnutls_x509_crt_get_expiration_time.3,
-       doc/manpages/gnutls_x509_crt_get_extension_by_oid.3,
-       doc/manpages/gnutls_x509_crt_get_extension_data.3,
-       doc/manpages/gnutls_x509_crt_get_extension_info.3,
-       doc/manpages/gnutls_x509_crt_get_extension_oid.3,
-       doc/manpages/gnutls_x509_crt_get_fingerprint.3,
-       doc/manpages/gnutls_x509_crt_get_issuer.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_alt_name.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_alt_name2.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_alt_othername_oid.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_dn.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_dn_oid.3,
-       doc/manpages/gnutls_x509_crt_get_issuer_unique_id.3,
-       doc/manpages/gnutls_x509_crt_get_key_id.3,
-       doc/manpages/gnutls_x509_crt_get_key_purpose_oid.3,
-       doc/manpages/gnutls_x509_crt_get_key_usage.3,
-       doc/manpages/gnutls_x509_crt_get_pk_algorithm.3,
-       doc/manpages/gnutls_x509_crt_get_pk_dsa_raw.3,
-       doc/manpages/gnutls_x509_crt_get_pk_rsa_raw.3,
-       doc/manpages/gnutls_x509_crt_get_preferred_hash_algorithm.3,
-       doc/manpages/gnutls_x509_crt_get_proxy.3,
-       doc/manpages/gnutls_x509_crt_get_raw_dn.3,
-       doc/manpages/gnutls_x509_crt_get_raw_issuer_dn.3,
-       doc/manpages/gnutls_x509_crt_get_serial.3,
-       doc/manpages/gnutls_x509_crt_get_signature.3,
-       doc/manpages/gnutls_x509_crt_get_signature_algorithm.3,
-       doc/manpages/gnutls_x509_crt_get_subject.3,
-       doc/manpages/gnutls_x509_crt_get_subject_alt_name.3,
-       doc/manpages/gnutls_x509_crt_get_subject_alt_name2.3,
-       doc/manpages/gnutls_x509_crt_get_subject_alt_othername_oid.3,
-       doc/manpages/gnutls_x509_crt_get_subject_key_id.3,
-       doc/manpages/gnutls_x509_crt_get_subject_unique_id.3,
-       doc/manpages/gnutls_x509_crt_get_verify_algorithm.3,
-       doc/manpages/gnutls_x509_crt_get_version.3,
-       doc/manpages/gnutls_x509_crt_import.3,
-       doc/manpages/gnutls_x509_crt_import_pkcs11.3,
-       doc/manpages/gnutls_x509_crt_import_pkcs11_url.3,
-       doc/manpages/gnutls_x509_crt_init.3,
-       doc/manpages/gnutls_x509_crt_list_import.3,
-       doc/manpages/gnutls_x509_crt_list_import2.3,
-       doc/manpages/gnutls_x509_crt_list_import_pkcs11.3,
-       doc/manpages/gnutls_x509_crt_list_verify.3,
-       doc/manpages/gnutls_x509_crt_print.3,
-       doc/manpages/gnutls_x509_crt_privkey_sign.3,
-       doc/manpages/gnutls_x509_crt_set_activation_time.3,
-       doc/manpages/gnutls_x509_crt_set_authority_key_id.3,
-       doc/manpages/gnutls_x509_crt_set_basic_constraints.3,
-       doc/manpages/gnutls_x509_crt_set_ca_status.3,
-       doc/manpages/gnutls_x509_crt_set_crl_dist_points.3,
-       doc/manpages/gnutls_x509_crt_set_crl_dist_points2.3,
-       doc/manpages/gnutls_x509_crt_set_crq.3,
-       doc/manpages/gnutls_x509_crt_set_crq_extensions.3,
-       doc/manpages/gnutls_x509_crt_set_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crt_set_expiration_time.3,
-       doc/manpages/gnutls_x509_crt_set_extension_by_oid.3,
-       doc/manpages/gnutls_x509_crt_set_issuer_dn_by_oid.3,
-       doc/manpages/gnutls_x509_crt_set_key.3,
-       doc/manpages/gnutls_x509_crt_set_key_purpose_oid.3,
-       doc/manpages/gnutls_x509_crt_set_key_usage.3,
-       doc/manpages/gnutls_x509_crt_set_proxy.3,
-       doc/manpages/gnutls_x509_crt_set_proxy_dn.3,
-       doc/manpages/gnutls_x509_crt_set_pubkey.3,
-       doc/manpages/gnutls_x509_crt_set_serial.3,
-       doc/manpages/gnutls_x509_crt_set_subject_alt_name.3,
-       doc/manpages/gnutls_x509_crt_set_subject_alternative_name.3,
-       doc/manpages/gnutls_x509_crt_set_subject_key_id.3,
-       doc/manpages/gnutls_x509_crt_set_version.3,
-       doc/manpages/gnutls_x509_crt_sign.3,
-       doc/manpages/gnutls_x509_crt_sign2.3,
-       doc/manpages/gnutls_x509_crt_verify.3,
-       doc/manpages/gnutls_x509_crt_verify_data.3,
-       doc/manpages/gnutls_x509_crt_verify_hash.3,
-       doc/manpages/gnutls_x509_dn_deinit.3,
-       doc/manpages/gnutls_x509_dn_export.3,
-       doc/manpages/gnutls_x509_dn_get_rdn_ava.3,
-       doc/manpages/gnutls_x509_dn_import.3,
-       doc/manpages/gnutls_x509_dn_init.3,
-       doc/manpages/gnutls_x509_dn_oid_known.3,
-       doc/manpages/gnutls_x509_privkey_cpy.3,
-       doc/manpages/gnutls_x509_privkey_deinit.3,
-       doc/manpages/gnutls_x509_privkey_export.3,
-       doc/manpages/gnutls_x509_privkey_export_dsa_raw.3,
-       doc/manpages/gnutls_x509_privkey_export_ecc_raw.3,
-       doc/manpages/gnutls_x509_privkey_export_pkcs8.3,
-       doc/manpages/gnutls_x509_privkey_export_rsa_raw.3,
-       doc/manpages/gnutls_x509_privkey_export_rsa_raw2.3,
-       doc/manpages/gnutls_x509_privkey_fix.3,
-       doc/manpages/gnutls_x509_privkey_generate.3,
-       doc/manpages/gnutls_x509_privkey_get_key_id.3,
-       doc/manpages/gnutls_x509_privkey_get_pk_algorithm.3,
-       doc/manpages/gnutls_x509_privkey_import.3,
-       doc/manpages/gnutls_x509_privkey_import_dsa_raw.3,
-       doc/manpages/gnutls_x509_privkey_import_ecc_raw.3,
-       doc/manpages/gnutls_x509_privkey_import_pkcs8.3,
-       doc/manpages/gnutls_x509_privkey_import_rsa_raw.3,
-       doc/manpages/gnutls_x509_privkey_import_rsa_raw2.3,
-       doc/manpages/gnutls_x509_privkey_init.3,
-       doc/manpages/gnutls_x509_privkey_sec_param.3,
-       doc/manpages/gnutls_x509_privkey_sign_data.3,
-       doc/manpages/gnutls_x509_privkey_sign_hash.3,
-       doc/manpages/gnutls_x509_privkey_verify_params.3,
-       doc/manpages/gnutls_x509_rdn_get.3,
-       doc/manpages/gnutls_x509_rdn_get_by_oid.3,
-       doc/manpages/gnutls_x509_rdn_get_oid.3,
-       doc/manpages/gnutls_x509_trust_list_add_cas.3,
-       doc/manpages/gnutls_x509_trust_list_add_crls.3,
-       doc/manpages/gnutls_x509_trust_list_add_named_crt.3,
-       doc/manpages/gnutls_x509_trust_list_deinit.3,
-       doc/manpages/gnutls_x509_trust_list_get_issuer.3,
-       doc/manpages/gnutls_x509_trust_list_init.3,
-       doc/manpages/gnutls_x509_trust_list_verify_crt.3,
-       doc/manpages/gnutls_x509_trust_list_verify_named_crt.3,
-       doc/scripts/getfuncs.pl, lib/gnutls_cert.c, lib/gnutls_str.c: Added
-       a more robust manpage generation method.
-
-2011-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c: 
-       updated/fixed SRP and PSK examples.
-
-2011-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/cert.c: updated client certificate signature algorithm
-       indication, to allow holding 3 algorithms.
-
-2011-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk: use texi2html to generate documentation
-
-2011-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc: corrected texinfo and manpage generation of
-       documentation.
-
-2011-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: count all discarded packets as dropped.
-
-2011-11-15  Martin Storsjo <martin@martin.st>
-
-       * extra/Makefile.am, lib/Makefile.am: Add dependencies from the def
-       files to the libraries that generate them This avoids build failures in parallel builds, where builds could
-       fail with this error message: make[2]: *** No rule to make target `libgnutls-26.def', needed by
-       `all-am'.  Stop.  There is no direct rules that generate it, but it is generated as a
-       byproduct when building libgnutls.la. By marking the la file as a
-       dependency, make won't bail out by not finding the file until that
-       dependency is built, and at that point, the def file exists.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2011-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-auth.texi, doc/cha-cert-auth.texi,
-       doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi,
-       doc/cha-gtls-examples.texi, doc/cha-intro-tls.texi,
-       doc/cha-library.texi, doc/cha-shared-key.texi, doc/gnutls.texi,
-       doc/latex/.gitignore, doc/latex/Makefile.am, doc/latex/gnutls.tex,
-       doc/scripts/mytexi2latex: reorganized documentation
-
-2011-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/asm-coff/appro-aes-x86-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
-       lib/accelerated/x86/asm-coff/padlock-x86-coff.s,
-       lib/accelerated/x86/asm/appro-aes-gcm-x86-64.s,
-       lib/accelerated/x86/asm/appro-aes-x86-64.s,
-       lib/accelerated/x86/asm/appro-aes-x86.s,
-       lib/accelerated/x86/asm/cpuid-x86-64.s,
-       lib/accelerated/x86/asm/cpuid-x86.s,
-       lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s: Commited new assembler files.
-
-2011-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk, devel/perlasm/aesni-x86.pl,
-       devel/perlasm/aesni-x86_64.pl, devel/perlasm/cbc.pl,
-       devel/perlasm/cpuid-x86.pl, devel/perlasm/cpuid-x86_64.pl,
-       devel/perlasm/e_padlock-x86.pl, devel/perlasm/e_padlock-x86_64.pl,
-       devel/perlasm/ghash-x86.pl, devel/perlasm/ghash-x86_64.pl,
-       devel/perlasm/license-gnutls.txt, devel/perlasm/license.txt,
-       devel/perlasm/ppc-xlate.pl, devel/perlasm/readme,
-       devel/perlasm/x86_64-xlate.pl, devel/perlasm/x86asm.pl,
-       devel/perlasm/x86gas.pl, devel/perlasm/x86masm.pl,
-       devel/perlasm/x86nasm.pl: Added rules to auto-generate the assembler
-       files.
-
-2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: updated
-
-2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-programs.texi,
-       doc/gnutls.texi: Tools are discussed in the relevant chapters and
-       sections.
-
-2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: released 3.0.8
-
-2011-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Add tests/slow/Makfile and sort config files.
-
-2011-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix wordwrap.
-
-2011-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify-high.c, lib/x509/verify-high.h: Don't export
-       verify-high structs internally.
-
-2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk: document the gpl modules used by gnulib
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am, tests/gendh.c, tests/keygen.c,
-       tests/slow/Makefile.am, tests/slow/README, tests/slow/gendh.c,
-       tests/slow/keygen.c: slow tests are not being run using valgrind
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/ecdsa/Makefile.am: distribute pem file
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/ecdsa/bad-key.pem, tests/ecdsa/ecdsa: Added test to detect a
-       wrong ECDSA key.
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.h, lib/gnutls_int.h: define likely() and
-       unlikely() and use them to prevent debugging code from being
-       prioritized in branch prediction.
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, m4/hooks.m4: bumped library version and documented updates.
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-backend.h, lib/gnutls_errors.c, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/x509.h, lib/libgnutls.map, lib/nettle/pk.c,
-       lib/x509/privkey.c, src/certtool.c, tests/Makefile.am,
-       tests/keygen.c: Added gnutls_x509_privkey_verify_params() which
-       verifies the parameters of a private key. Added test case for
-       private key generation.
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c, src/certtool-common.c, src/certtool.c,
-       src/psk.c, src/srptool.c, src/tests.c, src/tls_test.c: simplified
-       copyright years.
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, m4/hooks.m4: bumped library versions
-
-2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/scripts/mytexi2latex,
-       lib/x509/crl_write.c: Added documentation on revocation lists.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/chain: account for error code 1 in certtool.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: document updates
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c: Reduce pad.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: added missing dir
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_record.c: Revert "periodically print
-       messages that might be used in timing attacks." This reverts commit a333d71762903ff5b716d1e3967017b1baf61bd2.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_state.c: Revert "dropped packets are also reported on
-       gnutls_deinit() to ensure that they are not lost." This reverts commit 41a73fb4a147dc4773d4b546d5d8b5cfdae255d9.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c: provide less timing information during packet
-       MAC verification.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/ecdsa/ecdsa: silence test
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-backend.h, lib/gnutls_ecc.c, lib/gnutls_pubkey.c,
-       lib/nettle/pk.c, lib/pkcs11_write.c, lib/x509/key_decode.c,
-       lib/x509/key_encode.c, lib/x509/privkey.c: Corrected ECC key
-       generation.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: fail on certificate verification
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am, tests/ecdsa/Makefile.am, tests/ecdsa/ecdsa: 
-       Added ECDSA key generation, signing and verification tests.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: verify the self signature of a CRQ when --crq-info
-       parameter is given.
-
-2011-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify-high.h: Add verify-high.h, to export some structs
-       (for OCSP).
-
-2011-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/algorithms.h, lib/algorithms/mac.c: Add explicit digest
-       mapping functions (for OCSP).
-
-2011-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am, lib/x509/verify-high.c: Make verify-high
-       structures internally accessible (for OCSP).
-
-2011-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Indent.
-
-2011-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c, lib/x509/common.h, lib/x509/extensions.c: Make
-       more functions available internally (for OCSP).
-
-2011-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c, lib/gnutls_str.h, lib/x509/output.c: Make
-       asciiprint a globally available function.
-
-2011-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Add.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_state.c: dropped packets are also reported on
-       gnutls_deinit() to ensure that they are not lost.
-
-2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_record.c: periodically print messages
-       that might be used in timing attacks.
-
-2011-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * COPYING.LESSER, lib/COPYING: LGPLv3 license was moved to root.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, doc/reference/gnutls-docs.sgml,
-       doc/reference/version.xml.in: Update gtk-doc template.
-
-2011-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: updated
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/pkcs11.h: Remove redundant const keyword in
-       (confuses gtk-doc parser).
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * README-alpha: Mention libidn dependency for crywrap.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pubkey.c: Don't crash if gnutls_pubkey_deinit is given
-       a NULL key.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509_b64.c, lib/x509_b64.h: Remove dead code and use more
-       static.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix code coverage rules.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Ignore coverage related stuff.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/Makefile.am: Don't add p11-kit to CFLAGS/LIBS
-       globally, just where it is needed.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/cyclo/Makefile.am: The build rule didn't really work before,
-       now fixed.  Update copyright years.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Remove unneeded stuff.
-
-2011-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/debug.c: enable _gnutls_dump_mpi() when debugging.
-
-2011-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/debug.c, lib/debug.h: Revert "Remove dead code." This reverts commit e5d8a79fcc429902e8fb9b7cec91d66b965df5bb.
-
-2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/Makefile.am, lib/gcrypt/Makefile.am,
-       lib/gcrypt/cipher.c, lib/gcrypt/init.c, lib/gcrypt/mac.c,
-       lib/gcrypt/mpi.c, lib/gcrypt/pk.c, lib/gcrypt/rnd.c: No need to
-       distribute the libgcrypt backend (which cannot even be compiled).
-
-2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/README: updated to include padlock.
-
-2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/cipher.c, lib/nettle/mac.c: release allocated memory on
-       a cipher or mac failure to initialize.
-
-2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: clarified usage of
-       gnutls_record_check_pending().
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/debug.c, lib/debug.h: Remove dead code.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Sort and add.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_db.c, lib/gnutls_db.h: Remove some redundant prototypes
-       and use more static.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_db.c, lib/gnutls_db.h: Simplify redundant code.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/pmccabe2html, gl/Makefile.am, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4: Add pmccabe2html gnulib module.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/lib/hmac-md5.c.diff, gl/override/lib/memxor.c.diff,
-       gl/override/lib/memxor.h.diff: Remove obsolete files.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, gl/override/lib/read-file.c.diff,
-       gl/override/lib/read-file.h.diff,
-       gl/override/tests/test-read-file.c.diff, gl/read-file.c,
-       gl/read-file.h, gl/tests/test-read-file.c, lib/gnutls_x509.c,
-       lib/openpgp/gnutls_openpgp.c, src/certtool-common.c,
-       src/certtool.c, src/cli.c, src/crywrap/crywrap.c: Simplify static
-       library renaming hack.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/suite/Makefile.am: Cleanup and fix authorship notice (I
-       didn't write this file).
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/dsa/testdsa, tests/openpgp-certs/testcerts,
-       tests/suite/testcompat-main, tests/suite/testsrn: Fix
-       srcdir!=builddir builds.
-
-2011-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Allow distcheck to work, the suppressions.valgrind
-       file caused problems.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: enums.texi: Look in builddir too for gnutls.h.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am: doc: man pages for API functions
-       were removed.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, gl/Makefile.am, gl/alignof.h, gl/argp-parse.c,
-       gl/closedir.c, gl/m4/gnulib-comp.m4, gl/m4/math_h.m4,
-       gl/m4/stdalign.m4, gl/math.in.h, gl/stdalign.in.h, gl/stdlib.in.h,
-       gl/sys_socket.in.h, gl/tests/Makefile.am, gl/tests/putenv.c,
-       gl/tests/test-stdalign.c, maint.mk: Update gnulib files.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Improve syntax-check rules.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Re-indent.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix syntax-check whitespace nit.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Fix portability quirk.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/README: Fix 'the the' double use.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/accelerated/x86/hmac-padlock.c: Remove unneeded assert.h
-       inclusion.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * .gitattributes: Drop unneeded .gitattributes.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, gtk-doc.make: Update gtk-doc files.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Drop openssl API from GnuTLS API
-       manual to avoid build errors.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Drop more extra stuff.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * extra/gnutls-extra.pc.in, extra/libgnutls-extra.map: Remove
-       obsolete libgnutls-extra stuff.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/verify.c: Include examples.h to get
-       verify_certificate_callback prototype.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Improve header ignoring.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Use gettext 0.18 to avoid build error.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/nettle/ecc_mulmod.c: Fix compile warnings.
-
-2011-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * po/it.po.in: Sync with TP.
-
-2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, m4/hooks.m4: released 3.0.7
-
-2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/ciphersuites.c: Corrected ciphersuite
-       GNUTLS_ECDHE_RSA_AES_128_CBC_SHA256. Reported by Fabrice Gautier.
-
-2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_session.c: bug fix in gnutls_session_get_data().
-
-2011-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, m4/hooks.m4: bumped version
-
-2011-11-07  Alban Crequy <alban.crequy@collabora.co.uk>
-
-       * lib/gnutls_session.c: gnutls_session_get_data: fix possible buffer
-       overflow The test to avoid the buffer overflow was always false because
-       session_data_size was set at the wrong place. This problem has been
-       introduced by this commit: |commit ad4ed44c65e753e6d3a00104c049dd81826ccbf3 |Author: Nikos
-       Mavrogiannopoulos <nmav@gnutls.org> |Date:   Mon Nov 7 22:24:48 2005
-       +0000 | |    This is the initial commit in the 1.3 branch. Ported
-       from the PSK branch: |    * PSK ciphersuites have been added.  |
-       * The session resumption data are now system independent.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented changes.
-
-2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/ecdh_common.c, lib/crypto-backend.h, lib/gnutls_ecc.c,
-       lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/nettle/Makefile.am,
-       lib/nettle/ecc.h, lib/nettle/ecc_free.c, lib/nettle/ecc_make_key.c,
-       lib/nettle/ecc_projective_check_point.c,
-       lib/nettle/ecc_projective_dbl_point.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/pk.c, lib/pkcs11_write.c, lib/x509/key_decode.c,
-       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/privkey.c,
-       lib/x509/x509_int.h: Verify that received ECDH public key lies on
-       the curve.
-
-2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: ECDHE ciphersuites take precendence to
-       plain DHE
-
-2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, THANKS: documented fixes
-
-2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/ecc_test.c: re-removed file
-
-2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey_pkcs8.c: Report correct error on ECC key parsing
-       error.
-
-2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/ecc.h, lib/nettle/ecc_mulmod.c,
-       lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_dbl_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c, lib/nettle/ecc_test.c: 
-       converted more things to native gmp. This solves issue noticed in
-       mips64 by Joseph Graham.
-
-2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/testcompat-main: Added tests for null ciphersuites.
-
-2011-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fix
-
-2011-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-gtls-app.texi, doc/examples/Makefile.am,
-       doc/examples/ex-client-udp.c, doc/examples/ex-client2.c,
-       doc/examples/ex-rfc2818.c, doc/examples/examples.h,
-       doc/examples/verify.c: Include only a single example with X.509
-       client. This example includes certificate verification.
-
-2011-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/Makefile.am: no libextra in doc
-
-2011-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h: corrected NULL
-       cipher encryption. Reported by Fabrice Gautier.
-
-2011-11-04  Ludovic Courtès <ludo@gnu.org>
-
-       * configure.ac, guile/modules/gnutls.in, guile/pre-inst-guile.in,
-       guile/src/Makefile.am: guile: Rename `libguile-gnutls-v-2.la' to
-       `guile-gnutls-v-2.la'.
-
-2011-11-04  Ludovic Courtès <ludo@gnu.org>
-
-       * .gitignore, configure.ac, guile/modules/Makefile.am,
-       guile/modules/gnutls.in, guile/modules/gnutls.scm,
-       guile/pre-inst-guile.in, guile/src/Makefile.am: guile: Install
-       libguile-gnutls under $(libdir)/guile/X.Y.
-
-2011-11-03  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/gnutls.scm, guile/pre-inst-guile.in,
-       guile/src/Makefile.am: guile: Rename to `libguile-gnutls-v-2'.
-
-2011-11-03  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/gnutls-guile.texi: doc: Make it clear that both Guile 1.8 and
-       2.0 are supported.
-
-2011-11-03  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/Makefile.am, doc/gnutls-guile.texi: guile: Update doc to
-       reflect the removal of (gnutls extra).
-
-2011-11-03  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/openpgp-keys.scm: guile: Remove uses of (gnutls extra)
-       from the tests.
-
-2011-11-03  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/gnutls.scm, guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/smobs.scm,
-       guile/modules/gnutls/extra.scm, guile/pre-inst-guile.in,
-       guile/src/Makefile.am, guile/src/core.c, guile/src/extra.c,
-       guile/src/make-enum-header.scm, guile/src/make-enum-map.scm,
-       guile/src/make-smob-header.scm, guile/src/make-smob-types.scm: 
-       guile: Merge the (gnutls extra) module in (gnutls); deprecate it.
-
-2011-11-03  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/pre-inst-guile.in, guile/src/Makefile.am: Reverting "Drop
-       guile libgnutls-extra stuff."
-
-2011-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_str.c, lib/gnutls_str.h, lib/openpgp/output.c,
-       lib/x509/output.c: removed duplicate code.
-
-2011-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * guile/modules/gnutls/build/enums.scm: removed enumerations that
-       don't exist
-
-2011-11-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth/srp.c: Fix typo.
-
-2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/Makefile.am, gl/hmac-md5.c, gl/hmac.h, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/md5.m4, gl/m4/memxor.m4, gl/md5.c,
-       gl/md5.h, gl/memxor.c, gl/memxor.h, gl/tests/Makefile.am,
-       gl/tests/test-hmac-md5.c, gl/tests/test-md5.c: hmac-md5 gnulib
-       module was removed (it was no longer used)
-
-2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/srptool.c: print all groups.
-
-2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/srp.c, lib/auth/srp_passwd.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/prime.c,
-       src/srptool.c: Added 3072 and 4096-bit groups from RFC5054.
-
-2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/openpgp/gnutls_openpgp.c,
-       src/certtool-common.c, src/certtool.c, src/cli.c,
-       src/crywrap/crywrap.c: read_file() and friends are accessed as
-       gl_read_file().
-
-2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/override/lib/read-file.c.diff,
-       gl/override/lib/read-file.h.diff,
-       gl/override/tests/test-read-file.c.diff, gl/read-file.c,
-       gl/read-file.h, gl/tests/test-read-file.c: read_file and friends
-       were renamed to gl_read_file.
-
-2011-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: added David
-
-2011-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fix
-
-2011-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am: errcodes printlist and alert-printlist become
-       EXTRA_PROGRAMS so they are not built by default.
-
-2011-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix bootstrap rule to avoid duplicate gettext files.
-
-2011-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Remove old hack.
-
-2011-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * guile/pre-inst-guile.in, guile/src/Makefile.am: Drop guile
-       libgnutls-extra stuff.
-
-2011-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Avoid line wrapping copyright line.
-
-2011-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath: Update config.rpath from gnulib.
-
-2011-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, doc/reference/gnutls-docs.sgml: Drop
-       more libgnutls-extra related stuff.
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, m4/hooks.m4: released 3.0.5
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/utils.c: added stdarg.h for vsnprintf.
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c, src/benchmark.h: win32 fixes by David Hoyt.
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am: more builddir fixes.
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * build-aux/config.rpath, gl/Makefile.am, gl/connect.c,
-       gl/inet_ntop.c, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/inet_ntop.m4, gl/recv.c, gl/send.c, gl/tests/Makefile.am,
-       gl/tests/connect.c, gl/tests/test-inet_ntop.c,
-       gl/tests/test-recv.c, gl/tests/test-send.c: Added recv(), send(),
-       connect() and inet_ntop() gnulib modules.
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/opencdk/opencdk.h: do not unconditionally
-       include sys/socket.h.
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/Makefile.am, gl/close.c, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/tests/Makefile.am, gl/tests/close.c: Added
-       gnulib close module.
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: do not use NULL for device_fd in windows.
-
-2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/main.c: no need to include windows.h here.
-
-2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c, src/cli.c, src/tls_test.c, src/udp-serv.c: 
-       w32socket changes.
-
-2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/Makefile.am, gl/arpa_inet.in.h, gl/errno.in.h, gl/inet_pton.c,
-       gl/m4/ftruncate.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/ioctl.m4, gl/m4/perror.m4, gl/m4/pipe.m4, gl/m4/select.m4,
-       gl/m4/signal_h.m4, gl/m4/strerror_r.m4, gl/m4/sys_ioctl_h.m4,
-       gl/m4/sys_select_h.m4, gl/m4/thread.m4, gl/m4/yield.m4,
-       gl/math.in.h, gl/select.c, gl/signal.in.h, gl/strerror-override.c,
-       gl/strerror-override.h, gl/sys_select.in.h, gl/tests/Makefile.am,
-       gl/tests/arpa_inet.in.h, gl/tests/connect.c, gl/tests/ftruncate.c,
-       gl/tests/glthread/lock.c, gl/tests/glthread/lock.h,
-       gl/tests/glthread/thread.c, gl/tests/glthread/thread.h,
-       gl/tests/glthread/threadlib.c, gl/tests/glthread/yield.h,
-       gl/tests/inet_pton.c, gl/tests/ioctl.c, gl/tests/perror.c,
-       gl/tests/pipe.c, gl/tests/strerror_r.c, gl/tests/sys_ioctl.in.h,
-       gl/tests/test-connect.c, gl/tests/test-ftruncate.c,
-       gl/tests/test-ftruncate.sh, gl/tests/test-ioctl.c,
-       gl/tests/test-lock.c, gl/tests/test-perror.c,
-       gl/tests/test-perror.sh, gl/tests/test-perror2.c,
-       gl/tests/test-pipe.c, gl/tests/test-select-fd.c,
-       gl/tests/test-select-in.sh, gl/tests/test-select-out.sh,
-       gl/tests/test-select-stdin.c, gl/tests/test-select.c,
-       gl/tests/test-select.h, gl/tests/test-signal-h.c,
-       gl/tests/test-strerror_r.c, gl/tests/test-sys_ioctl.c,
-       gl/tests/test-sys_select.c, gl/tests/test-thread_create.c,
-       gl/tests/test-thread_self.c, gl/tests/w32sock.h, gl/w32sock.h,
-       maint.mk: new gnulib + added select + inet_pton.
-
-2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/common.h, src/udp-serv.c: netinet headers were put on an
-       ifndef _WIN32.
-
-2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: more libextra doc fixes.
-
-2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-functions.texi: extra-api is no more
-
-2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s: corrected symbols for
-       coff.
-
-2011-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/minitasn1/decoding.c, lib/minitasn1/element.c,
-       lib/minitasn1/element.h, lib/minitasn1/errors.c,
-       lib/minitasn1/gstr.c, lib/minitasn1/gstr.h, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/parser_aux.h, lib/minitasn1/structure.c,
-       lib/minitasn1/structure.h, lib/minitasn1/version.c: Update to
-       libtasn1 2.10.
-
-2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: changed mingw32 detection
-
-2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/asm-coff/appro-aes-gcm-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/appro-aes-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
-       lib/accelerated/x86/asm-coff/padlock-x86-64-coff.s: added coff files
-       for mingw64
-
-2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/asm-coff/appro-aes-x86-coff.s,
-       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
-       lib/accelerated/x86/asm-coff/padlock-x86-coff.s,
-       lib/accelerated/x86/coff/appro-aes-x86-coff.s,
-       lib/accelerated/x86/coff/padlock-x86-coff.s: Added coff version of
-       cpuid.
-
-2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/coff/appro-aes-x86-coff.s,
-       lib/accelerated/x86/coff/padlock-x86-coff.s: Added COFF versions of
-       assembly files.
-
-2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: Added Jan.
-
-2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/coding.c: use coding.c from libtasn1 git, to avoid
-       issue when compiled with gcc-4.6.
-
-2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/aes-padlock.c: Corrected PHE-partial test.
-
-2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fixes
-
-2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: library mismatch error is no longer used
-
-2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/aes-padlock.c,
-       lib/accelerated/x86/aes-padlock.h,
-       lib/accelerated/x86/asm/padlock-common.s,
-       lib/accelerated/x86/sha-padlock.h: PHE-partial detection is not
-       being done, instead of checking for VIA nano.
-
-2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/aes-padlock.h,
-       lib/accelerated/x86/asm/padlock-common.s: No need to check for
-       padlock nano in 32-bit systems, so simplify things.
-
-2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c: initialize only a fully available hash
-
-2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/asm/padlock-common.s: is_padlock_nano is
-       behaving properly and saving registers.
-
-2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: removed libextra error codes.
-
-2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * guile/modules/gnutls.scm, guile/src/make-enum-header.scm: removed
-       extra.h header from guile code.
-
-2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/gnutls.h.in: removed libextra errors.
-
-2011-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c, src/udp-serv.c: added extra headers.
-
-2011-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, doc/latex/.gitignore, gl/Makefile.am, gl/accept.c,
-       gl/bind.c, gl/frexp.c, gl/frexpl.c, gl/getpeername.c, gl/gettext.h,
-       gl/isnan.c, gl/listen.c, gl/m4/arpa_inet_h.m4, gl/m4/frexp.m4,
-       gl/m4/frexpl.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/include_next.m4, gl/m4/inet_pton.m4, gl/m4/isnand.m4,
-       gl/m4/isnanl.m4, gl/m4/ldexpl.m4, gl/m4/math_h.m4,
-       gl/m4/printf-frexpl.m4, gl/m4/printf.m4, gl/m4/stdlib_h.m4,
-       gl/m4/vasnprintf.m4, gl/math.in.h, gl/override/lib/gettext.h.diff,
-       gl/printf-frexp.c, gl/printf-frexpl.c, gl/recvfrom.c, gl/sendto.c,
-       gl/setsockopt.c, gl/shutdown.c, gl/socket.c, gl/stdlib.in.h,
-       gl/tests/Makefile.am, gl/tests/arpa_inet.in.h,
-       gl/tests/inet_pton.c, gl/tests/test-accept.c,
-       gl/tests/test-arpa_inet.c, gl/tests/test-bind.c,
-       gl/tests/test-getpeername.c, gl/tests/test-inet_pton.c,
-       gl/tests/test-isnanl.h, gl/tests/test-listen.c,
-       gl/tests/test-recvfrom.c, gl/tests/test-sendto.c,
-       gl/tests/test-setsockopt.c, gl/tests/test-shutdown.c,
-       gl/vasnprintf.c, maint.mk: added new gnulib and modules.
-
-2011-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * extra/Makefile.am, lib/Makefile.am, lib/accelerated/Makefile.am,
-       lib/accelerated/x86/Makefile.am, lib/algorithms/Makefile.am,
-       lib/auth/Makefile.am, lib/ext/Makefile.am, lib/nettle/Makefile.am,
-       lib/opencdk/Makefile.am, lib/openpgp/Makefile.am, src/Makefile.am: 
-       more builddir fixes by David Hoyt.
-
-2011-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: Added includes in Makefile.am
-
-2011-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/Makefile.am, lib/algorithms/Makefile.am,
-       lib/auth/Makefile.am, lib/ext/Makefile.am,
-       lib/minitasn1/Makefile.am, lib/nettle/Makefile.am,
-       lib/opencdk/Makefile.am, lib/openpgp/Makefile.am: Added
-       -I$(builddir)/../../gl to CFLAGS.
-
-2011-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/accelerated/x86/Makefile.am: Add -I to fix building.  Reported by "Hoyt, David" <hoyt6@llnl.gov>.
-
-2011-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/x509/Makefile.am: Also add -I's for gnulib's
-       build directory, for mingw.  Reported by "Hoyt, David" <hoyt6@llnl.gov>.
-
-2011-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, extra/gnutls_extra.c, guile/src/extra.c,
-       lib/auth/srp_passwd.c, lib/gnutls_srp.c: removed more extra.h
-       leftovers.
-
-2011-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/asm/appro-aes-gcm-x86-64.s,
-       lib/accelerated/x86/asm/appro-aes-x86-64.s,
-       lib/accelerated/x86/asm/appro-aes-x86.s,
-       lib/accelerated/x86/asm/cpuid-x86-64.s,
-       lib/accelerated/x86/asm/cpuid-x86.s,
-       lib/accelerated/x86/asm/padlock-common.s,
-       lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s: updated gnustack note.
-
-2011-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-common.c, src/pkcs11.c, src/psk.c, src/srptool.c,
-       src/tests.c, src/tls_test.c: extra.h is no more.
-
-2011-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * Makefile.am, NEWS, README, configure.ac, doc/Makefile.am,
-       doc/cha-internals.texi, doc/examples/Makefile.am,
-       doc/manpages/Makefile.am, doc/reference/Makefile.am,
-       extra/Makefile.am, extra/gnutls-extra.pc.in, extra/gnutls_extra.c,
-       extra/gnutls_openssl.c, extra/includes/Makefile.am,
-       extra/includes/gnutls/openssl.h, extra/libgnutls-extra.map,
-       extra/openssl_compat.c, extra/openssl_compat.h,
-       guile/src/Makefile.am, libextra/Makefile.am,
-       libextra/gnutls-extra.pc.in, libextra/gnutls_extra.c,
-       libextra/gnutls_openssl.c, libextra/includes/Makefile.am,
-       libextra/includes/gnutls/extra.h,
-       libextra/includes/gnutls/openssl.h, libextra/libgnutls-extra.map,
-       libextra/openssl_compat.c, libextra/openssl_compat.h,
-       src/Makefile.am, tests/Makefile.am, tests/openpgp-keyring.c,
-       tests/suite/Makefile.am: libgnutls-extra is no more.
-
-2011-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
-       lib/pkcs11_write.c: Added Stef to authors of pkcs11.
-
-2011-10-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, THANKS: documented fix
-
-2011-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: Corrected bug in gnutls_x509_data2hex. Report
-       and fix by Vincent Untz.
-
-2011-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated for register_md5_handler().
-
-2011-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/includes/gnutls/extra.h, libextra/libgnutls-extra.map: 
-       completely drop gnutls_register_md5_handler()
-
-2011-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/asm/padlock-common.s: Added gnu-stack note.
-
-2011-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/scripts/Makefile.am: released 3.0.4
-
-2011-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: updated tests for new key ID
-
-2011-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c: key id is being calculated the same way in
-       private keys as in public keys.
-
-2011-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-intro-tls.texi, doc/cha-tls-app.texi,
-       doc/gnutls.texi, doc/latex/Makefile.am, doc/latex/gnutls.tex,
-       doc/scripts/gdoc, doc/scripts/mytexi2latex, doc/scripts/sort1.pl,
-       doc/scripts/split-texi.pl, doc/scripts/split.pl,
-       doc/sec-tls-app.texi, tests/nist-pkits/build-chain: 'How to use TLS
-       in application protocols' section was moved to introduction to TLS.
-       Fixes in perl.
-
-2011-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: Added a test for servers
-       not accepting small records.
-
-2011-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s: new version of padlock by
-       Andy.
-
-2011-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, m4/hooks.m4: bumped versions
-
-2011-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Add and sort.
-
-2011-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: updated text
-
-2011-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * m4/hooks.m4: check for nettle 2.4 or later
-
-2011-10-10  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix type of keyid (finally!).
-
-2011-10-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, lib/includes/gnutls/abstract.h: More doc
-       fixes.
-
-2011-10-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: GTK-DOC doc fix.
-
-2011-10-10  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Use gnutls_openpgp_keyid_t type for keyid variable.
-
-2011-10-10  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Include stdint.h to get uint8_t.
-
-2011-10-10  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Revert "avoid usage of C99 constructs." This reverts commit 643ebdf12b415fc3edd3b7bc12654bc92d3aed24.
-
-2011-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s: updated Andy's code.
-       padlock_shax_blocks does not require any more, the state to be of
-       128-byte size.
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c: Corrected check for AES-GCM
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: test for camellia
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: avoid usage of C99 constructs.
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/asm/padlock-common.s,
-       lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s: is_padlock_nano moved to
-       padlock-common.s to allow easier upgrade to Andy's newer code.
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/cipher-test.c: Added more elaborate test of hash functions.
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/x509/mpi.c: HASH2MAC macro is no more.
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_ui.c, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crq.c, lib/x509/output.c, lib/x509/x509.c, src/certtool.c: 
-       Key ID calculation is now consistent on all structures. It is a SHA1
-       hash of the subjectPublicKeyInfo structures.
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-library.texi: simplified documentation
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-intro-tls.texi: documentation update
-
-2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: Added tests for ECDHE,
-       AES-GCM and SHA256.
-
-2011-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_sig.c: fixes to enable the external signing
-       callback to operate with TLS 1.2
-
-2011-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-auth.texi, doc/cha-cert-auth.texi, lib/auth/cert.c,
-       lib/gnutls_cert.c, lib/gnutls_privkey.c, lib/gnutls_x509.c,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Added new
-       signing callback in gnutls_privkey_t.
-
-2011-10-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/Makefile.am, gl/m4/math_h.m4, gl/math.in.h: updated gnulib.
-
-2011-10-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fix
-
-2011-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: corrected bug in key id extraction. Reported by
-       Erik Jensen.
-
-2011-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/aes-padlock.c,
-       lib/accelerated/x86/aes-padlock.h,
-       lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s,
-       lib/accelerated/x86/hmac-padlock.c,
-       lib/accelerated/x86/sha-padlock.c, src/benchmark-cipher.c: better
-       detection of padlock PHE.
-
-2011-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, NEWS, lib/accelerated/Makefile.am,
-       lib/accelerated/accelerated.c, lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/aes-padlock.c,
-       lib/accelerated/x86/aes-padlock.h,
-       lib/accelerated/x86/hmac-padlock.c,
-       lib/accelerated/x86/sha-padlock.c,
-       lib/accelerated/x86/sha-padlock.h, lib/accelerated/x86/x86.h,
-       lib/nettle/mac.c, tests/cipher-test.c: Updates for padlock hashes in
-       C7 nano. Requires a part of nettle to be included.
-
-2011-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/aes-gcm-padlock.c: Always use encryption
-       direction.
-
-2011-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am, src/serv.c: libextra is not needed for neither
-       gnutls-cli or serv.
-
-2011-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: corrected path
-
-2011-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s: updated padlock code.
-
-2011-10-04  Nikos Mavrogiannopoulos <nikos@thingfish.esat.kuleuven.be>
-
-       * lib/gnutls_str_array.h, lib/nettle/rnd.c, lib/system.c: fixes in
-       headers. Suggested by Bjorn Christensen.
-
-2011-10-04  Nikos Mavrogiannopoulos <nikos@thingfish.esat.kuleuven.be>
-
-       * lib/accelerated/Makefile.am, lib/accelerated/intel/.gitignore,
-       lib/accelerated/intel/Makefile.am, lib/accelerated/intel/README,
-       lib/accelerated/intel/aes-gcm-padlock.c,
-       lib/accelerated/intel/aes-gcm-x86.c,
-       lib/accelerated/intel/aes-padlock.c,
-       lib/accelerated/intel/aes-padlock.h,
-       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h,
-       lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-x86.s,
-       lib/accelerated/intel/asm/cpuid-x86-64.s,
-       lib/accelerated/intel/asm/cpuid-x86.s,
-       lib/accelerated/intel/asm/padlock-x86-64.s,
-       lib/accelerated/intel/asm/padlock-x86.s,
-       lib/accelerated/intel/license.txt,
-       lib/accelerated/intel/sha-padlock.c, lib/accelerated/intel/x86.h,
-       lib/accelerated/x86/.gitignore, lib/accelerated/x86/Makefile.am,
-       lib/accelerated/x86/README, lib/accelerated/x86/aes-gcm-padlock.c,
-       lib/accelerated/x86/aes-gcm-x86.c,
-       lib/accelerated/x86/aes-padlock.c,
-       lib/accelerated/x86/aes-padlock.h, lib/accelerated/x86/aes-x86.c,
-       lib/accelerated/x86/aes-x86.h,
-       lib/accelerated/x86/asm/appro-aes-gcm-x86-64.s,
-       lib/accelerated/x86/asm/appro-aes-x86-64.s,
-       lib/accelerated/x86/asm/appro-aes-x86.s,
-       lib/accelerated/x86/asm/cpuid-x86-64.s,
-       lib/accelerated/x86/asm/cpuid-x86.s,
-       lib/accelerated/x86/asm/padlock-x86-64.s,
-       lib/accelerated/x86/asm/padlock-x86.s,
-       lib/accelerated/x86/license.txt, lib/accelerated/x86/sha-padlock.c,
-       lib/accelerated/x86/x86.h: intel directory renamed to x86.
-
-2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated
-
-2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, gl/Makefile.am, gl/error.c, gl/float.c,
-       gl/float.in.h, gl/fstat.c, gl/itold.c, gl/lseek.c, gl/m4/close.m4,
-       gl/m4/dup2.m4, gl/m4/fdopen.m4, gl/m4/float_h.m4, gl/m4/fstat.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/msvc-nothrow.m4, gl/m4/pathmax.m4,
-       gl/m4/stdio_h.m4, gl/m4/sys_stat_h.m4, gl/m4/unistd_h.m4,
-       gl/math.in.h, gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c,
-       gl/msvc-nothrow.h, gl/opendir.c, gl/sockets.c, gl/sockets.h,
-       gl/stdio.in.h, gl/strings.in.h, gl/sys_stat.in.h,
-       gl/tests/Makefile.am, gl/tests/close.c, gl/tests/dup2.c,
-       gl/tests/fdopen.c, gl/tests/msvc-inval.c, gl/tests/msvc-inval.h,
-       gl/tests/test-close.c, gl/tests/test-dup2.c, gl/tests/test-fgetc.c,
-       gl/tests/test-fputc.c, gl/tests/test-fread.c,
-       gl/tests/test-fwrite.c, gl/unistd.in.h, gl/w32sock.h, maint.mk: 
-       Added new gnulib.
-
-2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_sig.c: added an assert
-
-2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: doc fixes
-
-2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: replaced uint type.
-
-2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/egd.c, lib/nettle/rnd.c: fix compilation in windows
-
-2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-library.texi: updated text.
-
-2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-padlock.c,
-       lib/accelerated/intel/aes-padlock.h,
-       lib/accelerated/intel/sha-padlock.c, lib/gnutls_str.h: Added ability
-       to hash and hmac with VIA padlock.
-
-2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented updates
-
-2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/mac.c: optimizations in hmac.
-
-2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-backend.h, lib/gnutls_cipher_int.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_mpi.h,
-       lib/gnutls_pk.h, lib/nettle/cipher.c, lib/nettle/mac.c,
-       lib/nettle/mpi.c, lib/nettle/pk.c, lib/nettle/rnd.c,
-       libextra/Makefile.am, libextra/fipsmd5.c, libextra/gnutls_extra.c: 
-       The hash_fast() and hmac_fast() functions can be registered as well
-       to allow backends with optimized (hw) implementations. In the nettle
-       backend the different is one memory allocation less.
-
-2011-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher_int.h, lib/gnutls_hash_int.h, lib/gnutls_mpi.h,
-       lib/gnutls_pk.h, lib/nettle/cipher.c, lib/nettle/mac.c,
-       lib/nettle/mpi.c, lib/nettle/pk.c, lib/nettle/rnd.c: operations
-       structures were made constants.
-
-2011-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_state.c: 
-       simplified usage of resume_true and resume_false.
-
-2011-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_constate.c: simplified assignment of server_write and
-       client_write.
-
-2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-padlock.c,
-       lib/accelerated/intel/asm/padlock-x86.s: movdqa replaced with movaps
-       (C3 doesn't support SSE2 but only SSE)
-
-2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-padlock.c: manually keep the IV.
-
-2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/asm/padlock-x86.s: re-added ecb
-
-2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/asm/padlock-x86-64.s,
-       lib/accelerated/intel/asm/padlock-x86.s: removed unused modes.
-
-2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark-cipher.c, src/benchmark.h, src/cli-gaa.c,
-       src/cli-gaa.h, src/cli.gaa: Allow benchmarking the software version
-       of ciphers.
-
-2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, src/p11common.c: fixed compilation without p11-kit
-
-2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-padlock.c: enabled VIA acceleration.
-
-2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c: small update
-
-2011-09-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: more people to thank
-
-2011-09-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-pkcs11-list.c, src/benchmark.c, src/udp-serv.c: 
-       include config.h where needed.
-
-2011-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/testcompat-main: worked around openssl 1.0.0e bug
-       (avoid using -mtu).
-
-2011-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/udp-serv.c: udp-serv includes config.h.
-
-2011-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/read-packet.c, lib/opencdk/stream.c: corrections in
-       debugging code.
-
-2011-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/accelerated/Makefile.am,
-       lib/accelerated/accelerated.c, lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/x86.h, lib/accelerated/x86.h: Better usage of
-       X86 conditionals to simplify and avoid an undefined warning in
-       x86-32.
-
-2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/egd.c: a hack to allow compilation on systems without
-       AF_LOCAL.
-
-2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pcert.c: Disable openpgp code when not requested.
-       Reported by Bjorn Christensen.
-
-2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/cve-2009-1416.c, tests/mpi.c, tests/rng-fork.c,
-       tests/x509cert-tl.c, tests/x509cert.c: more silent tests.
-
-2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, gl/m4/valgrind-tests.m4,
-       gl/override/m4/valgrind-tests.m4.diff, lib/gnutls_cipher.c,
-       lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_constate.c, lib/gnutls_int.h, tests/Makefile.am,
-       tests/libgcrypt.supp, tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/suppressions.valgrind,
-       tests/suppressions.valgrind: Further optimizations in the
-       compression code. Re-enabled the test program by suppressing the
-       zlib warning.
-
-2011-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * tests/utils.c: Redeuce self-test noise.
-
-2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, doc/latex/Makefile.am, doc/latex/cover-epub.tex,
-       doc/latex/cover.tex.in, doc/latex/epub.tex,
-       doc/latex/macros-epub.tex: Added epub version of manual
-
-2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/gnutls.bib: corrected typos
-
-2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/gnutls.tex, doc/scripts/mytexi2latex: pdf is the image
-       format for latex.
-
-2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am: deflate test moved out
-
-2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_compress.c: removed uneeded vars
-
-2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_record.c, tests/Makefile.am,
-       tests/eagain-common.h, tests/mini-deflate.c: Simplified and
-       corrected decompression and compression.  Added test program.
-
-2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/common.c: print session ID
-
-2011-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore, NEWS, lib/includes/gnutls/x509.h, lib/x509/output.c,
-       lib/x509/x509.c, tests/infoaccess.c: libgnutls:
-       gnutls_x509_crt_print supports printing AIA fields.  Support
-       caIssuers.
-
-2011-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/x509.h: Improve gnutls_info_access_what_t
-       documentation.
-
-2011-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, doc/scripts/gdoc, lib/auth/cert.c: Fix syntax-check
-       warnings.
-
-2011-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/closedir.c, gl/dirent-private.h,
-       gl/dirent.in.h, gl/filename.h, gl/isnan.c, gl/m4/argp.m4,
-       gl/m4/closedir.m4, gl/m4/dirent_h.m4, gl/m4/environ.m4,
-       gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4, gl/m4/frexp.m4,
-       gl/m4/frexpl.m4, gl/m4/getcwd.m4, gl/m4/getpass.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/iconv.m4, gl/m4/include_next.m4,
-       gl/m4/ldexpl.m4, gl/m4/lseek.m4, gl/m4/msvc-inval.m4,
-       gl/m4/nocrash.m4, gl/m4/opendir.m4, gl/m4/pathmax.m4,
-       gl/m4/printf-frexpl.m4, gl/m4/printf.m4, gl/m4/readdir.m4,
-       gl/m4/setenv.m4, gl/m4/signbit.m4, gl/m4/sleep.m4,
-       gl/m4/ssize_t.m4, gl/m4/stdint.m4, gl/m4/stdio_h.m4,
-       gl/m4/strings_h.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4,
-       gl/m4/sys_types_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4,
-       gl/m4/vasnprintf.m4, gl/math.in.h, gl/opendir.c, gl/readdir.c,
-       gl/stdio.in.h, gl/strings.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
-       gl/sys_types.in.h, gl/sys_uio.in.h, gl/tests/Makefile.am,
-       gl/tests/dup2.c, gl/tests/infinity.h, gl/tests/init.sh,
-       gl/tests/msvc-inval.c, gl/tests/msvc-inval.h, gl/tests/nan.h,
-       gl/tests/pathmax.h, gl/tests/putenv.c, gl/tests/stat.c,
-       gl/tests/test-dup2.c, gl/tests/test-fcntl-h.c,
-       gl/tests/test-fdopen.c, gl/tests/test-fgetc.c,
-       gl/tests/test-fprintf-posix.h, gl/tests/test-frexp.c,
-       gl/tests/test-frexpl.c, gl/tests/test-fseeko4.c,
-       gl/tests/test-fseeko4.sh, gl/tests/test-fstat.c,
-       gl/tests/test-ftello4.c, gl/tests/test-ftello4.sh,
-       gl/tests/test-isnand.h, gl/tests/test-isnanf.h,
-       gl/tests/test-isnanl.h, gl/tests/test-pathmax.c,
-       gl/tests/test-printf-posix.h, gl/tests/test-signbit.c,
-       gl/tests/test-sys_socket.c, gl/tests/test-sys_stat.c,
-       gl/tests/test-sys_types.c, gl/tests/test-time.c, gl/unistd.in.h,
-       gl/wchar.in.h, maint.mk: Update gnulib files.
-
-2011-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_dtls.c, lib/pkcs11_privkey.c, lib/x509/x509.c: Fix
-       gtk-doc Since: tags.
-
-2011-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2011-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/x509.c, tests/Makefile.am, tests/infoaccess.c: Added
-       gnutls_x509_crt_get_authority_info_access.
-
-2011-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/accelerated/intel/aes-padlock.c: Make it build with -Wunused.
-
-2011-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: do not trust getaddrinfo if IPv6 is not enabled. Patch
-       by Somchai Smythe.
-
-2011-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, doc/scripts/split-texi.pl: Added missing files
-
-2011-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/gnutls_privkey.c, lib/pkcs11.c, src/cli.c: 
-       Compilation fixes when pkcs11 is not enabled.
-
-2011-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/gnutls.texi, doc/scripts/gdoc: enumerations
-       are visible in the texinfo output.
-
-2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: released 3.0.3
-
-2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/Makefile.am: Added missing file.
-
-2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi, doc/latex/Makefile.am: doc fixes
-
-2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/accelerated/intel/aes-padlock.c: VIA is disabled by
-       default.
-
-2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, m4/hooks.m4: bumped version
-
-2011-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth/cert.c: Corrected memory leak in privkey
-       deinitialization. Reported by Dan Winship.
-
-2011-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/accelerated.c, lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-padlock.c,
-       lib/accelerated/intel/aes-x86.c,
-       lib/accelerated/intel/asm/cpuid-x86-64.s,
-       lib/accelerated/intel/asm/cpuid-x86.s, lib/accelerated/x86.h: 
-       eliminated inline assembly.
-
-2011-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_dtls.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       lib/includes/gnutls/dtls.h, lib/libgnutls.map: Added
-       gnutls_record_get_discarded() to return the number of discarded
-       record packets in a DTLS session.
-
-2011-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/accelerated/Makefile.am,
-       lib/accelerated/accelerated.c, lib/accelerated/x86.h: Added better
-       detection of capabilities in 386. If cpuid doesn't exist don't try
-       to execute it.
-
-2011-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/scripts/mytexi2latex: updates on SRP
-       description
-
-2011-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c: stress that values are bytes and not bits
-
-2011-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv-gaa.c: new gaa
-
-2011-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/macros.tex: removed unused macro
-
-2011-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-library.texi: corrected name of gnutls_global_set_mutex.
-
-2011-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in: 
-       Functions for RSA-EXPORT were marked as deprecated.
-
-2011-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, lib/gnutls_errors.c: documentation update
-
-2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-internals.texi: doc updates
-
-2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-library.texi, doc/cha-support.texi: Downloading and
-       installing moved to main document
-
-2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/gnutls.tex: corrected page numbers.
-
-2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-padlock.c: Do not prefer GCM in padlock
-       because it is slow.
-
-2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: updated
-
-2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc: functions and enumerations are being added in
-       index.
-
-2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-gtls-app.texi, doc/cha-internals.texi,
-       doc/gnutls-objects.eps: removed gnutls-objects.
-
-2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: updated
-
-2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_record.c: clarified format of
-       sequence number in gnutls_record_recv_seq.
-
-2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: Added a paragraph on opensc and trousers
-       PKCS #11 modules.
-
-2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86.h: added license
-
-2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-auth.texi, doc/cha-cert-auth.texi,
-       doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
-       doc/latex/gnutls.tex, doc/latex/macros.tex,
-       doc/scripts/mytexi2latex, lib/includes/gnutls/gnutls.h.in: updated
-       documentation. The function descriptions were converted to floats.
-
-2011-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/accelerated/intel/aes-padlock.c: disable the 64-bit
-       padlock until it is tested.
-
-2011-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86.h: corrected typo in cpuid for 386.
-
-2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/mytexi2latex: fix on double arguments
-
-2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, doc/cha-cert-auth.texi, doc/cha-intro-tls.texi,
-       doc/gnutls.texi, doc/latex/Makefile.am, doc/latex/gnutls.tex,
-       doc/latex/macros.tex, doc/scripts/gdoc, doc/scripts/mytexi2latex,
-       doc/scripts/split.pl, lib/includes/gnutls/dtls.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/pkcs12.h,
-       lib/includes/gnutls/x509.h: Modified gdoc to be able to handle
-       enumerations. Only valid to latex.
-
-2011-09-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth/ecdh_common.c, lib/nettle/ecc_free.c,
-       lib/nettle/pk.c, lib/x509/verify-high.c, tests/x509cert-tl.c,
-       tests/x509cert.c: Memory leak fixes in ECC ciphersuites and the
-       trust_list.
-
-2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-gcm-padlock.c,
-       lib/accelerated/intel/aes-padlock.c,
-       lib/accelerated/intel/aes-padlock.h: simplified ecb encryption.
-
-2011-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/prime.c: Fix build warnings.
-
-2011-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pkcs11_write.c: Fix possible infloop and build warning about
-       uninitialied variable.
-
-2011-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/accelerated/intel/aes-gcm-padlock.c,
-       lib/accelerated/intel/aes-padlock.c,
-       lib/accelerated/intel/aes-padlock.h, lib/gnutls_sig.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/x509.h, lib/openpgp/gnutls_openpgp.c,
-       lib/pkcs11_privkey.c: Fix build errors.
-
-2011-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2011-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/getcwd.m4, gl/m4/gnulib-common.m4, gl/m4/largefile.m4,
-       gl/tests/init.sh, gl/tests/lstat.c, gl/tests/open.c,
-       gl/tests/stat.c, gl/tests/test-float.c, gl/unistd.in.h, maint.mk: 
-       Update gnulib files.
-
-2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/nettle/mac.c: converted
-       quick data hashes to _gnutls_hash_fast and the hmac equivalent.
-
-2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-gcm-padlock.c,
-       lib/accelerated/intel/aes-padlock.c,
-       lib/accelerated/intel/aes-padlock.h,
-       lib/accelerated/intel/aes-x86.h, lib/accelerated/intel/padlock.c: 
-       Added padlock support to GCM ciphers.
-
-2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c: do not reset length
-
-2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_extensions.c: Do not send an empty extension
-       structure in server hello. This affects old implementations that do
-       not support extensions. Reported by J. Cameijo Cerdeira.
-
-2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: Corrected documentation for
-       gnutls_certificate_set_x509_trust.  Reported by Stephen Lynch.
-
-2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-internals.texi: minimized example
-
-2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/asm/padlock-x86-64.s,
-       lib/accelerated/intel/asm/padlock-x86.s: Added gnustack flag
-
-2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-gcm-x86.c,
-       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/padlock.c,
-       lib/crypto-api.c, lib/crypto-backend.h, lib/ext/session_ticket.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_constate.c, lib/includes/gnutls/crypto.h,
-       lib/nettle/cipher.c, lib/x509/privkey_pkcs8.c: Added encryption flag
-       to simplify and optimize key expansion.
-
-2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS, lib/accelerated/accelerated.c,
-       lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-gcm-x86.c,
-       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h,
-       lib/accelerated/intel/asm/padlock-x86-64.s,
-       lib/accelerated/intel/asm/padlock-x86.s,
-       lib/accelerated/intel/padlock.c: Added support for VIA padlock based
-       on Andy's code (untested).
-
-2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h: 
-       corrected AES-NI code.
-
-2011-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: simplified
-       gnutls_certificate_set_x509_trust_file. It uses
-       gnutls_certificate_set_x509_trust_mem.
-
-2011-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/x509/x509.c: Modified fix of "Allow CA
-       importing of 0 certificates to succeed".
-       gnutls_x509_crt_list_import() is still failing when no certificates
-       are found and only gnutls_certificate_set_x509_trust_mem() returns
-       zero when no certificates are found.
-
-2011-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_pubkey.c, lib/includes/gnutls/abstract.h,
-       lib/libgnutls.map, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, lib/pkcs11_write.c, lib/x509/key_decode.c,
-       lib/x509/key_encode.c, lib/x509/privkey.c, lib/x509/x509_int.h,
-       src/certtool-common.h, src/certtool.c, src/pkcs11.c, src/prime.c: 
-       Added support to read elliptic curve public keys from PKCS #11
-       tokens (untested).
-
-2011-09-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/pkcs11.h, lib/libgnutls.map,
-       lib/pkcs11.c, lib/pkcs11_int.h, lib/pkcs11_privkey.c,
-       lib/pkcs11_write.c, src/certtool-common.c, src/certtool-common.h,
-       src/certtool-gaa.c, src/certtool.c, src/certtool.gaa,
-       src/p11common.c, src/p11tool-gaa.c, src/p11tool-gaa.h,
-       src/p11tool.c, src/p11tool.gaa, src/p11tool.h, src/pkcs11.c: Added
-       gnutls_pkcs11_privkey_generate().  p11tool can be used to generate
-       keys in tokens.
-
-2011-09-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/x509.c, tests/parse_ca.c: libgnutls: Allow CA
-       importing of 0 certificates to succeed.  Reported by Jonathan Nieder <jrnieder@gmail.com> in
-       <http://bugs.debian.org/640639>.
-
-2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: updated changelog
-
-2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * README, README-alpha: simplified README
-
-2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-x86.h: documented extra alignment
-
-2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: cleaned-up code
-
-2011-09-04  Andreas Metzler <ametzler@downhill.at.eu.org>
-
-       * configure.ac: Add p11-kit-1 to gnutls.pc Requires.private.  If building with PKCS#11 support append p11-kit-1 to gnutls.pc
-       Requires.private.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: documentation updates
-
-2011-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutlsxx.cpp: updated for lowat
-
-2011-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-cert-auth.texi,
-       doc/cha-functions.texi, doc/cha-gtls-app.texi,
-       doc/cha-intro-tls.texi: documentation updates. @acronym was removed
-       from the cindex.
-
-2011-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h: set_lowat was removed as a macro.
-
-2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-programs.texi: simplified examples
-
-2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-serv-pgp.c, tests/openpgp-certs/testcerts: 
-       explicitly enable openpgp certtype in tests.
-
-2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated
-
-2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, m4/hooks.m4: bumped version
-
-2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-bib.texi, doc/cha-gtls-app.texi, doc/latex/gnutls.bib: 
-       more doc on MTU.
-
-2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgpself.c: explicitly enable openpgp certtype in tests.
-
-2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, lib/system_override.c: Added documentation
-       on asynchronous operation.
-
-2011-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: do not exit configure if p11-kit is not found.
-
-2011-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_priority.c: OpenPGP certificate type priority is
-       not enabled by default.
-
-2011-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-gtls-app.texi, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_priority.c: Added %NO_EXTENSIONS
-       priority string.
-
-2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/printlist.c: doc fixes
-
-2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/testcompat-main: disabled test
-
-2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openssl_compat.c, libextra/openssl_compat.h: removed old
-       and unused compatibility functions.
-
-2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/x509.h, lib/x509/crl.c, lib/x509/crq.c,
-       lib/x509/extensions.c, lib/x509/key_decode.c, lib/x509/output.c,
-       lib/x509/privkey.c, lib/x509/x509.c, lib/x509/x509_int.h,
-       libextra/gnutls_openssl.c, src/crywrap/crywrap.c: corrected sign
-       type errors for integers.
-
-2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: Corrected error checking in
-       _gnutls_send_int().
-
-2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: doc updates
-
-2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool-cfg.c, src/common.h: removed unneeded header.
-       Documented updates.
-
-2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/ecc.h, lib/nettle/ecc_free.c,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
-       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_dbl_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/ecc_verify_hash.c: Avoid assert() and do not include
-       needless headers.
-
-2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/testcompat: skip if datefudge is not available
-
-2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/x86.h: Modified cpuid for 32-bit x86 to avoid a
-       gcc issue (not finding a register).
-
-2011-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/Makefile.am, src/benchmark-cipher.c,
-       src/benchmark-tls.c, src/benchmark.h, src/cli-gaa.c, src/cli-gaa.h,
-       src/cli.gaa: Benchmark applications were incorporated to gnutls-cli
-
-2011-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/ciphersuites.c: Corrected DH-ANON ciphersuite
-       names.
-
-2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/gnutls-pgp.eps, doc/gnutls-x509.eps: 
-       updated figures.
-
-2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/x509.c: XmppAddr -> UTF8String
-
-2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/openpgp/gnutls_openpgp.c, lib/openpgp/privkey.c,
-       lib/x509/x509.c: more updates in private key copy.
-
-2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-x86.h: removed unused variable.
-
-2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_privkey.c, lib/gnutls_x509.c,
-       lib/includes/gnutls/abstract.h, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/gnutls_openpgp.h, lib/openpgp/privkey.c,
-       lib/x509/x509.c: gnutls_certificate_set_x509_key() and
-       gnutls_certificate_set_openpgp_key() operate as in gnutls 2.10.x and
-       do not require to hold the structures.
-
-2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-gcm-x86.c,
-       lib/accelerated/intel/aes-x86.c: removed unused variables.
-
-2011-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: Allow out-of-order change_cipher_spec in
-       DTLS.
-
-2011-08-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/cha-intro-tls.texi, doc/examples/ex-cert-select-pkcs11.c,
-       lib/gnutls_buffers.c, lib/gnutls_pubkey.c, lib/gnutls_record.c: 
-       documentation changes.
-
-2011-08-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-client-srp.c, doc/examples/ex-serv-srp.c: 
-       gnutls/extra.h is not required for SRP.
-
-2011-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/gnutls.tex: leave an empty page
-
-2011-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-bib.texi, doc/cha-cert-auth.texi,
-       doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
-       doc/latex/gnutls.bib, doc/latex/gnutls.tex: documentation updates
-
-2011-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: unlock rnd mutex on error.
-
-2011-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-bib.texi, doc/latex/gnutls.bib: bibliography updated
-
-2011-08-22  Andreas Metzler <ametzler@debian.org>
-
-       * lib/libgnutls.map: Export export_gnutls_openpgp_privkey_sign_hash.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/system.c: AIX check moved to system.c.
-
-2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crywrap/crywrap.c: Handle memory allocation errors.
-
-2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am, doc/manpages/crywrap.8: The crywrap
-       manpage was removed due to license reasons.
-
-2011-08-22  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/tests/priorities.scm: guile: Fix `priorities' test to use
-       `run-test'.  This is a followup to commit
-       cd7b8102316cd4151356c4b2b7909c7435593890 ("guile: Fix tests to match
-       the `exit' behavior introduced in Guile 2.0.1.").
-
-2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crywrap/Makefile.am: include README to distribution.
-
-2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.c: documentation fixes.
-
-2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/cha-internals.texi,
-       doc/cha-intro-tls.texi, doc/cha-library.texi,
-       doc/scripts/mytexi2latex: Use texinfo's word break.
-
-2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, m4/hooks.m4: updated for release
-
-2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crywrap/Makefile.am: Added missing file
-
-2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * po/cs.po.in, po/fi.po.in, po/nl.po.in, po/pl.po.in, po/sv.po.in,
-       po/uk.po.in: Sync with TP.
-
-2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: corrected typo
-
-2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: Added hack for AIX systems that may not set
-       errno property on EAGAIN.
-
-2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select-pkcs11.c: simplified PKCS #11 token
-       example.
-
-2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
-       lib/gnutls_record.c, lib/system_override.c: documentation updates
-
-2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: updated ignored files.
-
-2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/resume.c: Corrected session resumption test.
-
-2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/utils.c: Avoid using vfprintf() and use a combination of
-       vsnprintf and fputs instead. My gnulib has issues with them.
-
-2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4: added vfprintf-posix
-       (needed by tests)
-
-2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: depend on p11-kit 0.4+.
-
-2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/Makefile.am, lib/auth/cert.c, lib/auth/cert.h,
-       lib/gnutls_cert.c, lib/gnutls_str_array.h, lib/gnutls_x509.c,
-       lib/openpgp/gnutls_openpgp.c: Removed the limitation of one name per
-       certificate.
-
-2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi: rephrased text on anonymous authentication.
-
-2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-programs.texi: small update in psktool
-
-2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated crywrap
-
-2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented changes
-
-2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/cert.c, lib/auth/cert.h, lib/gnutls_cert.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/gnutls_x509.c,
-       lib/openpgp/gnutls_openpgp.c: gnutls_certificate_set_x509_key_file()
-       and friends support server name indication.  If multiple
-       certificates are set using this function the proper one will be
-       selected during a handshake, with the limitation of a single name
-       per certificate.
-
-2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: Documentation fixes.
-
-2011-08-17  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, src/crywrap/crywrap.c: Fix syntax-check nits.
-
-2011-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/algorithms/ciphers.c: Added AES-256-GCM. Reported by
-       Benjamin Hof.
-
-2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fix
-
-2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, src/p11common.c: 
-       Introduced GNUTLS_PKCS11_PIN_WRONG flag to indicate the previously
-       given PIN is wrong.
-
-2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fix
-
-2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-programs.texi: some discussion on tokens.
-
-2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Corrected issue when asking multiple times for PIN.
-
-2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: corrected configure test
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crywrap/crywrap.c: dhparams have now the 'r' option.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crywrap/crywrap.c: use audit_log
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crywrap/crywrap.c, src/crywrap/crywrap.h: removed unneeded
-       defintions.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: unload_file was modified to accept a pointer.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/crywrap/Makefile.am, src/crywrap/crywrap.c: corrected
-       child process cleanup and added option to specify diffie hellman
-       parameters file.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/crywrap.8, src/crywrap/crywrap.c,
-       src/crywrap/crywrap.h: Corrected crywrap's verification procedure.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: use gnutls_sec_param_to_pk_bits() for DH parameter
-       generation.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, configure.ac, doc/manpages/Makefile.am,
-       doc/manpages/crywrap.8, gl/Makefile.am, gl/alphasort.c,
-       gl/argp-ba.c, gl/argp-eexst.c, gl/argp-fmtstream.c,
-       gl/argp-fmtstream.h, gl/argp-fs-xinl.c, gl/argp-help.c,
-       gl/argp-namefrob.h, gl/argp-parse.c, gl/argp-pin.c, gl/argp-pv.c,
-       gl/argp-pvh.c, gl/argp-xinl.c, gl/argp.h, gl/basename-lgpl.c,
-       gl/dirent.in.h, gl/dirname-lgpl.c, gl/dirname.h, gl/dosname.h,
-       gl/fpucw.h, gl/frexp.c, gl/frexpl.c, gl/fseeko.c, gl/fseterr.c,
-       gl/fseterr.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c,
-       gl/getopt_int.h, gl/getsubopt.c, gl/isnan.c, gl/isnand-nolibm.h,
-       gl/isnand.c, gl/isnanf-nolibm.h, gl/isnanf.c, gl/isnanl-nolibm.h,
-       gl/isnanl.c, gl/m4/alphasort.m4, gl/m4/argp.m4, gl/m4/dirent_h.m4,
-       gl/m4/dirname.m4, gl/m4/double-slash-root.m4, gl/m4/dup2.m4,
-       gl/m4/eealloc.m4, gl/m4/environ.m4, gl/m4/exponentd.m4,
-       gl/m4/exponentf.m4, gl/m4/exponentl.m4, gl/m4/frexp.m4,
-       gl/m4/frexpl.m4, gl/m4/getcwd.m4, gl/m4/getopt.m4,
-       gl/m4/getsubopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/isnand.m4, gl/m4/isnanf.m4, gl/m4/isnanl.m4, gl/m4/ldexpl.m4,
-       gl/m4/lstat.m4, gl/m4/malloca.m4, gl/m4/math_h.m4,
-       gl/m4/mempcpy.m4, gl/m4/mode_t.m4, gl/m4/nocrash.m4, gl/m4/open.m4,
-       gl/m4/printf-frexp.m4, gl/m4/printf-frexpl.m4, gl/m4/putenv.m4,
-       gl/m4/rawmemchr.m4, gl/m4/scandir.m4, gl/m4/setenv.m4,
-       gl/m4/signbit.m4, gl/m4/sleep.m4, gl/m4/stat.m4,
-       gl/m4/strchrnul.m4, gl/m4/strndup.m4, gl/m4/strnlen.m4,
-       gl/m4/symlink.m4, gl/m4/sysexits.m4, gl/m4/vfprintf-posix.m4,
-       gl/m4/vprintf-posix.m4, gl/math.in.h, gl/mempcpy.c,
-       gl/printf-frexp.c, gl/printf-frexp.h, gl/printf-frexpl.c,
-       gl/printf-frexpl.h, gl/rawmemchr.c, gl/rawmemchr.valgrind,
-       gl/scandir.c, gl/signbitd.c, gl/signbitf.c, gl/signbitl.c,
-       gl/sleep.c, gl/strchrnul.c, gl/strchrnul.valgrind, gl/stripslash.c,
-       gl/strndup.c, gl/strnlen.c, gl/sysexits.in.h, gl/tests/Makefile.am,
-       gl/tests/dummy.c, gl/tests/dup2.c, gl/tests/fpucw.h,
-       gl/tests/getcwd-lgpl.c, gl/tests/ignore-value.h, gl/tests/lstat.c,
-       gl/tests/malloca.c, gl/tests/malloca.h, gl/tests/malloca.valgrind,
-       gl/tests/minus-zero.h, gl/tests/nan.h, gl/tests/open.c,
-       gl/tests/putenv.c, gl/tests/same-inode.h, gl/tests/setenv.c,
-       gl/tests/stat.c, gl/tests/symlink.c, gl/tests/test-argp-2.sh,
-       gl/tests/test-argp.c, gl/tests/test-dirent.c, gl/tests/test-dup2.c,
-       gl/tests/test-environ.c, gl/tests/test-fprintf-posix.h,
-       gl/tests/test-frexp.c, gl/tests/test-frexpl.c,
-       gl/tests/test-fseeko3.c, gl/tests/test-fseeko3.sh,
-       gl/tests/test-fseterr.c, gl/tests/test-getcwd-lgpl.c,
-       gl/tests/test-getopt.c, gl/tests/test-getopt.h,
-       gl/tests/test-getopt_long.h, gl/tests/test-ignore-value.c,
-       gl/tests/test-isnand-nolibm.c, gl/tests/test-isnand.h,
-       gl/tests/test-isnanf-nolibm.c, gl/tests/test-isnanf.h,
-       gl/tests/test-isnanl-nolibm.c, gl/tests/test-isnanl.h,
-       gl/tests/test-lstat.c, gl/tests/test-lstat.h,
-       gl/tests/test-malloc-gnu.c, gl/tests/test-malloca.c,
-       gl/tests/test-math.c, gl/tests/test-open.c, gl/tests/test-open.h,
-       gl/tests/test-printf-frexp.c, gl/tests/test-printf-frexpl.c,
-       gl/tests/test-printf-posix.h, gl/tests/test-printf-posix.output,
-       gl/tests/test-rawmemchr.c, gl/tests/test-setenv.c,
-       gl/tests/test-signbit.c, gl/tests/test-sleep.c,
-       gl/tests/test-stat.c, gl/tests/test-stat.h,
-       gl/tests/test-strchrnul.c, gl/tests/test-strnlen.c,
-       gl/tests/test-symlink.c, gl/tests/test-symlink.h,
-       gl/tests/test-sysexits.c, gl/tests/test-unsetenv.c,
-       gl/tests/test-vfprintf-posix.c, gl/tests/test-vfprintf-posix.sh,
-       gl/tests/test-vprintf-posix.c, gl/tests/test-vprintf-posix.sh,
-       gl/tests/unsetenv.c, gl/vfprintf.c, gl/vprintf.c, m4/hooks.m4,
-       src/Makefile.am, src/crywrap/Makefile.am, src/crywrap/README,
-       src/crywrap/crywrap.c, src/crywrap/crywrap.h, src/crywrap/primes.h: 
-       Added crywrap to the distributed programs.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/.gitignore: files to ignore
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-internals.texi: doc updates
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-cert-auth.texi,
-       doc/cha-ciphersuites.texi, doc/cha-errors.texi,
-       doc/cha-functions.texi, doc/cha-gtls-app.texi,
-       doc/cha-internals.texi, doc/cha-intro-tls.texi,
-       doc/cha-library.texi, doc/cha-support.texi: do not use capitals in
-       index names.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, doc/latex/.gitignore: more files to ignore.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/pkcs11.c: If a module is dlopened twice, then
-       deinitialize the second load.
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
-       doc/cha-library.texi, lib/gnutls_buffers.c, lib/gnutls_record.c: 
-       documentation updates
-
-2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-library.texi: memory handling section is no longer
-       applicable
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: Added discussion on DTLS functionality
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-programs.texi, doc/cha-support.texi, doc/cha-tls-app.texi: 
-       corrected typos
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: updated openssl text
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: correct typos
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/gnutls-cli.1: do not escape \#
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/cha-intro-tls.texi: more updates
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-bib.texi, doc/cha-preface.texi, doc/latex/gnutls.bib: 
-       Added reference to anderson's book
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-cert-auth.texi, doc/cha-internals.texi,
-       doc/gnutls-certificate-user-use-case.eps,
-       doc/gnutls-extensions.eps, doc/gnutls.texi,
-       doc/scripts/mytexi2latex, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/pkcs12.c, lib/x509/privkey_pkcs8.c, lib/x509/x509.c: 
-       Internals section updated.
-
-2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/examples/ex-crq.c,
-       lib/gnutls_pubkey.c, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/x509.h, lib/pkcs11.c, lib/pkcs11_write.c,
-       lib/x509/crq.c: Documentation updates. gnutls_x509_crq_sign2() and
-       gnutls_x509_crl_sign2() were removed from the deprecate list to ease
-       generation of crl and crq structures.
-
-2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/alert-printlist.c, doc/cha-intro-tls.texi,
-       doc/cha-library.texi, doc/cha-programs.texi, doc/errcodes.c,
-       doc/printlist.c: updates
-
-2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/gnutls.tex: changed paper size.
-
-2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: doc update
-
-2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/alert-printlist.c, doc/errcodes.c, doc/printlist.c: reduced
-       space taken by descriptions.
-
-2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi: more updates.
-
-2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented fixes
-
-2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h: 
-       Force alignment for AES-NI to the runtime rather than on the
-       structures.  Corrects issue on some systems (reported by Andreas
-       Radke).
-
-2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
-       doc/cha-library.texi, lib/system_override.c: Added session
-       initialization discussion
-
-2011-08-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: more updates
-
-2011-08-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-gtls-app.texi, lib/gnutls_psk.c,
-       lib/gnutls_x509.c, lib/openpgp/gnutls_openpgp.c: updated
-       documentation
-
-2011-08-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: document flags
-
-2011-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: corrected typo
-
-2011-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/README: removed reference to pakchois
-
-2011-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Prevent from loading twice the same module.
-
-2011-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-x86.s: Added note.GNU-stack to
-       prevent marking the library as using an executable stack. Reported
-       by Andreas Metzler.
-
-2011-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: bumped version
-
-2011-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/asm/appro-aes-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-x86.s: Included appro's updates
-       to AES-NI.
-
-2011-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/cert.c: better placement of ifdefs.
-
-2011-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-gtls-app.texi, doc/cha-internals.texi,
-       doc/gnutls-extensions.eps, doc/gnutls-extensions_st.eps,
-       doc/gnutls-mod_auth_st.eps, doc/gnutls-modauth.eps,
-       doc/latex/Makefile.am, doc/latex/gnutls.tex,
-       doc/scripts/mytexi2latex: Added discussion of the provided
-       cryptographic functions. Internals is now included in the latex
-       document (needs rewrite though)
-
-2011-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/accelerated/Makefile.am,
-       lib/accelerated/accelerated.c, lib/accelerated/cryptodev.c,
-       lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-gcm-x86.c,
-       lib/accelerated/intel/aes-x86.c, lib/algorithms.h,
-       lib/algorithms/Makefile.am, lib/algorithms/cert_types.c,
-       lib/algorithms/ciphers.c, lib/algorithms/ciphersuites.c,
-       lib/algorithms/ecc.c, lib/algorithms/kx.c, lib/algorithms/mac.c,
-       lib/algorithms/protocols.c, lib/algorithms/publickey.c,
-       lib/algorithms/secparams.c, lib/algorithms/sign.c,
-       lib/auth/Makefile.am, lib/auth/anon.c, lib/auth/anon.h,
-       lib/auth/anon_ecdh.c, lib/auth/cert.c, lib/auth/cert.h,
-       lib/auth/dh_common.c, lib/auth/dh_common.h, lib/auth/dhe.c,
-       lib/auth/dhe_psk.c, lib/auth/ecdh_common.c, lib/auth/ecdh_common.h,
-       lib/auth/psk.c, lib/auth/psk.h, lib/auth/psk_passwd.c,
-       lib/auth/psk_passwd.h, lib/auth/rsa.c, lib/auth/rsa_export.c,
-       lib/auth/srp.c, lib/auth/srp.h, lib/auth/srp_passwd.c,
-       lib/auth/srp_passwd.h, lib/auth/srp_rsa.c, lib/auth/srp_sb64.c,
-       lib/crypto-api.c, lib/crypto-backend.c, lib/crypto-backend.h,
-       lib/crypto.h, lib/debug.c, lib/debug.h, lib/ext/Makefile.am,
-       lib/ext/cert_type.c, lib/ext/cert_type.h, lib/ext/ecc.c,
-       lib/ext/ecc.h, lib/ext/max_record.c, lib/ext/max_record.h,
-       lib/ext/safe_renegotiation.c, lib/ext/safe_renegotiation.h,
-       lib/ext/server_name.c, lib/ext/server_name.h,
-       lib/ext/session_ticket.c, lib/ext/session_ticket.h,
-       lib/ext/signature.c, lib/ext/signature.h, lib/ext/srp.c,
-       lib/ext/srp.h, lib/gcrypt/Makefile.am, lib/gcrypt/cipher.c,
-       lib/gcrypt/init.c, lib/gcrypt/mac.c, lib/gcrypt/mpi.c,
-       lib/gcrypt/pk.c, lib/gcrypt/rnd.c, lib/gnutls_alert.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth.h,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cert.c,
-       lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
-       lib/gnutls_ecc.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_global.c, lib/gnutls_global.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_helper.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_mbuffers.c,
-       lib/gnutls_mbuffers.h, lib/gnutls_mem.c, lib/gnutls_mem.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_num.c,
-       lib/gnutls_num.h, lib/gnutls_pcert.c, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_priority.c, lib/gnutls_privkey.c,
-       lib/gnutls_psk.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_srp.c,
-       lib/gnutls_srp.h, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/gnutls_str.c, lib/gnutls_str.h, lib/gnutls_supplemental.c,
-       lib/gnutls_supplemental.h, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/gnutls_v2_compat.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       lib/hash.c, lib/includes/Makefile.am,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/dtls.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/gnutlsxx.h,
-       lib/includes/gnutls/openpgp.h, lib/includes/gnutls/pkcs11.h,
-       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/libgnutlsxx.map, lib/locks.c,
-       lib/nettle/Makefile.am, lib/nettle/cipher.c, lib/nettle/ecc_free.c,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
-       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_points.c,
-       lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_dbl_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/ecc_verify_hash.c, lib/nettle/egd.c, lib/nettle/init.c,
-       lib/nettle/mac.c, lib/nettle/mpi.c, lib/nettle/pk.c,
-       lib/nettle/rnd.c, lib/opencdk/Makefile.am, lib/opencdk/armor.c,
-       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
-       lib/opencdk/main.c, lib/opencdk/main.h, lib/opencdk/misc.c,
-       lib/opencdk/new-packet.c, lib/opencdk/opencdk.h,
-       lib/opencdk/packet.h, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/stream.h, lib/opencdk/types.h,
-       lib/opencdk/write-packet.c, lib/openpgp/Makefile.am,
-       lib/openpgp/compat.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
-       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
-       lib/pkcs11.c, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
-       lib/pkcs11_write.c, lib/random.c, lib/random.h, lib/system.c,
-       lib/system_override.c, lib/x509/Makefile.am, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/crl.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/extensions.c,
-       lib/x509/key_decode.c, lib/x509/key_encode.c, lib/x509/mpi.c,
-       lib/x509/output.c, lib/x509/pbkdf2-sha1.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c,
-       lib/x509/verify-high.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_int.h, lib/x509/x509_write.c, lib/x509_b64.c,
-       lib/x509_b64.h: Clarify license and copyright.
-
-2011-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * README: Clarify licensing.
-
-2011-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/AUTHORS, lib/ChangeLog, lib/NEWS, lib/autogen.sh,
-       lib/build-aux/arg-nonnull.h, lib/build-aux/c++defs.h,
-       lib/build-aux/config.rpath, lib/build-aux/warn-on-use.h,
-       libextra/AUTHORS, libextra/COPYING, libextra/ChangeLog,
-       libextra/NEWS, libextra/README, libextra/build-aux/config.rpath: 
-       Remove unused files.
-
-2011-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/includes/gnutls/extra.h: Finish removal of inner
-       application extension support.
-
-2011-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/abstract.h, lib/includes/gnutls/dtls.h: More
-       GTK-DOC fixes.
-
-2011-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * .x-sc_GPL_version, .x-sc_avoid_if_before_free,
-       .x-sc_bindtextdomain, .x-sc_cast_of_alloca_return_value,
-       .x-sc_cast_of_argument_to_free, .x-sc_file_system,
-       .x-sc_m4_quote_check, .x-sc_makefile_check, .x-sc_program_name,
-       .x-sc_prohibit_HAVE_MBRTOWC, .x-sc_prohibit_S_IS_definition,
-       .x-sc_prohibit_empty_lines_at_EOF,
-       .x-sc_prohibit_strings_without_use, .x-sc_space_tab, .x-sc_the_the,
-       .x-sc_two_space_separator_in_usage, .x-sc_useless_cpp_parens,
-       GNUmakefile, THANKS, build-aux/arg-nonnull.h, build-aux/c++defs.h,
-       build-aux/config.rpath, build-aux/snippet/_Noreturn.h,
-       build-aux/snippet/arg-nonnull.h, build-aux/snippet/c++defs.h,
-       build-aux/snippet/warn-on-use.h, build-aux/useless-if-before-free,
-       build-aux/vc-list-files, build-aux/warn-on-use.h, cfg.mk,
-       configure.ac, doc/Makefile.am, gl/Makefile.am, gl/alignof.h,
-       gl/alloca.c, gl/errno.in.h, gl/error.c, gl/float.c, gl/float.in.h,
-       gl/fseek.c, gl/fseeko.c, gl/ftell.c, gl/intprops.h,
-       gl/m4/alloca.m4, gl/m4/errno_h.m4, gl/m4/error.m4,
-       gl/m4/extensions.m4, gl/m4/float_h.m4, gl/m4/fpieee.m4,
-       gl/m4/fseek.m4, gl/m4/fseeko.m4, gl/m4/ftell.m4, gl/m4/ftello.m4,
-       gl/m4/getdelim.m4, gl/m4/getline.m4, gl/m4/getpagesize.m4,
-       gl/m4/getpass.m4, gl/m4/gettime.m4, gl/m4/gettimeofday.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/hmac-md5.m4, gl/m4/include_next.m4,
-       gl/m4/largefile.m4, gl/m4/lseek.m4, gl/m4/malloc.m4, gl/m4/md5.m4,
-       gl/m4/memchr.m4, gl/m4/memmem.m4, gl/m4/memxor.m4,
-       gl/m4/mmap-anon.m4, gl/m4/po.m4, gl/m4/printf.m4,
-       gl/m4/read-file.m4, gl/m4/realloc.m4, gl/m4/snprintf.m4,
-       gl/m4/strcase.m4, gl/m4/strdup.m4, gl/m4/strerror.m4,
-       gl/m4/string_h.m4, gl/m4/strings_h.m4, gl/m4/strverscmp.m4,
-       gl/m4/time_r.m4, gl/m4/vsnprintf.m4, gl/m4/warn-on-use.m4,
-       gl/m4/warnings.m4, gl/netdb.in.h, gl/netinet_in.in.h,
-       gl/stdarg.in.h, gl/stddef.in.h, gl/stdint.in.h, gl/stdio.in.h,
-       gl/stdlib.in.h, gl/strerror-override.c, gl/strerror-override.h,
-       gl/strerror.c, gl/string.in.h, gl/strings.in.h, gl/sys_socket.in.h,
-       gl/sys_stat.in.h, gl/sys_time.in.h, gl/sys_uio.in.h,
-       gl/tests/Makefile.am, gl/tests/fcntl.in.h, gl/tests/fpucw.h,
-       gl/tests/init.sh, gl/tests/macros.h, gl/tests/test-float.c,
-       gl/tests/test-fseek.c, gl/tests/test-fseek.sh,
-       gl/tests/test-fseek2.sh, gl/tests/test-ftell.c,
-       gl/tests/test-ftell.sh, gl/tests/test-ftell2.sh,
-       gl/tests/test-ftell3.c, gl/tests/test-intprops.c,
-       gl/tests/test-snprintf.c, gl/tests/test-strerror.c,
-       gl/tests/test-vc-list-files-cvs.sh,
-       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
-       gl/tests/test-vsnprintf.c, gl/time.in.h, gl/timespec.h,
-       gl/unistd.in.h, gl/verify.h, gl/wchar.in.h, lib/Makefile.am,
-       lib/hash.c, lib/pkcs11_privkey.c, maint.mk, src/benchmark-cipher.c,
-       src/certtool.c, src/cli.c, src/serv.c, tests/Makefile.am,
-       tests/scripts/common.sh: Update gnulib files.  Fix syntax-check
-       usage.
-
-2011-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, README: Add NEWS entries.  Use copyright ranges (now
-       permitted).
-
-2011-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/cs.po.in, po/fi.po.in, po/nl.po.in, po/pl.po.in,
-       po/sv.po.in, po/uk.po.in: Sync with TP.
-
-2011-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, doc/reference/Makefile.am,
-       doc/reference/gnutls-docs.sgml, lib/algorithms/secparams.c,
-       lib/crypto-api.c, lib/gnutls_cert.c, lib/gnutls_db.c,
-       lib/gnutls_global.c, lib/gnutls_privkey.c, lib/gnutls_pubkey.c,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/pkcs11.h, lib/locks.c, lib/openpgp/privkey.c,
-       lib/pkcs11.c, lib/pkcs11_secret.c, lib/pkcs11_write.c,
-       lib/random.c, lib/system_override.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/privkey.c, lib/x509/x509.c: More GTK-DOC
-       improvements.
-
-2011-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Simplify GTK-DOC makefile
-       IGNORE_HFILES.
-
-2011-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/gnutls.h.in: updated
-
-2011-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/algorithms/sign.c, lib/gnutls_dtls.c, lib/gnutls_pubkey.c,
-       lib/gnutls_record.c, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/dtls.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs11.h, lib/nettle/ecc_free.c,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
-       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_points.c,
-       lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_dbl_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/ecc_verify_hash.c, lib/pkcs11.c: Fix GTK-DOC manual.
-
-2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: detect premature termination of connection
-
-2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/pkcs11.h, lib/pkcs11.c: the
-       deprecated_config_file from 2.12.x was incorporated.
-
-2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: documentation update
-
-2011-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, doc/reference/gnutls-docs.sgml,
-       lib/algorithms/ecc.c, lib/crypto-api.c, lib/gnutls_alert.c,
-       lib/gnutls_cert.c, lib/gnutls_dtls.c, lib/gnutls_global.c,
-       lib/gnutls_pcert.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
-       lib/gnutls_state.c, lib/system_override.c, lib/x509/crl.c,
-       lib/x509/privkey.c, lib/x509/verify-high.c, lib/x509/x509.c: Add
-       GTK-DOC Since: tags for 3.0.0 additions.
-
-2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_privkey.c: added asserts.
-
-2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * README, README-alpha: Refer to nettle alone and p11-kit.
-
-2011-08-01  Stef Walter <stefw@collabora.co.uk>
-
-       * lib/pkcs11.c: Don't try to do PKCS#11 login if session is already
-       logged in.   * It is possible for new PKCS#11 sessions to be logged in if    another logged in session already exists.   * In these cases, don't log in, but detect the condition and    return success.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-08-01  Stef Walter <stefw@collabora.co.uk>
-
-       * lib/pkcs11_privkey.c: When finding private keys fail, return error
-       code.   * Previously this would result in an endless loop.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-08-01  Stef Walter <stefw@collabora.co.uk>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c: Mark the config
-       argument of gnutls_pkcs11_init() as unused  * Since its no longer used.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_str.h, lib/gnutls_x509.c,
-       lib/includes/gnutls/x509.h, lib/x509/x509.c, tests/x509cert.c: Added
-       GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED flag for
-       gnutls_x509_crt_list_import.  It checks whether the list to be
-       imported is properly sorted.
-
-2011-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_errors.c, lib/gnutls_x509.c,
-       lib/includes/gnutls/gnutls.h.in: Added
-       GNUTLS_E_CERTIFICATE_LIST_UNSORTED.  If a certificate list is loaded
-       then verify that it is sorted with order to starts with the subject
-       and finished with the trusted root. That way we make sure we don't
-       send data that violate the TLS protocol.
-
-2011-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/latex/macros.tex: documentation
-       updates.
-
-2011-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: updated changelog
-
-2011-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: released 3.0.0
-
-2011-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: updated version
-
-2011-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool.gaa: Corrected typo.
-
-2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented updates.
-
-2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: Added Petr.
-
-2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pcert.c, lib/gnutls_privkey.c,
-       lib/includes/gnutls/abstract.h, lib/libgnutls.map: Added
-       gnutls_pcert_list_import_x509_raw() and few doc fixes.
-
-2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.pc.in: corrected for libnettle.
-
-2011-06-24  Andreas Metzler <ametzler@downhill.at.eu.org>
-
-       * configure.ac: fix zlib handling in gnutls.pc Only add zlib to gnutls.pc's Requies.private if zlib ships a
-       pkg-config file. Ancient (<< 1.2.3.1) versions don't. Otherwise add
-       -lz to Libs.private.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-client-srp.c, doc/examples/ex-serv-srp.c: 
-       gnutls_global_init_extra() is not needed for SRP.
-
-2011-07-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented changes.
-
-2011-07-25  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
-
-       * lib/gnutls_buffers.c: writev_emu: stop on the first incomplete
-       write Just like standard writev, we should only move on to the next block
-       if all the previous ones have been successfully written out.
-       Otherwise there is a potential for data loss and/or confusing push
-       functions.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/fdl.tex: increased size of fdl.
-
-2011-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Added debug message to indicate usage of
-       compatibility mode for /etc/gnutls/pkcs11.conf
-
-2011-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS: removed pgp key from authors file.
-
-2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: updated changelog.
-
-2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, doc/announce.txt, m4/hooks.m4: released 2.99.4
-
-2011-06-29  Petr Písař <petr.pisar@atlas.cz>
-
-       * lib/gnutls_privkey.c: Honor uninitialized private key in
-       destructor Fixes bug #107730.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Corrected initialization of key when generating
-       request. Reported by Petr Pisar.
-
-2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated.
-
-2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_rsa_export.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509_int.h: The crippled status
-       of an gnutls_x509_privkey_t was removed.
-
-2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-pkcs11-list.c: Example compilation fix.
-
-2011-07-07  Stef Walter <stefw@collabora.co.uk>
-
-       * configure.ac, lib/includes/gnutls/pkcs11.h, lib/pkcs11.c,
-       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_write.c: pkcs11:
-       Use p11_kit_pin_xxx() functionality when 'pinfile' is in uris.   * This allows other apps to register a handler for a specific
-          pinfile and then that application will be able to provide the PIN
-          for those URIs.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-07-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Added compatibility mode with
-       /etc/gnutls/pkcs11.conf
-
-2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-tls-app.texi: Updates in upward negotiation section.
-
-2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/gnutls.bib: Corrected bibliography
-
-2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/cha-intro-tls.texi, doc/cha-library.texi,
-       doc/cha-programs.texi, doc/cha-tls-app.texi: corrected section
-       names.
-
-2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-library.texi, doc/cha-support.texi, lib/gnutls_errors.c,
-       lib/gnutls_srp.c: Updated information on required libraries.
-
-2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/cha-intro-tls.texi, doc/cha-library.texi, doc/cha-preface.texi: 
-       Corrected typos.
-
-2011-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/.gitignore, doc/Makefile.am, doc/alert-printlist.c,
-       doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/cha-intro-tls.texi, doc/cha-library.texi, doc/gnutls.texi,
-       doc/latex/Makefile.am, doc/latex/gnutls.tex, doc/latex/macros.tex,
-       doc/scripts/gdoc, doc/scripts/mytexi2latex, doc/scripts/sort1.pl,
-       doc/scripts/split.pl, lib/gnutls_x509.c: updated function listing.
-
-2011-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map: Added gnutls_alert_get_strname().
-
-2011-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/cert_types.c, lib/algorithms/ciphers.c,
-       lib/algorithms/ecc.c, lib/algorithms/kx.c, lib/algorithms/mac.c,
-       lib/algorithms/protocols.c, lib/algorithms/publickey.c,
-       lib/algorithms/secparams.c, lib/algorithms/sign.c, lib/auth/cert.c,
-       lib/auth/psk.c, lib/auth/rsa_export.c, lib/crypto-api.c,
-       lib/crypto-backend.c, lib/ext/max_record.c,
-       lib/ext/safe_renegotiation.c, lib/ext/server_name.c,
-       lib/ext/session_ticket.c, lib/gcrypt/mpi.c, lib/gnutls_alert.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_dh_primes.c, lib/gnutls_dtls.c,
-       lib/gnutls_errors.c, lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_mpi.c, lib/gnutls_pcert.c, lib/gnutls_priority.c,
-       lib/gnutls_privkey.c, lib/gnutls_psk.c, lib/gnutls_pubkey.c,
-       lib/gnutls_record.c, lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/gnutls_str.c, lib/gnutls_ui.c, lib/gnutls_x509.c,
-       lib/minitasn1/decoding.c, lib/minitasn1/errors.c,
-       lib/nettle/ecc_verify_hash.c, lib/opencdk/kbnode.c,
-       lib/opencdk/sig-check.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
-       lib/openpgp/pgp.c, lib/openpgp/privkey.c, lib/pkcs11.c,
-       lib/pkcs11_privkey.c, lib/pkcs11_secret.c, lib/pkcs11_write.c,
-       lib/random.c, lib/x509/common.c, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/extensions.c, lib/x509/output.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c,
-       lib/x509/verify-high.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_write.c: documentation fixes
-
-2011-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/COPYING, lib/accelerated/accelerated.c,
-       lib/accelerated/cryptodev.c, lib/auth/anon.c, lib/auth/anon_ecdh.c,
-       lib/auth/cert.c, lib/auth/dh_common.c, lib/auth/dhe.c,
-       lib/auth/dhe_psk.c, lib/auth/ecdh_common.c, lib/auth/psk.c,
-       lib/auth/psk_passwd.c, lib/auth/rsa.c, lib/auth/rsa_export.c,
-       lib/auth/srp.c, lib/auth/srp_passwd.c, lib/auth/srp_rsa.c,
-       lib/auth/srp_sb64.c, lib/crypto-api.c, lib/crypto-backend.c,
-       lib/debug.c, lib/ext/cert_type.c, lib/ext/ecc.c,
-       lib/ext/max_record.c, lib/ext/safe_renegotiation.c,
-       lib/ext/server_name.c, lib/ext/session_ticket.c,
-       lib/ext/signature.c, lib/ext/srp.c, lib/gnutls_alert.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_compress.c, lib/gnutls_constate.c, lib/gnutls_datum.c,
-       lib/gnutls_db.c, lib/gnutls_dh.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_dtls.c, lib/gnutls_ecc.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_helper.c,
-       lib/gnutls_kx.c, lib/gnutls_mbuffers.c, lib/gnutls_mem.c,
-       lib/gnutls_mpi.c, lib/gnutls_num.c, lib/gnutls_pcert.c,
-       lib/gnutls_pk.c, lib/gnutls_priority.c, lib/gnutls_privkey.c,
-       lib/gnutls_psk.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_supplemental.c,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
-       lib/hash.c, lib/locks.c, lib/nettle/cipher.c,
-       lib/nettle/ecc_free.c, lib/nettle/ecc_make_key.c,
-       lib/nettle/ecc_map.c, lib/nettle/ecc_mulmod.c,
-       lib/nettle/ecc_points.c, lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_dbl_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/ecc_verify_hash.c, lib/nettle/egd.c, lib/nettle/init.c,
-       lib/nettle/mac.c, lib/nettle/mpi.c, lib/nettle/pk.c,
-       lib/nettle/rnd.c, lib/opencdk/armor.c, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
-       lib/opencdk/main.c, lib/opencdk/misc.c, lib/opencdk/new-packet.c,
-       lib/opencdk/pubkey.c, lib/opencdk/read-packet.c,
-       lib/opencdk/seskey.c, lib/opencdk/sig-check.c,
-       lib/opencdk/stream.c, lib/opencdk/write-packet.c,
-       lib/openpgp/compat.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
-       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
-       lib/pkcs11.c, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
-       lib/pkcs11_write.c, lib/random.c, lib/system.c,
-       lib/system_override.c, lib/x509/common.c, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/extensions.c, lib/x509/key_decode.c,
-       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/pbkdf2-sha1.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
-       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818_hostname.c,
-       lib/x509/sign.c, lib/x509/verify-high.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_write.c, lib/x509_b64.c: Upgraded to
-       LGPLv3.
-
-2011-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/cover.tex.in: updated cover.
-
-2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/fdl.tex: improvements on fdl.
-
-2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS: Added LRN.
-
-2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/cha-intro-tls.texi, doc/cha-library.texi,
-       doc/cha-programs.texi, doc/scripts/mytexi2latex: documentation
-       updates.
-
-2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_srp.c, lib/gnutls_srp.h: gnutls_srp_verifier()
-       returns data allocated with gnutls_malloc() for consistency.
-
-2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: reduced error message.
-
-2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: simplified text.
-
-2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/fdl.tex, doc/latex/gnutls.tex: FDL is now included using
-       a tiny font.
-
-2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-intro-tls.texi,
-       doc/examples/ex-client1.c, doc/scripts/mytexi2latex: Tables were
-       also made floating
-
-2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/cha-internals.texi,
-       doc/cha-intro-tls.texi, doc/cha-library.texi,
-       doc/scripts/mytexi2latex: figures were made floating.
-
-2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/latex/cover.tex.in, doc/scripts/mytexi2latex: Added
-       high-quality pdf images.
-
-2011-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, doc/latex/.gitignore: more files to ignore
-
-2011-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, doc/Makefile.am, doc/cha-auth.texi,
-       doc/cha-bib.texi, doc/cha-cert-auth.texi,
-       doc/cha-ciphersuites.texi, doc/cha-errors.texi,
-       doc/cha-functions.texi, doc/cha-gtls-app.texi,
-       doc/cha-internals.texi, doc/cha-intro-tls.texi,
-       doc/cha-library.texi, doc/cha-preface.texi, doc/cha-programs.texi,
-       doc/cha-support.texi, doc/cha-tls-app.texi, doc/errcodes.c,
-       doc/examples/ex-client1.c, doc/examples/ex-pkcs11-list.c,
-       doc/examples/ex-serv-anon.c, doc/gnutls.texi,
-       doc/latex/Makefile.am, doc/latex/cover.tex.in, doc/latex/fdl.tex,
-       doc/latex/gnutls.bib, doc/latex/gnutls.tex, doc/latex/macros.tex,
-       doc/printlist.c, doc/scripts/mytexi2latex, doc/scripts/sort1.pl,
-       doc/signatures.texi: updated documentation to allow latex output.
-
-2011-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c, lib/x509/crq.c, lib/x509/x509.c,
-       lib/x509/x509_write.c: corrected typos
-
-2011-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/examples/Makefile.am,
-       doc/examples/ex-cert-select.c, doc/examples/ex-client-udp.c,
-       doc/examples/ex-crq.c, doc/examples/ex-pkcs11-list.c,
-       doc/examples/ex-session-info.c, doc/examples/ex-verify.c: indented
-       code.  Corrected PKCS #11 example.
-
-2011-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am: added missing file.
-
-2011-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS, NEWS, lib/includes/gnutls/gnutls.h.in, m4/hooks.m4: 
-       bumped version.
-
-2011-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_errors.c, lib/includes/gnutls/pkcs11.h,
-       lib/pkcs11.c, lib/pkcs11_write.c, src/p11tool-gaa.c,
-       src/p11tool-gaa.h, src/p11tool.c, src/p11tool.gaa, src/p11tool.h,
-       src/pkcs11.c: Added new PKCS #11 flags to force an object being
-       private or not.  Those are GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE and
-       GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE.  p11tool supports now the
-       --no-private and --private options.
-
-2011-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/p11common.c: Limit the number of attempts with the same PIN,
-       to avoid attempting again and again with a wrong PIN.
-
-2011-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_write.c: When writing an object with CKA_TRUSTED set
-       CKA_PRIVATE explicitly to FALSE, to allow the SO to write it.
-       Reported by Rickard Bellgrim.
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: updated
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/pkcs11.c: removed unneeded test.
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Enforce the GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO even if
-       GNUTLS_PKCS11_OBJ_FLAG_LOGIN is specified.
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am, src/p11common.c, src/pkcs11.c: Use common code
-       for PKCS #11 callbacks across clients.  Require SO login to write a
-       trusted object.
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/ciphersuites.c, lib/ext/safe_renegotiation.h: bit
-       fields changed to unsigned.
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c, lib/x509/privkey.c: Moved null check before
-       initialization.
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/keydb.c: removed unreachable code warning
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/hash.c, lib/opencdk/main.h, lib/opencdk/stream.c,
-       lib/opencdk/write-packet.c: eliminated wipemem().
-
-2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pk.c: corrected uninitialized variable warning.
-
-2011-06-16  Rickard Bellgrim <rickard@opendnssec.org>
-
-       * lib/pkcs11_write.c: The CKA_SUBJECT must be specified for a
-       certificate.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, src/pkcs11.c: When
-       setting the TRUSTED flag login as security officer.
-
-2011-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_write.c: write label in PKCS #11 privkey.
-
-2011-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/pkcs11.c,
-       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
-       lib/pkcs11_write.c: define ck_bool_t to be compatible with PKCS #11
-       bool type.
-
-2011-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: ignore more warnings.
-
-2011-06-09  Stef Walter <stefw@collabora.co.uk>
-
-       * lib/Makefile.am, lib/pkcs11_int.h, lib/pkcs11_spec.h: Use pkcs11.h
-       specification file from p11-kit.   * Remove one included briefly in gnutls.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-06-09  Stef Walter <stefw@collabora.co.uk>
-
-       * lib/pkcs11.c, src/cli.c, src/p11common.c, src/pkcs11.c,
-       tests/suite/mini-eagain2.c: Fix up compiler warnings.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_spec.h: Added missing file
-
-2011-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: document new config file format and path.
-
-2011-06-07  Stef Walter <stefw@collabora.co.uk>
-
-       * configure.ac, doc/examples/Makefile.am, lib/Makefile.am,
-       lib/auth/cert.c, lib/gnutls_global.c, lib/gnutls_privkey.c,
-       lib/gnutls_pubkey.c, lib/gnutls_x509.c, lib/pakchois/README,
-       lib/pakchois/dlopen.c, lib/pakchois/dlopen.h,
-       lib/pakchois/errors.c, lib/pakchois/pakchois.c,
-       lib/pakchois/pakchois.h, lib/pakchois/pakchois11.h, lib/pkcs11.c,
-       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
-       lib/pkcs11_write.c, src/Makefile.am, src/certtool-common.c,
-       src/certtool.c, src/cli.c, src/p11tool.c, src/serv.c: The attached
-       patch ports gnutls to p11-kit.  p11-kit is added as a dependency.
-       p11-kit itself has no dependencies outside of basic libc stuff. The
-       source code for p11-kit is available both in git and tarball form.
-       [3] If the gnutls dependency on p11-kit is disabled (via a configure
-       option) then the PKCS#11 support is disabled. This is useful in bare
-       bones embedded systems or places where very minimal dependencies are
-       limited.
-
-2011-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am: updated
-
-2011-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c, lib/pkcs11_privkey.c: Return error code when an
-       object is not found.  Only request for token insertion if the
-       expected data is not found.  Based on patch by Stef Walter.
-
-2011-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: Depend on automake 1.11.
-
-2011-06-06  Stef Walter <stefw@collabora.co.uk>
-
-       * tests/suite/Makefile.am: tests: Build eagain-cli with correct
-       libraries  * Add -ldl -lpthread to linker flags Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-05-30  Stef Walter <stefw@collabora.co.uk>
-
-       * src/cli.c: gnutls-cli: Fix uninitialized variable when PKCS#11
-       uris in use.   * When PKCS#11 URIs are in use previously tried to free
-          uninitialized memory. Initialize to zero.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-05-30  Stef Walter <stefw@collabora.co.uk>
-
-       * lib/pkcs11.c: pkcs11: Accept CKR_USER_ALREADY_LOGGED_IN as
-       successful result for PAP Login  * When doing CKF_PROTECTED_AUTHENTICATION_PATH login, accept    CKR_USER_ALREADY_LOGGED_IN as a successful result.   * Another code path, or another consumer of the same PKCS#11 module    may have already logged in.   * This is what the non PAP code path already does.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-06-06  Stef Walter <stefw@collabora.co.uk>
-
-       * lib/auth/srp.c, lib/auth/srp_rsa.c, lib/ext/session_ticket.c,
-       lib/gnutls_compress.c, lib/hash.c, lib/nettle/ecc_mulmod.c,
-       lib/x509/common.c: Remove unused variables  * GCC 4.6.0 prints a warning, and build failes with -Wunused Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: use gnutls_assert_val() in EGD errors.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dsa/testdsa, tests/openpgp-certs/testcerts,
-       tests/scripts/common.sh, tests/suite/testcompat-main,
-       tests/suite/testsrn: Corrected fail() shell function. Reported by
-       Andreas Metzler.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dsa/testdsa: Corrected typo. Reported by Andreas Metzler.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am: regenerated makefile.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: documentation fix.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-x86.c,
-       lib/accelerated/intel/asm/appro-aes-gcm-x86.s: pclmul is not used on
-       intel 32-bit systems.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-x86.c, lib/gnutls_global.h,
-       lib/gnutls_priority.c: When AES and GCM acceleration is available
-       increase the priority of AES-GCM ciphersuites in performance and
-       normal cases.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/cipher.c, lib/gcrypt/pk.c: prevent compilation of
-       gcrypt support since it is incomplete.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/algorithms/ciphers.c,
-       lib/algorithms/ciphersuites.c, lib/gcrypt/cipher.c,
-       lib/nettle/cipher.c, m4/hooks.m4: do not use NETTLE_LIBS to include
-       hogweed and gmp.  removed ENABLE_CAMELLIA and NETTLE_GCM.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark-tls.c: improved benchmark.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-cert-auth.texi, doc/cha-internals.texi,
-       doc/cha-intro-tls.texi, doc/cha-library.texi,
-       doc/cha-programs.texi, doc/examples/ex-session-info.c,
-       doc/gnutls-certificate-user-use-case.pdf,
-       doc/gnutls-client-server-use-case.pdf,
-       doc/gnutls-extensions_st.pdf, doc/gnutls-handshake-sequence.pdf,
-       doc/gnutls-handshake-state.pdf, doc/gnutls-internals.pdf,
-       doc/gnutls-layers.pdf, doc/gnutls-logo.pdf,
-       doc/gnutls-mod_auth_st.pdf, doc/gnutls-objects.pdf,
-       doc/gnutls-pgp.pdf, doc/gnutls-x509.pdf, doc/gnutls.texi: Updated
-       documentation.  Removed all .pdf files. They were not needed.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
-       lib/gnutls_handshake.c: Avoid memory allocations when requesting the
-       supported ciphersuites.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-x86.c: more verbose if the PCLMUL
-       instruction is detected.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/cipher-test.c: Added debugging ability to cipher-test.
-
-2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: more cleanup.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: Added new TODO items.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: removed completed items from todo list
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: reinstated MAC-ALL semantics.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_session_pack.c: store the ECC curve in the session
-       resumption parameters.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-cert-auth.texi, doc/examples/ex-verify.c,
-       lib/gnutls_cert.c, lib/includes/gnutls/x509.h, lib/libgnutls.map,
-       lib/x509/verify-high.c, tests/Makefile.am, tests/x509cert-tl.c: 
-       Added gnutls_x509_trust_list_add_named_crt() and
-       gnutls_x509_trust_list_verify_named_crt() that allow having a list
-       of certificates in the trusted list that will be associated with a
-       name (e.g. server name) and will not be used as CAs.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-intro-tls.texi,
-       lib/accelerated/intel/aes-gcm-x86.c,
-       lib/accelerated/intel/aes-x86.c, lib/algorithms/ciphersuites.c,
-       lib/gnutls_priority.c, lib/includes/gnutls/gnutls.h.in,
-       lib/nettle/cipher.c: Added SuiteB ciphersuites. Added SUITEB128 and
-       SUITEB192 priority strings.  SECURE256 was renamed to SECURE192
-       (because TLS ciphersuite's security level was not enough to justify
-       256-bits).
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: 
-       gnutls_ecc_curve_get() was added.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_state.c: The PRF is now read from the ciphersuite
-       table.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/common.c: Print information on elliptic curve sessions.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/abstract_int.h, lib/gnutls_pubkey.c, lib/gnutls_sig.c,
-       lib/gnutls_sig.h, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/compat.h, lib/libgnutls.map, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/crq.c, lib/x509/privkey.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h: Split
-       pubkey_verify_sig() to pubkey_verify_hashed_data() and
-       pubkey_verify_data().  Added gnutls_pubkey_verify_data2() to allow
-       verification of a signature when the signature algorithm cannot be
-       determined by the signature and the public key only.
-
-2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.h, lib/gnutls_sig.c: Allow all SHA algorithms
-       for DSA signatures.
-
-2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: fixes for
-       http://tools.ietf.org/html/draft-mavrogiannopoulos-tls-dss-00
-
-2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/cert.h, lib/gnutls_cert.c, lib/gnutls_handshake.c: 
-       simplified _gnutls_selected_cert_supported_kx().
-
-2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c, lib/nettle/pk.c, lib/x509/verify.c: 
-       Truncation of ECDSA and DSA signatures moved to
-       _wrap_nettle_pk_sign() and _wrap_nettle_pk_verify().
-
-2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
-       lib/algorithms/sign.c, lib/ext/signature.c, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_sig.c, lib/nettle/pk.c: Simplified the handling of
-       handshake messages to be hashed.  Instead of doing a hash during the
-       handshake process we now keep the data until handshake is over and
-       hash them on demand. This uses more memory but eliminates issues
-       with TLS 1.2 and makes the handling simpler.
-
-2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext/signature.c, lib/gnutls_pubkey.c, lib/nettle/pk.c,
-       lib/x509/common.h, lib/x509/verify.c: Hash algorithms used for DSA
-       and ECDSA correspond to draft-mavrogiannopoulos-tls-dss-00.txt.
-
-2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext/ecc.c: updated
-
-2011-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-internals.texi, doc/gnutls.texi: Added refint macro to
-       refer to internal -non exported- functions. Used it to reference to
-       the gnutls_*_register() functions.
-
-2011-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/Makefile.am, lib/auth/psk_passwd.c, lib/auth/rsa.c,
-       lib/auth/rsa_export.c, lib/auth/srp_passwd.c, lib/crypto-api.c,
-       lib/crypto-backend.c, lib/crypto-backend.h, lib/crypto.c,
-       lib/ext/session_ticket.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/gnutls_pk.c, lib/includes/gnutls/crypto.h, lib/libgnutls.map,
-       lib/nettle/mpi.c, lib/nettle/pk.c, lib/opencdk/misc.c,
-       lib/pkcs11_secret.c, lib/random.h, lib/x509/pkcs12.c,
-       lib/x509/privkey_pkcs8.c, libextra/gnutls_openssl.c, src/psk.c,
-       src/srptool.c, tests/Makefile.am, tests/crypto_rng.c,
-       tests/rng-fork.c: gnutls/crypto.h no longer includes functions to
-       register ciphers.  Thus the following functions -    gnutls_crypto_bigint_register -    gnutls_crypto_cipher_register -    gnutls_crypto_digest_register -    gnutls_crypto_mac_register -    gnutls_crypto_pk_register -    gnutls_crypto_rnd_register -    gnutls_crypto_single_cipher_register -    gnutls_crypto_single_digest_register -    gnutls_crypto_single_mac_register are only available internally
-       via crypto-backend.h.
-
-2011-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * build-aux/config.rpath: updated
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-gcm-x86.s,
-       lib/accelerated/intel/asm/appro-aes-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-x86.s: typos and date fix in
-       license.
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark-tls.c: Added benchmark on GCM ciphersuites and
-       arcfour for comparison.
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h: corrected typo.
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-gcm-x86.c,
-       lib/accelerated/intel/aes-x86.c: indented code
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c: properly initialize benchmarks.
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, m4/hooks.m4: bumped version.
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-gcm-x86.c: Corrections in encryption and
-       decryption of incomplete blocks.
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-gcm-x86.c, lib/gnutls_int.h,
-       lib/gnutls_state.c: Use nettle's memxor or gnulib's if it doesn't
-       exist.
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-gcm-x86.c,
-       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h,
-       lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-gcm-x86.s, lib/gnutls_num.c,
-       lib/gnutls_num.h, tests/cipher-test.c: Added AES-GCM optimizations
-       using the PCLMULQDQ instruction. Uses Andy Polyakov's assembly code.
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c: documented usage of gnutls_cipher_add_auth().
-
-2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: updates.
-
-2011-05-31  Roman Bogorodskiy <bogorodskiy@gmail.com>
-
-       * lib/Makefile.am: Prevent including installed gnutls' headers.
-
-2011-05-31  Roman Bogorodskiy <bogorodskiy@gmail.com>
-
-       * src/udp-serv.c: Add missing <netinet/in.h> to get sockaddr_in.
-
-2011-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Compatibility text updated.
-
-2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/asm/appro-aes-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-x86.s: Added new AES code by
-       Andy.
-
-2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/credentials/x509/ca-key.pem: Added missing file.
-
-2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/Makefile.am, lib/nettle/ecc_free.c,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
-       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_points.c,
-       lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/ecc_test.c, lib/nettle/ecc_verify_hash.c: Added FSF
-       copyright to public domain files.
-
-2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/accelerated/x86.h: Use cpuid.h if it exists, to
-       use the x86 CPUID instruction.
-
-2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: Added Dash.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_handshake.c: simplified
-       _gnutls_supported_compression_methods().
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_constate.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_session_pack.c, lib/gnutls_v2_compat.c: Correctly set
-       compression method when resuming sessions.  Reported by Dash Shendy.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c: digest_length() uses int as input.
-
-2011-05-28  Stef Walter <stefw@collabora.co.uk>
-
-       * lib/nettle/cipher.c: Fix warnings with GCC 4.5.2
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/credentials/Makefile.am, doc/credentials/x509/Makefile.am: 
-       Corrected EXTRA_DIST
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/testcompat-main: updated keys.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/cert.c, lib/auth/cert.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h: Take into account each and every advertized
-       public key algorithm when selecting a certificate. Previously we
-       were assuming only RSA or DSA, or ANY.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/credentials/gnutls-http-serv, src/serv-gaa.c, src/serv-gaa.h,
-       src/serv.c, src/serv.gaa: Added feature to specify ecc private keys
-       and certificates.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms.h, lib/gnutls_handshake.c, lib/gnutls_state.c: 
-       Corrected ECC ciphersuite detection.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/credentials/x509-ca-key.pem, doc/credentials/x509-ca.pem,
-       doc/credentials/x509-client-key.pem,
-       doc/credentials/x509-client.pem, doc/credentials/x509-other-ca.pem,
-       doc/credentials/x509-proxy-key.pem, doc/credentials/x509-proxy.pem,
-       doc/credentials/x509-server-dsa.pem,
-       doc/credentials/x509-server-key-dsa.pem,
-       doc/credentials/x509-server-key.pem,
-       doc/credentials/x509-server.pem, doc/credentials/x509-trust.pem,
-       doc/credentials/x509/ca.pem, doc/credentials/x509/cert-dsa.pem,
-       doc/credentials/x509/cert-ecc.pem,
-       doc/credentials/x509/cert-rsa.pem, doc/credentials/x509/cert.pem,
-       doc/credentials/x509/clicert-dsa.pem,
-       doc/credentials/x509/clicert.pem, doc/credentials/x509/key-dsa.pem,
-       doc/credentials/x509/key-ecc.pem, doc/credentials/x509/key-rsa.pem,
-       doc/credentials/x509/key.pem, lib/nettle/pk.c, lib/x509/verify.c: 
-       Laxed verification checks for DSA to allow SHA256 in place of
-       SHA224.  Added new certificate sets in doc/credentials/x509/.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: ECDHE and ECDSA were added to deafult
-       priorities.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/rsa.c, lib/x509/key_encode.c, lib/x509/privkey_pkcs8.c: 
-       gnutls_secure_malloc() is no longer used.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/dhe_psk.c, lib/auth/psk.c: deinitialize PSK key memory.
-
-2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/psk.c: explicitly request for client key in server side.
-
-2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/algorithms/ciphersuites.c, lib/algorithms/kx.c,
-       lib/auth/anon.c, lib/auth/anon_ecdh.c, lib/auth/dh_common.c,
-       lib/auth/dh_common.h, lib/auth/dhe.c, lib/auth/dhe_psk.c,
-       lib/auth/ecdh_common.c, lib/auth/ecdh_common.h, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in: Added ECDHE-PSK ciphersuites for
-       TLS (RFC 5489).
-
-2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls-guile.texi: Corrections.
-
-2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/.gitignore: ignore tex files.
-
-2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-copying.texi: Do not list all licenses in the manual of
-       gnutls. Just the license of the manual is enough.
-
-2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-ciphersuites.texi,
-       doc/cha-functions.texi, doc/cha-preface.texi,
-       doc/gnutls-guile.texi, doc/guile.texi, guile/src/core.c: guile
-       bindings added as a separate document.
-
-2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: reorganization. Removed guile bindings.
-
-2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/gnutls.texi: reorganization and added section on parameter
-       generation.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/auth/Makefile.am, lib/ext/Makefile.am,
-       lib/nettle/Makefile.am: Added new headers.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: document elliptic curves addition.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * m4/hooks.m4: libgcrypt support was removed.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: listed newly added functions.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/Makefile.am, lib/nettle/ecc.h,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_shared_secret.c,
-       lib/nettle/ecc_sign_hash.c, lib/nettle/ecc_verify_hash.c,
-       lib/nettle/mp_unsigned_bin.c: Use nettle's functions for integer
-       import/export.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/publickey.c, lib/gnutls_sig.c: more updates for
-       ECDSA ciphersuites.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext/ecc.c: reduced debugging.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c, lib/gnutls_sig.c: Changes to allow ECDH-DSA
-       with client mode certificates.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/certs/ca-cert-ecc.pem, tests/certs/ca-ecc.pem,
-       tests/certs/cert-ecc.pem, tests/certs/ecc.pem,
-       tests/suite/testcompat-main: Added server and client mode tests for
-       ECDH-ECDSA.
-
-2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext/session_ticket.c, lib/gnutls_db.c, lib/gnutls_dtls.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_session_pack.c, lib/gnutls_v2_compat.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
-       lib/nettle/rnd.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
-       lib/opencdk/read-packet.c, lib/opencdk/sig-check.c,
-       lib/openpgp/gnutls_openpgp.c, lib/system.c, lib/system.h,
-       lib/x509/common.c, lib/x509/verify.c, tests/chainverify.c: Added
-       gnutls_global_set_time_function() to allow overriding the default
-       system time() function.
-
-2011-05-25  Giuseppe Scrivano <gscrivano@gnu.org>
-
-       * doc/cha-programs.texi: Fix example in the documentation.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-programs.texi: updated documentation on PSK.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/ecc_projective_add_point.c: If Q=-P return the point at
-       infinity.
-
-2011-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/chainverify.c: Added elliptic curves chain certificate.
-
-2011-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: do not try to write to a socket when no
-       data.
-
-2011-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgpself.c: increased log level
-
-2011-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.h, lib/gnutls_handshake.c: 
-       _gnutls_handshake_hash_buffer_clear was replaced by
-       _gnutls_buffer_clear();
-
-2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/pk.c: Only warn on invalid security level hashes.
-
-2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: SHA256 is the default hash algorithm in certtool.
-
-2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_privkey.c,
-       lib/gnutls_sig.c, lib/x509/verify.c: Several updates to allow
-       generation and signing of an ECC certificate.
-
-2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/certtool.1: updated certtool info.
-
-2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/ciphersuites.c: corrected bug in ciphersuite name
-       searching.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi: Discussed the newly added ciphersuites.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am: Added algorithms/ to function index.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/ciphersuites.c: Added ECC ciphersuites from
-       rfc5289.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Print the private key after generation. Print ECC
-       keys.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/ecc.c, lib/gnutls_ecc.c,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/x509/privkey.c: Added
-       gnutls_x509_privkey_import_ecc_raw() and
-       gnutls_x509_privkey_export_ecc_raw().
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c: Decode PEM ECC private keys.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms.h, lib/algorithms/ecc.c, lib/x509/key_encode.c,
-       lib/x509/privkey.c, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa: updates to allow the generation of
-       an ECC private key.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509_b64.c: do not crash on null message.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: updated
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/ciphersuites.c, lib/algorithms/kx.c,
-       lib/auth/cert.c, lib/auth/dhe.c, lib/gnutls_pk.c, lib/gnutls_pk.h,
-       lib/gnutls_pubkey.c, lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/pk.c, lib/nettle/rnd.c, lib/nettle/rnd.h,
-       lib/x509/common.h, lib/x509/verify.c: Added support for verifying
-       server certificates with ECDSA.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext/ecc.c: Only reply with ECC Packet format extension if we
-       have negotiated ECC.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem, tests/pkcs12_s2k_pem.c: leak fix
-       and updates for new formats.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/testcompat-main: Added ECDHE-RSA tests.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/secparams.c, lib/gnutls_pubkey.c: always put
-       leading zero to output keys
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/output.c: print the bits together with the security
-       level.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c, lib/x509/privkey_pkcs8.c: leaks fixes.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: corrected file descriptor leak.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_extra.c: gnutls_algorithms.h -> algorithms.h
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/key_decode.c, lib/x509/key_encode.c: corrected ECC public
-       key encoding/decoding.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-common.c, src/certtool.c: Corrected bug in public key
-       import.  print information on ECC public keys.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/crypto.h, lib/nettle/pk.c,
-       lib/x509/key_encode.c, lib/x509/x509_int.h: No need to keep Z in
-       parameters since the pubkey can always be converted to an affine
-       point.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms/secparams.c, lib/gnutls_pubkey.c,
-       lib/includes/gnutls/abstract.h, lib/libgnutls.map,
-       lib/x509/common.c, lib/x509/key_decode.c, lib/x509/mpi.c,
-       lib/x509/output.c: print information on ECC certificates.
-
-2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/abstract_int.h, lib/algorithms.h, lib/algorithms/ecc.c,
-       lib/auth/anon.h, lib/auth/ecdh_common.c, lib/auth/ecdh_common.h,
-       lib/auth/rsa.c, lib/auth/rsa_export.c, lib/ext/ecc.c,
-       lib/gnutls.asn, lib/gnutls_asn1_tab.c, lib/gnutls_ecc.c,
-       lib/gnutls_ecc.h, lib/gnutls_errors.c, lib/gnutls_int.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_privkey.c,
-       lib/gnutls_pubkey.c, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, lib/nettle/ecc_test.c, lib/nettle/pk.c,
-       lib/openpgp/openpgp_int.h, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c, lib/x509/Makefile.am, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/crq.c, lib/x509/key_decode.c,
-       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_int.h, lib/x509/x509_write.c: gnutls_pk_params_st is
-       used internally to transfer public key parameters. This replaces the
-       raw bigint_t arrays.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
-       lib/algorithms/ecc.c, lib/auth/ecdh_common.c, lib/ext/ecc.c,
-       lib/ext/ecc.h: Curve TLS ID is being stored in algorithms/ecc.c.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/Makefile.am, lib/algorithms.h,
-       lib/algorithms/Makefile.am, lib/algorithms/cert_types.c,
-       lib/algorithms/ciphers.c, lib/algorithms/ciphersuites.c,
-       lib/algorithms/ecc.c, lib/algorithms/kx.c, lib/algorithms/mac.c,
-       lib/algorithms/protocols.c, lib/algorithms/publickey.c,
-       lib/algorithms/secparams.c, lib/algorithms/sign.c, lib/auth/cert.c,
-       lib/auth/dh_common.c, lib/auth/dhe.c, lib/auth/ecdh_common.c,
-       lib/auth/rsa.c, lib/auth/rsa_export.c, lib/ext/session_ticket.c,
-       lib/ext/signature.c, lib/ext/srp.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_auth.c, lib/gnutls_cert.c,
-       lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_compress.c, lib/gnutls_constate.c, lib/gnutls_ecc.c,
-       lib/gnutls_handshake.c, lib/gnutls_kx.c, lib/gnutls_priority.c,
-       lib/gnutls_record.c, lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/gnutls_v2_compat.c, lib/gnutls_x509.c, lib/nettle/ecc_test.c,
-       lib/nettle/mpi.c, lib/opencdk/read-packet.c, lib/x509/common.h,
-       lib/x509/privkey_pkcs8.c: gnutls_algorithms.c was split into
-       manageable files in algorithms/.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: use the _gnutls_session_is_ecc() to check
-       for ECDH.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/ecdh_common.c, lib/gnutls_algorithms.c,
-       lib/includes/gnutls/gnutls.h.in, lib/nettle/pk.c, lib/x509/x509.c: 
-       Added OIDs and definitions for ECDSA signature algorithm.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark-tls.c: Print purpose of testing.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark-tls.c: compare ECDH and DH on the same security
-       level.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_priority.c: Added ability to
-       specify curves as priority strings.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/ecc.h: removed ecc_is_valid_idx() prototype
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/ecc.h, lib/nettle/ecc_make_key.c,
-       lib/nettle/ecc_map.c, lib/nettle/ecc_mulmod.c,
-       lib/nettle/ecc_points.c, lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_dbl_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_test.c,
-       lib/nettle/ecc_verify_hash.c, lib/nettle/pk.c: Dropped ltc_ from
-       function and type names.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/x509cert.c: corrected memory leak.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/cipher.c: use new nettle's name for gcm_aes_auth().
-
-2011-05-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/hmac-md5.c, gl/m4/valgrind-tests.m4, gl/memxor.c, gl/memxor.h,
-       gl/override/lib/hmac-md5.c.diff, gl/override/lib/memxor.c.diff,
-       gl/override/lib/memxor.h.diff,
-       gl/override/m4/valgrind-tests.m4.diff: Override gnulib code with fix
-       for memxor and valgrind.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/anon_ecdh.c, lib/auth/dh_common.c, lib/auth/dhe.c,
-       lib/auth/ecdh_common.c, lib/gnutls_algorithms.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/includes/gnutls/gnutls.h.in: Added support
-       for ECDHE-RSA ciphersuites.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/eagain-common.h: inlined function to avoid gcc warnings
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/Makefile.am, lib/nettle/ecc.h, lib/nettle/ecc_free.c,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
-       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_points.c,
-       lib/nettle/ecc_projective_add_point.c,
-       lib/nettle/ecc_projective_dbl_point.c,
-       lib/nettle/ecc_projective_dbl_point_3.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/ecc_test.c, lib/nettle/ecc_verify_hash.c,
-       lib/nettle/ltc_ecc_map.c, lib/nettle/ltc_ecc_mulmod.c,
-       lib/nettle/ltc_ecc_points.c,
-       lib/nettle/ltc_ecc_projective_add_point.c,
-       lib/nettle/ltc_ecc_projective_dbl_point.c: Added previous code that
-       was fixed for y^2 = x^3 - 3x + b, because all secg curves have a
-       fixed to -3.  Simplified file naming scheme.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_int.h: Added SECP224R1.
-
-2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am, src/benchmark-cipher.c, src/benchmark-tls.c,
-       src/benchmark.c, src/benchmark.h: updates to benchmarks.
-
-2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/nettle/ecc_test.c: Added curve SECP512R1.
-
-2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark-cipher.c, src/benchmark-common.c, src/benchmark.c: 
-       benchmark ECDH and DH.
-
-2011-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath, gl/Makefile.am, gl/alignof.h,
-       gl/glthread/lock.c, gl/glthread/lock.h, gl/glthread/threadlib.c,
-       gl/hmac-md5.c, gl/intprops.h, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/strerror.m4, gl/m4/strerror_r.m4,
-       gl/m4/thread.m4, gl/m4/valgrind-tests.m4, gl/m4/yield.m4,
-       gl/memxor.c, gl/memxor.h, gl/stdint.in.h, gl/strerror-impl.h,
-       gl/strerror.c, gl/strerror_r.c, gl/tests/Makefile.am,
-       gl/tests/dummy.c, gl/tests/glthread/thread.c,
-       gl/tests/glthread/thread.h, gl/tests/glthread/yield.h,
-       gl/tests/test-intprops.c, gl/tests/test-lock.c,
-       gl/tests/test-strerror.c, gl/tests/test-strerror_r.c: Update gnulib
-       files.
-
-2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/ecdh_common.c, lib/gnutls_handshake.c, src/common.c: 
-       client side ECC fixes.
-
-2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: corrected debugging.
-
-2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/ecdh_common.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_global.c,
-       lib/includes/gnutls/crypto.h, lib/nettle/ecc.h,
-       lib/nettle/ecc_free.c, lib/nettle/ecc_make_key.c,
-       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
-       lib/nettle/ecc_test.c, lib/nettle/ecc_verify_hash.c,
-       lib/nettle/ltc_ecc_map.c, lib/nettle/ltc_ecc_mulmod.c,
-       lib/nettle/ltc_ecc_points.c,
-       lib/nettle/ltc_ecc_projective_add_point.c,
-       lib/nettle/ltc_ecc_projective_dbl_point.c, lib/nettle/pk.c,
-       lib/x509/x509_int.h: Account 'A' in calculations for point doubling.
-
-2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/Makefile.am, gl/alignof.h, gl/close-hook.c, gl/close-hook.h,
-       gl/error.c, gl/error.h, gl/fd-hook.c, gl/fd-hook.h,
-       gl/glthread/lock.c, gl/glthread/lock.h, gl/glthread/threadlib.c,
-       gl/intprops.h, gl/m4/error.m4, gl/m4/fcntl_h.m4, gl/m4/fseeko.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/inttypes.m4,
-       gl/m4/manywarnings.m4, gl/m4/memchr.m4, gl/m4/netdb_h.m4,
-       gl/m4/stdint.m4, gl/m4/stdio_h.m4, gl/m4/strerror.m4,
-       gl/m4/strerror_r.m4, gl/m4/string_h.m4, gl/m4/sys_uio_h.m4,
-       gl/m4/thread.m4, gl/m4/unistd_h.m4, gl/m4/warnings.m4,
-       gl/m4/wchar_h.m4, gl/m4/yield.m4, gl/malloc.c, gl/netdb.in.h,
-       gl/realloc.c, gl/sockets.c, gl/stdint.in.h, gl/stdio.in.h,
-       gl/stdlib.in.h, gl/strerror-impl.h, gl/strerror.c, gl/strerror_r.c,
-       gl/string.in.h, gl/sys_socket.in.h, gl/sys_uio.in.h,
-       gl/tests/Makefile.am, gl/tests/dummy.c, gl/tests/fcntl.in.h,
-       gl/tests/glthread/thread.c, gl/tests/glthread/thread.h,
-       gl/tests/glthread/yield.h, gl/tests/intprops.h,
-       gl/tests/inttypes.in.h, gl/tests/test-fcntl-h.c,
-       gl/tests/test-intprops.c, gl/tests/test-inttypes.c,
-       gl/tests/test-lock.c, gl/tests/test-strerror.c,
-       gl/tests/test-strerror_r.c, gl/tests/test-sys_socket.c,
-       gl/tests/test-sys_uio.c, gl/unistd.in.h, gl/verify.h, gl/wchar.in.h: 
-       Added new gnulib and error.h.
-
-2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: removed debugging.
-
-2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk: added error.h
-
-2011-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/auth/Makefile.am, lib/auth/anon.h,
-       lib/auth/anon_ecdh.c, lib/auth/ecdh_common.c,
-       lib/auth/ecdh_common.h, lib/ext/Makefile.am, lib/ext/ecc.c,
-       lib/ext/ecc.h, lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_dh.c, lib/gnutls_ecc.c, lib/gnutls_ecc.h,
-       lib/gnutls_errors.c, lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_int.h, lib/gnutls_pk.c, lib/gnutls_pk.h,
-       lib/gnutls_priority.c, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/nettle/Makefile.am, lib/nettle/ecc.h, lib/nettle/ecc_free.c,
-       lib/nettle/ecc_make_key.c, lib/nettle/ecc_shared_secret.c,
-       lib/nettle/ecc_sign_hash.c, lib/nettle/ecc_test.c,
-       lib/nettle/ecc_verify_hash.c, lib/nettle/gnettle.h,
-       lib/nettle/ltc_ecc_map.c, lib/nettle/ltc_ecc_mulmod.c,
-       lib/nettle/ltc_ecc_points.c,
-       lib/nettle/ltc_ecc_projective_add_point.c,
-       lib/nettle/ltc_ecc_projective_dbl_point.c,
-       lib/nettle/mp_unsigned_bin.c, lib/nettle/mpi.c, lib/nettle/multi.c,
-       lib/nettle/pk.c, lib/nettle/rnd.c, lib/nettle/rnd.h,
-       lib/x509/x509_int.h: Initial ecc support. Adds support for anonymous
-       ECDH ciphersuites.
-
-2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark-common.c, src/benchmark.h: more win32 fixes.
-
-2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark-common.c: corrections in win32 version.
-
-2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext/signature.c, lib/gnutls_extensions.c: Some debugging moved
-       to a higher level.
-
-2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am, src/benchmark-common.c, src/benchmark-tls.c,
-       src/benchmark.c, src/benchmark.h, tests/eagain-common.h: Added
-       benchmark utility that tests the encryption time in TLS packets.
-
-2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/p11common.c: corrected message reporting.
-
-2011-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/p11common.c: Corrected PIN caching.
-
-2011-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: assign value
-
-2011-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/mpi.c: reduce the repetitions for rabin-miller to a
-       sensible value.
-
-2011-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: discuss missing algorithms.
-
-2011-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated
-
-2011-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_str.c, lib/gnutls_str.h, lib/pkcs11.c: Correctly import
-       and export pkcs11-urls with ID field set.
-
-2011-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/egd.c, lib/opencdk/literal.c, lib/opencdk/misc.c,
-       lib/opencdk/read-packet.c, lib/pkcs11.c, lib/x509/common.c,
-       lib/x509_b64.c, lib/x509_b64.h: eliminated last instances of
-       strcpy() and strcat() to keep pendantics happy.
-
-2011-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: update on compatibility issues text.
-
-2011-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: doc update in gnutls_pkcs11_init()
-
-2011-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-preface.texi: removed references that produced nothing in
-       pdf.
-
-2011-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Added missing nodes.
-
-2011-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Added discussion on compatibility issues.
-
-2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openssl.c: undef X509_NAME before including
-       openssl.h.
-
-2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-gtls-app.texi, lib/accelerated/intel/aes-x86.c,
-       lib/auth/rsa.c, lib/auth/rsa_export.c, lib/auth/srp.c,
-       lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_handshake.c, lib/gnutls_record.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/cli.c,
-       src/serv.c: Added gnutls_global_set_audit_log_function() that allows
-       associating TLS session with several important issues.
-
-2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/crq.c: updates
-
-2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/x509.h, lib/libgnutls.map,
-       lib/x509/crq.c, lib/x509/x509_write.c, tests/crq_key_id.c: Added
-       gnutls_x509_crq_verify().
-
-2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/certtool.1, src/Makefile.am, src/certtool-common.c,
-       src/certtool-common.h, src/certtool.c, src/common.c,
-       src/p11common.c, src/p11common.h, src/pkcs11.c: certtool can now
-       load private keys and public keys from PKCS #11 tokens (via URLs).
-
-2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_privkey.c: gnutls_pkcs11_privkey_import_url() will
-       correctly set algorithm of private key.
-
-2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am, src/certtool.c, src/p11tool.c: No libgnutls-extra
-       is required for certtool or p11tool.
-
-2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/rng-fork.c: Do not use /tmp for temporary file. Just use the
-       local (test) directory.
-
-2011-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/hostname-check.c: Added a check to verify that we don't try
-       forever trying to verify too many wildcards.
-
-2011-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS, lib/gnutls_str.c, lib/gnutls_str.h, lib/openpgp/pgp.c,
-       lib/x509/rfc2818_hostname.c: _gnutls_hostname_compare() was
-       incredibly slow when over ten wildcards were present. Set a limit on
-       6 wildcards to avoid any denial of service attack. Reported by Kalle
-       Olavi Niemitalo.
-
-2011-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_str.c, lib/opencdk/misc.c: Use c_toupper to avoid
-       converting characters non in the english ASCII set. Reported by
-       Kalle Olavi Niemitalo.
-
-2011-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify-high.c: use > 0 instead of == 1.
-
-2011-05-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, NEWS, lib/gnutls_cert.c,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/x509/verify-high.c, tests/Makefile.am,
-       tests/x509cert.c: Added gnutls_certificate_get_issuer() to allow
-       getting the issuer a certificate from the certificate credentials
-       structure.
-
-2011-04-30  Andreas Metzler <ametzler@downhill.at.eu.org>
-
-       * doc/manpages/p11tool.1: escape dashes in manpage Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-05-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, gl/m4/.gitignore, gl/m4/byteswap.m4,
-       gl/m4/codeset.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4,
-       gl/m4/func.m4, gl/m4/gettext.m4, gl/m4/glibc2.m4, gl/m4/glibc21.m4,
-       gl/m4/hmac-md5.m4, gl/m4/iconv.m4, gl/m4/intdiv0.m4, gl/m4/intl.m4,
-       gl/m4/intldir.m4, gl/m4/intlmacosx.m4, gl/m4/intmax.m4,
-       gl/m4/inttypes-pri.m4, gl/m4/lcmessage.m4, gl/m4/ld-output-def.m4,
-       gl/m4/ld-version-script.m4, gl/m4/lock.m4, gl/m4/md5.m4,
-       gl/m4/memmem.m4, gl/m4/memxor.m4, gl/m4/nls.m4, gl/m4/po.m4,
-       gl/m4/printf-posix.m4, gl/m4/progtest.m4, gl/m4/strcase.m4,
-       gl/m4/strdup.m4, gl/m4/strings_h.m4, gl/m4/strverscmp.m4,
-       gl/m4/threadlib.m4, gl/m4/time_r.m4, gl/m4/uintmax_t.m4,
-       gl/m4/valgrind-tests.m4, gl/m4/vasprintf.m4, gl/m4/visibility.m4,
-       gl/m4/vsnprintf.m4, gl/tests/.gitignore, gl/tests/intprops.h,
-       gl/tests/test-byteswap.c, gl/tests/test-func.c,
-       gl/tests/test-hmac-md5.c, gl/tests/test-md5.c,
-       gl/tests/test-strings.c, gl/tests/test-strverscmp.c,
-       gl/tests/test-u64.c, gl/tests/test-vasprintf.c,
-       gl/tests/test-vsnprintf.c: Added missing m4 gl files.
-
-2011-05-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented previous updates.
-
-2011-04-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/testcompat-main: Check for openssl 1.0.x to test DTLS.
-
-2011-04-28  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/Makefile.am, guile/modules/gnutls/build/tests.scm,
-       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
-       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/openpgp-keys.scm, guile/tests/pkcs-import-export.scm,
-       guile/tests/session-record-port.scm, guile/tests/srp-base64.scm,
-       guile/tests/x509-auth.scm, guile/tests/x509-certificates.scm: guile:
-       Fix tests to match the `exit' behavior introduced in Guile 2.0.1.  This fix makes tests behave correctly wrt. to the Guile bug fix at
-
-       <http://git.sv.gnu.org/cgit/guile.git/commit/?id=e309f3bf9ee910c4772353ca3ff95f6f4ef466b5>.
-
-2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.pc.in: removed pakchois dependency
-
-2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac: updated for release
-
-2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/x509dn.c: added missing header.
-
-2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/Makefile.am: pass tag=CC to libtool. It
-       seems automake cannot really work with assembler sources.
-
-2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pcert.c, lib/openpgp/gnutls_openpgp.c: documentation
-       fixes.
-
-2011-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk: start counting from 2009 for ChangeLog.
-
-2011-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/hostname-check.c: Removed incorrect test on IPAddresses (was
-       relying on IPaddresses encoded as text)
-
-2011-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/rfc2818_hostname.c: gnutls_x509_crt_check_hostname() will
-       never compare against IPaddress.  (previous comparison was flawed)
-
-2011-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select.c, lib/auth/cert.c, lib/auth/cert.h,
-       lib/gnutls_cert.c, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/certtool.c,
-       src/cli.c, tests/x509dn.c: Added
-       gnutls_certificate_set_retrieve_function2() to replace
-       gnutls_certificate_set_retrieve_function(). The new one is a
-       efficient for busy servers because it eliminates the need for the
-       server to encode the certificate to DER format.
-
-2011-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_errors.c,
-       lib/includes/gnutls/gnutls.h.in: Added GNUTLS_E_USER_ERROR
-
-2011-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth/cert.c, lib/ext/signature.c, lib/ext/signature.h,
-       lib/gnutls_pcert.c, lib/includes/gnutls/abstract.h,
-       lib/libgnutls.map: Eliminated the need for sign_algo in
-       gnutls_pcert_st. This means that we don't follow RFC5246 by letter,
-       but there wasn't any other implementation using the sign_algorithm
-       part of the certificate selection, and this helps reduce complexity.
-
-2011-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cfg/Makefile.am, src/cfg/README: Added readme for libcfg.
-
-2011-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: No need to check for -maes and -mpclmul with the
-       current AES-NI code.
-
-2011-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: updated
-
-2011-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/abstract_int.h, lib/auth/cert.c,
-       lib/auth/cert.h, lib/auth/dhe.c, lib/auth/rsa.c,
-       lib/auth/rsa_export.c, lib/auth/srp_rsa.c, lib/ext/signature.c,
-       lib/ext/signature.h, lib/gnutls_algorithms.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_pcert.c, lib/gnutls_privkey.c,
-       lib/gnutls_pubkey.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/includes/gnutls/abstract.h,
-       lib/opencdk/pubkey.c, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/gnutls_openpgp.h, lib/openpgp/openpgp_int.h,
-       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
-       lib/pkcs11_int.h, lib/x509/common.h, lib/x509/pkcs12_encr.c,
-       lib/x509/sign.c, lib/x509/verify-high.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_int.h: Combined external abstract API
-       with internal usage of gnutls_cert.  This results to a
-       gnutls_pcert_st struct exported in abstract.h.  This change will allow a certificate retrieval callback that does
-       not require gnutls to decode or encode the provided certificate.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_priority.c: Restored HMAC-MD5 for compatibility.
-       Although considered weak, several sites require it for connection.
-       It is enabled for "NORMAL" and "PERFORMANCE" priority strings.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-x86.c: Try to detect AES-NI on Intel and
-       AMD machines only.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/README, lib/accelerated/intel/aes-x86.c,
-       lib/accelerated/intel/asm/appro-aes-x86-64.s,
-       lib/accelerated/intel/asm/appro-aes-x86.s,
-       lib/accelerated/intel/asm/x64_iaesx64.s,
-       lib/accelerated/intel/asm/x86_iaesx86.s,
-       lib/accelerated/intel/iaes_asm_interface.h,
-       lib/accelerated/intel/iaesni.h, lib/accelerated/intel/license.txt: 
-       Added Andy Polyakov's version of AES-NI optimizations.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: more files to ignore
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c: COMP-ZLIB -> COMP-DEFLATE
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, m4/hooks.m4: Link with pthreads.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am: read API from new directories as well.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/Makefile.am: corrected filename
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext/session_ticket.c: removed conditional compilation
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext/session_ticket.h: removed conditional compilation.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/cryptodev.c: use correct header.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/README: documented directories.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/accelerated/Makefile.am,
-       lib/accelerated/cryptodev.c, lib/accelerated/cryptodev.h,
-       lib/cryptodev.c, lib/gnutls_cryptodev.h, lib/gnutls_global.c: Moved
-       cryptodev to accelerated/
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c, lib/gnutls_handshake.c: Session tickets
-       are included unconditionally.
-
-2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/Makefile.am, lib/auth/Makefile.am,
-       lib/auth/anon.c, lib/auth/anon.h, lib/auth/cert.c, lib/auth/cert.h,
-       lib/auth/dh_common.c, lib/auth/dh_common.h, lib/auth/dhe.c,
-       lib/auth/dhe_psk.c, lib/auth/psk.c, lib/auth/psk.h,
-       lib/auth/psk_passwd.c, lib/auth/psk_passwd.h, lib/auth/rsa.c,
-       lib/auth/rsa_export.c, lib/auth/srp.c, lib/auth/srp.h,
-       lib/auth/srp_passwd.c, lib/auth/srp_passwd.h, lib/auth/srp_rsa.c,
-       lib/auth/srp_sb64.c, lib/auth_anon.c, lib/auth_anon.h,
-       lib/auth_cert.c, lib/auth_cert.h, lib/auth_dh_common.c,
-       lib/auth_dh_common.h, lib/auth_dhe.c, lib/auth_dhe_psk.c,
-       lib/auth_psk.c, lib/auth_psk.h, lib/auth_psk_passwd.c,
-       lib/auth_psk_passwd.h, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/auth_srp.c, lib/auth_srp.h, lib/auth_srp_passwd.c,
-       lib/auth_srp_passwd.h, lib/auth_srp_rsa.c, lib/auth_srp_sb64.c,
-       lib/ext/Makefile.am, lib/ext/cert_type.c, lib/ext/cert_type.h,
-       lib/ext/max_record.c, lib/ext/max_record.h,
-       lib/ext/safe_renegotiation.c, lib/ext/safe_renegotiation.h,
-       lib/ext/server_name.c, lib/ext/server_name.h,
-       lib/ext/session_ticket.c, lib/ext/session_ticket.h,
-       lib/ext/signature.c, lib/ext/signature.h, lib/ext/srp.c,
-       lib/ext/srp.h, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/ext_max_record.c, lib/ext_max_record.h,
-       lib/ext_safe_renegotiation.c, lib/ext_safe_renegotiation.h,
-       lib/ext_server_name.c, lib/ext_server_name.h,
-       lib/ext_session_ticket.c, lib/ext_session_ticket.h,
-       lib/ext_signature.c, lib/ext_signature.h, lib/ext_srp.c,
-       lib/ext_srp.h, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_cert.c, lib/gnutls_extensions.c, lib/gnutls_handshake.c,
-       lib/gnutls_psk.c, lib/gnutls_record.c, lib/gnutls_session_pack.c,
-       lib/gnutls_sig.c, lib/gnutls_srp.c, lib/gnutls_state.c,
-       lib/gnutls_ui.c, lib/gnutls_x509.c, lib/openpgp/gnutls_openpgp.h,
-       m4/hooks.m4: The auth_ and ext_ files were moved to respective
-       directories.
-
-2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Reorganized sections in documentation.
-
-2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cxx.cpp: removed unneeded comment.
-
-2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/cve-2009-1416.c, tests/pkcs12_s2k_pem.c: Added missing
-       headers.
-
-2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/Makefile.am, tests/suite/chain, tests/suite/testbig,
-       tests/suite/testbig-main, tests/suite/testcompat,
-       tests/suite/testcompat-main, tests/suite/x509paths/.gitignore,
-       tests/suite/x509paths/README, tests/x509paths/README,
-       tests/x509paths/chain: x509paths tests moved to suite/.
-
-2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/certs/cert-rsa-2432.pem, tests/certs/rsa-2432.pem,
-       tests/scripts/common.sh, tests/suite/Makefile.am,
-       tests/suite/testbig, tests/suite/testbig-main: Added
-       interoperability tests with openssl.
-
-2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: Corrected SSLv2 header parsing.
-
-2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/credentials/x509-server-dsa.pem,
-       doc/credentials/x509-server-key-dsa.pem: corrected illegal DSA key.
-
-2011-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/Makefile.am, tests/suite/testsrn: Enabled the extra
-       safe renegotiation tests.
-
-2011-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * m4/hooks.m4: removed opaque PRF from m4.
-
-2011-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: removed text about select().
-
-2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/Makefile.am: check for libdl that pakchois
-       needs.
-
-2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/pakchois/README: Added readme about pakchois
-       and removed checks for pakchois in Makefile.am.
-
-2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, m4/hooks.m4: Reorganization in configure file.
-       Pakchois is not longer checked for being present. The included
-       version is always used.
-
-2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/.gitignore, gl/asprintf.c, gl/byteswap.in.h, gl/hmac-md5.c,
-       gl/hmac.h, gl/md5.c, gl/md5.h, gl/memmem.c, gl/memxor.c,
-       gl/memxor.h, gl/str-two-way.h, gl/strcasecmp.c, gl/strdup.c,
-       gl/strings.in.h, gl/strncasecmp.c, gl/strverscmp.c, gl/time_r.c,
-       gl/u64.h, gl/unistd.h, gl/vasprintf.c, gl/vsnprintf.c,
-       gl/warn-on-use.h, gl/wchar.h: Added missing gnulib files
-
-2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c: Added missing const.
-
-2011-04-12  Ludovic Courtès <ludo@gnu.org>
-
-       * NEWS, src/certtool-common.c, src/certtool.c, src/p11tool.c,
-       tests/crq_key_id.c, tests/cve-2009-1416.c, tests/pkcs12_s2k_pem.c: 
-       Don't include <gcrypt.h> when it's not needed.
-
-2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-internals.texi: fixed and updates in documentation
-
-2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls-crypto-layers.eps: Updated crypto layers documentation.
-
-2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-x86.c,
-       lib/accelerated/intel/asm/x64_do_rdtsc.s,
-       lib/accelerated/intel/asm/x86_do_rdtsc.s, tests/cipher-test.c: 
-       Updates in the AES-NI accelerator.
-
-2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c, lib/includes/gnutls/crypto.h, lib/libgnutls.map: 
-       Added gnutls_cipher_set_iv().
-
-2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am, tests/cipher-test.c: Added test vectors for
-       AES,SHAxxx and MD5.
-
-2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/intel/aes-x86.c, lib/crypto.c,
-       lib/includes/gnutls/crypto.h: Increased priority of CPU assisted
-       ciphers.
-
-2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: Do not rely on lowat being set.
-
-2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/accelerated/Makefile.am, lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/README: Added README explaining the usage of
-       Intel AES library.
-
-2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: Corrected parsing error in TLS, when many
-       handshake messages were packed in a single record message.
-
-2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, configure.ac, lib/accelerated/Makefile.am,
-       lib/accelerated/accelerated.c, lib/accelerated/aes-x86.c,
-       lib/accelerated/aes-x86.h, lib/accelerated/intel/Makefile.am,
-       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h,
-       lib/accelerated/intel/asm/x64_do_rdtsc.s,
-       lib/accelerated/intel/asm/x64_iaesx64.s,
-       lib/accelerated/intel/asm/x86_do_rdtsc.s,
-       lib/accelerated/intel/asm/x86_iaesx86.s,
-       lib/accelerated/intel/iaes_asm_interface.h,
-       lib/accelerated/intel/iaesni.h, lib/accelerated/intel/license.txt,
-       m4/gcc.m4: fixes in acceleration detection.  Added Intel's library
-       code for AES-NI acceleration.
-
-2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * guile/modules/gnutls/build/enums.scm, lib/libgnutls.map,
-       libextra/Makefile.am: Purged all references of LZO.
-
-2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: removed duplicate test
-
-2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cxx.cpp, gl/time.in.h: No need to under restrict
-       for C++. Only use config.h.
-
-2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/gnutls.h.in, lib/system_override.c: 
-       gnutls_transport_set_global_errno() is no more.
-
-2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/eagain-common.h, tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/srn0.c, tests/safe-renegotiation/srn1.c,
-       tests/safe-renegotiation/srn2.c, tests/safe-renegotiation/srn3.c,
-       tests/safe-renegotiation/srn4.c, tests/safe-renegotiation/srn5.c: 
-       Combined the safe renegotiation tests with the again-common lib.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, doc/cha-intro-tls.texi, doc/cha-preface.texi,
-       doc/cha-programs.texi, lib/gnutls_compress.c, lib/gnutls_errors.c,
-       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, libextra/gnutls_extra.c, m4/hooks.m4: Support for
-       liblzo was dropped.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac: bumped version
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, gl/time.h, gl/time.in.h: updated time.h.in
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_dtls.c, lib/gnutls_mem.c,
-       lib/gnutls_psk.c, lib/gnutls_record.c,
-       lib/includes/gnutls/gnutls.h.in, lib/pkcs11.c,
-       lib/pkcs11_privkey.c, lib/x509/verify-high.c, lib/x509/verify.c: 
-       Corrected documentation of several API functions.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, doc/cha-library.texi: documentation
-       updates.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc, doc/scripts/sort2.pl: remove perl warnings from
-       scripts.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/Makefile.am, lib/accelerated/Makefile.am,
-       lib/accelerated/accelerated.c, lib/accelerated/accelerated.h,
-       lib/accelerated/aes-x86.c, lib/accelerated/aes-x86.h,
-       lib/accelerated/x86.h, lib/gnutls_global.c, m4/gcc.m4: Added support
-       for x86 intel AES instruction acceleration if detected.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/time.h, gl/unistd.h, gl/warn-on-use.h, gl/wchar.h: Added gl/
-       files.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk: corrected po directory and build-aux paths.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am: include gnulib files.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: updated TODO
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgp-certs/testselfsigs: Use --infile in certtool to
-       avoid issues with streams in windows.  Patch by LRN.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/armor.c: Changes armor.c to be able to handle both LF
-       and CRLF inputs (output is still either LF-only or CRLF-only
-       depending on the platform). Patch by LRN.  Optimizations in the usage of strlen().
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/psk.c, src/serv.c, src/srptool.c, src/tests.c: 
-       Define variables within the intended scope (not windows). Based on
-       patch by LRN.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select-pkcs11.c, src/common.c, src/pkcs11.c: 
-       Use getpass.h (from gnulib). Patch by LRN.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pakchois/dlopen.c: Return correct value for dlclose() in
-       windows. Patch by LRN.
-
-2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgp-auth.c: Disable openpgp-auth run in windows due to
-       lack of socketpair(). Patch by LRN.
-
-2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * Makefile.am: gl before lib or libextra
-
-2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: generated
-
-2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated
-
-2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
-       doc/examples/Makefile.am, doc/examples/ex-client-udp.c,
-       doc/examples/udp.c, lib/gnutls_state.c: Added documentation for
-       Datagram TLS.
-
-2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk: updated
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/chainverify.c: disable test in windows.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/mini-x509-rehandshake.c, tests/openpgp-auth.c,
-       tests/openpgp-auth2.c: corrected leaks in tests.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls_pk.c: corrected memory leak on RSA
-       signatures.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: more leaks fixed in common.c
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c: Corrected leaks in gnutls_pubkey_t
-       deinitialization.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify-high.c: fix in trusted_list certificate
-       deinitialization.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c: correction in deinitialization of privkey.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/mini-x509-rehandshake.c, tests/mini-x509.c: combined more
-       tests with eagain-common.h.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dh_common.c, lib/gnutls_privkey.c, lib/gnutls_x509.c,
-       lib/nettle/pk.c, lib/pakchois/pakchois.c, lib/pakchois/pakchois.h,
-       lib/pkcs11.c, lib/x509/verify-high.c, tests/mini-x509.c: Corrected
-       memory leaks.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * build-aux/arg-nonnull.h, build-aux/c++defs.h,
-       build-aux/config.rpath, build-aux/warn-on-use.h, cfg.mk,
-       gl/Makefile.am, gl/m4/.gitignore, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4: added valgrind from gnulib.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dsa/testdsa, tests/openpgp-certs/testcerts: Do not run the
-       test scripts in win32 environment.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * cfg.mk: use the system wide gnulib-tool.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: updated
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/ecore/src/lib/ecore_exe.c: include priority headers
-       unconditionally.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, tests/Makefile.am, tests/suite/Makefile.am,
-       tests/suite/Makefile.in: Better way of not including the tests/suite
-       directory. Based on discussion with LRN and Vincent Torri.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, Makefile.am, cfg.mk, configure.ac,
-       doc/examples/Makefile.am, doc/gendocs_template, gl/.gitignore,
-       gl/Makefile.am, gl/accept.c, gl/alignof.h, gl/alloca.c,
-       gl/alloca.in.h, gl/arpa_inet.in.h, gl/asnprintf.c, gl/bind.c,
-       gl/c-ctype.c, gl/c-ctype.h, gl/close-hook.c, gl/close-hook.h,
-       gl/close.c, gl/connect.c, gl/errno.in.h, gl/error.c, gl/error.h,
-       gl/fclose.c, gl/float+.h, gl/float.in.h, gl/fseeko.c, gl/ftello.c,
-       gl/gai_strerror.c, gl/getaddrinfo.c, gl/getdelim.c, gl/getline.c,
-       gl/getpass.c, gl/getpass.h, gl/gettext.h, gl/gettime.c,
-       gl/gettimeofday.c, gl/inet_ntop.c, gl/inet_pton.c, gl/intprops.h,
-       gl/listen.c, gl/lseek.c, gl/m4/.gitignore, gl/m4/00gnulib.m4,
-       gl/m4/alloca.m4, gl/m4/arpa_inet_h.m4, gl/m4/asm-underscore.m4,
-       gl/m4/autobuild.m4, gl/m4/clock_time.m4, gl/m4/close.m4,
-       gl/m4/errno_h.m4, gl/m4/error.m4, gl/m4/extensions.m4,
-       gl/m4/fclose.m4, gl/m4/float_h.m4, gl/m4/fseeko.m4,
-       gl/m4/ftello.m4, gl/m4/getaddrinfo.m4, gl/m4/getdelim.m4,
-       gl/m4/getline.m4, gl/m4/getpagesize.m4, gl/m4/getpass.m4,
-       gl/m4/gettime.m4, gl/m4/gettimeofday.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4,
-       gl/m4/hostent.m4, gl/m4/include_next.m4, gl/m4/inet_ntop.m4,
-       gl/m4/inet_pton.m4, gl/m4/intmax_t.m4, gl/m4/inttypes_h.m4,
-       gl/m4/ioctl.m4, gl/m4/lib-ld.m4, gl/m4/lib-link.m4,
-       gl/m4/lib-prefix.m4, gl/m4/longlong.m4, gl/m4/lseek.m4,
-       gl/m4/malloc.m4, gl/m4/manywarnings.m4, gl/m4/memchr.m4,
-       gl/m4/minmax.m4, gl/m4/mmap-anon.m4, gl/m4/multiarch.m4,
-       gl/m4/netdb_h.m4, gl/m4/netinet_in_h.m4, gl/m4/perror.m4,
-       gl/m4/printf.m4, gl/m4/read-file.m4, gl/m4/readline.m4,
-       gl/m4/realloc.m4, gl/m4/select.m4, gl/m4/servent.m4,
-       gl/m4/size_max.m4, gl/m4/snprintf.m4, gl/m4/socketlib.m4,
-       gl/m4/sockets.m4, gl/m4/socklen.m4, gl/m4/sockpfaf.m4,
-       gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4,
-       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdio_h.m4,
-       gl/m4/stdlib_h.m4, gl/m4/strerror.m4, gl/m4/string_h.m4,
-       gl/m4/sys_ioctl_h.m4, gl/m4/sys_select_h.m4, gl/m4/sys_socket_h.m4,
-       gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4, gl/m4/time_h.m4,
-       gl/m4/timespec.m4, gl/m4/ungetc.m4, gl/m4/unistd_h.m4,
-       gl/m4/valgrind-tests.m4, gl/m4/vasnprintf.m4, gl/m4/version-etc.m4,
-       gl/m4/warn-on-use.m4, gl/m4/warnings.m4, gl/m4/wchar_h.m4,
-       gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/malloc.c,
-       gl/memchr.c, gl/minmax.h, gl/netdb.in.h, gl/netinet_in.in.h,
-       gl/perror.c, gl/printf-args.c, gl/printf-args.h, gl/printf-parse.c,
-       gl/printf-parse.h, gl/progname.c, gl/progname.h, gl/read-file.c,
-       gl/read-file.h, gl/readline.c, gl/readline.h, gl/realloc.c,
-       gl/recv.c, gl/select.c, gl/send.c, gl/setsockopt.c, gl/shutdown.c,
-       gl/size_max.h, gl/snprintf.c, gl/socket.c, gl/sockets.c,
-       gl/sockets.h, gl/stdarg.in.h, gl/stdbool.in.h, gl/stddef.in.h,
-       gl/stdint.in.h, gl/stdio-impl.h, gl/stdio-write.c, gl/stdio.in.h,
-       gl/stdlib.in.h, gl/strerror.c, gl/string.in.h, gl/sys_select.in.h,
-       gl/sys_socket.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
-       gl/tests/.gitignore, gl/tests/Makefile.am, gl/tests/binary-io.h,
-       gl/tests/dummy.c, gl/tests/fcntl.in.h, gl/tests/getpagesize.c,
-       gl/tests/init.sh, gl/tests/ioctl.c, gl/tests/macros.h,
-       gl/tests/signature.h, gl/tests/sys_ioctl.in.h,
-       gl/tests/test-alignof.c, gl/tests/test-alloca-opt.c,
-       gl/tests/test-arpa_inet.c, gl/tests/test-binary-io.c,
-       gl/tests/test-c-ctype.c, gl/tests/test-errno.c,
-       gl/tests/test-fcntl-h.c, gl/tests/test-fseeko.c,
-       gl/tests/test-ftello.c, gl/tests/test-ftello3.c,
-       gl/tests/test-getaddrinfo.c, gl/tests/test-getdelim.c,
-       gl/tests/test-getline.c, gl/tests/test-gettimeofday.c,
-       gl/tests/test-inet_ntop.c, gl/tests/test-inet_pton.c,
-       gl/tests/test-lseek.c, gl/tests/test-lseek.sh,
-       gl/tests/test-memchr.c, gl/tests/test-netdb.c,
-       gl/tests/test-netinet_in.c, gl/tests/test-perror.c,
-       gl/tests/test-perror.sh, gl/tests/test-read-file.c,
-       gl/tests/test-select-fd.c, gl/tests/test-select-in.sh,
-       gl/tests/test-select-out.sh, gl/tests/test-select-stdin.c,
-       gl/tests/test-select.c, gl/tests/test-snprintf.c,
-       gl/tests/test-sockets.c, gl/tests/test-stdbool.c,
-       gl/tests/test-stddef.c, gl/tests/test-stdint.c,
-       gl/tests/test-stdio.c, gl/tests/test-stdlib.c,
-       gl/tests/test-strerror.c, gl/tests/test-string.c,
-       gl/tests/test-sys_ioctl.c, gl/tests/test-sys_select.c,
-       gl/tests/test-sys_socket.c, gl/tests/test-sys_stat.c,
-       gl/tests/test-sys_time.c, gl/tests/test-sys_wait.h,
-       gl/tests/test-time.c, gl/tests/test-unistd.c,
-       gl/tests/test-update-copyright.sh, gl/tests/test-vasnprintf.c,
-       gl/tests/test-vc-list-files-cvs.sh,
-       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
-       gl/tests/test-version-etc.c, gl/tests/test-version-etc.sh,
-       gl/tests/test-wchar.c, gl/tests/w32sock.h, gl/tests/zerosize-ptr.h,
-       gl/time.in.h, gl/timespec.h, gl/unistd.in.h, gl/vasnprintf.c,
-       gl/vasnprintf.h, gl/verify.h, gl/version-etc-fsf.c,
-       gl/version-etc.c, gl/version-etc.h, gl/w32sock.h, gl/wchar.in.h,
-       gl/xsize.h, guile/src/Makefile.am, lib/Makefile.am,
-       lib/configure.ac, lib/gcrypt/Makefile.am, lib/gl/Makefile.am,
-       lib/gl/alignof.h, lib/gl/alloca.in.h, lib/gl/asnprintf.c,
-       lib/gl/asprintf.c, lib/gl/byteswap.in.h, lib/gl/c-ctype.c,
-       lib/gl/c-ctype.h, lib/gl/close-hook.c, lib/gl/close-hook.h,
-       lib/gl/errno.in.h, lib/gl/float+.h, lib/gl/float.in.h,
-       lib/gl/fseeko.c, lib/gl/ftello.c, lib/gl/gettext.h, lib/gl/lseek.c,
-       lib/gl/m4/00gnulib.m4, lib/gl/m4/alloca.m4,
-       lib/gl/m4/asm-underscore.m4, lib/gl/m4/byteswap.m4,
-       lib/gl/m4/codeset.m4, lib/gl/m4/errno_h.m4,
-       lib/gl/m4/extensions.m4, lib/gl/m4/fcntl-o.m4,
-       lib/gl/m4/float_h.m4, lib/gl/m4/fseeko.m4, lib/gl/m4/ftello.m4,
-       lib/gl/m4/func.m4, lib/gl/m4/getpagesize.m4, lib/gl/m4/gettext.m4,
-       lib/gl/m4/glibc2.m4, lib/gl/m4/glibc21.m4,
-       lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-common.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-tool.m4,
-       lib/gl/m4/iconv.m4, lib/gl/m4/include_next.m4,
-       lib/gl/m4/intdiv0.m4, lib/gl/m4/intl.m4, lib/gl/m4/intldir.m4,
-       lib/gl/m4/intlmacosx.m4, lib/gl/m4/intmax.m4,
-       lib/gl/m4/intmax_t.m4, lib/gl/m4/inttypes-pri.m4,
-       lib/gl/m4/inttypes_h.m4, lib/gl/m4/lcmessage.m4,
-       lib/gl/m4/ld-output-def.m4, lib/gl/m4/ld-version-script.m4,
-       lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4,
-       lib/gl/m4/lib-prefix.m4, lib/gl/m4/lock.m4, lib/gl/m4/longlong.m4,
-       lib/gl/m4/lseek.m4, lib/gl/m4/malloc.m4, lib/gl/m4/memchr.m4,
-       lib/gl/m4/memmem.m4, lib/gl/m4/minmax.m4, lib/gl/m4/mmap-anon.m4,
-       lib/gl/m4/multiarch.m4, lib/gl/m4/netdb_h.m4, lib/gl/m4/nls.m4,
-       lib/gl/m4/po.m4, lib/gl/m4/printf-posix.m4, lib/gl/m4/printf.m4,
-       lib/gl/m4/progtest.m4, lib/gl/m4/read-file.m4,
-       lib/gl/m4/realloc.m4, lib/gl/m4/size_max.m4, lib/gl/m4/snprintf.m4,
-       lib/gl/m4/socketlib.m4, lib/gl/m4/sockets.m4, lib/gl/m4/socklen.m4,
-       lib/gl/m4/sockpfaf.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stddef_h.m4,
-       lib/gl/m4/stdint.m4, lib/gl/m4/stdint_h.m4, lib/gl/m4/stdio_h.m4,
-       lib/gl/m4/stdlib_h.m4, lib/gl/m4/strcase.m4, lib/gl/m4/string_h.m4,
-       lib/gl/m4/strings_h.m4, lib/gl/m4/strverscmp.m4,
-       lib/gl/m4/sys_socket_h.m4, lib/gl/m4/sys_stat_h.m4,
-       lib/gl/m4/threadlib.m4, lib/gl/m4/time_h.m4, lib/gl/m4/time_r.m4,
-       lib/gl/m4/uintmax_t.m4, lib/gl/m4/ungetc.m4, lib/gl/m4/unistd_h.m4,
-       lib/gl/m4/vasnprintf.m4, lib/gl/m4/vasprintf.m4,
-       lib/gl/m4/visibility.m4, lib/gl/m4/vsnprintf.m4,
-       lib/gl/m4/warn-on-use.m4, lib/gl/m4/wchar_h.m4,
-       lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/m4/xsize.m4,
-       lib/gl/malloc.c, lib/gl/memchr.c, lib/gl/memchr.valgrind,
-       lib/gl/memmem.c, lib/gl/minmax.h, lib/gl/netdb.in.h,
-       lib/gl/override/lib/gc-libgcrypt.c.diff,
-       lib/gl/override/lib/gettext.h.diff, lib/gl/printf-args.c,
-       lib/gl/printf-args.h, lib/gl/printf-parse.c, lib/gl/printf-parse.h,
-       lib/gl/read-file.c, lib/gl/read-file.h, lib/gl/realloc.c,
-       lib/gl/size_max.h, lib/gl/snprintf.c, lib/gl/sockets.c,
-       lib/gl/sockets.h, lib/gl/stdbool.in.h, lib/gl/stddef.in.h,
-       lib/gl/stdint.in.h, lib/gl/stdio-impl.h, lib/gl/stdio-write.c,
-       lib/gl/stdio.in.h, lib/gl/stdlib.in.h, lib/gl/str-two-way.h,
-       lib/gl/strcasecmp.c, lib/gl/string.in.h, lib/gl/strings.in.h,
-       lib/gl/strncasecmp.c, lib/gl/strverscmp.c, lib/gl/sys_socket.in.h,
-       lib/gl/sys_stat.in.h, lib/gl/tests/Makefile.am,
-       lib/gl/tests/binary-io.h, lib/gl/tests/dummy.c,
-       lib/gl/tests/getpagesize.c, lib/gl/tests/init.sh,
-       lib/gl/tests/intprops.h, lib/gl/tests/macros.h,
-       lib/gl/tests/signature.h, lib/gl/tests/test-alloca-opt.c,
-       lib/gl/tests/test-binary-io.c, lib/gl/tests/test-binary-io.sh,
-       lib/gl/tests/test-byteswap.c, lib/gl/tests/test-c-ctype.c,
-       lib/gl/tests/test-errno.c, lib/gl/tests/test-fseeko.c,
-       lib/gl/tests/test-fseeko.sh, lib/gl/tests/test-fseeko2.sh,
-       lib/gl/tests/test-ftello.c, lib/gl/tests/test-ftello.sh,
-       lib/gl/tests/test-ftello2.sh, lib/gl/tests/test-ftello3.c,
-       lib/gl/tests/test-func.c, lib/gl/tests/test-memchr.c,
-       lib/gl/tests/test-netdb.c, lib/gl/tests/test-read-file.c,
-       lib/gl/tests/test-snprintf.c, lib/gl/tests/test-sockets.c,
-       lib/gl/tests/test-stdbool.c, lib/gl/tests/test-stddef.c,
-       lib/gl/tests/test-stdint.c, lib/gl/tests/test-stdio.c,
-       lib/gl/tests/test-stdlib.c, lib/gl/tests/test-string.c,
-       lib/gl/tests/test-strings.c, lib/gl/tests/test-strverscmp.c,
-       lib/gl/tests/test-sys_socket.c, lib/gl/tests/test-sys_stat.c,
-       lib/gl/tests/test-sys_wait.h, lib/gl/tests/test-time.c,
-       lib/gl/tests/test-unistd.c, lib/gl/tests/test-vasnprintf.c,
-       lib/gl/tests/test-vasprintf.c, lib/gl/tests/test-verify.c,
-       lib/gl/tests/test-verify.sh, lib/gl/tests/test-vsnprintf.c,
-       lib/gl/tests/test-wchar.c, lib/gl/tests/zerosize-ptr.h,
-       lib/gl/time.in.h, lib/gl/time_r.c, lib/gl/unistd.in.h,
-       lib/gl/vasnprintf.c, lib/gl/vasnprintf.h, lib/gl/vasprintf.c,
-       lib/gl/verify.h, lib/gl/vsnprintf.c, lib/gl/w32sock.h,
-       lib/gl/wchar.in.h, lib/gl/xsize.h, lib/gnutls_int.h,
-       lib/m4/hooks.m4, lib/minitasn1/Makefile.am, lib/nettle/Makefile.am,
-       lib/opencdk/Makefile.am, lib/openpgp/Makefile.am, lib/po/LINGUAS,
-       lib/po/Makevars, lib/po/POTFILES.in, lib/po/cs.po.in,
-       lib/po/de.po.in, lib/po/fr.po.in, lib/po/it.po.in, lib/po/ms.po.in,
-       lib/po/nl.po.in, lib/po/pl.po.in, lib/po/sv.po.in, lib/po/vi.po.in,
-       lib/po/zh_CN.po.in, lib/x509/Makefile.am, libextra/Makefile.am,
-       libextra/configure.ac, libextra/gl/Makefile.am,
-       libextra/gl/gnulib.mk, libextra/gl/hmac-md5.c, libextra/gl/hmac.h,
-       libextra/gl/m4/00gnulib.m4, libextra/gl/m4/extensions.m4,
-       libextra/gl/m4/gnulib-cache.m4, libextra/gl/m4/gnulib-common.m4,
-       libextra/gl/m4/gnulib-comp.m4, libextra/gl/m4/gnulib-tool.m4,
-       libextra/gl/m4/hmac-md5.m4, libextra/gl/m4/ld-output-def.m4,
-       libextra/gl/m4/ld-version-script.m4, libextra/gl/m4/lib-ld.m4,
-       libextra/gl/m4/lib-link.m4, libextra/gl/m4/lib-prefix.m4,
-       libextra/gl/m4/md5.m4, libextra/gl/m4/memxor.m4, libextra/gl/md5.c,
-       libextra/gl/md5.h, libextra/gl/memxor.c, libextra/gl/memxor.h,
-       libextra/gl/override/lib/md5.c.diff, libextra/m4/hooks.m4,
-       m4/hooks.m4, po/LINGUAS, po/Makevars, po/POTFILES.in, po/cs.po.in,
-       po/de.po.in, po/fr.po.in, po/it.po.in, po/ms.po.in, po/nl.po.in,
-       po/pl.po.in, po/sv.po.in, po/vi.po.in, po/zh_CN.po.in,
-       src/Makefile.am, tests/suite/Makefile.in: Use a single configure.ac.
-       This speed ups compilation and reduces duplication of code (multiple
-       gl/ libraries etc.).  This saves about 2mb in distributed size
-       (compressed).
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c: Avoid using readline.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: initialized ret in _gnutls_writev_emu().
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/x509.h: doc fix
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/system.c: removed unneeded variable.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: Corrected check for an unknown sign algorithm.
-       Patch by LRN.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/openpgp/output.c: Do not use %e in strftime. Use %d instead
-       which is identically available in windows as well.  Based on patch
-       by LRN.
-
-2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/output.c, tests/certuniqueid.c: Fixed mismatch in size_t
-       size. Patch by LRN.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/system.c, lib/system_override.c: Correctly set errno in win32
-       using gnutls_transport_set_global_errno(). Based on patch by LRN.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/eagain-common.h, tests/mini-eagain-dtls.c,
-       tests/mini-eagain.c, tests/mini.c: Avoid using
-       gnutls_transport_set_global_errno() and use
-       gnutls_transport_set_errno() instead.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/system_override.c: win32 fixes for set_global_errno().
-       Suggested by LRN.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c: Win32 changes for benchmark. Patch by LRN.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/anonself.c, tests/dhepskself.c, tests/openpgpself.c,
-       tests/pskself.c, tests/resume.c, tests/rng-fork.c, tests/x509dn.c,
-       tests/x509self.c: win32 fixes. Patch by LRN.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: minor modification in write_emu().
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/literal.c, lib/opencdk/main.h, lib/opencdk/misc.c: 
-       simplified cdk_trim_string() to make it safer to use.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey_pkcs8.c: correctly reset params.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crl.c, lib/x509/x509.c: use correct pointer size.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: correctly compare sign algorithm_st.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/Makefile.am, lib/opencdk/context.h,
-       lib/opencdk/main.c, lib/opencdk/main.h, lib/opencdk/opencdk.h,
-       lib/opencdk/verify.c: removed unused code
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/armor.c: null terminate the armored string
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: properly null terminate string.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/common.c, src/pkcs11.c: check PIN size.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/srptool.c: check salt size.
-
-2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/read-packet.c: more clear bounds checking
-
-2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c: initialize e and d.
-
-2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_write.c: deinitialize pks variable only when needed.
-
-2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/openpgp/pgpverify.c: Initialize verify.
-
-2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: initialize session_id_size.
-
-2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/misc.c, lib/opencdk/opencdk.h: removed unneeded
-       function.
-
-2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pakchois/pakchois.c: correctly traverse slots
-
-2011-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * guile/src/core.c: avoid using a freed pointer.
-
-2011-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Initialize tinfo using the initially available
-       information.
-
-2011-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: corrected debugging info.
-
-2011-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/eagain-common.h, tests/mini-eagain-dtls.c,
-       tests/mini-eagain.c, tests/mini.c: The mini-* programs were
-       combined.
-
-2011-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: Do not cleanup bufel after it has been
-       inserted into buffer.
-
-2011-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_mbuffers.c: Combined dequeue with remove_front() and
-       pop_first().
-
-2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am: Compile ex-cert-select-pkcs11 as a
-       separate program.
-
-2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, lib/gnutls_buffers.c, lib/gnutls_dtls.c,
-       lib/gnutls_int.h, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/system.h, tests/Makefile.am,
-       tests/eagain-common.h, tests/mini-eagain-dtls.c,
-       tests/mini-eagain.c, tests/utils.c: Added support for non-blocking
-       DTLS.  Added mini-eagain-dtls to test its operation.  Improved
-       mini-eagain.
-
-2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/init.c: gcrypt.h is not really needed. Reported by
-       David Reiser.
-
-2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/srptool.c: corrected header inclusion.
-
-2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am, src/crypt-gaa.c, src/crypt-gaa.h, src/crypt.c,
-       src/crypt.gaa, src/srptool-gaa.c, src/srptool-gaa.h, src/srptool.c,
-       src/srptool.gaa: crypt.* renamed to srptool.*.
-
-2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_srp.c: Corrected bug in gnutls_srp_verifier() that
-       prevented the allocation of a verifier. Reported by Andrew Wiseman.
-
-2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crypt-gaa.c, src/crypt-gaa.h, src/crypt.c, src/crypt.gaa: 
-       Added debug option to srptool.
-
-2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: Documented p11-kit.
-
-2011-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-library.texi: corrected typo
-
-2011-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/scripts/common.sh: Added copyright.
-
-2011-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, tests/Makefile.am, tests/dsa/testdsa,
-       tests/openpgp-certs/testcerts, tests/scripts/Makefile.am,
-       tests/scripts/common.sh: Reorganized scripts that use test servers,
-       based on patch by Cedric Arbogast.
-
-2011-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool.gaa: Create certificate request
-       with stricter permissions. Reported by Luca Capello.
-
-2011-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgp-certs/Makefile.am: enabled testcerts.
-
-2011-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgp-certs/testcerts: made more silent.
-
-2011-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dsa/testdsa, tests/openpgp-certs/testcerts: Made scripts
-       bourne shell compliant and not bash.
-
-2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: e-mail addresses are not directly recognizable.
-
-2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/stream.c: Corrected access to freed memory location.
-       Reported by Vitaly Kruglikov.
-
-2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: added Mark and Vitaly to THANKS.
-
-2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/system.c: Corrected windows system_errno() function. Reported
-       and patch by Mark Brand.
-
-2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h: C++ compatibility fix for compat.h.
-       Suggested by Mark Brand.
-
-2011-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/verify.c: Corrected uninitialized var deinitiation.
-       Reported by Vitaly Kruglikov.
-
-2011-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_sig.c: eliminate compiler warning. Reported by Andreas
-       Metzler.
-
-2011-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/openpgp.h, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/pgp.c, lib/openpgp/privkey.c: Fix size of
-       gnutls_openpgp_keyid_t by using the GNUTLS_OPENPGP_KEYID_SIZE
-       definition.  Reported by Andreas Metzler.
-
-2011-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: included news of 2.12.0
-
-2011-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * guile/tests/Makefile.am: added missing files.
-
-2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/abstract.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/pkcs11.h, lib/includes/gnutls/x509.h,
-       lib/pkcs11.c, lib/x509/crl.c: documentation fixes.
-
-2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dsa/testdsa: Added DSA tests for client certificates as
-       well.
-
-2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_signature.c, lib/ext_signature.h, lib/gnutls_handshake.c,
-       lib/gnutls_sig.c, lib/includes/gnutls/abstract.h, lib/x509/verify.c: 
-       Simplified signature algorithm selection.
-
-2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: The processed messages go to stdout.
-
-2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c: updated documentation
-
-2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_int.h,
-       lib/includes/gnutls/gnutls.h.in: Increased GNUTLS_MAX_ALGORITHM_NUM
-       to 32. The gnutls_*_list() functions generate the list of algorithm
-       on the spot and no longer require a static duplicate list of
-       algorithms. This comes at a cost of not being thread safe (which is
-       not significant since those functions are only used for special
-       purposes).
-
-2011-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c: corrected parameter.
-
-2011-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c, lib/includes/gnutls/pkcs11.h, lib/pkcs11.c,
-       lib/pkcs11_privkey.c, lib/pkcs11_secret.c, lib/x509/privkey.c: 
-       Documentation fixes and cleanups.
-
-2011-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: define variable locally
-
-2011-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/serv.c: use IP_DONTFRAG if it is defined.
-
-2011-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
-       lib/gnutls_dtls.h, lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_int.h, lib/gnutls_record.c,
-       lib/includes/gnutls/gnutls.h.in, lib/system.c, lib/system.h,
-       src/cli.c, src/common.h, src/serv.c, src/udp-serv.c: Avoided waiting
-       for peer's retransmission to ensure receipt of finished messages,
-       and used a 'timer'-like to retransmit packets.
-
-2011-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c, lib/includes/gnutls/dtls.h, lib/libgnutls.map: 
-       added gnutls_dtls_get_data_mtu().
-
-2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dsa/testdsa: make gnutls-cli more quiet.
-
-2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, tests/Makefile.am, tests/dsa/Makefile.am,
-       tests/dsa/cert.dsa.1024.pem, tests/dsa/cert.dsa.2048.pem,
-       tests/dsa/cert.dsa.3072.pem, tests/dsa/dsa.1024.pem,
-       tests/dsa/dsa.2048.pem, tests/dsa/dsa.3072.pem, tests/dsa/testdsa,
-       tests/suite/Makefile.in: Added test to verify connections with DSA
-       keys of various sizes.
-
-2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: warn on generation of DSA keys of over 1024 bits.
-
-2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_errors.c, lib/gnutls_sig.c,
-       lib/includes/gnutls/gnutls.h.in: Return a special error code if DSA
-       keys with over 1024 are being used with TLS 1.x, x<2.
-
-2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/pk.c: truncate hash size when asking to sign or verify
-       DSA with a longer hash.
-
-2011-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/system.c: Check for rejected connections
-       in system_recv_timeout().
-
-2011-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/system_override.c: quickly discuss callback format.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c: When sending multiple cookies due to
-       verification errors do not increase the handshake sequence number
-       only the record sequence.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS: updated Jonathan
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgp-auth.c: Added check for RSA ciphersuite in openpgp
-       keys.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/openpgp/privkey.c: read correct algorithm when decrypting data
-       and use correct number of private parameters.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_extra.c: added missing ret.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: Set type when sending empty openpgp key.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c, tests/Makefile.am, tests/rng-fork.c: Corrected
-       nettle's RNG behavior on fork and added a test case.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * guile/tests/openpgp-auth.scm: enabled RSA and removed debugging.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/gnutls_pubkey.c,
-       lib/includes/gnutls/abstract.h, lib/openpgp/gnutls_openpgp.c,
-       tests/openpgp-auth.c, tests/openpgp-auth2.c: gnutls_pubkey_t and
-       gnutls_privkey_t can import either an openpgp subkey or a master
-       key.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * guile/tests/openpgp-auth.scm, guile/tests/openpgp-elg-pub.asc,
-       guile/tests/openpgp-elg-sec.asc, guile/tests/openpgp-keys.scm,
-       guile/tests/openpgp-pub.asc, guile/tests/openpgp-sec.asc: split the
-       pgp keys to elgamal and dsa.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/includes/gnutls/gnutls.h.in,
-       lib/openpgp/pgp.c, lib/openpgp/privkey.c: introduced
-       GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: On unknown public key algorithms return
-       Unknown name.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c: Read the public key algorithm from the
-       selected subkey and not the master key when importing to a
-       gnutls_privkey.
-
-2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/openpgp/gnutls_openpgp.c, tests/openpgpself.c: Documentation
-       fixed. Added fresh keys to test.
-
-2011-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgpself.c: Test openpgp authentication with DSA-2048 bit
-       keys as well.
-
-2011-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/openpgp/pgp.c: gnutls_openpgp_crt_get_auth_subkey() will no
-       longer return an unsupported subkey.
-
-2011-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: Corrected verification of DSA-2048 keys.
-       Reported by teddy@fukt.bsnet.se.
-
-2011-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Added
-       gnutls_transport_set_vec_push_function().
-
-2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c, lib/includes/gnutls/dtls.h, lib/libgnutls.map,
-       src/udp-serv.c: updated cookie negotiation to use only a prestate
-       structure and avoids setting data to cookie.
-
-2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: Use DTLS 1.0 instead of SSL 3.0 headers on
-       client hello in DTLS.
-
-2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c, lib/gnutls_errors.c,
-       lib/includes/gnutls/dtls.h, lib/libgnutls.map, src/udp-serv.c: Added
-       photuris-like resource protection on the server. Added
-       gnutls_dtls_cookie_send(), gnutls_dtls_cookie_verify() and
-       gnutls_dtls_cookie_set() to avoid initializing a session before
-       cookie is verified.
-
-2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c, lib/ext_session_ticket.c,
-       lib/includes/gnutls/gnutls.h.in: added gnutls_key_generate() to API.
-
-2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c: Avoid the usage of structures where the
-       attribute packed is assumed.
-
-2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c: renamed gnutls_handshake_buffer_* functions
-       to gnutls_handshake_hash_buffer_* to separate from new API functions
-       and corrected its usage.
-
-2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Added DSA-SHA256, DSA-SHA224 and
-       RSA-SHA224 to the supported signature algorithms list. Suggested by
-       teddy@fukt.bsnet.se
-
-2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_constate.c, lib/gnutls_constate.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_v2_compat.c: 
-       session->internals.compression_method was removed. It was no longer
-       required since the new compression algorithm was stored to next
-       epoch as well.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_cipher.c, lib/gnutls_constate.c,
-       lib/gnutls_handshake.c, lib/gnutls_record.c, lib/gnutls_state.h: 
-       _gnutls_is_dtls() is no more. IS_DTLS() is being used instead.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c: do not print debugging output on
-       non-fatal errors.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_constate.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_record.c: 
-       Properly reset the SSL 3.0 MAC algorithm.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_errors.h,
-       lib/gnutls_handshake.c, lib/x509/verify-high.c: cleanups. Introduced
-       gnutls_assert_val_fatal() that only prints debugging messages on
-       non-fatal errors.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c: Added string for GNUTLS_A_SSL3_NO_CERTIFICATE.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h: 
-       gnutls_version_has_variable_padding is not really needed. A check
-       for SSL3.0 is more clear.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/debug.c, lib/gnutls_buffers.c, lib/gnutls_constate.c,
-       lib/gnutls_handshake.c, lib/gnutls_record.c, lib/gnutls_v2_compat.c: 
-       Corrected SSL2 client hello handling.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: do not set default record version (i.e. SSL
-       3.0) during a re-handshake.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: default behavior is to send SSL3.0 client
-       hellos.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c: 
-       corrected ssl3 record version sending in client hello.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-intro-tls.texi, lib/gnutls_buffers.c,
-       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map: gnutls_transport_set_lowat() is no more.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_record.c: some cleanups
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.h, lib/x509/verify-high.c, lib/x509/verify.c: 
-       gnutls_x509_trust_list_verify_crt shortens the provided certificate
-       list based on the existing trusted CAs.
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_state.c, lib/gnutlsxx.cpp,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/dtls.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/gnutlsxx.h,
-       lib/libgnutls.map, libextra/includes/gnutls/openssl.h, src/cli.c,
-       src/serv.c: gnutls_init_dtls() was made redundant. The same for
-       gnutls_end_connection_t which was replaced by a flags integer..
-
-2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_psk.c, lib/auth_psk.h, lib/ext_session_ticket.c,
-       lib/ext_srp.c, lib/gnutls_sig.c, lib/gnutls_x509.c,
-       lib/pkcs11_int.h, lib/system.c, lib/system.h, lib/x509/mpi.c,
-       lib/x509/verify.c, src/certtool-common.h, src/certtool.c,
-       src/common.c, src/pkcs11.c, src/udp-serv.c: Corrected types.
-
-2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa,
-       src/udp-serv.c, src/udp-serv.h: Added --mtu option.
-
-2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: properly re-generate headers of fragmented
-       packets.
-
-2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_state.c: increased initial retransmission time to 1
-       sec.
-
-2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: In DTLS do not hash messages that
-       shouldn't be hashed (i.e. hello verify request).
-
-2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c: Corrected size check in block encrypted
-       records.
-
-2011-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_handshake.c: Corrected behavior
-       in normal TLS handshake.
-
-2011-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/Makefile.am: link libgnutls-extra against libgcrypt if
-       required. Based on patch by Andreas Metzler
-       <ametzler@downhill.at.eu.org>
-
-2011-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/m4/hooks.m4, libextra/Makefile.am: increased the so
-       version of libgnutls-openssl.
-
-2011-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cipher.c, lib/gnutls_dtls.c,
-       lib/gnutls_errors.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h, lib/gnutls_record.c,
-       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_v2_compat.c,
-       lib/includes/gnutls/gnutls.h.in: Added intermediate handshake layer
-       that will order handshake packets and drop duplicates.
-
-2011-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: handle non fatal errors when receiving record
-       headers.
-
-2011-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c: memcpy -> memmove.
-
-2011-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_int.h: removed GMAX
-
-2011-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Allow providing no password for PKCS #12 structure
-       generation. Reported by Daniel Kahn Gillmor.
-
-2011-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c: consistently print all interactive questions
-       to stderr. Reported by Daniel Kahn Gillmor.
-
-2011-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
-       lib/gnutls_int.h, lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h,
-       lib/gnutls_record.c, lib/gnutls_state.c: combined all the record
-       buffers in one.
-
-2011-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
-       lib/gnutls_int.h, lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h,
-       lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_state.c: 
-       internal buffering for record and handshake data changed from
-       gnutls_buffers to gnutls_mbuffers.
-
-2011-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/debug.c, lib/gnutls_buffers.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in: Removed last pieces of inner
-       application.
-
-2011-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: some cleanups
-
-2011-03-01  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/tests/anonymous-auth.scm, guile/tests/openpgp-auth.scm,
-       guile/tests/x509-auth.scm: guile: Change tests to use priority
-       strings.
-
-2011-03-01  Ludovic Courtès <ludo@gnu.org>
-
-       * src/Makefile.am: Add `udp-serv.h' to the distribution.
-
-2011-02-28  Andreas Metzler <ametzler@downhill.at.eu.org>
-
-       * lib/libgnutls.map: fix duplicate symbols in version script These three symbols are listed both in the GNUTLS_2_8 and the
-       GNUTLS_2_10 section. binutils uses the first occurence, drop the
-       second one.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: updates on -ALL priorities.
-
-2011-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_signature.c: Restrict the signature algorithms we
-       advertize to SHA1 and SHA256.
-
-2011-02-28  Ludovic Courtès <ludo@gnu.org>
-
-       * lib/includes/Makefile.am: Add `gnutls/dtls.h' to the distribution.
-
-2011-02-27  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/system/documentation/c-snarf.scm: guile: Fix
-       docstring extraction with CPP 4.5+.
-
-2011-02-27  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/Makefile.am: Pass the right CPPFLAGS when building Guile doc.
-
-2011-02-27  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/cha-intro-tls.texi, guile/src/core.c: Add nodes for the
-       subsections of "The TLS Handshake Protocol".
-
-2011-02-27  Ludovic Courtès <ludo@gnu.org>
-
-       * lib/Makefile.am: Add `lib/gnutls_dtls.h' to the distribution.
-
-2011-02-27  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/gnutls.scm, guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/priorities.scm, guile/src/core.c,
-       guile/src/errors.c, guile/src/errors.h, guile/tests/Makefile.am,
-       guile/tests/priorities.scm: guile: Wrap
-       `gnutls_priority_set_direct'; deprecate the old method.
-
-2011-02-27  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/scripts/gdoc, doc/scripts/sort2.pl: Avoid hard-coded
-       /usr/bin/perl (trick taken from Gnulib.)
-
-2011-02-27  Ludovic Courtès <ludo@gnu.org>
-
-       * libextra/gnutls_extra.c: Fix LZO-enabled builds.
-
-2011-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: Detect fork() in the random number generator and
-       reseed.
-
-2011-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c, lib/gnutls_state.c: use timeouts closer to DTLS
-       RFC.
-
-2011-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, lib/system_override.c: Renamed
-       gnutls_transport_set_push_function2() to
-       gnutls_transport_set_vec_push_function().
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am, lib/includes/gnutls/compat.h,
-       lib/libgnutls.map, lib/x509/crq.c: Remove
-       gnutls_x509_crq_get_preferred_hash_algorithm.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Remove dropped functions.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl_write.c: Add deprecated docstring.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Fix deprecated docstring.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/privkey.c: Fix docstring.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pubkey.c: Fix docstring of new function.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: Fix docstring for deprecated functions.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_sig.c: Make it build.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/privkey.c: Fix docstring of deprecated function.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pubkey.c: Fix docstrinf of new function.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Fix typo.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Improve text.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl.c: Doc fix of new function.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c, lib/gnutls_privkey.c, lib/x509/privkey.c: Fix
-       docstring of deprecated functions.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/compat.h, lib/libgnutls.map, lib/x509/crq.c,
-       lib/x509/sign.c, tests/x509sign-verify.c: Rename
-       gnutls_privkey_sign_data2 to gnutls_privkey_sign_data and
-       gnutls_privkey_sign_hash2 to gnutls_privkey_sign_hash.  These were added during the 2.11 cycle where we don't promise ABI
-       compatibility.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls-crypto-layers.eps: Add doc/gnutls-crypto-layers.eps.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Dist gnutls-crypto-layers.*.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Add abstract_int.h.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Ignore more.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Link with -lnettle too.
-
-2011-02-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/cha-programs.texi, lib/gnutls_privkey.c,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
-       lib/openpgp/pgp.c: Fix syntax-check warnings.
-
-2011-02-22  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/gnutls/build/enums.scm: guile: Remove
-       GNUTLS_A_INNER_APPLICATION_FAILURE and
-       GNUTLS_A_INNER_APPLICATION_VERIFICATION.
-
-2011-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_session_pack.c: store entities as numbers to avoid
-       issues in big-little endian machines.
-
-2011-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: documented the DTLS sequence particularities.
-
-2011-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_handshake.c,
-       lib/gnutls_record.c, lib/gnutls_record.h,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/udp-serv.c: 
-       Added gnutls_record_recv_seq() that can return the sequence number
-       of the record packet, in addition to data.
-
-2011-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: reorganized and simplified gnutls_recv_int().
-       It will discard invalid DTLS packets.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_constate.h, lib/gnutls_record.c: Discard messages that
-       contain a different epoch than the current one.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: renamed internal function to reflect
-       functionality.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
-       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c: 
-       Implemented a sliding window-like thing to discard replayed packets.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: gnutls-cli shouldn't print errors on EAGAIN and
-       INTERRUPTED.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_num.c: corrected uint48pp.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_constate.c, lib/gnutls_mbuffers.c, lib/gnutls_state.c: 
-       Epoch garbage collector is being run when handshake is being cleaned
-       up.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_num.c,
-       lib/gnutls_state.c: skip replays in handshake packets.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: Forbid SSL v.2 client hello in DTLS.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_int.h: removed unneeded
-       variables.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_constate.h, lib/gnutls_dtls.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_mbuffers.c: 
-       Cleanups in combination of DTLS and TLS buffers.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/auth_srp.c, lib/gnutls_algorithms.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_sig.c,
-       lib/opencdk/main.h, lib/openpgp/pgp.c, lib/openpgp/pgpverify.c,
-       lib/openpgp/privkey.c, lib/x509/common.c, lib/x509/dn.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs7.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/verify.c, lib/x509/x509_write.c, lib/x509_b64.c: 
-       gnutls_x509_log replaced with gnutls_audit_log.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.h, lib/gnutls_cipher.c, lib/gnutls_dtls.c,
-       lib/gnutls_int.h, lib/gnutls_state.c, lib/gnutls_state.h: Return a
-       more precise mtu unit to applications.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/udp-serv.c: restart handshake on signals.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_constate.h, lib/gnutls_dtls.c: 
-       reference counting in epochs is being done using functions.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_compress.c, lib/gnutls_dtls.c,
-       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c,
-       lib/includes/gnutls/dtls.h, lib/libgnutls.map: Added
-       gnutls_dtls_g/set_mtu() to allow setting and getting the DTLS mtu
-       from application.
-
-2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
-       lib/gnutls_int.h, lib/gnutls_state.c: Combined DTLS buffers and
-       normal TLS buffers.
-
-2011-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/ext_session_ticket.c, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_constate.c, lib/gnutls_dtls.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, lib/system.c,
-       lib/system.h, lib/system_override.c, src/Makefile.am,
-       src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa,
-       src/udp-serv.c, src/udp-serv.h: Changes to allow DTLS server side to
-       operate. Added a simple UDP server on gnutls-serv.  Server other
-       cleanups.
-
-2011-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dtls.c, lib/gnutls_errors.c, lib/gnutls_int.h,
-       lib/gnutls_state.c, lib/includes/gnutls/dtls.h,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/cli.c: Allow
-       setting the DTLS timeouts explicitly.
-
-2011-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: updated.
-
-2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/debug.c, lib/gnutls_algorithms.c,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_mbuffers.h, lib/gnutls_num.c, lib/gnutls_num.h,
-       lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/system.c, lib/system.h,
-       src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: Several
-       updates for DTLS (client side only) to work.
-
-2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/main.h: Increased level of opencdk debug messages.
-
-2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_sig.c: DSA keys in TLS 1.x, x<2 and SSL 3.0 use SHA-1
-       as hash. That is we reverted to previous gnutls behavior. That
-       violates DSS but all implementations handle it like that.
-
-2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
-       lib/gnutls_dtls.h, lib/gnutls_handshake.c, lib/gnutls_int.h: use
-       similar API when caching messages in DTLS or TLS.
-
-2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: corrected is_version_supported().
-
-2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_kx.c: 
-       Simplified _gnutls_recv_handshake().
-
-2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_dtls.c, lib/gnutls_handshake.c: ciphersuites have a bit
-       that indicates whether they are usable with DTLS or not.
-
-2011-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dhe.c, lib/gnutls_algorithms.c, lib/gnutls_cipher.c: fix
-       for dtls.
-
-2010-10-02  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_dtls.c, lib/gnutls_dtls.h, lib/gnutls_num.c,
-       lib/gnutls_num.h: dtls: Add uint48 handling functions.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-10-02  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_record.c: dtls: Bring epoch choice on receive closer to
-       the first usage.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-24  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: Add DTLS
-       support to command-line client.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-17  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_constate.c: dtls: Write epoch to sequence number.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-06  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c: dtls: Send consistent a client_random.  This is necessary when challenged by HelloVerifiyRequest as we MUST
-       send the same client parameters.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h: dtls: Limit the number
-       of HelloVerifyRequest round trips.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_dtls.c, lib/gnutls_handshake.c: dtls: TEMP: Sprinkle
-       transmits.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h: dtls: Do
-       HANDSHAKE_HELLO_VERIFY_REQUEST processing.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c: dtls: Add
-       _gnutls_recv_hello_verify_request.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_record.c: Decrypt using the proper sequence number.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_cipher.h: dtls: Use proper record
-       sequence for DTLS decrypt.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: corrected extdatalen
-
-2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: dtls: Read whole datagrams.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c: dtls: Queue outgoing handshake messages in
-       the retransmission layer.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_dtls.c, lib/gnutls_dtls.h: Add outgoing flight buffer
-       handling code.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_errors.h: Define _gnutls_dtls_log for DTLS.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_int.h, lib/gnutls_state.c: Add structures for the
-       buffered outgoing flight.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_int.h, lib/gnutls_state.c: Add state for handshake mtu.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c: dtls: Fixup outgoing ClientHello hashing.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h: Add proper handshake
-       outgoing sequence number.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/Makefile.am, lib/gnutls_dtls.c, lib/gnutls_dtls.h: Add
-       gnutls_dtls.{c,h}.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-02  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c: dtls: Remove unsuitable ciphers.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-07-28  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/debug.c, lib/gnutls_handshake.c,
-       lib/includes/gnutls/gnutls.h.in: dtls: Add hanshake fragment headers
-       when sending handshake.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-07-28  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_int.h, lib/gnutls_record.c: dtls:
-       Add epoch and sequence number to DTLS packets.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-07-28  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_record.c: Use increment functions for sequence number.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-07-27  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_int.h, lib/gnutls_num.c, lib/gnutls_num.h,
-       lib/gnutls_record.c: dtls: Add types and operations required for the
-       DTLS epoch and sequence.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-07-29  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_priority.c: Make version
-       lookup transport dependent.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_state.h: dtls: Add _gnutls_is_dtls to check if a
-       session uses DTLS.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-07-25  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_int.h, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Add
-       gnutls_init_dtls function.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-07-25  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_int.h: Add DTLS state.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2009-07-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_algorithms.c, lib/includes/gnutls/gnutls.h.in: Add
-       DTLS1.0 protocol entry.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-17  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/ext_session_ticket.c, lib/gnutls_handshake.c,
-       lib/gnutls_kx.c, lib/gnutls_mbuffers.h: Allocate session buffers of
-       size, depending on type of session.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-25  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_constate.c: Harmonize "d" argument between constate.c
-       and compress.c.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-24  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * src/cli-gaa.c, src/cli.gaa: Fix typo.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-21  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_num.h: Parenthesize UINT64DATA again.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2011-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: reorganization of ciphersuite discussion.
-
-2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: Allow using the minus "-" in the -ALL
-       priority strings.
-
-2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Added fixme note on TLS 1.2 PRF per
-       ciphersuite.
-
-2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: The safe renegotiation ciphersuite is not
-       required to be registered.
-
-2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dhe_psk.c: Corrected bug in DHE-PSK in freeing
-       username/key.
-
-2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Added ciphersuites (from RFC5487):
-       TLS_PSK_WITH_AES_128_GCM_SHA256 TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
-       TLS_PSK_WITH_AES_128_CBC_SHA256 TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
-       TLS_PSK_WITH_NULL_SHA256 TLS_DHE_PSK_WITH_NULL_SHA256
-
-2011-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_extensions.c, lib/gnutls_sig.c: Corrected
-       signature generation and verification in the Certificate Verify
-       message when in TLS 1.2. Reported by Todd A. Ouska.
-
-2011-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_state.c: removed duplicate assignments.
-
-2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/cipher.c: upgraded to nettle's new GCM API.
-
-2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: increased the C++ library current version.
-
-2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutlsxx.cpp: The C++ interface returns exception on
-       every error and not only on fatal ones. This allows easier handling
-       of errors.
-
-2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutlsxx.cpp, lib/includes/gnutls/gnutlsxx.h: removed the old
-       set_priority functions.
-
-2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/serv.c: removed more deprecated stuff.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openssl.c, libextra/includes/gnutls/openssl.h: 
-       updated openssl layer to new priority functions (untested).
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_sig.c: removed unused variable.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_sig.c: Allow DSA2 even in protocols before TLS
-       1.2.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: set the psk callback only if username/key were not
-       supplied at command line.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_signature.c, lib/ext_signature.h, lib/gnutls_pk.c,
-       lib/gnutls_sig.c: In TLS 1.2 under DSS use the hash algorithm
-       required by DSS.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am, tests/openpgp-auth.c, tests/openpgp-auth2.c: 
-       Added new test openpgp-auth2.c that tests openpgp under TLS1.2 and
-       DSS as well.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/anonself.c, tests/dhepskself.c, tests/mini-eagain.c,
-       tests/mini.c, tests/openpgp-auth.c, tests/pskself.c, tests/resume.c: 
-       Modernized the test applications that now use the
-       gnutls_priority_set_direct().
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in: 
-       deprecated gnutls_*_set_priority().
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/ext_cert_type.c, lib/ext_max_record.c,
-       lib/ext_safe_renegotiation.c, lib/ext_server_name.c,
-       lib/ext_session_ticket.c, lib/ext_signature.c, lib/ext_srp.c,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_pk.c,
-       lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/nettle/pk.c: The extensions
-       code is now using the gnutls_buffer_st.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/x509/x509_int.h: Added sha224 to the
-       list of MACs.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: The PSK and SRP key exchange algorithms are
-       not included in the preset priority strings.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe_psk.c,
-       lib/auth_psk.c, lib/auth_psk.h: Callback function is being called in
-       both PSK-DHE and PSK.  Using the callback function will not
-       overwrite the credentials, which were wrongly being overwritten
-       using the retrieved username/key.  The credentials structure is now
-       accessed for reading only, as it should have been.
-
-2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: bumped version.
-
-2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-programs.texi: Added documentation on p11tool.
-
-2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi, doc/cha-library.texi,
-       doc/manpages/gnutls-cli.1, doc/manpages/gnutls-serv.1,
-       lib/gnutls_priority.c, src/common.c: Moved documentation of priority
-       strings to manual and removed information from manpages and function
-       pages that now reference the manual section.
-
-2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_anon.c, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_rsa.c, lib/gnutls_auth.h, lib/gnutls_kx.c,
-       lib/gnutls_str.c, lib/gnutls_str.h: Simplified code in
-       authentication methods by using gnutls_buffer_st instead of
-       malloc/realloc.
-
-2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/includes/gnutls/gnutls.h.in: Combined
-       same functions.
-
-2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/ext_signature.c,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h: Several updates in
-       signature algorithms parsing and sending to avoid sending invalid
-       signature algorithms.
-
-2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Removed unused debugging code.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/cipher.c: Removed unneeded initialization.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-auth.texi, doc/cha-programs.texi, lib/Makefile.am,
-       lib/gnutls_psk_netconf.c, lib/includes/gnutls/compat.h: Removed
-       gnutls_psk_netconf_derive_key.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_cert.c, lib/includes/gnutls/compat.h: Removed
-       gnutls_certificate_verify_peers.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_state.c, lib/includes/gnutls/compat.h: Removed
-       gnutls_session_set_finished_function().
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/includes/gnutls/gnutls.h.in: Removed
-       remaining TLS/IA stuff.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.gaa, src/serv-gaa.c,
-       src/serv-gaa.h, src/serv.gaa: Removed more leftovers from opaque PRF
-       output.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: Corrected return message from
-       check_recv_type().
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/mac.c: Removed upper limit on MAC algorithm key.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: improved premature_termination error message
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/reference/Makefile.am, lib/libgnutls.map: Removed leftovers
-       from OPRFI extension.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_errors.c, lib/gnutls_record.c,
-       lib/includes/gnutls/gnutls.h.in: gnutls_recv() returns
-       GNUTLS_E_PREMATURE_TERMINATION on EOF.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/common.c, src/common.h, src/serv-gaa.c, src/serv-gaa.h,
-       src/serv.c, src/serv.gaa: Removed deprecated option such as
-       --protocols, ciphers etc.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: not untested.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c: Set correct iv in GCM.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_int.h: Cleanups and moved
-       definitions to gnutls_int.h. AEAD modes now use the record packet
-       counter as nonce.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/cipher.c: Reset GCM mode when setting IV.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Added more GCM ciphersuites (DHE-* and
-       anonymous).
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: updated priorities. Removed ARCFOUR from
-       the secure ciphersuites and moved GCM to bottom of the ciphers in
-       performance.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/crypto-api.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/includes/gnutls/crypto.h,
-       lib/libgnutls.map, src/benchmark.c: Added gnutls_cipher_add_auth()
-       gnutls_cipher_tag() to export the GCM interface. Updated the
-       benchmark.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c: removed
-       gnutls_certificate_get_openpgp_keyring().
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c: minor optimizations.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: inlined several small
-       functions.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_sig.c: 
-       Better error checking on SSL3.
-
-2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c: calculation for c_length occurs in a single
-       place.
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: unstable -> untested.
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/mac.c: Increase the maximum HMAC key to account for
-       anonymous ciphersuites.
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c: check the error of hash set_key.
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_kx.c: do not use strlen for fixed string.
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated NEWS on GCM mode.
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/cipher.c: Use nettle's new API for GCM.
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: removed old comment
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/Makefile.am, doc/cha-functions.texi,
-       doc/cha-gtls-app.texi, doc/examples/Makefile.am,
-       doc/examples/ex-client-tlsia.c, lib/gnutls_kx.c,
-       libextra/Makefile.am, libextra/ext_inner_application.c,
-       libextra/ext_inner_application.h, libextra/gnutls_extra.c,
-       libextra/gnutls_ia.c, libextra/libgnutls-extra.map,
-       tests/Makefile.am, tests/tlsia.c: Removed inner application
-       extension.
-
-2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in: 
-       gnutls_certificate_verify_peers is deprecated.
-
-2011-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/mac.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_constate.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/m4/hooks.m4, lib/nettle/cipher.c, lib/nettle/mac.c: Added
-       support for GCM ciphersuites (not tested with other implementation).
-
-2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h: Added missing definitions (GNUTLS_MASTER_SIZE
-       etc).
-
-2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_state.c, lib/includes/gnutls/compat.h: Removed:
-       gnutls_session_get_server_random, gnutls_session_get_client_random,
-       gnutls_session_get_master_secret
-
-2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/build-aux/config.rpath, tests/suite/Makefile.in: updated.
-
-2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gnutls.pc.in, lib/m4/hooks.m4: Add the nettle
-       libs into gnutls.pc.
-
-2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_cert.c, lib/gnutls_extensions.c,
-       lib/includes/gnutls/compat.h, lib/m4/hooks.m4: Removed functions:
-       gnutls_ext_register, gnutls_certificate_get_x509_crls,
-       gnutls_certificate_get_x509_cas and bumped library version number.
-
-2011-02-05  Andreas Metzler <ametzler@downhill.at.eu.org>
-
-       * lib/configure.ac, lib/gnutls.pc.in, lib/m4/hooks.m4: [PATCH 1/4]
-       adapt pkg-config file for switch from AM_PATH_LIBGCRYPT to
-       AC_LIB_HAVE_LINKFLAGS [PATCH 2/4] pkg-config: Move libtasn1 from
-       Libs.private to Requires.private since libtasn1 provides a .pc file.
-       [PATCH 3/4] pkg-config: drop @LIBGNUTLS_LIBS@ from Libs.private.
-       This library only contains gnutls itself nowadays, which is in Libs
-       already.  [PATCH 4/4] pkg-config: If gnutls is built with zlib
-       support list zlib in Requires.private.
-
-2011-02-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/cha-ciphersuites.texi, doc/signatures.texi: Fix MD2
-       documentation.  Suggested by "brian m. carlson" <sandals@crustytoothpaste.net> in
-       debian bug #464625.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.CODING_STYLE: updated coding style.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented gnutls_session_get_* deprecated functions.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/x509paths/README: updated README on certificate
-       verifications that fail.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool-common.h, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa: Added new
-       functionality to certtool, and can verify certificates against a
-       list of CAs using the --verify option.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c, tests/chainverify.c: Time checks were moved to
-       _gnutls_verify_certificate2().  This allows for straightforward
-       chain verification, and thus better printing of the chain output,
-       although some checks might be performed in duplicate. As a
-       side-effect better errors are returned (or precisely more
-       combinations of verification errors), thus chainverify test was
-       affected.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify-high.c: Set memory to zero on allocation.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: fix in contents.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/examples.h: prototype fix.
-
-2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-verify.c, lib/gnutls_cert.c,
-       lib/includes/gnutls/x509.h, lib/x509/verify-high.c, src/certtool.c: 
-       gnutls_x509_trust_list_init() has an extra argument that allows
-       fine-tuning of the used memory.
-
-2011-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-bib.texi: Updated references of rfc5081 to rfc6091.
-
-2011-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
-       doc/examples/ex-verify.c: Documented the new verification functions.
-
-2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c, tests/sha2/sha2: Modified output to not confuse
-       earlier scripts.
-
-2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: Better output when removing certificates from
-       list.
-
-2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pkcs1-padding/pkcs1-pad: Modified to work on new certtool -e
-       output.
-
-2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/examples/ex-verify.c, lib/auth_cert.h,
-       lib/gnutls_cert.c, lib/gnutls_x509.c, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/x509/crl.c, lib/x509/x509.c, src/certtool.c,
-       tests/certificate_set_x509_crl.c: The internal subsystem uses the
-       new certificate verification functions.  This has the side effect of
-       deprecating gnutls_certificate_get_x509_crls() and
-       gnutls_certificate_get_x509_cas() that can no longer operation since
-       they relied on internal structures.
-
-2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-gtls-app.texi, doc/examples/ex-verify.c,
-       lib/Makefile.am, lib/hash.c, lib/hash.h,
-       lib/includes/gnutls/x509.h, lib/libgnutls.map,
-       lib/x509/Makefile.am, lib/x509/crl.c, lib/x509/verify-high.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h,
-       src/certtool.c: Added a new API to verify certificates. It is more
-       efficient and can be used to get details about the verification
-       procedure.
-
-2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/x509paths/chain: better output in chain output.
-
-2011-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/x509.h, lib/x509/crl.c,
-       lib/x509/verify.c, lib/x509/x509.c: exported
-       gnutls_x509_crl_get_raw_issuer_dn()
-
-2011-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: corrected typos
-
-2011-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pakchois/pakchois.c: CKR_CRYPTOKI_ALREADY_INITIALIZED is not
-       treated as an error, and Finalize is not called in that case.
-
-2011-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/compat.h,
-       lib/openpgp/privkey.c: Reverted removal of
-       gnutls_openpgp_privkey_sign_hash() to retain compatibility with
-       2.10.x. That function is now deprecated instead.
-
-2011-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c: Added checks before importing keys and
-       updated documentation.
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/Makefile.in: updated Makefile.in
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-crq.c, lib/configure.ac,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/x509.h, src/certtool.c, tests/crq_key_id.c: 
-       fixes in internal build with the new deprecated functions. We allow
-       them to be used since they are inter-dependent.
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509_int.h: replaced old gnutls_pk_algorithm.
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h: depends on gnutls/x509.h to compile.
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
-       lib/x509/crl_write.c: deprecated gnutls_x509_crl_sign(),
-       gnutls_x509_crl_sign2() and
-       gnutls_x509_crq_get_preferred_hash_algorithm().
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
-       lib/x509/crq.c: Deprecated gnutls_x509_crq_sign2() and
-       gnutls_x509_crq_sign() in favor for gnutls_x509_crq_privkey_sign().
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/libgnutls.map: minor fixes.
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/x509/privkey.c, lib/x509/x509.c,
-       src/certtool.c, tests/cve-2009-1415.c, tests/x509sign-verify.c: 
-       gnutls_x509_crt_verify_hash: DEPRECATED gnutls_x509_crt_verify_data:
-       DEPRECATED gnutls_x509_crt_get_verify_algorithm: DEPRECATED
-       gnutls_x509_crt_get_preferred_hash_algorithm: DEPRECATED Removed the
-       new gnutls_x509_privkey_sign_data2() and
-       gnutls_x509_privkey_sign_hash2().  That functionality will be only in the abstract.h pubkey and privkey
-       structures, to avoid duplication for every certificate type.
-
-2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: Simplified macro to snprintf() in order to prevent
-       issues caused when snprintf() is a macro itself. Reported and
-       initial patch by Camillo Lugaresi.
-
-2011-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/suite/Makefile.in: Revert "Remove, it is generated." This reverts commit de3a601e502b24f047412a161085f7fbd898b3f3 because
-       this file is not automatically generated (not included in top
-       Makefile.am).
-
-2011-01-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/m4/hooks.m4: Specify minimum libgcrypt version.
-
-2010-12-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-internals.texi: Added discussion on crypto backend for
-       crypto libraries and /dev/crypto.
-
-2010-12-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
-       lib/x509/crq.c, lib/x509/privkey.c, lib/x509/sign.c: Renamed
-       gnutls_privkey_sign_data() to  gnutls_privkey_sign_data2() to match
-       the similar function gnutls_x509_privkey_sign_data2().
-       gnutls_x509_privkey_sign_data() was deprecated.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_str.c: Extra sanity check.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_srp_passwd.c: Use snprintf() to print an integer.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/output.c: Use snprintf() to print IPs. There was a check
-       just before that, but be safe, just in case.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi: Use SRP for password authentication.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, lib/gnutls_cert.c, lib/gnutls_extensions.c,
-       lib/gnutls_psk_netconf.c, lib/gnutls_state.c,
-       lib/includes/gnutls/compat.h, lib/x509/privkey.c: Do not include
-       deprecated functions to library documentation.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
-       lib/x509/privkey.c: gnutls_x509_privkey_verify_data() was
-       deprecated.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c: Documented key usage of pubkey.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c: Set public key bits on all import functions.
-       Issue reported by Murray Kucheawy.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/pkcs11.h,
-       lib/pkcs11_int.h, lib/pkcs11_privkey.c: 
-       gnutls_pkcs11_privkey_sign_data(),
-       gnutls_pkcs11_privkey_sign_hash2() and
-       gnutls_pkcs11_privkey_decrypt_data() were removed. The abstract.h
-       functions should be used instead.
-
-2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/openpgp.h,
-       lib/openpgp/gnutls_openpgp.h, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c: Removed the newly added functions:
-       gnutls_openpgp_privkey_sign_hash2(),
-       gnutls_openpgp_privkey_sign_data2(),
-       gnutls_openpgp_crt_verify_hash() That way the operations in
-       abstract.h should be used to get the same functionality, and API
-       will be kept simple and easier to maintain. The corresponding
-       gnutls_x509_* are kept for backwards compatibility.
-
-2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_sig.c: Do not be strict on RSA hash algorithm selection
-       for signatures.
-
-2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.h, lib/gnutls_sig.c, lib/gnutls_x509.c: Removed
-       unneeded definitions, and more careful deinitializations in
-       parse_der_cert_mem().
-
-2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: updated certificates to account
-       for extra null byte added in negative numbers.
-
-2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/cve-2009-1415.c: Account for GNUTLS_E_PK_SIG_VERIFY_FAILED.
-
-2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c: Corrected bug in gnutls_privkey_sign_data().
-
-2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_sig.c: some fixes in pk_prepare_hash().
-
-2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_pubkey.c, lib/openpgp/pgp.c, lib/x509/privkey.c,
-       lib/x509/verify.c, lib/x509/x509.c, tests/x509sign-verify.c: The
-       verification functions now return a GNUTLS_E_PK_SIG_VERIFY_FAILED on
-       signature verification error.
-
-2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/p11tool-gaa.c, src/p11tool.gaa: The default input format for
-       p11tool is PEM.
-
-2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c: importing a pubkey from raw params will set
-       the bits field correctly.
-
-2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Documented the addtion of gnutls_pubkey_import_privkey() and
-       gnutls_pubkey_verify_data()
-
-2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c, lib/includes/gnutls/abstract.h,
-       lib/libgnutls.map, lib/x509/verify.c, tests/x509sign-verify.c: Added
-       gnutls_pubkey_verify_data and test vectors.
-
-2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/errcodes.c, doc/examples/ex-alert.c,
-       doc/examples/ex-cert-select-pkcs11.c,
-       doc/examples/ex-cert-select.c, doc/examples/ex-client-psk.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client-tlsia.c, doc/examples/ex-client1.c,
-       doc/examples/ex-client2.c, doc/examples/ex-crq.c,
-       doc/examples/ex-pkcs12.c, doc/examples/ex-rfc2818.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
-       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c,
-       doc/examples/examples.h, doc/examples/tcp.c, doc/printlist.c,
-       guile/src/core.c, guile/src/extra.c, guile/src/utils.h,
-       lib/abstract_int.h, lib/auth_anon.c, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dh_common.c, lib/auth_dh_common.h,
-       lib/auth_dhe.c, lib/auth_dhe_psk.c, lib/auth_psk.c,
-       lib/auth_psk_passwd.c, lib/auth_psk_passwd.h, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_srp_passwd.h, lib/auth_srp_rsa.c,
-       lib/auth_srp_sb64.c, lib/crypto-api.c, lib/crypto.c, lib/crypto.h,
-       lib/cryptodev.c, lib/debug.c, lib/ext_cert_type.c,
-       lib/ext_max_record.c, lib/ext_safe_renegotiation.c,
-       lib/ext_safe_renegotiation.h, lib/ext_server_name.c,
-       lib/ext_session_ticket.c, lib/ext_signature.c, lib/ext_signature.h,
-       lib/ext_srp.c, lib/gcrypt/cipher.c, lib/gcrypt/init.c,
-       lib/gcrypt/mac.c, lib/gcrypt/mpi.c, lib/gcrypt/pk.c,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_auth.h, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_kx.h, lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h,
-       lib/gnutls_mem.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/gnutls_num.c, lib/gnutls_pk.c, lib/gnutls_pk.h,
-       lib/gnutls_priority.c, lib/gnutls_privkey.c, lib/gnutls_psk.c,
-       lib/gnutls_psk_netconf.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_srp.c,
-       lib/gnutls_srp.h, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/gnutls_str.c, lib/gnutls_str.h, lib/gnutls_supplemental.c,
-       lib/gnutls_supplemental.h, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/gnutls_v2_compat.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/gnutlsxx.h, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs11.h, lib/includes/gnutls/pkcs12.h,
-       lib/includes/gnutls/x509.h, lib/locks.c, lib/nettle/cipher.c,
-       lib/nettle/egd.c, lib/nettle/mpi.c, lib/nettle/pk.c,
-       lib/nettle/rnd.c, lib/opencdk/armor.c, lib/opencdk/context.h,
-       lib/opencdk/dummy.c, lib/opencdk/filters.h, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/keydb.h,
-       lib/opencdk/literal.c, lib/opencdk/main.c, lib/opencdk/main.h,
-       lib/opencdk/misc.c, lib/opencdk/new-packet.c,
-       lib/opencdk/opencdk.h, lib/opencdk/packet.h, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/stream.h, lib/opencdk/verify.c,
-       lib/opencdk/write-packet.c, lib/openpgp/compat.c,
-       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/gnutls_openpgp.h, lib/openpgp/openpgp_int.h,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/pgpverify.c,
-       lib/openpgp/privkey.c, lib/pakchois/pakchois.c,
-       lib/pakchois/pakchois.h, lib/pakchois/pakchois11.h, lib/pkcs11.c,
-       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
-       lib/pkcs11_write.c, lib/random.c, lib/system.c, lib/system.h,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/pbkdf2-sha1.c, lib/x509/pbkdf2-sha1.h, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_int.h, lib/x509/x509_write.c,
-       lib/x509_b64.c, lib/x509_b64.h, libextra/ext_inner_application.c,
-       libextra/ext_inner_application.h, libextra/gnutls_extra.c,
-       libextra/gnutls_ia.c, libextra/gnutls_openssl.c,
-       libextra/includes/gnutls/extra.h,
-       libextra/includes/gnutls/openssl.h, libextra/openssl_compat.c,
-       libextra/openssl_compat.h, maint.mk, src/benchmark.c,
-       src/certtool-cfg.c, src/certtool-cfg.h, src/certtool-common.c,
-       src/certtool-common.h, src/certtool.c, src/cli.c, src/common.c,
-       src/common.h, src/crypt.c, src/p11tool.c, src/p11tool.h,
-       src/pkcs11.c, src/prime.c, src/psk.c, src/serv.c, src/tests.c,
-       src/tests.h, src/tls_test.c, tests/anonself.c,
-       tests/certificate_set_x509_crl.c, tests/chainverify.c,
-       tests/crq_apis.c, tests/crq_key_id.c, tests/cve-2008-4989.c,
-       tests/dhepskself.c, tests/dn.c, tests/dn2.c, tests/gc.c,
-       tests/mini-eagain.c, tests/mini-x509-rehandshake.c,
-       tests/mini-x509.c, tests/mini.c, tests/mpi.c,
-       tests/nul-in-x509-names.c, tests/openpgp-auth.c,
-       tests/openpgp-keyring.c, tests/openpgp_test.c, tests/openpgpself.c,
-       tests/openssl.c, tests/pgps2kgnu.c, tests/pkcs12_encode.c,
-       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c, tests/pskself.c,
-       tests/resume.c, tests/safe-renegotiation/srn0.c,
-       tests/safe-renegotiation/srn1.c, tests/safe-renegotiation/srn2.c,
-       tests/safe-renegotiation/srn3.c, tests/safe-renegotiation/srn4.c,
-       tests/safe-renegotiation/srn5.c, tests/set_pkcs12_cred.c,
-       tests/simple.c, tests/tlsia.c, tests/utils.c, tests/utils.h,
-       tests/x509_altname.c, tests/x509_test.c, tests/x509dn.c,
-       tests/x509self.c, tests/x509sign-verify.c: Indented code. Use same
-       indentation but with -nut to avoid usage of tabs. In several editors
-       tabs can be configured not to be 8 spaces and this produces
-       artifacts with the current indentation that is a mixture of tabs and
-       spaces.
-
-2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c: _gnutls_privkey_get_public_mpis() handles
-       openpgp keys.
-
-2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/abstract_int.h, lib/gnutls_privkey.c, lib/gnutls_pubkey.c,
-       lib/includes/gnutls/abstract.h, lib/libgnutls.map: Added
-       gnutls_pubkey_import_privkey(), that will copy the public key from a
-       gnutls_privkey_t structure.
-
-2010-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/libgnutls.map: Do not export the non-existant symbols
-       gnutls_pkcs11_privkey_sign_hash and gnutls_privkey_sign_hash.
-
-2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented new functions
-
-2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Added new functions.
-
-2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/libgnutls.map: Added new functions.
-
-2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h: 
-       de-deprecated gnutls_x509_crt_verify_hash()
-
-2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/openpgp.h, lib/libgnutls.map,
-       lib/openpgp/pgp.c, tests/x509sign-verify.c: Added
-       gnutls_openpgp_crt_verify_hash().
-
-2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11_privkey.c: added
-       gnutls_privkey_sign_hash2()
-
-2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/openpgp/privkey.c, lib/pkcs11_privkey.c, lib/x509/privkey.c: 
-       Simplified preparation of signing code.
-
-2010-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/gnutls_sig.c,
-       lib/gnutls_sig.h, lib/openpgp/gnutls_openpgp.h,
-       lib/openpgp/privkey.c, lib/pkcs11_int.h, lib/pkcs11_privkey.c,
-       lib/x509/Makefile.am, lib/x509/privkey.c, lib/x509/sign.c,
-       lib/x509/sign.h: deprecated x509/sign.h and moved functionality of
-       it in gnutls_sig.h.
-
-2010-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/sign.c: pk_hash_data() will fail unless DSA or RSA are
-       specified.
-
-2010-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c: better comments
-
-2010-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/openpgp/gnutls_openpgp.c, lib/openpgp/privkey.c: 
-       reorganization of the privkey_ functions().
-
-2010-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/x509.h, lib/libgnutls.map,
-       lib/openpgp/gnutls_openpgp.c, lib/x509/privkey.c: Introduced
-       gnutls_*_privkey_sign_hash2() that is a high level function to
-       produce signatures.
-
-2010-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/pkcs11_privkey.c, lib/x509/privkey.c,
-       lib/x509/sign.c, lib/x509/sign.h: Separated the sign_data functions
-       to a hashing phase, a preparing phase, and the actual signing.
-
-2010-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented deprecated functions.
-
-2010-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs11.h: All the sign hash functions were
-       deprecated.
-
-2010-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h: 
-       gnutls_x509_privkey_sign_hash() is dangerous and was deprecated.
-       Added some text explaining why some functions were deprecated.
-
-2010-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented previous update.
-
-2010-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c, lib/x509/x509.c: export_raw() functions now
-       add leading zero in mpis.
-
-2010-12-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-12-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/crypto.h: C++ fixes, tiny patch from "Brendan
-       Doherty" <brendand@gentrack.com>.
-
-2010-12-07  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/getdelim.m4, gl/m4/getline.m4, gl/m4/memchr.m4,
-       gl/m4/printf.m4, gl/m4/stdint.m4, lib/gl/m4/fcntl-o.m4,
-       lib/gl/m4/iconv.m4, lib/gl/m4/intdiv0.m4, lib/gl/m4/memchr.m4,
-       lib/gl/m4/memmem.m4, lib/gl/m4/printf.m4, lib/gl/m4/stdint.m4: 
-       Update gnulib files.
-
-2010-12-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2010-12-07  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2010-12-07  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Don't fail on 'make distcheck'.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.11.6.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c: Indent.
-
-2010-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented SSL 3.0 record version change.
-
-2010-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c: 
-       SSL3_RECORD_VERSION priority option is now the default. That is in
-       order to not confuse non TLS 1.2 compliant implementations that
-       don't like a TLS 1.2 record.
-
-2010-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_str.c: simplified escape and unescape.
-
-2010-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: Added Michael.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, lib/gnutls_priority.c, lib/gnutls_state.c,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/pkcs11.h, lib/nettle/rnd.c, lib/pkcs11.c,
-       lib/pkcs11_int.h, lib/pkcs11_secret.c, lib/pkcs11_write.c,
-       lib/x509/verify.c, src/certtool-common.c, src/certtool-common.h,
-       src/certtool.c, src/cli.c, src/common.c, src/p11tool.c,
-       src/p11tool.h, src/pkcs11.c, src/serv.c, tests/chainverify.c,
-       tests/openpgp-auth.c: Indent code.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update gnulib files.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/top/maint.mk.diff: Remove.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Update.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c, lib/pkcs11_secret.c, src/p11tool.c,
-       src/p11tool.gaa: Fix syntax-check nits.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * .x-sc_bindtextdomain: Ignore more.
-
-2010-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, build-aux/gendocs.sh, build-aux/pmccabe.css,
-       build-aux/pmccabe2html, gl/Makefile.am, gl/arpa_inet.in.h,
-       gl/float+.h, gl/gettext.h, gl/inet_ntop.c, gl/intprops.h,
-       gl/m4/alloca.m4, gl/m4/arpa_inet_h.m4, gl/m4/getdelim.m4,
-       gl/m4/getline.m4, gl/m4/getpass.m4, gl/m4/gnulib-common.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/mmap-anon.m4, gl/m4/printf.m4,
-       gl/m4/readline.m4, gl/m4/string_h.m4, gl/m4/sys_ioctl_h.m4,
-       gl/m4/sys_select_h.m4, gl/m4/sys_socket_h.m4, gl/m4/unistd_h.m4,
-       gl/m4/vasnprintf.m4, gl/m4/wchar_h.m4, gl/printf-parse.c,
-       gl/printf-parse.h, gl/stdint.in.h, gl/stdio.in.h, gl/stdlib.in.h,
-       gl/string.in.h, gl/sys_select.in.h, gl/sys_socket.in.h,
-       gl/tests/Makefile.am, gl/tests/init.sh,
-       gl/tests/test-select-stdin.c, gl/tests/test-select.c,
-       gl/tests/test-update-copyright.sh, gl/tests/verify.h, gl/time.in.h,
-       gl/unistd.in.h, gl/vasnprintf.c, gl/verify.h, gl/wchar.in.h,
-       lib/gl/Makefile.am, lib/gl/float+.h, lib/gl/gettext.h,
-       lib/gl/m4/alloca.m4, lib/gl/m4/glibc2.m4, lib/gl/m4/glibc21.m4,
-       lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/iconv.m4, lib/gl/m4/memmem.m4, lib/gl/m4/mmap-anon.m4,
-       lib/gl/m4/printf.m4, lib/gl/m4/string_h.m4,
-       lib/gl/m4/sys_socket_h.m4, lib/gl/m4/unistd_h.m4,
-       lib/gl/m4/vasnprintf.m4, lib/gl/m4/wchar_h.m4,
-       lib/gl/printf-parse.c, lib/gl/printf-parse.h, lib/gl/stdint.in.h,
-       lib/gl/stdio.in.h, lib/gl/stdlib.in.h, lib/gl/string.in.h,
-       lib/gl/sys_socket.in.h, lib/gl/tests/Makefile.am,
-       lib/gl/tests/init.sh, lib/gl/tests/intprops.h,
-       lib/gl/tests/verify.h, lib/gl/time.in.h, lib/gl/unistd.in.h,
-       lib/gl/vasnprintf.c, lib/gl/verify.h, lib/gl/wchar.in.h,
-       libextra/gl/m4/gnulib-common.m4, maint.mk: Update gnulib files.
-
-2010-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am: Temporarily remove gendh test. It takes
-       extremely long time under valgrind.
-
-2010-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_sig.c, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/mpi.c, lib/x509/sign.c, lib/x509/verify.c: Use ASN1_NULL
-       when writing parameters for RSA signatures. This makes us comply
-       with RFC3279. Reported by Michael Rommel.
-
-2010-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/serv.c: Corrected buffer overflow in gnutls-serv by
-       Tomas Mraz.  The gnutls-serv uses fixed allocated buffer for the response which
-       can be pretty long if a client certificate is presented to it and
-       the http header is large. This causes buffer overflow and heap
-       corruption which then leads to random segfaults or aborts.  It was reported originally here:
-       https://bugzilla.redhat.com/show_bug.cgi?id=659259 The attached patch changes sprintf calls in peer_print_info() to
-       snprintf so the buffer is never overflowed.
-
-2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: increased revision
-
-2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am: Added p11tool.h
-
-2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: released 2.11.5
-
-2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-internals.texi: escaped chars.
-
-2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-internals.texi: Updated extension writing code. Still not
-       clear enough.
-
-2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: PKCS #11 fixes
-
-2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select-pkcs11.c: Corrected pkcs11 example
-       URLs
-
-2010-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/pkcs11.c: Prefix mechanism number with 0x.
-
-2010-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pakchois/pakchois11.h, src/pkcs11.c: Added camellia and
-       SHA224.
-
-2010-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/configure.ac, lib/nettle/rnd.c: Use rusage if
-       present.  Moved check to correct config and included resource.h
-       header.
-
-2010-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: More details on the text
-
-2010-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Corrected copyright statement
-
-2010-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: Corrected copyright header. Added Niels.
-
-2010-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_cert.c, lib/includes/gnutls/x509.h,
-       lib/x509/verify.c, src/certtool.c, src/cli.c, tests/chainverify.c: 
-       Reverted default behavior for verification and introduced
-       GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT.  Thus by default V1
-       trusted CAs are allowed, unless the new flag is specified.
-
-2010-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2010-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * tests/suite/Makefile.in: Remove, it is generated.
-
-2010-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * README: No space at eol.
-
-2010-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/Makefile.am: Fix syntax-check warning.
-
-2010-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Ignore tests/suite for syntax-checks, not our code.
-
-2010-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * README: Recommend git format-patch rather than git diff.
-
-2010-11-24  Jeffrey Walton <noloader@gmail.com>
-
-       * README: Attached is a proposed modification to the README file,
-       including recent comments by Simon.
-
-2010-11-23  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am: Fix dependencies, fixes parallel builds.  Tiny patch from Graham Gower <graham.gower@gmail.com>.
-
-2010-11-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Remove file.
-
-2010-11-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2010-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, tests/suite/Makefile.in: Create Makefile in
-       tests/suite/
-
-2010-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/psk-gaa.c, src/psk-gaa.h, src/psk.c, src/psk.gaa,
-       tests/Makefile.am, tests/netconf-psk.c: Deprecate the netconf
-       password and use a key only.
-
-2010-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/credentials/gnutls-http-serv: correctly set psk params.
-
-2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: added info
-
-2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey_pkcs8.c: Correctly write DSA public key in ASN.1
-       (add leading zero). Reported by Jeffrey Walton.
-
-2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/mpi.c: cleanups
-
-2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/gnutls.h.in: Deprecated the key derivation
-       method from netconf. The published RFC does not include this method
-       and it is not known whether it has been used at all in practice. No
-       need to support it.
-
-2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_priority.c: Added SIGN-ALL, CTYPE-ALL, COMP-ALL,
-       and VERS-TLS-ALL priority strings.
-
-2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: Removed redundant error check. Reported by
-       Nicolas Kaiser.
-
-2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/libgnutls.map, lib/pkcs11.c,
-       src/p11tool-gaa.c, src/p11tool-gaa.h, src/p11tool.c,
-       src/p11tool.gaa, src/p11tool.h, src/pkcs11.c: Added
-       --list-mechanisms option to p11tool. Lists all mechanisms supported
-       by a token.
-
-2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am, doc/manpages/p11tool.1: Added manpage
-       for p11tool.
-
-2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/certtool.1, doc/manpages/gnutls-cli.1,
-       doc/manpages/gnutls-serv.1, doc/manpages/srptool.1: Corrected my
-       name.
-
-2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/p11tool-gaa.c, src/p11tool.gaa: In p11tool --url was renamed
-       to --export.
-
-2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/p11tool-gaa.c, src/p11tool-gaa.h, src/p11tool.gaa,
-       src/pkcs11.c: Corrected bug in secret key copy. Rationalized the
-       --help of p11tool.
-
-2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c, lib/pkcs11_secret.c: * Corrected flag conversion to internal representation.  * When generating secret keys include a generic key type and a
-       random ID.
-
-2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/p11tool-gaa.c, src/p11tool-gaa.h, src/p11tool.gaa: Added
-       option --no-detailed-url to p11tool. More detailed url is the
-       default now.
-
-2010-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/Makefile.am, lib/includes/gnutls/pkcs11.h,
-       lib/libgnutls.map, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_secret.c, lib/pkcs11_write.c, src/pkcs11.c: Added
-       gnutls_pkcs11_token_set_pin() and gnutls_pkcs11_token_init() to
-       enable manipulating tokens purely from PKCS #11.
-
-2010-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.gaa: Removed README.gaa.
-
-2010-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, src/Makefile.am, src/certtool-common.c,
-       src/certtool-common.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa, src/p11tool-gaa.c,
-       src/p11tool-gaa.h, src/p11tool.c, src/p11tool.gaa, src/p11tool.h,
-       src/pkcs11.c: Introduced p11tool to separate PKCS #11 functionality
-       from certtool.
-
-2010-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am, tests/finished.c: Removed check on deprecated
-       feature (finished).
-
-2010-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in: 
-       Deprecated old functions.
-
-2010-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: use @code for SAFE_RENEGOTIATION string.
-
-2010-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Doc fix.
-
-2010-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Add.
-
-2010-10-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile.am, tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/params.dh,
-       tests/safe-renegotiation/testsrn, tests/suite/Makefile.am,
-       tests/suite/README, tests/suite/eagain,
-       tests/suite/ecore/eina_config.h,
-       tests/suite/ecore/src/include/Eina.h,
-       tests/suite/ecore/src/include/eina_accessor.h,
-       tests/suite/ecore/src/include/eina_array.h,
-       tests/suite/ecore/src/include/eina_benchmark.h,
-       tests/suite/ecore/src/include/eina_binshare.h,
-       tests/suite/ecore/src/include/eina_config.h,
-       tests/suite/ecore/src/include/eina_convert.h,
-       tests/suite/ecore/src/include/eina_counter.h,
-       tests/suite/ecore/src/include/eina_cpu.h,
-       tests/suite/ecore/src/include/eina_error.h,
-       tests/suite/ecore/src/include/eina_file.h,
-       tests/suite/ecore/src/include/eina_fp.h,
-       tests/suite/ecore/src/include/eina_hamster.h,
-       tests/suite/ecore/src/include/eina_hash.h,
-       tests/suite/ecore/src/include/eina_inline_array.x,
-       tests/suite/ecore/src/include/eina_inline_f16p16.x,
-       tests/suite/ecore/src/include/eina_inline_f32p32.x,
-       tests/suite/ecore/src/include/eina_inline_f8p24.x,
-       tests/suite/ecore/src/include/eina_inline_fp.x,
-       tests/suite/ecore/src/include/eina_inline_hash.x,
-       tests/suite/ecore/src/include/eina_inline_list.x,
-       tests/suite/ecore/src/include/eina_inline_log.x,
-       tests/suite/ecore/src/include/eina_inline_mempool.x,
-       tests/suite/ecore/src/include/eina_inline_rbtree.x,
-       tests/suite/ecore/src/include/eina_inline_rectangle.x,
-       tests/suite/ecore/src/include/eina_inline_str.x,
-       tests/suite/ecore/src/include/eina_inline_stringshare.x,
-       tests/suite/ecore/src/include/eina_inline_tiler.x,
-       tests/suite/ecore/src/include/eina_inline_trash.x,
-       tests/suite/ecore/src/include/eina_inline_ustringshare.x,
-       tests/suite/ecore/src/include/eina_inlist.h,
-       tests/suite/ecore/src/include/eina_iterator.h,
-       tests/suite/ecore/src/include/eina_lalloc.h,
-       tests/suite/ecore/src/include/eina_list.h,
-       tests/suite/ecore/src/include/eina_log.h,
-       tests/suite/ecore/src/include/eina_magic.h,
-       tests/suite/ecore/src/include/eina_main.h,
-       tests/suite/ecore/src/include/eina_matrixsparse.h,
-       tests/suite/ecore/src/include/eina_mempool.h,
-       tests/suite/ecore/src/include/eina_module.h,
-       tests/suite/ecore/src/include/eina_quadtree.h,
-       tests/suite/ecore/src/include/eina_rbtree.h,
-       tests/suite/ecore/src/include/eina_rectangle.h,
-       tests/suite/ecore/src/include/eina_safety_checks.h,
-       tests/suite/ecore/src/include/eina_sched.h,
-       tests/suite/ecore/src/include/eina_str.h,
-       tests/suite/ecore/src/include/eina_strbuf.h,
-       tests/suite/ecore/src/include/eina_stringshare.h,
-       tests/suite/ecore/src/include/eina_tiler.h,
-       tests/suite/ecore/src/include/eina_trash.h,
-       tests/suite/ecore/src/include/eina_types.h,
-       tests/suite/ecore/src/include/eina_unicode.h,
-       tests/suite/ecore/src/include/eina_ustrbuf.h,
-       tests/suite/ecore/src/include/eina_ustringshare.h,
-       tests/suite/ecore/src/lib/Ecore.h,
-       tests/suite/ecore/src/lib/Ecore_Getopt.h,
-       tests/suite/ecore/src/lib/ecore.c,
-       tests/suite/ecore/src/lib/ecore_anim.c,
-       tests/suite/ecore/src/lib/ecore_app.c,
-       tests/suite/ecore/src/lib/ecore_events.c,
-       tests/suite/ecore/src/lib/ecore_exe.c,
-       tests/suite/ecore/src/lib/ecore_getopt.c,
-       tests/suite/ecore/src/lib/ecore_glib.c,
-       tests/suite/ecore/src/lib/ecore_idle_enterer.c,
-       tests/suite/ecore/src/lib/ecore_idle_exiter.c,
-       tests/suite/ecore/src/lib/ecore_idler.c,
-       tests/suite/ecore/src/lib/ecore_job.c,
-       tests/suite/ecore/src/lib/ecore_main.c,
-       tests/suite/ecore/src/lib/ecore_pipe.c,
-       tests/suite/ecore/src/lib/ecore_poll.c,
-       tests/suite/ecore/src/lib/ecore_private.h,
-       tests/suite/ecore/src/lib/ecore_signal.c,
-       tests/suite/ecore/src/lib/ecore_thread.c,
-       tests/suite/ecore/src/lib/ecore_time.c,
-       tests/suite/ecore/src/lib/ecore_timer.c,
-       tests/suite/ecore/src/lib/eina_accessor.c,
-       tests/suite/ecore/src/lib/eina_array.c,
-       tests/suite/ecore/src/lib/eina_benchmark.c,
-       tests/suite/ecore/src/lib/eina_binshare.c,
-       tests/suite/ecore/src/lib/eina_chained_mempool.c,
-       tests/suite/ecore/src/lib/eina_convert.c,
-       tests/suite/ecore/src/lib/eina_counter.c,
-       tests/suite/ecore/src/lib/eina_cpu.c,
-       tests/suite/ecore/src/lib/eina_error.c,
-       tests/suite/ecore/src/lib/eina_file.c,
-       tests/suite/ecore/src/lib/eina_fp.c,
-       tests/suite/ecore/src/lib/eina_hamster.c,
-       tests/suite/ecore/src/lib/eina_hash.c,
-       tests/suite/ecore/src/lib/eina_inlist.c,
-       tests/suite/ecore/src/lib/eina_iterator.c,
-       tests/suite/ecore/src/lib/eina_lalloc.c,
-       tests/suite/ecore/src/lib/eina_list.c,
-       tests/suite/ecore/src/lib/eina_log.c,
-       tests/suite/ecore/src/lib/eina_magic.c,
-       tests/suite/ecore/src/lib/eina_main.c,
-       tests/suite/ecore/src/lib/eina_matrixsparse.c,
-       tests/suite/ecore/src/lib/eina_mempool.c,
-       tests/suite/ecore/src/lib/eina_module.c,
-       tests/suite/ecore/src/lib/eina_private.h,
-       tests/suite/ecore/src/lib/eina_quadtree.c,
-       tests/suite/ecore/src/lib/eina_rbtree.c,
-       tests/suite/ecore/src/lib/eina_rectangle.c,
-       tests/suite/ecore/src/lib/eina_safety_checks.c,
-       tests/suite/ecore/src/lib/eina_sched.c,
-       tests/suite/ecore/src/lib/eina_share_common.c,
-       tests/suite/ecore/src/lib/eina_share_common.h,
-       tests/suite/ecore/src/lib/eina_str.c,
-       tests/suite/ecore/src/lib/eina_strbuf.c,
-       tests/suite/ecore/src/lib/eina_strbuf_common.c,
-       tests/suite/ecore/src/lib/eina_strbuf_common.h,
-       tests/suite/ecore/src/lib/eina_strbuf_template_c.x,
-       tests/suite/ecore/src/lib/eina_stringshare.c,
-       tests/suite/ecore/src/lib/eina_tiler.c,
-       tests/suite/ecore/src/lib/eina_unicode.c,
-       tests/suite/ecore/src/lib/eina_ustrbuf.c,
-       tests/suite/ecore/src/lib/eina_ustringshare.c,
-       tests/suite/ecore/src/lib/eina_value.c, tests/suite/mini-eagain2.c,
-       tests/suite/params.dh, tests/suite/testsrn: Added tests/suite which
-       contains tests to be executed during development time and will not
-       be distributed (not included in make dist).  Added "ecore" and a new
-       mini-eagain to test EAGAIN behavior.
-
-2010-10-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: updated .gitignore.
-
-2010-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/common.c: gnutls-cli: Print channel binding only in
-       verbose mode.  Before it printed it after the 'Compression:' output, thus breaking
-       Emacs starttls.el string searches.
-
-2010-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2010-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2010-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.11.4.
-
-2010-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Rename new symbol prefix after next stable
-       branch instead of development branch.
-
-2010-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/cha-bib.texi, doc/cha-gtls-app.texi: Document channel
-       binding API.
-
-2010-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_state.c,
-       src/common.c: Implement RFC 5929 tls-unique channel binding.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am, lib/gnutls_errors.c,
-       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map: Add gnutls_session_channel_binding API.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/gendh.c: Add self test gendh to check DH
-       generation.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgp-auth.c: Fix compiler warnings.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * guile/tests/Makefile.am, guile/tests/anonymous-auth.scm,
-       guile/tests/dh-parameters.pem, guile/tests/openpgp-auth.scm,
-       guile/tests/pkcs-import-export.scm,
-       guile/tests/session-record-port.scm, guile/tests/x509-auth.scm: 
-       Don't generate DH primes in Guile self checks (for speed).
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/userid/userid: Cleanup, fixing distcheck.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgp-auth.c: Make it work with srcdir != objdir.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Improve GTK-DOC manual.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * .x-sc_two_space_separator_in_usage, lib/cryptodev.c,
-       lib/m4/hooks.m4, lib/pakchois/pakchois11.h: Fix syntax-check
-       warning.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, build-aux/pmccabe2html, doc/fdl-1.3.texi,
-       gl/Makefile.am, gl/arpa_inet.in.h, gl/errno.in.h, gl/float.in.h,
-       gl/ftello.c, gl/getaddrinfo.c, gl/m4/errno_h.m4, gl/m4/error.m4,
-       gl/m4/float_h.m4, gl/m4/ftello.m4, gl/m4/getpagesize.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/hostent.m4,
-       gl/m4/include_next.m4, gl/m4/intmax_t.m4, gl/m4/inttypes_h.m4,
-       gl/m4/lib-ld.m4, gl/m4/lib-link.m4, gl/m4/lseek.m4,
-       gl/m4/malloc.m4, gl/m4/memchr.m4, gl/m4/minmax.m4, gl/m4/printf.m4,
-       gl/m4/realloc.m4, gl/m4/servent.m4, gl/m4/size_max.m4,
-       gl/m4/socketlib.m4, gl/m4/sockets.m4, gl/m4/socklen.m4,
-       gl/m4/sockpfaf.m4, gl/m4/stdarg.m4, gl/m4/stdbool.m4,
-       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdlib_h.m4,
-       gl/m4/time_h.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/malloc.c,
-       gl/netdb.in.h, gl/netinet_in.in.h, gl/read-file.c, gl/realloc.c,
-       gl/select.c, gl/stdarg.in.h, gl/stddef.in.h, gl/stdint.in.h,
-       gl/stdio.in.h, gl/stdlib.in.h, gl/strerror.c, gl/string.in.h,
-       gl/sys_select.in.h, gl/sys_socket.in.h, gl/sys_stat.in.h,
-       gl/sys_time.in.h, gl/tests/Makefile.am, gl/tests/binary-io.h,
-       gl/tests/getpagesize.c, gl/tests/init.sh, gl/tests/sys_ioctl.in.h,
-       gl/tests/test-binary-io.c, gl/tests/test-binary-io.sh,
-       gl/tests/test-ftello.c, gl/tests/test-ftello.sh,
-       gl/tests/test-ftello2.sh, gl/tests/test-ftello3.c,
-       gl/tests/test-getaddrinfo.c, gl/tests/test-memchr.c,
-       gl/tests/test-netdb.c, gl/tests/test-read-file.c,
-       gl/tests/test-stdbool.c, gl/tests/test-stddef.c,
-       gl/tests/test-stdlib.c, gl/tests/test-sys_socket.c,
-       gl/tests/test-sys_wait.h, gl/tests/test-update-copyright.sh,
-       gl/tests/test-vc-list-files-cvs.sh,
-       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
-       gl/time.in.h, gl/timespec.h, gl/unistd.in.h, gl/wchar.in.h,
-       lib/build-aux/config.rpath, lib/gl/Makefile.am, lib/gl/errno.in.h,
-       lib/gl/float.in.h, lib/gl/ftello.c, lib/gl/m4/codeset.m4,
-       lib/gl/m4/errno_h.m4, lib/gl/m4/fcntl-o.m4, lib/gl/m4/float_h.m4,
-       lib/gl/m4/ftello.m4, lib/gl/m4/getpagesize.m4,
-       lib/gl/m4/gettext.m4, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv.m4,
-       lib/gl/m4/include_next.m4, lib/gl/m4/intdiv0.m4, lib/gl/m4/intl.m4,
-       lib/gl/m4/intlmacosx.m4, lib/gl/m4/intmax.m4,
-       lib/gl/m4/intmax_t.m4, lib/gl/m4/inttypes-pri.m4,
-       lib/gl/m4/inttypes_h.m4, lib/gl/m4/lcmessage.m4,
-       lib/gl/m4/ld-version-script.m4, lib/gl/m4/lib-ld.m4,
-       lib/gl/m4/lib-link.m4, lib/gl/m4/lock.m4, lib/gl/m4/lseek.m4,
-       lib/gl/m4/malloc.m4, lib/gl/m4/memchr.m4, lib/gl/m4/memmem.m4,
-       lib/gl/m4/minmax.m4, lib/gl/m4/printf-posix.m4,
-       lib/gl/m4/printf.m4, lib/gl/m4/progtest.m4, lib/gl/m4/realloc.m4,
-       lib/gl/m4/size_max.m4, lib/gl/m4/socketlib.m4,
-       lib/gl/m4/sockets.m4, lib/gl/m4/socklen.m4, lib/gl/m4/sockpfaf.m4,
-       lib/gl/m4/stdbool.m4, lib/gl/m4/stdint.m4, lib/gl/m4/stdint_h.m4,
-       lib/gl/m4/stdlib_h.m4, lib/gl/m4/threadlib.m4, lib/gl/m4/time_h.m4,
-       lib/gl/m4/visibility.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4,
-       lib/gl/malloc.c, lib/gl/netdb.in.h, lib/gl/read-file.c,
-       lib/gl/realloc.c, lib/gl/stddef.in.h, lib/gl/stdint.in.h,
-       lib/gl/stdio.in.h, lib/gl/stdlib.in.h, lib/gl/str-two-way.h,
-       lib/gl/string.in.h, lib/gl/strings.in.h, lib/gl/sys_socket.in.h,
-       lib/gl/sys_stat.in.h, lib/gl/tests/Makefile.am,
-       lib/gl/tests/binary-io.h, lib/gl/tests/getpagesize.c,
-       lib/gl/tests/init.sh, lib/gl/tests/test-binary-io.c,
-       lib/gl/tests/test-binary-io.sh, lib/gl/tests/test-ftello.c,
-       lib/gl/tests/test-ftello.sh, lib/gl/tests/test-ftello2.sh,
-       lib/gl/tests/test-ftello3.c, lib/gl/tests/test-memchr.c,
-       lib/gl/tests/test-netdb.c, lib/gl/tests/test-read-file.c,
-       lib/gl/tests/test-stdbool.c, lib/gl/tests/test-stddef.c,
-       lib/gl/tests/test-stdlib.c, lib/gl/tests/test-sys_socket.c,
-       lib/gl/tests/test-sys_wait.h, lib/gl/tests/test-verify.c,
-       lib/gl/time.in.h, lib/gl/unistd.in.h, lib/gl/wchar.in.h,
-       libextra/gl/gnulib.mk, libextra/gl/m4/gnulib-cache.m4,
-       libextra/gl/m4/gnulib-comp.m4, libextra/gl/m4/ld-version-script.m4,
-       libextra/gl/m4/lib-ld.m4, libextra/gl/m4/lib-link.m4, maint.mk: 
-       Update gnulib files.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Don't assume chmod +x on gendocs.sh.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Use gnulib --add-import.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Sort and update.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/nl.po.in: Sync with TP.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.11.3.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2010-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/errcodes.c, doc/examples/ex-alert.c,
-       doc/examples/ex-cert-select-pkcs11.c,
-       doc/examples/ex-cert-select.c, doc/examples/ex-client-psk.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client-tlsia.c, doc/examples/ex-client1.c,
-       doc/examples/ex-client2.c, doc/examples/ex-crq.c,
-       doc/examples/ex-pkcs12.c, doc/examples/ex-rfc2818.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
-       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c,
-       doc/examples/examples.h, doc/examples/tcp.c, guile/src/core.c,
-       guile/src/errors.c, guile/src/extra.c, guile/src/utils.c,
-       guile/src/utils.h, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_psk.h,
-       lib/auth_rsa.c, lib/auth_rsa_export.c, lib/auth_srp.c,
-       lib/auth_srp.h, lib/crypto-api.c, lib/crypto.h, lib/cryptodev.c,
-       lib/debug.c, lib/debug.h, lib/ext_cert_type.c,
-       lib/ext_max_record.c, lib/ext_safe_renegotiation.c,
-       lib/ext_safe_renegotiation.h, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/ext_session_ticket.c,
-       lib/ext_session_ticket.h, lib/ext_signature.c, lib/ext_signature.h,
-       lib/ext_srp.c, lib/ext_srp.h, lib/gcrypt/init.c, lib/gcrypt/mpi.c,
-       lib/gcrypt/pk.c, lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_auth.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.h, lib/gnutls_dh.h,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h,
-       lib/gnutls_mem.h, lib/gnutls_mpi.h, lib/gnutls_num.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_priority.c,
-       lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_session_pack.c, lib/gnutls_sig.c,
-       lib/gnutls_sig.h, lib/gnutls_srp.c, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/gnutls_supplemental.c, lib/gnutls_supplemental.h,
-       lib/gnutls_x509.c, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/compat.h, lib/includes/gnutls/crypto.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/gnutlsxx.h,
-       lib/includes/gnutls/openpgp.h, lib/includes/gnutls/pkcs11.h,
-       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
-       lib/locks.c, lib/locks.h, lib/nettle/cipher.c, lib/nettle/egd.c,
-       lib/nettle/egd.h, lib/nettle/init.c, lib/nettle/mac.c,
-       lib/nettle/mpi.c, lib/nettle/pk.c, lib/nettle/rnd.c,
-       lib/opencdk/armor.c, lib/opencdk/hash.c, lib/opencdk/kbnode.c,
-       lib/opencdk/keydb.c, lib/opencdk/literal.c, lib/opencdk/main.c,
-       lib/opencdk/misc.c, lib/opencdk/new-packet.c, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c, lib/opencdk/types.h,
-       lib/opencdk/verify.c, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/openpgp_int.h, lib/openpgp/output.c, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c, lib/pakchois/dlopen.c,
-       lib/pakchois/dlopen.h, lib/pakchois/errors.c,
-       lib/pakchois/pakchois.c, lib/pakchois/pakchois.h,
-       lib/pakchois/pakchois11.h, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, lib/pkcs11_write.c, lib/random.c,
-       lib/random.h, lib/system.c, lib/system.h, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/privkey.c, lib/x509/sign.c, lib/x509/sign.h,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h,
-       lib/x509/x509_write.c, lib/x509_b64.c,
-       libextra/ext_inner_application.c, libextra/ext_inner_application.h,
-       libextra/gnutls_extra.c, libextra/gnutls_ia.c,
-       libextra/includes/gnutls/extra.h, libextra/openssl_compat.h,
-       src/benchmark.c, src/certtool-cfg.h, src/certtool-common.h,
-       src/certtool.c, src/cli.c, src/common.c, src/common.h, src/crypt.c,
-       src/pkcs11.c, src/prime.c, src/psk.c, src/serv.c, src/tests.c,
-       tests/anonself.c, tests/certder.c,
-       tests/certificate_set_x509_crl.c, tests/certuniqueid.c,
-       tests/chainverify.c, tests/crq_apis.c, tests/crq_key_id.c,
-       tests/crypto_rng.c, tests/cve-2008-4989.c, tests/cve-2009-1415.c,
-       tests/cve-2009-1416.c, tests/dhepskself.c, tests/dn.c, tests/dn2.c,
-       tests/finished.c, tests/gc.c, tests/hostname-check.c,
-       tests/init_roundtrip.c, tests/mini-eagain.c,
-       tests/mini-x509-rehandshake.c, tests/mini-x509.c, tests/mini.c,
-       tests/moredn.c, tests/mpi.c, tests/netconf-psk.c,
-       tests/nul-in-x509-names.c, tests/openpgp-auth.c,
-       tests/openpgp-keyring.c, tests/openpgpself.c, tests/openssl.c,
-       tests/parse_ca.c, tests/pgps2kgnu.c, tests/pkcs12_encode.c,
-       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c, tests/pskself.c,
-       tests/resume.c, tests/safe-renegotiation/srn0.c,
-       tests/safe-renegotiation/srn1.c, tests/safe-renegotiation/srn2.c,
-       tests/safe-renegotiation/srn3.c, tests/safe-renegotiation/srn4.c,
-       tests/safe-renegotiation/srn5.c, tests/set_pkcs12_cred.c,
-       tests/setcredcrash.c, tests/simple.c, tests/tlsia.c, tests/utils.c,
-       tests/utils.h, tests/x509_altname.c, tests/x509dn.c,
-       tests/x509self.c, tests/x509sign-verify.c: Indent (using GNU indent
-       2.2.11).
-
-2010-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, lib/m4/hooks.m4: bumped version
-
-2010-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Revert "Applied last patch of Micah Anderson on
-       IKE status." This reverts commit a6b2f5ce7316b4774649ee9b421da2ee7fef461f.
-
-2010-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/fipsmd5.c: removed unneeded code.
-
-2010-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Applied last patch of Micah Anderson on IKE
-       status.
-
-2010-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Applied patch on IKE extension by Micah Anderson
-
-2010-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/cryptodev.c, lib/gcrypt/mac.c, lib/gnutls_hash_int.c,
-       lib/includes/gnutls/crypto.h, lib/nettle/mac.c: Updated cryptodev
-       code to support the linux cryptodev extensions.  Removed the clone()
-       capability from HMAC. It was never used and having it prevents using
-       it with hardware accelerators that might not have this capability.
-
-2010-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: Added Micah
-
-2010-10-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/cha-cert-auth.texi, doc/cha-internals.texi,
-       doc/cha-library.texi, lib/ext_safe_renegotiation.c,
-       lib/ext_server_name.c, lib/gcrypt/init.c, lib/gnutls_record.c,
-       lib/gnutls_str.c, lib/locks.c, lib/nettle/egd.c, lib/nettle/init.c,
-       lib/system.c, lib/system.h, libextra/ext_inner_application.c,
-       src/certtool-common.h, src/common.c, src/pkcs11.c: Fix some
-       syntax-check errors.
-
-2010-10-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/pkcs11.h: Fix compiler warnings.
-
-2010-10-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am: Mention new APIs.
-
-2010-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgp-certs/testselfsigs: Avoid bashism.  Reported by m.drochner@fz-juelich.de in
-       <http://savannah.gnu.org/support/?107449>.
-
-2010-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/crypto-api.c: Don't return from void functions.  Reported by Dagobert Michelsen <dam@opencsw.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4566>.
-
-2010-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Remove spurious comma.
-
-2010-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/x509.h: Remove spurious comma.
-
-2010-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs8-decode/Makefile.am, tests/pkcs8-decode/pkcs8: Make
-       pkcs8-decode test work on Windows.
-
-2010-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated
-
-2010-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c: treat absence of parameters the same as
-       having them disabled.
-
-2010-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/resume.c: Corrected behavior on failure (don't crash).
-
-2010-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c, lib/gnutls_extensions.c: Corrected bugs
-       when restoring extensions during session resumtion.
-
-2010-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c: Use more informative logging for
-       extensions.
-
-2010-09-29  Micah Anderson <micah@riseup.net>
-
-       * NEWS, doc/certtool.cfg, doc/cha-programs.texi,
-       lib/includes/gnutls/x509.h, lib/x509/output.c, src/certtool-cfg.c,
-       src/certtool-cfg.h, src/certtool.c: Add new extended key usage
-       ipsecIKE According to RFC 4945 § 5.1.3.12 section title
-       "ExtendedKeyUsage"[0] the following extended key usage has been
-       added:  ... this document defines an ExtendedKeyUsage keyPurposeID that MAY
-          be used to limit a certificate's use:    id-kp-ipsecIKE OBJECT IDENTIFIER ::= { id-kp 17 }    where id-kp is defined in RFC 3280 [5].  If a certificate is
-          intended to be used with both IKE and other applications, and one
-          of the other applications requires use of an EKU value, then such
-          certificates MUST contain either the keyPurposeID id-kp-ipsecIKE or    anyExtendedKeyUsage [5], as well as the keyPurposeID values    associated with the other applications.  Similarly, if a CA
-          issues multiple otherwise-similar certificates for multiple
-          applications including IKE, and it is intended that the IKE
-          certificate NOT be used with another application, the IKE
-          certificate MAY contain an EKU extension listing a keyPurposeID of
-          id-kp-ipsecIKE to discourage its use with the other application.
-          Recall, however, that EKU extensions in certificates meant for use
-       in IKE are NOT RECOMMENDED.     Conforming IKE implementations are not required to support EKU.
-          If a critical EKU extension appears in a certificate and EKU is
-          not supported by the implementation, then RFC 3280 requires that the    certificate be rejected.  Implementations that do support EKU
-          MUST support the following logic for certificate validation:    o  If no EKU extension, continue.     o  If EKU present AND contains either id-kp-ipsecIKE or       anyExtendedKeyUsage, continue.     o  Otherwise, reject cert.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool-gaa.c, src/certtool.gaa: --pkcs11-* in certtool
-       was renamed to --p11-*.
-
-2010-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c: Added some comments and removed unused
-       code.
-
-2010-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/ext_session_ticket.c: Corrected advertizing issue for
-       session tickets.
-
-2010-09-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: cleanup of TODO list. Removed very old entries, entries
-       already fixed and added new ones.
-
-2010-09-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: IMED_RET parameters are easier to grasp.
-
-2010-09-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto.c, lib/gcrypt/cipher.c, lib/gcrypt/mac.c,
-       lib/nettle/cipher.c, lib/nettle/mac.c: cipher,mac and digest
-       priorities moved to crypto.c
-
-2010-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: changed the fatality level of some errors.
-
-2010-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: No longer use is_fatal() during handshake.
-       Explicitely treat EAGAIN and INTERRUPTED as non-fatal during
-       handshake. If the check_fatal flag is set then
-       GNUTLS_E_WARNING_ALERT_RECEIVED could interrupt a handshake as well.
-
-2010-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: fflush stdout and stderr before the call to setbuf.
-       This fixes issue in solaris where lines dissappeared from output.
-       Reported and suggested fix by Knut Anders Hatlen.
-
-2010-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented change
-
-2010-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/pk.c: Corrected bug in wrap_nettle_pk_fixup that was
-       importing DSA keys are RSA ones.
-
-2010-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/pk.c, lib/openpgp/privkey.c: indented some code
-
-2010-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: updated revision
-
-2010-09-18  Ludovic Courtès <ludo@gnu.org>
-
-       * .gitignore, tests/Makefile.am, tests/openpgp-auth.c: Add an
-       OpenPGP authentication unit test.  * tests/Makefile.am (ctests)[ENABLE_OPENPGP]: Add `openpgp-auth'.    (TESTS_ENVIRONMENT): Add `srcdir'.  * tests/openpgp-auth.c: New file.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-16  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/ext_session_ticket.c, lib/gnutls_alert.c,
-       lib/gnutls_buffers.c, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_constate.c, lib/gnutls_constate.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_num.h,
-       lib/gnutls_record.c, lib/gnutls_record.h,
-       lib/gnutls_session_pack.c, lib/gnutls_state.c, libextra/gnutls_ia.c: 
-       Explicit symmetric cipher state versionning.  This introduces the concept of a "cipher epoch". The epoch number is
-       the number of successful handshakes and is incremented by one each
-       time. This concept is native to DTLS and this patch makes the
-       symmetric cipher state explicit for TLS in preparation for DTLS.
-       This concept was implicit in plain TLS and ChangeCipherSpec messages
-       triggered a "pending state copy". Now, we the current epoch number
-       is simply incremented to the parameters negotiated by the handshake.  The main side effects of this patch is a slightly more abstract
-       internal API and, in some cases, simpler code. The session blob
-       format is also changed a bit since this patch avoids storing
-       information that is now redundant. If this breaks library users'
-       expectations, this side effect can be negated.  The cipher_specs structure has been removed. The conn_state has
-       become record_state_st. Only symmetric cipher information is
-       versioned. Things such as key exchange algorithm and the master
-       secret are not versioned and their handling is unchanged.  I have tested this patch as much as I could. It introduces no test
-       suite regressions on my x64 Debian GNU/Linux system.  Do not hesitate to point out shortcomings or suggest changes. Since
-       this is a big diff, I am expecting this to be an iterative process.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-16  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_errors.h: Add gnutls_assert_val idiom.   This warrants being made in an inline function or macro since it is  used throughout the code. This converts 4 line repetitive blocks
-        into 1 line.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS, NEWS, configure.ac: updated for 2.11.1
-
-2010-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.gaa, src/pkcs11.c: Added 3 levels of details in PKCS
-       #11 URLs.  1st level: Token level. Object is unique up to token.
-       2nd level: Object is unique up to token and module used to access
-       it.  3rd level: Object is unique up to token and module and version
-       of module used to access it.
-
-2010-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Documented changes.
-
-2010-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509_b64.c: Be liberal in the PEM decoding. That is spaces and
-       tabs are being skipped.
-
-2010-09-08  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: Fully mbufferize _gnutls_read and
-       _gnutls_read_buffered.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-08  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_mbuffers.h: mbuffers: Add _mbuffer_xfree operation.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-08  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_state.c: mbuffers: make
-       _gnutls_io_read_buffered use mbuffers.  This will be needed by the DTLS code to make sure reads are stored
-       in segments that correspond to datagram boundaries.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-08  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_int.h: Parenthesize size calculations.  This is standard practice and the DTLS code got bit by this.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-08  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h: mbuffers: Add
-       mbuffer_linearize.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-08  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_mbuffers.c: mbuffers: fix wrong size calculation.  maximum_size is the maximum size of the payload, not including
-       overhead.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-08  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_mbuffers.c: mbuffers: Make _mbuffer_remove_bytes return
-       a meaningful error code.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-08  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_mbuffers.c: mbuffers: Document the internal mbuffer
-       API.  After a year of not hacking GnuTLS, I needed to look at the code to
-       know how mbuffers work. This will make it much easier for anybody
-       not familiar with this code.  Signed-off-by: Jonathan Bastien-Filiatrault <joe@x2a.org>
-       Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated NEWS.
-
-2010-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, lib/pkcs11_write.c, src/certtool-common.h,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa, src/pkcs11.c: PKCS#11 URL support updated to
-       conform to draft-pechanec-pkcs11uri-02.  Now in the URL the pkcs11
-       provider library (module) can be specified thus restricting objects
-       within a single provider.
-
-2010-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/gnutls_record.c: When the %COMPAT flag is specified, larger
-       records that would otherwise violate the TLS spec, are accepted.
-
-2010-08-28  Brad Hards <bradh@frogmouth.net>
-
-       * src/certtool.c, src/pkcs11.c: Show which option is the default for
-       command line tools.  We use "y/N" is most places - this just adapts two places that use
-       "Y/N" to match the behavior of read_yesno().  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: prevent a memory leak in the unique_id functions.
-
-2010-08-20  Brad Hards <bradh@frogmouth.net>
-
-       * lib/includes/gnutls/x509.h, lib/libgnutls.map, lib/x509/output.c,
-       lib/x509/x509.c, tests/Makefile.am, tests/certuniqueid.c: As
-       identified in a previous mail, I've added support for accessing /
-       displaying the subjectUniqueID and issuerUniqueID fields within an
-       X.509 certificate. This is provided (along with a test case) in the
-       attached patch.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_int.h: By default lowat is set to zero.
-
-2010-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Revert "When scanning for terminator character for
-       PKCS #11 URLs ignore escaped \;." This reverts commit 583fad076506421c9007a3349784496e2927dcd1.
-
-2010-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: Added Sjoerd.
-
-2010-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/m4/hooks.m4: libnettle is the default crypto library.
-
-2010-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: oldstate var removed.
-
-2010-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/mini-eagain.c: mini-eagain will fail with EAGAIN error one
-       every two attempts. That is to remove probabilities.
-
-2010-08-11  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
-
-       * lib/gnutls_int.h, lib/gnutls_record.c: Remember the amount of user
-       data we're sending out Partially reverts 3ef62950845f551ebc629e50d5ddf75f71b84294.
-       gnutls_record_send needs to return the amount of user-data we sent,
-       so we need to keep this information somewhere to return it when we
-       succeed in sending that data.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-08-11  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
-
-       * lib/gnutls_handshake.c: Check whether the error is fatal in more
-       cases When stressing the async API of gnutls a lot of internal errors are
-       hit as IMED_RET clears the handshake hash buffers as a result of
-       -EAGAIN even though it would never be re-initialized at that point,
-       but is still needed in later stages.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-08-11  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h: Add state for flushing
-       the handshake buffer A seperate state is needed between flushing the handshake buffers
-       and sending the chipher spec change otherwise it's impossible to
-       determine whether _gnutls_send_change_cipher_spec is called for the
-       first time or again.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-08-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/nettle/mpi.c: Fix warning.
-
-2010-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: Define HAVE_GCRYPT when using gcrypt. nettle is
-       no longer marked as unsupported.
-
-2010-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/manpages/Makefile.am, lib/gnutls_extensions.c,
-       lib/m4/hooks.m4, lib/nettle/cipher.c, lib/nettle/mac.c,
-       lib/nettle/pk.c, libextra/gnutls_extra.c: Added Camellia-128/256,
-       SHA-224/384/512 and support for DSA2 when using nettle.
-
-2010-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: When scanning for terminator character for PKCS #11
-       URLs ignore escaped \;.
-
-2010-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: Modified the example to work in TLS 1.2.
-
-2010-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_algorithms.c: Added RSA_NULL_SHA1 and SHA256
-       ciphersuites.
-
-2010-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_signature.c: When signature algorithms extension is not
-       received allow SHA1 and SHA256.
-
-2010-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: NULL MAC renamed to MAC-NULL
-
-2010-07-25  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Avoid fixed size buffers (now handles the big >100
-       SAN cert).
-
-2010-07-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2010-07-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Re-add old NEWS entries.
-
-2010-07-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c: Doc fix.
-
-2010-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c: Do not trust fbase64_decode to return 0 on
-       success.
-
-2010-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_x509.c, lib/x509/privkey.c, src/certtool.c: 
-       gnutls_x509_privkey_import() will fallback to
-       gnutls_x509_privkey_import_pkcs8() without a password, if it is
-       unable to decode the key.
-
-2010-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/includes/gnutls/gnutls.h.in, lib/nettle/mpi.c, src/prime.c: 
-       Added GNUTLS_PK_DH to differentiate in the generation of parameters
-       with PK_DSA that requires special treatment.
-
-2010-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Corrected wrong descriptions of security
-       levels.
-
-2010-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: use RSA-SHA1 as an indicator of RSA
-       certificates.
-
-2010-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Fix DSA key values to avoid generating
-       normal and reporting them as low.
-
-2010-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/includes/gnutls/openpgp.h, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/nettle/mpi.c, lib/openpgp/privkey.c,
-       lib/x509/privkey.c, src/certtool.c,
-       tests/pathlen/no-ca-or-pathlen.pem: Better handling of security
-       parameters to key sizes matching (via a single table). Added
-       functions to return the security parameter of a private key.
-
-2010-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Simplified documentation.
-
-2010-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/mpi.c: Follow ECRYPT II recommendations.
-
-2010-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-bib.texi, doc/cha-intro-tls.texi,
-       lib/gnutls_algorithms.c: Updated documentation and
-       gnutls_pk_params_t mappings to ECRYPT II recommendations.
-
-2010-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: HMAC-MD5 deprecated according to ECRYPT II
-       yearly report (2009-2010) recommendations.
-
-2010-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/sha2/Makefile.am: added missing file key-subca-dsa.pem
-
-2010-07-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gtk-doc.make: ignore html errors otherwise make dist doesn't work.
-
-2010-07-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: updated NEWS
-
-2010-07-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-common.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa: Added option for certtool to print
-       certificate public key.
-
-2010-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Added SIG_RSA_MD5_OID as an indicator of
-       RSA. Some microsoft products were using it. Reported by Mads
-       Kiilerich.
-
-2010-07-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/x509/common.h: Added RSA with SHA224.
-
-2010-07-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/pk.c: Added blinding to RSA decryption AND signing.
-       Will stay there until it is moved to nettle itself.
-
-2010-07-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/system.h: fixed
-
-2010-07-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/nettle/Makefile.am, lib/nettle/egd.c, lib/nettle/egd.h,
-       lib/nettle/rnd.c: Added support for EGD daemon in nettle's RNG. It
-       is used if /dev/urandom is not present.
-
-2010-07-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/system.c, lib/system.h: Corrected the
-       lowat behavior. Documented that it will be deprecated in later
-       versions.
-
-2010-07-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: gnutls-serv: Do not print CR/LF if received, but
-       instead print LF only.
-
-2010-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gnutls_buffers.c, lib/gnutls_state.c,
-       lib/locks.c, lib/locks.h, lib/pakchois/pakchois.c, lib/system.c,
-       lib/system.h: system specific functions were moved to system.c
-
-2010-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, lib/gnutls_alert.c, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_mbuffers.c,
-       lib/gnutls_mbuffers.h, lib/gnutls_record.c, lib/gnutls_record.h,
-       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, libextra/gnutls_ia.c: Support scattered write
-       using writev(). This takes advantage of the new buffering layer and
-       allows queuing of packets and flushing them. This is currently used
-       for handshake messages only. Performance-wise the difference of
-       packing several TLS records in a single write doesn't seem to offer
-       anything over ethernet (that my tests were on). Probably on links
-       with higher latency there would be a benefit.
-
-2010-07-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: Removed old reference.
-
-2010-07-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi, doc/examples/Makefile.am,
-       doc/examples/ex-rfc2818.c: ex-rfc2818 is now a functional program
-       demonstrating the verification procedure.
-
-2010-07-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-gtls-app.texi, doc/examples/Makefile.am,
-       doc/examples/ex-serv-export.c: Example with export ciphersuites was
-       removed.
-
-2010-07-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pubkey.c: corrected typo
-
-2010-07-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/pk.c: Use the same "e" for RSA as libgcrypt. It's the
-       fastest choice.
-
-2010-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c: Do not crash if input is redirected from
-       /dev/null.
-
-2010-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool-gaa.c, src/certtool.c, src/certtool.gaa: 
-       Changed the default pkcs-cipher to AES-128. Allowed specifying the
-       3des-pkcs12 cipher with the --pkcs-cipher option.
-
-2010-07-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c: Use double to count bytes.
-
-2010-07-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: Added a windows version of the RNG.
-
-2010-07-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: Corrected locking usage in nettle's random
-       subsystem.
-
-2010-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/Makefile.am, lib/gnutls_privkey.c,
-       lib/gnutls_pubkey.c, lib/nettle/Makefile.am, lib/pakchois/dlopen.h: 
-       Fixed to compile under mingw32.
-
-2010-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: only warn if dlopen or pthreads are not found.
-
-2010-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/init.c, lib/includes/gnutls/gnutls.h.in, lib/locks.c,
-       lib/pakchois/pakchois.c: Locks were converted to be in align with
-       posix locks to easier wrap around them.
-
-2010-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/locks.c, lib/locks.h, lib/pakchois/dlopen.c,
-       lib/pakchois/dlopen.h, lib/pakchois/pakchois.c: The included
-       pakchois will use gnutls locks and will use a portable dlopen() to
-       allow compilation in win32 (untested).
-
-2010-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: Read from /dev/urandom every 20 minutes.
-
-2010-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/x509/Makefile.am: Added missing files
-
-2010-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/includes/gnutls/crypto.h,
-       lib/libgnutls.map: Allow encryption and decryption that are not
-       in-place only.
-
-2010-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c: Print values in a human-readable format and do
-       the calculations in fixed time to prevent stalling in slow systems.
-
-2010-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: corrected library version
-
-2010-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select-pkcs11.c,
-       lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, lib/pkcs11_int.h,
-       src/common.c, src/pkcs11.c: PIN callback supplies the token URL. The
-       callback function in common.c will cache PIN if requested for second
-       time.
-
-2010-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/includes/gnutls/gnutls.h.in,
-       lib/pkcs11.c, lib/pkcs11_int.h, lib/pkcs11_privkey.c,
-       lib/pkcs11_write.c, src/common.c: Reverted the SAVE_PIN approach in
-       PIN callback. The new approach will be to provide enough information
-       for the callback to save the PIN itself.
-
-2010-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/init.c: removed unneeded function.
-
-2010-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c: More uses of gnutls_certificate_free_ca_names
-
-2010-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/locks.c: Do not allow setting NULL lock functions
-
-2010-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/rnd.c: corrected lock usage.
-
-2010-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: bumped library version
-
-2010-07-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/Makefile.am: Include abstract.h in releases.
-
-2010-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c: Correctly deinitialize crypto API handles.
-
-2010-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h: commented obscure HANDSHAKE_MAC_TYPE_10 and
-       HANDSHAKE_MAC_TYPE_12.
-
-2010-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/locks.c, lib/locks.h, lib/nettle/rnd.c: simplified locking
-       code. Locking functions always exist but are dummies if no locks
-       have been set.
-
-2010-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/Makefile.am, lib/gcrypt/init.c, lib/gnutls_errors.c,
-       lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/includes/gnutls/gnutls.h.in, lib/locks.c, lib/locks.h,
-       lib/nettle/Makefile.am, lib/nettle/init.c, lib/nettle/rnd.c: 
-       Initialization of crypto libraries moved outside main gnutls code.
-
-2010-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/locks.c, lib/locks.h: Moved locking code to special file.
-
-2010-06-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/pkcs11-vision.eps: Add pkcs11-vision rules.
-
-2010-06-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2010-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11_write.c, src/pkcs11.c: 
-       When copying a private key the sensitive flag can be set or not.
-       This allows copying private keys that can be exported.
-
-2010-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_write.c, src/certtool-common.h, src/certtool.c,
-       src/pkcs11.c: Combined object flags. No implicit login any more.
-       Login has to be specified with a flag on every call that could use
-       it.
-
-2010-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/pkcs11.c,
-       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_write.c: Indented
-       code.
-
-2010-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select-pkcs11.c, lib/gnutls_pubkey.c,
-       lib/gnutls_x509.c, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, lib/pkcs11_write.c,
-       src/certtool-common.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa, src/cli.c, src/pkcs11.c: Allow
-       flags when importing objects from PKCS11 URLs. The only flag
-       supported now is the PKCS11_OBJ_FLAG_LOGIN, which forces login
-       before accessing object on a token. The reason is that some tokens
-       do not allow access of any data without login.
-
-2010-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c: Added AES-128 to block ciphers.
-
-2010-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_session_pack.c: Corrected writing and reading order of
-       security parameters.
-
-2010-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/configure.ac, libextra/configure.ac: use 2.11.0 everywhere
-
-2010-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-gtls-app.texi, lib/configure.ac,
-       lib/gnutls_errors.c, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
-       lib/nettle/rnd.c, lib/pkcs11.c: Added gnutls_global_set_mutex() to
-       allow setting alternative locking procedures. By default the system
-       available locking is used. In *NIX pthreads are used and in windows
-       the critical section API.  As a side effect this change avoids any API dependance on libgcrypt
-       even if threads are used.
-
-2010-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/chainverify.c: Modified the cacertrsamd5 short-cut. The test
-       was checking whether verification using a trusted insecurely signed
-       self signed certificate will fail against a chain that has this as
-       intermediate. However this test should have succeeded since the
-       insecure certificate is trusted.  This isn't the purpose of this test however. It should have checked
-       whether using the same certificate as trusted and to be verified and
-       the GNUTLS_VERIFY_DO_NOT_ALLOW_SAME flag should return an error.
-
-2010-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/chainverify.c: Fail on error.
-
-2010-06-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: When generating private key allow usage of
-       --pkcs-cipher flag.
-
-2010-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_psk.h,
-       lib/auth_srp.c, lib/auth_srp.h, lib/ext_srp.c, lib/gnutls_int.h: 
-       MAX_SRP_USERNAME -> MAX_USERNAME_SIZE
-
-2010-06-24  Simon Josefsson <simon@josefsson.org>
-
-       * README-alpha: We also require GNU make.
-
-2010-06-24  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS, configure.ac, lib/configure.ac, libextra/configure.ac: Use
-       silent build rules.  Suggested by Vincent Torri <vincent.torri@gmail.com> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4349>.
-
-2010-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/gnutls.h.in: removed OPRFI extension
-       functions.
-
-2010-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: removed OPRFI from makefile.
-
-2010-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: When verifying certificates use the same
-       algorithm whether the DO_NOT_ALLOW_SAME flag is set or not. Before
-       we were shortening certificate list if the flag was not set by the
-       size of the first certificate found in the trusted list, and keep
-       the list intact otherwise. Now we shorten the list in the latter
-       case as well, except for the first certificate.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Added news entry for EV-certificates.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: Corrected some tests.
-       Added test to check whether the %COMPAT option is required for this
-       server.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c, lib/gnutls_session_pack.c: Corrections in
-       the new session packing code. Saving absolute positions in buffers
-       is no longer done. Now we store only and offset to allow
-       reallocating the buffer and still do the correct reference.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.c, lib/ext_safe_renegotiation.h,
-       lib/ext_signature.c, lib/gnutls_handshake.c: Fixes in new extensions
-       code that relate to SSL 3.0.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: version is 2.11.0
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: Some updates in the PKCS11 text.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Some updates on renegotiation text
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Removed links for discussion of the COMPAT
-       topic. I don't think they should be in the documentation.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Corrected example with %COMPAT.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Added gnutls_sec_param_to_pk_bits()
-       discussion.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: corrected text on AES
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Only save PIN if login was successful.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-auth.texi, lib/ext_signature.c: Applied patch by Andreas
-       Metzler
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/benchmark.c: Allow setting debug level via cmd.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/cryptodev.c: Explicitely terminate cryptodev sessions.
-
-2010-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: Removed the no
-       longer needed "active" variable.
-
-2010-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented some of the changes
-
-2010-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: Greatly simplified the
-       internal hash/hmac and cipher functions.
-
-2010-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c,
-       src/certtool-common.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.gaa, src/pkcs11.c: Allow listing of private keys only.
-       Certtool has now the --pkcs11-list-privkeya option.
-
-2010-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_privkey.c: Send correct token name to callback.
-
-2010-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/includes/gnutls/gnutls.h.in,
-       lib/pkcs11.c, lib/pkcs11_int.h, lib/pkcs11_privkey.c,
-       lib/pkcs11_write.c: Added more gnutls errors to map closer to PKCS11
-       actual errors.
-
-2010-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, lib/pkcs11_write.c, src/cli.c, src/common.c: 
-       Added option to the PKCS11 PIN callback to save PIN if the token is
-       being used with a single pkcs11_privkey structure.
-
-2010-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_privkey.c: For Private key operations new sessions are
-       opened when are needed. This makes the usage of the PKCS11 API
-       thread safe. The only drawback is the requirement to enter PIN on
-       every operation.
-
-2010-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: gnutls-cli: Make --starttls work again.  Problem introduced in patch to use read() instead of fgets()
-       committed on 2010-01-27.
-
-2010-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c, tests/sha2/key-ca-dsa.pem,
-       tests/sha2/key-subca-dsa.pem, tests/sha2/sha2, tests/sha2/sha2-dsa: 
-       Allow SHA224 hash in certtool. Added tests for SHA-256 and SHA-224
-       for DSA.
-
-2010-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Do not warn multiple times for the deprecation of
-       --bits.
-
-2010-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_mbuffers.c,
-       lib/gnutls_mbuffers.h, lib/gnutls_record.c: Appending data in
-       mbuffers is now cheaper by avoiding realloc, at the cost of
-       requiring to specify a maximum mbuffer size at creation.
-
-2010-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.c: Removed unused functions.
-
-2010-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_int.h: Combined the max ticket
-       length with the maximum extension data length.
-
-2010-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-gtls-app.texi, lib/auth_srp.c, lib/ext_cert_type.c,
-       lib/ext_cert_type.h, lib/ext_max_record.c, lib/ext_max_record.h,
-       lib/ext_oprfi.c, lib/ext_oprfi.h, lib/ext_safe_renegotiation.c,
-       lib/ext_safe_renegotiation.h, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/ext_session_ticket.c,
-       lib/ext_session_ticket.h, lib/ext_signature.c, lib/ext_signature.h,
-       lib/ext_srp.c, lib/ext_srp.h, lib/gnutls_buffers.c,
-       lib/gnutls_constate.c, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h,
-       lib/gnutls_record.c, lib/gnutls_session_pack.c, lib/gnutls_state.c,
-       lib/gnutls_str.c, lib/gnutls_str.h, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, lib/pkcs11.c,
-       lib/x509/dn.c, libextra/ext_inner_application.c,
-       libextra/ext_inner_application.h, libextra/gnutls_extra.c,
-       libextra/gnutls_ia.c, src/cli.c, src/serv.c, tests/Makefile.am,
-       tests/oprfi.c, tests/tlsia.c: Simplified and made more safe the
-       packing of data for session storage. Extensions use the internal API
-       to store/retrieve during resumption.  Removed OPRFI since it was never standardized and was never actually
-       included in gnutls since it was in inactive ifdef. This was instead
-       of rewriting it to use the new API.
-
-2010-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_str.c, lib/gnutls_str.h, lib/gnutls_supplemental.c,
-       lib/gnutls_supplemental.h, lib/openpgp/output.c, lib/pkcs11.c,
-       lib/x509/dn.c, lib/x509/output.c: The gnutls_string code was
-       simplified and integrated with the buffer to avoid having two named
-       for the same thing.
-
-2010-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pakchois/pakchois.c: Properly handle fork() case.
-
-2010-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_extra.c: Register the md5 handler if gcrypt is in
-       fips mode once gnutls_global_init_extra() is called.
-
-2010-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c: corrected tests.
-
-2010-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pakchois/pakchois.c, lib/pakchois/pakchois.h, lib/pkcs11.c: 
-       Added new calls to pakchois to open an absolute filename.
-
-2010-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h: Removed several comments that
-       pointed to Alon's implementation comments. We use inline C comments
-       to generate documentation (not doxygen).
-
-2010-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/ext_session_ticket.c,
-       lib/gnutls_algorithms.c, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_mbuffers.c, lib/gnutls_record.c, lib/gnutls_state.c: More
-       fixes for the rebase.
-
-2010-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS: Added Jonathan.
-
-2010-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pakchois/pakchois.c: Provider unref must be done after all
-       sessions have been closed.
-
-2010-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: Several fixes for the broken rebase.
-
-2010-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-intro-tls.texi: Merged with master.
-
-2010-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_mbuffers.h,
-       lib/gnutls_record.c: Some other changes to mbuffers to make gnutls
-       (a bit more) agnostic on their internal structure.
-
-2010-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: Corrected prefered hash algorithm return value
-       on RSA.
-
-2010-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: Use GCRYCTL_ENABLE_QUICK_RANDOM when using
-       libgcrypt.
-
-2010-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: Ignore more files.
-
-2010-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/sha2/sha2-dsa: Remove the correct file
-
-2010-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/sha2/key-ca-dsa.pem, tests/sha2/key-dsa.pem: Added missing
-       files.
-
-2010-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_pubkey.c,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/x509.h,
-       lib/x509/crq.c, lib/x509/x509.c, src/certtool.c: The
-       get_preferred_hash_algorithm() functions have now an extra argument
-       to indicate whether it is mandatory to use this algorithm.
-
-2010-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-crq.c, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/x509/crq.c: Added
-       gnutls_x509_crq_get_preferred_hash_algorithm().
-
-2010-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_pubkey.c, lib/includes/gnutls/abstract.h,
-       lib/includes/gnutls/x509.h, lib/libgnutls.map, lib/x509/privkey.c,
-       lib/x509/verify.c, lib/x509/x509.c, src/certtool.c: Added
-       gnutls_pubkey_get_preferred_hash_algorithm() and
-       gnutls_x509_crt_get_preferred_hash_algorithm() to allow determining
-       the hash algorithm to use during signing. This is needed in the case
-       of DSA that uses specific versions of SHA depending on the size of
-       the parameters.
-
-2010-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi, lib/Makefile.am, lib/build-aux/config.rpath,
-       lib/gcrypt/pk.c, lib/gnutls_privkey.c, lib/pkcs11.c,
-       lib/pkcs11_privkey.c, lib/x509/privkey.c, lib/x509/sign.c,
-       lib/x509/sign.h, lib/x509/verify.c, lib/x509/x509.c, src/pkcs11.c: 
-       Several fixes after big rebase.
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/sha2/Makefile.am, tests/sha2/sha2-dsa: Test the DSA with
-       SHA256 as well.
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/mpi.c: Print debugging information on error.
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gcrypt/pk.c, lib/gnutls_pk.c, lib/gnutls_sig.c,
-       lib/nettle/mpi.c, lib/nettle/pk.c, lib/opencdk/pubkey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/verify.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c, lib/pkcs11_privkey.c, lib/x509/privkey.c,
-       lib/x509/x509_int.h: Nettle library can now parse the PGP integers.
-       Except for SHA-224/384/512 nettle seems to be fully working now.
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: use --sec-param to generate privkey.
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgpself.c: reduced log level to a sane one
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: Corrected for new output of
-       --print-certificate-info
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/sha2/sha2: Print information on failure.
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/libgnutls.map, src/certtool.c: Print exp1 and exp2 if they are
-       available.
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pkcs1-padding/pkcs1-pad, tests/pkcs12-decode/pkcs12,
-       tests/pkcs8-decode/pkcs8, tests/userid/userid: Only print output if
-       something fails
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4, lib/pakchois/pakchois.c: Some pakchois fixes.
-
-2010-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: Fixup to compile with nettle
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: Do not bother with MODPATH. We don't use it.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/debug.c, lib/debug.h: Added again _gnutls_dump_mpi() to assist
-       in debugging.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pkcs12_encode.c: Added debugging
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_sig.c: Allow DSA with other than SHA1 algorithms in
-       TLS.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix_asn1_tab.c: removed more stuff.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/x509/common.c: LocalKeyId and XmppAddr were
-       incorporated.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c: No need for those OIDs any
-       more.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dn2.c: Corrected to support new EV_ values.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/crq_key_id.c, tests/cve-2009-1416.c, tests/pkcs12_s2k_pem.c: 
-       avoid calling gcrypt directly.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/crypto.h, lib/libgnutls.map,
-       lib/random.c, lib/random.h, src/crypt.c, src/psk.c,
-       tests/mini-eagain.c: exported gnutls_rnd().
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/common.h, lib/x509/dn.c: The
-       recognition of DN elements is now self contained. It does not need
-       entries in pkix.asn.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/common.c: Added
-       support for EV certificate attributes.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4, lib/nettle/cipher.c: Fixed nettle detection and
-       AES.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dh_primes.c: documentation updates
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-common.h, src/certtool.c, src/prime.c: Generate
-       dh-params also used --sec-param.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/mpi.c: Document that the generator is the generator of
-       the subgroup and not the group.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: Corrected certificate callback.
-
-2010-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/Makefile.am, lib/nettle/Makefile.am,
-       lib/nettle/cipher.c: More AES stuff (still doesn't work).
-
-2010-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/pk.c: Correction in RSA encryption.
-
-2010-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/cipher.c: Fixed issue with AES.
-
-2010-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_algorithms.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, lib/openpgp/output.c, lib/x509/output.c,
-       lib/x509/privkey.c, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa: Added
-       gnutls_sec_param_to_pk_bits() et al. to allow select bit sizes for
-       private keys using a human understandable scale.
-
-2010-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_algorithms.c, lib/includes/gnutls/gnutls.h.in,
-       lib/x509/common.h: Added support for SHA224 and SHA256 in DSA.
-
-2010-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: Always use included pakchois.
-
-2010-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select-pkcs11.c: make sure all lines fit in
-       page.
-
-2010-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: make example more compact by removing
-       error checking.
-
-2010-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-bib.texi, doc/cha-cert-auth.texi: Added bibliographic
-       reference to PKCS #11.
-
-2010-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-cert-auth.texi: Added sketch for PKCS #11 usage.
-
-2010-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/credentials/x509-server-dsa.pem,
-       doc/credentials/x509-server-key-dsa.pem: Added 2048 bit DSA key
-
-2010-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/opencdk/armor.c, lib/opencdk/read-packet.c,
-       lib/opencdk/stream.c, lib/opencdk/write-packet.c: Increased log
-       level of several messages.
-
-2010-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/credentials/x509/key.pem: Corrected coefficient and exp[12]
-       values in key.
-
-2010-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/nettle/pk.c: Added blinding in RSA. Correct broken private
-       keys on import. Nettle uses more values than gcrypt does from RSA
-       decryption and it seemed that some values in our stored private keys
-       were messy (generated by very old gnutls).
-
-2010-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select-pkcs11.c, lib/gnutls_x509.c,
-       lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, lib/pkcs11_write.c, src/cli.c: Simplified
-       internal API. The only question that remains now is how to handle
-       the gnutls_pkcs11_privkey_t. Currently it opens a session and
-       maintains a handle to the object. This will require locks to be
-       added on operations. Alternatively new sessions may be opened for
-       each operation performed. This is guarranteed by PKCS #11 to be
-       thread safe but will of course require to ask for the PIN again.
-
-2010-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pakchois/pakchois.c: Removed debugging print.
-
-2010-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/configure.ac, lib/m4/hooks.m4,
-       lib/pakchois/errors.c, lib/pakchois/pakchois.c,
-       lib/pakchois/pakchois.h, lib/pakchois/pakchois11.h: Added a modified
-       pakchois library (to open arbitrary pkcs11 modules).  Current gnutls
-       works only with this one.
-
-2010-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/cha-gtls-app.texi: Added missing file.
-
-2010-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: Removed finished items.
-
-2010-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11_write.c: Noted that there things to be done.
-
-2010-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/cha-cert-auth.texi: Added documentation on
-       abstract types.
-
-2010-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/pk.c, lib/gnutls_pk.c, lib/gnutls_pk.h,
-       lib/opencdk/pubkey.c, lib/openpgp/privkey.c, lib/x509/privkey.c: 
-       Common code for calculation of RSA exp1 and exp2. Also update the
-       openpgp code to calculate those values.
-
-2010-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dh_common.c, lib/gnutls_dh_primes.c, lib/x509/privkey.c: 
-       More fixes.
-
-2010-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dh_common.c, lib/gcrypt/mpi.c, lib/gnutls_mpi.c: 
-       Corrected nicely hidden bug that caused accesses to uninitialized
-       variables if the gcry_mpi_print() functions were pessimists and
-       returned more size than actually needed for the print.
-
-2010-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gcrypt/pk.c: Added some sanity checks.
-
-2010-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/cha-auth.texi, doc/cha-bib.texi,
-       doc/cha-cert-auth.texi, doc/cha-ciphersuites.texi,
-       doc/cha-copying.texi, doc/cha-functions.texi,
-       doc/cha-internals.texi, doc/cha-intro-tls.texi,
-       doc/cha-library.texi, doc/cha-preface.texi, doc/cha-programs.texi,
-       doc/cha-tls-app.texi, doc/gnutls.texi,
-       lib/includes/gnutls/pkcs11.h, lib/libgnutls.map, lib/pkcs11.c: 
-       Documentation updates. Separated big gnutls.texi to chapter to allow
-       easier maintainance.
-
-2010-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gcrypt/mpi.c, lib/gcrypt/pk.c,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/pkcs11.h,
-       lib/includes/gnutls/x509.h, lib/libgnutls.map, lib/nettle/pk.c,
-       lib/pkcs11.c, lib/pkcs11_int.h, lib/pkcs11_privkey.c,
-       lib/pkcs11_write.c, lib/x509/privkey.c, lib/x509/x509_int.h,
-       src/certtool-common.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa, src/crypt-gaa.c, src/pkcs11.c: 
-       Added support to copy certificates and private keys to tokens.  New
-       functions: gnutls_pkcs11_copy_x509_crt()
-       gnutls_pkcs11_copy_x509_privkey() gnutls_pkcs11_delete_url() Certtool was updated to allow copying certificates and private keys
-       to tokens. Deleting an object has issues (segfault) but it seems to
-       be related with libopensc and its pkcs11 API.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: Added gnutls_pubkey_verify_hash(),
-       gnutls_pubkey_get_verify_algorithm().
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c, src/pkcs11.c: Added gnutls_pubkey_import_pkcs11(),
-       gnutls_pubkey_import_rsa_raw(), gnutls_pubkey_import_dsa_raw(),
-       gnutls_pkcs11_obj_export().
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Tried to document recent changes.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/pkcs11.c, lib/pkcs11_int.h,
-       src/certtool-gaa.c, src/certtool.gaa, src/pkcs11.c: Added
-       gnutls_pubkey_t abstract type to handle public keys. It can
-       currently import/export public keys from existing certificate types
-       as well as from PKCS #11 URL. This allows generating a certificate
-       or certificate request from a given public key (currently one could
-       only generate them from a given private key).  PKCS#11 API augmented to allow reading arbitrary objects instead of
-       just certificates.  Certtool updated to list those objects.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Added gnutls_pkcs11_token_get_flags() to distinguish
-       between hardware and soft tokens.
-
-2010-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: Added support for libnettle backend. This uses
-       gmp for big number operations.  It is not currently completed. It
-       lacks RSA blinding as well as optimizations.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/sign.c: Corrected bug in DSA signature generation.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509_int.h: Added operations to sign CRLs, certificates
-       and requests with an abstract key and thus with a PKCS #11 key as
-       well.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/privkey.h: privkey.h -> abstract.h
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: The gnutls-cli --x509cafile can now be a PKCS
-       #11 URL. It can read gnome-keyring's certificates and use them in
-       the trusted list.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: Corrections in openpgp private key usage.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/x509self.c: Updated self tests and examples to avoid using
-       deprecated functions such as
-       gnutls_certificate_server_set_retrieve_function and the sign
-       callback.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/privkey.h, lib/pkcs11_int.h: Added
-       documentation for most of the new functions.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Documented that it was initially based on neon
-       pkcs11 and got ideas from pkcs11-helper library.
-
-2010-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Corrections to properly handle token removal and
-       insert.
-
-2010-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gnutls_x509.c, lib/includes/gnutls/pkcs11.h,
-       lib/includes/gnutls/privkey.h, lib/pkcs11.c, lib/x509/sign.c: Added
-       gnutls_pkcs11_privkey_t and gnutls_privkey_t types. Those are an
-       abstract private key type that can be used to sign/encrypt any
-       private key of pkcs11,x509 or openpgp types. Added support for
-       PKCS11 in gnutls-cli/gnutls-serv.
-
-2010-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c, src/pkcs11.c: Added several helper functions, to
-       allow printing of tokens.
-
-2010-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c, src/certtool-gaa.c, src/certtool.c,
-       src/certtool.gaa, src/pkcs11.c: Added ability to export certificates
-       from PKCS #11 tokens.  Added ability to list trusted certificates,
-       or only certificates with a corresponding private key or just all.
-
-2010-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/configure.ac, lib/includes/gnutls/pkcs11.h,
-       lib/pkcs11.c, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.gaa, src/pkcs11.c: Added initial PKCS #11 support.
-       Certtool can now print lists of certificates available in system.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_pubkey.c, lib/includes/gnutls/abstract.h,
-       lib/libgnutls.map, lib/x509/common.h, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_int.h: Added
-       gnutls_pubkey_verify_hash(), gnutls_pubkey_get_verify_algorithm().
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.ac, lib/gnutls_pubkey.c,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/pkcs11.h,
-       lib/libgnutls.map, lib/pkcs11.c, lib/pkcs11_int.h, lib/x509/x509.c,
-       src/pkcs11.c: Added gnutls_pubkey_import_pkcs11(),
-       gnutls_pubkey_import_rsa_raw(), gnutls_pubkey_import_dsa_raw(),
-       gnutls_pkcs11_obj_export().
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: Ignore files that should be ignored.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool-gaa.c, src/certtool.gaa: Tried to document
-       recent changes.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gnutls_pubkey.c, lib/gnutls_x509.c,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/pkcs11.h,
-       lib/libgnutls.map, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/mpi.c, lib/x509/x509.c, lib/x509/x509_int.h,
-       src/certtool-common.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa, src/pkcs11.c: Added
-       gnutls_pubkey_t abstract type to handle public keys. It can
-       currently import/export public keys from existing certificate types
-       as well as from PKCS #11 URL. This allows generating a certificate
-       or certificate request from a given public key (currently one could
-       only generate them from a given private key).  PKCS#11 API augmented to allow reading arbitrary objects instead of
-       just certificates.  Certtool updated to list those objects.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c: Added
-       gnutls_pkcs11_token_get_flags() to distinguish between hardware and
-       soft tokens.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/libgnutlsxx.map, lib/m4/hooks.m4: Export all
-       symbols from C++ library. This library doesn't contain any internal
-       symbols anyway and there is no reason to mess with the C++ ABI that
-       hasn't got the problems of C.
-
-2010-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv1.c,
-       lib/Makefile.am, lib/auth_srp.c, lib/cipher-libgcrypt.c,
-       lib/configure.ac, lib/gcrypt/Makefile.am, lib/gcrypt/cipher.c,
-       lib/gcrypt/mac.c, lib/gcrypt/mpi.c, lib/gcrypt/pk.c,
-       lib/gcrypt/rnd.c, lib/gnutls_global.c, lib/gnutls_mpi.c,
-       lib/gnutls_srp.c, lib/m4/hooks.m4, lib/mac-libgcrypt.c,
-       lib/mpi-libgcrypt.c, lib/nettle/Makefile.am, lib/nettle/cipher.c,
-       lib/nettle/mac.c, lib/nettle/mpi.c, lib/nettle/pk.c,
-       lib/nettle/rnd.c, lib/pk-libgcrypt.c, lib/rnd-libgcrypt.c,
-       src/certtool.c, src/cli.c, src/serv.c, tests/chainverify.c: Added
-       support for libnettle backend. This uses gmp for big number
-       operations.  It is not currently completed. It lacks RSA blinding as
-       well as optimizations.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/gnutls-cli.1, src/cli-gaa.c, src/cli.gaa,
-       src/serv-gaa.c, src/serv.gaa: Documented that the --file options in
-       gnutls-cli and gnutls-serv can accept a PKCS #11 URL.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/sign.c: Corrected bug in DSA signature generation.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/includes/gnutls/abstract.h,
-       lib/libgnutls.map, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/mpi.c, lib/x509/sign.c, lib/x509/x509_int.h,
-       lib/x509/x509_write.c: Added operations to sign CRLs, certificates
-       and requests with an abstract key and thus with a PKCS #11 key as
-       well.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_cert.h, lib/gnutls_privkey.c,
-       lib/gnutls_sig.h, lib/gnutls_x509.h,
-       lib/includes/gnutls/abstract.h, lib/includes/gnutls/privkey.h,
-       lib/openpgp/gnutls_openpgp.h: privkey.h -> abstract.h
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/configure.ac, lib/gnutls_x509.c, src/cli.c: 
-       The gnutls-cli --x509cafile can now be a PKCS #11 URL. It can read
-       gnome-keyring's certificates and use them in the trusted list.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Documented that gnutls_global_init calls
-       gnutls_pkcs11_init.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: Only send termination request to avoid stalling on
-       servers that do not reply.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_state.c, lib/gnutls_state.h: 
-       Corrected issue on the %SSL3_RECORD_VERSION priority string. It now
-       works even when resuming a session.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am, doc/examples/ex-cert-select-pkcs11.c,
-       doc/gnutls.texi: Added initial example.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.h, lib/gnutls_x509.c, lib/openpgp/gnutls_openpgp.c: 
-       Corrections in openpgp private key usage.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select.c, tests/Makefile.am,
-       tests/pkcs12_s2k.c, tests/x509dn.c, tests/x509signself.c: Updated
-       self tests and examples to avoid using deprecated functions such as
-       gnutls_certificate_server_set_retrieve_function and the sign
-       callback.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutlsxx.cpp, lib/includes/gnutls/gnutlsxx.h, src/tests.c: Use
-       the new callback function.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/includes/gnutls/pkcs11.h,
-       lib/includes/gnutls/privkey.h, lib/libgnutls.map, lib/pkcs11.c,
-       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/x509/privkey.c: Added
-       documentation for most of the new functions.
-
-2010-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkcs11.c: Documented that it was initially based on neon
-       pkcs11 and got ideas from pkcs11-helper library.
-
-2010-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/libgnutls.map, lib/pkcs11.c,
-       lib/pkcs11_int.h, lib/pkcs11_privkey.c, src/common.c: Corrections to
-       properly handle token removal and insert.
-
-2010-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in: 
-       Deprecated the sign callback.
-
-2010-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am, lib/Makefile.am, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp_rsa.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_global.c, lib/gnutls_int.h,
-       lib/gnutls_privkey.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs11.h, lib/includes/gnutls/privkey.h,
-       lib/includes/gnutls/x509.h, lib/libgnutls.map,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/gnutls_openpgp.h,
-       lib/openpgp/openpgp_int.h, lib/pkcs11.c, lib/pkcs11_int.h,
-       lib/pkcs11_privkey.c, lib/x509/privkey.c, lib/x509/sign.c,
-       lib/x509/sign.h, lib/x509/x509_int.h, src/cli.c, src/common.c,
-       src/common.h, src/pkcs11.c, src/serv.c: Added
-       gnutls_pkcs11_privkey_t and gnutls_privkey_t types. Those are an
-       abstract private key type that can be used to sign/encrypt any
-       private key of pkcs11,x509 or openpgp types. Added support for
-       PKCS11 in gnutls-cli/gnutls-serv.
-
-2010-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: ignore unrelated to gnutls files.
-
-2010-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs11.h, lib/libgnutls.map, lib/pkcs11.c,
-       src/certtool-common.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa, src/pkcs11.c: Added several helper
-       functions, to allow printing of tokens.
-
-2010-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_str.c,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/pkcs11.h,
-       lib/pkcs11.c, src/certtool-common.h, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa, src/pkcs11.c: 
-       Added ability to export certificates from PKCS #11 tokens.  Added
-       ability to list trusted certificates, or only certificates with a
-       corresponding private key or just all.
-
-2010-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/auth_srp.c, lib/configure.ac,
-       lib/gnutls.pc.in, lib/gnutls_constate.c, lib/gnutls_errors.c,
-       lib/gnutls_handshake.c, lib/gnutls_kx.c, lib/gnutls_psk.c,
-       lib/gnutls_str.c, lib/gnutls_str.h, lib/includes/Makefile.am,
-       lib/includes/gnutls/pkcs11.h, lib/libgnutls.map,
-       lib/openpgp/gnutls_openpgp.c, lib/pkcs11.c, lib/x509/common.c,
-       lib/x509/dn.c, src/Makefile.am, src/certtool-common.h,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa, src/pkcs11.c: Added initial PKCS #11 support.
-       Certtool can now print lists of certificates available in system.
-
-2010-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: Optimized the check_if_same().
-
-2010-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/x509/common.c, lib/x509/common.h: 
-       Added a forgoten by god OID for RSA. Warn using the actual OID on
-       unknown public key algorithms.
-
-2009-12-09  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/ext_session_ticket.c: Adapt session ticket support to mbuffer
-       API.
-
-2009-08-16  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_kx.c,
-       lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h: Use mbuffers for
-       handshake synthesis.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c: Make _gnutls_handshake_io_send_int accept a
-       mbuffer_st.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_state.c: 
-       Simplify handshake send buffer logic.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: Fix interrupted write braino.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_mbuffers.c: Avoid pointer warning.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_mbuffers.c,
-       lib/gnutls_mbuffers.h: Remove now useless
-       _gnutls_mbuffer_enqueue{,copy} functions.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_mbuffers.c, lib/gnutls_record.c: Allocate data buffer
-       with mbuffer_st structure as suggested by Nikos.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h: Prepare for mbuffer
-       allocation by the caller.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: GNUify some missed GNUification.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: Harmonize read and write function names.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: Now that LEVEL and LEVEL_EQ are fixed, use
-       less lines.
-
-2009-08-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_errors.h: Make LEVEL and LEVEL_EQ macros safer.  Once again, I got bit by this pretty hard.
-
-2009-08-09  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_record.c: Use a datum for ciphered data in
-       _gnutls_send_int.
-
-2009-08-09  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.h: Remove the prototype for the non-existant
-       function _gnutls_io_write_buffered2.
-
-2009-08-09  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_int.h, lib/gnutls_record.c: Cleanup of the remaining
-       internals.record_send_buffer mess.
-
-2009-08-09  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: Remove yet another !@#$% instance of
-       redundant hexadecimal dumping.
-
-2009-08-09  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_record.c: 
-       Modify slightly the contract of _gnutls_io_write_buffered as
-       suggested by Nikos Mavrogiannopoulos.
-
-2009-08-09  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_mbuffers.c,
-       lib/gnutls_mbuffers.h: Pass datums to mbuffers by address instead of
-       by value.
-
-2009-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_record.c: Corrected case where
-       handshake data were received during a session. It now stores them
-       for future use by a gnutls_handshake(). Reported by Peter
-       Hendrickson <pdh@wiredyne.com>.
-
-2009-08-06  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: Simplify _gnutls_io_write_buffered and
-       _gnutls_io_write_flush with mbuffers.
-
-2009-08-06  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_int.h, lib/gnutls_state.c: Change type of
-       internals.record_send_buffer to a mbuffer.
-
-2009-08-06  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: Extract a simple_write function from
-       _gnutls_io_write_buffered.
-
-2009-08-06  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_buffers.c: Add dump_bytes function.
-
-2009-08-06  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/Makefile.am, lib/gnutls_int.h, lib/gnutls_mbuffers.c,
-       lib/gnutls_mbuffers.h: Add gnutls_mbuffers.{c,h} with some basic
-       mbuffer operations.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_algorithms.c: Do not rely on version ordering; use
-       switch..case instead.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/auth_cert.c: Remove hardcoded version checks in auth_cert.c.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_state.c: Remove hardcoded version check in
-       gnutls_state.c.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_cipher.c: Remove hardcoded version checks in
-       gnutls_cipher.c.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_sig.c: Remove hardcoded version checks in gnutls_sig.c.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_handshake.c: Remove hardcoded version checks in
-       gnutls_handshake.c.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_algorithms.c: Add version check function for selectable
-       signature/hash certificate algorithms.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_algorithms.c: Add version check functions for
-       non-minimal padding.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h: Add version
-       check function for explicit IV.
-
-2009-08-01  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/gnutls_algorithms.h: Add version check functions for
-       selectable PRF and extension handling.
-
-2010-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/announce.txt, doc/gnutls.texi, doc/manpages/gnutls-cli.1,
-       doc/manpages/gnutls-serv.1, lib/ext_safe_renegotiation.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/gnutls_state.c, tests/safe-renegotiation/srn1.c,
-       tests/safe-renegotiation/srn5.c, tests/safe-renegotiation/testsrn: 
-       Splitted safe renegotiation capabilities to %SAFE_RENEGOTIATION: will enable safe renegotiation. This is the
-       most secure and recommended option for clients. However this will
-       prevent from connecting to legacy servers.  %PARTIAL_RENEGOTIATION: Prevents renegotiation with clients and
-       servers not supporting the safe renegotiation extension. (this is
-       the default) %UNSAFE_RENEGOTIATION: Permits (re-)handshakes even unsafe ones.
-
-2010-05-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Minor fix.
-
-2010-05-31  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, maint.mk: Update gnulib files.
-
-2010-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: Documented the defaults.
-
-2010-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: Added INITIAL_SAFE_RENEGOTIATION and other small
-       updates.
-
-2010-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Update.
-
-2010-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/README: Add.
-
-2010-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * .x-sc_prohibit_strings_without_use, build-aux/c++defs.h,
-       build-aux/gendocs.sh, build-aux/gnupload, build-aux/vc-list-files,
-       configure.ac, doc/gendocs_template, gl/Makefile.am, gl/error.c,
-       gl/m4/asm-underscore.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/netdb_h.m4,
-       gl/m4/stdio_h.m4, gl/m4/unistd_h.m4, gl/m4/valgrind-tests.m4,
-       gl/netdb.in.h, gl/stdio-write.c, gl/stdio.in.h,
-       gl/tests/Makefile.am, gl/tests/init.sh, gl/tests/test-lseek.sh,
-       gl/tests/test-vc-list-files-cvs.sh,
-       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
-       gl/tests/test-verify.sh, gl/tests/verify.h, gl/unistd.in.h,
-       gl/vasnprintf.c, gl/wchar.in.h, gtk-doc.make,
-       lib/build-aux/c++defs.h, lib/gl/Makefile.am,
-       lib/gl/m4/asm-underscore.m4, lib/gl/m4/fcntl-o.m4,
-       lib/gl/m4/gettext.m4, lib/gl/m4/gnulib-common.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv.m4, lib/gl/m4/intl.m4,
-       lib/gl/m4/netdb_h.m4, lib/gl/m4/po.m4, lib/gl/m4/stdio_h.m4,
-       lib/gl/m4/unistd_h.m4, lib/gl/netdb.in.h, lib/gl/stdio-write.c,
-       lib/gl/stdio.in.h, lib/gl/tests/Makefile.am, lib/gl/tests/init.sh,
-       lib/gl/tests/test-vasprintf.c, lib/gl/tests/test-verify.c,
-       lib/gl/tests/test-verify.sh, lib/gl/tests/verify.h,
-       lib/gl/unistd.in.h, lib/gl/vasnprintf.c, lib/gl/wchar.in.h,
-       libextra/gl/m4/gnulib-common.m4, m4/valgrind.m4, maint.mk: Update
-       gnulib files, use valgrind-tests module, fix syntax-check problems.
-
-2010-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announce.txt: Doc fix.
-
-2010-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.h, lib/x509/privkey.c, lib/x509/sign.c,
-       lib/x509/verify.c: Use correct hashing algorithms for DSA with q
-       over 160 bits.
-
-2010-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: Better checks in loops.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl.c: Doc fix.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, gtk-doc.make, m4/gtk-doc.m4: Support
-       GTK-DOC PDF file.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Also build PDF manual.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix node/section usage.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/srn5.c: Fix self test.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Readd lost fix from Nikos.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_safe_renegotiation.c: Readd lost fix from Nikos.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c, libextra/includes/gnutls/openssl.h,
-       libextra/openssl_compat.c: Doc fixes.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Doc fix.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, NEWS, README, cfg.mk, configure.ac, doc/Makefile.am,
-       doc/credentials/Makefile.am, doc/cyclo/Makefile.am, doc/errcodes.c,
-       doc/examples/Makefile.am, doc/examples/ex-client-srp.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/gnutls.texi, doc/manpages/Makefile.am,
-       doc/printlist.c, guile/Makefile.am, guile/modules/Makefile.am,
-       guile/modules/gnutls.scm, guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/priorities.scm,
-       guile/modules/gnutls/build/smobs.scm,
-       guile/modules/gnutls/build/utils.scm,
-       guile/modules/gnutls/extra.scm, guile/src/Makefile.am,
-       guile/src/core.c, guile/src/errors.c, guile/src/errors.h,
-       guile/src/extra.c, guile/src/make-enum-header.scm,
-       guile/src/make-enum-map.scm, guile/src/make-session-priorities.scm,
-       guile/src/make-smob-header.scm, guile/src/make-smob-types.scm,
-       guile/src/utils.c, guile/src/utils.h, guile/tests/Makefile.am,
-       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
-       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/openpgp-keys.scm, guile/tests/pkcs-import-export.scm,
-       guile/tests/session-record-port.scm, guile/tests/srp-base64.scm,
-       guile/tests/x509-auth.scm, guile/tests/x509-certificates.scm,
-       lib/Makefile.am, lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dh_common.c, lib/auth_dh_common.h,
-       lib/auth_dhe.c, lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_psk.h,
-       lib/auth_psk_passwd.c, lib/auth_psk_passwd.h, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_srp_passwd.h, lib/auth_srp_rsa.c,
-       lib/auth_srp_sb64.c, lib/cipher-libgcrypt.c, lib/configure.ac,
-       lib/crypto-api.c, lib/crypto.c, lib/crypto.h, lib/cryptodev.c,
-       lib/debug.c, lib/debug.h, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/ext_max_record.c, lib/ext_max_record.h, lib/ext_oprfi.c,
-       lib/ext_oprfi.h, lib/ext_safe_renegotiation.c,
-       lib/ext_safe_renegotiation.h, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/ext_session_ticket.c,
-       lib/ext_session_ticket.h, lib/ext_signature.c, lib/ext_signature.h,
-       lib/ext_srp.c, lib/ext_srp.h, lib/gnutls_alert.c,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth.h,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_constate.c, lib/gnutls_constate.h, lib/gnutls_datum.c,
-       lib/gnutls_datum.h, lib/gnutls_db.c, lib/gnutls_db.h,
-       lib/gnutls_dh.c, lib/gnutls_dh.h, lib/gnutls_dh_primes.c,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_helper.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_mem.c, lib/gnutls_mem.h, lib/gnutls_mpi.c,
-       lib/gnutls_mpi.h, lib/gnutls_num.c, lib/gnutls_num.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_priority.c,
-       lib/gnutls_psk.c, lib/gnutls_psk_netconf.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_srp.c,
-       lib/gnutls_srp.h, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/gnutls_str.c, lib/gnutls_str.h, lib/gnutls_supplemental.c,
-       lib/gnutls_supplemental.h, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/gnutls_v2_compat.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       lib/includes/Makefile.am, lib/includes/gnutls/crypto.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/libgnutlsxx.map, lib/m4/hooks.m4,
-       lib/mac-libgcrypt.c, lib/minitasn1/Makefile.am,
-       lib/mpi-libgcrypt.c, lib/opencdk/Makefile.am,
-       lib/openpgp/Makefile.am, lib/openpgp/compat.c,
-       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/pgpverify.c,
-       lib/openpgp/privkey.c, lib/pk-libgcrypt.c, lib/random.c,
-       lib/random.h, lib/rnd-libgcrypt.c, lib/x509/Makefile.am,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c,
-       lib/x509/pkcs7.c, lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_int.h, lib/x509/x509_write.c,
-       lib/x509_b64.c, lib/x509_b64.h, libextra/Makefile.am,
-       libextra/configure.ac, libextra/ext_inner_application.c,
-       libextra/ext_inner_application.h, libextra/fipsmd5.c,
-       libextra/gl/Makefile.am, libextra/gnutls_extra.c,
-       libextra/gnutls_ia.c, libextra/gnutls_openssl.c,
-       libextra/includes/Makefile.am, libextra/includes/gnutls/extra.h,
-       libextra/includes/gnutls/openssl.h, libextra/libgnutls-extra.map,
-       libextra/m4/hooks.m4, libextra/openssl_compat.c,
-       libextra/openssl_compat.h, src/Makefile.am, src/benchmark.c,
-       src/certtool-cfg.c, src/certtool.c, src/cli.c, src/common.c,
-       src/crypt.c, src/list.h, src/prime.c, src/psk.c, src/serv.c,
-       src/tests.c, src/tls_test.c, tests/Makefile.am, tests/anonself.c,
-       tests/certder.c, tests/certificate_set_x509_crl.c,
-       tests/chainverify.c, tests/crq_apis.c, tests/crq_key_id.c,
-       tests/crypto_rng.c, tests/cve-2008-4989.c, tests/cve-2009-1415.c,
-       tests/cve-2009-1416.c, tests/dhepskself.c, tests/dn.c, tests/dn2.c,
-       tests/finished.c, tests/gc.c, tests/hostname-check.c,
-       tests/init_roundtrip.c, tests/key-id/Makefile.am,
-       tests/key-id/key-id, tests/mini-eagain.c,
-       tests/mini-x509-rehandshake.c, tests/mini-x509.c, tests/mini.c,
-       tests/moredn.c, tests/mpi.c, tests/netconf-psk.c,
-       tests/nist-pkits/pkits, tests/nist-pkits/pkits_crl,
-       tests/nist-pkits/pkits_crt, tests/nist-pkits/pkits_pkcs12,
-       tests/nist-pkits/pkits_smime, tests/nul-in-x509-names.c,
-       tests/openpgp-certs/Makefile.am, tests/openpgp-certs/testcerts,
-       tests/openpgp-certs/testselfsigs, tests/openpgp-keyring.c,
-       tests/openpgpself.c, tests/openssl.c, tests/oprfi.c,
-       tests/parse_ca.c, tests/pathlen/Makefile.am, tests/pathlen/pathlen,
-       tests/pgps2kgnu.c, tests/pkcs1-padding/Makefile.am,
-       tests/pkcs1-padding/pkcs1-pad, tests/pkcs12-decode/Makefile.am,
-       tests/pkcs12-decode/pkcs12, tests/pkcs12_encode.c,
-       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c,
-       tests/pkcs8-decode/Makefile.am, tests/pkcs8-decode/pkcs8,
-       tests/pskself.c, tests/resume.c, tests/rfc2253-escape-test,
-       tests/rsa-md5-collision/Makefile.am,
-       tests/rsa-md5-collision/rsa-md5-collision,
-       tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/srn0.c, tests/safe-renegotiation/srn1.c,
-       tests/safe-renegotiation/srn2.c, tests/safe-renegotiation/srn3.c,
-       tests/safe-renegotiation/srn4.c, tests/safe-renegotiation/srn5.c,
-       tests/safe-renegotiation/testsrn, tests/set_pkcs12_cred.c,
-       tests/setcredcrash.c, tests/sha2/Makefile.am, tests/sha2/sha2,
-       tests/simple.c, tests/tlsia.c, tests/userid/Makefile.am,
-       tests/userid/userid, tests/utils.c, tests/utils.h,
-       tests/x509_altname.c, tests/x509dn.c, tests/x509paths/chain,
-       tests/x509self.c, tests/x509sign-verify.c, tests/x509signself.c: 
-       Change GNUTLS into GnuTLS.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS, ChangeLog.1, NEWS, README, README-alpha, THANKS,
-       doc/gnutls.texi, doc/manpages/gnutls-cli-debug.1,
-       doc/manpages/gnutls-cli.1, doc/manpages/gnutls-serv.1,
-       doc/manpages/srptool.1, doc/reference/gnutls-docs.sgml,
-       lib/ext_safe_renegotiation.c, lib/gnutls_handshake.c,
-       src/cli-gaa.c, src/cli.gaa, src/serv-gaa.c, src/serv.gaa,
-       src/tls_test-gaa.c, src/tls_test.gaa: Change GNU TLS into GnuTLS.
-
-2010-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.c, lib/gnutls_handshake.c: Ignore
-       parsing of ciphersuite or extensions when safe renegotiation is
-       disabled.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/srn5.c: Add test of self renegotiation
-       APIs.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/README, tests/safe-renegotiation/srn4.c: 
-       Add more rengotiation self tests.
-
-2010-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/README, tests/safe-renegotiation/srn0.c: 
-       Add more safe renegotiation self test.
-
-2010-05-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/announce.txt, doc/gnutls.texi,
-       doc/manpages/Makefile.am, lib/ext_safe_renegotiation.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
-       tests/safe-renegotiation/srn2.c: Remove
-       gnutls_safe_negotiation_set_initial and
-       gnutls_safe_renegotiation_set.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: Documented behavioral change.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_priority.c: Because we want to
-       differentiate the behavior of server and client with regards to safe
-       renegotiation. If a server didn't have either SAFE_RENEGOTIATION or
-       UNSAFE_RENEGOTIATION set the safe renegotiation will be the default.
-       This (as well as the safe_renegotiation_set flag) has to be removed
-       once safe renegotiation is default in both server and client side.
-
-2010-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_state.c: Emulate old gnutls behavior regarding safe
-       renegotiation if the priority_* functions are not called.
-
-2010-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/x509.h: Corrected typo. Reported by Clint
-       Adams.
-
-2010-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/srn1.c, tests/safe-renegotiation/srn3.c: 
-       tests: Add srn3 to test inverse of what srn1 is testing.
-
-2010-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/srn2.c: tests: Add another safe
-       renegotiation self tests.
-
-2010-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/srn1.c: Also test
-       gnutls_safe_renegotiation_status API.
-
-2010-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/srn1.c: tests: Add first self-test of safe
-       renegotiation extension.
-
-2010-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/mini-x509-rehandshake.c: tests: Add small
-       X.509 rehandshake test.
-
-2010-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/mini-x509.c: Protect against infloops.
-
-2010-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/mini-x509.c: tests: Add mini-x509
-       self-test.
-
-2010-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Improve text, based on suggestions from Tomas
-       Hoger <thoger@redhat.com>.
-
-2010-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Fix typo.
-
-2010-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Improve renegotiation debug messages.
-
-2010-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announce.txt: Add.
-
-2010-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Add.
-
-2010-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add section on safe renegotiation.
-
-2010-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: Remove debug code.
-
-2010-04-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Mention shared library map file and GTK-DOC
-       guidelines.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announce.txt: Update URL.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Update my OpenPGP key.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announce.txt: Update my key.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announcement-template.txt: Remove.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/ANNOUNCE, doc/announce.txt: Prepare 2.10.0 release notes.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add 2.8.x NEWS entries.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/configure.ac: Also bump libgnutls-extra version.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4: Bump
-       versions.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh: Chmod +x.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2010-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.10.
-
-2010-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/minitasn1/Makefile.am, lib/minitasn1/coding.c,
-       lib/minitasn1/decoding.c, lib/minitasn1/element.h,
-       lib/minitasn1/gstr.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/parser_aux.c, lib/minitasn1/parser_aux.h,
-       lib/minitasn1/structure.h, lib/minitasn1/version.c: Upgrade to
-       libtasn1 version 2.6.
-
-2010-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/ioctl.m4,
-       gl/m4/netdb_h.m4, gl/stdbool.in.h, gl/tests/test-lseek.sh,
-       gl/tests/test-select-in.sh, gl/tests/test-stdbool.c,
-       gl/tests/test-stdint.c, lib/gl/Makefile.am, lib/gl/m4/netdb_h.m4,
-       lib/gl/m4/visibility.m4, lib/gl/stdbool.in.h,
-       lib/gl/tests/test-stdbool.c, lib/gl/tests/test-stdint.c,
-       lib/gl/tests/test-vasprintf.c, maint.mk: Update gnulib files.
-
-2010-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Structure fork check together.
-
-2010-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Fix compiler warning.
-
-2010-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/top/maint.mk.diff, libextra/gl/hmac-md5.c,
-       libextra/gl/md5.c, maint.mk: Update gnulib files.
-
-2010-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/crypto-api.c, lib/gnutls_priority.c: Indent code.
-
-2010-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c, lib/includes/gnutls/crypto.h: Use size_t instead
-       of int for input variables that represent sizes.
-
-2010-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: Free the priority structure on error.
-       Reported by Paul Aurich.
-
-2010-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: The string is colon separated. Reported by
-       Paul Aurich.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Fix indent bug.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, doc/examples/examples.h, guile/src/errors.h,
-       guile/src/utils.h, lib/auth_cert.h, lib/auth_dh_common.h,
-       lib/crypto.h, lib/ext_oprfi.h, lib/ext_safe_renegotiation.h,
-       lib/ext_session_ticket.h, lib/ext_signature.h,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher_int.h,
-       lib/gnutls_compress.h, lib/gnutls_cryptodev.h, lib/gnutls_errors.h,
-       lib/gnutls_extensions.h, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_mpi.h, lib/gnutls_pk.h, lib/gnutls_sig.h,
-       lib/gnutls_srp.h, lib/gnutls_state.h, lib/gnutls_str.h,
-       lib/gnutls_supplemental.h, lib/includes/gnutls/crypto.h,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
-       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/keydb.h,
-       lib/opencdk/main.h, lib/opencdk/opencdk.h, lib/opencdk/packet.h,
-       lib/opencdk/stream.h, lib/opencdk/types.h,
-       lib/openpgp/gnutls_openpgp.h, lib/openpgp/openpgp_int.h,
-       lib/x509/pbkdf2-sha1.h, lib/x509/x509_int.h,
-       libextra/includes/gnutls/extra.h,
-       libextra/includes/gnutls/openssl.h, src/certtool-cfg.h,
-       src/certtool-common.h, src/common.h: More indentation.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-tlsia.c, doc/examples/ex-verify.c,
-       doc/examples/ex-x509-info.c, lib/auth_cert.c, lib/auth_rsa.c,
-       lib/ext_cert_type.c, lib/ext_max_record.c, lib/ext_oprfi.c,
-       lib/ext_safe_renegotiation.c, lib/ext_server_name.c,
-       lib/ext_session_ticket.c, lib/ext_signature.c,
-       lib/gnutls_algorithms.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_constate.c, lib/gnutls_extensions.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_kx.c,
-       lib/gnutls_priority.c, lib/gnutls_record.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
-       lib/minitasn1/decoding.c, lib/opencdk/read-packet.c,
-       lib/opencdk/sig-check.c, lib/x509/pkcs12.c, lib/x509/verify.c,
-       libextra/gl/hmac-md5.c, libextra/gl/md5.c, src/benchmark.c,
-       src/certtool.c, src/cli.c, src/serv.c, src/tests.c, src/tls_test.c,
-       tests/anonself.c, tests/certder.c, tests/chainverify.c,
-       tests/crq_apis.c, tests/crq_key_id.c, tests/cve-2008-4989.c,
-       tests/dhepskself.c, tests/dn.c, tests/dn2.c, tests/finished.c,
-       tests/gc.c, tests/hostname-check.c, tests/init_roundtrip.c,
-       tests/mini-eagain.c, tests/mini.c, tests/netconf-psk.c,
-       tests/nul-in-x509-names.c, tests/openpgp-keyring.c,
-       tests/openpgpself.c, tests/parse_ca.c, tests/pkcs12_encode.c,
-       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c, tests/pskself.c,
-       tests/resume.c, tests/set_pkcs12_cred.c, tests/simple.c,
-       tests/tlsia.c, tests/utils.c, tests/x509_altname.c, tests/x509dn.c,
-       tests/x509self.c, tests/x509sign-verify.c, tests/x509signself.c: 
-       Indent code.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/crypto-api.c, lib/ext_safe_renegotiation.c,
-       lib/gnutls_algorithms.c, lib/gnutls_cert.c, lib/libgnutls.map,
-       lib/x509/x509.c: Export new ABIs.  Doc fixes for new APIs.
-
-2010-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/Makefile.am: Disable self-test
-       temporarily until we make it work cross-platform.
-
-2010-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/ext_safe_renegotiation.c, lib/gnutls_algorithms.c,
-       lib/includes/gnutls/gnutls.h.in: Doc fixes.
-
-2010-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, src/certtool-gaa.c: Generated.
-
-2010-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore c++defs.h.
-
-2010-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * .x-sc_prohibit_empty_lines_at_EOF, GNUmakefile,
-       build-aux/c++defs.h, build-aux/warn-on-use.h, doc/certtool.cfg,
-       doc/credentials/gnutls-http-serv, doc/credentials/params.pem,
-       doc/credentials/x509/Makefile.am, doc/credentials/x509/cert.pem,
-       doc/credentials/x509/clicert-dsa.pem, gl/Makefile.am, gl/fseeko.c,
-       gl/m4/fseeko.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/lib-link.m4, gl/m4/memchr.m4, gl/m4/stdio_h.m4,
-       gl/m4/stdlib_h.m4, gl/m4/string_h.m4, gl/m4/time_h.m4,
-       gl/m4/unistd_h.m4, gl/m4/vasnprintf.m4, gl/stdio-impl.h,
-       gl/stdio.in.h, gl/stdlib.in.h, gl/string.in.h, gl/sys_socket.in.h,
-       gl/sys_stat.in.h, gl/sys_time.in.h, gl/tests/Makefile.am,
-       gl/tests/ioctl.c, gl/tests/sys_ioctl.in.h,
-       gl/tests/test-vasnprintf.c, gl/time.in.h, gl/unistd.in.h,
-       gl/vasnprintf.c, gl/wchar.in.h, guile/modules/gnutls/extra.scm,
-       guile/tests/x509-auth.scm, guile/tests/x509-certificate.pem,
-       lib/build-aux/c++defs.h, lib/build-aux/warn-on-use.h,
-       lib/ext_cert_type.h, lib/gl/Makefile.am, lib/gl/fseeko.c,
-       lib/gl/m4/fseeko.m4, lib/gl/m4/gnulib-common.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/lib-link.m4,
-       lib/gl/m4/memchr.m4, lib/gl/m4/stdio_h.m4, lib/gl/m4/stdlib_h.m4,
-       lib/gl/m4/string_h.m4, lib/gl/m4/threadlib.m4, lib/gl/m4/time_h.m4,
-       lib/gl/m4/time_r.m4, lib/gl/m4/unistd_h.m4,
-       lib/gl/m4/vasnprintf.m4, lib/gl/stdio-impl.h, lib/gl/stdio.in.h,
-       lib/gl/stdlib.in.h, lib/gl/string.in.h, lib/gl/sys_socket.in.h,
-       lib/gl/sys_stat.in.h, lib/gl/tests/Makefile.am,
-       lib/gl/tests/test-vasnprintf.c, lib/gl/time.in.h, lib/gl/time_r.c,
-       lib/gl/unistd.in.h, lib/gl/vasnprintf.c, lib/gl/wchar.in.h,
-       lib/minitasn1/Makefile.am, lib/minitasn1/README,
-       lib/opencdk/keydb.h, lib/opencdk/packet.h,
-       libextra/gl/m4/gnulib-common.m4, libextra/gl/m4/gnulib-comp.m4,
-       libextra/gl/m4/lib-link.m4, maint.mk, src/certtool.gaa,
-       src/cfg/Makefile.am, src/crypt.gaa, src/tls_test.gaa,
-       tests/key-id/ca-gnutls-keyid.pem, tests/key-id/ca-no-keyid.pem,
-       tests/key-id/ca-weird-keyid.pem,
-       tests/pkcs1-padding/pkcs1-pad-broken.pem,
-       tests/pkcs1-padding/pkcs1-pad-broken2.pem,
-       tests/pkcs1-padding/pkcs1-pad-broken3.pem,
-       tests/pkcs1-padding/pkcs1-pad-ok.pem,
-       tests/pkcs1-padding/pkcs1-pad-ok2.pem,
-       tests/safe-renegotiation/Makefile.am, tests/test25.pem: Update
-       gnulib files, fix syntax-check warnings.
-
-2010-03-31  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore, gl/m4/wchar_h.m4, lib/gl/m4/wchar_h.m4: Add forgotten
-       gnulib files, and fix .gitignore.
-
-2010-03-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-03-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/LINGUAS, lib/po/it.po.in, lib/po/nl.po.in: Sync with TP.
-
-2010-03-31  Simon Josefsson <simon@josefsson.org>
-
-       * .x-sc_program_name, .x-sc_the_the, cfg.mk,
-       lib/ext_safe_renegotiation.c, lib/gnutls_handshake.c,
-       lib/m4/hooks.m4, lib/opencdk/sig-check.c, src/certtool.c,
-       src/serv.c, tests/dn.c, tests/mini.c: Update gnulib files.  Fix
-       syntax-check warnings.
-
-2010-03-31  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/c++defs.h, build-aux/vc-list-files,
-       build-aux/warn-on-use.h, gl/Makefile.am, gl/accept.c,
-       gl/arpa_inet.in.h, gl/bind.c, gl/connect.c, gl/getaddrinfo.c,
-       gl/gettext.h, gl/gettimeofday.c, gl/m4/arpa_inet_h.m4,
-       gl/m4/getaddrinfo.m4, gl/m4/gettimeofday.m4,
-       gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4,
-       gl/m4/inet_pton.m4, gl/m4/lseek.m4, gl/m4/netdb_h.m4,
-       gl/m4/stddef_h.m4, gl/m4/stdio_h.m4, gl/m4/stdlib_h.m4,
-       gl/m4/string_h.m4, gl/m4/sys_ioctl_h.m4, gl/m4/sys_select_h.m4,
-       gl/m4/sys_socket_h.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4,
-       gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/m4/warn-on-use.m4,
-       gl/m4/wchar.m4, gl/netdb.in.h, gl/netinet_in.in.h, gl/recv.c,
-       gl/select.c, gl/send.c, gl/stdint.in.h, gl/stdio.in.h,
-       gl/stdlib.in.h, gl/string.in.h, gl/sys_select.in.h,
-       gl/sys_socket.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
-       gl/tests/Makefile.am, gl/tests/ioctl.c, gl/tests/sys_ioctl.in.h,
-       gl/tests/test-vc-list-files-git.sh, gl/time.in.h, gl/unistd.in.h,
-       gl/wchar.in.h, lib/build-aux/c++defs.h,
-       lib/build-aux/warn-on-use.h, lib/gl/Makefile.am, lib/gl/gettext.h,
-       lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/intldir.m4, lib/gl/m4/lseek.m4, lib/gl/m4/netdb_h.m4,
-       lib/gl/m4/printf-posix.m4, lib/gl/m4/stddef_h.m4,
-       lib/gl/m4/stdio_h.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/string_h.m4,
-       lib/gl/m4/strings_h.m4, lib/gl/m4/sys_socket_h.m4,
-       lib/gl/m4/sys_stat_h.m4, lib/gl/m4/time_h.m4,
-       lib/gl/m4/unistd_h.m4, lib/gl/m4/visibility.m4,
-       lib/gl/m4/warn-on-use.m4, lib/gl/m4/wchar.m4, lib/gl/netdb.in.h,
-       lib/gl/stdint.in.h, lib/gl/stdio.in.h, lib/gl/stdlib.in.h,
-       lib/gl/string.in.h, lib/gl/sys_socket.in.h, lib/gl/sys_stat.in.h,
-       lib/gl/tests/Makefile.am, lib/gl/time.in.h, lib/gl/unistd.in.h,
-       lib/gl/wchar.in.h, libextra/gl/m4/gnulib-common.m4,
-       libextra/gl/m4/gnulib-comp.m4, maint.mk: Update gnulib files.
-
-2010-03-30  Simon Josefsson <simon@josefsson.org>
-
-       * m4/valgrind.m4: Check for what we use.  Bump serial.
-
-2010-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * m4/valgrind.m4, tests/Makefile.am: Valgrind -q is now set by the
-       valgrind detection script to avoid issue when running tests without
-       valgrind.
-
-2010-03-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c: increased small value for certificates. Typical
-       certificates are much longer than that.
-
-2010-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, tests/Makefile.am, tests/anonself.c,
-       tests/certder.c, tests/chainverify.c, tests/crq_apis.c,
-       tests/crq_key_id.c, tests/cve-2009-1415.c, tests/dhepskself.c,
-       tests/dn.c, tests/dn2.c, tests/finished.c, tests/gc.c,
-       tests/hostname-check.c, tests/init_roundtrip.c,
-       tests/mini-eagain.c, tests/mini.c, tests/moredn.c, tests/mpi.c,
-       tests/netconf-psk.c, tests/nul-in-x509-names.c,
-       tests/openpgp-keyring.c, tests/openpgpself.c, tests/openssl.c,
-       tests/parse_ca.c, tests/pkcs12_encode.c, tests/pkcs12_s2k.c,
-       tests/pskself.c, tests/resume.c, tests/set_pkcs12_cred.c,
-       tests/sha2/sha2, tests/simple.c, tests/tlsia.c,
-       tests/x509_altname.c, tests/x509dn.c, tests/x509self.c,
-       tests/x509sign-verify.c, tests/x509signself.c: Reduced several
-       unneeded messages during the make check procedure.  Verbose messages
-       can be obtained with --verbose.
-
-2010-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am: use mv -f to avoid interactiveness.
-
-2010-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dn2.c: Modified to account for postalcode.
-
-2010-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: added news entry for postalcode.
-
-2010-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/x509.h, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/common.c: Display postalCode and Name X.509 DN attributes
-       correctly.  Based on patch by Pavan Konjarla.
-
-2010-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/includes/gnutls/gnutls.h.in, src/serv-gaa.c, src/serv.gaa: Each
-       ciphersuite is now tight with a minimum TLS version and a maximum
-       one. It is valid if it is between (and including) those. This was
-       added to deprecate TLS_RSA_EXPORT_WITH_RC4_40_MD5 which is not
-       available with TLS 1.1. Reported by Adrian F. Dimcev.
-
-2010-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: Ignore more files.
-
-2010-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_cert.c, lib/auth_cert.h, lib/gnutls_alert.c,
-       lib/gnutls_cert.c, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, src/cli.c: Added
-       gnutls_certificate_set_verify_function() to allow checking
-       (verifying) certificate before the handshake is completed.
-
-2010-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-rfc2818.c, doc/examples/ex-verify.c: Use the flags
-       for expiration instead of getting the time of each certificate.
-
-2010-03-17  Simon Josefsson <simon@josefsson.org>
-
-       * README-alpha: Mention datefudge.
-
-2010-03-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-padding/pkcs1-pad: Skip test if datefudge is not
-       available.
-
-2010-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: INITIAL_SAFE_RENEGOTIATION implies
-       SAFE_RENEGOTIATION.
-
-2010-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Added missing prototype.
-
-2010-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/safe-renegotiation/testsrn: made SAFE_RENEGOTIATION flags
-       explicit.
-
-2010-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c, src/certtool.c: gnutls_x509_crt_verify() and
-       gnutls_x509_crt_list_verify() behave identically.  That means that
-       gnutls_x509_crt_verify() will now check dates as well.  Certool --verify-chain will use the GNUTLS_VERIFY_DO_NOT_ALLOW_SAME
-       flag to gnutls_x509_crt_verify() to force verification even if
-       certificates are the same.  The only exception is at the final
-       certificate (self-checking) where the extra flag
-       GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT is specified to allow for v1 CA
-       certificates.
-
-2010-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: Handle dates before 1-1-1970 (handle as being
-       equal to 1-1-1970).
-
-2010-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pkcs1-padding/pkcs1-pad: Fail if required programs are not
-       found.
-
-2010-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/manpages/gnutls-cli.1, doc/manpages/gnutls-serv.1,
-       lib/ext_safe_renegotiation.c, lib/gnutls_priority.c,
-       lib/gnutls_record.c: Safe renegotiation is not enabled by default in
-       client side.
-
-2010-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/gnutls-cli.1, lib/gnutls_priority.c: better
-       documentation for %INITIAL_SAFE_RENEGOTIATION
-
-2010-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2010-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgp-certs/Makefile.am, tests/openpgp-certs/testselfsigs: 
-       Rewrite tests/openpgp-certs/testselfsigs portably for Solaris.  Fix
-       EXTRA_DIST.
-
-2010-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/safe-renegotiation/testsrn: localhost -> 127.0.0.1 to work
-       in places where localhost does not resolve.
-
-2010-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/x509.h, lib/x509/verify.c: Extended time
-       verification to trusted certificate list as well. Introduced the
-       flag GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS that will prevent the
-       trusted certificate list verification.
-
-2010-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: Added tests for safe
-       renegotiation. Removed old tests for obsolete features (lzo) and
-       tests that were not actually working (srp).
-
-2010-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_handshake.c, lib/includes/gnutls/gnutls.h.in,
-       tests/safe-renegotiation/testsrn: Extension generation in SSL 3.0
-       (as a reply to SCSV) is not using common code with normal extension
-       generation. Solve issue reported by Tomas Mraz that caused SSL 3.0
-       renegotiation fail.
-
-2010-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: Removed artificial constrained that prevented
-       end-user certificates, being added to the trusted list, treated as
-       trusted. Suggestion and patch by Tomas Mraz.
-
-2010-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/gnutls-cli.1: Documented that
-       initial_safe_renegotiation is the default.
-
-2010-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: gnutls-serv will terminate connection on rehandshake
-       errors.
-
-2010-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_errors.c, lib/gnutls_handshake.c,
-       lib/includes/gnutls/gnutls.h.in: Avoid sending alerts during
-       handshake. Alerts might be interrupted and return a non-fatal error
-       which will propagate and in many cases it shouldn't.  Avoid sending no renegotiation alert when a client connects to an
-       unsafe server. Thanks to Tomas Hoger for the report.
-
-2010-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: On handshake error send appropriate alert and terminate
-       stream.
-
-2010-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Add id's to chapters.
-
-2010-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Update.
-
-2010-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/zh_CN.po: Remove.
-
-2010-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Fix -lrt usage.
-
-2010-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/benchmark.c: Use gnulib gettime module.  Indent.
-
-2010-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/zh_CN.po: Add.
-
-2010-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gl/netdb.in.h: Update gnulib files.
-
-2010-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gettime.c, gl/gettimeofday.c,
-       gl/m4/clock_time.m4, gl/m4/gettime.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/timespec.m4, gl/netdb.in.h,
-       gl/tests/Makefile.am, gl/tests/gettimeofday.c, gl/timespec.h: Update
-       gnulib files.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/cryptodev.c: Indent.  Don't include fcntl.h and sys/ioctl.h on
-       (for example) Windows.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/testsrn: Fix objdir != srcdir.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/safe-renegotiation/testsrn: Drop bashism.  Make it work on
-       Windows.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, doc/reference/gnutls-docs.sgml,
-       lib/ext_safe_renegotiation.c, lib/ext_signature.c,
-       lib/gnutls_supplemental.c: More GTK-DOC fixes.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_db.c: Doc fix.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/gnutls_openpgp.c: Doc fix.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Doc fix.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Fix enum doc.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: More enum docs.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/crypto.h: More enum documentation.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_ia.c: Doc fix.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/x509.h: More enum documentation.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/includes/gnutls/extra.h: Document more.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/openpgp.h: Document more.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/pkcs12.h: Document enum.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: More enum.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Fix typo.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: More GTK-DOC documentation.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Improve GTK-DOC coverage.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/crypto.h: Fix comments, for GTK-DOC.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore more headers.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl.c: Doc fix.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/crypto.h: Fix for GTK-DOC parse breakage.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore gnutlsxx.h too, GTK-DOC doesn't
-       handle C++.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Need crypto.h too.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Improve header ignores.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c: Upgrade to libtasn1 2.5 snapshot, for
-       GTK-DOC comments.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/openpgp.h: Another GTK-DOC fix.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_srp_sb64.c, lib/crypto-api.c, lib/crypto.c,
-       lib/ext_safe_renegotiation.c, lib/ext_server_name.c,
-       lib/ext_signature.c, lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_compress.c, lib/gnutls_db.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_mem.c, lib/gnutls_priority.c,
-       lib/gnutls_psk.c, lib/gnutls_psk_netconf.c, lib/gnutls_record.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_session.c, lib/gnutls_srp.c,
-       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_ui.c,
-       lib/gnutls_x509.c, lib/includes/gnutls/crypto.h,
-       lib/opencdk/stream.c, lib/openpgp/compat.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
-       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
-       lib/x509/common.c, lib/x509/crl.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/output.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_write.c, lib/x509_b64.c, libextra/gnutls_extra.c,
-       libextra/gnutls_ia.c, libextra/openssl_compat.c: Fix GTK-DOC syntax.
-       Unfortunately this looses some information.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_srp_sb64.c, lib/crypto-api.c,
-       lib/ext_safe_renegotiation.c, lib/gnutls_anon_cred.c,
-       lib/gnutls_auth.c, lib/gnutls_cert.c, lib/gnutls_db.c,
-       lib/gnutls_dh.c, lib/gnutls_handshake.c, lib/gnutls_mem.c,
-       lib/gnutls_priority.c, lib/gnutls_psk.c, lib/gnutls_record.c,
-       lib/gnutls_session.c, lib/gnutls_srp.c, lib/gnutls_state.c,
-       lib/gnutls_x509.c, lib/x509/crl.c, lib/x509/crl_write.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c, lib/x509/sign.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_write.c,
-       libextra/openssl_compat.c: Align indentation of GTK-DOC comments.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/vi.po.in: Sync with TP.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Silence gnulib warning about fseek.
-
-2010-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, build-aux/gnupload, gl/Makefile.am,
-       gl/m4/getdelim.m4, gl/m4/getline.m4, gl/m4/gettimeofday.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/stdio_h.m4, gl/m4/sys_time_h.m4,
-       gl/netdb.in.h, gl/stdio.in.h, gl/sys_time.in.h,
-       gl/tests/test-getdelim.c, gl/tests/test-getline.c,
-       gl/tests/test-gettimeofday.c, lib/gl/Makefile.am,
-       lib/gl/m4/stdio_h.m4, lib/gl/netdb.in.h, lib/gl/stdio.in.h,
-       maint.mk: Update gnulib files.
-
-2010-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_session_pack.c: Corrected calculation of session data
-       for PSK ciphersuites. Solves issue #107256 reported by Wolfgang
-       Glas.
-
-2010-02-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/ANNOUNCE: Add announcement message.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/LINGUAS, lib/po/cs.po.in, lib/po/de.po.in,
-       lib/po/fr.po.in, lib/po/ms.po.in, lib/po/nl.po.in, lib/po/pl.po.in,
-       lib/po/sv.po.in, lib/po/zh_CN.po.in: Sync with TP.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gnupload, doc/gendocs_template,
-       gl/tests/test-gettimeofday.c, gl/tests/test-memchr.c,
-       gl/tests/test-read-file.c, gl/tests/test-sockets.c,
-       lib/gl/tests/test-memchr.c, lib/gl/tests/test-read-file.c,
-       lib/gl/tests/test-sockets.c: Update gnulib files.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/gstr.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c: Use libtasn1 v2.4.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.pc.in: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * .clcopying: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/key-id/README, tests/libgcrypt.supp,
-       tests/rsa-md5-collision/Makefile.am,
-       tests/rsa-md5-collision/README, tests/rsa-md5-collision/mbox,
-       tests/userid/userid.pem: License fix.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog, cfg.mk, configure.ac, doc/Makefile.am,
-       doc/credentials/Makefile.am, doc/cyclo/Makefile.am, doc/errcodes.c,
-       doc/examples/Makefile.am, doc/extract-guile-c-doc.scm,
-       doc/gendocs_template, doc/manpages/Makefile.am, doc/printlist.c,
-       gl/gnulib.mk, gl/m4/onceonly_2_57.m4, gl/tests/gnulib.mk,
-       guile/Makefile.am, guile/modules/Makefile.am,
-       guile/modules/gnutls.scm, guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/priorities.scm,
-       guile/modules/gnutls/build/smobs.scm,
-       guile/modules/gnutls/build/utils.scm,
-       guile/modules/gnutls/extra.scm,
-       guile/modules/system/documentation/c-snarf.scm,
-       guile/modules/system/documentation/output.scm,
-       guile/pre-inst-guile.in, guile/src/Makefile.am, guile/src/core.c,
-       guile/src/errors.c, guile/src/errors.h, guile/src/extra.c,
-       guile/src/make-enum-header.scm, guile/src/make-enum-map.scm,
-       guile/src/make-session-priorities.scm,
-       guile/src/make-smob-header.scm, guile/src/make-smob-types.scm,
-       guile/src/utils.c, guile/src/utils.h, guile/tests/Makefile.am,
-       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
-       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/openpgp-keys.scm, guile/tests/pkcs-import-export.scm,
-       guile/tests/session-record-port.scm, guile/tests/srp-base64.scm,
-       guile/tests/x509-auth.scm, guile/tests/x509-certificates.scm,
-       lib/Makefile.am, lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dh_common.c, lib/auth_dh_common.h,
-       lib/auth_dhe.c, lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_psk.h,
-       lib/auth_psk_passwd.c, lib/auth_psk_passwd.h, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_srp_passwd.h, lib/auth_srp_rsa.c,
-       lib/auth_srp_sb64.c, lib/cipher-libgcrypt.c, lib/configure.ac,
-       lib/crypto-api.c, lib/crypto.c, lib/crypto.h, lib/cryptodev.c,
-       lib/debug.c, lib/debug.h, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/ext_max_record.c, lib/ext_max_record.h, lib/ext_oprfi.c,
-       lib/ext_oprfi.h, lib/ext_safe_renegotiation.c,
-       lib/ext_safe_renegotiation.h, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/ext_session_ticket.c,
-       lib/ext_session_ticket.h, lib/ext_signature.c, lib/ext_signature.h,
-       lib/ext_srp.c, lib/ext_srp.h, lib/gnutls_alert.c,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth.h,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_global.c, lib/gnutls_global.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_helper.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_mem.c,
-       lib/gnutls_mem.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/gnutls_num.c, lib/gnutls_num.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_priority.c, lib/gnutls_psk.c,
-       lib/gnutls_psk_netconf.c, lib/gnutls_record.c, lib/gnutls_record.h,
-       lib/gnutls_rsa_export.c, lib/gnutls_rsa_export.h,
-       lib/gnutls_session.c, lib/gnutls_session_pack.c,
-       lib/gnutls_session_pack.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/gnutls_supplemental.c, lib/gnutls_supplemental.h,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/includes/Makefile.am,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/openpgp.h, lib/includes/gnutls/pkcs12.h,
-       lib/includes/gnutls/x509.h, lib/libgnutls.map, lib/libgnutlsxx.map,
-       lib/m4/hooks.m4, lib/mac-libgcrypt.c, lib/minitasn1/Makefile.am,
-       lib/minitasn1/gstr.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c, lib/mpi-libgcrypt.c,
-       lib/opencdk/Makefile.am, lib/opencdk/armor.c,
-       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
-       lib/opencdk/main.c, lib/opencdk/main.h, lib/opencdk/misc.c,
-       lib/opencdk/new-packet.c, lib/opencdk/opencdk.h,
-       lib/opencdk/packet.h, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/stream.h, lib/opencdk/types.h, lib/opencdk/verify.c,
-       lib/opencdk/write-packet.c, lib/openpgp/Makefile.am,
-       lib/openpgp/compat.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
-       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
-       lib/pk-libgcrypt.c, lib/po/cs.po.in, lib/po/de.po.in,
-       lib/po/fr.po.in, lib/po/ms.po.in, lib/po/nl.po.in, lib/po/pl.po.in,
-       lib/po/sv.po.in, lib/random.c, lib/random.h, lib/rnd-libgcrypt.c,
-       lib/x509/Makefile.am, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/extensions.c, lib/x509/mpi.c,
-       lib/x509/output.c, lib/x509/pbkdf2-sha1.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_int.h, lib/x509/x509_write.c,
-       lib/x509_b64.c, lib/x509_b64.h, libextra/Makefile.am,
-       libextra/configure.ac, libextra/ext_inner_application.c,
-       libextra/ext_inner_application.h, libextra/fipsmd5.c,
-       libextra/gl/Makefile.am, libextra/gnutls-extra.pc.in,
-       libextra/gnutls_extra.c, libextra/gnutls_ia.c,
-       libextra/gnutls_openssl.c, libextra/includes/Makefile.am,
-       libextra/includes/gnutls/extra.h,
-       libextra/includes/gnutls/openssl.h, libextra/libgnutls-extra.map,
-       libextra/m4/hooks.m4, libextra/openssl_compat.c,
-       libextra/openssl_compat.h, m4/guile.m4, m4/valgrind.m4,
-       src/Makefile.am, src/common.c, src/serv.c, tests/Makefile.am,
-       tests/anonself.c, tests/certder.c,
-       tests/certificate_set_x509_crl.c, tests/chainverify.c,
-       tests/crq_apis.c, tests/crq_key_id.c, tests/crypto_rng.c,
-       tests/cve-2008-4989.c, tests/cve-2009-1415.c,
-       tests/cve-2009-1416.c, tests/dhepskself.c, tests/dn.c, tests/dn2.c,
-       tests/finished.c, tests/gc.c, tests/hostname-check.c,
-       tests/init_roundtrip.c, tests/key-id/Makefile.am,
-       tests/key-id/key-id, tests/mini-eagain.c, tests/mini.c,
-       tests/moredn.c, tests/mpi.c, tests/netconf-psk.c,
-       tests/nist-pkits/pkits, tests/nist-pkits/pkits_crl,
-       tests/nist-pkits/pkits_crt, tests/nist-pkits/pkits_pkcs12,
-       tests/nist-pkits/pkits_smime, tests/nul-in-x509-names.c,
-       tests/openpgp-certs/Makefile.am, tests/openpgp-keyring.c,
-       tests/openpgpself.c, tests/openssl.c, tests/oprfi.c,
-       tests/parse_ca.c, tests/pathlen/Makefile.am, tests/pathlen/pathlen,
-       tests/pgps2kgnu.c, tests/pkcs1-padding/Makefile.am,
-       tests/pkcs1-padding/pkcs1-pad, tests/pkcs12-decode/Makefile.am,
-       tests/pkcs12-decode/pkcs12, tests/pkcs12_encode.c,
-       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c,
-       tests/pkcs8-decode/Makefile.am, tests/pkcs8-decode/pkcs8,
-       tests/pskself.c, tests/resume.c, tests/rfc2253-escape-test,
-       tests/rsa-md5-collision/Makefile.am,
-       tests/rsa-md5-collision/rsa-md5-collision, tests/set_pkcs12_cred.c,
-       tests/setcredcrash.c, tests/sha2/Makefile.am, tests/sha2/sha2,
-       tests/simple.c, tests/tlsia.c, tests/userid/Makefile.am,
-       tests/userid/userid, tests/utils.c, tests/utils.h,
-       tests/x509_altname.c, tests/x509dn.c, tests/x509paths/chain,
-       tests/x509self.c, tests/x509sign-verify.c, tests/x509signself.c: 
-       Update copyright years.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * README: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * README-alpha: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/crypt.c: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/tls_test.c: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/tests.c: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/psk.c: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/prime.c: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c: Fix copyright/license.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/benchmark.c: Indent and fix copyright notices.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gnupload, gl/tests/test-gettimeofday.c,
-       gl/tests/test-memchr.c, gl/tests/test-read-file.c,
-       gl/tests/test-sockets.c, lib/gl/tests/test-memchr.c,
-       lib/gl/tests/test-read-file.c, lib/gl/tests/test-sockets.c: Update
-       gnulib files.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog, ChangeLog.1, THANKS, build-aux/gnupload, cfg.mk,
-       doc/Makefile.am, doc/credentials/Makefile.am,
-       doc/cyclo/Makefile.am, doc/errcodes.c, doc/examples/Makefile.am,
-       doc/extract-guile-c-doc.scm, doc/manpages/Makefile.am,
-       doc/printlist.c, gl/tests/test-gettimeofday.c,
-       gl/tests/test-memchr.c, gl/tests/test-read-file.c,
-       gl/tests/test-sockets.c, guile/Makefile.am,
-       guile/modules/Makefile.am, guile/modules/gnutls.scm,
-       guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/priorities.scm,
-       guile/modules/gnutls/build/smobs.scm,
-       guile/modules/gnutls/build/utils.scm,
-       guile/modules/gnutls/extra.scm,
-       guile/modules/system/documentation/c-snarf.scm,
-       guile/modules/system/documentation/output.scm,
-       guile/pre-inst-guile.in, guile/src/errors.h,
-       guile/src/make-enum-header.scm, guile/src/make-enum-map.scm,
-       guile/src/make-session-priorities.scm,
-       guile/src/make-smob-header.scm, guile/src/make-smob-types.scm,
-       guile/src/utils.h, guile/tests/anonymous-auth.scm,
-       guile/tests/errors.scm, guile/tests/openpgp-auth.scm,
-       guile/tests/openpgp-keyring.scm, guile/tests/openpgp-keys.scm,
-       guile/tests/pkcs-import-export.scm,
-       guile/tests/session-record-port.scm, guile/tests/srp-base64.scm,
-       guile/tests/x509-auth.scm, guile/tests/x509-certificates.scm,
-       lib/Makefile.am, lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dh_common.c, lib/auth_dh_common.h,
-       lib/auth_dhe.c, lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_psk.h,
-       lib/auth_psk_passwd.c, lib/auth_psk_passwd.h, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_srp_passwd.h, lib/auth_srp_rsa.c,
-       lib/auth_srp_sb64.c, lib/cipher-libgcrypt.c, lib/crypto-api.c,
-       lib/crypto.c, lib/crypto.h, lib/cryptodev.c, lib/debug.c,
-       lib/debug.h, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/ext_max_record.c, lib/ext_max_record.h, lib/ext_oprfi.c,
-       lib/ext_oprfi.h, lib/ext_safe_renegotiation.c,
-       lib/ext_safe_renegotiation.h, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/ext_session_ticket.c,
-       lib/ext_session_ticket.h, lib/ext_signature.c, lib/ext_signature.h,
-       lib/ext_srp.c, lib/ext_srp.h, lib/gl/tests/test-memchr.c,
-       lib/gl/tests/test-read-file.c, lib/gl/tests/test-sockets.c,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_auth.h, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_global.c, lib/gnutls_global.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_helper.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_mem.c,
-       lib/gnutls_mem.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/gnutls_num.c, lib/gnutls_num.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_priority.c, lib/gnutls_psk.c,
-       lib/gnutls_psk_netconf.c, lib/gnutls_record.c, lib/gnutls_record.h,
-       lib/gnutls_rsa_export.c, lib/gnutls_rsa_export.h,
-       lib/gnutls_session.c, lib/gnutls_session_pack.c,
-       lib/gnutls_session_pack.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/gnutls_supplemental.c, lib/gnutls_supplemental.h,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/includes/Makefile.am,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/openpgp.h, lib/includes/gnutls/pkcs12.h,
-       lib/includes/gnutls/x509.h, lib/libgnutls.map, lib/libgnutlsxx.map,
-       lib/mac-libgcrypt.c, lib/minitasn1/Makefile.am,
-       lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/gstr.c,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c, lib/mpi-libgcrypt.c,
-       lib/opencdk/Makefile.am, lib/opencdk/hash.c,
-       lib/openpgp/Makefile.am, lib/openpgp/compat.c,
-       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/pgpverify.c,
-       lib/openpgp/privkey.c, lib/pk-libgcrypt.c, lib/random.c,
-       lib/random.h, lib/rnd-libgcrypt.c, lib/x509/Makefile.am,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_int.h, lib/x509/x509_write.c,
-       lib/x509_b64.c, lib/x509_b64.h, libextra/Makefile.am,
-       libextra/ext_inner_application.c, libextra/ext_inner_application.h,
-       libextra/fipsmd5.c, libextra/gl/Makefile.am,
-       libextra/gnutls-extra.pc.in, libextra/gnutls_extra.c,
-       libextra/gnutls_ia.c, libextra/gnutls_openssl.c,
-       libextra/includes/Makefile.am, libextra/includes/gnutls/extra.h,
-       libextra/includes/gnutls/openssl.h, libextra/libgnutls-extra.map,
-       libextra/openssl_compat.c, libextra/openssl_compat.h,
-       src/Makefile.am, src/benchmark.c, src/certtool-cfg.c,
-       src/certtool.c, src/common.c, src/crypt.c, src/prime.c, src/psk.c,
-       src/serv.c, src/tests.c, src/tls_test.c, tests/Makefile.am,
-       tests/anonself.c, tests/certder.c, tests/chainverify.c,
-       tests/crq_apis.c, tests/crq_key_id.c, tests/crypto_rng.c,
-       tests/cve-2008-4989.c, tests/cve-2009-1415.c,
-       tests/cve-2009-1416.c, tests/dhepskself.c, tests/dn.c, tests/dn2.c,
-       tests/finished.c, tests/gc.c, tests/hostname-check.c,
-       tests/init_roundtrip.c, tests/key-id/Makefile.am,
-       tests/key-id/key-id, tests/mini-eagain.c, tests/mini.c,
-       tests/moredn.c, tests/mpi.c, tests/netconf-psk.c,
-       tests/nist-pkits/pkits, tests/nist-pkits/pkits_crl,
-       tests/nist-pkits/pkits_crt, tests/nist-pkits/pkits_pkcs12,
-       tests/nist-pkits/pkits_smime, tests/nul-in-x509-names.c,
-       tests/openpgp-certs/Makefile.am, tests/openpgp-certs/testcerts,
-       tests/openpgp-certs/testselfsigs, tests/openpgp-keyring.c,
-       tests/openpgpself.c, tests/openssl.c, tests/oprfi.c,
-       tests/parse_ca.c, tests/pathlen/Makefile.am, tests/pathlen/pathlen,
-       tests/pkcs1-padding/Makefile.am, tests/pkcs1-padding/pkcs1-pad,
-       tests/pkcs12-decode/Makefile.am, tests/pkcs12-decode/pkcs12,
-       tests/pkcs12_encode.c, tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c,
-       tests/pkcs8-decode/Makefile.am, tests/pkcs8-decode/pkcs8,
-       tests/pskself.c, tests/resume.c, tests/rfc2253-escape-test,
-       tests/rsa-md5-collision/Makefile.am,
-       tests/rsa-md5-collision/rsa-md5-collision,
-       tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/testsrn, tests/set_pkcs12_cred.c,
-       tests/setcredcrash.c, tests/sha2/Makefile.am, tests/sha2/sha2,
-       tests/simple.c, tests/tlsia.c, tests/userid/Makefile.am,
-       tests/userid/userid, tests/utils.c, tests/utils.h,
-       tests/x509_altname.c, tests/x509dn.c, tests/x509paths/chain,
-       tests/x509self.c, tests/x509sign-verify.c, tests/x509signself.c: Fix
-       FSF copyright notices.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS, doc/gnutls.texi: doc: Fix pkg-config recommendation.  Reported by Claudio Saavedra <csaavedra@igalia.com> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4095>.
-
-2010-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, src/cli.c: gnutls-cli: Handle reading binary data
-       from server.  Reported by and tiny patch from Vitaly Mayatskikh
-       <v.mayatskih@gmail.com> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4096>.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/update-copyright, gl/Makefile.am,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/tests/Makefile.am,
-       gl/tests/test-update-copyright.sh: Update gnulib files.
-
-2010-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgp-certs/testcerts, tests/openpgp-certs/testselfsigs,
-       tests/safe-renegotiation/testsrn: Added copyright notices!
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am: Generated.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Improve.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore more.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore, lib/gl/m4/warn-on-use.m4: Update gnulib files.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/warn-on-use.m4, lib/build-aux/arg-nonnull.h,
-       lib/build-aux/warn-on-use.h: Update gnulib files.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Fix.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gl/tests/macros.h, lib/gl/tests/signature.h: Update gnulib
-       files.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Fix
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/tests/macros.h, gl/tests/signature.h,
-       gl/tests/test-sys_ioctl.c: Update gnulib files.
-
-2010-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, build-aux/arg-nonnull.h, build-aux/config.rpath,
-       build-aux/gendocs.sh, build-aux/gnupload, build-aux/link-warning.h,
-       build-aux/pmccabe2html, build-aux/useless-if-before-free,
-       build-aux/vc-list-files, build-aux/warn-on-use.h, gl/Makefile.am,
-       gl/accept.c, gl/alignof.h, gl/alloca.c, gl/alloca.in.h,
-       gl/arpa_inet.in.h, gl/asnprintf.c, gl/bind.c, gl/c-ctype.c,
-       gl/c-ctype.h, gl/close-hook.c, gl/close-hook.h, gl/close.c,
-       gl/connect.c, gl/errno.in.h, gl/error.c, gl/error.h, gl/fclose.c,
-       gl/float+.h, gl/float.in.h, gl/fseeko.c, gl/gai_strerror.c,
-       gl/getaddrinfo.c, gl/getdelim.c, gl/getline.c, gl/getpass.c,
-       gl/getpass.h, gl/gettext.h, gl/inet_ntop.c, gl/inet_pton.c,
-       gl/intprops.h, gl/listen.c, gl/lseek.c, gl/m4/00gnulib.m4,
-       gl/m4/alloca.m4, gl/m4/arpa_inet_h.m4, gl/m4/autobuild.m4,
-       gl/m4/close.m4, gl/m4/errno_h.m4, gl/m4/error.m4,
-       gl/m4/extensions.m4, gl/m4/fclose.m4, gl/m4/float_h.m4,
-       gl/m4/fseeko.m4, gl/m4/getaddrinfo.m4, gl/m4/getdelim.m4,
-       gl/m4/getline.m4, gl/m4/getpass.m4, gl/m4/gettimeofday.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/hostent.m4,
-       gl/m4/include_next.m4, gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4,
-       gl/m4/intmax_t.m4, gl/m4/inttypes_h.m4, gl/m4/lib-ld.m4,
-       gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/m4/longlong.m4,
-       gl/m4/lseek.m4, gl/m4/malloc.m4, gl/m4/manywarnings.m4,
-       gl/m4/memchr.m4, gl/m4/minmax.m4, gl/m4/mmap-anon.m4,
-       gl/m4/multiarch.m4, gl/m4/netdb_h.m4, gl/m4/netinet_in_h.m4,
-       gl/m4/perror.m4, gl/m4/printf.m4, gl/m4/read-file.m4,
-       gl/m4/readline.m4, gl/m4/realloc.m4, gl/m4/select.m4,
-       gl/m4/servent.m4, gl/m4/size_max.m4, gl/m4/snprintf.m4,
-       gl/m4/sockets.m4, gl/m4/socklen.m4, gl/m4/sockpfaf.m4,
-       gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4,
-       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdio_h.m4,
-       gl/m4/stdlib_h.m4, gl/m4/strerror.m4, gl/m4/string_h.m4,
-       gl/m4/sys_ioctl_h.m4, gl/m4/sys_select_h.m4, gl/m4/sys_socket_h.m4,
-       gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4, gl/m4/time_h.m4,
-       gl/m4/ungetc.m4, gl/m4/unistd_h.m4, gl/m4/vasnprintf.m4,
-       gl/m4/version-etc.m4, gl/m4/warnings.m4, gl/m4/wchar.m4,
-       gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/memchr.c,
-       gl/minmax.h, gl/netdb.in.h, gl/netinet_in.in.h,
-       gl/override/lib/gettext.h.diff, gl/perror.c, gl/printf-args.c,
-       gl/printf-args.h, gl/printf-parse.c, gl/printf-parse.h,
-       gl/progname.c, gl/progname.h, gl/read-file.c, gl/read-file.h,
-       gl/readline.c, gl/readline.h, gl/realloc.c, gl/recv.c, gl/select.c,
-       gl/send.c, gl/setsockopt.c, gl/shutdown.c, gl/size_max.h,
-       gl/snprintf.c, gl/socket.c, gl/sockets.c, gl/sockets.h,
-       gl/stdarg.in.h, gl/stdbool.in.h, gl/stddef.in.h, gl/stdint.in.h,
-       gl/stdio-impl.h, gl/stdio-write.c, gl/stdio.in.h, gl/stdlib.in.h,
-       gl/strerror.c, gl/string.in.h, gl/sys_select.in.h,
-       gl/sys_socket.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
-       gl/tests/Makefile.am, gl/tests/dummy.c, gl/tests/gettimeofday.c,
-       gl/tests/ioctl.c, gl/tests/sys_ioctl.in.h, gl/tests/test-alignof.c,
-       gl/tests/test-alloca-opt.c, gl/tests/test-arpa_inet.c,
-       gl/tests/test-c-ctype.c, gl/tests/test-errno.c,
-       gl/tests/test-fseeko.c, gl/tests/test-getaddrinfo.c,
-       gl/tests/test-getdelim.c, gl/tests/test-getline.c,
-       gl/tests/test-gettimeofday.c, gl/tests/test-inet_ntop.c,
-       gl/tests/test-inet_pton.c, gl/tests/test-lseek.c,
-       gl/tests/test-memchr.c, gl/tests/test-netdb.c,
-       gl/tests/test-netinet_in.c, gl/tests/test-perror.c,
-       gl/tests/test-read-file.c, gl/tests/test-select-fd.c,
-       gl/tests/test-select-stdin.c, gl/tests/test-select.c,
-       gl/tests/test-snprintf.c, gl/tests/test-stdbool.c,
-       gl/tests/test-stddef.c, gl/tests/test-stdint.c,
-       gl/tests/test-stdio.c, gl/tests/test-stdlib.c,
-       gl/tests/test-strerror.c, gl/tests/test-string.c,
-       gl/tests/test-sys_select.c, gl/tests/test-sys_socket.c,
-       gl/tests/test-sys_stat.c, gl/tests/test-sys_time.c,
-       gl/tests/test-time.c, gl/tests/test-unistd.c,
-       gl/tests/test-vasnprintf.c, gl/tests/test-vc-list-files-cvs.sh,
-       gl/tests/test-vc-list-files-git.sh, gl/tests/test-version-etc.c,
-       gl/tests/test-version-etc.sh, gl/tests/test-wchar.c,
-       gl/tests/verify.h, gl/tests/w32sock.h, gl/tests/zerosize-ptr.h,
-       gl/time.in.h, gl/unistd.in.h, gl/vasnprintf.c, gl/vasnprintf.h,
-       gl/version-etc-fsf.c, gl/version-etc.c, gl/version-etc.h,
-       gl/w32sock.h, gl/wchar.in.h, gl/xsize.h,
-       lib/build-aux/config.rpath, lib/build-aux/link-warning.h,
-       lib/gl/Makefile.am, lib/gl/alignof.h, lib/gl/alloca.in.h,
-       lib/gl/asnprintf.c, lib/gl/asprintf.c, lib/gl/byteswap.in.h,
-       lib/gl/c-ctype.c, lib/gl/c-ctype.h, lib/gl/close-hook.c,
-       lib/gl/close-hook.h, lib/gl/errno.in.h, lib/gl/float+.h,
-       lib/gl/float.in.h, lib/gl/fseeko.c, lib/gl/gettext.h,
-       lib/gl/lseek.c, lib/gl/m4/00gnulib.m4, lib/gl/m4/alloca.m4,
-       lib/gl/m4/byteswap.m4, lib/gl/m4/codeset.m4, lib/gl/m4/errno_h.m4,
-       lib/gl/m4/extensions.m4, lib/gl/m4/float_h.m4, lib/gl/m4/fseeko.m4,
-       lib/gl/m4/func.m4, lib/gl/m4/gettext.m4, lib/gl/m4/glibc2.m4,
-       lib/gl/m4/glibc21.m4, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/gnulib-tool.m4, lib/gl/m4/iconv.m4,
-       lib/gl/m4/include_next.m4, lib/gl/m4/intdiv0.m4, lib/gl/m4/intl.m4,
-       lib/gl/m4/intldir.m4, lib/gl/m4/intlmacosx.m4, lib/gl/m4/intmax.m4,
-       lib/gl/m4/intmax_t.m4, lib/gl/m4/inttypes-pri.m4,
-       lib/gl/m4/inttypes_h.m4, lib/gl/m4/lcmessage.m4,
-       lib/gl/m4/ld-output-def.m4, lib/gl/m4/ld-version-script.m4,
-       lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4,
-       lib/gl/m4/lib-prefix.m4, lib/gl/m4/lock.m4, lib/gl/m4/longlong.m4,
-       lib/gl/m4/lseek.m4, lib/gl/m4/malloc.m4, lib/gl/m4/memchr.m4,
-       lib/gl/m4/memmem.m4, lib/gl/m4/minmax.m4, lib/gl/m4/mmap-anon.m4,
-       lib/gl/m4/multiarch.m4, lib/gl/m4/netdb_h.m4, lib/gl/m4/nls.m4,
-       lib/gl/m4/po.m4, lib/gl/m4/printf-posix.m4, lib/gl/m4/printf.m4,
-       lib/gl/m4/progtest.m4, lib/gl/m4/read-file.m4,
-       lib/gl/m4/realloc.m4, lib/gl/m4/size_max.m4, lib/gl/m4/snprintf.m4,
-       lib/gl/m4/sockets.m4, lib/gl/m4/socklen.m4, lib/gl/m4/sockpfaf.m4,
-       lib/gl/m4/stdbool.m4, lib/gl/m4/stddef_h.m4, lib/gl/m4/stdint.m4,
-       lib/gl/m4/stdint_h.m4, lib/gl/m4/stdio_h.m4, lib/gl/m4/stdlib_h.m4,
-       lib/gl/m4/strcase.m4, lib/gl/m4/string_h.m4,
-       lib/gl/m4/strings_h.m4, lib/gl/m4/strverscmp.m4,
-       lib/gl/m4/sys_socket_h.m4, lib/gl/m4/sys_stat_h.m4,
-       lib/gl/m4/threadlib.m4, lib/gl/m4/time_h.m4, lib/gl/m4/time_r.m4,
-       lib/gl/m4/uintmax_t.m4, lib/gl/m4/ungetc.m4, lib/gl/m4/unistd_h.m4,
-       lib/gl/m4/vasnprintf.m4, lib/gl/m4/vasprintf.m4,
-       lib/gl/m4/visibility.m4, lib/gl/m4/vsnprintf.m4,
-       lib/gl/m4/wchar.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4,
-       lib/gl/m4/xsize.m4, lib/gl/memchr.c, lib/gl/memmem.c,
-       lib/gl/minmax.h, lib/gl/netdb.in.h,
-       lib/gl/override/lib/gettext.h.diff, lib/gl/printf-args.c,
-       lib/gl/printf-args.h, lib/gl/printf-parse.c, lib/gl/printf-parse.h,
-       lib/gl/read-file.c, lib/gl/read-file.h, lib/gl/realloc.c,
-       lib/gl/size_max.h, lib/gl/snprintf.c, lib/gl/sockets.c,
-       lib/gl/sockets.h, lib/gl/stdbool.in.h, lib/gl/stddef.in.h,
-       lib/gl/stdint.in.h, lib/gl/stdio-impl.h, lib/gl/stdio-write.c,
-       lib/gl/stdio.in.h, lib/gl/stdlib.in.h, lib/gl/str-two-way.h,
-       lib/gl/strcasecmp.c, lib/gl/string.in.h, lib/gl/strings.in.h,
-       lib/gl/strncasecmp.c, lib/gl/strverscmp.c, lib/gl/sys_socket.in.h,
-       lib/gl/sys_stat.in.h, lib/gl/tests/Makefile.am,
-       lib/gl/tests/dummy.c, lib/gl/tests/intprops.h,
-       lib/gl/tests/test-alloca-opt.c, lib/gl/tests/test-byteswap.c,
-       lib/gl/tests/test-c-ctype.c, lib/gl/tests/test-errno.c,
-       lib/gl/tests/test-fseeko.c, lib/gl/tests/test-func.c,
-       lib/gl/tests/test-memchr.c, lib/gl/tests/test-netdb.c,
-       lib/gl/tests/test-read-file.c, lib/gl/tests/test-snprintf.c,
-       lib/gl/tests/test-stdbool.c, lib/gl/tests/test-stddef.c,
-       lib/gl/tests/test-stdint.c, lib/gl/tests/test-stdio.c,
-       lib/gl/tests/test-stdlib.c, lib/gl/tests/test-string.c,
-       lib/gl/tests/test-strings.c, lib/gl/tests/test-strverscmp.c,
-       lib/gl/tests/test-sys_socket.c, lib/gl/tests/test-sys_stat.c,
-       lib/gl/tests/test-time.c, lib/gl/tests/test-unistd.c,
-       lib/gl/tests/test-vasnprintf.c, lib/gl/tests/test-vasprintf.c,
-       lib/gl/tests/test-vsnprintf.c, lib/gl/tests/test-wchar.c,
-       lib/gl/tests/verify.h, lib/gl/tests/zerosize-ptr.h,
-       lib/gl/time.in.h, lib/gl/time_r.c, lib/gl/unistd.in.h,
-       lib/gl/vasnprintf.c, lib/gl/vasnprintf.h, lib/gl/vasprintf.c,
-       lib/gl/vsnprintf.c, lib/gl/w32sock.h, lib/gl/wchar.in.h,
-       lib/gl/xsize.h, libextra/build-aux/config.rpath,
-       libextra/gl/gnulib.mk, libextra/gl/hmac-md5.c, libextra/gl/hmac.h,
-       libextra/gl/m4/00gnulib.m4, libextra/gl/m4/extensions.m4,
-       libextra/gl/m4/gnulib-cache.m4, libextra/gl/m4/gnulib-common.m4,
-       libextra/gl/m4/gnulib-comp.m4, libextra/gl/m4/gnulib-tool.m4,
-       libextra/gl/m4/hmac-md5.m4, libextra/gl/m4/ld-output-def.m4,
-       libextra/gl/m4/ld-version-script.m4, libextra/gl/m4/lib-ld.m4,
-       libextra/gl/m4/lib-link.m4, libextra/gl/m4/lib-prefix.m4,
-       libextra/gl/m4/md5.m4, libextra/gl/m4/memxor.m4, libextra/gl/md5.c,
-       libextra/gl/md5.h, libextra/gl/memxor.c, libextra/gl/memxor.h,
-       maint.mk: Update gnulib files.
-
-2010-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Documented addition of new priority strings.
-
-2010-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Documented Steve Dispensa's patch addition.
-
-2010-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/safe-renegotiation/testsrn: Added tests for new behaviour of
-       client.
-
-2010-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: Revert "Always allow initial negotiation.
-       Disable subsequent unsafe renegotiations." This reverts commit
-       1e4981cfbec360a19cfb7470ce96093aaa95b32e.  Ah, this was to twart the attack (description by Daniel Kahn
-       Gilmor): The problem, as i understand it, is that the client is
-       incapable of telling whether the plaintext prefix injection attack
-       has already happened.  I don't think disabling renegotiation for the
-       session resolves the problem.  For a server which does not announce and enforce safe renegotiation,
-       what the client sees as an initial connection may unknowingly
-       actually be renegotiating an existing session that was started by an
-       attacker.  The concern isn't that the (legitimate) client will have their
-       session re-negotiated by an attacker; it's that the MITM attacker
-       can trick the server into viewing the client's initial
-       authentication as a re-negotiation of a TLS session already
-       underway.  for servers which do odd things like apply the credentials of the
-       post-renegotiation client to the traffic that happened before the
-       renegotiation (e.g. HTTPS, with client-side certificates required
-       only for certain subdirectories), a safe-renegotiation-aware client
-       *should* refuse to connect to servers which do not announce safe
-       renegotiation if they want to resist this attack.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: Added safe-renegotiation subdir.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_priority.c, tests/Makefile.am,
-       tests/safe-renegotiation/Makefile.am,
-       tests/safe-renegotiation/params.dh,
-       tests/safe-renegotiation/testsrn: Added safe renegotiation test
-       cases. Added priority string option to completely disable
-       renegotiation to assist in testing more cases.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: Added the
-       --rehandshake option to gnutls-cli to allow connection and immediate
-       rehandshake.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.c: More carefull copying of data. Check
-       for the malicious case where a server does initial unsafe
-       negotiation and proceeds with a safe renegotiation.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: Always allow initial negotiation. Disable
-       subsequent unsafe renegotiations.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_state.c: Safe renegotiation variable
-       cleanup. No longer clear variables that should stay across
-       rehandshakes.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c, lib/gnutls_cipher_int.c: Documented the
-       crypto-api functions and made the API tolerant to NULL IV.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: Added documentation of rehandshake usage
-       in gnutls if full-duplex capability is required.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c: Reduced asserts to reduce unneeded
-       printings.
-
-2010-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/serv.c: Removed rehandshake initiation capability
-       from client and transferred it to the echo server. Once the server
-       receives a string **REHANDSHAKE** will request a rehandshake.
-
-2010-01-19  Steve Dispensa <dispensa@phonefactor.com>
-
-       * lib/gnutls_handshake.c: Here is another patch that fixes an
-       interoperability problem with safe renegotiation and resumption. In
-       copying forward the safe renegotiation state across resumptions, I
-       got a little carried away and copied too much data (new connections
-       should start with empty RI data).  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_oprfi.c, lib/ext_session_ticket.c, lib/gnutls_constate.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: Modified extensions
-       (session ticket, oprfi) to store internal data in gnutls internal
-       structure and input data only in the security_parameters extension
-       structure.  Session ticket extension will call the user supplied hello function
-       on resumption.  (the current API to handle that is inexistant. To be revised)
-
-2010-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_session_ticket.c, lib/gnutls_constate.c,
-       lib/gnutls_int.h, lib/gnutls_session_pack.c: Further cleanup the
-       extension internal structure. Now if values are not saved and
-       restored when resumming they will be initialized to zero.
-
-2010-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/chainverify.c, tests/crq_apis.c, tests/crq_key_id.c,
-       tests/cve-2008-4989.c, tests/dn2.c, tests/finished.c, tests/mini.c,
-       tests/pkcs12_s2k_pem.c, tests/tlsia.c, tests/x509sign-verify.c: 
-       Tests compile with --enable-gcc-warnings.
-
-2010-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.h, lib/gnutls_constate.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_state.c, tests/resume.c, tests/simple.c: Specify in
-       detail what to be copied when resuming. It seems there are
-       extensions (like safe renegotiation) that do not need to read the
-       stored values. Moreover this might overcome any bugs by the
-       extensions that used to store pointers in the extension structure.
-
-2010-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.c: Initialize the default value to 0.
-       It seemed to have default value of 0 when non resuming :)
-
-2010-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-client-tlsia.c, tests/utils.c: Removed warnings.
-
-2010-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac: Added -Wno-int-to-pointer-cast to enable compilation
-       when enable-gcc-warnings is given.
-
-2010-01-13  Steve Dispensa <dispensa@phonefactor.com>
-
-       * lib/gnutls_handshake.c: Here are two more patches. The first adds
-       support for renegotiation of resumption.  Also, I found a bug in my initial implementation - I was incorrectly
-       sending the SCSV on all connections, not only those using SSLv3, as
-       should have been the case.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-2010-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/manpages/gnutls-cli.1, doc/manpages/gnutls-serv.1: 
-       Documentation updates.
-
-2010-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: When denying an initial negotiation due to
-       missing safe renegotiation extension reply with NO_RENEGOTIATION
-       alert.
-
-2010-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c, lib/gnutls_handshake.c,
-       lib/includes/gnutls/gnutls.h.in, tests/resume.c: When resuming no
-       extensions were parsed thus the safe renegotiation extension was
-       ignored as well causing a false detection of unsafe session.
-       Corrected by making a special class of extensions called RESUMED.
-       Those are parsed even when resuming (normally we don't do it to
-       prevent clients overwriting capabilities and credentials).
-
-2010-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_safe_renegotiation.c, lib/ext_safe_renegotiation.h,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c, lib/includes/gnutls/gnutls.h.in: Added Steve
-       Dispensa's patch for safe renegotiation (with artistic changes).
-       Effectively reverted my previous patch
-       1a338cbaaeec11d958de8da4d1ae036979fccf3e.
-
-2010-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: Updated thanks file.
-
-2010-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/opencdk/sig-check.c, src/certtool.c,
-       tests/openpgp-certs/Makefile.am, tests/openpgp-certs/testselfsigs: 
-       When checking self signature also check the signatures of all
-       subkeys.  Ilari Liusvaara noticed and reported the issue and
-       provided test vectors as well.  certtool --pgp-certificate-info will check self signatures.  Added self tests for self-sigs.
-
-2010-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/gc.c: hash_fast -> hmac_fast
-
-2010-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/gnutls-cli.1, doc/manpages/gnutls-serv.1,
-       lib/Makefile.am, lib/ext_safe_renegotiation.c,
-       lib/ext_safe_renegotiation.h, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c, lib/includes/gnutls/gnutls.h.in, src/cli.c,
-       src/serv.c: Added safe renegotiation patch from Steve Dispensa,
-       modified to suit gnutls code style and error checking. Modified to
-       conform to draft-ietf-tls-renegotiation-03.txt.  gnutls-cli will search input for **RENEGOTIATION** to perform a
-       renegotiation and gnutls-serv will perform one if requested.
-
-2010-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/mpi.c: Corrections for --disable-extra-pki configure flag
-       to work. Patch by Bill Randle.
-
-2010-01-04  Andreas Metzler <ametzler@downhill.at.eu.org>
-
-       * ChangeLog, doc/certtool.cfg, doc/gnutls.texi, lib/gnutls_auth.c,
-       lib/gnutls_priority.c, lib/gnutls_session.c, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c: Typo fixes: successful, precedence, preferred
-
-2009-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/cryptodev.c: define EALG_MAX_BLOCK_LEN if not there.
-
-2009-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/fipsmd5.c: use C99 initializations
-
-2009-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/Makefile.am, lib/compat.c, lib/crypto-api.c,
-       lib/crypto.c, lib/crypto.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, libextra/fipsmd5.c, src/benchmark.c: Reverted all
-       previous changes to combine hashes with MAC algorithms.  It is now
-       permissible to register a hash algorithm separately from a MAC.
-
-2009-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c, lib/crypto.c, lib/crypto.h,
-       lib/ext_session_ticket.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_constate.c, lib/gnutls_constate.h,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/gnutls_psk_netconf.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/includes/gnutls/crypto.h,
-       lib/includes/gnutls/gnutls.h.in, lib/mac-libgcrypt.c,
-       lib/opencdk/dummy.c, lib/opencdk/filters.h, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/main.h, lib/opencdk/opencdk.h,
-       lib/opencdk/pubkey.c, lib/opencdk/sig-check.c,
-       lib/opencdk/verify.c, lib/x509/crq.c, lib/x509/pbkdf2-sha1.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_encr.c, lib/x509/privkey.c,
-       lib/x509/sign.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_int.h, libextra/fipsmd5.c, libextra/gnutls_openssl.c: 
-       Revert "Merged the two internal hash API functions, to simplify and
-       reduce code." This reverts commit bc3e43d5f121e404aa32212dcfcc5027de807056.  Conflicts:         lib/crypto.c    lib/gnutls_cipher.c     lib/gnutls_hash_int.c   lib/gnutls_hash_int.h   lib/includes/gnutls/crypto.h    lib/mac-libgcrypt.c
-
-2009-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c, lib/includes/gnutls/crypto.h,
-       lib/mac-libgcrypt.c, libextra/gnutls_openssl.c, tests/gc.c: Revert
-       "Added plain MD5 hash check and corrected gnutls_hash_fast() usage
-       in openssl.c" This reverts commit 54486afbfcf3398846d5c20d3094bdb7d0a43ff2.
-
-2009-12-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-x509-info.c: Improve example of printing cert
-       info.
-
-2009-12-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo fix.  Reported by Laurence <lfinsto@gwdg.de> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4036>.
-
-2009-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/compat.c, lib/gnutls_algorithms.h: fixes for compilation.
-
-2009-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: Check return value from
-       gnutls_x509_crt_get_key_usage.
-
-2009-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: This is a follow-up to commit
-       3d8da5765133c6ced37bf29b5a07f950b8c26cd7, that fixes some issues
-       with DSA and RSA certificate encoding. Due to that the shown public
-       key IDs are different than the ones in previous gnutls versions.
-
-2009-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c: reduced calls to gnutls_hash on
-       encryption/decryption. Only initialize MAC when needed.
-
-2009-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c, lib/includes/gnutls/crypto.h,
-       lib/mac-libgcrypt.c, libextra/gnutls_openssl.c, tests/gc.c: Added
-       plain MD5 hash check and corrected gnutls_hash_fast() usage in
-       openssl.c Corrected new hash API bug that prevented usage of plain
-       hash functions.
-
-2009-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/gnutls.texi, lib/Makefile.am, lib/compat.c,
-       lib/crypto.c, lib/ext_session_ticket.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c,
-       lib/includes/gnutls/crypto.h, lib/libgnutls.map,
-       lib/opencdk/read-packet.c, lib/x509/privkey_pkcs8.c,
-       src/benchmark.c, tests/gc.c: Exported gnutls_cipher_get_block_size()
-       and all hash functions added to libgnutls.map.  Expanded benchmark
-       with 3DES and ARCFOUR. Corrected test that used non-existing symbol.
-
-2009-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/m4/hooks.m4: Corrected check for cryptodev. Only enable it if
-       --enable-cryptodev is specified.
-
-2009-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/cryptodev.c, lib/gnutls_cryptodev.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/mac-libgcrypt.c, lib/x509/mpi.c: 
-       Corrected compilation issues.
-
-2009-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.ac, lib/m4/hooks.m4: Moved cryptodev check to
-       lib/m4/hooks.m4 and now --enable-cryptodev actually works.
-
-2009-11-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: Doc fix.
-
-2009-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/cryptodev.c: corrected old type.
-
-2009-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/cryptodev.c: Only include cryptodev.h if cryptodev is there.
-
-2009-11-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/crypto-api.c, lib/crypto.c, lib/crypto.h,
-       lib/ext_session_ticket.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_constate.c, lib/gnutls_constate.h,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/gnutls_psk_netconf.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/includes/gnutls/crypto.h,
-       lib/includes/gnutls/gnutls.h.in, lib/mac-libgcrypt.c,
-       lib/opencdk/dummy.c, lib/opencdk/filters.h, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/main.h, lib/opencdk/opencdk.h,
-       lib/opencdk/pubkey.c, lib/opencdk/sig-check.c,
-       lib/opencdk/verify.c, lib/x509/crq.c, lib/x509/pbkdf2-sha1.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_encr.c, lib/x509/privkey.c,
-       lib/x509/sign.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_int.h, libextra/fipsmd5.c, libextra/gnutls_openssl.c: 
-       Merged the two internal hash API functions, to simplify and reduce
-       code.  gnutls_hmac* and gnutls_hash* were merged to gnutls_hash API.
-
-2009-11-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore, configure.ac, lib/Makefile.am, lib/crypto-api.c,
-       lib/crypto.c, lib/cryptodev.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_cryptodev.h, lib/gnutls_errors.c, lib/gnutls_global.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/libgnutls.map, src/Makefile.am, src/benchmark.c: Added cryptodev
-       support (/dev/crypto). Tested with
-       http://www.logix.cz/michal/devel/cryptodev/.  Added benchmark
-       utility for AES. Exported API to access encryption algorithms.
-
-2009-11-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Documented certtool's certificate request generation fix.
-
-2009-11-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/mpi.c: Corrected two issues that affected certificate
-       request generation.  1. Null padding is added on integers (found thanks to Wilankar
-       Trupti <trupti.wilankar@hp.com>) 2. In optional SignatureAlgorithm parameters field for DSA keys the
-       DSA parameters were added. Those were rejected by verisign. Gnutls
-       no longer adds those parameters there since other implementations
-       don't do either and having them does not seem to offer anything
-       (anyway you need the signer's certificate to verify thus public key
-       will be available).
-
-2009-11-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, tests/key-id/key-id,
-       tests/nist-pkits/gnutls_test_entry, tests/x509paths/chain: More
-       fixes of grep -q problem.
-
-2009-11-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: Allow exporting of Certificate requests to DER
-       format.  Added option --no-crq-extensions to avoid adding extensions
-       to a request.
-
-2009-11-23  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rfc2253-escape-test: Don't use 'grep -q', to fix portability
-       to OpenSolaris.  Reported by "Dr. David Kirkby" <david.kirkby@onetel.net> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3993>.
-
-2009-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/guile.texi: Doc fix.
-
-2009-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/intprops.h, gl/m4/sys_stat_h.m4,
-       gl/m4/unistd_h.m4, gl/sys_stat.in.h, gl/unistd.in.h,
-       gl/version-etc.c, lib/gl/Makefile.am, lib/gl/m4/sys_stat_h.m4,
-       lib/gl/m4/unistd_h.m4, lib/gl/sys_stat.in.h,
-       lib/gl/tests/intprops.h, lib/gl/unistd.in.h, maint.mk: Update gnulib
-       files.
-
-2009-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.9.
-
-2009-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/pmccabe2html, gl/Makefile.am, gl/getpagesize.c,
-       gl/m4/getpagesize.m4, gl/m4/gnulib-comp.m4, gl/tests/test-fseeko.c,
-       lib/gl/Makefile.am, lib/gl/getpagesize.c, lib/gl/m4/getpagesize.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/tests/test-fseeko.c: Update gnulib
-       files.
-
-2009-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Cleanup header inclusion.
-
-2009-11-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: More dead code removed. Based on
-       suggestions by Steve Grubb and Tomaz Mraz
-
-2009-11-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-11-06  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, m4/valgrind.m4: Fix --disable-valgrind-tests.
-
-2009-11-06  Simon Josefsson <simon@josefsson.org>
-
-       * gl/tests/Makefile.am: Update gnulib files.
-
-2009-11-06  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/getaddrinfo.m4, gl/m4/gnulib-comp.m4, maint.mk: Update
-       gnulib files.
-
-2009-11-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Link to libgcrypt explicitly when libgcrypt
-       functions are used.
-
-2009-11-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c, src/serv.c: Fix libgcrypt usage.
-
-2009-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: Simplified code which was based on older
-       version of internal structures.  Based on observations by Steve
-       Grubb and Tomas Mraz.
-
-2009-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Corrected bug fix author.
-
-2009-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Documented previous commit.
-
-2009-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls_constate.c, lib/gnutls_sig.c,
-       libextra/gnutls_openssl.c, src/certtool.c, src/cfg/cfg+.c,
-       src/cfg/platon/str/strdyn.c, src/serv.c: Cleanups and several bug
-       fixes found by Tomas Mraz.  "I've patched the following problems in the code found by review of
-       gnutls-2.8.5 code done by Steve Grubb.  See the patch attached.  The gnutls_constate.c bug might be potentially serious so I've
-       decided to mail it to you directly, not to the public mailing list.  The auth_cert.c change is just cleanup of the code.  In gnutls_openssl.c I've just fixed the potential crasher, correct
-       fix would require using asprintf or precomputed length of the buffer
-       to allocate a memory.  The certtool.c change is again just a cleanup."
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.8.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gl/tests/test-func.c: Update gnulib files.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4,
-       gl/tests/Makefile.am, gl/tests/test-inet_ntop.c,
-       gl/tests/test-inet_pton.c, gl/tests/test-sys_socket.c,
-       lib/gl/tests/test-func.c, lib/gl/tests/test-sys_socket.c,
-       libextra/gl/md5.c: Update gnulib files.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/m4/hooks.m4: Make sure libgcrypt's dependency on libgpg-error
-       is known.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Fix API name change.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix API name change.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-cert-select.c, doc/examples/ex-client-psk.c,
-       doc/examples/ex-pkcs12.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-export.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, guile/src/core.c, lib/auth_cert.c,
-       lib/auth_dhe.c, lib/auth_rsa_export.c, lib/auth_srp.c,
-       lib/auth_srp_passwd.c, lib/auth_srp_rsa.c, lib/ext_cert_type.c,
-       lib/ext_server_name.c, lib/ext_session_ticket.c,
-       lib/ext_signature.c, lib/gnutls_algorithms.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_mpi.c, lib/gnutls_priority.c,
-       lib/gnutls_psk.c, lib/gnutls_record.c, lib/gnutls_session_pack.c,
-       lib/gnutls_sig.c, lib/gnutls_state.c, lib/gnutls_str.c,
-       lib/gnutls_supplemental.c, lib/gnutls_ui.c, lib/gnutls_x509.c,
-       lib/minitasn1/decoding.c, lib/opencdk/armor.c, lib/opencdk/keydb.c,
-       lib/opencdk/literal.c, lib/opencdk/misc.c,
-       lib/opencdk/new-packet.c, lib/opencdk/read-packet.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/verify.c, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/verify.c, lib/x509/x509_write.c,
-       libextra/gl/md5.c, libextra/gnutls_openssl.c, src/certtool-cfg.c,
-       src/cli.c, src/common.c, src/crypt.c, src/psk.c, src/serv.c,
-       tests/anonself.c, tests/chainverify.c, tests/crq_apis.c,
-       tests/cve-2008-4989.c, tests/cve-2009-1415.c, tests/dhepskself.c,
-       tests/dn2.c, tests/finished.c, tests/hostname-check.c,
-       tests/mini-eagain.c, tests/mini.c, tests/nul-in-x509-names.c,
-       tests/openpgpself.c, tests/oprfi.c, tests/pkcs12_encode.c,
-       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c, tests/pskself.c,
-       tests/resume.c, tests/tlsia.c, tests/x509_altname.c,
-       tests/x509dn.c, tests/x509self.c, tests/x509sign-verify.c,
-       tests/x509signself.c: Indent code.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-cert-select.c, src/cli.c: Fix API name change.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am, lib/ext_signature.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Fix NEWS blurb.
-       Shorten new API name.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_signature.c: Doc fix, add Since tag.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_signature.c: Indent code.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4: Fix compile error.  Tiny patch by Brad Hards <bradh@frogmouth.net> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3943>.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_signature.c: Fix compile errors.  Tiny patch from Brad Hards <bradh@frogmouth.net> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3942>.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c: Fix compile errors.  Tiny patch from Brad Hards <bradh@frogmouth.net> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3941>.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/stdlib_h.m4, gl/stdlib.in.h,
-       gl/tests/test-getaddrinfo.c, lib/gl/Makefile.am,
-       lib/gl/m4/stdlib_h.m4, lib/gl/stdlib.in.h: Update gnulib files.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/vi.po.in: Sync with TP.
-
-2009-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am, src/Makefile.am, tests/Makefile.am: Use
-       INET_NTOP_LIB and INET_PTON_LIB.
-
-2009-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/pmccabe2html, build-aux/useless-if-before-free,
-       gl/m4/fseeko.m4, gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4,
-       gl/m4/inet_pton.m4, gl/m4/pmccabe2html.m4, gl/m4/ungetc.m4,
-       gl/sockets.c, gl/stdio.in.h, gl/sys_stat.in.h,
-       gl/tests/test-arpa_inet.c, gl/tests/test-getaddrinfo.c,
-       gl/tests/test-getdelim.c, gl/tests/test-getline.c,
-       gl/tests/test-gettimeofday.c, gl/tests/test-memchr.c,
-       gl/tests/test-netinet_in.c, gl/tests/test-select-stdin.c,
-       gl/tests/test-select.c, gl/tests/test-sockets.c,
-       gl/tests/test-stddef.c, gl/tests/test-stdint.c,
-       gl/tests/test-stdio.c, gl/tests/test-stdlib.c,
-       gl/tests/test-strerror.c, gl/tests/test-string.c,
-       gl/tests/test-sys_select.c, gl/tests/test-sys_socket.c,
-       gl/tests/test-sys_stat.c, gl/tests/test-sys_time.c,
-       gl/tests/test-time.c, gl/tests/test-unistd.c,
-       gl/tests/test-version-etc.c, gl/tests/test-wchar.c,
-       lib/gl/m4/fseeko.m4, lib/gl/m4/ungetc.m4, lib/gl/sockets.c,
-       lib/gl/stdio.in.h, lib/gl/sys_stat.in.h,
-       lib/gl/tests/test-memchr.c, lib/gl/tests/test-sockets.c,
-       lib/gl/tests/test-stddef.c, lib/gl/tests/test-stdint.c,
-       lib/gl/tests/test-stdio.c, lib/gl/tests/test-stdlib.c,
-       lib/gl/tests/test-string.c, lib/gl/tests/test-strverscmp.c,
-       lib/gl/tests/test-sys_socket.c, lib/gl/tests/test-sys_stat.c,
-       lib/gl/tests/test-time.c, lib/gl/tests/test-unistd.c,
-       lib/gl/tests/test-wchar.c, libextra/gl/md5.c, maint.mk: Update
-       gnulib files.
-
-2009-11-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-11-02  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Fix time bomb in chainverify self-test.  Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3925>.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Documented change for certificate retrieval callbacks.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: do not use gnutls_x509_crt_get_signature_algorithm() on
-       null certificates.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: Do not check signature algorithms for certificate
-       selection when using openpgp certificates.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/gnutls-cli.1: Avoid code duplication by using all the
-       functions defined in gnutls_algorithms to map from TLS 1.2 signature
-       algorithm numbers to gnutls signature algorithms.  Added minimal documentation for SIGN-* in gnutls-cli priority
-       strings.  Corrected bug in signature algorithm extension generation.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/ext_signature.c,
-       lib/ext_signature.h, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_int.h, lib/gnutls_sig.c: Avoid
-       code duplication by using all the functions defined in
-       gnutls_algorithms to map from TLS 1.2 signature algorithm numbers to
-       gnutls signature algorithms.  Added minimal documentation for SIGN-* in gnutls-cli priority
-       strings.  Corrected bug in signature algorithm extension generation.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa_export.c,
-       lib/auth_srp_rsa.c, lib/gnutls_sig.c, lib/gnutls_sig.h: Rationalized
-       function names for signature generation and verification during
-       handshake.  _gnutls_tls_sign_hdata ->
-       _gnutls_handshake_sign_cert_vrfy _gnutls_verify_sig_hdata ->
-       _gnutls_handshake_verify_cert_vrfy _gnutls_tls_sign_params ->
-       _gnutls_handshake_sign_data _gnutls_verify_sig_params ->
-       _gnutls_handshake_verify_data
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_signature.c: Do not output error if a server replies with
-       a SignatureAlgorithms extension.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dn2.c, tests/pathlen/ca-no-pathlen.pem: RSA_SHA -> RSA_SHA1
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: Documented memory leak fix.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/examples/ex-cert-select.c, doc/gnutls.texi,
-       lib/auth_cert.c, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/ext_signature.c, lib/ext_signature.h, lib/gnutls_alert.c,
-       lib/gnutls_sig.c, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/cli.c: Final
-       touch on signature algorithms in TLS 1.2 support. Added function
-       gnutls_session_sign_algorithm_get_requested() for callbacks to be
-       able to verify they return a correct certificate as well as
-       documentation for its usage.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/auth_cert.c, lib/auth_cert.h,
-       lib/ext_signature.c, lib/ext_signature.h, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_errors.c, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_x509.c,
-       lib/includes/gnutls/gnutls.h.in, lib/openpgp/gnutls_openpgp.c: 
-       Improved TLS 1.2 support. Added support for the SignatureAlgorithm
-       extension as well for the SignatureAlgorithm in certificate request.  Limitation for TLS 1.2 clients:  Only SHA1 or SHA256 are supported for generating signatures in
-       certificate verify message. That is to avoid storing all handshake
-       messages in memory. To be reconsidered in the future.
-
-2009-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: fixes in order to compile with -Werror
-
-2009-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_cert_type.c, lib/gnutls_cipher.c: remove unnessesary
-       warning.
-
-2009-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_cert_type.c: correctly check extension size.
-
-2009-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_handshake.c: When resuming a session do not
-       overwrite the initial session data with resumed session data.
-       Discovered on discussion at help-gnutls with Sebastien Decugis.
-
-2009-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_handshake.c, src/certtool.c: Fix
-       code style so it compiles with gcc 4.4 with warnings.
-
-2009-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/sys_stat_h.m4, gl/sys_stat.in.h,
-       lib/gl/Makefile.am, lib/gl/m4/sys_stat_h.m4, lib/gl/sys_stat.in.h: 
-       Update gnulib files.
-
-2009-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Drop unknown mini-hfail.
-
-2009-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-10-25  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/gnutls_handshake.c: Enable ClientHello to carry arbitrary
-       length extension data.
-
-2009-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/pkcs12.h, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c, lib/x509/x509_int.h,
-       src/certtool.c: Added GNUTLS_BAG_SECRET that adds support for
-       storing a randomly generated key into a PKCS-12 structure. This is a
-       gnutls extension, since PKCS-12 does not specify what should be in
-       the secret bag. What we do is store the key as OCTET string and
-       specify an OID of the PKCS-9 random nonce.
-
-2009-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/privkey_pkcs8.c: Corrected warnings in picky
-       compilers and rearanged code.
-
-2009-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/certtool.1, lib/cipher-libgcrypt.c,
-       lib/gnutls_algorithms.c, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/x509.h, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/pkcs12_bag.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/x509_int.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa: Added support for the AES family
-       of ciphers in the PKCS8 and 12 encryption options.
-
-2009-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: Do not print auto-generated files.
-
-2009-10-23  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2009-10-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutlsxx.cpp: Fix forgotten braces.  Reported by Jason Pettiss <jpettiss@yahoo.com>.
-
-2009-10-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutlsxx.cpp: Indent code.
-
-2009-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_sig.c, lib/gnutls_state.c: 1. Fix for memory leaks on interrupted handshake.  2. Fixes issue where a TLS 1.2 client will wrongly calculate hashes
-       if the server will select a different than 1.2 protocol.  3. In TLS 1.2 when a certificate request is sent, support is not
-       complete. In that case abort the handshake. By checking TLS 1.2 it
-       seems that the algorithms to be used for the signature in the
-       certificate verify message are negotiated not at the client/server
-       hello messages but rather selected by the server at the certificate
-       request. This might not look as bad, but since in this message we
-       have to sign all previous handshake messages, it forces us to keep
-       all the handshake messages into a buffer until this point... I don't
-       know who proposed this change to the TLS WG, but it seems it wasn't
-       really thought of.
-
-2009-10-20  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Fix expired cert.
-
-2009-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Make sure we use libgcrypt correctly.
-
-2009-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/time_h.m4: Update gnulib files.
-
-2009-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/sys_stat_h.m4,
-       gl/sys_stat.in.h, gl/tests/Makefile.am, gl/tests/test-sys_stat.c,
-       gl/tests/test-time.c, gl/time.in.h, gl/unistd.in.h,
-       lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/sys_stat_h.m4, lib/gl/sys_stat.in.h,
-       lib/gl/tests/test-sys_stat.c, lib/gl/unistd.in.h: Update gnulib
-       files.
-
-2009-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutlsxx.map: Export C++ symbol visibility.  Tiny patch from Boyan Kasarov <bkasarov@gmail.com>.
-
-2009-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pkix_asn1_tab.c: Regenerate.
-
-2009-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12_encode.c: Fix MAC password.
-
-2009-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12_encode.c: Use better friendly names.
-
-2009-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/pkcs12_encode.c: Add self test to test
-       PKCS#12 functions.
-
-2009-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pkix.asn: Work around 'Cannot find OID: 1.2.840.113549.1.9.21'
-       PKCS#12 problem.  Reported by Michael Welsh Duggan <mwd@cert.org> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1786>.
-
-2009-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Mention that sometimes CA certs needs to be
-       included in PKCS#12 files.  Reported by Ivars Suba <Ivars.Suba@bank.lv>.
-
-2009-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: After setting priorities using new API,
-       update current TLS version.
-
-2009-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.7.
-
-2009-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/stdio_h.m4,
-       gl/m4/unistd_h.m4, gl/progname.c, gl/stdio.in.h, gl/unistd.in.h,
-       lib/gl/Makefile.am, lib/gl/m4/stdio_h.m4, lib/gl/m4/unistd_h.m4,
-       lib/gl/stdio.in.h, lib/gl/unistd.in.h, maint.mk: Update gnulib
-       files.
-
-2009-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutlsxx.map: Fix symbol export rules.  Tiny patch by Boyan Kasarov <bkasarov@gmail.com>.
-
-2009-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutlsxx.cpp: Include config.h.  Tiny patch from Boyan Kasarov <bkasarov@gmail.com>.
-
-2009-10-01  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/gnutls_sig.c: Reserve enough room for hash buffers.  This fixes x509self self-test.
-
-2009-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/sys_stat_h.m4, gl/m4/unistd_h.m4,
-       gl/tests/Makefile.am, gl/unistd.in.h, lib/gl/Makefile.am,
-       lib/gl/m4/sys_stat_h.m4, lib/gl/m4/unistd_h.m4,
-       lib/gl/tests/Makefile.am, lib/gl/unistd.in.h: Update gnulib files.
-
-2009-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Attempt to negotiate TLS 1.2 by default.
-
-2009-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c: Fix comment.
-
-2009-09-30  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa_export.c,
-       lib/auth_srp_rsa.c, lib/gnutls_sig.c, lib/gnutls_sig.h: Fix
-       server-side TLS 1.2 support.
-
-2009-09-30  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/gnutls_sig.c: Calculate DER-encoded DigestInfo on-the-fly
-       rather than hard code it.
-
-2009-09-28  Ludovic Courtès <ludo@gnu.org>
-
-       * configure.ac, guile/src/core.c: guile: Adjust for Guile 1.9.3+.  * guile/src/core.c (mark_session_record_port,
-         free_session_record_port): Conditionalize on `SCM_MAJOR_VERSION == 1
-         && SCM_MINOR_VERSION <= 8'.  (scm_init_gnutls_session_record_port_type): Adjust accordingly.    (make_session_record_port): Use `scm_gc_malloc_pointerless ()'
-         when available.
-
-2009-09-28  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/core.c: guile: Syntactic nitpicking.  * guile/src/core.c (SCM_GNUTLS_MAKE_SESSION_DATA,   SCM_GNUTLS_SET_SESSION_RECORD_PORT): Remove extraneous semicolon.
-
-2009-09-28  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/core.c: guile: Use Guile's malloc routines.  * guile/src/core.c (scm_init_gnutls): Use Guile's malloc routines.
-
-2009-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_server_name.c: Clarify gnutls_server_name_set usage.  Reported by Daniel Black <daniel@cacert.org> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3878>.
-
-2009-09-23  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/core.c: Fix integer/pointer cast warnings in the Guile
-       bindings on x86_64.  * guile/src/core.c (do_fill_port, fill_session_record_port_input,   scm_gnutls_set_session_transport_fd_x): Make sure pointer/integer
-         casts use integers of the right size.
-
-2009-09-23  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/extra.c: Update Guile bindings to the current OpenPGP
-       API.  * guile/src/extra.c (scm_gnutls_openpgp_certificate_id,   scm_gnutls_openpgp_certificate_id_x): Use   the newer `gnutls_openpgp_crt_get_key_id ()'.
-
-2009-09-23  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/Makefile.am, guile/src/Makefile.am, guile/tests/Makefile.am: 
-       Turn off auto-compilation when using Guile 1.9+.  * guile/src/Makefile.am (GUILE_FOR_BUILD): Turn off auto-compilation   with Guile 1.9+.  * guile/tests/Makefile.am (TESTS_ENVIRONMENT): Likewise.  * doc/Makefile.am (GUILE_FOR_BUILD): Likewise.
-
-2009-09-23  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/core.c, guile/src/errors.c, guile/src/extra.c,
-       guile/src/utils.c, guile/src/utils.h: Fix inclusion of <config.h> in
-       Guile bindings.  * guile/src/core.c, guile/src/errors.c, guile/src/extra.c,   guile/src/utils.c: Include <config.h> first, as suggested by Simon   Josefsson.  * guile/src/utils.h: Don't include <config.h>.
-
-2009-09-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/unistd.in.h, lib/gl/unistd.in.h: Update gnulib files.
-
-2009-09-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-09-22  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh: Chmod.
-
-2009-09-22  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-09-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.6.
-
-2009-09-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/getdelim.m4, gl/m4/stdio_h.m4,
-       gl/m4/stdlib_h.m4, gl/m4/sys_stat_h.m4, gl/m4/unistd_h.m4,
-       gl/stdio.in.h, gl/stdlib.in.h, gl/sys_stat.in.h, gl/unistd.in.h,
-       lib/gl/Makefile.am, lib/gl/m4/stdio_h.m4, lib/gl/m4/stdlib_h.m4,
-       lib/gl/m4/sys_stat_h.m4, lib/gl/m4/unistd_h.m4, lib/gl/stdio.in.h,
-       lib/gl/stdlib.in.h, lib/gl/sys_stat.in.h, lib/gl/unistd.in.h,
-       maint.mk: Update gnulib files.
-
-2009-09-13  Brad Hards <bradh@frogmouth.net>
-
-       * lib/x509/x509.c: Add forgotten documentation bits for issuer
-       altname Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, gl/m4/getaddrinfo.m4, gl/m4/getline.m4,
-       gl/m4/readline.m4, gl/m4/select.m4, gl/m4/sockets.m4,
-       gl/m4/socklen.m4, gl/m4/sockpfaf.m4, lib/gl/m4/sockets.m4,
-       lib/gl/m4/socklen.m4, lib/gl/m4/sockpfaf.m4, lib/gl/m4/time_r.m4: 
-       Update gnulib files.
-
-2009-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cipher.c: Add debug message.  Tiny patch from Miroslav
-       Kratochvil <exa.exa@gmail.com> in
-       <http://thread.gmane.org/gmane.network.gnutls.general/1758>.
-
-2009-09-11  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/Makefile.am: Fix out-of-tree build.  Fix out-of-tree build; gnutls.h is generated in the build tree.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/m4/hooks.m4: Enable Camellia by default.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.5.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Bump version.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/stdio_h.m4, gl/m4/string_h.m4,
-       gl/m4/sys_stat_h.m4, gl/m4/unistd_h.m4, gl/stdio.in.h,
-       gl/string.in.h, gl/sys_stat.in.h, gl/unistd.in.h,
-       lib/gl/Makefile.am, lib/gl/m4/stdio_h.m4, lib/gl/m4/string_h.m4,
-       lib/gl/m4/sys_stat_h.m4, lib/gl/m4/unistd_h.m4, lib/gl/stdio.in.h,
-       lib/gl/string.in.h, lib/gl/sys_stat.in.h, lib/gl/unistd.in.h,
-       maint.mk: Update gnulib files.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/m4/hooks.m4: Bump library version for new APIs.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c, lib/x509/x509.c: Indent.
-
-2009-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Move the new ABIs to the GNUTLS_2_10 section.
-
-2009-09-09  Brad Hards <bradh@frogmouth.net>
-
-       * doc/manpages/Makefile.am, lib/includes/gnutls/x509.h,
-       lib/libgnutls.map, lib/x509/output.c, lib/x509/x509.c,
-       tests/Makefile.am, tests/x509_altname.c: Add X509 Issuer Altname
-       functions Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-09-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/key-id/key-id: Don't use ! to negate exit status.  Reported
-       by "Tom G. Christensen" <tgc@jupiterrise.com> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3861>.
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/close.c, gl/inet_ntop.c, gl/inet_pton.c,
-       gl/m4/sys_stat_h.m4, gl/sys_stat.in.h, gl/tests/Makefile.am,
-       gl/unistd.in.h, lib/gl/Makefile.am, lib/gl/m4/sys_stat_h.m4,
-       lib/gl/sys_stat.in.h, lib/gl/unistd.in.h, maint.mk: Update gnulib
-       files.
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/configure.ac, lib/m4/hooks.m4, libextra/configure.ac: 
-       Bump versions.
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Commit cyclo/ dir too.
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.4.
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check.c: Build when OpenPGP is disabled.
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix!
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Typo.
-
-2009-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Ugly hack for autobuilder.
-
-2009-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Use SHA256 as MAC by default.
-
-2009-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-09-01  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/gnutls_algorithms.c: Add SHA-2 cipher suites.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-09-01  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/debug.c: Print NewSessionTicket handshake.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Handle XMPP SANs properly.  Reported by Howard
-       Chu <hyc@symas.com> in <https://savannah.gnu.org/support/?106975>.
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_dhe.c: Need another header.
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS, NEWS: Add.
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Add comment explaining where magic values
-       come from.
-
-2009-08-31  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/auth_cert.c: Fix parsing Certificate Request for TLS 1.2.  Fix the logic to skip supported_signature_algorithms in Certificate
-       Request.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-31  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_pk.c, lib/gnutls_state.c: Use
-       SHA256 for PRF if TLS 1.2.  Use SHA256 for the basis of PRF, and for the hash over handshake
-       messages.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-31  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/auth_dhe.c, lib/auth_rsa_export.c, lib/auth_srp_rsa.c,
-       lib/gnutls_sig.c, lib/gnutls_sig.h: Respect TLS signature algorithm
-       in server KX.  Verify signature of DH parameters in Server Key Exchange with the
-       embedded signature algorithm.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-31  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_int.h: Add functions for TLS signature algorithm.  Add functions to convert TLS signature algorithm from/to constants
-       defined by GnuTLS.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update gnulib files.
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2009-08-25  Fabian Keil <fk@fabiankeil.de>
-
-       * src/serv.c: Remove dead store in listen_socket().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-25  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/gnutls_buffers.c: Remove dead store in
-       _gnutls_io_write_buffered().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/x509/x509.c: Remove dead store in
-       gnutls_x509_crt_list_import().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/auth_srp_passwd.c: Remove dead store in pwd_put_values().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * src/certtool.c: Remove dead store in pkcs12_info().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-25  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/auth_cert.c: Remove write-only variable info in
-       _gnutls_proc_cert_cert_req().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-25  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/auth_rsa_export.c: Remove write-only variable info in
-       gen_rsa_export_server_kx().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-25  Fabian Keil <fk@fabiankeil.de>
-
-       * src/cfg/shared.c: Remove write-only variable sep_ar_idx in
-       split_multi_arg().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/x509/pkcs12.c: Remove write-only variable tmp_size in
-       _pkcs12_decode_safe_content().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-29  Fabian Keil <fk@fabiankeil.de>
-
-       * THANKS: Remove duplicates. Two exact ones and a pretty close one.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-25  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/auth_srp_passwd.c: Mark what looks like a bug in in
-       _gnutls_srp_pwd_read_entry() Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * src/crypt.c: In main(), rename salt to salt_size and don't bother
-       reading info.salt which we don't use anyway.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/misc.c: (cdk_strlist_next): Handle NULL root value better.  Based on report
-       by Fabian Keil <fk@fabiankeil.de>.
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/x509/output.c: In print_extensions(), declare the *_idx
-       variables as int instead of size_t.  While it shouldn't make a difference, it makes more sense to me.
-       It's also consistent with (at least) print_crl().  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/x509/output.c: In print_extensions(), initialize *_idx
-       variables once before entering the for loop instead of each run.  Otherwise checking them is pointless as they always will be zero.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/x509/output.c: In print_crq(), initialize challenge and
-       extensions once before entering the for loop instead of each run.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Fabian Keil <fk@fabiankeil.de>
-
-       * lib/x509/output.c: In print_crl(), initialize aki_idx and crl_nr
-       once before entering the for loop instead of each run.  Otherwise the "error: more than one AKI extension\n" and "error:
-       more than one CRL number\n" checks want work.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509dn.c: Likewise.
-
-2009-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509dn.c: Don't use deprecated type.
-
-2009-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Overwrite gettext's size_max.m4 to make sure we use one
-       that works.
-
-2009-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/stdlib_h.m4,
-       gl/m4/sys_socket_h.m4, gl/m4/unistd_h.m4, gl/progname.c,
-       gl/stdlib.in.h, gl/sys_socket.in.h, gl/tests/Makefile.am,
-       gl/unistd.in.h, gl/vasnprintf.c, lib/gl/Makefile.am,
-       lib/gl/m4/stdlib_h.m4, lib/gl/m4/sys_socket_h.m4,
-       lib/gl/m4/unistd_h.m4, lib/gl/stdlib.in.h, lib/gl/sys_socket.in.h,
-       lib/gl/tests/test-func.c, lib/gl/unistd.in.h, lib/gl/vasnprintf.c,
-       libextra/gl/override/lib/md5.c.diff: Update gnulib files.
-
-2009-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/configure.ac, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_str.h, lib/opencdk/Makefile.am,
-       lib/x509/privkey_pkcs8.c, libextra/configure.ac: Fix use of
-       deprecated types, for now and the future.
-
-2009-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Fix gnutls_datum usage.
-
-2009-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_pk.c, lib/gnutls_str.c,
-       lib/gnutls_x509.c, lib/includes/gnutls/gnutls.h.in,
-       lib/opencdk/pubkey.c, lib/openpgp/gnutls_openpgp.c,
-       lib/x509/common.c, lib/x509/extensions.c, lib/x509/mpi.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509_write.c, src/certtool.c,
-       tests/openpgp_test.c, tests/resume.c, tests/x509_test.c,
-       tests/x509dn.c, tests/x509sign-verify.c: Fix deprecated usage of
-       gnutls_datum.
-
-2009-08-27  Dan Fandrich <dan@coneharvesters.com>
-
-       * lib/opencdk/new-packet.c, lib/opencdk/packet.h,
-       lib/opencdk/pubkey.c, lib/opencdk/read-packet.c,
-       lib/opencdk/stream.c, lib/opencdk/stream.h, lib/opencdk/verify.c,
-       lib/x509/crq.c: Fix compiler warning bugs for OpenWatcom.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-25  Daiki Ueno <ueno@unixuser.org>
-
-       * tests/resume.c: Fix double-free Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * .gitattributes: Disable whitespace for file that need it.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check.c: Add check of OpenPGP cert too.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gl/override/lib/md5.c.diff: Work around whitespace commit
-       hook.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/stdio_h.m4, gl/select.c, gl/stdio.in.h,
-       lib/gl/Makefile.am, lib/gl/m4/stdio_h.m4, lib/gl/stdio.in.h,
-       maint.mk: Update gnulib files.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gl/gnulib.mk, libextra/gl/m4/gnulib-cache.m4,
-       libextra/gl/md5.c, libextra/gl/override/lib/md5.c.diff: Reduce stack
-       usage and remove code.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Remove unused constant.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Reduce stack usage.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/pgp.c: Fix OpenPGP hostname comparison.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/output.c, lib/openpgp/pgp.c: Reduce stack usage.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Reduce stack usage.
-
-2009-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * .x-sc_m4_quote_check, lib/gnutls_sig.c,
-       lib/opencdk/write-packet.c: Fix syntax-check nits.
-
-2009-08-20  Daiki Ueno <ueno@unixuser.org>
-
-       * lib/libgnutls.map, lib/opencdk/keydb.c, tests/dn2.c, tests/mpi.c,
-       tests/resume.c: Fix memleaks.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix references.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Also commit devel/ web pages.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Fix ChangeLog.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.3.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_session_ticket.c: Typo.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_sig.c: Need gnutls_algorithms.h for prototypes.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add.
-
-2009-08-18  Jonathan Bastien-Filiatrault <joe@x2a.org>
-
-       * lib/auth_cert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_sig.c, lib/gnutls_state.c: 
-       Replace explicit version checks with feature checks Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Reformat paragraphs.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, src/cli-gaa.c, src/cli-gaa.h,
-       src/serv-gaa.c, src/serv-gaa.h: Generated.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add cross reference.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml, lib/ext_session_ticket.c: Fix
-       GTK-DOC output.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Fix namespace of new APIs.
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_session_ticket.c, lib/gnutls_extensions.c,
-       lib/gnutls_session_pack.c: Fix whitespace.
-
-2009-08-19  Daiki Ueno <ueno@unixuser.org>
-
-       * doc/TODO, lib/Makefile.am, lib/ext_session_ticket.c,
-       lib/ext_session_ticket.h, lib/gnutls_constate.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_session_pack.c, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
-       lib/m4/hooks.m4, src/cli.c, src/cli.gaa, src/serv.c, src/serv.gaa,
-       tests/resume.c: session ticket support Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix indent rule.
-
-2009-08-19  Daiki Ueno <ueno@unixuser.org>
-
-       * doc/gnutls.texi: internals doc update Hi, When I wrote SessionTicket extension I referred to the manual node
-       "Adding a New TLS Extension", and noticed that it is not up to date.
-       So, here is a patch.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * gl/stdio.in.h, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/memmove.m4, lib/gl/memmove.c,
-       lib/gl/stdio.in.h, maint.mk: Update gnulib files.
-
-2009-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/stddef_h.m4, lib/gl/m4/stddef_h.m4: Update gnulib files.
-
-2009-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Don't ignore gl/ files!
-
-2009-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/tests/test-stddef.c, lib/gl/tests/test-stddef.c: Update gnulib
-       files.
-
-2009-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/wchar.m4,
-       gl/stddef.in.h, gl/stdlib.in.h, gl/string.in.h,
-       gl/tests/Makefile.am, gl/tests/test-stdio.c,
-       gl/tests/test-stdlib.c, gl/tests/test-string.c,
-       gl/tests/test-unistd.c, gl/tests/test-wchar.c, gl/unistd.in.h,
-       lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/wchar.m4,
-       lib/gl/stddef.in.h, lib/gl/stdlib.in.h, lib/gl/string.in.h,
-       lib/gl/tests/Makefile.am, lib/gl/tests/test-stdio.c,
-       lib/gl/tests/test-stdlib.c, lib/gl/tests/test-string.c,
-       lib/gl/tests/test-time.c, lib/gl/tests/test-unistd.c,
-       lib/gl/tests/test-wchar.c, lib/gl/time.in.h, lib/gl/unistd.in.h,
-       maint.mk: Update gnulib files.
-
-2009-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.2.
-
-2009-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add 2.8.3 entry.
-
-2009-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/close.m4, gl/m4/fclose.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/sys_ioctl_h.m4, gl/m4/sys_socket_h.m4,
-       gl/m4/unistd_h.m4, gl/tests/Makefile.am, gl/tests/sys_ioctl.in.h,
-       gl/tests/test-stdio.c, gl/tests/test-stdlib.c,
-       gl/tests/test-string.c, gl/tests/test-unistd.c,
-       gl/tests/test-version-etc.sh, gl/unistd.in.h, gl/vasnprintf.c,
-       lib/gl/Makefile.am, lib/gl/m4/sys_socket_h.m4,
-       lib/gl/m4/threadlib.m4, lib/gl/m4/unistd_h.m4,
-       lib/gl/tests/test-stdio.c, lib/gl/tests/test-stdlib.c,
-       lib/gl/tests/test-string.c, lib/gl/tests/test-unistd.c,
-       lib/gl/unistd.in.h, lib/gl/vasnprintf.c: Update gnulib files.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/tests/test-version-etc.sh: Update gnulib files.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/tests/test-version-etc.sh: Update gnulib files.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Don't generate gzip archives.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/gnutls_buffers.c, lib/gnutls_int.h,
-       lib/io_debug.h: Remove io_debug.h stuff, it is superseded by
-       self-tests like mini-eagain.c.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: (gnutls_x509_crt_import): Re-initialize the ASN.1 structure.  If this is not done here, the next certificate loading may fail
-       because asn1_der_decoding modified the ASN.1 structure.  Triggered
-       by the hostname-check self-test.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Revert "Always build vc checkouts with debugging." This reverts commit b68235be4d1ff7739456e0c5d8c28c6e96e15a14.  It
-       breaks because -Wdisabled-optimizations will cause an error when
-       optimizations are disabled.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Always build vc checkouts with debugging.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check.c: Fix.
-
-2009-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check.c: Add another SAN/CN collision test.
-       Reported by Daniel Stenberg <daniel@haxx.se> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1735>.
-
-2009-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check.c: Fix logic.
-
-2009-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check.c: Test when SAN and CN differs.  Inspired by
-       report by Daniel Stenberg <daniel@haxx.se> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1734>.
-
-2009-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am, libextra/gl/m4/sockets.m4: Use include
-       instead of copy.
-
-2009-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gl/m4/sockets.m4: Add, needed for -lws2_32 in libextra.
-
-2009-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/m4/hooks.m4: Add.
-
-2009-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Doc fix.
-
-2009-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_anon_cred.c,
-       lib/gnutls_auth.c, lib/gnutls_cert.c, lib/gnutls_psk.c,
-       lib/gnutls_srp.c, lib/gnutls_state.c, lib/gnutls_x509.c,
-       lib/openpgp/gnutls_openpgp.c, lib/openpgp/pgp.c,
-       libextra/gnutls_ia.c: Fix typos in documentation.  Reported by Daiki
-       Ueno <ueno> in <https://savannah.gnu.org/support/?106969>.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-comp.m4, gl/m4/sys_select_h.m4, gl/stdio-write.c,
-       gl/sys_select.in.h, gl/tests/gettimeofday.c,
-       gl/tests/test-sys_select.c, gl/tests/test-version-etc.sh,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/stdio-write.c, maint.mk: Update
-       gnulib files.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Need to add LIBSOCKET because we link to
-       ../lib's gnulib library, for mingw.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/cs.po.in, lib/po/fr.po.in, lib/po/nl.po.in,
-       lib/po/pl.po.in, lib/po/sv.po.in: Sync with TP.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add 2.8.x news entries.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix usage.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Copy cyclomatic code complexity charts too.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Look only for latest _required_
-       libgcrypt/libtasn1 version.  Reported by Marco d'Itri <md@linux.it> via Andreas Metzler
-       <ametzler@downhill.at.eu.org> as Debian BTS #540449.
-
-2009-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : commit c529f792e4c899080eb1f6e104c8552fa0770356 Author: Nikos
-       Mavrogiannopoulos <nmav@gnutls.org> Date:   Sat Aug 8 09:06:57 2009
-       +0300
-
-2009-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Check for NUL in SANs and replace accordingly.
-
-2009-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/hostname-check.README,
-       tests/hostname-check.c: Move comment into source.
-
-2009-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Refuse to return DNs with embedded NULs which
-       breaks other code.  Problem published by Dan Kaminsky and Moxie Marlinspike at
-       BlackHat09.
-
-2009-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Revert everything since last release, to allow
-       minimal patch to be applied.
-
-2009-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Fix invocation of rfc2253-escape-test.  Reported by Brad Hards <bradh@frogmouth.net> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3750>.
-
-2009-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/vc-list-files, gl/Makefile.am, gl/error.c, gl/fseeko.c,
-       gl/m4/gnulib-comp.m4, gl/m4/lib-link.m4, gl/m4/stdio_h.m4,
-       gl/m4/unistd_h.m4, gl/socket.c, gl/sockets.c, gl/stdio.in.h,
-       gl/tests/Makefile.am, gl/tests/test-select.c,
-       gl/tests/test-stdio.c, gl/tests/test-stdlib.c,
-       gl/tests/test-string.c, gl/tests/test-unistd.c,
-       gl/tests/test-version-etc.c, gl/tests/test-version-etc.sh,
-       gl/unistd.in.h, gl/version-etc.c, gl/version-etc.h,
-       lib/gl/Makefile.am, lib/gl/fseeko.c, lib/gl/m4/iconv.m4,
-       lib/gl/m4/lib-link.m4, lib/gl/m4/stdio_h.m4, lib/gl/m4/time_h.m4,
-       lib/gl/m4/unistd_h.m4, lib/gl/sockets.c, lib/gl/stdio.in.h,
-       lib/gl/tests/test-stdio.c, lib/gl/tests/test-stdlib.c,
-       lib/gl/tests/test-string.c, lib/gl/tests/test-unistd.c,
-       lib/gl/time.in.h, lib/gl/unistd.in.h, libextra/gl/m4/lib-link.m4,
-       libextra/gl/md5.h, maint.mk: Update gnulib files.
-
-2009-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/rfc2253-escape-test: Add self-test of RFC
-       2253 escaping.
-
-2009-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Simplify and fix mem leak.
-
-2009-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Don't use fixed size buffer for strings.
-
-2009-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nul-in-x509-names.c: Exit with failure on failure.
-
-2009-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nul-in-x509-names.c: Fix output.
-
-2009-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c: Cleanup code.
-
-2009-08-04  Tomas Hoger <thoger@redhat.com>
-
-       * lib/gnutls_str.c, lib/gnutls_str.h, lib/openpgp/pgp.c,
-       lib/x509/rfc2818_hostname.c: GnuTLS vs. NULL chars in CNs Check cert name size in _gnutls_hostname_compare()     This is needed to protect against NULL (\0) characters embedded
-           in X509 certificates' CNs or subjectAltNames, that can be used
-           to fool SSL certificate verification as was demonstrated by Moxie
-       Marlinspike on BH USA 2009:
-       http://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html#MarlinspikeSigned-off-by: Simon Josefsson <simon@josefsson.org>
-
-2009-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/nul-in-x509-names.c: Add self-test for
-       NUL in X.509 CN/SAN problem.
-
-2009-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Fix typo.
-
-2009-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Fix expected output, a cert have expired.
-
-2009-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Fix crash.
-
-2009-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/mini-eagain.c: Make it build.
-
-2009-07-29  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Drop .c and sort.
-
-2009-07-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/minitasn1/errors.c, lib/minitasn1/libtasn1.h: Use
-       libtasn1 v2.3.
-
-2009-07-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : commit c02e9f1459330119d2947a4e46fb60c0e12fa32d Author: Nikos
-       Mavrogiannopoulos <nmav@gnutls.org> Date:   Sun Jul 26 15:22:06 2009
-       +0300
-
-2009-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: do not allow null character in DN.
-
-2009-07-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: updated files to be ignored.
-
-2009-07-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/dn.c: Typo fix in test output. Patch by Brad Hards
-       <bradh@frogmouth.net>
-
-2009-07-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: Removed duplicate entry of Daniel and added Fabian, Brad
-       and Daiki.
-
-2009-07-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-psk.c,
-       doc/examples/ex-serv-srp.c, doc/examples/ex-serv1.c,
-       lib/auth_cert.c, lib/gnutls_buffers.c, lib/gnutls_mpi.c,
-       lib/gnutls_pk.c, lib/gnutls_sig.c, lib/opencdk/stream.c,
-       lib/opencdk/write-packet.c, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c, lib/x509/privkey_pkcs8.c, src/certtool.c,
-       src/psk.c: Several bug fixes by Fabian Keil (some were modified by
-       me).
-
-2009-07-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/mini-eagain.c: reduced transferred data size.
-
-2009-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_srp.c, lib/gnutls_buffers.c, lib/gnutls_errors.c,
-       lib/gnutls_record.c, lib/gnutls_supplemental.c,
-       lib/opencdk/armor.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
-       lib/opencdk/read-packet.c, lib/opencdk/sig-check.c,
-       lib/opencdk/stream.c, src/certtool-cfg.c, tests/chainverify.c: Added
-       casts to reduce warnings (based on report by Brad Hards).
-
-2009-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .gitignore: Added more stuff to have a clean status.
-
-2009-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * README-alpha: Documentation corrections by Brad Hards.
-
-2009-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c: size_t and unsigned int fixes.
-
-2009-07-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_str.c: There are cases where those buffers might
-       overlap
-
-2009-07-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: Patch by Tim Kosse: "If
-       _gnutls_send_finished fails with GNUTLS_E_AGAIN or GNUTLS_E_AGAIN it
-       eventually gets called a second time.  It however does not call _gnutls_send_handshake with a NULL pointer
-       on repeated calls, ultimately leading to an internal error in
-       _gnutls_handshake_io_send_int."
-
-2009-07-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.h, lib/gnutls_ui.c: Corrected
-       gnutls_certificate_client_get_request_status(). Based on observation
-       by Peter Hendrickson <pdh@wiredyne.com>.
-
-2009-07-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, tests/Makefile.am, tests/mini-eagain.c: 
-       Added bug fix that allows gnutls_record_recv/send resuming from
-       previously interrupted actions. Patch by from Tim Kosse
-       <tim.kosse@filezilla-project.org>.  Added a self test to check those functions in handling interrupted
-       states.
-
-2009-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : commit 21a7186bf83084a2bc85bbb7ddb600ccd070f1c2 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Tue Jun 23 23:04:51 2009
-       +0200
-
-2009-06-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Doc fix.
-
-2009-06-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-06-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/dn2.c: Add self-test of off-by-one size
-       error.
-
-2009-06-22  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2009-06-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-06-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/dn.c: Fix off-by-one size computation that leads to
-       truncated strings.  Reported by Tim Kosse
-       <tim.kosse@filezilla-project.org> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3651>.
-
-2009-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/errno.in.h, gl/getpagesize.c,
-       gl/m4/errno_h.m4, gl/m4/gnulib-comp.m4, gl/m4/memchr.m4,
-       gl/m4/string_h.m4, gl/memchr.valgrind, gl/strerror.c,
-       gl/string.in.h, gl/tests/Makefile.am, gl/tests/getpagesize.c,
-       lib/gl/Makefile.am, lib/gl/errno.in.h, lib/gl/getpagesize.c,
-       lib/gl/m4/errno_h.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/memchr.m4, lib/gl/m4/string_h.m4, lib/gl/memchr.valgrind,
-       lib/gl/string.in.h, lib/gl/tests/Makefile.am,
-       lib/gl/tests/getpagesize.c: Update gnulib files.
-
-2009-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/m4/hooks.m4: Fix --disable-openssl-compatibility
-       parameter.  Reported by Matthias Drochner <M.Drochner@fz-juelich.de>
-       in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3646>.
-
-2009-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo.
-
-2009-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/mpi.c: Fix build error.
-
-2009-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_ui.c: Return proper MPI lengths in bits.  Reported by
-       Peter Hendrickson <pdh@wiredyne.com> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3607>.
-
-2009-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : commit fad0d9b3289087dbd56176e7a1ccb498cf5ef099 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Wed Jun 10 17:55:05 2009
-       +0200
-
-2009-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12_s2k.c: Improve test vectors.
-
-2009-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/Makefile.am, tests/pkcs12_s2k_pem.c: Added new
-       self-test pkcs12_s2k_pem.
-
-2009-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs12_encr.c: Fix PKCS#12 string to key function for
-       1/128 inputs.  Reported by "Kukosa, Tomas"
-       <tomas.kukosa@siemens-enterprise.com> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1663>.
-
-2009-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/getpagesize.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/memchr.m4, gl/m4/mmap-anon.m4, gl/memchr.c,
-       gl/tests/Makefile.am, gl/tests/getpagesize.c,
-       gl/tests/test-memchr.c, gl/tests/zerosize-ptr.h,
-       lib/gl/Makefile.am, lib/gl/m4/getpagesize.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/memchr.m4,
-       lib/gl/m4/mmap-anon.m4, lib/gl/memchr.c, lib/gl/tests/Makefile.am,
-       lib/gl/tests/getpagesize.c, lib/gl/tests/test-memchr.c,
-       lib/gl/tests/zerosize-ptr.h: Update gnulib files.
-
-2009-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-comp.m4, gl/m4/version-etc.m4,
-       gl/tests/test-alignof.c, gl/version-etc.c: Update gnulib files.
-
-2009-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.1.
-
-2009-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c: Mark global extfunc_size as having static
-       scope.
-
-2009-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/init_roundtrip.c: Add self-test to detect
-       extension init/deinit problem.
-
-2009-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c: Deinitalize extension global variable
-       properly.  See <http://bugs.gentoo.org/272388>.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/alignof.h, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/tests/Makefile.am,
-       gl/tests/test-alignof.c, lib/gl/alignof.h: Update gnulib files.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_srp.c, lib/debug.c, lib/debug.h, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/libgnutls.map, lib/pk-libgcrypt.c,
-       tests/mpi.c: Rename _gnutls_dump_mpi to _gnutls_mpi_log.  Rewrite to
-       use less stack space.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Reduce stack size limit check.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Reduce stack size.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Fix malloc failure error strings.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crq_apis.c: Test more.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: (_gnutls_x509_oid_data2string): Return proper @res_size for NULL
-       res.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Indent.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Doc fix.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Reduce stack usage.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Doc fix.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Simplify.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crq_apis.c: Test more.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Reduce stack usage.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crq_apis.c: Test more.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Reduce stack usage.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Fix uninitialized variable access.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Reduce stack frame usage.
-
-2009-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: Reduce stack usage.
-
-2009-06-02  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/manywarnings.m4: Update gnulib files.
-
-2009-06-02  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crq_apis.c: Add.
-
-2009-06-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Don't assert on expected errors.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add crq self-test.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/extensions.c: Reduce stack usage.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Reduce stack usage.  Fix build failure wrt
-       variable names.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/x509.h: Doc fix.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Doc fix.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Return buffer size for NULL/0 inputs.  Fix output
-       buffer size computation.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/extensions.c: Fix mem leak.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Don't assert for expected errors.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Export wstack.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/configure.ac, libextra/configure.ac: Fix WSTACK_CFLAGS.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Improve logging and fix warnings.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/Makefile.am, lib/openpgp/Makefile.am,
-       lib/x509/Makefile.am, libextra/Makefile.am: Check stack size.
-
-2009-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/manywarnings.m4: Update gnulib files.
-
-2009-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: Added gnutls_dh_get_prime_bits limitation.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs12_bag.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_write.c: Doc fix.  Reported by Peter Hendrickson
-       <pdh@wiredyne.com>.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix paths.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.9.0.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix paths for alpha release.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_ui.c: Doc fix.
-
-2009-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gnupload: Update gnulib files.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/srptool.1: Fix.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/gnutls-serv.1: Doc fix.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk.c: Doc fix.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs7.c: Doc fix.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Cleanup rules.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/gnutls.texi, lib/Makefile.am,
-       lib/openpgp/Makefile.am, lib/x509/Makefile.am, libextra/Makefile.am: 
-       Move API texinfo generation into doc/.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/include_next.m4, gl/m4/size_max.m4,
-       lib/gl/m4/include_next.m4, lib/gl/m4/size_max.m4: Update gnulib
-       files.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.8.0.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announcement-template.txt: Typo.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, cfg.mk, configure.ac, lib/configure.ac,
-       libextra/configure.ac: Prepare for stable release.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_ui.c: Doc fix.  Reported by Peter Hendrickson
-       <pdh@wiredyne.com>.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * src/select.c: Remove unused file, replaced by poll from gnulib.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix generation of error_codes.texi and
-       algorithms.texi.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announcement-template.txt: Fix.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.14.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-gaa.c, src/serv-gaa.c: Regenerate.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c, lib/includes/gnutls/compat.h,
-       libextra/gnutls_extra.c, libextra/includes/gnutls/extra.h,
-       libextra/includes/gnutls/openssl.h, tests/openssl.c, tests/simple.c: 
-       Fix version symbol namespace.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-psk.c,
-       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
-       doc/gnutls.texi, doc/manpages/certtool.1,
-       doc/manpages/gnutls-serv.1, lib/auth_anon.c, lib/auth_dh_common.c,
-       lib/auth_dhe.c, lib/auth_dhe_psk.c, lib/gnutls_anon_cred.c,
-       lib/gnutls_errors.c, lib/gnutls_handshake.c, lib/gnutls_psk.c,
-       lib/gnutls_record.c, lib/gnutls_ui.c,
-       lib/includes/gnutls/gnutls.h.in, libextra/gnutls_ia.c,
-       src/certtool.gaa, src/prime.c, src/serv.c, src/serv.gaa,
-       src/tls_test.c, tests/anonself.c, tests/dhepskself.c,
-       tests/openpgpself.c, tests/oprfi.c, tests/resume.c, tests/tlsia.c,
-       tests/x509dn.c, tests/x509self.c, tests/x509signself.c: Doc fixes.
-       Suggested by Peter Hendrickson <pdh@wiredyne.com>.
-
-2009-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_auth.c: Doc fix.  Reported by Peter Hendrickson
-       <pdh@wiredyne.com>.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.13.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announcement-template.txt: Fix.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announcement-template.txt: Improve.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Sort symbols.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Auto-generate from GnuTLS 2.6.x list of
-       exported symbols.  No substantial change.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Move functions.  Reported by Andreas Metzler
-       <ametzler@downhill.at.eu.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3578>.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Move gnutls_x509_crq_set_key back to old ABI
-       namespace.  Reported by Andreas Metzler
-       <ametzler@downhill.at.eu.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3576>.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Fix expired certs.  Exit early to make it
-       easier to find failing test.  Reported by Andreas Metzler
-       <ametzler@downhill.at.eu.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3580>.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * .clcopying: Fix.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Fix PGP key.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi, src/Makefile.am, src/README, src/README.srptool: 
-       Removed duplicated documentation.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.12.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/serv.c, src/tls_test.c: Fix gnutls-serv and
-       gnutls-cli-debug on Windows.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getdelim.c: Update gnulib files.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/reference/Makefile.am, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/parser_aux.c: Use libtasn1 2.2.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gnupload, gl/Makefile.am, gl/m4/sys_socket_h.m4,
-       gl/sys_socket.in.h, gl/tests/test-sys_socket.c, lib/gl/Makefile.am,
-       lib/gl/m4/sys_socket_h.m4, lib/gl/sys_socket.in.h,
-       lib/gl/tests/test-sys_socket.c, maint.mk: Update gnulib files.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/vsnprintf.m4,
-       lib/gl/tests/Makefile.am, lib/gl/tests/test-vsnprintf.c,
-       lib/gl/vsnprintf.c: Replace vsnprintf if needed.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crq_key_id.c: Reorder gcry quick random to make it
-       effective.  Reported by Andreas Metzler
-       <ametzler@downhill.at.eu.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3570>.
-
-2009-05-18  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.11.
-
-2009-05-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, cfg.mk, configure.ac, doc/examples/Makefile.am,
-       lib/Makefile.am, lib/configure.ac, lib/openpgp/Makefile.am,
-       lib/x509/Makefile.am, libextra/Makefile.am, libextra/configure.ac,
-       src/Makefile.am, tests/Makefile.am: Don't build with warnings all
-       the time.  Use a WERROR_CFLAGS.
-
-2009-05-18  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update gnulib files.
-
-2009-05-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Don't use unportable NI_MAXHOST/NI_MAXSERV.
-
-2009-05-17  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Link getaddrinfo libraries.  Reported by "Tom G.
-       Christensen" <tgc@jupiterrise.com> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3560>.
-
-2009-05-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac: Need to run AC_PROG_CXX
-       unconditionally.
-
-2009-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/doxygen/Doxyfile.in, libextra/gl/Makefile.am: Fix old gnulib
-       lgpl/ paths.  Reported by "Tom G. Christensen" <tgc@jupiterrise.com>
-       in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3556>.
-
-2009-05-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-05-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am: Need -DASN1_BUILDING for libtasn1.
-
-2009-05-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/announcement-template.txt: Add.
-
-2009-05-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am: Fix -I's after gnulib changes.
-       Reported by "Tom G. Christensen" <tgc@jupiterrise.com> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3548>.
-
-2009-05-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.10.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/tests/Makefile.am, gl/tests/test-alignof.c, lib/gl/Makefile.am,
-       lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/tests/Makefile.am, lib/gl/tests/test-alignof.c: Avoid failing
-       tests.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_global.c, lib/gnutls_priority.c,
-       lib/gnutls_psk.c, lib/gnutls_session.c, lib/gnutls_state.c,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
-       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.c,
-       lib/openpgp/pgp.c, lib/openpgp/privkey.c, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/pkcs12_bag.c, lib/x509/x509.c,
-       lib/x509/x509_write.c, libextra/gnutls_ia.c: Doc fixes for GTK-DOC.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_server_name.c, lib/gnutls_priority.c,
-       lib/gnutls_record.c, lib/gnutls_srp.c, lib/gnutls_state.c,
-       lib/gnutls_ui.c, lib/gnutls_x509.c,
-       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/x509.h,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_write.c: Doc fixes for GTK-DOC.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/crypto.h, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/x509.h, lib/openpgp/gnutls_openpgp.c,
-       lib/x509/dn.c, lib/x509/output.c, lib/x509/pkcs7.c,
-       lib/x509/verify.c, lib/x509/x509.c: Doc fixes for GTK-DOC.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-alert.c, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-psk.c, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-client-tlsia.c,
-       doc/examples/ex-client1.c, doc/examples/ex-client2.c,
-       doc/examples/ex-crq.c, doc/examples/ex-pkcs12.c,
-       doc/examples/ex-rfc2818.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-export.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
-       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c,
-       doc/examples/tcp.c: Place examples in public domain.  After
-       discussion with Karl.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/alignof.h, gl/m4/gnulib-comp.m4, gl/tests/Makefile.am,
-       gl/tests/test-alignof.c, lib/gl/alignof.h,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/tests/Makefile.am,
-       lib/gl/tests/test-alignof.c, maint.mk: Update gnulib files.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/keydb.c: Avoid sprintf.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-tlsia.c, lib/opencdk/literal.c,
-       lib/opencdk/misc.c, src/common.c, tests/chainverify.c,
-       tests/tlsia.c: Fix warnings.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-05-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pk-libgcrypt.c: Fix crash.
-
-2009-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: Doc fix.
-
-2009-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_dh_primes.c: Doc fix.
-
-2009-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am, lib/minitasn1/errors.h: Drop removed
-       libtasn1 file.
-
-2009-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/element.h,
-       lib/minitasn1/errors.c, lib/minitasn1/gstr.c, lib/minitasn1/gstr.h,
-       lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/parser_aux.c, lib/minitasn1/parser_aux.h,
-       lib/minitasn1/structure.c, lib/minitasn1/structure.h: Upgrade
-       libtasn1 to v2.1.
-
-2009-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c, libextra/gnutls_extra.c: Doc fixes.  Remove
-       debugging code.
-
-2009-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.9.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/configure.ac, libextra/configure.ac: Drop obsolete stuff.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Drop obsolete stuff.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/ld-output-def.m4, gl/m4/ld-version-script.m4,
-       lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/ld-output-def.m4,
-       lib/gl/m4/ld-version-script.m4, libextra/gl/gnulib.mk,
-       libextra/gl/m4/gnulib-cache.m4, libextra/gl/m4/gnulib-comp.m4,
-       libextra/gl/m4/ld-output-def.m4,
-       libextra/gl/m4/ld-version-script.m4: Move gnulib tests into proper
-       directory.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Fix gnutls_priority_init documentation.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Revert "Fix man output for "%COMPAT" in
-       docstrings." This reverts commit d10f1872bcbf7eb63632a8ce2e50728f42bd03fa.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Fix man output for "%COMPAT" in docstrings.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: When writing man pages, don't append to
-       any existing file.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Doc fix.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/examples/Makefile.am, lib/gl/Makefile.am,
-       lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/tests/Makefile.am, lib/gl/tests/test-lseek.c,
-       lib/gl/tests/test-lseek.sh, src/Makefile.am, tests/Makefile.am: Fix
-       MinGW build failures.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/autogen.sh: Add.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update gnulib files.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * gtk-doc.make: Fix syntax-check.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * gtk-doc.make, m4/gtk-doc.m4: Upgrade gtk-doc files.
-
-2009-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, gl/sys_socket.in.h, gl/tests/test-vc-list-files-git.sh,
-       lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/sys_socket.in.h,
-       lib/gl/tests/Makefile.am, lib/gl/tests/test-lseek.c,
-       lib/gl/tests/test-lseek.sh, libextra/gl/gnulib.mk,
-       libextra/gl/m4/gnulib-cache.m4, libextra/gl/m4/gnulib-comp.m4: 
-       Update gnulib files.
-
-2009-05-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Verisign CA v1 cert has expired!  Change
-       expected results.  Also test expiration code more.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Don't always rebuild manual.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/sys_socket_h.m4, lib/gl/m4/sys_socket_h.m4: Update gnulib
-       files.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, lib/gl/Makefile.am: Update gnulib files.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/alignof.h, lib/gl/Makefile.am: Update gnulib
-       files.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gnupload, gl/Makefile.am, gl/m4/errno_h.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/multiarch.m4, gl/m4/sys_socket_h.m4,
-       gl/m4/vasnprintf.m4, gl/sys_socket.in.h,
-       gl/tests/test-sys_socket.c, lib/gl/Makefile.am, lib/gl/alignof.h,
-       lib/gl/m4/errno_h.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/multiarch.m4, lib/gl/m4/sys_socket_h.m4,
-       lib/gl/m4/vasnprintf.m4, lib/gl/sys_socket.in.h,
-       lib/gl/tests/test-sys_socket.c, maint.mk: Update gnulib files.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix -Werror handling.
-
-2009-05-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Fix warnings.
-
-2009-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-psk.c,
-       doc/examples/ex-serv-srp.c, doc/examples/ex-serv1.c,
-       tests/anonself.c, tests/dhepskself.c, tests/openpgpself.c,
-       tests/oprfi.c, tests/pskself.c, tests/resume.c, tests/tlsia.c,
-       tests/x509dn.c, tests/x509self.c, tests/x509signself.c: Fix
-       warnings.
-
-2009-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/anonself.c, tests/dhepskself.c, tests/openpgpself.c,
-       tests/oprfi.c, tests/pskself.c, tests/resume.c, tests/tlsia.c,
-       tests/x509dn.c, tests/x509self.c, tests/x509signself.c: Use memset
-       instead of deprecated bzero.
-
-2009-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/certtool-cfg.c, src/serv.c: Fix build failure on systems
-       without AF_INET6, e.g., Solaris 2.6.  Reported by "Tom G.
-       Christensen" <tgc@jupiterrise.com> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3524>.
-
-2009-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Drop README.GIT.
-
-2009-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Need to link directly to libgcrypt here.
-
-2009-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/mpi-libgcrypt.c: Don't use casts that break strict-aliasing
-       rules.
-
-2009-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * README-alpha: Fix.
-
-2009-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Fix.
-
-2009-05-05  Simon Josefsson <simon@josefsson.org>
-
-       * README-alpha, doc/README.GIT: Replace doc/README.GIT with
-       README-alpha.
-
-2009-05-05  Simon Josefsson <simon@josefsson.org>
-
-       * README-alpha: Fix.
-
-2009-05-05  Simon Josefsson <simon@josefsson.org>
-
-       * README-alpha: Add.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/libgnutls.map: Fix build failure when LZO is enabled.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
-       libextra/includes/gnutls/extra.h: Fix gtk-doc warnings.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_asn1_tab.c, lib/pkix_asn1_tab.c: Regenerated libtasn1
-       files.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Build tools before using them.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * .x-sc_GPL_version, .x-sc_avoid_if_before_free,
-       .x-sc_cast_of_alloca_return_value, .x-sc_cast_of_argument_to_free,
-       .x-sc_file_system, .x-sc_m4_quote_check, .x-sc_makefile_check,
-       .x-sc_program_name, .x-sc_prohibit_HAVE_MBRTOWC,
-       .x-sc_prohibit_S_IS_definition, .x-sc_space_tab, .x-sc_the_the,
-       .x-sc_two_space_separator_in_usage, .x-sc_useless_cpp_parens, NEWS,
-       cfg.mk, doc/examples/ex-serv-export.c, doc/gnutls.texi,
-       gtk-doc.make, lib/gnutls.asn, lib/m4/hooks.m4,
-       lib/openpgp/Makefile.am, lib/pkix.asn, lib/x509/Makefile.am,
-       libextra/m4/hooks.m4, m4/valgrind.m4, src/Makefile.am,
-       src/certtool-cfg.c, src/certtool.c, src/crypt.c, src/psk.c,
-       src/serv.c, src/tls_test.c, tests/Makefile.am, tests/resume.c,
-       tests/x509dn.c: Fix syntax-check warnings.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, gtk-doc.make: Upgrade gtk-doc files.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.8.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gettext.h, gl/m4/wchar.m4, gl/wchar.in.h,
-       lib/gl/Makefile.am, lib/gl/gettext.h, lib/gl/m4/wchar.m4,
-       lib/gl/wchar.in.h: Update gnulib files.
-
-2009-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-padding/pkcs1-pad: Fix self test fails because of
-       expired certs using datefudge.
-
-2009-05-01  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Print cert details.  Fix verifying expired
-       cert.
-
-2009-05-01  Simon Josefsson <simon@josefsson.org>
-
-       * tests/cve-2008-4989.c: Avoid time checks.
-
-2009-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/cve-2009-1415.c, tests/cve-2009-1416.c: 
-       Add self-tests for security problems.
-
-2009-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/x509.h, lib/x509/verify.c, src/common.c: 
-       libgnutls: Check activation/expiration times on untrusted
-       certificates.  Reported by Romain Francoise.
-
-2009-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pk.c: Fix DSA key generation.
-
-2009-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Use modern git names.
-
-2009-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add old NEWS entries.
-
-2009-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Document how to use TLS exporters.
-
-2009-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Fix getaddrinfo/bind loop.
-
-2009-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update gnulib files.
-
-2009-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * : Replace PDF with official ZIP file.  The PDFs have the same
-       SHA-1.  The file was downloaded from:
-
-       http://csrc.nist.gov/groups/ST/crypto_apps_infra/documents/PKI%20Testing%20Page.htmUsing the direct link:
-
-       http://csrc.nist.gov/groups/ST/crypto_apps_infra/documents/certpath1.07.zip
-
-2009-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix.
-
-2009-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/useless-if-before-free, build-aux/vc-list-files,
-       gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/tests/Makefile.am,
-       gl/tests/test-vc-list-files-cvs.sh,
-       gl/tests/test-vc-list-files-git.sh, maint.mk: Update gnulib files.
-
-2009-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix some error messages.
-
-2009-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/vasnprintf.c,
-       lib/gl/m4/lib-link.m4, lib/gl/m4/lib-prefix.m4,
-       lib/gl/vasnprintf.c, libextra/gl/m4/lib-link.m4,
-       libextra/gl/m4/lib-prefix.m4, maint.mk: Update gnulib files.
-
-2009-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Move symbols new with gnutls 2.8.x under
-       GNUTLS_2_8 version.
-
-2009-04-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/serv.c: gnutls-serv: Listen on all interfaces.
-
-2009-04-24  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update gnulib files.
-
-2009-04-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pk-libgcrypt.c: Cleanup code and fix memory leaks.
-
-2009-04-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs_template: Update gnulib files.
-
-2009-04-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/gnutls.texi: Improve texinfo section names.
-
-2009-04-23  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509sign-verify.c: Also test DSA keys.
-
-2009-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: release allocated mpis in
-       _gnutls_x509_verify_algorithm().
-
-2009-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/libgcrypt.supp: Suppress more for modern libgcrypt.
-
-2009-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509sign-verify.c: Cleanup code.
-
-2009-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Pass proper socket to libgnutls on Windows.
-
-2009-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/sockets.c, gl/sockets.h, gl/tests/Makefile.am, gl/tests/dummy.c,
-       gl/tests/sockets.c, gl/tests/sockets.h: Need sockets module.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.map: Make check needs more symbols.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/Makefile.am, lib/libgnutls.map, libextra/Makefile.am,
-       libextra/libgnutls-extra.map, libextra/libgnutls-extra.vers: Improve
-       version scripts.  Limit exported symbols on systems without linker
-       script.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, build-aux/gendocs.sh, configure.ac, lib/configure.ac,
-       lib/m4/hooks.m4, libextra/configure.ac: Bump version.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.7.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Really generate DSA key in example.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Fix return value.  Doc fix.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Explain how to generate DSA key.
-
-2009-04-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c, lib/x509/x509.c: Doc fix for new APIs.
-
-2009-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/pk-libgcrypt.c: Corrected possible memory corruption on
-       signature verification failure. Reported by Miroslav Kratochvil
-       <exa.exa@gmail.com>
-
-2009-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/printlist.c: Added small patch from Romain Francoise to remove
-       unneeded include.
-
-2009-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/x509.h, lib/x509/privkey.c, lib/x509/x509.c,
-       tests/Makefile.am, tests/x509sign-verify.c: Added self test for
-       gnutls_x509_crt_verify_hash() and
-       gnutls_x509_crt_get_verify_algorithm().  Added some notes in
-       gnutls_x509_privkey_sign_hash().
-
-2009-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/includes/gnutls/x509.h, lib/x509/verify.c,
-       lib/x509/x509.c: gnutls_x509_crt_get_sig_algorithm was renamed to
-       gnutls_x509_crt_get_verify_algorithm.  Corrected some issues with
-       the code.
-
-2009-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Reorder.
-
-2009-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls.pc.in: Add -ltasn1 to pkg-config file.  Reported
-       by Andreas Metzler <ametzler@downhill.at.eu.org> in
-
-       <http://article.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3467>.
-
-2009-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Use new po domain.
-
-2009-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/de.po.in: Sync with TP.
-
-2009-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/de.po.in: Sync with TP.
-
-2009-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update gnulib files.
-
-2009-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/de.po.in: Sync with TP.
-
-2009-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 934102c33ac89ace9a1e1d02047d54f2fea6b59b Merge: bc279f4
-       d720f3f Author: Nikos Mavrogiannopoulos <nmav@gnutls.org> Date:
-       Wed Apr 15 22:43:03 2009 +0300
-
-2009-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, doc/gendocs_template, doc/lgpl-2.1.texi: 
-       Update gnulib files.
-
-2009-04-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/inet_ntop.m4, maint.mk: Update gnulib files.
-
-2009-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented Cedric Bail's function addition
-
-2009-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : commit 258d2e873f61d5543c674f46a6247b4a379d2cca Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Fri Apr 3 15:20:09 2009
-       +0200
-
-2009-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/POTFILES.in: Fix filenames.
-
-2009-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix PODIR.
-
-2009-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.ac, lib/Makefile.am, lib/configure.ac,
-       lib/po/LINGUAS, lib/po/Makevars, lib/po/POTFILES.in,
-       lib/po/cs.po.in, lib/po/de.po.in, lib/po/fr.po.in, lib/po/ms.po.in,
-       lib/po/nl.po.in, lib/po/pl.po.in, lib/po/sv.po.in, lib/po/vi.po.in,
-       po/LINGUAS, po/Makevars, po/POTFILES.in, po/cs.po.in, po/de.po.in,
-       po/fr.po.in, po/ms.po.in, po/nl.po.in, po/pl.po.in, po/sv.po.in,
-       po/vi.po.in: Move i18n dir back to lib/, after discussion with
-       Bruno.
-
-2009-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, gl/Makefile.am, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/ld-version-script.m4,
-       m4/linker-script.m4: Use linker-script from gnulib.
-
-2009-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, gl/Makefile.am, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/ld-output-def.m4, lib/configure.ac,
-       libextra/configure.ac, m4/output-def.m4: Use output-def test from
-       gnulib.
-
-2009-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/Makefile.am, lib/libgnutls.map,
-       lib/libgnutls.vers, lib/libgnutlsxx.map, lib/libgnutlsxx.vers: 
-       Rename linker script.
-
-2009-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/m4/hooks.m4, libextra/Makefile.am: Use
-       DLL_VERSION variable name.
-
-2009-03-30  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/cs.po.in: Sync with TP.
-
-2009-03-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c, lib/openpgp/output.c, lib/x509/output.c: Fix
-       warnings.
-
-2009-03-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Only add warnings when using gcc.  Don't use
-       -Wformat-nonliteral.
-
-2009-03-30  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, build-aux/gnupload, gl/Makefile.am, gl/close-hook.c,
-       gl/close-hook.h, gl/close.c, gl/fseeko.c, gl/gai_strerror.c,
-       gl/m4/close.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/printf.m4, gl/m4/select.m4, gl/m4/stdarg.m4,
-       gl/m4/sys_select_h.m4, gl/readline.c, gl/select.c, gl/setsockopt.c,
-       gl/stdint.in.h, gl/sys_select.in.h, gl/sys_socket.in.h,
-       gl/tests/Makefile.am, gl/tests/sockets.c, gl/tests/sockets.h,
-       gl/tests/test-getaddrinfo.c, gl/tests/test-sockets.c,
-       gl/unistd.in.h, gl/vasnprintf.c, gl/winsock-select.c,
-       lib/gl/Makefile.am, lib/gl/close-hook.c, lib/gl/close-hook.h,
-       lib/gl/fseeko.c, lib/gl/m4/gnulib-common.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/printf.m4, lib/gl/sockets.c,
-       lib/gl/sockets.h, lib/gl/stdint.in.h, lib/gl/sys_socket.in.h,
-       lib/gl/tests/test-sockets.c, lib/gl/unistd.in.h,
-       lib/gl/vasnprintf.c, lib/gl/w32sock.h,
-       libextra/gl/m4/gnulib-common.m4, maint.mk: Update gnulib files.
-
-2009-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/includes/gnutls/x509.h, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_int.h: Applied patch by Cedric Bail to add functions
-       gnutls_x509_crt_verify_hash() and
-       gnutls_x509_crt_get_sig_algorithm().
-
-2009-03-23  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix bootstrap.
-
-2009-03-23  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, cfg.mk, configure.ac, lib/Makefile.am,
-       lib/configure.ac: Fix po paths.
-
-2009-03-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/LINGUAS, lib/po/Makevars, lib/po/POTFILES.in,
-       lib/po/de.po.in, lib/po/fr.po.in, lib/po/ms.po.in, lib/po/nl.po.in,
-       lib/po/pl.po.in, lib/po/sv.po.in, lib/po/vi.po.in, po/LINGUAS,
-       po/Makevars, po/POTFILES.in, po/de.po.in, po/fr.po.in, po/ms.po.in,
-       po/nl.po.in, po/pl.po.in, po/sv.po.in, po/vi.po.in: Move lib/po to
-       po/ since the gettext domain is global for gnutls.
-
-2009-03-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Cosmetic fix.
-
-2009-03-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c, lib/x509/x509_int.h: Be compatible with
-       libtasn1 before v1.6.
-
-2009-03-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-03-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/errors.h, lib/minitasn1/gstr.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c: Update to minitasn1 v1.8.
-
-2009-03-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c, lib/gnutls_global.h, lib/x509/common.c,
-       lib/x509/crl.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/extensions.c, lib/x509/pkcs12.c, lib/x509/pkcs7.c,
-       lib/x509/x509.c: Use modern libtasn1 interfaces.
-
-2009-03-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-03-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump version.
-
-2009-03-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Add -I's for errcodes/printlist.  Reported by
-       Roman Bogorodskiy <novel@FreeBSD.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3435>.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix distcheck.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Remove error_codes.texi and algorithms.texi to
-       fix make distcheck.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Update --css-include path to fix distcheck.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.6.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Fix.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/tests/test-fseeko2.sh, lib/gl/tests/test-fseeko2.sh: Update
-       gnulib files.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-comp.m4, gl/m4/printf.m4, gl/m4/stdint.m4,
-       gl/m4/stdlib_h.m4, gl/m4/vasnprintf.m4, gl/tests/Makefile.am,
-       gl/tests/test-fseeko.c, gl/tests/test-getaddrinfo.c,
-       gl/vasnprintf.c, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/printf.m4,
-       lib/gl/m4/stdint.m4, lib/gl/m4/stdlib_h.m4,
-       lib/gl/m4/vasnprintf.m4, lib/gl/tests/Makefile.am,
-       lib/gl/tests/test-fseeko.c, lib/gl/vasnprintf.c: Update gnulib
-       files.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/ungetc.m4, lib/gl/m4/ungetc.m4: Update gnulib files.
-
-2009-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Revert %-hack that lead to syntax errors in
-       texinfo output.
-
-2009-02-24  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Minor cleanup.
-
-2009-02-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/certtool-cfg.c: certtool: Query for multiple dnsName
-       subjectAltName in interactive mode.
-
-2009-02-23  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/include_next.m4, lib/gl/m4/include_next.m4: Update gnulib
-       files.
-
-2009-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: documented pkix.asn change
-
-2009-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn: Removed several unneeded parameters from pkix tree.
-       This reduces initial memory usage after gnutls_global_init() from
-       140kb (in amd64) to 50kb.
-
-2009-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/dn.c, tests/crq_key_id.c: Added more verbose information.
-
-2009-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/dn.c,
-       tests/crq_key_id.c: Revert "Added more verbose debugging info" This reverts commit c2d3596cddbb54ac4f19c44b15a03ee1fcceab12.
-
-2009-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/dn.c,
-       tests/crq_key_id.c: Added more verbose debugging info
-
-2009-02-22  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * doc/TODO: removed items that have already been done or solved.
-
-2009-02-22  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS: documented the SSL3_RECORD_VERSION priority string
-
-2009-02-22  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * doc/scripts/gdoc, lib/gnutls_priority.c: Applied patch by Martin
-       von Gagern: The attached patch fixes gnutls_priority_init(3), but in
-       a very hackish way, treating a percent sign as indicating a constant
-       only if it is not immediately preceded by a double quote.
-
-2009-02-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * doc/manpages/gnutls-cli.1: Corrected listing of special keywords.
-       Reported by Martin von Gagern.
-
-2009-02-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * doc/manpages/gnutls-cli.1, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_priority.c: Added %SSL3_RECORD_VERSION
-       priority option that allows to specify the client hello message
-       record version. Used to overcome buggy TLS servers. Report by Martin
-       von Gagern.
-
-2009-02-15  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/verify.c: Corrected bit disable (was flipping instead).
-       Initialy reported by Daniel Kahn Gillmor on 9/1/2008. Many thanks to
-       moog@sysdev.oucs.ox.ac.uk for bringing this into my attention.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/serv.c: gnutls-serv: No longer disable MAC padding by
-       default.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: More gnulib usage.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Use more gnulib interfaces.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Update gnutls-serv --help output.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Update gnutls-cli --help output.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls_int.h, lib/gnutls_priority.c, lib/gnutls_x509.c: 
-       libgnutls: Add new priority strings for allowing RSA-MD5 and V1-CA.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/cli.c: gnutls-cli: Don't permit V1 CAs by default.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/errcodes.c, doc/printlist.c,
-       src/Makefile.am, src/errcodes.c, src/printlist.c: Move doc related
-       tools from src/ to doc/.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Typo.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Typo.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Print OpenPGP cert info using libgnutls.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/openpgp/output.c: libgnutls: gnutls_openpgp_crt_print
-       supports oneline mode.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: Fix expected test vectors.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/output.c: libgnutls: gnutls_x509_crt_print prints
-       signature algorithm in oneline mode.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/close.m4, gl/m4/sockets.m4, gl/tests/sockets.h,
-       gl/tests/test-sockets.c, lib/gl/m4/sockets.m4, lib/gl/sockets.h,
-       lib/gl/tests/test-sockets.c: Update gnulib files.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/common.c: gnutls-cli: Print certificate info using
-       libgnutls.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Print bit size of RSA exponents.
-
-2009-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Need -lgnutls etc for certtool-cfg.c.
-
-2009-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.5.
-
-2009-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Merge in old NEWS entries.
-
-2009-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify.c: Move down revocation check to revert code to
-       how it looked before.  The idea is that if you have marked a cert as
-       trusted, you may want to trust it even though some authority has
-       revoked it.  This changes back how this code used to work.
-
-2009-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/TODO, lib/x509/verify.c, tests/chainverify.c: Make it
-       possible to trust intermediary certificates.  Based on tiny patch
-       from "Douglas E. Engert" <deengert@anl.gov> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351/focus=3376>.
-
-2009-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Add another chain from bug reports.
-
-2009-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Print more certificate status values.
-
-2009-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Assert less for expected errors.
-
-2009-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Simplify keyid printing to avoid allocation and
-       asserts.
-
-2009-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, doc/scripts/gdoc: Update gdoc and use
-       -pkg-name.
-
-2009-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gnupload, gl/Makefile.am, gl/m4/00gnulib.m4,
-       gl/m4/errno_h.m4, gl/m4/extensions.m4, gl/m4/gnulib-common.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/multiarch.m4, gl/m4/pmccabe2html.m4,
-       gl/m4/stdlib_h.m4, gl/stdlib.in.h, gl/tests/test-getaddrinfo.c,
-       gl/version-etc.c, gl/version-etc.h, lib/gl/Makefile.am,
-       lib/gl/m4/00gnulib.m4, lib/gl/m4/errno_h.m4,
-       lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-common.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/multiarch.m4,
-       lib/gl/m4/stdlib_h.m4, lib/gl/stdlib.in.h,
-       libextra/gl/m4/00gnulib.m4, libextra/gl/m4/extensions.m4,
-       libextra/gl/m4/gnulib-common.m4, libextra/gl/m4/gnulib-comp.m4: 
-       Update gnulib files.
-
-2009-01-27  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, lib/gnutls_handshake.c: gnutls_handshake when sending client
-       hello during a rehandshake, will not offer a version number larger
-       than the current.  Reported by Tristan Hill <stan@saticed.me.uk>.
-
-2009-01-27  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_psk.c: result_size in gnutls_hex_encode behaves as
-       documented. It now holds the size of the result. Reported by John
-       Brooks.
-
-2009-01-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/arpa_inet.in.h, gl/fseeko.c, gl/m4/alloca.m4,
-       gl/m4/errno_h.m4, gl/m4/getaddrinfo.m4, gl/m4/getline.m4,
-       gl/m4/getpass.m4, gl/m4/gettimeofday.m4, gl/m4/gnulib-common.m4,
-       gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4, gl/m4/intmax_t.m4,
-       gl/m4/inttypes_h.m4, gl/m4/lib-ld.m4, gl/m4/lib-link.m4,
-       gl/m4/longlong.m4, gl/m4/malloc.m4, gl/m4/minmax.m4,
-       gl/m4/printf.m4, gl/m4/readline.m4, gl/m4/realloc.m4,
-       gl/m4/sockets.m4, gl/m4/sockpfaf.m4, gl/m4/stdbool.m4,
-       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdio_h.m4,
-       gl/m4/unistd_h.m4, gl/m4/vasnprintf.m4, gl/m4/wchar_t.m4,
-       gl/m4/wint_t.m4, gl/progname.c, gl/stdint.in.h, gl/stdio.in.h,
-       gl/strerror.c, gl/sys_stat.in.h, gl/tests/gettimeofday.c,
-       gl/tests/ioctl.c, gl/tests/test-unistd.c, gl/unistd.in.h,
-       gl/wchar.in.h, lib/gl/Makefile.am, lib/gl/fseeko.c,
-       lib/gl/m4/alloca.m4, lib/gl/m4/byteswap.m4, lib/gl/m4/codeset.m4,
-       lib/gl/m4/errno_h.m4, lib/gl/m4/gettext.m4,
-       lib/gl/m4/gnulib-common.m4, lib/gl/m4/iconv.m4,
-       lib/gl/m4/intldir.m4, lib/gl/m4/intlmacosx.m4, lib/gl/m4/intmax.m4,
-       lib/gl/m4/intmax_t.m4, lib/gl/m4/inttypes-pri.m4,
-       lib/gl/m4/inttypes_h.m4, lib/gl/m4/lcmessage.m4,
-       lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/lock.m4,
-       lib/gl/m4/longlong.m4, lib/gl/m4/malloc.m4, lib/gl/m4/memmem.m4,
-       lib/gl/m4/memmove.m4, lib/gl/m4/minmax.m4, lib/gl/m4/nls.m4,
-       lib/gl/m4/po.m4, lib/gl/m4/printf-posix.m4, lib/gl/m4/printf.m4,
-       lib/gl/m4/progtest.m4, lib/gl/m4/realloc.m4, lib/gl/m4/sockets.m4,
-       lib/gl/m4/sockpfaf.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stdint.m4,
-       lib/gl/m4/stdint_h.m4, lib/gl/m4/stdio_h.m4, lib/gl/m4/strcase.m4,
-       lib/gl/m4/strverscmp.m4, lib/gl/m4/threadlib.m4,
-       lib/gl/m4/uintmax_t.m4, lib/gl/m4/unistd_h.m4,
-       lib/gl/m4/vasnprintf.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4,
-       lib/gl/stdint.in.h, lib/gl/stdio.in.h, lib/gl/sys_stat.in.h,
-       lib/gl/tests/test-unistd.c, lib/gl/unistd.in.h, lib/gl/wchar.in.h: 
-       Update gnulib files.
-
-2009-01-21  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2009-01-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gl/Makefile.am, libextra/gl/gnulib.mk,
-       libextra/gl/m4/gnulib-cache.m4, libextra/gl/m4/gnulib-common.m4,
-       libextra/gl/m4/lib-ld.m4, libextra/gl/m4/lib-link.m4,
-       libextra/gl/m4/md5.m4: Add -I's in libextra/gl for stdint.h on
-       Solaris.  Reported by Dagobert Michelsen <dam@opencsw.org> in
-
-       http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3388
-
-2009-01-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Check return value properly.
-
-2009-01-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Fix mem leak because buffer is not expanded
-       correctly.
-
-2009-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix typos.
-
-2009-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/verify.c: Permit V1 Certificate Authorities
-       properly.  Before they were mistakenly rejected even though
-       GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT and/or
-       GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT were supplied.  Reported by
-       "Douglas E. Engert" <deengert@anl.gov> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
-
-2009-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Permit V1 CA's in new --verify-chain code.
-
-2009-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2009-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Added chain supplied by "Douglas E. Engert"
-       <deengert@anl.gov>.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * src/errcodes.c, src/printlist.c: Fix license header.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_global.c,
-       lib/gnutls_global.h, lib/gnutls_int.h: Cleanup logger function type.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.4.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_rsa_export.c: Doc fixes.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-psk.c, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-client-tlsia.c,
-       doc/examples/ex-client1.c, lib/gnutls_algorithms.c,
-       lib/gnutls_rsa_export.c, lib/openpgp/output.c, lib/x509/output.c,
-       lib/x509/privkey.c, src/cli.c, src/common.c, src/serv.c,
-       src/tls_test.c, tests/dhepskself.c: Fix warnings.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, doc/gendocs_template, gl/Makefile.am,
-       gl/m4/errno_h.m4, gl/m4/extensions.m4, gl/m4/getaddrinfo.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/inttypes_h.m4,
-       gl/m4/lib-link.m4, gl/m4/manywarnings.m4, gl/m4/multiarch.m4,
-       gl/m4/printf.m4, gl/m4/size_max.m4, gl/m4/stdint.m4,
-       gl/m4/stdint_h.m4, gl/m4/wchar.m4, gl/m4/wchar_t.m4,
-       gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/stdint.in.h, gl/stdlib.in.h,
-       gl/sys_select.in.h, gl/tests/Makefile.am,
-       gl/tests/test-select-in.sh, gl/unistd.in.h, gl/version-etc.c,
-       gl/wchar.in.h, lib/gl/Makefile.am, lib/gl/m4/codeset.m4,
-       lib/gl/m4/errno_h.m4, lib/gl/m4/extensions.m4,
-       lib/gl/m4/gettext.m4, lib/gl/m4/glibc2.m4, lib/gl/m4/glibc21.m4,
-       lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/iconv.m4, lib/gl/m4/intdiv0.m4, lib/gl/m4/intlmacosx.m4,
-       lib/gl/m4/intmax.m4, lib/gl/m4/inttypes-pri.m4,
-       lib/gl/m4/inttypes_h.m4, lib/gl/m4/lcmessage.m4,
-       lib/gl/m4/lib-link.m4, lib/gl/m4/multiarch.m4, lib/gl/m4/nls.m4,
-       lib/gl/m4/po.m4, lib/gl/m4/printf-posix.m4, lib/gl/m4/printf.m4,
-       lib/gl/m4/progtest.m4, lib/gl/m4/size_max.m4, lib/gl/m4/stdint.m4,
-       lib/gl/m4/stdint_h.m4, lib/gl/m4/threadlib.m4,
-       lib/gl/m4/uintmax_t.m4, lib/gl/m4/visibility.m4,
-       lib/gl/m4/wchar.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4,
-       lib/gl/m4/xsize.m4, lib/gl/stdint.in.h, lib/gl/stdlib.in.h,
-       lib/gl/tests/Makefile.am, lib/gl/unistd.in.h, lib/gl/wchar.in.h,
-       libextra/gl/Makefile.am, libextra/gl/m4/extensions.m4,
-       libextra/gl/m4/gnulib-cache.m4, libextra/gl/m4/gnulib-comp.m4,
-       libextra/gl/m4/lib-link.m4: Update gnulib files.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix NEWS entry.
-
-2009-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/sha2/sha2: Fix self-test with new certtool --verify-chain
-       output.
-
-2009-01-06  Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-
-       * NEWS: added NEWS item about MD5 deprecation
-
-2009-01-06  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-padding/pkcs1-pad: Fix expect strings to compensate
-       for new certtool -e output.
-
-2009-01-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/certtool.c: certtool: Make --verify-chain use libgnutls
-       verification algorithm.
-
-2009-01-06  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Test chain with EE cert signed using RSA-MD5.
-
-2009-01-06  Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-
-       * lib/x509/verify.c: actually deprecate MD5 and MD2 signatures
-       during X.509 verification by treating them as invalid unless the
-       GNUTLS_VERIFY_ALLOW_SIGN_RSA_{MD5,MD2} flags are present.
-
-2008-12-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add NEWS entries from 2.6.3.
-
-2008-12-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crq_key_id.c: Fix.
-
-2008-12-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crq_key_id.c: Make it compile.  Speed up key generation.
-
-2008-12-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crq_key_id.c: Indent.
-
-2008-12-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/Makefile.am, tests/crq_key_id.c: Add crq_key_id
-       self-test from David Marín Carreño.
-
-2008-12-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Update manywarnings usage.
-
-2008-12-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-12-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Print public key id for certificate requests
-       too.
-
-2008-12-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-12-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2008-12-11  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS, NEWS, lib/includes/gnutls/x509.h, lib/x509/crq.c: gnutls:
-       New interface to get key id for certificate requests.  Patch from
-       David Marín Carreño <davefx@gmail.com> in
-
-       <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3321>.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.3.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Check ca=false with flags too.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/tests/test-lseek.sh.diff, gl/tests/test-lseek.sh,
-       lib/gl/tests/test-lseek.sh: Disable parts of gnulib self-tests that
-       fail on mingw.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gl/tests/test-lseek.c, maint.mk: Update gnulib files.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/tests/test-lseek.c.diff,
-       gl/override/tests/test-select-in.sh.diff, gl/tests/test-lseek.c,
-       gl/tests/test-select-in.sh: Disable parts of gnulib self-tests that
-       fail on mingw.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-cxx.cpp: Drop config.h, not needed (hopefully?)
-       and breaks mingw due to rpl_gmtime.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Certtool need libgnutls etc for
-       libcmd-certtool.la too, due to certtool-cfg.c.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509self.c: Fix comments.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/cve-2008-4989.c: Align with Nikos' patch.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/Makefile.am, lib/opencdk/armor.c,
-       lib/opencdk/keydb.c, lib/opencdk/literal.c, lib/opencdk/misc.c,
-       lib/opencdk/new-packet.c, lib/opencdk/read-packet.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c: Revert "Fix warnings
-       in opencdk." This reverts commit 59cddc711e55bbd094bdf95986277fb33ba964ee.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify.c: Revert last commit.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Add GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT flag
-       when needed.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Add hbci chain.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Fix comments.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Fix order to match comments.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Don't fail on expect errors, to allow more
-       information to be collected.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/verify.c: Revert Nikos revert, and fix verification
-       hopefully better.  The new logic is to include the CA cert in
-       validation, but short-cut full validation of trusted certificates.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chainverify.c: Add chain with CA having a basic constraint
-       saying CA=FALSE.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/cve-2008-4989.c: Add note.
-
-2008-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/Makefile.am, tests/chainverify.c: Add self-test of
-       chain verification logic.
-
-2008-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/libgcrypt.supp: Ignore more.
-
-2008-12-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-12-05  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/verify.c: reintroduced the self signed certificate
-       removal code. This time shouldn't have the drawbacks that used to.
-
-2008-12-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Disable secmem rather than overriding
-       libgcrypt memory allocators.  Suggested by Werner Koch in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.libgcrypt.devel/2056>.
-
-2008-12-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_global.c: rearranged initialization stuff based on
-       Werner's suggestions.
-
-2008-12-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/certtool.c: gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0) is
-       being called after libgcrypt initialization (gnutls_global_init).
-
-2008-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/Makefile.am, lib/opencdk/armor.c,
-       lib/opencdk/keydb.c, lib/opencdk/literal.c, lib/opencdk/misc.c,
-       lib/opencdk/new-packet.c, lib/opencdk/read-packet.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c: Fix warnings in
-       opencdk.
-
-2008-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/manywarnings.m4: Add.
-
-2008-12-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, gl/Makefile.am, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, gl/m4/warnings.m4,
-       gl/stdint.in.h, gl/sys_time.in.h, lib/gl/m4/include_next.m4,
-       lib/gl/stdint.in.h: Update gnulib files.
-
-2008-11-29  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * tests/x509self.c: Incorporated patch (with modifications) from Joe
-       Orton that also checks the rehandshake capabilities.
-
-2008-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/Makefile.am, lib/openpgp/Makefile.am,
-       libextra/Makefile.am, tests/Makefile.am: Fix minitasn1 -I's.
-
-2008-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Fix minitasn1 -I.
-
-2008-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c: Fix compiler warning.
-
-2008-11-23  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Libreadline is needed by libcmd_certtool.la, not
-       certtool.  Reported by Arfrever Frehtes Taifersar Arahesis
-       <arfrever.fta@gmail.com> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3293>.
-
-2008-11-23  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/opencdk/context.h, lib/opencdk/literal.c, lib/opencdk/misc.c,
-       lib/opencdk/new-packet.c, lib/opencdk/opencdk.h,
-       lib/opencdk/read-packet.c: Converted non-C compliant code to
-       standard C. The usage of structures like: struct x {   int el1;   char str[1]; } and the trick of using a single allocation for str and the structure
-       itself by allocating sizeof(x) + strlen()-1, are questionable. They
-       were converted to: struct x {   int el1;   char *str; } and there is a single allocation of sizeof(x)+strlen() but then the
-       str pointer is updated to point to the rest of the data.
-
-2008-11-23  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_buffers.c, lib/gnutls_int.h, lib/gnutls_str.c,
-       lib/gnutls_str.h, lib/x509/dn.c: When reading data from a buffer
-       (gnutls_string) avoid memmoving all remaining data.  This will speed
-       up short byte reads.
-
-2008-11-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * doc/TODO: reorganized goals
-
-2008-11-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/cli.c: return non zero error code on error conditions.
-
-2008-11-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * doc/certtool.cfg: better grouping of configuration directives
-
-2008-11-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 8b14ab18cf5e5214ac3d28412e0c503e83a753c1 Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Fri Nov 21 21:02:45
-       2008 +0200
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_compress.c: Clean up LZO initialization.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c: Don't use // comments.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Change link order, so that gnulib is last.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update gnulib files.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/LINGUAS: Sync with TP.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/LINGUAS: Sync with TP.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/LINGUAS, lib/po/ms.po.in: Sync with TP.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.2.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Add deprecated guard for libtasn1.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/element.h,
-       lib/minitasn1/errors.c, lib/minitasn1/gstr.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/parser_aux.h, lib/minitasn1/structure.c,
-       lib/minitasn1/structure.h: Sync with libtasn1 v1.7.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am, lib/Makefile.am,
-       lib/openpgp/Makefile.am, libextra/Makefile.am: Fix WARN_CFLAGS uses.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_compress.c: Fix warnings.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Respect ENABLE_OPENSSL.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Move gnulib EARLY early.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       lib/m4/output-def.m4, libextra/configure.ac, m4/output-def.m4: Move
-       C++ and -output-def detection.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       lib/m4/linker-script.m4, libextra/configure.ac, m4/linker-script.m4: 
-       Fix linker script test.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Fix typo.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, libextra/m4/hooks.m4: Print Openssl status.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/m4/hooks.m4: Print C++ status.
-
-2008-11-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Cleanup guile tests.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/warnings.m4: Update gnulib files.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Rewrite warning initializations.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Typo.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/warnings.m4: Update gnulib files.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/examples.h: Add.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, doc/examples/Makefile.am, doc/examples/ex-alert.c,
-       doc/examples/ex-client-psk.c, doc/examples/ex-pkcs12.c,
-       doc/examples/ex-rfc2818.c, doc/examples/ex-session-info.c,
-       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c,
-       doc/examples/tcp.c, gl/gettext.h, gl/override/lib/gettext.h.diff,
-       lib/gl/gettext.h, lib/gl/override/lib/gettext.h.diff,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_state.c,
-       lib/gnutls_str.h, lib/openpgp/output.c, lib/x509/Makefile.am,
-       lib/x509/dn.c, lib/x509/output.c, lib/x509/privkey.c,
-       libextra/fipsmd5.c, libextra/gnutls_extra.c,
-       libextra/gnutls_openssl.c, src/Makefile.am, src/cli.c,
-       src/common.h, src/crypt.c, src/prime.c, src/psk.c, src/serv.c,
-       src/tls_test.c, tests/Makefile.am, tests/anonself.c,
-       tests/crypto_rng.c, tests/dhepskself.c, tests/dn.c,
-       tests/finished.c, tests/gc.c, tests/mini.c, tests/openpgpself.c,
-       tests/pkcs12_s2k.c, tests/pskself.c, tests/resume.c,
-       tests/set_pkcs12_cred.c, tests/tlsia.c, tests/utils.c,
-       tests/utils.h, tests/x509dn.c, tests/x509self.c,
-       tests/x509signself.c: Use more warnings.  Fix many warnings.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/warnings.m4, gl/override/tests/test-select-out.sh.diff,
-       gl/tests/test-select-out.sh: Update gnulib files.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/compat.h, lib/includes/gnutls/crypto.h,
-       lib/includes/gnutls/gnutlsxx.h, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h: Fix
-       cosmetic nits in header files.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/gnutls.h.in: Fix namespace of version symbols.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Move #include's outside of C++
-       markers.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/serv-gaa.c, src/serv-gaa.h: 
-       Generated.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Work around gnulib+mingw problem.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.gaa, src/common.h, src/serv.c, src/serv.gaa: Never include
-       config.h in *.h files.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/hostent.m4, gl/m4/servent.m4: Update gnulib files.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/tests/test-select-out.sh.diff,
-       gl/tests/test-select-out.sh: Work around reported bug in gnulib
-       self-tests.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/getaddrinfo.m4, gl/m4/gnulib-comp.m4, gl/m4/sockets.m4,
-       gl/tests/test-select-out.sh, lib/gl/m4/sockets.m4: Update gnulib
-       files.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, build-aux/gnupload, gl/m4/getaddrinfo.m4,
-       gl/m4/netdb_h.m4, gl/netdb.in.h, gl/tests/sockets.h,
-       lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/netdb_h.m4, lib/gl/netdb.in.h,
-       lib/gl/sockets.h, lib/gl/tests/Makefile.am,
-       libextra/gl/Makefile.am, libextra/gl/m4/gnulib-cache.m4,
-       libextra/gl/m4/gnulib-comp.m4: Update gnulib files.
-
-2008-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_auth.c: Make it build.
-
-2008-11-15  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_auth.c: Corrected memory leak in
-       _gnutls_free_auth_info(). Trace and patch by Michael Weiser.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Disable openpgp-keyring when not building
-       openpgp.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add -I for libextra too.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutlsxx.cpp: Make it compile with --disable-openpgp.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/resume.c: Fix warning.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/mpi-libgcrypt.c: Don't return from void function.  Reported by
-       Jeff Cai <jeff.cai@sun.com> in
-       https://savannah.gnu.org/support/?106549
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h, libextra/ext_inner_application.c,
-       libextra/gnutls_ia.c: Include gnutls/extra.h at the right places.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/mac-libgcrypt.c: Don't return from void function.  Reported by
-       Jeff Cai <jeff.cai@sun.com> in
-       https://savannah.gnu.org/support/?106549
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/pkcs12-decode/Makefile.am,
-       tests/pkcs12-decode/pkcs12_s2k.c, tests/pkcs12_s2k.c: Move
-       pkcs12_s2k.c test to top-level to avoid -I/etc flag duplication.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12-decode/pkcs12: Test pkcs12_2certs.p12 too.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12-decode/Makefile.am: Dist pkcs12_2certs.p12.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Dist README.gaa.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Remove README.autoconf.
-
-2008-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/m4/hooks.m4: Run AC_PROG_CXX only when needed.  Reported by
-       Daniel Black <dragonheart@gentoo.org> in
-       <https://savannah.gnu.org/support/?106542>.
-
-2008-11-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Use more warnings.
-
-2008-11-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Fix warning.
-
-2008-11-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Drop incorrect -I.
-
-2008-11-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.gaa: Add.
-
-2008-11-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, doc/examples/ex-serv-export.c,
-       libextra/gnutls_ia.c, src/Makefile.am, src/certtool-gaa.c,
-       src/cli-gaa.c, src/crypt-gaa.c, src/psk-gaa.c, src/serv-gaa.c,
-       src/tests.c, src/tls_test-gaa.c: Use more warnings.  Fix warnings.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c, lib/gnutls_mpi.c, lib/gnutls_pk.c,
-       lib/mac-libgcrypt.c: Fix warnings.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Add -Werror again, code is fixed.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Use warning flags, but not for C++ code.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/cve-2008-4989.c: Use more warnings.  Fix
-       warnings.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am, src/certtool-cfg.h, src/certtool-gaa.c: Use more
-       warnings.  Fix warnings.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/Makefile.am, libextra/Makefile.am,
-       libextra/gl/Makefile.am, libextra/gl/m4/extensions.m4,
-       libextra/gl/m4/gnulib-cache.m4, libextra/gl/m4/gnulib-comp.m4: Use
-       more warning flags.  Need extensions in libextra.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_handshake.c, lib/gnutls_mpi.c,
-       lib/gnutls_x509.c: Fix warnings.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Add prototype for
-       gnutls_certificate_set_x509_simple_pkcs12_mem.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Use WARN_CFLAGS.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_server_name.c, lib/gnutls_cipher.c,
-       lib/gnutls_constate.c, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_record.c,
-       lib/gnutls_supplemental.c, lib/gnutls_v2_compat.c: Fix warnings.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Build gl/ later.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Drop -Werror because gnutls code doesn't compile with it.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/Makefile.am: Disable pointer sign warnings.  Use
-       WARN_CFLAGS more.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Better warning flag hangling.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, doc/README.GIT: Drop --enable-developer-mode.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac: Remove debug code.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, configure.ac: Use warnings module.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, configure.ac, gl/m4/gnulib-comp.m4, gl/m4/warnings.m4,
-       lib/configure.ac, libextra/configure.ac: Use gnulib warnings module.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add v2.6.2 entries.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/m4/hooks.m4, lib/m4/output-def.m4: Use output-def.m4.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.pc.in, libextra/gnutls-extra.pc.in: Add URL fields.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/m4/hooks.m4, lib/m4/linker-script.m4: Fix version script
-       detection.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       lib/m4/linker-script.m4, libextra/configure.ac, m4/valgrind.m4: Use
-       external m4 files for shared tests.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/cve-2008-4989.c: Frob expected verify status code.  With
-       latest verify.c patch it just say the chain is invalid, rather than
-       complaining about missing signer certificate.  This is arguable more
-       correct.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify.c: Remove check of last certificate in path is
-       self signed.  Causes crashes further down in the code for
-       certificate chains that only contain one self-signed certificate.
-       Still protects against the GNUTLS-SA-2008-3 vulnerabillity.
-       Reported by Michael Meskes <meskes@debian.org> in
-       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505279>.
-
-2008-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/tests/test-select-out.sh: Comment out broken test.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/warnings.m4, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/warnings.m4: Update gnulib
-       files.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Need more -I's.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/warnings.m4: Update gnulib
-       files.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/fseeko.c, gl/m4/getaddrinfo.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/netdb_h.m4,
-       gl/m4/printf.m4, gl/netdb.in.h, gl/tests/test-select-fd.c,
-       gl/tests/test-select-in.sh, gl/tests/test-select-out.sh,
-       lib/gl/Makefile.am, lib/gl/fseeko.c, lib/gl/m4/netdb_h.m4,
-       lib/gl/m4/printf.m4, lib/gl/netdb.in.h: Update gnulib files.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * tests/cve-2008-4989.c: Also test chain length of 1 since the
-       security patch caused a crash.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * tests/libgcrypt.supp: Add another gcrypt leak.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_global.c: Fix mem leak.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * tests/cve-2008-4989.c: Fix mem leaks.
-
-2008-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/Makefile.am, tests/cve-2008-4989.c: Add
-       cve-2008-4989.c self-test.
-
-2008-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/tests/gettimeofday.c, gl/tests/test-gettimeofday.c,
-       gl/tests/test-select-fd.c, gl/tests/test-select-in.sh,
-       gl/tests/test-select-out.sh, gl/tests/test-select-stdin.c: Update
-       gnulib files.
-
-2008-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gettimeofday.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/sys_ioctl_h.m4, gl/tests/Makefile.am,
-       lib/gl/m4/include_next.m4, lib/gl/sys_stat.in.h: Update gnulib
-       files.
-
-2008-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, lib/x509/verify.c: Merge in v2.6.1 fixes.
-
-2008-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/m4/hooks.m4: Use modern -Wl,--version-script check.
-
-2008-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/cyclo/Makefile.am: Cover more files.
-
-2008-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/opencdk.h: Fix C++ rule, for pmccabe2html.
-
-2008-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/pmccabe.css, build-aux/pmccabe2html, configure.ac,
-       doc/Makefile.am, doc/cyclo/Makefile.am, gl/Makefile.am,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/pmccabe2html.m4,
-       gl/sys_stat.in.h: Add cyclomatic code complexity charts.
-
-2008-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/m4/hooks.m4, libextra/configure.ac: Need LZO detection
-       in libgnutls.
-
-2008-11-05  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, lib/gnutls_x509.c, tests/Makefile.am,
-       tests/set_pkcs12_cred.c: * Added gnutls_certificate_set_x509_simple_pkcs12_mem * Made gnutls_certificate_set_x509_simple_pkcs12_file() more
-       advanced.  It will return a corresponding certificate and key pair.
-       [The previous version would return the first ones found]. Eliminated
-       memory leaks on error conditions on these functions.
-
-2008-11-05  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * .gitignore: ignore more stuff
-
-2008-11-05  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, doc/certtool.cfg, src/certtool-cfg.c, src/certtool.c: 
-       certtool: allow setting arbitrary key purpose object identifiers.
-
-2008-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.autoconf: Remove obsolete instructions.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_srp.c, lib/gnutls_ui.c: Doc fix.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Use error instead of fprintf.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Indent differently for gtk-doc.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore gnulib headers.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * m4/ax_create_stdint_h.m4: Remove.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore config.h.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Drop pointless gc_LDADD.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Drop removed -Ilgl.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/Makefile.am, doc/fdl-1.3.texi, doc/fdl.texi,
-       doc/gnutls.texi, gl/Makefile.am, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/include_next.m4: Update gnulib files.
-       Use GFDLv1.3 for manual.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Fix typo.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Sync gnutls_srp_set_prime_bits
-       prototype with code.
-
-2008-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/includes/gnutls/gnutls.h.in: Add forgotten prototype for
-       gnutls_srp_server_get_username.  Reported by Kevin Quick.
-
-2008-11-03  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_ui.c: documented that gnutls_dh_set_prime_bits() has no
-       effect in server side.
-
-2008-11-03  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit fe191e360728fcee72cf5ba835f2301f1bf78b49 Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Mon Nov 3 21:44:38
-       2008 +0200
-
-2008-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/memchr.m4, lib/gl/m4/memcmp.m4, lib/gl/memchr.c,
-       lib/gl/memcmp.c, lib/gl/tests/Makefile.am,
-       lib/gl/tests/test-memchr.c, lib/gl/tests/test-memcmp.c, maint.mk: 
-       Update gnulib files.
-
-2008-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
-       libextra/configure.ac: Bump versions.
-
-2008-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/m4/hooks.m4: Check for C99 macros.
-
-2008-11-02  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/minitasn1/decoding.c, lib/minitasn1/element.c,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/parser_aux.h: * added BER octet string decoder from libtasn1.  * added the tree generation optimizations.
-
-2008-11-02  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/certtool.c: * Some more verbose out.  * Do not abort the pkcs12 structure parsing if one bag failed.
-
-2008-11-02  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/pkcs12.c: Reduce verbosity
-
-2008-11-02  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/pkcs12.c: print DER errors if any.
-
-2008-10-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/texinfo.css: Use white background.
-
-2008-10-31  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-10-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.1.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am: Really fix -I's.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am: Fix -I's.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add -lgnutls-extra for openpgp-keyring.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/sys_stat_h.m4, gl/sys_stat.in.h, gl/tests/Makefile.am,
-       gl/tests/test-sys_stat.c: Need more gnulib modules.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/connect.c, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/recv.c, gl/send.c, gl/tests/Makefile.am,
-       gl/tests/connect.c, src/certtool.c, src/cli.c: Need more gnulib
-       modules.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/perror.c, gl/tests/Makefile.am, gl/tests/perror.c: Update gnulib
-       files.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: Update.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/.gitignore, lib/po/.gitignore, libextra/.gitignore: Update.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/minmax.m4, gl/m4/read-file.m4, gl/minmax.h, gl/read-file.c,
-       gl/read-file.h, gl/tests/Makefile.am, gl/tests/test-read-file.c,
-       src/Makefile.am, src/cli.c, src/serv.c: Need more gnulib modules.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/accept.c, gl/alloca.c, gl/bind.c, gl/close.c, gl/fclose.c,
-       gl/listen.c, gl/m4/close.m4, gl/m4/fclose.m4, gl/m4/perror.m4,
-       gl/m4/sockets.m4, gl/m4/sys_ioctl_h.m4, gl/m4/sys_select_h.m4,
-       gl/m4/sys_time_h.m4, gl/setsockopt.c, gl/socket.c,
-       gl/sys_select.in.h, gl/sys_time.in.h, gl/tests/connect.c,
-       gl/tests/ioctl.c, gl/tests/perror.c, gl/tests/sockets.c,
-       gl/tests/sockets.h, gl/tests/sys_ioctl.in.h,
-       gl/tests/test-perror.c, gl/tests/test-perror.sh,
-       gl/tests/test-select.c, gl/tests/test-sockets.c,
-       gl/tests/test-sys_select.c, gl/tests/test-sys_time.c,
-       gl/tests/w32sock.h, gl/winsock-select.c: Update gnulib files.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/shutdown.c, gl/tests/Makefile.am, gl/tests/dummy.c,
-       gl/w32sock.h, lib/Makefile.am, src/common.h: Use sockets module.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am: Fix.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/sockets.m4, lib/gl/sockets.c,
-       lib/gl/sockets.h, lib/gl/tests/Makefile.am,
-       lib/gl/tests/test-sockets.c, lib/gnutls_buffers.c,
-       lib/gnutls_global.c: Better gnulib module usage.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-comp.m4: Update gnulib files.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.ac, configure.in: Rename.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am, src/Makefile.am: Fixes.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/configure.ac, tests/Makefile.am: Fixes.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in, doc/Makefile.am,
-       doc/examples/Makefile.am, doc/reference/Makefile.am,
-       guile/src/Makefile.am, includes/Makefile.am,
-       includes/gnutls/compat.h, includes/gnutls/crypto.h,
-       includes/gnutls/extra.h, includes/gnutls/gnutls.h.in,
-       includes/gnutls/gnutlsxx.h, includes/gnutls/openpgp.h,
-       includes/gnutls/openssl.h, includes/gnutls/pkcs12.h,
-       includes/gnutls/x509.h, lib/Makefile.am, lib/configure.ac,
-       lib/includes/Makefile.am, lib/includes/gnutls/compat.h,
-       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
-       lib/includes/gnutls/gnutlsxx.h, lib/includes/gnutls/openpgp.h,
-       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
-       lib/opencdk/Makefile.am, lib/openpgp/Makefile.am,
-       lib/x509/Makefile.am, libextra/Makefile.am, libextra/configure.ac,
-       libextra/includes/Makefile.am, libextra/includes/gnutls/extra.h,
-       libextra/includes/gnutls/openssl.h, src/Makefile.am,
-       tests/Makefile.am, tests/hostname-check.README,
-       tests/hostname-check.c, tests/hostname-check/Makefile.am,
-       tests/hostname-check/README, tests/hostname-check/hostname-check.c,
-       tests/openpgp-keyring.c, tests/openpgp/Makefile.am,
-       tests/openpgp/keyring.c, tests/pkcs12-decode/Makefile.am: Separate
-       headers as well.  Clean up -I's.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am, tests/Makefile.am,
-       tests/pkcs12-decode/Makefile.am: Builds on my system now.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/gnutls_mem.h: Drop dmalloc and efence support.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, lib/configure.ac, lib/m4/hooks.m4,
-       lib/openpgp/Makefile.am, lib/x509/Makefile.am,
-       libextra/Makefile.am, src/Makefile.am: Make it build better.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, lib/m4/hooks.m4,
-       libextra/Makefile.am, src/Makefile.am: Fixes.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, configure.in, includes/gnutls/gnutls.h.in,
-       lib/Makefile.am, lib/configure.ac, lib/m4/hooks.m4,
-       lib/openpgp/Makefile.am, lib/x509/Makefile.am: Make it build.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/po/POTFILES.in: Fix paths.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, lib/m4/hooks.m4: Build fixes.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix i18n stuff.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/m4/hooks.m4, libextra/m4/hooks.m4: New files, forgotten in
-       last commit.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/build-aux/config.rpath, lib/build-aux/link-warning.h,
-       lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4,
-       libextra/build-aux/config.rpath: Update gnulib files.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * COPYING.LIB, Makefile.am, configure.in, lib/AUTHORS, lib/COPYING,
-       lib/ChangeLog, lib/Makefile.am, lib/NEWS, lib/README,
-       lib/configure.ac, lib/po/.gitignore, lib/po/LINGUAS,
-       lib/po/Makevars, lib/po/POTFILES.in, lib/po/de.po.in,
-       lib/po/fr.po.in, lib/po/ms.po.in, lib/po/nl.po.in, lib/po/pl.po.in,
-       lib/po/sv.po.in, lib/po/vi.po.in, libextra/AUTHORS,
-       libextra/COPYING, libextra/ChangeLog, libextra/Makefile.am,
-       libextra/NEWS, libextra/README, libextra/configure.ac,
-       libextra/gl/Makefile.am, libextra/gl/m4/gnulib-cache.m4,
-       libextra/gl/m4/gnulib-comp.m4, libextra/gl/m4/lib-ld.m4,
-       libextra/gl/m4/lib-link.m4, libextra/gl/m4/lib-prefix.m4,
-       po/.gitignore, po/LINGUAS, po/Makevars, po/POTFILES.in,
-       po/de.po.in, po/fr.po.in, po/ms.po.in, po/nl.po.in, po/pl.po.in,
-       po/sv.po.in, po/vi.po.in: More splitting updates.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gl/Makefile.am, libextra/gl/m4/gnulib-cache.m4,
-       libextra/gl/m4/gnulib-comp.m4: Update gnulib files.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/alloca.in.h, gl/asnprintf.c, gl/errno.in.h, gl/float+.h,
-       gl/float.in.h, gl/fseeko.c, gl/gettext.h, gl/lseek.c,
-       gl/m4/alloca.m4, gl/m4/errno_h.m4, gl/m4/float_h.m4,
-       gl/m4/fseeko.m4, gl/m4/intmax_t.m4, gl/m4/inttypes_h.m4,
-       gl/m4/longlong.m4, gl/m4/lseek.m4, gl/m4/malloc.m4,
-       gl/m4/printf.m4, gl/m4/realloc.m4, gl/m4/size_max.m4,
-       gl/m4/snprintf.m4, gl/m4/sockpfaf.m4, gl/m4/stdbool.m4,
-       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdio_h.m4,
-       gl/m4/stdlib_h.m4, gl/m4/string_h.m4, gl/m4/sys_socket_h.m4,
-       gl/m4/unistd_h.m4, gl/m4/vasnprintf.m4, gl/m4/wchar.m4,
-       gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4,
-       gl/printf-args.c, gl/printf-args.h, gl/printf-parse.c,
-       gl/printf-parse.h, gl/realloc.c, gl/size_max.h, gl/snprintf.c,
-       gl/stdbool.in.h, gl/stdint.in.h, gl/stdio-impl.h, gl/stdio-write.c,
-       gl/stdio.in.h, gl/stdlib.in.h, gl/string.in.h, gl/sys_socket.in.h,
-       gl/tests/dummy.c, gl/tests/test-alloca-opt.c,
-       gl/tests/test-errno.c, gl/tests/test-fseeko.c,
-       gl/tests/test-fseeko.sh, gl/tests/test-lseek.c,
-       gl/tests/test-lseek.sh, gl/tests/test-snprintf.c,
-       gl/tests/test-stdbool.c, gl/tests/test-stdint.c,
-       gl/tests/test-stdio.c, gl/tests/test-stdlib.c,
-       gl/tests/test-string.c, gl/tests/test-sys_socket.c,
-       gl/tests/test-unistd.c, gl/tests/test-vasnprintf.c,
-       gl/tests/test-wchar.c, gl/tests/verify.h, gl/unistd.in.h,
-       gl/vasnprintf.c, gl/vasnprintf.h, gl/wchar.in.h, gl/xsize.h: Update
-       gnulib files.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in, gl/Makefile.am, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/tests/Makefile.am, lib/configure.ac,
-       libextra/Makefile.am, libextra/configure.ac: More splitting.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath, lib/gl/Makefile.am,
-       lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/stdlib_h.m4, lib/gl/m4/sys_ioctl_h.m4,
-       lib/gl/m4/sys_socket_h.m4, lib/gl/stdlib.in.h,
-       lib/gl/sys_socket.in.h, lib/gl/sys_stat.in.h,
-       lib/gl/tests/Makefile.am, lib/gl/unistd.in.h: Update gnulib files.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, build-aux/config.rpath, configure.in,
-       lgl/Makefile.am, lgl/alloca.in.h, lgl/asnprintf.c, lgl/asprintf.c,
-       lgl/byteswap.in.h, lgl/c-ctype.c, lgl/c-ctype.h, lgl/errno.in.h,
-       lgl/float+.h, lgl/float.in.h, lgl/fseeko.c, lgl/gettext.h,
-       lgl/lseek.c, lgl/m4/alloca.m4, lgl/m4/byteswap.m4,
-       lgl/m4/codeset.m4, lgl/m4/errno_h.m4, lgl/m4/extensions.m4,
-       lgl/m4/float_h.m4, lgl/m4/fseeko.m4, lgl/m4/func.m4,
-       lgl/m4/gettext.m4, lgl/m4/glibc2.m4, lgl/m4/glibc21.m4,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-common.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/gnulib-tool.m4, lgl/m4/iconv.m4,
-       lgl/m4/include_next.m4, lgl/m4/intdiv0.m4, lgl/m4/intl.m4,
-       lgl/m4/intldir.m4, lgl/m4/intlmacosx.m4, lgl/m4/intmax.m4,
-       lgl/m4/intmax_t.m4, lgl/m4/inttypes-pri.m4, lgl/m4/inttypes_h.m4,
-       lgl/m4/lcmessage.m4, lgl/m4/lib-ld.m4, lgl/m4/lib-link.m4,
-       lgl/m4/lib-prefix.m4, lgl/m4/lock.m4, lgl/m4/longlong.m4,
-       lgl/m4/lseek.m4, lgl/m4/malloc.m4, lgl/m4/memchr.m4,
-       lgl/m4/memcmp.m4, lgl/m4/memmem.m4, lgl/m4/memmove.m4,
-       lgl/m4/minmax.m4, lgl/m4/netdb_h.m4, lgl/m4/nls.m4, lgl/m4/po.m4,
-       lgl/m4/printf-posix.m4, lgl/m4/printf.m4, lgl/m4/progtest.m4,
-       lgl/m4/read-file.m4, lgl/m4/realloc.m4, lgl/m4/size_max.m4,
-       lgl/m4/snprintf.m4, lgl/m4/socklen.m4, lgl/m4/sockpfaf.m4,
-       lgl/m4/stdbool.m4, lgl/m4/stdint.m4, lgl/m4/stdint_h.m4,
-       lgl/m4/stdio_h.m4, lgl/m4/stdlib_h.m4, lgl/m4/strcase.m4,
-       lgl/m4/string_h.m4, lgl/m4/strings_h.m4, lgl/m4/strverscmp.m4,
-       lgl/m4/sys_ioctl_h.m4, lgl/m4/sys_socket_h.m4,
-       lgl/m4/sys_stat_h.m4, lgl/m4/threadlib.m4, lgl/m4/time_h.m4,
-       lgl/m4/time_r.m4, lgl/m4/uintmax_t.m4, lgl/m4/unistd_h.m4,
-       lgl/m4/vasnprintf.m4, lgl/m4/vasprintf.m4, lgl/m4/visibility.m4,
-       lgl/m4/wchar.m4, lgl/m4/wchar_t.m4, lgl/m4/wint_t.m4,
-       lgl/m4/xsize.m4, lgl/memchr.c, lgl/memcmp.c, lgl/memmem.c,
-       lgl/memmove.c, lgl/minmax.h, lgl/netdb.in.h,
-       lgl/override/lib/gc-libgcrypt.c.diff, lgl/printf-args.c,
-       lgl/printf-args.h, lgl/printf-parse.c, lgl/printf-parse.h,
-       lgl/read-file.c, lgl/read-file.h, lgl/realloc.c, lgl/size_max.h,
-       lgl/snprintf.c, lgl/stdbool.in.h, lgl/stdint.in.h,
-       lgl/stdio-impl.h, lgl/stdio-write.c, lgl/stdio.in.h,
-       lgl/stdlib.in.h, lgl/str-two-way.h, lgl/strcasecmp.c,
-       lgl/string.in.h, lgl/strings.in.h, lgl/strncasecmp.c,
-       lgl/strverscmp.c, lgl/sys_socket.in.h, lgl/sys_stat.in.h,
-       lgl/tests/Makefile.am, lgl/tests/dummy.c, lgl/tests/intprops.h,
-       lgl/tests/test-alloca-opt.c, lgl/tests/test-byteswap.c,
-       lgl/tests/test-c-ctype.c, lgl/tests/test-errno.c,
-       lgl/tests/test-fseeko.c, lgl/tests/test-fseeko.sh,
-       lgl/tests/test-func.c, lgl/tests/test-lseek.c,
-       lgl/tests/test-lseek.sh, lgl/tests/test-memchr.c,
-       lgl/tests/test-memcmp.c, lgl/tests/test-netdb.c,
-       lgl/tests/test-read-file.c, lgl/tests/test-snprintf.c,
-       lgl/tests/test-stdbool.c, lgl/tests/test-stdint.c,
-       lgl/tests/test-stdio.c, lgl/tests/test-stdlib.c,
-       lgl/tests/test-string.c, lgl/tests/test-strings.c,
-       lgl/tests/test-strverscmp.c, lgl/tests/test-sys_socket.c,
-       lgl/tests/test-sys_stat.c, lgl/tests/test-time.c,
-       lgl/tests/test-unistd.c, lgl/tests/test-vasnprintf.c,
-       lgl/tests/test-vasprintf.c, lgl/tests/test-wchar.c,
-       lgl/tests/verify.h, lgl/time.in.h, lgl/time_r.c, lgl/unistd.in.h,
-       lgl/vasnprintf.c, lgl/vasnprintf.h, lgl/vasprintf.c,
-       lgl/wchar.in.h, lgl/xsize.h, lib/Makefile.am, lib/configure.ac,
-       lib/gl/Makefile.am, lib/gl/alloca.in.h, lib/gl/asnprintf.c,
-       lib/gl/asprintf.c, lib/gl/byteswap.in.h, lib/gl/c-ctype.c,
-       lib/gl/c-ctype.h, lib/gl/errno.in.h, lib/gl/float+.h,
-       lib/gl/float.in.h, lib/gl/fseeko.c, lib/gl/gettext.h,
-       lib/gl/lseek.c, lib/gl/m4/alloca.m4, lib/gl/m4/byteswap.m4,
-       lib/gl/m4/codeset.m4, lib/gl/m4/errno_h.m4,
-       lib/gl/m4/extensions.m4, lib/gl/m4/float_h.m4, lib/gl/m4/fseeko.m4,
-       lib/gl/m4/func.m4, lib/gl/m4/gettext.m4, lib/gl/m4/glibc2.m4,
-       lib/gl/m4/glibc21.m4, lib/gl/m4/gnulib-cache.m4,
-       lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4,
-       lib/gl/m4/gnulib-tool.m4, lib/gl/m4/iconv.m4,
-       lib/gl/m4/include_next.m4, lib/gl/m4/intdiv0.m4, lib/gl/m4/intl.m4,
-       lib/gl/m4/intldir.m4, lib/gl/m4/intlmacosx.m4, lib/gl/m4/intmax.m4,
-       lib/gl/m4/intmax_t.m4, lib/gl/m4/inttypes-pri.m4,
-       lib/gl/m4/inttypes_h.m4, lib/gl/m4/lcmessage.m4,
-       lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4,
-       lib/gl/m4/lib-prefix.m4, lib/gl/m4/lock.m4, lib/gl/m4/longlong.m4,
-       lib/gl/m4/lseek.m4, lib/gl/m4/malloc.m4, lib/gl/m4/memchr.m4,
-       lib/gl/m4/memcmp.m4, lib/gl/m4/memmem.m4, lib/gl/m4/memmove.m4,
-       lib/gl/m4/minmax.m4, lib/gl/m4/netdb_h.m4, lib/gl/m4/nls.m4,
-       lib/gl/m4/po.m4, lib/gl/m4/printf-posix.m4, lib/gl/m4/printf.m4,
-       lib/gl/m4/progtest.m4, lib/gl/m4/read-file.m4,
-       lib/gl/m4/realloc.m4, lib/gl/m4/size_max.m4, lib/gl/m4/snprintf.m4,
-       lib/gl/m4/socklen.m4, lib/gl/m4/sockpfaf.m4, lib/gl/m4/stdbool.m4,
-       lib/gl/m4/stdint.m4, lib/gl/m4/stdint_h.m4, lib/gl/m4/stdio_h.m4,
-       lib/gl/m4/stdlib_h.m4, lib/gl/m4/strcase.m4, lib/gl/m4/string_h.m4,
-       lib/gl/m4/strings_h.m4, lib/gl/m4/strverscmp.m4,
-       lib/gl/m4/sys_ioctl_h.m4, lib/gl/m4/sys_socket_h.m4,
-       lib/gl/m4/sys_stat_h.m4, lib/gl/m4/threadlib.m4,
-       lib/gl/m4/time_h.m4, lib/gl/m4/time_r.m4, lib/gl/m4/uintmax_t.m4,
-       lib/gl/m4/unistd_h.m4, lib/gl/m4/vasnprintf.m4,
-       lib/gl/m4/vasprintf.m4, lib/gl/m4/visibility.m4,
-       lib/gl/m4/wchar.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4,
-       lib/gl/m4/xsize.m4, lib/gl/memchr.c, lib/gl/memcmp.c,
-       lib/gl/memmem.c, lib/gl/memmove.c, lib/gl/minmax.h,
-       lib/gl/netdb.in.h, lib/gl/override/lib/gc-libgcrypt.c.diff,
-       lib/gl/printf-args.c, lib/gl/printf-args.h, lib/gl/printf-parse.c,
-       lib/gl/printf-parse.h, lib/gl/read-file.c, lib/gl/read-file.h,
-       lib/gl/realloc.c, lib/gl/size_max.h, lib/gl/snprintf.c,
-       lib/gl/stdbool.in.h, lib/gl/stdint.in.h, lib/gl/stdio-impl.h,
-       lib/gl/stdio-write.c, lib/gl/stdio.in.h, lib/gl/stdlib.in.h,
-       lib/gl/str-two-way.h, lib/gl/strcasecmp.c, lib/gl/string.in.h,
-       lib/gl/strings.in.h, lib/gl/strncasecmp.c, lib/gl/strverscmp.c,
-       lib/gl/sys_socket.in.h, lib/gl/sys_stat.in.h,
-       lib/gl/tests/Makefile.am, lib/gl/tests/dummy.c,
-       lib/gl/tests/intprops.h, lib/gl/tests/test-alloca-opt.c,
-       lib/gl/tests/test-byteswap.c, lib/gl/tests/test-c-ctype.c,
-       lib/gl/tests/test-errno.c, lib/gl/tests/test-fseeko.c,
-       lib/gl/tests/test-fseeko.sh, lib/gl/tests/test-func.c,
-       lib/gl/tests/test-lseek.c, lib/gl/tests/test-lseek.sh,
-       lib/gl/tests/test-memchr.c, lib/gl/tests/test-memcmp.c,
-       lib/gl/tests/test-netdb.c, lib/gl/tests/test-read-file.c,
-       lib/gl/tests/test-snprintf.c, lib/gl/tests/test-stdbool.c,
-       lib/gl/tests/test-stdint.c, lib/gl/tests/test-stdio.c,
-       lib/gl/tests/test-stdlib.c, lib/gl/tests/test-string.c,
-       lib/gl/tests/test-strings.c, lib/gl/tests/test-strverscmp.c,
-       lib/gl/tests/test-sys_socket.c, lib/gl/tests/test-sys_stat.c,
-       lib/gl/tests/test-time.c, lib/gl/tests/test-unistd.c,
-       lib/gl/tests/test-vasnprintf.c, lib/gl/tests/test-vasprintf.c,
-       lib/gl/tests/test-wchar.c, lib/gl/tests/verify.h, lib/gl/time.in.h,
-       lib/gl/time_r.c, lib/gl/unistd.in.h, lib/gl/vasnprintf.c,
-       lib/gl/vasnprintf.h, lib/gl/vasprintf.c, lib/gl/wchar.in.h,
-       lib/gl/xsize.h, libextra/configure.ac: Start configure split.
-
-2008-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, doc/gnutls.texi, lib/Makefile.am,
-       lib/libgnutls-config.in, lib/libgnutls.m4, libextra/.gitignore,
-       libextra/Makefile.am, libextra/libgnutls-extra-config.in,
-       libextra/libgnutls-extra.m4: Remove *-config scripts and old M4
-       checks.
-
-2008-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, maint.mk: Update gnulib files.
-
-2008-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix coverage rules.
-
-2008-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Need to build before running checks.
-
-2008-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Add code coverage rules.
-
-2008-10-23  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 3eab289192e97f0bada61ca2c4d51214a4e4f7df Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Wed Oct 22 22:06:21
-       2008 +0300
-
-2008-10-22  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 8973cd66b52fda65b4c9ffadab3b9db59a464fb0 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Wed Oct 22 18:42:41 2008
-       +0200
-
-2008-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/netdb_h.m4, gl/netdb.in.h, lgl/m4/netdb_h.m4,
-       lgl/netdb.in.h, lgl/sys_socket.in.h: Update gnulib files.
-
-2008-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Sync gdoc with libidn for license fixes.
-
-2008-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Use netdb.h instead of getaddrinfo.h.
-
-2008-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/arpa_inet.in.h, gl/gai_strerror.c, gl/getaddrinfo.c,
-       gl/getaddrinfo.h, gl/gnulib.mk, gl/m4/getaddrinfo.m4,
-       gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/netdb_h.m4,
-       gl/netdb.in.h, gl/netinet_in.in.h, gl/stdarg.in.h,
-       gl/tests/gnulib.mk, gl/tests/test-getaddrinfo.c,
-       gl/tests/test-netdb.c, lgl/Makefile.am, lgl/errno.in.h,
-       lgl/float.in.h, lgl/m4/gnulib-common.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/netdb_h.m4, lgl/m4/stdlib_h.m4, lgl/m4/sys_socket_h.m4,
-       lgl/m4/sys_stat_h.m4, lgl/m4/unistd_h.m4, lgl/netdb.in.h,
-       lgl/stdint.in.h, lgl/stdio.in.h, lgl/stdlib.in.h, lgl/string.in.h,
-       lgl/strings.in.h, lgl/sys_socket.in.h, lgl/sys_stat.in.h,
-       lgl/time.in.h, lgl/unistd.in.h, lgl/wchar.in.h, lgl/winsock.c,
-       libextra/gl/m4/gnulib-common.m4: Update gnulib files.
-
-2008-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-10-16  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit a1c1da1939efe571f427a6323a8bb5311d933061 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Thu Oct 16 12:21:32 2008
-       +0200
-
-2008-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.7.0.
-
-2008-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Drop netdb.h check.
-
-2008-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/netdb_h.m4, lgl/netdb.in.h, lgl/tests/Makefile.am,
-       lgl/tests/test-netdb.c, src/common.h: Add netdb gnulib module.  Use
-       it.
-
-2008-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am: Upgrade.
-
-2008-10-16  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, gl/getaddrinfo.c, gl/m4/getaddrinfo.m4,
-       lgl/Makefile.am, lgl/m4/gnulib-comp.m4, lgl/m4/stdio_h.m4,
-       lgl/m4/sys_ioctl_h.m4, lgl/m4/sys_socket_h.m4, lgl/m4/unistd_h.m4,
-       lgl/stdio-write.c, lgl/stdio.in.h, lgl/sys_socket.in.h,
-       lgl/unistd.in.h, lgl/winsock.c: Update gnulib files.
-
-2008-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Need to build libutils.la before recursing into
-       e.g. pkcs12-decode.
-
-2008-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutlsxx.cpp: Minimize ABI changes.
-
-2008-10-13  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-10-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Improve GNUTLS_E_AGAIN explanation.
-       Suggested by "Lavrentiev, Anton (NIH/NLM/NCBI) [C]"
-       <lavr@ncbi.nlm.nih.gov>.
-
-2008-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2008-10-11  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * .gitignore: added to reduce untracked files.
-
-2008-10-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-10-11  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS, libextra/fipsmd5.c: Add static qualifiers on internal
-       symbols.  Tiny patch from Aaron Ucko <ucko@ncbi.nlm.nih.gov>.
-
-2008-10-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Sync with upstream.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.h, lib/opencdk/armor.c, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/new-packet.c,
-       lib/opencdk/seskey.c, lib/opencdk/verify.c, lib/x509/x509_int.h,
-       src/cfg/platon/str/strplus.c: Fix syntax-check warnings.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/opencdk.h: Indent.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/debug.c, lib/opencdk/seskey.c, lib/opencdk/sig-check.c: Drop
-       gcrypt.h includes.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention libgcrypt dependency.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, lib/opencdk/Makefile.am,
-       lib/openpgp/Makefile.am, lib/x509/Makefile.am, libextra/Makefile.am: 
-       More libgcrypt fixes.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, src/Makefile.am, tests/Makefile.am: 
-       More libgcrypt fixes.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/gnutls_global.c, m4/libgcrypt.m4: Modernize
-       libgcrypt detection.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml, includes/gnutls/x509.h,
-       lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/output.c, lib/x509/x509_write.c: Doc fixes.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Sync with real list.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_int.h: Need libtasn1.h here.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_rsa.c, lib/auth_rsa_export.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_mpi.h, lib/gnutls_sig.c,
-       lib/gnutls_x509.c, lib/mpi-libgcrypt.c, lib/rnd-libgcrypt.c: Reduce
-       libtasn1.h includes.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Drop obsolete libtasn1 flags.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, libextra/Makefile.am, src/Makefile.am: Update
-       libtasn1 linker flags.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, configure.in, gl/arpa_inet.in.h, gl/c-ctype.h,
-       gl/gnulib.mk, gl/m4/arpa_inet_h.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4,
-       gl/strerror.c, lgl/Makefile.am, lgl/c-ctype.h, lgl/errno.in.h,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4, lgl/m4/memcmp.m4,
-       lgl/m4/stdio_h.m4, lgl/m4/string_h.m4, lgl/m4/sys_socket_h.m4,
-       lgl/m4/unistd_h.m4, lgl/m4/wchar.m4, lgl/stdio.in.h,
-       lgl/string.in.h, lgl/sys_socket.in.h, lgl/unistd.in.h,
-       libextra/gl/Makefile.am, libextra/gl/m4/gnulib-cache.m4,
-       libextra/gl/md5.c: Update gnulib files.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove obsolete stuff.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c, lib/gnutls_constate.c, lib/gnutls_mpi.c,
-       lib/gnutls_pk.c, lib/opencdk/armor.c, lib/opencdk/hash.c,
-       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/pubkey.c,
-       lib/opencdk/stream.c, lib/openpgp/privkey.c, lib/x509/common.c,
-       lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/privkey.c, lib/x509/x509.c, lib/x509/x509_write.c,
-       libextra/fipsmd5.c, libextra/gl/md5.c, src/certtool-cfg.c,
-       src/certtool.c, src/cli.c, src/serv.c: Indent.
-
-2008-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, lib/gnutls_global.c, m4/libtasn1.m4: Detect
-       libtasn1 via AC_LIB_HAVE_LINKFLAGS.
-
-2008-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-10-07  Ludovic Courtès <ludo@gnu.org>
-
-       * tests/Makefile.am: More test compilation fixes with minitasn1.  * tests/Makefile.am (AM_CPPFLAGS)[ENABLE_MINITASN1]: Add minitasn1   directory.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2008-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-10-07  Ludovic Courtès <ludo@gnu.org>
-
-       * tests/pkcs12-decode/Makefile.am: Fix compilation of
-       `pkcs12-decode' test when using minitasn1.  * tests/pkcs12-decode/Makefile.am (AM_CPPFLAGS)[ENABLE_MINITASN1]:
-         Add `minitasn1' include directory.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2008-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Get issuer dn in X509_get_issuer_name,
-       correct last patch.
-
-2008-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add 2.6.0 entries.
-
-2008-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Fix out-of-bounds access.  Similar to
-       debian #499945 lynx-cur problem.  libextra/gnutls_openssl.c: fix
-       X509_get_issuer_name to return issuer name of given certificate and
-       not try to get the subject dn of the issuer certificate wich may or
-       may not exist. (Checked how openssl does this, too.) This fixes a
-       accessing an array outside its bounds.  Debian bug #499945 is
-       instructive about the problem. While lynx-cur credits Thomas Dickey
-       for the bug, the code and implications are essentially the same for
-       the gnutls openssl-compat libary.  Tiny patch from Thomas Viehmann
-       <tv@beamnet.de>.
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/certtool-cfg.c, src/certtool-cfg.h, src/certtool-common.h,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: reduced warnings in compilation of certtool.
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/output.c: use union to avoid wrong type issues.
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/output.c: corrected print order.
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, doc/certtool.cfg, includes/gnutls/x509.h,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/x509/common.c,
-       lib/x509/crl.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs7.c, lib/x509/x509.c,
-       lib/x509/x509_int.h, lib/x509/x509_write.c, src/certtool-cfg.c,
-       src/certtool-cfg.h, src/certtool.c: Added function to copy
-       extensions from a CRL to a certificate.  Reduced many warnings (and
-       added more by defining gnutls_log as printf like function --gcc
-       only)
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * configure.in: Disable certain warnings that do not work with my
-       compiler.
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/crq.c,
-       lib/x509/extensions.c, lib/x509/output.c, src/certtool.c: Added
-       gnutls_x509_crq_set_key_purpose_oid and
-       gnutls_x509_crq_get_key_purpose_oid.
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS: documentation added functions
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS: updated
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/crq.c, lib/x509/extensions.c, lib/x509/x509_int.h: set
-       global maximum size for certificate requests' extensions size.
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/Makefile.am: added missing file
-
-2008-10-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * includes/gnutls/x509.h, lib/x509/crl.c, lib/x509/crq.c,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/output.c,
-       lib/x509/x509.c, lib/x509/x509_int.h, src/certtool-cfg.c,
-       src/certtool-cfg.h, src/certtool-common.h, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa: Added initial
-       support for certificate requests handling of X.509 extensions.
-       Added support to certtool to handle these extensions (add/read)
-
-2008-10-03  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, doc/certtool.cfg, includes/gnutls/x509.h, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/extensions.c, lib/x509/output.c,
-       lib/x509/x509_int.h, src/certtool-cfg.c, src/certtool-cfg.h,
-       src/certtool.c: Added functions to handle and set CRL extensions.
-
-2008-10-01  Simon Josefsson <simon@josefsson.org>
-
-       * po/nl.po.in, po/vi.po.in: Sync with TP.
-
-2008-10-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-09-29  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit c357933a30801a82e484bed8fbc4bd5b2b34d5e0 Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Mon Sep 29 15:08:02
-       2008 +0300
-
-2008-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.9.
-
-2008-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Document ABI change.
-
-2008-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_constate.c: Re-add comment about too long function, it
-       is one of the most complex in gnutls.
-
-2008-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Need AC_CONFIG_MACRO_DIR for modern libtool.
-
-2008-09-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * includes/gnutls/crypto.h, lib/gnutls_pk.c, lib/opencdk/pubkey.c,
-       lib/pk-libgcrypt.c, lib/x509/privkey.c, lib/x509/x509_int.h: changed
-       crypto API to reduce probability of memory leaks during usage of
-       pk_params.
-
-2008-09-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 699aa57dacc6446e92c123e93bba1f894067893e Author: Nikos
-       Mavrogiannopoulos <nmav@turtle.(none)> Date:   Sun Sep 28 03:34:59
-       2008 +0300
-
-2008-09-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS: Revert "fixed" This reverts commit 14647811d21d3eda2d5bd82557329bcf7778f31b.
-
-2008-09-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS: fixed
-
-2008-09-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_constate.c, lib/gnutls_int.h: 
-       avoid using malloc for small buffers.
-
-2008-09-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_mpi.c: optimized in order to avoid calling malloc for
-       small buffers.
-
-2008-09-27  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_constate.c, lib/gnutls_mpi.c: Revert "Revert C99 uses.
-       Fixes gnutls_mpi.c mem leak, but not others." This reverts commit bdfa289133b15ad7d92eb3151ce86cca4c879426.
-
-2008-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pathlen/Makefile.am, tests/pathlen/pathlen: Use EXEEXT in
-       self-test scripts.
-
-2008-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/key-id/Makefile.am, tests/key-id/key-id,
-       tests/pkcs1-padding/Makefile.am, tests/pkcs1-padding/pkcs1-pad,
-       tests/rsa-md5-collision/Makefile.am,
-       tests/rsa-md5-collision/rsa-md5-collision, tests/sha2/Makefile.am,
-       tests/sha2/sha2, tests/userid/Makefile.am, tests/userid/userid: Use
-       EXEEXT in self-test scripts.
-
-2008-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/vasnprintf.c: Update gnulib files.
-
-2008-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2008-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_constate.c, lib/gnutls_mpi.c: Revert C99 uses.  Fixes
-       gnutls_mpi.c mem leak, but not others.
-
-2008-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-09-23  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/x509.c: Corrected buffer overrun in crt_list_import.
-       Reported and patch by Jonathan Manktelow.
-
-2008-09-23  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * README: corrected libgcrypt site.
-
-2008-09-23  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/privkey.c: corrected embarrasing bug.
-
-2008-09-23  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/auth_cert.c, lib/gnutls_constate.c, lib/gnutls_mpi.c,
-       lib/pk-libgcrypt.c, lib/x509/common.c, lib/x509/dn.c: Corrected
-       several memory leaks reported by Sam. In some cases switched to C99
-       to avoid having complex code.
-
-2008-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/extras.c: Doc fix.
-
-2008-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl_write.c, lib/x509/x509_write.c: Doc fix.
-
-2008-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, doc/reference/Makefile.am: Use automake warnings.
-
-2008-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Typo.
-
-2008-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix mingw32 rules.
-
-2008-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, doc/Makefile.am, doc/texinfo.css: Use a stylesheet for
-       texinfo HTML manual.
-
-2008-09-21  Nikos Mavrogiannopoulos <nmav@turtle.(none)>
-
-       * lib/x509/privkey.c: fixed memory leak in reencoding of RSA and DSA
-       private keys. Reported and studied by Sam Varshavchik
-
-2008-09-21  Nikos Mavrogiannopoulos <nmav@turtle.(none)>
-
-       * lib/x509/x509_write.c: documented the way set_subject_alt_name()
-       can set value.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.8.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * po/fr.po.in, po/pl.po.in, po/sv.po.in: Sync with TP.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Use srcdir for -Igl/.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Don't use CFLAGS with distcheck, causes errors in
-       ./configure tests.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix warnings.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am, src/certtool.c, src/serv.c: Use internal md5 if
-       libgcrypt is in FIPS mode.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Initialize libgnutls-extra too.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h: Add prototype for
-       gnutls_register_md5_handler.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/fipsmd5.c: Add Since: tag.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: Doc fixes.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Need -I for aclocal.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/wchar.m4, lgl/tests/test-wchar.c,
-       lgl/wchar.in.h: Add.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, libextra/Makefile.am, src/Makefile.am, src/cli.c: 
-       Fix libextra build.  Make gnutls-cli work in libgcrypt FIPS mode.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Fix typo.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix markup.
-
-2008-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Add -I for hmac.h, md5.h.
-
-2008-09-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/certtool.c: deinitialize structures after use.
-
-2008-09-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_pk.c: Corrected memory leak. Reported by Sam
-       Varshavchik.
-
-2008-09-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * includes/gnutls/x509.h: added missing headers.
-
-2008-09-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_pk.c, lib/x509/privkey.c: Corrected several bugs in DSA
-       DER key importing. Reported and debugged by Sam Varshavchik.
-
-2008-09-20  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/opencdk/armor.c, lib/opencdk/hash.c, lib/opencdk/kbnode.c,
-       lib/opencdk/keydb.c, lib/opencdk/stream.c: added gnutls_assert() to
-       assist debugging.
-
-2008-09-20  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/openpgp/privkey.c: properly report the error line.
-
-2008-09-20  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, doc/gnutls.texi, lib/x509/extensions.c, lib/x509/output.c,
-       lib/x509/x509_int.h, lib/x509/x509_write.c, src/certtool-cfg.c,
-       src/certtool-cfg.h, src/certtool.c: output.c: Can properly print IP
-       addresses in certificates.  x509_write.c: added
-       gnutls_x509_crt_set_subject_alt_name added that can add multiple
-       subject alternative names.  certtool: use the new function to be
-       able to add several names.
-
-2008-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2008-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, libextra/Makefile.am, libextra/fipsmd5.c: Add
-       gnutls_register_md5_handler.
-
-2008-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-comp.m4, gl/m4/strdup.m4, gl/strdup.c,
-       lgl/vasnprintf.c: Update gnulib files.
-
-2008-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, libextra/gl/Makefile.am, libextra/gl/hmac-md5.c,
-       libextra/gl/hmac.h, libextra/gl/m4/gnulib-cache.m4,
-       libextra/gl/m4/gnulib-common.m4, libextra/gl/m4/gnulib-comp.m4,
-       libextra/gl/m4/gnulib-tool.m4, libextra/gl/m4/hmac-md5.m4,
-       libextra/gl/m4/md5.m4, libextra/gl/m4/memxor.m4, libextra/gl/md5.c,
-       libextra/gl/md5.h, libextra/gl/memxor.c, libextra/gl/memxor.h: Add
-       md5 and hmac from gnulib to libextra/gl/.
-
-2008-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_hash_int.c: Make _gnutls_hash_copy work with registered
-       hashes.
-
-2008-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS, lib/gnutls_compress.c, lib/gnutls_compress.h,
-       libextra/gnutls_extra.c: Make LZO compression support build.  Tiny
-       patch from Arfrever Frehtes Taifersar Arahesis
-       <arfrever.fta@gmail.com>.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/Makefile.am, lib/defines.h,
-       lib/gnutls_errors.h, lib/gnutls_int.h: Merge defines.h into
-       gnutls_int.h.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffer.h: Remove, unused.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c, lib/gnutls_x509.c: Fix overflows in gnutls_calloc
-       calls.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openssl_compat.c: Fix last commit.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/auth_cert.c, lib/gnutls_cert.c,
-       lib/gnutls_session_pack.c, libextra/openssl_compat.c: Fix overflows
-       in gnutls_calloc calls.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls_mem.c: libgnutls: Check for overflows in
-       gnutls_calloc and gnutls_secure_calloc.  Reported by Werner Koch
-       <wk@gnupg.org>.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, lib/auth_srp.c, lib/gnutls_int.h, lib/gnutls_srp.c: 
-       libgnutls: New function to set minimum acceptable SRP bits.  The
-       function is gnutls_srp_set_prime_bits.  Tiny patch by Kevin Quick
-       <quick@sparq.org> in
-       <https://savannah.gnu.org/support/index.php?106454>.
-
-2008-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/gnutls-cli.1: Fix markup, tiny patch from Sam
-       Varshavchik <mrsam@courier-mta.com>.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/auth_cert.c, lib/auth_rsa.c, lib/ext_cert_type.c,
-       lib/ext_max_record.c, lib/ext_oprfi.c, lib/ext_server_name.c,
-       lib/gnutls_algorithms.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_constate.c, lib/gnutls_extensions.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_kx.c,
-       lib/gnutls_pk.c, lib/gnutls_record.c, lib/gnutls_session_pack.c,
-       lib/gnutls_sig.c, lib/gnutls_state.c, lib/gnutls_v2_compat.c,
-       lib/gnutls_x509.c, lib/mac-libgcrypt.c, lib/minitasn1/structure.c,
-       lib/opencdk/armor.c, lib/opencdk/read-packet.c, lib/openpgp/pgp.c,
-       lib/x509/common.c, lib/x509/crq.c, lib/x509/pkcs12.c,
-       lib/x509/privkey.c, libextra/gnutls_ia.c, src/printlist.c,
-       src/serv.c, tests/finished.c, tests/openssl.c, tests/pgps2kgnu.c,
-       tests/pkcs12-decode/pkcs12_s2k.c, tests/simple.c: Indent.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.7.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Fix warning about trailing comma.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix math markup.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * src/printlist.c: Fix.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/gnutls.texi, src/printlist.c: Fix.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Document crypto.h stuff.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Add list of new symbols in 2.6.x.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/crypto.h: Indent.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Don't use extern on functions, for
-       consistency.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention new functions.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am, includes/gnutls/gnutls.h.in,
-       lib/gnutls_algorithms.c, src/printlist.c: Add interfaces to get PK
-       and PK-sign algorithms. Use them.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Credit.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Don't run pgps2kgnu self test when openpgp is
-       disable.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Merge in 2.4.2 news entries.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/main.c, lib/opencdk/opencdk.h: Remove cdk_strerror,
-       unused and uses non-thread safe strerror.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgpself.c, tests/x509dn.c, tests/x509self.c: Fix
-       warnings.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/crypto_rng.c: Fix warnings.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/parse_ca.c: Fix warning.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Split release target.
-
-2008-09-16  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/eoverflow.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/strerror.m4, gl/strerror.c,
-       gl/tests/gnulib.mk, gl/tests/test-EOVERFLOW.c,
-       gl/tests/test-strerror.c, lgl/Makefile.am, lgl/errno.in.h,
-       lgl/m4/eoverflow.m4, lgl/m4/errno_h.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/stdio_h.m4, lgl/stdio.in.h, lgl/sys_socket.in.h,
-       lgl/tests/Makefile.am, lgl/tests/test-EOVERFLOW.c,
-       lgl/tests/test-errno.c, lgl/tests/test-memchr.c: Update gnulib
-       files.
-
-2008-09-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-15  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/setcredcrash.c: Self-test regression of
-       gnutls_credentials_set.
-
-2008-09-15  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_auth.c: removed unnesessary and dangerous free from
-       credentials_set().
-
-2008-09-14  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/auth_cert.c: added some pedantic error checking.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-gaa.c, src/cli-gaa.c, src/crypt-gaa.c,
-       src/psk-gaa.c, src/serv-gaa.c, src/tls_test-gaa.c: Regenerate using
-       patched gaa.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Test release with -Werror to avoid regressions.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openssl_compat.c: Remove unused code.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/mac-libgcrypt.c: Fix warning.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/new-packet.c: Fix warning.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/opencdk.h: (CDK_KEY_USG_ENCR, CDK_KEY_USG_SIGN): Protect | op.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/cipher-libgcrypt.c: Fix warnings.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/mac-libgcrypt.c: Fix warnings.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/mpi-libgcrypt.c: Fix warnings.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add initialization section.  Update thread
-       initialization discussion.
-
-2008-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openssl.c: Need to initialize gnutls to avoid crash.
-
-2008-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Drop redundant.
-
-2008-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove foo.def after testing --output-def.
-
-2008-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.6.
-
-2008-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath, gl/m4/include_next.m4,
-       lgl/m4/include_next.m4: Update gnulib files.
-
-2008-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-alert.c, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-psk.c, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-client-tlsia.c,
-       doc/examples/ex-client1.c, doc/examples/ex-client2.c,
-       doc/examples/ex-crq.c, doc/examples/ex-cxx.cpp,
-       doc/examples/ex-pkcs12.c, doc/examples/ex-rfc2818.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-psk.c,
-       doc/examples/ex-serv-srp.c, doc/examples/ex-serv1.c,
-       doc/examples/ex-session-info.c, doc/examples/ex-verify.c,
-       doc/examples/ex-x509-info.c, doc/examples/tcp.c, lib/defines.h,
-       lib/gnutls_asn1_tab.c, lib/openpgp/openpgp_int.h,
-       lib/pkix_asn1_tab.c, src/errcodes.c, tests/anonself.c,
-       tests/certificate_set_x509_crl.c, tests/dhepskself.c,
-       tests/finished.c, tests/hostname-check/hostname-check.c,
-       tests/mini.c, tests/moredn.c, tests/netconf-psk.c,
-       tests/openpgpself.c, tests/oprfi.c, tests/pgps2kgnu.c,
-       tests/pskself.c, tests/resume.c, tests/tlsia.c, tests/x509dn.c,
-       tests/x509self.c, tests/x509signself.c: Use #ifdef for checking
-       HAVE_CONFIG_H for consistency.
-
-2008-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * po/POTFILES.in: Mark gnutls_alert for translation.
-
-2008-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * po/ms.po.in: Sync with TP.
-
-2008-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/vasnprintf.c: Update gnulib files.
-
-2008-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cipher_int.c: Don't return from a void function.
-       Reported by Dave Uhring <duhring@charter.net>.
-
-2008-09-01  Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-
-       * tests/Makefile.am, tests/pgps2kgnu.c: added pgps2kgnu test for GNU
-       extensions to OpenPGP String-to-Key (S2K) conventions.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/tls_test.c: Use gnulib for --version.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/crypt.c: Use gnulib more.  Remove code.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/crypt.c, src/psk.c: Use gnulib for --version.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/serv-gaa.c, src/serv-gaa.h: 
-       Generated.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi, doc/manpages/certtool.1,
-       doc/manpages/gnutls-cli.1, doc/manpages/gnutls-serv.1: Drop
-       --copyright from documentation.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/cli.gaa, src/common.c, src/serv.c, src/serv.gaa: Drop
-       --copyright.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Use gnulib for --version.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Use gnulib for --version.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Only print libgnutls version in --version if it is
-       different.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/Makefile.am, lib/gnutls_int.h,
-       lib/gnutls_str.h: Remove gnutls_buffer.h, move definitions to
-       gnutls_str.h.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_alert.c: Translate error messages.  Cleanup code.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_compress.c, lib/gnutls_compress.h: Remove unused stuff.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * tests/simple.c: Test sign algos.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Print pk and sign algos.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Typo.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_algorithms.c: Add
-       gnutls_sign_list and gnutls_sign_get_id.  Suggested by Sam
-       Varshavchik <mrsam@courier-mta.com>.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.h, lib/gnutls_compress.h: Move declarations.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/Makefile.am,
-       lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_compress_int.c, lib/gnutls_compress_int.h,
-       lib/gnutls_int.h: Merge gnutls_compress_int.? with
-       gnutls_compress.?.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/Makefile.am, lib/auth_anon.c,
-       lib/auth_cert.c, lib/auth_dh_common.c, lib/auth_dhe.c,
-       lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_psk_passwd.c,
-       lib/auth_rsa.c, lib/auth_rsa_export.c, lib/auth_srp.c,
-       lib/auth_srp_passwd.c, lib/auth_srp_rsa.c, lib/ext_server_name.c,
-       lib/ext_srp.c, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_auth.h, lib/gnutls_auth_int.h, lib/gnutls_cert.c,
-       lib/gnutls_handshake.c, lib/gnutls_record.c,
-       lib/gnutls_session_pack.c, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
-       libextra/ext_inner_application.c: Move definitions in
-       gnutls_auth_int.h to gnutls_auth.h and update callers.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_compress.c: Move compression functions to
-       gnutls_compress.c to make gnutls_algorithms.c more readable.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Fix warning.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Doc fix.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * tests/simple.c: Add more tests.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Fix typo.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_algorithms.c: Add
-       gnutls_pk_list and gnutls_pk_get_id.  Suggested by Sam Varshavchik
-       <mrsam@courier-mta.com>.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * gl/arpa_inet.in.h, gl/gnulib.mk, gl/m4/include_next.m4,
-       gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/netinet_in.in.h,
-       gl/stdarg.in.h, lgl/Makefile.am, lgl/float.in.h,
-       lgl/m4/include_next.m4, lgl/m4/lib-link.m4, lgl/m4/lib-prefix.m4,
-       lgl/stdint.in.h, lgl/stdio.in.h, lgl/stdlib.in.h, lgl/string.in.h,
-       lgl/strings.in.h, lgl/sys_socket.in.h, lgl/sys_stat.in.h,
-       lgl/time.in.h, lgl/unistd.in.h, lgl/wchar.in.h: Update gnulib files.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am, lib/openpgp/Makefile.am: Fixes.
-
-2008-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix license and libgnutls-extra stuff.
-
-2008-08-31  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 765c079be0195f0f7fbefccf8b6a8910015042a6 Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Sun Aug 31 13:33:52
-       2008 +0300
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/gnutls_openpgp.c, lib/openpgp/Makefile.am,
-       lib/openpgp/gnutls_openpgp.c: Move gnutls_openpgp.c to lib/openpgp/.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Add Since: tag for gtk-doc.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Fix release target.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.5.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * .clcopying: Update copyright years.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, cfg.mk: Split up release targets.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/minitasn1/element.c, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/structure.c: Use libtasn1 1.5.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c: Include stdarg.h for va_start etc.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_anon_cred.c: Fix dummy cred.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump libtool version because of new API.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-tlsia.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-export.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, lib/gnutls_anon_cred.c,
-       lib/gnutls_buffers.c, lib/opencdk/keydb.c,
-       libextra/openssl_compat.c, libextra/openssl_compat.h,
-       src/certtool-cfg.c, src/certtool.c, src/cli.c, src/common.c,
-       src/crypt.c, src/prime.c, src/printlist.c, src/serv.c, src/tests.c,
-       src/tls_test.c: Fix warnings.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix description of --enable-developer-mode.  Right
-       now all it does is to enable compiler warnings.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/auth_cert.c, lib/auth_srp_passwd.h,
-       lib/auth_srp_sb64.c, lib/gnutls_constate.c, lib/gnutls_global.c,
-       lib/gnutls_helper.c, lib/gnutls_int.h, lib/gnutls_srp.c,
-       lib/gnutls_supplemental.c, lib/gnutls_x509.c, lib/mac-libgcrypt.c,
-       lib/mpi-libgcrypt.c, lib/opencdk/armor.c, lib/opencdk/hash.c,
-       lib/opencdk/keydb.c, lib/opencdk/literal.c, lib/opencdk/main.h,
-       lib/opencdk/opencdk.h, lib/opencdk/stream.c, lib/openpgp/extras.c,
-       lib/pk-libgcrypt.c, libextra/gnutls_ia.c: Fix warnings.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Translate unknown error code message.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Don't translate symbol names.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Fix warning about defining variable inside
-       functions.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_errors.c,
-       src/errcodes.c: Add gnutls_strerror_name.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c: Re-add, but mark static.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, gl/getdelim.c, gl/m4/getdelim.m4, maint.mk: Update
-       gnulib files.
-
-2008-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/opencdk/Makefile.am, lib/x509/Makefile.am: Fix libtasn1
-       include paths.
-
-2008-08-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/opencdk/read-packet.c: avoid using gcrypt function.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/auth_rsa.c, lib/debug.c, lib/gnutls_cert.c,
-       lib/gnutls_dh.c, lib/gnutls_errors.c, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_v2_compat.c: Fix warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Simplify logic.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/dn.c: Remove dead code.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/Makefile.am: Don't include missing -I's.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Drop warning.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Drop removed libextra directories from -I's.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Enable all kind of warnings.  If you remove some,
-       add a comment on why.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/pgp.c, lib/x509/pbkdf2-sha1.c: Fix warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Tweak warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/dn.c: Fix warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c, lib/x509/common.h: Fix warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_srp.c, lib/rnd-libgcrypt.c: Fix warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_num.h: Protect against double inclusion.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/crypto.h: Protect against double inclusions.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/byteswap.in.h, lgl/m4/byteswap.m4,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4,
-       lgl/tests/Makefile.am, lgl/tests/test-byteswap.c, lib/gnutls_num.c,
-       lib/gnutls_num.h: Use byteswap from gnulib.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_srp.h, lib/gnutls_global.c: Fix warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_auth_int.h: Protect against double inclusion.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.h: Protect against double inclusion.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.h, lib/gnutls_record.h, lib/gnutls_state.h: Fix
-       warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.h, lib/gnutls_pk.h, lib/gnutls_x509.h,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c, lib/x509/verify.c: Fix
-       warnings.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add warning.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Check whether warning flags are supported before
-       using them.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am, lib/gnutls_x509.c, lib/x509/output.c: 
-       Make disable-extra-pki work better.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix --disable-extra-pki flag.
-
-2008-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls_x509.c, lib/gnutls_x509.h, tests/Makefile.am,
-       tests/set_pkcs7_cred.c: Remove code to import PKCS#7 certificate
-       chains.  The code hasn't worked since GnuTLS v0.9.0.  Reported by
-       Christian Grothoff <christian@grothoff.org>.
-
-2008-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Cast datasize to long to match %ld printf
-       format.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * tests/set_pkcs7_cred.c: Fix.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * tests/set_pkcs7_cred.c: Use utils infrastructure.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/set_pkcs7_cred.c: Add set_pkcs7_cred self
-       test.
-
-2008-08-26  Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-
-       * : commit 06ee30f6e553d4739ca50ab84492179da64cfc3e Author: Daniel
-       Kahn Gillmor <dkg@fifthhorseman.net> Date:   Tue Aug 26 11:00:27
-       2008 -0400
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c, libextra/gnutls_extra.c: Fix gnulib calls.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/autobuild.m4, lgl/Makefile.am, lgl/m4/gnulib-comp.m4,
-       lgl/m4/string_h.m4, lgl/m4/strverscmp.m4, lgl/m4/threadlib.m4,
-       lgl/string.in.h, lgl/strverscmp.h, lgl/tests/Makefile.am,
-       lgl/tests/test-strverscmp.c: Update gnulib files.
-
-2008-08-25  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_pk.c, lib/pk-libgcrypt.c, lib/x509/privkey.c: corrected
-       private key generation
-
-2008-08-25  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 976565830d853f981ecd749bdb15dd02133ed93b Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Mon Aug 25 19:50:07
-       2008 +0300
-
-2008-08-25  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/output.c: removed code that incorrectly printed IP
-       addresses.
-
-2008-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/fr.po.in, po/nl.po.in: Sync with TP.
-
-2008-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-08-19  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/opencdk/opencdk.h, lib/opencdk/read-packet.c: patch by Daniel
-       Kahn Gillmor, to enable parsing (but not decrypting) of locked
-       secret keys (including the "gnu-dummy" S2K option).
-
-2008-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-08-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.4.
-
-2008-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/autobuild.m4, lgl/m4/lock.m4: Update gnulib files.
-
-2008-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Fix secure memory initialization of
-       libgcrypt.  Reported by Joe Orton <joe@manyfish.co.uk> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2992>.
-
-2008-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Reference NIST SP 800-57.
-
-2008-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc5246.txt: Add.
-
-2008-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Re-add lost entry.
-
-2008-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/crypto.c, lib/gnutls_extensions.c, lib/gnutls_state.c,
-       lib/x509/crq.c: Doc fixes.
-
-2008-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.3.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h, includes/gnutls/openssl.h,
-       includes/gnutls/pkcs12.h, includes/gnutls/x509.h: Bump copyright in
-       installed header files.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Drop final comma in enum.  Reported
-       in <https://savannah.gnu.org/support/?106453>.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutlsxx.cpp: Don't call SRP functions if SRP is disabled.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h, includes/gnutls/gnutls.h.in,
-       lib/auth_rsa.c, lib/gnutls_constate.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_session_pack.c,
-       lib/gnutls_sig.c, lib/gnutls_state.c, lib/gnutls_v2_compat.c,
-       libextra/gnutls_ia.c: Fix namespace problem with TLS_MASTER_SIZE and
-       TLS_RANDOM_SIZE.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/c-ctype.c, gl/c-ctype.h, gl/gnulib.mk, gl/inet_pton.c,
-       gl/m4/gnulib-comp.m4, gl/m4/inet_pton.m4, gl/tests/gnulib.mk,
-       gl/tests/test-c-ctype.c: Update gnulib files.
-
-2008-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_state.c, tests/Makefile.am,
-       tests/finished.c: Add API to set callback to extract TLS Finished
-       messages.
-
-2008-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile: Update gnulib files.
-
-2008-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, build-aux/gnupload: Update gnulib files.
-
-2008-08-03  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * includes/gnutls/x509.h, lib/x509/crq.c: added
-       gnutls_x509_crq_set_key_rsa_raw() which will set a raw key to a
-       certificate request.
-
-2008-08-02  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 767fb210de7dcde20ac05e1f3ca78375279f5603 Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Sat Aug 2 11:55:56
-       2008 +0300
-
-2008-07-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_psk_passwd.c, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/x509/pkcs12.c,
-       lib/x509/privkey_pkcs8.c, src/crypt.c: Make it compile.
-
-2008-07-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Drop doxygen.
-
-2008-07-22  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, gl/m4/gnulib-comp.m4, lgl/m4/gnulib-comp.m4,
-       lgl/vasnprintf.c: Update gnulib files.
-
-2008-07-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2008-07-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, doc/Makefile.am, doc/doxygen/Doxyfile.in,
-       doc/doxygen/Doxyfile.orig: Add doxygen scripts.
-
-2008-07-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Cleanup struct name, for doxygen documentation.
-
-2008-07-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/random.h: Add license.
-
-2008-07-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_rsa.c, lib/auth_srp_passwd.c, lib/gnutls_pk.c,
-       lib/random.c, lib/random.h, lib/x509/privkey_pkcs8.c, src/psk.c: 
-       Minor randomness API cleanups.
-
-2008-07-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/dsa.c: Remove unused code.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.2.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix @include of algorithms.texi.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix typos.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, src/Makefile.am: Generate algorithms.texi the
-       same way as error_codes.texi for consistency.  Fixes 'make
-       distcheck' due to srcdir != objdir breakage.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump libtool library version because we added
-       interfaces.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/Makefile.am, lib/ext_inner_application.c,
-       lib/ext_inner_application.h, lib/gnutls_extensions.c,
-       libextra/Makefile.am, libextra/ext_inner_application.c,
-       libextra/ext_inner_application.h, libextra/gnutls_extra.c: Move
-       TLS/IA features to libgnutls-extra.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/tlsia.c: Initialize extra library.
-
-2008-07-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-07-07  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/printlist.c: added missing file.
-
-2008-07-06  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * doc/Makefile.am, doc/gnutls.texi: automatically generate the
-       appendix with supported algorithms and ciphersuites.
-
-2008-07-06  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/Makefile.am: automatically generate the appendix with
-       supported algorithms and ciphersuites.
-
-2008-07-06  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_priority.c: document a way to get the available
-       algorithms and protocols.
-
-2008-07-05  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/x509/common.c: Corrected memory leak in read_octet. Based on
-       patch by Colin Leroy (colin@colino.net)
-
-2008-07-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-07-03  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: Add APIs to register TLS
-       extension handlers.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am, lib/x509/Makefile.am: Use AM_CPPFLAGS.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/Makefile.am: lib/opencdk/Makefile.am (INCLUDES):
-       Rename to `AM_CPPFLAGS'.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, cfg.mk: Guile problem fixed.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_dh_primes.c: Fix typo that swapped prime/generator in
-       gnutls_dh_params_generate2.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.1.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-psk.c, doc/examples/ex-client-tlsia.c,
-       doc/examples/ex-client1.c, doc/examples/ex-client2.c,
-       doc/examples/ex-serv-export.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-psk.c, doc/examples/ex-serv1.c,
-       guile/src/core.c, guile/src/errors.c, guile/src/extra.c,
-       lib/auth_cert.c, lib/auth_dh_common.c, lib/auth_dhe.c,
-       lib/auth_psk.c, lib/auth_psk_passwd.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp_passwd.c,
-       lib/auth_srp_rsa.c, lib/cipher-libgcrypt.c, lib/crypto.c,
-       lib/debug.c, lib/ext_cert_type.c, lib/ext_max_record.c,
-       lib/ext_oprfi.c, lib/ext_server_name.c, lib/ext_srp.c,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_compress.c, lib/gnutls_constate.c, lib/gnutls_db.c,
-       lib/gnutls_dh.c, lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_kx.c,
-       lib/gnutls_mpi.c, lib/gnutls_openpgp.c, lib/gnutls_pk.c,
-       lib/gnutls_priority.c, lib/gnutls_psk.c, lib/gnutls_psk_netconf.c,
-       lib/gnutls_record.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_supplemental.c,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
-       lib/mac-libgcrypt.c, lib/minitasn1/structure.c,
-       lib/mpi-libgcrypt.c, lib/opencdk/armor.c, lib/opencdk/dummy.c,
-       lib/opencdk/hash.c, lib/opencdk/kbnode.c, lib/opencdk/keydb.c,
-       lib/opencdk/literal.c, lib/opencdk/main.c, lib/opencdk/misc.c,
-       lib/opencdk/new-packet.c, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/verify.c, lib/opencdk/write-packet.c,
-       lib/openpgp/compat.c, lib/openpgp/extras.c, lib/openpgp/output.c,
-       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
-       lib/pk-libgcrypt.c, lib/random.c, lib/rnd-libgcrypt.c,
-       lib/x509/common.c, lib/x509/crl.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/dsa.c, lib/x509/extensions.c, lib/x509/mpi.c,
-       lib/x509/output.c, lib/x509/pbkdf2-sha1.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818_hostname.c,
-       lib/x509/sign.c, lib/x509/x509.c, lib/x509/x509_write.c,
-       libextra/gnutls_openssl.c, src/certtool-cfg.c, src/certtool.c,
-       src/cli.c, src/common.c, src/crypt.c, src/psk.c, src/select.c,
-       src/serv.c, src/tests.c, src/tls_test.c,
-       tests/certificate_set_x509_crl.c, tests/crypto_rng.c,
-       tests/dhepskself.c, tests/dn.c, tests/gc.c,
-       tests/hostname-check/hostname-check.c, tests/mini.c,
-       tests/moredn.c, tests/mpi.c, tests/openpgp/keyring.c,
-       tests/openpgpself.c, tests/oprfi.c, tests/parse_ca.c,
-       tests/pkcs12-decode/pkcs12_s2k.c, tests/x509dn.c, tests/x509self.c,
-       tests/x509signself.c: Indent code.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.5.0.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12-decode/Makefile.am: The -I.. needs to point to
-       srcdir.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/Makefile.am: Need -I to builddir for gnutls.h.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore more.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Dist pbkdf2-sha1.h.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * po/pl.po.in, po/vi.po.in: Sync with TP.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, cfg.mk: Disable building guile for now, to be able to
-       do a release.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Sort functions.
-
-2008-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Don't use @acronym for C++, as it breaks old
-       texinfo/tetex installations.  Further, C++ isn't an acronym anyway
-       as far as I know.
-
-2008-07-01  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/tests/Makefile.am, gl/tests/gnulib.mk,
-       gl/tests/test-EOVERFLOW.c, gl/tests/test-arpa_inet.c,
-       gl/tests/test-getaddrinfo.c, gl/tests/test-getdelim.c,
-       gl/tests/test-getline.c, gl/tests/test-netinet_in.c,
-       gl/tests/test-strerror.c, lgl/Makefile.am, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4, lgl/tests/Makefile.am, lgl/tests/dummy.c,
-       lgl/tests/intprops.h, lgl/tests/test-EOVERFLOW.c,
-       lgl/tests/test-alloca-opt.c, lgl/tests/test-c-ctype.c,
-       lgl/tests/test-fseeko.c, lgl/tests/test-fseeko.sh,
-       lgl/tests/test-func.c, lgl/tests/test-lseek.c,
-       lgl/tests/test-lseek.sh, lgl/tests/test-memchr.c,
-       lgl/tests/test-memcmp.c, lgl/tests/test-read-file.c,
-       lgl/tests/test-snprintf.c, lgl/tests/test-stdbool.c,
-       lgl/tests/test-stdint.c, lgl/tests/test-stdio.c,
-       lgl/tests/test-stdlib.c, lgl/tests/test-string.c,
-       lgl/tests/test-strings.c, lgl/tests/test-sys_socket.c,
-       lgl/tests/test-sys_stat.c, lgl/tests/test-time.c,
-       lgl/tests/test-unistd.c, lgl/tests/test-vasnprintf.c,
-       lgl/tests/test-vasprintf.c, lgl/tests/test-wchar.c,
-       lgl/tests/verify.h: Add gnulib self-tests.
-
-2008-07-01  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/gnulib-cache.m4: Put gnulib tests in a separate directory.
-
-2008-07-01  Simon Josefsson <simon@josefsson.org>
-
-       * m4/gc_random.m4: Remove unused code.
-
-2008-07-01  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/arcfour.c, lgl/arcfour.h, lgl/arctwo.c,
-       lgl/arctwo.h, lgl/des.c, lgl/des.h, lgl/gc-gnulib.c,
-       lgl/gc-libgcrypt.c, lgl/gc-pbkdf2-sha1.c, lgl/gc.h, lgl/hmac-md5.c,
-       lgl/hmac-sha1.c, lgl/hmac.h, lgl/m4/arcfour.m4, lgl/m4/arctwo.m4,
-       lgl/m4/des.m4, lgl/m4/gc-arcfour.m4, lgl/m4/gc-arctwo.m4,
-       lgl/m4/gc-camellia.m4, lgl/m4/gc-des.m4, lgl/m4/gc-hmac-md5.m4,
-       lgl/m4/gc-hmac-sha1.m4, lgl/m4/gc-md2.m4, lgl/m4/gc-md4.m4,
-       lgl/m4/gc-md5.m4, lgl/m4/gc-pbkdf2-sha1.m4, lgl/m4/gc-random.m4,
-       lgl/m4/gc-rijndael.m4, lgl/m4/gc-sha1.m4, lgl/m4/gc.m4,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4, lgl/m4/hmac-md5.m4,
-       lgl/m4/hmac-sha1.m4, lgl/m4/md2.m4, lgl/m4/md4.m4, lgl/m4/md5.m4,
-       lgl/m4/memxor.m4, lgl/m4/rijndael.m4, lgl/m4/sha1.m4, lgl/md2.c,
-       lgl/md2.h, lgl/md4.c, lgl/md4.h, lgl/md5.c, lgl/md5.h,
-       lgl/memxor.c, lgl/memxor.h, lgl/rijndael-alg-fst.c,
-       lgl/rijndael-alg-fst.h, lgl/rijndael-api-fst.c,
-       lgl/rijndael-api-fst.h, lgl/sha1.c, lgl/sha1.h: Drop gnulib gc
-       modules.
-
-2008-07-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lgl/m4/gnulib-cache.m4: Drop gc.
-
-2008-07-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/x509/privkey_pkcs8.c: Drop gc.h.
-
-2008-06-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: (_gnutls_handshake_hash_buffers_clear): Make sure deinitialized MAC
-       hashes are initialized.  Report and tiny patch from Tomas Mraz
-       <tmraz@redhat.com>.
-
-2008-06-30  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-06-30  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/crypt.c: this fixes a problem in srptool, where the passwords
-       never match (--verify check) on some architectures (patch by
-       Matthias Koenig <mkoenig@suse.de>)
-
-2008-06-30  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * includes/gnutls/openssl.h, libextra/gnutls_openssl.c: corrected
-       openssl.
-
-2008-06-30  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * includes/gnutls/openssl.h, libextra/gnutls_openssl.c: use native
-       gnutls functions.
-
-2008-06-30  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: added
-       _gnutls_hash_fast()
-
-2008-06-30  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit fded9a7d1e6d58f951fc7e8f4db80d3e23f5ea1f Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Mon Jun 30 20:15:19
-       2008 +0300
-
-2008-06-30  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/crypt.c, src/psk.c: avoid using gc_ functions for random data.
-
-2008-06-30  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_hash_int.c, lib/gnutls_hash_int.h,
-       lib/x509/Makefile.am, lib/x509/pbkdf2-sha1.c,
-       lib/x509/pbkdf2-sha1.h, lib/x509/privkey_pkcs8.c, tests/gc.c: added
-       _gnutls_pkcs5_pbkdf2_sha1() based on gc_pkcs5_pbkdf2_sha1()
-
-2008-06-30  Simon Josefsson <simon@josefsson.org>
-
-       * : Remove executable.
-
-2008-06-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk_netconf.c: Remove debug code.
-
-2008-06-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-06-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-cache.m4, gl/m4/gnulib-tool.m4,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-tool.m4: Update gnulib files.
-
-2008-06-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-29  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_state.c: added check before reallocation of parameters
-       to avoid memory leaks on rehandshake.
-
-2008-06-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS: document the rewrite of opencdk crypto backend.
-
-2008-06-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, doc/gnutls.texi, includes/gnutls/crypto.h,
-       includes/gnutls/gnutls.h.in, lib/Makefile.am, lib/auth_anon.c,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/auth_dhe_psk.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/auth_srp.c, lib/cipher-libgcrypt.c, lib/crypto.c, lib/crypto.h,
-       lib/debug.c, lib/debug.h, lib/gnutls_algorithms.c,
-       lib/gnutls_cert.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_datum.h, lib/gnutls_dh.c,
-       lib/gnutls_dh.h, lib/gnutls_dh_primes.c, lib/gnutls_global.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_openpgp.c,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_priority.c,
-       lib/gnutls_psk_netconf.c, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_supplemental.c, lib/gnutls_x509.h,
-       lib/mac-libgcrypt.c, lib/mpi-libgcrypt.c, lib/opencdk/Makefile.am,
-       lib/opencdk/armor.c, lib/opencdk/context.h, lib/opencdk/dummy.c,
-       lib/opencdk/filters.h, lib/opencdk/hash.c, lib/opencdk/kbnode.c,
-       lib/opencdk/keydb.c, lib/opencdk/literal.c, lib/opencdk/main.c,
-       lib/opencdk/main.h, lib/opencdk/misc.c, lib/opencdk/new-packet.c,
-       lib/opencdk/opencdk.h, lib/opencdk/packet.h, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c, lib/opencdk/types.h,
-       lib/opencdk/verify.c, lib/opencdk/write-packet.c,
-       lib/openpgp/extras.c, lib/openpgp/openpgp_int.h,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/privkey.c,
-       lib/pk-libgcrypt.c, lib/random.c, lib/random.h,
-       lib/rnd-libgcrypt.c, lib/x509/Makefile.am, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/crl.c, lib/x509/mpi.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_encr.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_int.h, src/psk-gaa.c,
-       tests/Makefile.am, tests/ca.pem, tests/crypto_rng.c, tests/mpi.c,
-       tests/netconf-psk.c, tests/openpgp/keyring.c,
-       tests/pkcs12-decode/Makefile.am, tests/pkcs12-decode/pkcs12_s2k.c: 
-       Initial merge attempt with gnutls_with_ext_mpi
-
-2008-06-25  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_dh_primes.c: do not add trailing zero on the size
-       count.
-
-2008-06-23  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile: Update gnulib files.
-
-2008-06-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Fix build failures related to opencdk.h.
-       Reported by Roman Bogorodskiy <novel@FreeBSD.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2930>.
-
-2008-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix typo.
-
-2008-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Disable C++ library if psk, srp, anon etc have been
-       disabled.  The libgnutlsxx.cpp file calls several functions that may
-       have been removed.
-
-2008-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, doc/examples/Makefile.am: Make
-       --disable-psk-authentication work.
-
-2008-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/lock.m4: Update gnulib files.
-
-2008-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-cxx.cpp: Use cstring instead of string.h.
-       Reported by Daniel Black <dragonheart@gentoo.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2922>.
-
-2008-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/psk.c: Fix warning regarding undeclared getpass
-       replacement.  Reported by Massimo Gaspari <massimo.gaspari@alice.it>
-       in <http://permalink.gmane.org/gmane.network.gnutls.general/1281>.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix warning.  Reported by Massimo Gaspari
-       <massimo.gaspari@alice.it> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1281>.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.h: Add prototype for _gnutls_session_is_psk.
-       Reported by Massimo Gaspari <massimo.gaspari@alice.it> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1281>.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, NEWS, configure.in: Bump versions.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add v2.4.0 release notes.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix release target.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.4.0.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-06-18  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS, NEWS, includes/gnutls/openpgp.h, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c: libgnutls [OpenPGP]: New APIs to retrieve
-       fingerprint from OpenPGP subkeys.  Contributed by Daniel Kahn
-       Gillmor <dkg-debian.org@fifthhorseman.net>.
-
-2008-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/pgp.c: Fix typo in documentation.  Tiny patch from
-       Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>.
-
-2008-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.15.
-
-2008-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/openpgp-certs/Makefile.am: Disable
-       openpgp-certs properly.
-
-2008-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs_template, lgl/Makefile.am, lgl/m4/stdio_h.m4,
-       lgl/stdio.in.h: Update gnulib files.
-
-2008-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/Makefile.am: Disable openpgp-certs self-test.
-
-2008-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.14.
-
-2008-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/memmem.m4: Update gnulib files.
-
-2008-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgp-certs/testcerts: Use port 5557.
-
-2008-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Unrelease it.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgp-certs/testcerts: Fix.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgp-certs/testcerts: Deal with objdir != srcdir builds.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgp-certs/Makefile.am: Dist *.gpg's.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix release target.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Reorder.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Drop AC_CANONICAL_TARGET, unused.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/gnulib.mk, gl/m4/autobuild.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, m4/autobuild.m4: Import
-       autobuild from gnulib.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.14.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-06-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Doc fix.
-
-2008-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/x509.c: gnutls_x509_crt_get_extension_oid: Doc fix.
-       Reported by Sam Varshavchik <mrsam@courier-mta.com>.
-
-2008-06-08  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/opencdk/sig-check.c: added check for empty UID list.
-
-2008-06-08  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * configure.in, tests/Makefile.am, tests/openpgp-certs/Makefile.am,
-       tests/openpgp-certs/ca-public.gpg,
-       tests/openpgp-certs/ca-secret.gpg,
-       tests/openpgp-certs/srv-public-127.0.0.1-signed.gpg,
-       tests/openpgp-certs/srv-public-all-signed.gpg,
-       tests/openpgp-certs/srv-public-localhost-signed.gpg,
-       tests/openpgp-certs/srv-public.gpg,
-       tests/openpgp-certs/srv-secret.gpg, tests/openpgp-certs/testcerts: 
-       Added OpenPGP certificate verification test.
-
-2008-06-08  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, lib/opencdk/keydb.c, lib/opencdk/main.h,
-       lib/opencdk/sig-check.c: Changed OpenPGP verification behaviour. An
-       OpenPGP certificate is now only considered verified if all the user
-       IDs are verified.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/examples/ex-cxx.cpp: Make it find strlen.  Problem
-       reported by Rainer Gerhards <rgerhards@gmail.com> and suggested fix
-       by "John Brooks" <aspecialj@gmail.com>.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS: Sync with TP.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS: Sync with TP.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.13.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-serv-export.c: Fix memory leak.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/resume.c: Fix memory leak.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile: Update gnulib files.
-
-2008-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/anonself.c, tests/dhepskself.c, tests/mini.c,
-       tests/openpgpself.c, tests/oprfi.c, tests/x509dn.c,
-       tests/x509self.c, tests/x509signself.c: tests/: Reduce amount of
-       debugging output.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/set_pkcs12_cred.c: Make it run without PKCS12FILE for
-       typical scenarios.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/resume.c: Fix memory leak.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/tlsia.c: Fix memory leak.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509dn.c: Fix memory leaks.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pskself.c: Fix most memory leaks.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/dhepskself.c: Fix memory leaks.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509signself.c: Fix memory leaks.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/anonself.c: Fix memory leaks.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509self.c: Revert last commit, fix memory leak the right
-       way.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgpself.c: Fix memory leak.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509self.c: Fix memory leaks.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-x509-info.c: Fix printing of serial number.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/libgcrypt.supp: Drop non-generic stuff.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/gc.c: Fix memory leak.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/certder.c: Fix memory leaks.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/moredn.c: Fix memory leak.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Dist libgcrypt.supp.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/libgcrypt.supp: Add.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/mini.c: Fix warnings.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/Makefile.am, tests/mini.c: Add mini self-test, to
-       avoid having to fork to test TLS handshakes.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * po/ms.po.in: Sync with TP.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Reorder.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add psktool to @direntry.  Alphasort @direntry.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * README: Drop experimental stuff.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgpself.c: The test now works.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/stdio-impl.h: Update gnulib files.
-
-2008-06-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-06-04  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/openpgp/pgp.c, lib/openpgp/privkey.c: safer copying of keyid
-       type.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.12.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-netconf-tls-02.txt: Add.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: We reverted the ABI bump.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk_netconf.c: Doc fix.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk.c: Doc fix.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, src/psk-gaa.c: Generated.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump ABI version due to added symbols.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * : commit aa2c7264a52b993aca39c613e5fe1aed7511c972 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Wed Jun 4 08:11:34 2008
-       +0200
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-session-info.c: Update example with more PSK
-       printing.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.4.netconf.2.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Document PSK stuff.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Allow --pskusername to be specified to avoid query in
-       PSK callback.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv-gaa.c, src/serv-gaa.h: Generated.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/cli.c: gnutls-cli: Implement PSK callback.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/serv.c, src/serv.gaa: Add gnutls-serv --pskhint.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_psk.c: Generate server key exchange (psk identity hint).
-       Invoke client callback.
-
-2008-06-04  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in, lib/auth_psk.h, lib/gnutls_psk.c: Add
-       gnutls_psk_set_server_credentials_hint.
-
-2008-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_psk.c, src/common.c: 
-       Add gnutls_psk_client_get_hint function.  Use it.
-
-2008-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_session_pack.c: Pack/unpack psk identity hint too.
-
-2008-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/psk-gaa.c, src/psk-gaa.h, src/psk.c, src/psk.gaa: 
-       psktool: Support --netconf-hint.
-
-2008-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-06-02  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/openpgp/openpgp_int.h: safer use of KEYID_IMPORT().
-
-2008-06-02  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/auth_cert.c: Corrected usage of DECR_LEN()
-
-2008-06-01  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * tests/openpgpself.c: reduced logging level
-
-2008-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * m4/libgcrypt.m4: Update to latest version.
-
-2008-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.vers, libextra/libgnutls-extra.vers: Add emacs mode
-       markers.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Revert "Revert ABI version, make libgnutls-extra use
-       another ABI version." This reverts commit 1a0f4dbf5a79ac61c7d10257221d851a4a12d814.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Revert "Use libtool EXTRA_ version symbols." This reverts commit 4e6bc87a35ed471022019265f7b5628e480f7e38.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention ABI bump.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Use libtool EXTRA_ version symbols.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Revert ABI version, make libgnutls-extra use another
-       ABI version.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump ABI version.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: Doc fix.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Merge 2.2.x branch NEWS entries.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl_write.c: (gnutls_x509_crl_set_version): Fix on platform where 'char' can be
-       unsigned.  Based on report from Laurence Withers <l@lwithers.me.uk>,
-       see:
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2825>.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/memcmp.m4, lgl/stdbool.in.h, lgl/vasnprintf.c: Update
-       gnulib files.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/openssl.h, libextra/gnutls_openssl.c: 
-       libgnutls-openssl: added RAND_pseudo_bytes API.  Tiny patch from
-       Robert Millan <rmh@aybabtu.com>.
-
-2008-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-05-24  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/opencdk/sig-check.c: added error check.
-
-2008-05-24  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/openpgp/output.c: Print Never when a certificate never
-       expires.
-
-2008-05-24  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/openpgp/pgp.c: Corrected bug gnutls_openpgp_crt_get_name()
-       which returned the same value for index==0 or 1.
-
-2008-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.11.
-
-2008-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/memcmp.m4, maint.mk: Update gnulib files.
-
-2008-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Fix ex-cxx name.  Fix LDADD's.
-
-2008-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * po/nl.po.in, po/pl.po.in, po/sv.po.in, po/vi.po.in: Sync with TP.
-
-2008-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Restore umask after opening file.  Suggested by
-       Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>.
-
-2008-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, src/certtool.c, src/crypt.c, src/psk.c: Use
-       umask unconditionally.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cipher.c: Fix broken debug check for GNUTLS-SA-2008-1.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Don't pass all C flags when building C++ library.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.10.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-05  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_str.c, tests/hostname-check/hostname-check.c: added
-       wide wildcard hostname matching. Patch by Jean-Philippe Garcia
-       Ballester.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Disable ftp.gnutls.org for now.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/vasnprintf.c: Update gnulib files.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_server_name.c, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c: Fix GNUTLS-SA-2008-1 security
-       vulnerabilities.  See
-       http://www.gnu.org/software/gnutls/security.html for updates.
-
-2008-05-18  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS: Use umask to restrict permissions to owner before creating a
-       file.
-
-2008-05-18  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: Use umask to restrict the newly created file's
-       permissions if operating on a private key.  This effectively fixes
-       the issue reported at
-       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=373169> and the
-       followups.
-
-2008-05-17  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, doc/examples/Makefile.am, doc/examples/ex-cxx.cpp,
-       doc/gnutls.texi, includes/gnutls/gnutlsxx.h, lib/gnutlsxx.cpp: 
-       Updated the C++ API with patch from Eduardo Villanueva Che.
-       Suggested by Benjamin Herr.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.9.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove obsolete comment.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Don't check for present headers, hard code checks
-       for silly src/cfg/.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lgl/Makefile.am, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4: Replace strings.h check with gnulib module.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/strcase.m4, lgl/m4/strings_h.m4, lgl/strcasecmp.c,
-       lgl/strings.in.h, lgl/strncasecmp.c: Replace strings.h check with
-       gnulib module.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, src/certtool.c: certtool: When writing private keys
-       to files, change permissions of file.  Now the file which the
-       private key is saved to is chmod'ed 0600.  Reported by martin f
-       krafft <madduck@debian.org> see
-       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=373169>.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, src/certtool-cfg.c, src/certtool-cfg.h,
-       src/certtool.c: certtool: Encrypting a private key now require a
-       confirmed password.  Before, './certtool -k -8' would merely ask for
-       a password once.  Reported by Daniel 'NebuchadnezzaR' Dehennin
-       <nebuchadnezzar@asgardr.info> see
-       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=364287>.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update
-       gnulib files.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Remove --enable-profile-mode.
-
-2008-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/memmem.m4, lgl/str-two-way.h: Update gnulib files.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_psk.c, lib/gnutls_kx.c, lib/gnutls_state.c: Allow for
-       server key exchange message to be optional for PSK ciphers.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.4.netconf.1.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_psk.c, lib/auth_psk.h: Parse psk_identity_hint field.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix so that PSK authentication works.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/gnutls.texi: Document gnutls-cli PSK fix.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix so that PSK authentication works.
-
-2008-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4,
-       lgl/m4/gnulib-common.m4, lgl/m4/gnulib-comp.m4: Update gnulib files.
-
-2008-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-new-mac-07.txt: Add.
-
-2008-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * guile/tests/Makefile.am: Don't run guile openpgp self tests if
-       openpgp is disabled.
-
-2008-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Don't run openpgpself if openpgp stuff wasn't
-       built.
-
-2008-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/examples/ex-session-info.c, guile/src/core.c,
-       guile/tests/Makefile.am: libgnutls: Compile if SRP is disabled.
-       Report and tiny patches from <jared.jennings.ctr@eglin.af.mil>, see
-       <https://savannah.gnu.org/support/index.php?106342>.
-
-2008-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Fix warning.
-
-2008-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, gl/getaddrinfo.h: Update gnulib files.
-
-2008-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/output.c: More translation markups.
-
-2008-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * po/POTFILES.in: Add translations from openpgp output functions
-       too.
-
-2008-05-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Translation fixes, tiny patch from Benno
-       Schulenberg <bensberg@justemail.net>.
-
-2008-05-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4,
-       lgl/override/lib/gc-libgcrypt.c.diff: Update gnulib files.
-
-2008-05-02  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 382e242d6ab440749f44f53020a928c09a4c4765 Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Thu May 1 11:06:19
-       2008 +0300
-
-2008-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-badra-tls-psk-new-mac-aes-gcm-02.txt: Add.
-
-2008-04-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/arpa_inet.in.h, gl/getaddrinfo.c, gl/gnulib.mk,
-       gl/m4/arpa_inet_h.m4, gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4: Update
-       gnulib files.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-new-mac-06.txt,
-       doc/protocol/draft-rescorla-tls-extended-random-00.txt: Add.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Call AM_CONDITIONAL at top-level.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Dist maint.mk.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.8.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/arpa_inet_h.m4, lgl/Makefile.am,
-       lgl/m4/stdlib_h.m4, lgl/m4/string_h.m4, lgl/stdlib.in.h,
-       lgl/string.in.h: Update gnulib files.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/vi.po.in: Sync with TP.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Clarify area of change.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Doc fix.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_buffers.c,
-       lib/gnutls_errors.c, lib/gnutls_handshake.c, lib/gnutls_int.h: 
-       Increase max handshake packet size.  Add new error code for
-       situation.  Thanks to Marc Haber <mh+debian-bugs@zugschlus.de> and
-       "Marc F.  Clemente" <marc@mclemente.net> for reporting and providing
-       test servers.
-
-2008-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 08e4c95c3659544c39b93539d62209d4c296d5b1 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Tue Apr 29 00:13:26 2008
-       +0200
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Avoid another duplicate call to socket_bye() which can
-       cause a crash.
-
-2008-04-28  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, src/cli.c, src/common.c, src/common.h, src/serv.c,
-       src/tests.c: gnutls-cli will exit once a certificate that doesn't
-       have the correct name is found.
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml, lib/gnutls_cert.c,
-       lib/gnutls_openpgp.c, lib/gnutls_str.c, lib/gnutls_x509.c,
-       lib/openpgp/pgp.c, lib/openpgp/privkey.c, lib/x509/dn.c: Doc markup
-       for newly added APIs.
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl.c, lib/x509/crq.c, lib/x509/pkcs12_bag.c,
-       lib/x509/pkcs7.c, lib/x509/x509.c: Doc fixes (silence gtk-doc
-       warnings).
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl_write.c, lib/x509/x509_write.c: Doc fixes (silence
-       gtk-doc warnings).
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c, lib/x509/pkcs7.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_write.c: Doc fixes (silence gtk-doc
-       warnings).
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c, lib/x509/dn.c, lib/x509/output.c,
-       lib/x509/privkey.c: Doc fixes (silence gtk-doc warnings).
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 02393bd4ef0c2ee7864c356f70623f3950f372f0 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Mon Apr 28 18:14:14 2008
-       +0200
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, gl/arpa_inet.in.h, gl/gnulib.mk,
-       gl/inet_ntop.c, gl/inet_ntop.h, gl/inet_pton.c, gl/inet_pton.h,
-       gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4,
-       lgl/Makefile.am, lgl/fseeko.c, lgl/intprops.h,
-       lgl/m4/gnulib-comp.m4, lgl/m4/sys_socket_h.m4, lgl/memchr.c,
-       lgl/stdio-impl.h, lgl/sys_socket.in.h: Update gnulib files.
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix typo.
-
-2008-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, includes/gnutls/crypto.h: Hide crypto.h definitions
-       by default.
-
-2008-04-26  Nikos Mavrogiannopoulos <nmav@turtle.(none)>
-
-       * tests/Makefile.am, tests/crypto_rng.c: added crypto rng
-       registration test.
-
-2008-04-26  Nikos Mavrogiannopoulos <nmav@turtle.(none)>
-
-       * lib/crypto.c: add warning that these functions have to be called
-       before gnutls_global_init().
-
-2008-04-26  Nikos Mavrogiannopoulos <nmav@turtle.(none)>
-
-       * lib/crypto.c, lib/random.c: faster seek into the list.
-
-2008-04-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls_psk_netconf.c, tests/netconf-psk.c: Change PSK
-       key derivation algorithm.
-
-2008-04-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-04-25  Nikos Mavrogiannopoulos <nmav@turtle.(none)>
-
-       * lib/crypto.c, lib/crypto.h, lib/gnutls_global.c: Added
-       deregisteration function to free buffers allocated for registering
-       algorithms.
-
-2008-04-25  Nikos Mavrogiannopoulos <nmav@turtle.(none)>
-
-       * lib/crypto.c: corrected segmentation fault on registering ciphers.
-
-2008-04-25  Nikos Mavrogiannopoulos <nmav@turtle.(none)>
-
-       * doc/manpages/certtool.1, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.gaa: added --outraw --inraw options.
-
-2008-04-23  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, lgl/sys_socket.in.h: Update gnulib files.
-
-2008-04-23  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Revert libgcrypt vs vasprintf workaround, now that
-       1.4.1rc1 is released.
-
-2008-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/arpa_inet.in.h: Update gnulib files.
-
-2008-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/arpa_inet.in.h, gl/gnulib.mk, gl/m4/arpa_inet_h.m4,
-       gl/m4/gnulib-comp.m4, lgl/sys_socket.in.h: Update gnulib files.
-
-2008-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 34e3d59b2e276b8a45924f11f6916399fa14f5be Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Tue Apr 22 09:56:03 2008
-       +0200
-
-2008-04-21  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 1b6c0f521f7e6e3d48b74fbb568a53547c5ff8ec Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Mon Apr 21 21:53:55
-       2008 +0300
-
-2008-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.7.
-
-2008-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Don't clean Guile documentations on make clean.
-
-2008-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/psk-gaa.c, src/psk.gaa, src/serv.c, src/tests.c: 
-       Fix warnings.
-
-2008-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/reference/Makefile.am, lib/minitasn1/Makefile.am,
-       lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/mem.h: Update to libtasn1
-       1.4.
-
-2008-04-19  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS: opencdk now properly sets the key usage bits into openpgp
-       keys.
-
-2008-04-19  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/opencdk/keydb.c, lib/opencdk/read-packet.c: save key usage
-       while reading public keys.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Don't crash on TLS handshake failures.  Reported by
-       "Marc F. Clemente" <marc@mclemente.net> in Debian BTS #466477.  This
-       is related to the 5e5f086e124d8d90829fc8e22f34044161da5f80 fix, this
-       part is necessary too.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/certtool.c: certtool: with --generate-request and newly
-       generated keys, print the key.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Explain libgcrypt around gnulib.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, doc/reference/gnutls-docs.sgml: Don't
-       document opencdk API.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo fix.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Link to -lws2_32 if needed.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Define WINVER to get modern features.  Test for
-       ws2_32.  Add conditional.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Use ASCII-only isprint function to get
-       consistent outputs.  Reported by Massimo Gaspari
-       <massimo.gaspari@alice.it> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1184>.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/c-ctype.c, lgl/c-ctype.h, lgl/dummy.c,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4: Add c-ctype module,
-       for lib/x509/output.c.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * gl/fseeko.c, gl/gnulib.mk, gl/lseek.c, gl/m4/extensions.m4,
-       gl/m4/fseeko.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/lseek.m4, gl/m4/netinet_in_h.m4, gl/m4/strerror.m4,
-       lgl/Makefile.am, lgl/fseeko.c, lgl/lseek.c, lgl/m4/extensions.m4,
-       lgl/m4/fseeko.m4, lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/lseek.m4, lgl/m4/memmem.m4, lgl/m4/stdint.m4,
-       lgl/m4/stdio_h.m4, lgl/m4/sys_socket_h.m4: Move fseeko to lgl/ from
-       gl/ for opencdk.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Link to libgcrypt when running gnulib checks, to get
-       their vasprintf on MinGW.
-
-2008-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Don't check for vasprintf, already checked for by
-       gnulib.
-
-2008-04-17  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/openpgp/pgp.c: corrected typo.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * .clcopying, .cvscopying, .cvsusers, Makefile.am, src/pkcs1.asn: 
-       Fix some obsolete stuff.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: (gnutls_x509_crt_get_key_usage): Doc fix.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.6.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Link errcodes with gnulib.  Possibly fixes
-       rpl_strerror problem when linking on HPUX, see:
-
-       <http://hpux.cs.utah.edu/hppd/cgi-bin/wwwtar?/hpux/Gnu/gnutls-2.3.4/gnutls-2.3.4-src-11.11.tar.gz+gnutls-2.3.4/HPUX.Install+text>.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 01a64fe6798a4ba82df9accf67c7c8f657abd9f5 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Thu Apr 17 14:27:03 2008
-       +0200
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/kbnode.c: Doc fix (gtk-doc warning).
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/openssl.h: Fix gtk-doc warning about duplicate RSA
-       namespace.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c: Fix warning.
-
-2008-04-17  Ludovic Courtès <ludo@gnu.org>
-
-       * : commit 2b4f4e3fd2b0df0b77b283928154b5f3e9139fe8 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Thu Apr 17 14:15:49 2008
-       +0200
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Fix --source-dir to only cover lib/,
-       libextra/ and includes/.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Simplify cdk handling.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Discuss OpenCDK better.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * README: No need for external opencdk.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, lib/opencdk/misc.c: Remove code to
-       link with external opencdk.  It seems we now don't have resources to
-       maintain the LGPL opencdk code externally, since making it use
-       GnuTLS's crypto code will be complicated.  See discussion in:
-
-       http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2672/focus=2711
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: No need for alloca checks.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls_algorithms.c, lib/gnutls_buffers.c,
-       lib/gnutls_constate.c, lib/gnutls_handshake.c, lib/gnutls_mem.h,
-       lib/gnutls_mpi.c, lib/gnutls_pk.c, lib/x509/crl.c, lib/x509/mpi.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/x509.c: Remove
-       all uses of gnutls_alloca/gnutls_afree.  Use normal gnutls_malloc
-       instead.  One reason is increased portability to Windows, the other
-       is that several of the uses may be unsafe because the size of data
-       allocated could be large.  Reported by Massimo Gaspari
-       <massimo.gaspari@alice.it> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1170>.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c: Don't use alloca, the certificate list can be
-       larger than stack size.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/output.c: Don't use %e specifier with strftime, it
-       doesn't work under Windows.  Reported by Massimo Gaspari
-       <massimo.gaspari@alice.it> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1170>.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_asn1_tab.c, lib/pkix_asn1_tab.c: Re-generate using
-       modern libtasn1.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Fix typo.
-
-2008-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/pathlen/pathlen: Run diff without parameters, to
-       improve portability.  Based on HPUX recommendations in
-
-       <http://hpux.cs.utah.edu/hppd/cgi-bin/wwwtar?/hpux/Gnu/gnutls-2.3.4/gnutls-2.3.4-src-11.11.tar.gz+gnutls-2.3.4/HPUX.Install+text>.
-
-2008-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Reorder libgnu.la last.  Possibly fix
-       rpl_fseeko problem reported in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1166>.
-
-2008-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Update bibliography.
-
-2008-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Doc fix (silence texinfo warning).
-
-2008-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/pgp.c: Improve error messages.  See
-       <http://trac.gnutls.org/cgi-bin/trac.cgi/ticket/26>.
-
-2008-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rsa-aes-gcm-03.txt: Add.
-
-2008-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/crq.c, src/certtool.c: Make gnutls_x509_crq_sign2
-       set certificate request version if not set.
-
-2008-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, lib/x509/crq.c: Improve documentation for
-       gnutls_x509_crq_sign2.  Based on report from "John Brooks"
-       <aspecialj@gmail.com> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1154>.
-
-2008-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-rescorla-tls-suiteb-02.txt: Add.
-
-2008-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-new-mac-05.txt: Add.
-
-2008-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.5.
-
-2008-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/tls_test.c: Rely on sys/socket.h for SHUT_*.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/sys_socket_h.m4, lgl/sys_socket.in.h: Update gnulib files.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/gc-libgcrypt.c, lgl/m4/gnulib-cache.m4: 
-       Update gnulib files.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/gnulib-cache.m4, lgl/override/lib/gc-libgcrypt.c.diff: 
-       Quick fix for SHA-224 and old libgcrypt's.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/random.h: Fix warnings.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * cfg.mk: Typo.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * po/Makevars: We don't need --no-location any more, git stores
-       *.po.in's.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, cfg.mk: Translation fixes.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * po/de.po, po/de.po.in, po/ms.po, po/ms.po.in, po/nl.po,
-       po/nl.po.in, po/pl.po, po/pl.po.in, po/sv.po, po/sv.po.in: Improve
-       translation handling to avoid git conflicts.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, build-aux/gnupload, gl/fseeko.c, gl/getdelim.c,
-       gl/m4/eoverflow.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/include_next.m4, lgl/gc-gnulib.c, lgl/m4/gc-random.m4,
-       lgl/m4/gnulib-common.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/include_next.m4, lgl/m4/stdint.m4, lgl/m4/vasnprintf.m4,
-       lgl/snprintf.c, lgl/vasnprintf.c, lgl/vasprintf.c, lgl/wchar.in.h: 
-       Update gnulib files.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Cosmetic.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Whitespace fix.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Improve APIMANS/SRPMANS, to make it
-       easier to understand changes.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix test.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Don't bother checking for --output-def if shared
-       libraries are disabled.  Based on report from Massimo Gaspari
-       <massimo.gaspari@alice.it> in
-       <http://permalink.gmane.org/gmane.network.gnutls.general/1145>.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, doc/gnutls.texi: Document how to generate CRLs.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.4.netconf.0.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix release target.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-psk.c: Typo.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk_netconf.c: Typo.
-
-2008-04-13  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Typo.
-
-2008-04-13  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * includes/gnutls/openpgp.h: changed api.
-
-2008-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-serv-psk.c: Doc fix.
-
-2008-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-psk.c, doc/examples/ex-serv-psk.c: Add, PSK
-       self test.
-
-2008-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk_netconf.c: Typo.
-
-2008-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Add ex-serv-psk.
-
-2008-04-12  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/cli.c: get_auth_subkey has one more parameter.
-
-2008-04-12  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/opencdk/pubkey.c: return the size of the required buffer to
-       hold the data
-
-2008-04-12  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/openpgp/output.c: Deallocate memory from parameters only when
-       function run was successful.
-
-2008-04-12  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_openpgp.c, lib/openpgp/pgp.c: Added a flag in
-       get_auth_subkey() to work for all use cases
-
-2008-04-10  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/pgp.c: do not return any subkey if an authentication
-       subkey is not found
-
-2008-04-10  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/extras.c, lib/openpgp/pgp.c, lib/openpgp/privkey.c: 
-       corrected bug in openpgp import when data is of size zero. Reported
-       by Daniel Kahn
-
-2008-04-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk_netconf.c: Fix mem leak on errors.
-
-2008-04-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-04-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/netconf-psk.c: Fix bugs.
-
-2008-04-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk_netconf.c: Fix bugs.
-
-2008-04-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/netconf-psk.c: Starting pointer for NETCONF-PSK support.
-
-2008-04-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/Makefile.am,
-       lib/gnutls_psk_netconf.c, tests/Makefile.am: Starting pointer for
-       NETCONF-PSK support.
-
-2008-04-04  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/pgp.c, lib/openpgp/privkey.c: Fail at import stage if
-       a non proper certificate is loaded.
-
-2008-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-nir-tls-eap-03.txt: Add.
-
-2008-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-netconf-tls-01.txt: Add.
-
-2008-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_psk_passwd.c: (_gnutls_psk_pwd_find_entry): Call fclose after fopen.  Tiny patch
-       from Laurence Withers <l@lwithers.me.uk>, see
-
-       <http://lists.gnu.org/archive/html/gnutls-devel/2008-04/msg00002.html>.
-
-2008-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 117152d4c91e1c01055eedada1412ec763e5196b Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Thu Apr 3 09:40:01 2008
-       +0200
-
-2008-04-02  Nikos <nmav@crystal.(none)>
-
-       * NEWS: documented the openpgp updates.
-
-2008-04-02  Nikos <nmav@crystal.(none)>
-
-       * doc/manpages/certtool.1: added the openpgp functionality to the
-       manpage.
-
-2008-04-02  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/privkey.c: Corrected exporting the DSA secret key
-       parameters.
-
-2008-04-02  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/openpgp_int.h, lib/openpgp/pgp.c,
-       lib/openpgp/privkey.c: Add proper ARMOR header in private keys.
-
-2008-04-02  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/privkey.c: 
-       Consistent printing of revoked status.  Consistent printing of key
-       algorithm.
-
-2008-04-02  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_errors.c: Added revoked UID error string.
-
-2008-04-02  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/output.c, lib/openpgp/privkey.c: Print revoked names.
-
-2008-04-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecdhe-psk-01.txt: Add.
-
-2008-03-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/crypto.h: Fix warnings.
-
-2008-03-30  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/gc-libgcrypt.c, lgl/gc.h,
-       lgl/m4/stdlib_h.m4, lgl/stdlib.in.h: Update gnulib files.
-
-2008-03-29  Nikos <nmav@crystal.(none)>
-
-       * NEWS: Documented the --priority option to gnutls-cli and
-       gnutls-serv.
-
-2008-03-29  Nikos <nmav@crystal.(none)>
-
-       * doc/manpages/gnutls-cli.1, doc/manpages/gnutls-serv.1: documented
-       the --priority option.
-
-2008-03-29  Nikos <nmav@crystal.(none)>
-
-       * NEWS: corrected the news entry.
-
-2008-03-29  Nikos <nmav@crystal.(none)>
-
-       * lib/auth_cert.c: Reverted to gnutls 2.2 behaviour of allowing an
-       empty key (for PKCS #11).  Reported by Joe Orton.
-
-2008-03-29  Nikos <nmav@crystal.(none)>
-
-       * NEWS: gnutls_crypto_rnd_register: ADDED
-
-2008-03-29  Nikos <nmav@crystal.(none)>
-
-       * : commit 0b37eef0f6b6626d5e4b5936bbc6f012416ef61a Author: Nikos
-       <nmav@crystal.(none)> Date:   Sat Mar 29 12:01:27 2008 +0200
-
-2008-03-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-badra-tls-psk-new-mac-aes-gcm-00.txt,
-       doc/protocol/draft-badra-tls-psk-new-mac-aes-gcm-01.txt: Add.
-
-2008-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/gc-libgcrypt.c, lgl/gc.h: Update gnulib files.
-
-2008-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Entries added at wrong place, move them.
-
-2008-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in: Avoid defining SHA-224 MAC
-       since it isn't specified in TLS 1.2.
-
-2008-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in: Add SHA-224 enum types.
-
-2008-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk: Update gnulib files.
-
-2008-03-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-10.txt: Add.
-
-2008-03-25  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, build-aux/GNUmakefile, build-aux/maint.mk, cfg.mk,
-       gl/gnulib.mk, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/lib-link.m4, lgl/Makefile.am, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/lib-link.m4, maint-cfg.mk, maint.mk: 
-       Update gnulib files.
-
-2008-03-20  Ludovic Courtès <ludo@gnu.org>
-
-       * configure.in, guile/src/Makefile.am: Check whether
-       `-fgnu89-inline' is supported before using it.  * configure.in: Check for `-fgnu89-inline', define Automake
-         conditional `HAVE_GCC_GNU89_INLINE_OPTION'.  * guile/src/Makefile.am (AM_CFLAGS): Only use `-fgnu89-inline' when   `HAVE_GCC_GNU89_INLINE_OPTION' is true.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_extra.c: Fix LZO build failure.
-
-2008-03-19  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/Makefile.am: guile: Compile with `-fgnu89-inline'.  * guile/src/Makefile.am (AM_CFLAGS): Add `-fgnu89-inline' when   `HAVE_GCC' is true.  This works around the fact that GnuTLS is   compiled with `-std=c99', while Guile and GMP expect GNU inline   semantics, which defer from C99 inline semantics.
-
-2008-03-19  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/core.c: guile: Don't declare `inline' functions that use
-       `alloca ()'.  * guile/src/core.c (set_certificate_file): Remove `inline' keyword.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * includes/Makefile.am: Dist gnutls/crypto.h.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.4.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-resume.c, lib/crypto.c,
-       lib/gnutls_compress_int.c, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_openpgp.c, lib/openpgp/extras.c,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/privkey.c,
-       libextra/gnutls_extra.c, libextra/gnutls_ia.c, src/certtool.c,
-       src/serv.c: Fix gcc warnings.
-
-2008-03-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Fix warning.
-
-2008-03-16  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: fixes for all tests to
-       succeed.
-
-2008-03-16  Nikos <nmav@crystal.(none)>
-
-       * includes/gnutls/crypto.h: updated
-
-2008-03-16  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_constate.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_sig.c,
-       lib/gnutls_srp.c, lib/gnutls_state.c, lib/gnutls_ui.c,
-       lib/x509/pkcs12.c, lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/sign.c, lib/x509/verify.c, lib/x509/x509.c: several fixes
-       in the cipher (register) interface and added hash.
-
-2008-03-16  Nikos <nmav@crystal.(none)>
-
-       * NEWS, includes/gnutls/crypto.h, includes/gnutls/gnutls.h.in,
-       lib/Makefile.am, lib/crypto.c, lib/crypto.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_constate.c, lib/gnutls_errors.c, lib/gnutls_int.h,
-       lib/gnutls_state.c: Added functionality to override (register) a
-       cipher. Initial functionality for MAC and digest algorithms.
-
-2008-03-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/gnutls_openpgp.h: Remove things already in
-       includes/gnutls/openpgp.h.
-
-2008-03-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_openpgp.c, lib/opencdk/Makefile.am,
-       lib/opencdk/armor.c, lib/opencdk/context.h, lib/opencdk/filters.h,
-       lib/opencdk/hash.c, lib/opencdk/kbnode.c, lib/opencdk/keydb.c,
-       lib/opencdk/literal.c, lib/opencdk/main.c, lib/opencdk/main.h,
-       lib/opencdk/misc.c, lib/opencdk/new-packet.c,
-       lib/opencdk/opencdk.h, lib/opencdk/packet.h, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/stream.h, lib/opencdk/types.h, lib/opencdk/verify.c,
-       lib/opencdk/write-packet.c, lib/openpgp/Makefile.am,
-       lib/openpgp/compat.c, lib/openpgp/extras.c, lib/openpgp/pgp.c,
-       lib/openpgp/pgpverify.c, lib/openpgp/privkey.c: Clean up license
-       headers for OpenPGP code.  According to Nikos they are now licensed
-       under the LGPL, see:
-
-       http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2658/focus=2659
-
-2008-03-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Typo.
-
-2008-03-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-comp.m4, gl/m4/include_next.m4,
-       gl/m4/stdarg.m4, gl/stdarg.in.h, lgl/Makefile.am,
-       lgl/m4/absolute-header.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/include_next.m4: Update gnulib files.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, gl/m4/fseeko.m4: Update gnulib files.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Finish renaming of export
-       x509/openpgp functions.  In particular,
-       gnutls_certificate_get_x509_cas, gnutls_certificate_get_x509_crls,
-       and gnutls_certificate_get_openpgp_keyring.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Revert
-       a3e4759117cee5d756475215437a440dc12fcc6c because it breaks libtool
-       v2.2.  ../libtool: line 4398: cd: ../../lib/.libs: No such file or
-       directory libtool: link: cannot determine absolute directory name of
-       `../../lib/.libs'
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.3.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/reference/Makefile.am, libextra/Makefile.am,
-       libextra/gnutls_extra.c, libextra/gnutls_extra.h: Remove
-       gnutls_extra.h, not needed anymore.  Fixes build failure in libextra
-       that looked for opencdk.h (via auth_cert.h).  Reported by Roman
-       Bogorodskiy <novel@FreeBSD.org>.
-
-2008-03-08  Nikos <nmav@crystal.(none)>
-
-       * : commit cf8fb4bca34ec865959f1544e395b5566f2449ac Author: Nikos
-       <nmav@crystal.(none)> Date:   Sat Mar 8 02:06:25 2008 +0200
-
-2008-03-07  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/Makefile.am: guile: Propagate Guile's CPPFLAGS to
-       `guile-snarf'.
-
-2008-03-07  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/make-enum-header.scm, guile/src/utils.h: guile: Include
-       <config.h>, not "config.h".
-
-2008-03-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-03-07  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Add index.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509_b64.c: Doc fixes.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_alert.c: Doc fix.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_str.c: Fix
-       gnutls_hex2bin prototype.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix warnings.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/select.c: Avoid confusing gtk-doc.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/kbnode.c: Doc fixes.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/opencdk/stream.c, lib/opencdk/verify.c: Doc fixes.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/privkey.c: Doc fixes.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/pgp.c, lib/openpgp/privkey.c: Doc fixes.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_state.c: Doc fixes.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_algorithms.c, lib/gnutls_record.c,
-       lib/gnutls_state.c: Doc fixes.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_ui.c: Doc fix.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_db.c: Doc fix.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_session.c: Doc fix.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Doc fix.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_srp.c: Doc fix.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_auth.c, lib/gnutls_openpgp.c, lib/gnutls_srp.c,
-       libextra/gnutls_ia.c: Doc fixes.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * m4/pkg.m4: Added, needed by new gtk-doc.m4.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Update gtk-doc Makefile.am to latest
-       examples.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/tmpl/gnutls-unused.sgml, gtk-doc.make: Update
-       gtk-doc makefile, this version allows us to get rid of tmpl/.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * m4/gtk-doc.m4: Update gtk-doc.m4.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_cert.c, lib/gnutls_global.c,
-       lib/gnutls_psk.c, lib/gnutls_record.c, lib/gnutls_srp.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/gnutls_x509.c: Doc fix,
-       remove verbose 'This function ...' Improves looks in 'apropos'
-       output.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_anon_cred.c, lib/gnutls_db.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_handshake.c, lib/gnutls_openpgp.c, lib/gnutls_psk.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_state.c, lib/gnutls_ui.c,
-       lib/x509_b64.c: Doc fix, remove verbose 'This function will' stuff.
-       Improves man page look in 'apropos'.
-
-2008-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/func.m4, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4: Use func module, to get __func__.
-
-2008-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/common.c: Print DH parameters of session.
-
-2008-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getaddrinfo.c, gl/getdelim.c, lgl/alloca.in.h,
-       lgl/gc-gnulib.c, lgl/xsize.h: Update gnulib files.
-
-2008-02-28  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/utils.c: Use __func__ instead of __FUNCTION__.  Reported
-       by Tim Mooney, see <https://savannah.gnu.org/support/?106267>.  A
-       gnulib module to make sure __func__ is available would be nice.
-
-2008-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: Doc fix.
-
-2008-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls_x509.c: Optimize adding many trusted
-       certificates.  See
-
-       <http://blog.josefsson.org/2008/02/27/real-world-performance-tuning-with-callgrind/>.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: Doc fixes.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix release target.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.2.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgpself.c: Force success.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/Makefile.am, lib/gnutls_db.c,
-       lib/gnutls_session.h: Remove empty gnutls_session.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_int.h: align comments
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_int.h: Pull in gnutls/pkcs12.h instead of
-       duplicating stuff.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am, lib/x509/pkcs12.c, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_bag.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/x509_int.h: Move lib/x509/pkcs12.h stuff to x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/gnutls_cert.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_pk.c, lib/gnutls_x509.c,
-       lib/x509/Makefile.am, lib/x509/common.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/extensions.c, lib/x509/mpi.c,
-       lib/x509/mpi.h, lib/x509/pkcs12.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_int.h, lib/x509/x509_write.c: Move
-       mpi.h stuff to x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/openpgp/pgp.c, lib/x509/Makefile.am, lib/x509/rfc2818.h,
-       lib/x509/rfc2818_hostname.c: Move rfc2818.h hostname comparison to
-       gnutls_str.h and update callers.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openssl_compat.c: gnutls_int includes config.h, no need
-       to do it twice.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openssl_compat.c: Need gnutls_int.h for mpi_t and stuff
-       (now in lib/x509/x509_int.h).
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/x509/Makefile.am,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/extensions.c,
-       lib/x509/extensions.h, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.c, lib/x509/x509_int.h,
-       lib/x509/x509_write.c: Move extensions.h stuff to x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/gnutls_rsa_export.c,
-       lib/gnutls_x509.c, lib/x509/Makefile.am, lib/x509/pkcs12_bag.c,
-       lib/x509/privkey.h, lib/x509/privkey_pkcs8.c, lib/x509/x509.c,
-       lib/x509/x509_int.h: Move privkey.h stuff to x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/gnutls_x509.c,
-       lib/openpgp/pgpverify.c, lib/x509/Makefile.am, lib/x509/privkey.c,
-       lib/x509/sign.c, lib/x509/verify.c, lib/x509/verify.h,
-       lib/x509/x509.c, lib/x509/x509_int.h: Move verify.h stuff to
-       x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/gnutls_x509.c,
-       lib/x509/Makefile.am, lib/x509/pkcs7.c, lib/x509/pkcs7.h,
-       lib/x509/x509_int.h: Move pkcs7.h stuff to x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/x509/Makefile.am, lib/x509/dsa.c,
-       lib/x509/dsa.h, lib/x509/privkey.c, lib/x509/x509_int.h: Move dsa.h
-       stuff to x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/x509/Makefile.am, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/pkcs12.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818_hostname.c,
-       lib/x509/sign.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509_int.h, lib/x509/x509_write.c,
-       libextra/openssl_compat.c: Move dn.h stuff to x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/x509/Makefile.am,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/privkey.c,
-       lib/x509/sign.c, lib/x509/sign.h, lib/x509/x509_int.h,
-       lib/x509/x509_write.c: Move sign.h stuff to x509_int.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/privkey.c: No need for rfc2818.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_int.h: Doc fixes.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_int.h: Remove stuff already in
-       includes/gnutls/x509.h.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * .gitignore: [no log message]
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, build-aux/gnupload, gl/gnulib.mk,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Use gnupload.
-
-2008-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4366-bis-02.txt: Add.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, lib/x509/Makefile.am,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/crq.h,
-       lib/x509/x509_int.h, lib/x509/x509_write.c: Merge crq.h into
-       x509_int.h, avoid one trivial header file.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Rename x509.h to x509_int.h.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_rsa_export.c, lib/gnutls_x509.c, lib/x509/crl.c,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/mpi.h,
-       lib/x509/output.c, lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/verify.h, lib/x509/x509.c, lib/x509/x509.h,
-       lib/x509/x509_int.h: Rename lib/x509/x509.h to x509_int.h.  Fixes
-       name-space collision that confuses GTK-DOC with
-       includes/gnutls/x509.h.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.h, lib/openpgp/Makefile.am, lib/openpgp/compat.c,
-       lib/openpgp/extras.c, lib/openpgp/openpgp.h,
-       lib/openpgp/openpgp_int.h, lib/openpgp/pgp.c,
-       lib/openpgp/pgpverify.c, lib/openpgp/privkey.c: Rename
-       lib/openpgp/openpgp.h to openpgp_int.h.  Fixes name-space collision
-       that confuses GTK-DOC with includes/gnutls/openpgp.h.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Change DOC_SOURCE_DIR, needed for
-       GTK-DOC to have comments for variables.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Remove unused defines.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * tests/moredn.c: Added, lost part of Joe's original
-       gnutls_x509_dn_export patch.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/time_r.m4, lgl/m4/unistd_h.m4,
-       lgl/unistd.in.h: Update gnulib files.
-
-2008-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-badra-tls-password-ext-01.txt: Add.
-
-2008-02-24  Nikos <nmav@crystal.(none)>
-
-       * NEWS, doc/manpages/Makefile.am, includes/gnutls/x509.h,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/dn.c,
-       tests/Makefile.am: Added gnutls_x509_dn_export(). Patch by Joe
-       Orton.
-
-2008-02-21  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_cert.c: _export_ -> _get_
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openpgpself.c: Don't use credentials from files (causes
-       problems with srcdir!=builddir).
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump version.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.1.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fixes.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/compat.h, includes/gnutls/gnutls.h.in,
-       lib/x509/output.c, src/certtool.c, src/serv.c: Use better names in
-       gnutls_certificate_print_formats_t.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention new APIs.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/openpgp.h: Drop gnutls_openpgp_crt_get_id (handled
-       by compat.h).
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Credit.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/compat.h, lib/openpgp/pgp.c: Cleanup
-       gnutls_openpgp_crt_get_id vs gnutls_openpgp_crt_get_key_id.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Typo.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in, includes/gnutls/openpgp.h: Make it
-       build.
-
-2008-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-extractor-01.txt,
-       doc/protocol/draft-mavrogiannopoulos-rfc5081bis-00.txt: Add.
-
-2008-02-20  Nikos <nmav@crystal.(none)>
-
-       * NEWS: removed function
-
-2008-02-20  Nikos <nmav@crystal.(none)>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_cert.c: Added
-       gnutls_certificate_export_x509_cas and other functions to export
-       elements from the certificate credentials structure.
-
-2008-02-19  Nikos <nmav@crystal.(none)>
-
-       * lib/auth_cert.h, lib/openpgp/openpgp.h: changes to compile with
-       ENABLE_OPENPGP undef.
-
-2008-02-19  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/pgp.c: do not return more than the available names.
-
-2008-02-19  Nikos <nmav@crystal.(none)>
-
-       * lib/openpgp/output.c: corrected bug that prevented printing the
-       names.
-
-2008-02-19  Nikos <nmav@crystal.(none)>
-
-       * tests/openpgp_test.c, tests/openpgpself.c: some updates
-
-2008-02-19  Nikos <nmav@crystal.(none)>
-
-       * tests/Makefile.am, tests/openpgpself.c: added self test for
-       openpgp connection
-
-2008-02-19  Nikos <nmav@crystal.(none)>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/dn.c, lib/x509/x509.c,
-       tests/Makefile.am, tests/x509dn.c: Added
-       gnutls_x509_dn_import/init/deinit() to access raw DER DN. Patch by
-       Joe Orton.
-
-2008-02-19  Nikos <nmav@crystal.(none)>
-
-       * lib/auth_cert.c, lib/gnutls_cert.c, lib/gnutls_openpgp.c,
-       lib/openpgp/gnutls_openpgp.h: better usage of gnutls_openpgp_keyid_t
-
-2008-02-19  Nikos <nmav@crystal.(none)>
-
-       * lib/auth_cert.c, lib/gnutls_openpgp.c, lib/openpgp/extras.c,
-       lib/openpgp/output.c, lib/openpgp/pgpverify.c,
-       lib/openpgp/privkey.c: copyright 2008
-
-2008-02-18  Nikos <nmav@crystal.(none)>
-
-       * doc/examples/ex-serv-pgp.c, includes/gnutls/gnutls.h.in,
-       includes/gnutls/openpgp.h, lib/auth_cert.c, lib/gnutls_cert.c,
-       lib/gnutls_openpgp.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.h, lib/openpgp/openpgp.h,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/pgpverify.c,
-       lib/openpgp/privkey.c, src/certtool.c, src/cli-gaa.c, src/cli.c,
-       src/serv-gaa.c, tests/openpgp/keyring.c: pgp_keyid_t is now
-       compatible with the 2.2 key id.
-
-2008-02-18  Nikos <nmav@crystal.(none)>
-
-       * : commit 8784572575208f8755087125b168bb0a8832cee4 Author: Nikos
-       <nmav@crystal.(none)> Date:   Mon Feb 18 17:58:24 2008 +0200
-
-2008-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * README: Don't mention SSL/TLS versions here.  Some minor other
-       fixes.
-
-2008-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/openpgp.h: For compatibility.
-
-2008-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/openpgp/openpgp.h: Remove all external APIs already declared
-       in includes/gnutls/openpgp.h.
-
-2008-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/compat.h, lib/openpgp/pgp.c: Re-add
-       gnutls_openpgp_crt_get_id to avoid breaking ABI.
-
-2008-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention gnutls_openpgp_keyid_t.
-
-2008-02-18  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/vasnprintf.m4, lgl/vasnprintf.c: Update gnulib files.
-
-2008-02-17  Nikos <nmav@crystal.(none)>
-
-       * lib/x509/x509.c: corrected string handling in parse_general_name.
-       Thanks to Andreas Metzler for pointing out.
-
-2008-02-17  Nikos <nmav@crystal.(none)>
-
-       * NEWS, lib/gnutls_int.h, lib/gnutls_ui.c, lib/gnutls_x509.c: 
-       Increased the default certificate verification chain limits and
-       allowed for checks without limitation.
-
-2008-02-17  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_priority.c: corrected previous fix in priorities
-       handling.
-
-2008-02-17  Nikos <nmav@crystal.(none)>
-
-       * NEWS, lib/auth_dh_common.c, lib/gnutls_auth.c,
-       lib/gnutls_session.c, lib/gnutls_session_pack.c: Corrected memory
-       leaks in session resuming and DHE ciphersuites. Reported by Daniel
-       Stenberg.
-
-2008-02-15  Nikos <nmav@crystal.(none)>
-
-       * NEWS: documented the gnutls_x509_crt_get_subject_alt_name fix.
-
-2008-02-15  Nikos <nmav@crystal.(none)>
-
-       * lib/x509/x509.c: null terminate only printable strings.
-
-2008-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-des-idea-00.txt: Add.
-
-2008-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-new-mac-04.txt: Add.
-
-2008-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_srp_sb64.c: Doc fixes, to clarify that srp_base64 !=
-       base64.  Based on discussion in
-
-       <http://thread.gmane.org/gmane.network.gnutls.general/1039/focus=1042>.
-
-2008-02-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-new-mac-03.txt,
-       doc/protocol/draft-ietf-tls-rfc4346-bis-09.txt,
-       doc/protocol/draft-ietf-tls-rsa-aes-gcm-02.txt: Add.
-
-2008-02-07  Nikos <nmav@crystal.(none)>
-
-       * : commit 5178625a7e120fdf7b859f52848aa9cc69574268 Author: Nikos
-       <nmav@crystal.(none)> Date:   Thu Feb 7 18:15:26 2008 +0200
-
-2008-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, Makefile.am, maint-cfg.mk: Brace expansion is not
-       POSIX portable.
-
-2008-02-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-02-04  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: When --debug is given, also print libgcrypt RNG
-       information.
-
-2008-02-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/gnutls.texi: Add 'On Record Padding' section.
-
-2008-02-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Re-order indices so they are last in the PDF.
-
-2008-02-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Merge in 2.2.1 release notes.
-
-2008-02-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: Make it compile.
-
-2008-02-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h: Drop SIZEOF_UNSIGNED_LONG_INT, it's done in
-       configure.in now.
-
-2008-02-03  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/md4.m4, lgl/m4/md5.m4, lgl/m4/sha1.m4,
-       lgl/m4/unistd_h.m4, lgl/md2.c, lgl/md2.h, lgl/md4.c, lgl/md4.h,
-       lgl/md5.c, lgl/md5.h, lgl/sha1.c, lgl/sha1.h, lgl/unistd.in.h: 
-       Update gnulib files.
-
-2008-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/structure.c: Update libtasn1 to 1.3.
-
-2008-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/unistd_h.m4, lgl/unistd.in.h,
-       lgl/vasnprintf.c: Update gnulib files.
-
-2008-01-27  Nikos <nmav@crystal.(none)>
-
-       * src/certtool.c: some updates
-
-2008-01-27  Nikos <nmav@crystal.(none)>
-
-       * includes/gnutls/openpgp.h: new definitions
-
-2008-01-26  Nikos <nmav@crystal.(none)>
-
-       * : commit 2d73da902a2a983cf146d32e7528f8d5d3efc287 Author: Nikos
-       <nmav@crystal.(none)> Date:   Sat Jan 26 23:08:18 2008 +0200
-
-2008-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc5077.txt: Add.
-
-2008-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-08.txt: Add.
-
-2008-01-25  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_openpgp.c, lib/openpgp/extras.c: updates in openpgp
-       keyring handling.
-
-2008-01-25  Nikos <nmav@crystal.(none)>
-
-       * lib/opencdk/Makefile.am, lib/opencdk/keydb.c,
-       lib/opencdk/keydb.h, lib/opencdk/opencdk.h: Modified the search to
-       include a state.
-
-2008-01-25  Nikos <nmav@crystal.(none)>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: print keyrings
-
-2008-01-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Simplify output.
-
-2008-01-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Fix paths.
-
-2008-01-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version so we are higher than gnutls 2.2.x but
-       remain compatible.  This will avoid shared library name conflicts
-       with 2.2.x, and also that any 2.3.x libraries will always be
-       prefered over 2.2.x.
-
-2008-01-19  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, gl/error.h, lgl/Makefile.am,
-       lgl/gc-libgcrypt.c, lgl/m4/gnulib-comp.m4, lgl/m4/string_h.m4,
-       lgl/memmem.c, lgl/stdio.in.h, lgl/str-two-way.h, lgl/string.in.h,
-       lgl/vasnprintf.h: Update gnulib files.
-
-2008-01-17  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Update Ludovic's e-mail.
-
-2008-01-17  Simon Josefsson <simon@josefsson.org>
-
-       * guile/tests/openpgp-auth.scm: Also test dhe-rsa.
-
-2008-01-15  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/Makefile.am, libextra/openpgp/compat.c,
-       libextra/openpgp/extras.c, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/openpgp.h, libextra/openpgp/pgp.c,
-       libextra/openpgp/pgpverify.c, libextra/openpgp/privkey.c: Remove
-       openpgp files moved to lib/openpgp/.
-
-2008-01-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix pgp-api.texi move.
-
-2008-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc2440.txt: Fix chmod.
-
-2008-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4366-bis-01.txt: Add.
-
-2008-01-14  Nikos <nmav@crystal.(none)>
-
-       * : commit c6093b9df165dfbfbce8922e2192eedba5303f08 Author: Nikos
-       <nmav@crystal.(none)> Date:   Mon Jan 14 21:08:18 2008 +0200
-
-2008-01-14  Nikos <nmav@crystal.(none)>
-
-       * NEWS: documented more changes.
-
-2008-01-14  Nikos <nmav@crystal.(none)>
-
-       * tests/openpgp/keyring.c: changes for the new api
-
-2008-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/alloca.m4, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/memmem.m4, lgl/string.in.h: Use
-       gnulib's memmem-simple instead.
-
-2008-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove libextra/minilozo/Makefile.
-
-2008-01-14  Nikos <nmav@crystal.(none)>
-
-       * includes/gnutls/openpgp.h, lib/openpgp/privkey.c, src/certtool.c: 
-       openpgp_privkey_export() has parameters to export encrypted secret
-       keys. Added for future compatibility.
-
-2008-01-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rsa-aes-gcm-01.txt: Add.
-
-2008-01-13  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_openpgp.c: use the first valid subkey if an
-       authentication subkey is not found.
-
-2008-01-13  Nikos <nmav@crystal.(none)>
-
-       * NEWS, includes/gnutls/compat.h, includes/gnutls/openpgp.h,
-       lib/openpgp/openpgp.h, lib/openpgp/output.c, lib/openpgp/pgp.c,
-       lib/openpgp/pgpverify.c, lib/openpgp/privkey.c, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa: Additions to
-       make certtool print information on openpgp keys.
-
-2008-01-13  Nikos <nmav@crystal.(none)>
-
-       * NEWS: documented changes.
-
-2008-01-13  Nikos <nmav@crystal.(none)>
-
-       * README, configure.in, includes/gnutls/gnutls.h.in,
-       includes/gnutls/openpgp.h, lib/Makefile.am, lib/auth_cert.c,
-       lib/auth_cert.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_errors.c, lib/gnutls_extra_hooks.c,
-       lib/gnutls_extra_hooks.h, lib/gnutls_openpgp.c, lib/gnutls_state.c,
-       lib/opencdk/Makefile.am, lib/opencdk/README, lib/opencdk/armor.c,
-       lib/opencdk/context.h, lib/opencdk/dummy.c, lib/opencdk/filters.h,
-       lib/opencdk/hash.c, lib/opencdk/kbnode.c, lib/opencdk/keydb.c,
-       lib/opencdk/literal.c, lib/opencdk/main.c, lib/opencdk/main.h,
-       lib/opencdk/misc.c, lib/opencdk/new-packet.c,
-       lib/opencdk/opencdk.h, lib/opencdk/packet.h, lib/opencdk/pubkey.c,
-       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
-       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
-       lib/opencdk/stream.h, lib/opencdk/types.h, lib/opencdk/verify.c,
-       lib/opencdk/write-packet.c, lib/openpgp/Makefile.am,
-       lib/openpgp/compat.c, lib/openpgp/extras.c,
-       lib/openpgp/gnutls_openpgp.h, lib/openpgp/openpgp.h,
-       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/pgpverify.c,
-       lib/openpgp/privkey.c, libextra/Makefile.am,
-       libextra/gnutls_extra.c, libextra/gnutls_openpgp.c,
-       libextra/opencdk/Makefile.am, libextra/opencdk/README,
-       libextra/opencdk/armor.c, libextra/opencdk/cipher.c,
-       libextra/opencdk/compress.c, libextra/opencdk/context.h,
-       libextra/opencdk/dummy.c, libextra/opencdk/filters.h,
-       libextra/opencdk/kbnode.c, libextra/opencdk/keydb.c,
-       libextra/opencdk/literal.c, libextra/opencdk/main.c,
-       libextra/opencdk/main.h, libextra/opencdk/misc.c,
-       libextra/opencdk/new-packet.c, libextra/opencdk/opencdk.h,
-       libextra/opencdk/packet.h, libextra/opencdk/pubkey.c,
-       libextra/opencdk/read-packet.c, libextra/opencdk/seskey.c,
-       libextra/opencdk/sig-check.c, libextra/opencdk/stream.c,
-       libextra/opencdk/stream.h, libextra/opencdk/types.h,
-       libextra/opencdk/verify.c, libextra/opencdk/write-packet.c,
-       src/Makefile.am, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa, src/cli.c, src/serv.c,
-       src/tls_test.c: merged the openpgp branch to head\!
-
-2008-01-12  Nikos <nmav@crystal.(none)>
-
-       * libextra/Makefile.am: Added fix by Alon to avoid linking against
-       /usr/lib/libgnutls.so.
-
-2008-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, maint-cfg.mk: Re-add config.rpath hack, since gnulib
-       updated config.rpath.
-
-2008-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath, lgl/Makefile.am, lgl/dummy.c,
-       lgl/m4/eealloc.m4, lgl/m4/gnulib-comp.m4, lgl/m4/malloca.m4,
-       lgl/malloca.c, lgl/malloca.h, lgl/malloca.valgrind, lgl/memmem.c,
-       lgl/printf-parse.c: Update gnulib files.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.3.0.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS: Sync with TP.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS: Sync with TP.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Further LZO fixes.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Cleanup after LZO removal.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, doc/gnutls.texi, libextra/Makefile.am,
-       libextra/minilzo/Makefile.am, libextra/minilzo/README.LZO,
-       libextra/minilzo/lzoconf.h, libextra/minilzo/lzodefs.h,
-       libextra/minilzo/minilzo.c, libextra/minilzo/minilzo.h,
-       libextra/minilzo/testmini.c: Remove LZO compression support.
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Call git-push (git-push --tags doesn't push
-       changes..).
-
-2008-01-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, gl/progname.c, lgl/m4/memmem.m4, lgl/memmem.c: Update gnulib
-       files.
-
-2008-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_server_name.c: Handle more than one server name field
-       correctly.  Tiny patch from mark.phillips@virgin.net.
-
-2008-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Drop -D_REENTRANT -D_THREAD_SAFE, not needed as far
-       as I can tell.
-
-2008-01-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2008-01-04  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/ms.po: Sync with TP.
-
-2008-01-04  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS: Sync with TP.
-
-2008-01-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Bump copyright years.
-
-2008-01-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Remove dupe entry.
-
-2008-01-02  Simon Josefsson <simon@josefsson.org>
-
-       * gl/fseeko.c, gl/m4/gnulib-comp.m4, gl/progname.c,
-       gl/version-etc.c, lgl/Makefile.am, lgl/float.in.h,
-       lgl/m4/float_h.m4, lgl/m4/gnulib-comp.m4, lgl/m4/memmem.m4,
-       lgl/m4/stdlib_h.m4, lgl/m4/string_h.m4, lgl/m4/unistd_h.m4,
-       lgl/memmem.c, lgl/stdint.in.h, lgl/stdlib.in.h, lgl/string.in.h,
-       lgl/unistd.in.h: Update gnulib files.
-
-2008-01-02  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/dummy.c, lgl/m4/eealloc.m4, lgl/m4/malloca.m4,
-       lgl/m4/memchr.m4, lgl/m4/memcmp.m4, lgl/malloca.c, lgl/malloca.h,
-       lgl/malloca.valgrind, lgl/memchr.c, lgl/memcmp.c: Update gnulib
-       files.
-
-2008-01-02  Simon Josefsson <simon@josefsson.org>
-
-       * gl/.gitignore, lgl/.gitignore: Remove .gitignore's from gnulib.
-
-2007-12-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-new-mac-02.txt,
-       doc/protocol/draft-ietf-tls-extractor-00.txt: Add.
-
-2007-12-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Doc fixes.
-
-2007-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-hajjeh-tls-sign-04.txt: Add.
-
-2007-12-15  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_state.c: Fix for certificate selection in servers with
-       certificate callbacks.
-
-2007-12-16  Nikos <nmav@crystal.(none)>
-
-       * : 1   2       lib/gnutls_state.c
-
-2007-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/libtasn1.h: Bump versions.
-
-2007-12-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Merge in old NEWS entries.
-
-2007-12-14  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/nl.po, po/pl.po, po/sv.po: Sync with TP.
-
-2007-12-13  Simon Josefsson <simon@josefsson.org>
-
-       * .cvscopying: Add 2007.
-
-2007-12-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-12-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: If the server has a callback, the search for a
-       valid certificate will fail.  Patch from Nikos.
-
-2007-12-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-hajjeh-tls-identity-protection-02.txt: Add.
-
-2007-12-12  Ludovic Courtès <ludo@gnu.org>
-
-       * : commit a37e52e18a625138cb0e3441023e2ac9fbb62552 Author: Ludovic
-       Courtès <ludo@gnu.org> Date:   Tue Dec 11 18:23:15 2007 +0100
-
-2007-12-11  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/openpgp-keys.scm: Update Guile OpenPGP test cases to use
-       the new names.  * guile/tests/*.scm: Substitute `certificate' to `public-key' in
-         tests using the OpenPGP API.
-
-2007-12-11  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/guile.texi: Update OpenPGP names in Guile examples.  * doc/guile.texi (Guile Examples): Substitute `certificate' to   `public-key' in OpenPGP examples.
-
-2007-12-11  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/gnutls.scm, guile/modules/gnutls/extra.scm,
-       guile/pre-inst-guile.in, guile/src/Makefile.am: Bump Guile glue
-       libraries version number.  * guile/modules/gnutls.scm: Load `libguile-gnutls-v-1'.  * guile/modules/gnutls/extra.scm: Load `libguile-gnutls-extra-v-1'.  * guile/pre-inst-guile.in: Load `v-1' libraries.  * guile/src/Makefile.am (lib_LTLIBRARIES): Bump libraries from `v-0'
-         to `v-1'.  Update all variables.
-
-2007-12-11  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/smobs.scm,
-       guile/modules/gnutls/extra.scm, guile/src/extra.c: Substitute
-       `certificate' to `public-key' in `(gnutls extra)'.  * guile/modules/gnutls/build/enums.scm (%openpgp-key-format-enum):   Rename to...    (%openpgp-certificate-format-enum): This.    (%gnutls-extra-enums): Update.  * guile/modules/gnutls/build/smobs.scm (%openpgp-public-key-smob):   Rename to...    (%openpgp-certificate-smob): This.    (%gnutls-extra-smobs): Update.  * guile/modules/gnutls/extra.scm: Substitute all `certificate' in
-         all `public-key' names.  Add backward-compatible bindings.  * guile/src/extra.c: Substitute `certificate' to `public-key'.
-
-2007-12-11  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, maint-cfg.mk: Remove config.rpath hack.
-
-2007-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Make --verify-chain support larger inputs than
-       64kb.
-
-2007-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Re-order gettext invocation to avoid autoconf
-       warnings.
-
-2007-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.8.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: GPLv3 typo.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Doc fix.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, maint-cfg.mk: Gettext 0.17 to solve -L
-       problem.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: GPLv3.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/version-etc.c: Revert local gnulib override regarding GPLv3.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/credentials/Makefile.am,
-       doc/extract-guile-c-doc.scm, doc/guile.texi, gl/Makefile.am,
-       guile/modules/gnutls/extra.scm,
-       guile/modules/system/documentation/c-snarf.scm,
-       guile/modules/system/documentation/output.scm,
-       guile/pre-inst-guile.in, guile/src/extra.c,
-       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/openpgp-keys.scm, includes/Makefile.am: More GPLv3
-       fixes.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/lib/version-etc.c.diff: More GPLv3 fixes.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gpl-3.0.texi: Use GPLv3 in manual.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi, doc/gpl-2.0.texi, gl/gnulib.mk,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Use GPLv3 in manual.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, doc/examples/Makefile.am, doc/manpages/Makefile.am,
-       includes/gnutls/extra.h, includes/gnutls/openssl.h,
-       libextra/Makefile.am, libextra/gnutls_extra.h,
-       libextra/libgnutls-extra.vers, libextra/openpgp/Makefile.am,
-       libextra/openssl_compat.h, maint-cfg.mk: GPLv3 fixes.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am, src/common.c, src/list.h, src/serv.c: Use GPLv3
-       in src/.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/anonself.c, tests/certder.c,
-       tests/certificate_set_x509_crl.c, tests/dhepskself.c, tests/dn.c,
-       tests/gc.c, tests/hostname-check/Makefile.am,
-       tests/hostname-check/hostname-check.c, tests/key-id/Makefile.am,
-       tests/key-id/key-id, tests/nist-pkits/pkits,
-       tests/nist-pkits/pkits_crl, tests/nist-pkits/pkits_crt,
-       tests/nist-pkits/pkits_pkcs12, tests/nist-pkits/pkits_smime,
-       tests/openpgp/Makefile.am, tests/openpgp/keyring.c,
-       tests/openssl.c, tests/oprfi.c, tests/parse_ca.c,
-       tests/pathlen/Makefile.am, tests/pathlen/pathlen,
-       tests/pkcs1-padding/Makefile.am, tests/pkcs1-padding/pkcs1-pad,
-       tests/pkcs12-decode/Makefile.am, tests/pkcs12-decode/pkcs12,
-       tests/pkcs8-decode/Makefile.am, tests/pkcs8-decode/pkcs8,
-       tests/pskself.c, tests/resume.c,
-       tests/rsa-md5-collision/Makefile.am,
-       tests/rsa-md5-collision/rsa-md5-collision, tests/set_pkcs12_cred.c,
-       tests/sha2/Makefile.am, tests/sha2/sha2, tests/simple.c,
-       tests/tlsia.c, tests/userid/Makefile.am, tests/userid/userid,
-       tests/utils.c, tests/utils.h, tests/x509paths/chain,
-       tests/x509self.c, tests/x509signself.c: Use GPLv3 for self-tests.
-
-2007-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath, build-aux/gendocs.sh, doc/fdl.texi,
-       doc/gendocs_template, gl/fseeko.c, gl/gai_strerror.c,
-       gl/getaddrinfo.c, gl/getaddrinfo.h, gl/getdelim.c, gl/getline.c,
-       gl/getpass.c, gl/getpass.h, gl/inet_ntop.c, gl/inet_ntop.h,
-       gl/lseek.c, gl/m4/getdelim.m4, gl/m4/getline.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/lib-link.m4, gl/m4/strerror.m4,
-       gl/netinet_in.in.h, gl/strdup.c, gl/strerror.c, gl/version-etc.c,
-       lgl/Makefile.am, lgl/m4/gettext.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/iconv.m4, lgl/m4/intdiv0.m4, lgl/m4/intl.m4,
-       lgl/m4/intlmacosx.m4, lgl/m4/intmax_t.m4, lgl/m4/lib-link.m4,
-       lgl/m4/lock.m4, lgl/m4/longlong.m4, lgl/m4/po.m4,
-       lgl/m4/printf-posix.m4, lgl/m4/stdio_h.m4, lgl/m4/stdlib_h.m4,
-       lgl/m4/string_h.m4, lgl/m4/uintmax_t.m4, lgl/m4/ulonglong.m4,
-       lgl/m4/unistd_h.m4, lgl/m4/vasnprintf.m4, lgl/m4/wint_t.m4,
-       lgl/printf-parse.c, lgl/realloc.c, lgl/stdlib.in.h,
-       lgl/string.in.h, lgl/unistd.in.h, lgl/vasnprintf.c: Update gnulib.
-
-2007-12-09  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_v2_compat.c: user_hello_func is call always. Even when
-       resuming a session.
-
-2007-12-09  Nikos <nmav@crystal.(none)>
-
-       * src/common.c: print session ID
-
-2007-12-07  System User <nmav@crystal.(none)>
-
-       * NEWS: license update
-
-2007-12-07  System User <nmav@crystal.(none)>
-
-       * COPYING, libextra/gnutls_extra.c, libextra/gnutls_ia.c,
-       libextra/gnutls_openpgp.c, libextra/gnutls_openssl.c,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/pgp.c, libextra/openpgp/pgpverify.c,
-       libextra/openpgp/privkey.c, libextra/openssl_compat.c,
-       src/certtool-cfg.c, src/certtool.c, src/cli.c, src/common.c,
-       src/crypt.c, src/prime.c, src/psk.c, src/serv.c, src/tests.c,
-       src/tls_test.c: GPL parts under GPLv3
-
-2007-12-06  System User <nmav@crystal.(none)>
-
-       * lib/gnutls_record.c: It seems we were ahead of our time.
-
-2007-12-06  System User <nmav@crystal.(none)>
-
-       * NEWS, lib/gnutls_record.c: Revert "We now ignore received packets
-       with unknown content types" This reverts commit 4a19fd59da474b3de977a925fd91578db7e3d4a1.
-
-2007-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Doc fix.es
-
-2007-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Typo fix.  Tiny patch from Daniel Kahn Gillmor
-       <dkg-debian.org@fifthhorseman.net>.
-
-2007-12-04  Nikos <nmav@crystal.(none)>
-
-       * : commit bd3b0f49c966277e91f57c64cfcc720cbebb4a73 Author: Nikos
-       <nmav@crystal.(none)> Date:   Tue Dec 4 22:05:25 2007 +0200
-
-2007-12-04  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Overwrite autopoint files with gnulib files.
-
-2007-12-03  Nikos <nmav@crystal.(none)>
-
-       * : commit dac01d7279eb28e7c5909d53bf346206f10319b5 Author: Nikos
-       <nmav@crystal.(none)> Date:   Mon Dec 3 20:05:32 2007 +0200
-
-2007-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2007-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2007-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump to indicate added ABI.
-
-2007-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Copy, don't remove...  to fix Makefile.in hard-coded
-       links to m4 filenames.
-
-2007-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Remove gettext havelib files.
-
-2007-12-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/privkey_pkcs8.c: Indent.
-
-2007-12-03  Nikos <nmav@crystal.(none)>
-
-       * : 3   0       NEWS
-
-2007-12-02  Nikos <nmav@crystal.(none)>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/x509.c: added
-       gnutls_x509_crt_get_subject_alt_name2 to overcome some limitations
-       of the original function.
-
-2007-12-02  Nikos <nmav@crystal.(none)>
-
-       * : 1   1       lib/x509/x509.c
-
-2007-12-01  Simon Josefsson <simon@josefsson.org>
-
-       * : commit b6e4b1ff3f7ef8a8d26f2e89c0bc50d2fc9d23f4 Author: Nikos
-       <nmav@crystal.(none)> Date:   Sat Dec 1 08:25:34 2007 +0200
-
-2007-11-30  Nikos <nmav@crystal.(none)>
-
-       * configure.in, lib/x509/dsa.c, src/certtool.c: Depend on libgcrypt
-       1.2.4 again (lose DSA2 functionality).
-
-2007-11-30  Nikos <nmav@crystal.(none)>
-
-       * lib/gnutls_priority.c: Added SECURE256 and SECURE128 level.
-
-2007-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.7.
-
-2007-11-28  Nikos <nmav@crystal.(none)>
-
-       * : 2   2       lib/gnutls_priority.c
-
-2007-11-28  Nikos <nmav@crystal.(none)>
-
-       * lib/auth_srp_passwd.c: more assertions.
-
-2007-11-28  Nikos <nmav@crystal.(none)>
-
-       * lib/auth_srp.c: more assertions
-
-2007-11-28  Nikos <nmav@crystal.(none)>
-
-       * lib/auth_srp.c: added assertion.
-
-2007-11-28  Nikos <nmav@crystal.(none)>
-
-       * src/serv.c: fix in priority_set
-
-2007-11-28  Nikos <nmav@crystal.(none)>
-
-       * includes/gnutls/gnutlsxx.h: updated the gnutlsxx interface
-
-2007-11-28  Nikos <nmav@crystal.(none)>
-
-       * includes/gnutls/gnutls.h.in, lib/gnutls_priority.c: more updates
-       for priority functions.
-
-2007-11-28  Nikos <nmav@crystal.(none)>
-
-       * doc/examples/ex-cert-select.c, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-client-tlsia.c,
-       doc/examples/ex-client1.c, doc/examples/ex-client2.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, lib/gnutls_priority.c, lib/gnutlsxx.cpp,
-       src/cli.c, src/serv.c: Return the string position in case of an
-       error in the priority functions.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Typo.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Give example for %COMPAT.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Rename HIGH to SECURE.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Re-add aes-256 so we don't fail to
-       negotiate it in case end only supports it.  Doc fixes.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Doc fixes.  Fix warnings.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Re-indent.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * po/ms.po: Sync with TP.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h, includes/gnutls/gnutls.h.in,
-       lib/gnutls_priority.c: Re-add gnutls_set_default_priority and
-       gnutls_set_default_export_priority.
-
-2007-11-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-07.txt: Add.
-
-2007-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc5054.txt: Add.
-
-2007-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-rescorla-tls-extractor-01.txt: Add.
-
-2007-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 1   1       lib/gnutls_priority.c
-
-2007-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: corrected bug in the new read_mpis
-
-2007-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/pkcs12.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c, lib/x509/x509.c: 
-       export_int was simplified are no artificial limits are imposed any
-       more
-
-2007-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: variables for the time functions are not more
-       rational.
-
-2007-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/mpi.c: in RSA certificate parameters
-       no artificial limits are imposed any more
-
-2007-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey_pkcs8.c: corrected documentation
-
-2007-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/mpi.c, lib/x509/mpi.h, lib/x509/privkey.c,
-       lib/x509/privkey.h, lib/x509/privkey_pkcs8.c: added support for PKCS
-       #8 decoding of DSA keys.
-
-2007-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/mpi.c, lib/x509/privkey_pkcs8.c: added ability to write
-       DSA private keys.
-
-2007-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select.c, doc/examples/ex-serv1.c: examples
-       now compile
-
-2007-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 3   3       doc/examples/ex-cert-select.c
-
-2007-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client-tlsia.c, doc/examples/ex-client1.c,
-       doc/examples/ex-client2.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-export.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-srp.c, doc/examples/ex-serv1.c,
-       doc/gnutls.texi, includes/gnutls/compat.h,
-       includes/gnutls/gnutls.h.in, includes/gnutls/gnutlsxx.h,
-       lib/gnutls_int.h, lib/gnutls_priority.c, lib/gnutlsxx.cpp,
-       src/cli.c, src/common.c, src/serv.c: new era of priority functions.
-
-2007-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_cert_type.c, lib/gnutls_algorithms.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c, lib/gnutls_record.c, lib/gnutls_state.c: 
-       cleanup the priority functionality
-
-2007-11-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: links to rfc 5054 (srp)
-
-2007-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/compat.h: updated the priority compatibility
-       functions
-
-2007-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/gnutls.texi, includes/gnutls/gnutls.h.in,
-       lib/gnutls_priority.c, lib/gnutls_state.h: added
-       gnutls_check_priority() to check syntax of priority strings.
-
-2007-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_v2_compat.c: Renegotiate the protocol version after the
-       user_hello_func has been called
-
-2007-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select.c, doc/examples/ex-client-srp.c,
-       includes/gnutls/gnutlsxx.h, lib/gnutls_priority.c, lib/gnutlsxx.cpp: 
-       fixes for the new gnutls_set_priority().
-
-2007-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: The gnutls_*_convert_priority() functions were
-       deprecated by the gnutls_set_priority()
-
-2007-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_priority.c: The gnutls_*_convert_priority()
-       functions were deprecated by the gnutls_set_priority()
-
-2007-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-client-tlsia.c,
-       doc/examples/ex-client1.c, doc/examples/ex-client2.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/gnutls.texi, includes/gnutls/compat.h,
-       includes/gnutls/gnutls.h.in, includes/gnutls/gnutlsxx.h,
-       lib/gnutls_algorithms.h, lib/gnutls_priority.c, lib/gnutlsxx.cpp,
-       src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa: added
-       gnutls_set_priority() to replace gnutls_set_default_priority2().
-
-2007-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/keydb.c, libextra/opencdk/seskey.c: Re-apply
-       opencdk fixes that were lost in 0.6.6 upgrade.
-
-2007-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, libextra/opencdk/cipher.c, libextra/opencdk/keydb.c,
-       libextra/opencdk/opencdk.h, libextra/opencdk/seskey.c,
-       libextra/opencdk/stream.c: Use OpenCDK 0.6.6.
-
-2007-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.6.
-
-2007-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h: Revert rename of
-       GNUTLS_E_UNKNOWN_HASH_ALGORITHM.  Instead we add a new
-       GNUTLS_E_UNKNOWN_ALGORITHM.
-
-2007-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Revert rename of
-       GNUTLS_E_UNKNOWN_HASH_ALGORITHM.  Instead we add a new
-       GNUTLS_E_UNKNOWN_ALGORITHM.
-
-2007-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Revert rename of
-       GNUTLS_E_UNKNOWN_HASH_ALGORITHM.  Instead we add a new
-       GNUTLS_E_UNKNOWN_ALGORITHM.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/seskey.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/keydb.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_anon_cred.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Doc fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Doc fixes.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h, includes/gnutls/extra.h: Move compat
-       stuff to compat.h.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/extra.c: Use new APIs.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * guile/modules/gnutls/build/enums.scm: Typo.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/smobs.scm: Update API.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * guile/modules/gnutls/build/enums.scm: Add unknown-algorithm (new
-       name of unknown-hash-algorithm).
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * guile/modules/gnutls/build/enums.scm: Remove openpgp trustdb
-       error.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h, includes/gnutls/gnutls.h.in: Move compat
-       mappings to compat.h.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/common.c: Use new API.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-serv-export.c, lib/auth_cert.h,
-       libextra/gnutls_openpgp.c: Use new API.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openpgp.c: Don't use trustdb error code.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutlsxx.h, lib/gnutlsxx.cpp: Use new API in C++
-       library.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Use new API.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h, includes/gnutls/gnutls.h.in,
-       includes/gnutls/openpgp.h: Move compat mappings to compat.h.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h: Fix.
-
-2007-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h: Remove trustdb error code, since we
-       removed all functions.
-
-2007-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_compress_int.c: some updates in the compression code
-
-2007-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_record.c: Corrected bug in
-       decompression of expanded compression data.
-
-2007-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c: When decompressed data are more than the
-       record max size warn using GNUTLS_E_DECOMPRESSION_FAILED.
-
-2007-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 1   1       src/certtool.gaa
-
-2007-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/gnutls.h.in, lib/gnutls_cert.c, src/tls_test.c: 
-       Applied documentation and prototype fixes reported by Evan Martin
-       <martine@danga.com>.
-
-2007-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: updated the links to openpgp draft
-
-2007-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Add warnings about messages used by Emacs tls.el.
-
-2007-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc5081.txt: Add.
-
-2007-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.5.
-
-2007-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump ABI to 25.
-
-2007-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-06.txt: Add.
-
-2007-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c, src/crypt-gaa.c: certtool now prints defaults.
-
-2007-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dh_primes.c: The pkcs3 parameters are now corrected
-       exported (without sign).
-
-2007-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crypt.gaa: parameters -> group parameters
-
-2007-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS, Makefile.am, NEWS, README, THANKS,
-       build-aux/config.rpath, configure.in, doc/Makefile.am,
-       doc/gnutls.texi, includes/gnutls/extra.h,
-       includes/gnutls/openpgp.h, includes/gnutls/pkcs12.h,
-       includes/gnutls/x509.h, lib/Makefile.am, lib/auth_anon.c,
-       lib/auth_anon.h, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_psk.h,
-       lib/auth_psk_passwd.c, lib/auth_psk_passwd.h, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_srp_passwd.h, lib/auth_srp_rsa.c,
-       lib/auth_srp_sb64.c, lib/debug.c, lib/debug.h, lib/defines.h,
-       lib/ext_cert_type.c, lib/ext_cert_type.h, lib/ext_max_record.c,
-       lib/ext_max_record.h, lib/ext_server_name.c, lib/ext_server_name.h,
-       lib/ext_srp.c, lib/ext_srp.h, lib/gnutls_alert.c,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth.h,
-       lib/gnutls_auth_int.h, lib/gnutls_buffer.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_compress_int.c,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_global.c, lib/gnutls_global.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_helper.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_mem.c,
-       lib/gnutls_mem.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/gnutls_num.c, lib/gnutls_num.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_priority.c, lib/gnutls_psk.c,
-       lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session.h, lib/gnutls_session_pack.c,
-       lib/gnutls_session_pack.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/io_debug.h,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/crq.h,
-       lib/x509/dn.c, lib/x509/dn.h, lib/x509/dsa.c, lib/x509/dsa.h,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/mpi.c,
-       lib/x509/mpi.h, lib/x509/pkcs12.c, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs7.c, lib/x509/pkcs7.h,
-       lib/x509/privkey.c, lib/x509/privkey.h, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818.h, lib/x509/sign.c, lib/x509/sign.h,
-       lib/x509/verify.c, lib/x509/verify.h, lib/x509/x509.c,
-       lib/x509/x509.h, lib/x509/x509_write.c, lib/x509_b64.c,
-       lib/x509_b64.h, libextra/Makefile.am, libextra/gnutls_extra.c,
-       libextra/gnutls_extra.h, libextra/openpgp/Makefile.am,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/pgp.c, libextra/openpgp/pgpverify.c,
-       libextra/openpgp/privkey.c, libextra/openssl_compat.c,
-       libextra/openssl_compat.h, src/certtool.c, src/cli.c, src/common.c,
-       src/crypt.c, src/prime.c, src/serv.c, src/tests.c, src/tls_test.c: 
-       Changed my name to my "official" name.
-
-2007-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/compat.h, includes/gnutls/gnutls.h.in: Moved some
-       old defines to compat.c.
-
-2007-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/libgnutlsxx.vers, libextra/libgnutls-extra.vers: Updated the
-       ld version.
-
-2007-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Fix gnutls_set_default_priority and
-       gnutls_set_default_export priority.  The old functions returned an
-       error code, need to fake it.
-
-2007-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Reorder release target, to do disconnected ops first,
-       and to avoid losing tags.
-
-2007-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4,
-       lgl/stdint.in.h: Update gnulib files.
-
-2007-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: Used the original libtool library version.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.4.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h: Add for backwards compatibility.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix typo.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath, gl/m4/gnulib-common.m4, gl/strerror.c,
-       lgl/m4/gnulib-common.m4, lgl/m4/ulonglong.m4, lgl/stdbool.in.h,
-       lgl/stdint.in.h: Update gnulib files.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/cipher.c, libextra/opencdk/keydb.c,
-       libextra/opencdk/new-packet.c, libextra/opencdk/opencdk.h,
-       libextra/opencdk/seskey.c: Sync with OpenCDK 0.6.5.
-
-2007-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: quick-random option was removed since it is now
-       the default.
-
-2007-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 1   2       lib/gnutls_algorithms.c
-
-2007-10-26  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/README.CODING_STYLE: Add doc about maintenance of the Guile
-       bindings.
-
-2007-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * : commit d3ebcb4c39cd2e7650694e08faad5a7ca57c662e Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Thu Oct 25 21:51:38 2007
-       +0200
-
-2007-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: added some text for the debugging functions.
-
-2007-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo.
-
-2007-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Reorder and simplify.
-
-2007-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Doc fix.
-
-2007-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 867ffe404fbc7e16a543d2314bca85d613a902ef Author: Nikos
-       Mavrogiannopoulos <nmav@gnutls.org> Date:   Wed Oct 24 23:48:27 2007
-       +0300
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 2   2       doc/examples/ex-serv-pgp.c
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client-tlsia.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, includes/gnutls/gnutls.h.in,
-       lib/gnutls_priority.c: Introduced GNUTLS_PRIORITIES_SECURITY_NORMAL
-       and GNUTLS_PRIORITIES_SECURITY_HIGH
-
-2007-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 74200139866f14efc4cbabeec8c6698982327296 Author: Nikos
-       Mavrogiannopoulos <nmav@gnutls.org> Date:   Wed Oct 24 18:33:00 2007
-       +0300
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_v2_compat.c: The user handshake callback function is
-       now called on SSLv2 hello messages.
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/examples/ex-client-resume.c,
-       doc/examples/ex-client-srp.c, doc/examples/ex-client-tlsia.c,
-       doc/examples/ex-client1.c, doc/examples/ex-client2.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, includes/gnutls/gnutls.h.in,
-       lib/gnutls_priority.c, src/cli.c, src/serv.c: Added
-       gnutls_set_default_priority2() and deprecated
-       gnutls_set_default_priority().
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 4   0       doc/manpages/certtool.1
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: added news entry for --disable-quick-random
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.gaa,
-       src/cli.c, src/serv.c: /dev/urandom is used now by default for key
-       generation. The option --disable-quick-random was introduced.
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-serv-export.c, doc/examples/ex-serv1.c: updated
-       some examples.
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: The library version is now 14 instead of 24. (14 is
-       greater than our current 13).
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/examples/ex-serv1.c, includes/gnutls/gnutls.h.in,
-       lib/gnutls_state.c, src/serv.c, src/tests.c, src/tests.h: Introduced
-       gnutls_session_enable_compatibility_mode() to allow enabling all
-       supported compatibility options (like disabling padding). Some other
-       bug fixes in tls-test.c.
-
-2007-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-client-srp.c, doc/gnutls.texi: Added some
-       documentation for the new convert functions.
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: renamed zlib to deflate
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/libgnutls.vers: Updata gnutls.vers
-       since we changed our interfaces and some other fixes.
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 2   2       lib/gnutls_algorithms.c
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-alert.c, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client-tlsia.c, doc/examples/ex-client1.c,
-       doc/examples/ex-client2.c, doc/examples/ex-crq.c,
-       doc/examples/ex-pkcs12.c, doc/examples/ex-rfc2818.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
-       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c,
-       doc/examples/tcp.c: Added copyright notices to examples
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/gnutls.h.in: corrected the prototypes
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: replaced UNKNOWN_HASH_ALGORITHM WITH
-       UNKNOWN_ALGORITHM
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/gnutls.h.in: corrected typo.
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 1   1       lib/gnutls_record.c
-
-2007-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_priority.c: Updated
-       the priority functions to be more compatible to our interface and
-       avoid parsing on every session generation. The current approach
-       stores parsed data to our integer format.CG:
-
-       -----------------------------------------------------------------------
-
-2007-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_int.h,
-       lib/gnutls_record.c: Added gnutls_record_disable_padding() to allow
-       servers talk to buggy clients that complain if TLS 1.0 padding is
-       used.
-
-2007-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_errors.c,
-       lib/gnutls_priority.c, lib/gnutls_record.c: Added new priority
-       functions that accept text instead of integers.
-
-2007-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * build-aux/config.rpath, lib/gnutls_buffers.c, lib/gnutls_record.c: 
-       Removed some ancient non-used functions.
-
-2007-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : commit 628c62e935effc1c276fa6e4ae653f8488e017be Author: Nikos
-       Mavrogiannopoulos <nmav@gnutls.org> Date:   Mon Oct 22 14:03:08 2007
-       +0300
-
-2007-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * po/de.po, po/ms.po, po/pl.po, po/sv.po: Sync with TP.
-
-2007-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/gc-camellia.m4: Add.
-
-2007-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/gc-libgcrypt.c, lgl/gc.h,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4: Update gnulib files.
-
-2007-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath, build-aux/maint.mk, gl/error.c,
-       gl/error.h, gl/fseeko.c, gl/gnulib.mk, gl/inet_pton.c,
-       gl/inet_pton.h, gl/intprops.h, gl/m4/extensions.m4,
-       gl/m4/getaddrinfo.m4, gl/m4/getdelim.m4, gl/m4/getline.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/socklen.m4, gl/m4/strerror.m4,
-       gl/netinet_in.in.h, gl/netinet_in_.h, gl/progname.c, gl/progname.h,
-       gl/readline.c, gl/readline.h, gl/strerror.c, gl/version-etc-fsf.c,
-       gl/version-etc.c, gl/version-etc.h, lgl/Makefile.am,
-       lgl/alloca.in.h, lgl/alloca_.h, lgl/dummy.c, lgl/float.in.h,
-       lgl/float_.h, lgl/gc-gnulib.c, lgl/gc-libgcrypt.c, lgl/gc.h,
-       lgl/m4/extensions.m4, lgl/m4/gnulib-comp.m4, lgl/m4/lock.m4,
-       lgl/m4/longlong.m4, lgl/m4/memmem.m4, lgl/m4/socklen.m4,
-       lgl/m4/stdint.m4, lgl/m4/stdio_h.m4, lgl/m4/string_h.m4,
-       lgl/m4/strverscmp.m4, lgl/m4/ulonglong.m4, lgl/m4/vasprintf.m4,
-       lgl/printf-parse.c, lgl/realloc.c, lgl/stdbool.in.h,
-       lgl/stdbool_.h, lgl/stdint.in.h, lgl/stdint_.h, lgl/stdio.in.h,
-       lgl/stdio_.h, lgl/stdlib.in.h, lgl/stdlib_.h, lgl/string.in.h,
-       lgl/string_.h, lgl/sys_socket.in.h, lgl/sys_socket_.h,
-       lgl/sys_stat.in.h, lgl/sys_stat_.h, lgl/time.in.h, lgl/time_.h,
-       lgl/unistd.in.h, lgl/unistd_.h, lgl/vasnprintf.c, lgl/wchar.in.h,
-       lgl/wchar_.h: Update gnulib files.
-
-2007-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 07837c92f65f09b58c0ec55e3f49382ce0d71ba5 Author: Nikos
-       Mavrogiannopoulos <nmav@gnutls.org> Date:   Fri Oct 19 22:05:28 2007
-       +0300
-
-2007-10-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/gnutls.texi, includes/gnutls/gnutls.h.in,
-       includes/gnutls/openpgp.h, lib/auth_cert.c, lib/gnutls_cert.c,
-       lib/gnutls_extra_hooks.c, lib/gnutls_extra_hooks.h,
-       lib/gnutls_state.c, libextra/gnutls_extra.c,
-       libextra/gnutls_openpgp.c, libextra/openpgp/compat.c,
-       libextra/openpgp/extras.c, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/openpgp.h, libextra/openpgp/pgp.c,
-       libextra/openpgp/pgpverify.c, libextra/openpgp/privkey.c,
-       src/common.c: Occurences of gnutls_openpgp_key were renamed to
-       gnutls_openpgp_cert, leaving an API compatibility layer.
-
-2007-10-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/gnutls.h.in, includes/gnutls/openpgp.h,
-       lib/auth_cert.c, lib/gnutls_extra_hooks.c,
-       lib/gnutls_extra_hooks.h, libextra/gnutls_extra.c,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/openpgp.h, libextra/openpgp/pgp.c,
-       libextra/openpgp/pgpverify.c: Renamed gnutls_openpgp_key_t to
-       gnutls_openpgp_cert_t
-
-2007-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Revert mistake removal.
-
-2007-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am, po/de.po, po/ms.po, po/pl.po, po/sv.po,
-       src/cli-gaa.c, src/cli-gaa.h, src/cli.gaa, src/serv-gaa.c,
-       src/serv-gaa.h, src/serv.gaa: Generated.
-
-2007-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.3.
-
-2007-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump ABI version.
-
-2007-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c, lib/gnutls_int.h,
-       lib/gnutls_supplemental.c: Remove tls-authz.
-
-2007-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Remove tls-authz.
-
-2007-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, doc/examples/Makefile.am,
-       doc/examples/ex-client-authz.c, doc/examples/ex-serv-authz.c,
-       doc/reference/Makefile.am, includes/gnutls/gnutls.h.in,
-       lib/Makefile.am, lib/ext_authz.c, lib/ext_authz.h, src/cli.c,
-       src/cli.gaa, src/serv.c, src/serv.gaa: Remove TLS-authz.
-
-2007-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2007-10-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: Reenabled the 256 bit algorithms in the
-       default priorities.
-
-2007-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/auth_cert.h, lib/gnutls_cert.c,
-       lib/gnutls_errors.c, lib/gnutls_extra_hooks.c,
-       lib/gnutls_extra_hooks.h, libextra/gnutls_extra.c,
-       libextra/gnutls_openpgp.c, libextra/opencdk/main.h,
-       libextra/opencdk/sig-check.c, libextra/openpgp/compat.c,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/pgpverify.c: **
-       Corrected bugs in the openpgp certificate verification functions
-       using a keyring.  Now it correctly verifies openpgp certificates.  ** Removed the ancient pgpkeyserver support (which was not used
-       anywhere)
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.2.
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-nir-tls-eap-02.txt: Add.
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Wrap.
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention enum's.
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h, includes/gnutls/gnutls.h.in: Move
-       deprecated SRP alerts to compat.h.
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h: Add compatibility mapping for
-       GNUTLS_E_OPENPGP_TRUSTDB_VERSION_UNSUPPORTED.
-
-2007-10-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Encode in shared library that we aren't backwards
-       compatible.
-
-2007-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa: removed
-       references to trustdb
-
-2007-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/gnutls.texi, includes/gnutls/compat.h,
-       includes/gnutls/extra.h, includes/gnutls/gnutls.h.in,
-       includes/gnutls/openpgp.h, libextra/gnutls_openpgp.c,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/openpgp.h, libextra/openpgp/pgpverify.c: Removed
-       all the trustdb related code. It wasn't used and trustdbs are not
-       specified anywhere except pgp. Now we use the standard key rings.
-
-2007-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: more text
-
-2007-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_priority.c: The 256 bit ciphers are not enabled
-       in the default priorities.
-
-2007-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_algorithms.c, lib/gnutls_pk.c,
-       lib/x509/dsa.c, lib/x509/sign.c, src/certtool-gaa.c,
-       src/certtool.c, src/certtool.gaa: Added support for DSA2 (key sizes
-       for more than 1024 bits on DSA) via libgcrypt 1.3.0.
-
-2007-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: Updated documentation.
-
-2007-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 1   0       NEWS
-
-2007-10-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention certtool --quick-random.
-
-2007-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/gnutls.h.in: Added defines for the deprecated SRP
-       alert numbers.
-
-2007-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/extensions.c: added an assertion.
-
-2007-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_kx.c: Corrected an error in a parenthesis.
-
-2007-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : commit 72b99e94b1ecb51a2182645797e6153baeb60fc4 Author: Nikos
-       Mavrogiannopoulos <nmav@gnutls.org> Date:   Tue Oct 9 11:37:45 2007
-       +0300
-
-2007-10-08  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/modules/gnutls.scm, guile/modules/gnutls/build/enums.scm: 
-       Guile: Reflect SRP/PSK changes.  * guile/modules/gnutls.scm (alert-description/unknown-srp-username,   alert-description/missing-srp-username): Remove.    (alert-description/unknown-psk-identity): New.  * guile/modules/gnutls/build/enums.scm (%alert-description-enum):   Likewise.
-
-2007-10-08  Ludovic Courtès <ludo@gnu.org>
-
-       * NEWS: Update `NEWS'.
-
-2007-10-08  Ludovic Courtès <ludo@gnu.org>
-
-       * configure.in: Fix configure-time Guile detection.  * configure.in: Substitute `GUILE_LDFLAGS' into `LIBS', not
-         `LDFLAGS'.  Patch by Nix <nix@esperi.org.uk>.
-
-2007-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : 1   1       doc/Makefile.am
-
-2007-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : commit 175526ddfe18f4c443fb31a676b8f1d50895b053 Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Mon Oct 8 12:57:03
-       2007 +0300
-
-2007-10-08  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 1f24725c9a0b09e7a42ee18f2bb4c0fbac581b8f Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Mon Oct 8 12:08:33
-       2007 +0300
-
-2007-10-07  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/auth_srp.c: corrected possible size issue
-
-2007-10-07  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * NEWS, build-aux/config.rpath, doc/gnutls.texi,
-       includes/gnutls/openpgp.h, includes/gnutls/x509.h,
-       lib/x509/Makefile.am, lib/x509/xml.c, libextra/openpgp/Makefile.am,
-       libextra/openpgp/xml.c, po/de.po, po/ms.po, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa,
-       src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa, src/common.c: 
-       Removed all the xml functions and stubs, as well as references in
-       the documentation.
-
-2007-10-06  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * lib/gnutls_alert.c: error_to_alert() now always return an alert
-       number. This is to avoid sending illegal values when the return
-       value is not checked (commonplace).
-
-2007-10-06  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : 51  51      src/certtool-gaa.c 10   10      src/certtool-gaa.h
-
-2007-10-06  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: Added the --quick-random option to certtool to
-       improve generation time of private keys.  They delay is quite
-       annoying especially when generating test keys.
-
-2007-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-10-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-10-06  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * src/certtool.c: Corrected output in DER format and corrected
-       output for smime_to_pkcs7 to output in outfile instead of stdout.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.1.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Rework Camellia configure messages and logic.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add fixes, for trac.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add --disable-camellia.  Remove automake
-       conditional, not used.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Bump version.
-
-2007-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, includes/gnutls/gnutls.h.in, lgl/gc-libgcrypt.c,
-       lgl/gc.h, lib/gnutls_algorithms.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_priority.c, libextra/gnutls_openssl.c,
-       libextra/opencdk/opencdk.h, src/common.c, src/tests.c, src/tests.h,
-       src/tls_test.c: Add patch to support Camellia, contributed by
-       Yoshisato YANAGISAWA.  Fixes #1.  See
-
-       http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2331
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.1.0.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Move CFLAGS setting further down, to make AC_PROG_CC
-       add -g to it.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli-gaa.c, src/serv-gaa.c: Generated.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.gaa: Set variables to NULL.  Fix oprfi variable.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.gaa: Set variables to NULL.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_oprfi.c: Fix crash.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_oprfi.c: Fix crash.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Fix infloop.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Fix crash.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix crash.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa: Support
-       Opaque PRF Input in gnutls-cli and gnutls-serv.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention how to enable oprfi support.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Document more.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_oprfi.c: Doc fix.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, doc/gnutls.texi, includes/gnutls/gnutls.h.in,
-       lib/Makefile.am, lib/ext_oprfi.c, lib/ext_oprfi.h,
-       lib/gnutls_extensions.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       tests/Makefile.am, tests/oprfi.c: Support for Opaque PRF Input TLS
-       extension.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add configure.in snippet to TLS ext section.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Fix -I's.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix release target (git-tag no longer exit with
-       failure for non-existing tags).
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.0.1.
-
-2007-09-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Improve TLS ext section.
-
-2007-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-05.txt: Add.
-
-2007-09-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Notes on adding a new TLS extension.
-
-2007-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 344057de0fbf1cbc55dbd74cc23c78ebd2609cfc Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Mon Sep 17 11:13:39 2007
-       +0200
-
-2007-09-17  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 6d3a3222640ce3b5e4daa67a4624a507445de334 Author: Simon
-       Josefsson <simon@josefsson.org> Date:   Mon Sep 17 11:06:24 2007
-       +0200
-
-2007-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/credentials/Makefile.am,
-       doc/credentials/ca.tmpl, doc/credentials/client.tmpl,
-       doc/credentials/gnutls-http-serv,
-       doc/credentials/openpgp-server-key.txt,
-       doc/credentials/openpgp-server.txt,
-       doc/credentials/openpgp/Makefile.am,
-       doc/credentials/openpgp/cli_pub.asc,
-       doc/credentials/openpgp/cli_ring.asc,
-       doc/credentials/openpgp/cli_sec.asc,
-       doc/credentials/openpgp/pub.asc, doc/credentials/openpgp/sec.asc,
-       doc/credentials/params.pem, doc/credentials/proxy.tmpl,
-       doc/credentials/psk-passwd.txt, doc/credentials/server.tmpl,
-       doc/credentials/srp-passwd.txt, doc/credentials/srp-tpasswd.conf,
-       doc/credentials/srp/Makefile.am, doc/credentials/srp/tpasswd,
-       doc/credentials/srp/tpasswd.conf, doc/credentials/x509-ca-key.pem,
-       doc/credentials/x509-ca.pem, doc/credentials/x509-client-key.pem,
-       doc/credentials/x509-client.pem, doc/credentials/x509-other-ca.pem,
-       doc/credentials/x509-proxy-key.pem, doc/credentials/x509-proxy.pem,
-       doc/credentials/x509-server-dsa.pem,
-       doc/credentials/x509-server-key-dsa.pem,
-       doc/credentials/x509-server-key.pem,
-       doc/credentials/x509-server.pem, doc/credentials/x509-trust.pem,
-       doc/credentials/x509/Makefile.am, doc/credentials/x509/ca.pem,
-       doc/credentials/x509/cert-dsa.pem, doc/credentials/x509/cert.pem,
-       doc/credentials/x509/clicert-dsa.pem,
-       doc/credentials/x509/clicert.pem,
-       doc/credentials/x509/clikey-dsa.pem,
-       doc/credentials/x509/clikey.pem, doc/credentials/x509/key-dsa.pem,
-       doc/credentials/x509/key.pem, src/Makefile.am,
-       src/gnutls-http-serv, src/openpgp/Makefile.am,
-       src/openpgp/cli_pub.asc, src/openpgp/cli_ring.asc,
-       src/openpgp/cli_sec.asc, src/openpgp/pub.asc, src/openpgp/sec.asc,
-       src/params.pem, src/srp/Makefile.am, src/srp/tpasswd,
-       src/srp/tpasswd.conf, src/x509/Makefile.am, src/x509/ca.pem,
-       src/x509/cert-dsa.pem, src/x509/cert.pem, src/x509/clicert-dsa.pem,
-       src/x509/clicert.pem, src/x509/clikey-dsa.pem, src/x509/clikey.pem,
-       src/x509/key-dsa.pem, src/x509/key.pem: Move test credentials from
-       src/ to doc/credentials/.
-
-2007-09-17  Nikos Mavrogiannopoulos <nmav@crystal.(none)>
-
-       * : commit 9afa028dae6756ef463652e56543c89b04add024 Author: Nikos
-       Mavrogiannopoulos <nmav@crystal.(none)> Date:   Mon Sep 17 11:47:12
-       2007 +0300
-
-2007-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/extensions.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/string_h.m4, gl/string_.h: Remove
-       duplicate gnulib modules.
-
-2007-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gettext.h, gl/gnulib.mk, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/sockpfaf.m4, gl/m4/stdbool.m4,
-       gl/m4/stdio_h.m4, gl/m4/sys_socket_h.m4, gl/m4/unistd_h.m4,
-       gl/stdbool_.h, gl/stdio_.h, gl/sys_socket_.h, gl/unistd_.h: Remove
-       duplicate gnulib modules.
-
-2007-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update
-       gnulib files.
-
-2007-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/absolute-header.m4: Update gnulib files.
-
-2007-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/malloc.m4, lgl/m4/realloc.m4, lgl/m4/stdlib_h.m4,
-       lgl/realloc.c, lgl/stdlib_.h: Add.
-
-2007-09-04  Ludovic Courtès <ludo@gnu.org>
-
-       * guile/src/core.c: Guile: Fix `x509-certificate-dn-oid' and related
-       functions.  * guile/src/core.c (X509_CERTIFICATE_DN_OID_FUNCTION_BODY): Use   `scm_take_locale_stringn ()' instead of `scm_take_locale_string
-         ()'.  * NEWS: Update.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-09-04  Ludovic Courtès <ludo@gnu.org>
-
-       * NEWS: Guile: Fix `x509-certificate-dn-oid' and related functions.  * guile/src/core.c (X509_CERTIFICATE_DN_OID_FUNCTION_BODY): Use   `scm_take_locale_stringn ()' instead of `scm_take_locale_string
-         ()'.  * NEWS: Update.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-comp.m4, lgl/Makefile.am,
-       lgl/m4/gnulib-comp.m4, lgl/m4/time_h.m4: Update gnulib files.
-
-2007-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * .cvsignore, build-aux/.cvsignore, doc/.cvsignore,
-       doc/examples/.cvsignore, doc/manpages/.cvsignore,
-       doc/reference/.cvsignore, doc/reference/tmpl/.cvsignore,
-       doc/scripts/.cvsignore, gl/.cvsignore, includes/.cvsignore,
-       includes/gnutls/.cvsignore, lgl/.cvsignore, lib/.cvsignore,
-       lib/minitasn1/.cvsignore, lib/x509/.cvsignore, libextra/.cvsignore,
-       libextra/minilzo/.cvsignore, libextra/opencdk/.cvsignore,
-       libextra/openpgp/.cvsignore, m4/.cvsignore, po/.cvsignore,
-       src/.cvsignore, src/cfg/.cvsignore, src/cfg/platon/.cvsignore,
-       src/cfg/platon/str/.cvsignore, src/openpgp/.cvsignore,
-       src/srp/.cvsignore, src/x509/.cvsignore, tests/.cvsignore,
-       tests/hostname-check/.cvsignore, tests/key-id/.cvsignore,
-       tests/nist-pkits/.cvsignore, tests/pathlen/.cvsignore,
-       tests/pkcs1-padding/.cvsignore, tests/pkcs12-decode/.cvsignore,
-       tests/pkcs8-decode/.cvsignore, tests/rsa-md5-collision/.cvsignore,
-       tests/sha2/.cvsignore, tests/userid/.cvsignore,
-       tests/x509paths/.cvsignore: Remove .cvsignore's.
-
-2007-09-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-09-07  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-09-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/gnutls_algorithms.c, lib/gnutls_int.h: Use official IANA
-       values for SRP.
-
-2007-09-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: TLS/IA example uses anonymous ciphers.
-
-2007-09-04  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-09-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 2.0.0.
-
-2007-09-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add 1.6.x entries.
-
-2007-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Use three-digit versions.
-
-2007-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-09-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c: Use libtasn1
-       v1.1.
-
-2007-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/libtasn1.h, lib/minitasn1/structure.c: Use libtasn1
-       v1.0.
-
-2007-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Drop gnits mode.
-
-2007-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Also don't build ex-serv-anon when
-       anonymous ciphers are disabled.
-
-2007-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Don't try to build ex-client1 if
-       anonymous ciphers are disabled.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.19.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-session-info.c: Support GNUTLS_CRD_PSK and
-       GNUTLS_CRD_IA.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Handle GNUTLS_CRD_IA in print_info().
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Doc fix.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Revert "Check that value is negative
-       before using gnutls_error_is_fatal." This reverts commit 9949a4b0b6b62a0ff3c05fee4283928d1a53b675.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Have gnutls_error_is_fatal return 0 on
-       positive "errors".  Would fix bug reported by Andreas Metzler
-       <ametzler@downhill.at.eu.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2293see also <http://bugs.debian.org/439640>.
-
-2007-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Check that value is negative before using
-       gnutls_error_is_fatal.  Fixes bug reported by Andreas Metzler
-       <ametzler@downhill.at.eu.org> in
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2293>see also <http://bugs.debian.org/439640>.
-
-2007-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/misc.c, libextra/opencdk/opencdk.h: Upgrade to
-       OpenCDK 0.6.4.
-
-2007-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-babu-serv-cert-trans-from-proxy-00.txt: Add.
-
-2007-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * gl/readline.c: Upgrade gnulib files.
-
-2007-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: No need for getline.h.
-
-2007-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getdelim.c, gl/getdelim.h, gl/getline.c, gl/getline.h,
-       gl/getpass.c, gl/gnulib.mk, gl/m4/getdelim.m4, gl/m4/getline.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/stdio_h.m4, gl/m4/unistd_h.m4,
-       gl/stdio_.h, gl/unistd_.h, lgl/Makefile.am, lgl/m4/stdio_h.m4,
-       lgl/stdio_.h: Upgrade gnulib files.
-
-2007-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * gl/fseeko.c, gl/getpass.c, gl/getpass.h, gl/gnulib.mk,
-       gl/lseek.c, gl/m4/fseeko.m4, gl/m4/getpass.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/lseek.m4,
-       lgl/Makefile.am, lgl/fseeko.c, lgl/getdelim.c, lgl/getdelim.h,
-       lgl/getline.c, lgl/getline.h, lgl/getpass.c, lgl/getpass.h,
-       lgl/lseek.c, lgl/m4/fseeko.m4, lgl/m4/getdelim.m4,
-       lgl/m4/getline.m4, lgl/m4/getpass.m4, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/lseek.m4: Update gnulib files.
-
-2007-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Don't build pgp example if pgp has been
-       disabled.
-
-2007-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.18.
-
-2007-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2007-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_psk_passwd.c, lib/gnutls_psk.c, lib/gnutls_x509.c,
-       libextra/gnutls_openpgp.c, libextra/openssl_compat.c: Fix pointer
-       mix for different sized variables.  Tiny patch from
-
-       <http://cvs.fedora.redhat.com/viewcvs/devel/gnutls/gnutls-1.6.3-incompat-pointers.patch?rev=1.1&view=auto>.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Typo.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Install images in info directory.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/arch/certificate-user-use-case.eps,
-       doc/arch/certificate-user-use-case.pdf,
-       doc/arch/client-server-use-case.eps,
-       doc/arch/client-server-use-case.pdf, doc/arch/extensions_st.eps,
-       doc/arch/extensions_st.pdf, doc/arch/handshake-sequence.eps,
-       doc/arch/handshake-sequence.pdf, doc/arch/handshake-state.eps,
-       doc/arch/handshake-state.pdf, doc/arch/mod_auth_st.eps,
-       doc/arch/mod_auth_st.pdf, doc/arch/objects.eps,
-       doc/arch/objects.pdf, doc/gnutls-certificate-user-use-case.eps,
-       doc/gnutls-certificate-user-use-case.pdf,
-       doc/gnutls-client-server-use-case.eps,
-       doc/gnutls-client-server-use-case.pdf,
-       doc/gnutls-extensions_st.eps, doc/gnutls-extensions_st.pdf,
-       doc/gnutls-handshake-sequence.eps,
-       doc/gnutls-handshake-sequence.pdf, doc/gnutls-handshake-state.eps,
-       doc/gnutls-handshake-state.pdf, doc/gnutls-mod_auth_st.eps,
-       doc/gnutls-mod_auth_st.pdf, doc/gnutls-objects.eps,
-       doc/gnutls-objects.pdf, doc/gnutls.texi: More image renaming.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/gnutls-internals.eps,
-       doc/gnutls-internals.pdf, doc/gnutls-layers.eps,
-       doc/gnutls-layers.pdf, doc/gnutls-pgp.eps, doc/gnutls-pgp.pdf,
-       doc/gnutls-x509.eps, doc/gnutls-x509.pdf, doc/gnutls.texi,
-       doc/internals.eps, doc/internals.pdf, doc/layers.eps,
-       doc/layers.pdf, doc/pgp1.eps, doc/pgp1.pdf, doc/x509-1.eps,
-       doc/x509-1.pdf: Rename images to deal with texinfo brokenness.  See
-       <http://thread.gmane.org/gmane.comp.tex.texinfo.bugs/3533>.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/my-bib-macros.texi: Remove my-bib-macros, not
-       used.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509self.c: Fix warning.  Tiny patch from Andreas Metzler
-       <ametzler@downhill.at.eu.org>.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openpgp.c: Fix warning.  Tiny patch from Andreas
-       Metzler <ametzler@downhill.at.eu.org>.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.17.
-
-2007-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2007-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/openpgp.h, libextra/gnutls_openpgp.c: Add
-       gnutls_openpgp_privkey_sign_hash.
-
-2007-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-cert-select.c, includes/gnutls/gnutls.h.in,
-       includes/gnutls/gnutlsxx.h, includes/gnutls/openpgp.h,
-       includes/gnutls/pkcs12.h, lib/auth_dh_common.c, lib/auth_dhe_psk.c,
-       lib/auth_psk.c, lib/auth_psk.h, lib/auth_psk_passwd.c,
-       lib/auth_psk_passwd.h, lib/gnutls_psk.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_x509.c, lib/gnutlsxx.cpp,
-       lib/x509/output.c, src/certtool-cfg.c, src/certtool-cfg.h,
-       src/certtool.c, src/cli.c, src/common.c, src/common.h, src/crypt.c,
-       src/prime.c, src/psk.c, src/serv.c, src/tests.c, src/tests.h,
-       src/tls_test.c: Use *_t types consistently.
-
-2007-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in, includes/gnutls/x509.h,
-       lib/gnutls_cert.c, lib/gnutls_sig.c, lib/x509/privkey.c,
-       tests/x509signself.c: Use const and pointers to gnutls_datum_t in
-       sign callback.
-
-2007-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509signself.c: Fix warnings.
-
-2007-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2007-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Set shared library version correctly.
-
-2007-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in: New errors
-       GNUTLS_E_APPLICATION_ERROR_MIN..GNUTLS_E_APPLICATION_ERROR_MAX.
-
-2007-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_cert.c,
-       lib/gnutls_sig.c: Add gnutls_sign_callback_get.         * includes/gnutls/gnutls.h.in (gnutls_sign_callback_get): Add.          * lib/gnutls_cert.c (gnutls_sign_callback_set): Move here from  gnutls_sig.c.  Doc fix.         (gnutls_sign_callback_get): New function.       * lib/gnutls_sig.c (gnutls_sign_callback_set): Removed.
-
-2007-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: (gnutls_error_is_fatal): Return default is 1 for unknown error
-       codes.
-
-2007-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2007-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, includes/gnutls/x509.h,
-       lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa_export.c,
-       lib/gnutls_int.h, lib/gnutls_sig.c, lib/gnutls_x509.c,
-       lib/x509/privkey.c, tests/Makefile.am, tests/x509signself.c: 
-       External signing callback interface.    * includes/gnutls/gnutls.h.in (gnutls_sign_func): New type.     (gnutls_sign_callback_set): New function.       * includes/gnutls/x509.h (gnutls_x509_privkey_sign_hash): New   function.       * lib/gnutls_x509.c (gnutls_certificate_set_x509_key_mem): Handle       NULL key.  Doc fix.     * lib/gnutls_sig.c (_gnutls_tls_sign_hdata): Pass session to    _gnutls_tls_sign.       (_gnutls_tls_sign_params): Likewise.    (_gnutls_tls_sign): Add new parameter 'session'.  Call sign     callback if appropriate.        (gnutls_sign_callback_set): New function.       * lib/gnutls_x509.c (read_key_mem): Support a NULL key.         * lib/gnutls_int.h (internals_st): Add sign_func,       sign_func_userdata.     * lib/auth_dhe.c (gen_dhe_server_kx): Use length of certificate         list to decide wheter to sign, not presence of private key.     * lib/auth_cert.c (_gnutls_gen_cert_client_cert_vrfy): Likewise.        * lib/auth_rsa_export.c (gen_rsa_export_server_kx): Likewise.   * lib/auth_cert.c(_gnutls_get_selected_cert): Don't require that        private key is present.         * lib/auth_rsa_export.c (gen_rsa_export_server_kx): Don't check         key size when key is not present, assume it is > 512 bits.      * lib/x509/privkey.c (gnutls_x509_privkey_sign_hash): New       function.       * tests/Makefile.am: Add x509signself.
-
-2007-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Build x509self.
-
-2007-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509self.c: New file.
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Disable TLS 1.2 by default, at least until
-       RFC is out and we've done simple interop of it.
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add.
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * po/pl.po, po/sv.po: Sync with TP.
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-07-09  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/gnutls.texi, doc/signatures.texi: Capitalized subsection
-       titles.  * doc/gnutls.texi: Capitalized subsection titles.  * doc/signatures.texi: Likewise.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-03  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/Makefile.am, guile/src/Makefile.am: Fixed CPPFLAGS for Guile
-       code and documentation.  * doc/Makefile.am (SNARF_CPPFLAGS): Added   `{top_srcdir,top_builddir}/includes' and `top_builddir'.    (core.c.texi): Added `&&' between the `make' command and the   `$(GUILE_FOR_BUILD)' command.  Use `$(MAKE)' instead of `make'.    (extra.c.texi): Likewise.  * src/Makefile.am (AM_CPPFLAGS): Added   `{top_srcdir,top_builddir}/includes'.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-08-08  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.16.
-
-2007-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/GNUmakefile, build-aux/maint.mk, doc/fdl.texi,
-       doc/gnutls.texi, doc/gpl-2.0.texi, doc/lgpl-2.1.texi, gl/error.c,
-       gl/gnulib.mk, gl/m4/gnulib-cache.m4, gl/m4/include_next.m4,
-       gl/override/doc/gpl-2.0.texi.diff,
-       gl/override/doc/lgpl-2.1.texi.diff, lgl/Makefile.am,
-       lgl/m4/gnulib-cache.m4, lgl/m4/include_next.m4, lgl/m4/stdint.m4: 
-       Update gnulib files.
-
-2007-08-02  Ludovic Courtès <ludo@gnu.org>
-
-       * NEWS: Updated `NEWS'.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-08-01  Ludovic Courtès <ludo@gnu.org>
-
-       * lib/auth_cert.c: Fixed erroneous checks and sloppy return values
-       in certificate selection.  * lib/auth_cert.c (_gnutls_get_selected_cert): Dereference   APR_CERT_LIST_LENGTH, APR_PKEY and APR_CERT_LIST when validating
-         their value.    (_gnutls_server_select_cert): When IDX < 0, set RET to   `GNUTLS_E_INSUFFICIENT_CREDENTIALS'.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-santesson-tls-gssapi-03.txt: Add.
-
-2007-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add.
-
-2007-07-14  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/stdint_.h, lgl/vasnprintf.c: Update gnulib files.
-
-2007-07-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-07-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-07-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: On starttls EOF on stdin, clear EOF flag to make future
-       reads work OK.  Needed for Mac OS X.  Report and tiny patch by Hal
-       Eden <n.mavrogiannopoulos@gmail.com>.
-
-2007-07-12  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, gl/override/lib/version-etc.c.diff,
-       lgl/Makefile.am, lgl/m4/wchar.m4, lgl/wchar_.h: Update.
-
-2007-07-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-04.txt,
-       doc/protocol/draft-santesson-tls-gssapi-02.txt: Add.
-
-2007-07-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/gnutls.texi, doc/internals.texi: Avoid make
-       errors regarding internals.texi.  See
-
-       <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2233>.
-
-2007-07-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, guile/src/Makefile.am: Fix build failure in doc/
-       when guile isn't installed built yet.
-
-2007-07-08  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/gnutls.texi, doc/internals.texi: Manual: Capitalized section
-       and chapter titles.  * doc/gnutls.texi: Capitalized section and chapter titles.    (Certificate to XML convertion functions): Fixed typo both in node   name and chapter title.  Updated menu.  * doc/internals.texi: Likewise.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-07-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-nir-tls-eap-01.txt: Add.
-
-2007-07-02  Ludovic Courtès <ludo@gnu.org>
-
-       * doc/guile.texi: Manual: Small Guile fixes.  * doc/guile.texi: Fixed typos, added cross-refs to the Guile manual.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-07-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4366-bis-00.txt: Add.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.15.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS: Revert.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS: Sync with TP.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gpl-2.0.texi, doc/gpl.texi, doc/lgpl-2.1.texi, doc/lgpl.texi: 
-       Fix gnulib name changes.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/config.rpath, build-aux/maint.mk, doc/Makefile.am,
-       doc/gnutls.texi, gl/gnulib.mk, gl/m4/getaddrinfo.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/override/doc/gpl-2.0.texi.diff, gl/override/doc/gpl.texi.diff,
-       gl/override/doc/lgpl-2.1.texi.diff, gl/override/doc/lgpl.texi.diff: 
-       Update gnulib files.  Fix GPL renaming.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Improve installation instructions.
-
-2007-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add 'Obtaining and Installing'.  Suggested by
-       ludo@gnu.org (Ludovic Courtès).
-
-2007-06-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/guile.texi: Add 'Guile Preparations' section.  Based on
-       discussions with ludo@gnu.org (Ludovic Courtès).
-
-2007-06-29  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Check for scm_from_locale_string instead of SCM_API.
-       Patch from ludo@gnu.org (Ludovic Courtès).
-
-2007-06-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-29  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am: Put $(GUILE_FLAGS) in LIBADD, not LDFLAGS.
-       Reported by ludo@gnu.org (Ludovic Courtès).
-
-2007-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2007-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/ms.po: Sync with TP.
-
-2007-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/key-id/key-id: Can't use /dev/null as template under
-       mingw32, probably really a bug in cfg+.
-
-2007-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/getaddrinfo.m4: Fix gai_strerror on mingw32.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Check that the guile header files is recent
-       enough and that it works.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Move Guile setup stuff down under 'External
-       libraries'.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, NEWS, configure.in: Fix installation path of Guile
-       bindings.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.14.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs_template, gl/gnulib.mk, gl/m4/absolute-header.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, gl/m4/netinet_in_h.m4,
-       gl/m4/string_h.m4, gl/m4/sys_socket_h.m4, gl/netinet_in_.h,
-       gl/string_.h, gl/sys_socket_.h, lgl/Makefile.am, lgl/float_.h,
-       lgl/m4/absolute-header.m4, lgl/m4/float_h.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/include_next.m4, lgl/m4/stdint.m4,
-       lgl/m4/stdio_h.m4, lgl/m4/string_h.m4, lgl/m4/sys_socket_h.m4,
-       lgl/m4/sys_stat_h.m4, lgl/m4/time_h.m4, lgl/m4/unistd_h.m4,
-       lgl/m4/wchar.m4, lgl/printf-args.c, lgl/printf-parse.h,
-       lgl/stdint_.h, lgl/stdio_.h, lgl/string_.h, lgl/sys_socket_.h,
-       lgl/sys_stat_.h, lgl/time_.h, lgl/unistd_.h, lgl/wchar_.h: Update
-       gnulib files.
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-17  Ludovic Courtes <ludo@chbouib.org>
-
-       * configure.in: Make sure Guile is 1.8 or later.  * configure.in: Make sure Guile is 1.8 or later, using
-       `GUILE_CHECK'.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-26  Ludovic Courtes <ludo@chbouib.org>
-
-       * lib/gnutls_pk.c: Fixed memory leak in `_gnutls_dsa_verify ()'.  * lib/gnutls_pk.c (_gnutls_dsa_verify): Release `rs[0]' and `rs[1]'   when done.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-06-20  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-20  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2007-06-20  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Don't crash if TLS handshake fails.  Reported by Marc
-       Haber <mh+debian-bugs@zugschlus.de> and Andreas Metzler
-       <ametzler@downhill.at.eu.org> via Debian BTS #429183.
-
-2007-06-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rsa-aes-gcm-00.txt: Add.
-
-2007-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-srp-14.txt: Add.
-
-2007-06-14  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Update PGP key.
-
-2007-06-14  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Change Ludovic' description.
-
-2007-06-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openpgp.c: Merge patch from Timo, applied to CVS.  (stream_to_datum): Call gnutls_assert() on error.
-
-2007-06-13  Ludovic Courtès <ludo@chbouib.org>
-
-       * lib/auth_cert.c: Fix off-by-one in TLS 1.2 handshake.  * lib/auth_cert.c (_gnutls_gen_cert_server_cert_req): Before
-         invoking `gnutls_malloc ()', increment SIZE when using TLS 1.2 so
-         that the allocated buffer is large-enough to contain the list of
-         supported hashes.  Don't change SIZE later on.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-06-13  Ludovic Courtès <ludo@chbouib.org>
-
-       * libextra/gnutls_openpgp.c: Fix use of uninitialized variable in
-       `gnutls_certificate_set_openpgp_key_mem ()' * libextra/gnutls_openpgp.c (stream_to_datum): Check whether INP is
-         NULL rather than checking BUF (which is not initialized yet).  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-06-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-06-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-salowey-tls-rfc4507bis-00.txt: Add.
-
-2007-06-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2007-06-11  Ludovic Courtes <ludo@chbouib.org>
-
-       * guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
-       guile/tests/raw-to-c.scm: Small cleanups in `guile/tests'.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
-
-2007-06-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Clarify that guile.texi dependencies are
-       dependencies of gnutls.texi too.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-nir-tls-eap-00.txt: Add.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS, configure.in: Need to use CFLAGS when checking for
-       -Wno-pointer-sign.  Reported by "Kristofer T. Karas"
-       <ktk@enterprise.bidmc.harvard.edu>.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.13.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix update-po target.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Fix copyright years.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls.types: Add, to work around problems if this
-       file isn't present.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix release target.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * po/Makevars: Specify MSGFILTER, to fix make distcheck.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am: Need to put libguile-gnutls-v-0.la before
-       gnulib_libs, to fix rpath issue.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * guile/src/Makefile.am: Use _LIBADD for libraries, not _LDFLAGS.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/string_h.m4, gl/string_.h, lgl/Makefile.am,
-       lgl/fseeko.c, lgl/m4/gettext.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/intlmacosx.m4, lgl/m4/string_h.m4, lgl/m4/vasnprintf.m4,
-       lgl/printf-args.c, lgl/printf-args.h, lgl/printf-parse.c,
-       lgl/printf-parse.h, lgl/string_.h, lgl/vasnprintf.c: Update gnulib
-       files.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/armor.c, libextra/opencdk/cipher.c,
-       libextra/opencdk/compress.c, libextra/opencdk/context.h,
-       libextra/opencdk/filters.h, libextra/opencdk/kbnode.c,
-       libextra/opencdk/keydb.c, libextra/opencdk/literal.c,
-       libextra/opencdk/main.c, libextra/opencdk/main.h,
-       libextra/opencdk/misc.c, libextra/opencdk/new-packet.c,
-       libextra/opencdk/opencdk.h, libextra/opencdk/pubkey.c,
-       libextra/opencdk/read-packet.c, libextra/opencdk/seskey.c,
-       libextra/opencdk/sig-check.c, libextra/opencdk/stream.c,
-       libextra/opencdk/stream.h, libextra/opencdk/verify.c: Update to
-       OpenCDK 0.6.3.
-
-2007-06-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-badra-ecdhe-tls-psk-00.txt,
-       doc/protocol/draft-hajjeh-tls-identity-protection-01.txt,
-       doc/protocol/draft-hajjeh-tls-sign-03.txt: Add.
-
-2007-06-08  Ludovic Courtes <ludo@chbouib.org>
-
-       * guile/src/Makefile.am: Fix Guile linking so that the right GnuTLS
-       libs are used.  * guile/src/Makefile.am (GNUTLS_CORE_LIBS, GNUTLS_EXTRA_LIBS): New.    (GNULIB_LDFLAGS): Renamed to `GNULIB_LIBS'.  Explicitly pass the
-         `.la' path.    (libguile_gnutls_v_0_la_LDFLAGS): Pass `$(GUILE_LDFLAGS)' as the
-         last item so that RPATH is in the right order (i.e., all   `$(top_builddir)/...' appear first).    (libguile_gnutls_extra_v_0_la_LDFLAGS): Likewise.
-
-2007-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.12.
-
-2007-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Fix warnings on amd64, from Nikos.
-
-2007-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * : commit 42c591867afe192eae45c56f1e0f9e3b8867d2ad Author: Simon
-       Josefsson <jas@mocca.josefsson.org> Date:   Fri Jun 8 13:45:59 2007
-       +0200
-
-2007-06-08  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * po/Makevars: Try to fix line number collisions.
-
-2007-06-06  Ludovic Courtes <ludo@chbouib.org>
-
-       * configure.in, guile/src/Makefile.am: Fixed the
-       `-Wno-strict-prototypes' issue in Guile code.  * configure.in: Add all custom CFLAGS to `AM_CFLAGS' rather than   `CFLAGS', except for `-D_REENTRANT -D_THREAD_SAFE' which must be   present during feature tests.  Substitute `AM_CFLAGS'.  * src/Makefile.am (libguile_gnutls_v_0_la_CFLAGS): Added
-         `$(AM_CFLAGS)'.  (libguile_gnutls_extra_v_0_la_CFLAGS): Likewise.    (AM_CFLAGS): When GCC is used, add `-Wno-strict-prototypes'.
-
-2007-06-06  Ludovic Courtes <ludo@chbouib.org>
-
-       * configure.in: Cosmetic changes in `configure.in'.  * configure.in: Display a heading indicating that Guile stuff are
-         being detected.
-
-2007-06-06  Ludovic Courtes <ludo@chbouib.org>
-
-       * m4/guile.m4: Added `guile.m4', per Simon's request.
-
-2007-06-06  Ludovic Courtes <ludo@chbouib.org>
-
-       * configure.in: Don't look for Guile when `guile-snarf' is not
-       found.  * configure.in: Don't invoke `GUILE_PROGS' and `GUILE_FLAGS' when   `guile-snarf' is not found.
-
-2007-06-04  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * doc/protocol/draft-rescorla-tls-suiteb-01.txt: Add.
-
-2007-06-04  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-new-mac-01.txt: Add.
-
-2007-06-01  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * doc/guile.texi: More @node fixes.
-
-2007-06-01  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * doc/guile.texi: Avoid @node collisions with main manual.
-
-2007-06-01  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * doc/Makefile.am: Need -I for config.h.
-
-2007-06-01  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * Makefile.am: Need to build doc/ after guile/.
-
-2007-06-01  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS: Add.
-
-2007-06-01  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * guile/src/Makefile.am: Need -I for config.h.
-
-2007-06-01  Ludovic Courtès <ludo@chbouib.org>
-
-       * : commit f469cfce51318df3b629d9af210ce4b4e587fac0 Author: Ludovic
-       Courtes <ludo@chbouib.org> Date:   Fri Jun 1 00:51:10 2007 +0200
-
-2007-06-01  Ludovic Courtes <ludo@chbouib.org>
-
-       * doc/extract-guile-c-doc.scm,
-       guile/modules/system/documentation/c-snarf.scm: Tiny bug fixes in
-       Guile's documentation extraction.  * doc/extract-guile-c-doc.scm (main): Use named arguments rather
-         than a single rest arg.    Fixed the order of arguments as passed to   `run-cpp-and-extract-snarfing' so that `ccache gcc -E' is really   passed as `("ccache" "gcc" "-E")' (in this order).  * guile/modules/system/documentation/c-snarf.scm   (run-cpp-and-extract-snarfing): Pass FILE as the last CPP
-         argument.
-
-2007-05-31  Ludovic Courtes <ludo@chbouib.org>
-
-       * Makefile.am, configure.in, guile/src/Makefile.am: Build cleanups
-       following Simon's comments.  * Makefile.am (SUBDIRS): Add `guile' when `HAVE_GUILE'.  * configure.in: When `guile-snarf' is not found, set   `opt_guile_bindings' to `no' instead of bailing out.  * src/Makefile.am (GUILE_FOR_BUILD): Fixed `-L' parameter.
-
-2007-05-31  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * doc/gnutls.texi: Revert unnecessary changes.
-
-2007-05-31  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * : commit d51689f572e544759632fa2f9ca0209a843d4452 Author: Ludovic
-       Courtès <ludo@chbouib.org> Date:   Thu May 31 00:28:19 2007 +0200
-
-2007-05-31  Ludovic Courtès <ludo@chbouib.org>
-
-       * doc/guile.texi: Minor doc fixes.
-
-2007-05-31  Ludovic Courtès <ludo@chbouib.org>
-
-       * doc/Makefile.am: Handle missing Guile when building the
-       documentation.
-
-2007-05-31  Ludovic Courtès <ludo@chbouib.org>
-
-       * doc/Makefile.am, doc/extract-guile-c-doc.scm, doc/gnutls.texi,
-       doc/guile.texi: Integrated documentation of Guile bindings.
-
-2007-05-30  Ludovic Courtès <ludo@chbouib.org>
-
-       * configure.in, guile/src/Makefile.am: Try to handle "function
-       declaration isn't a prototype" warnings.
-
-2007-05-30  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * gl/netinet_in_.h, gl/string_.h, gl/sys_socket_.h,
-       lgl/Makefile.am, lgl/float_.h, lgl/fseeko.c, lgl/lseek.c,
-       lgl/m4/iconv.m4, lgl/m4/lseek.m4, lgl/m4/stdio_h.m4, lgl/stdint_.h,
-       lgl/stdio_.h, lgl/string_.h, lgl/sys_socket_.h, lgl/sys_stat_.h,
-       lgl/time_.h, lgl/unistd_.h, lgl/wchar_.h: Update.
-
-2007-05-30  Ludovic Courtès <ludo@chbouib.org>
-
-       * Makefile.am, configure.in, guile/Makefile.am,
-       guile/modules/Makefile.am, guile/modules/gnutls.scm,
-       guile/modules/gnutls/build/enums.scm,
-       guile/modules/gnutls/build/priorities.scm,
-       guile/modules/gnutls/build/smobs.scm,
-       guile/modules/gnutls/build/utils.scm,
-       guile/modules/gnutls/extra.scm,
-       guile/modules/system/documentation/README,
-       guile/modules/system/documentation/c-snarf.scm,
-       guile/modules/system/documentation/output.scm,
-       guile/pre-inst-guile.in, guile/src/Makefile.am, guile/src/core.c,
-       guile/src/errors.c, guile/src/errors.h, guile/src/extra.c,
-       guile/src/make-enum-header.scm, guile/src/make-enum-map.scm,
-       guile/src/make-session-priorities.scm,
-       guile/src/make-smob-header.scm, guile/src/make-smob-types.scm,
-       guile/src/utils.c, guile/src/utils.h, guile/tests/Makefile.am,
-       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
-       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.asc,
-       guile/tests/openpgp-keyring.scm, guile/tests/openpgp-keys.scm,
-       guile/tests/openpgp-pub.asc, guile/tests/openpgp-sec.asc,
-       guile/tests/pkcs-import-export.scm, guile/tests/raw-to-c.scm,
-       guile/tests/rsa-parameters.pem,
-       guile/tests/session-record-port.scm, guile/tests/srp-base64.scm,
-       guile/tests/x509-auth.scm, guile/tests/x509-certificate.pem,
-       guile/tests/x509-certificates.scm, guile/tests/x509-key.pem: Started
-       Guile integration.  Documentation is still missing.  A bit rough on the edges, but
-       `make' and `make check' do work.
-
-2007-05-28  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * doc/Makefile.am: Make sure all images are distributed in all
-       formats.  Reported by Andreas Metzler <ametzler@downhill.at.eu.org>.
-
-2007-05-27  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * lib/gnutls_x509.c: (parse_pem_ca_mem): Handle reads beyond first certificate properly.
-       Reported by Dennis Vshivkov <walrus@amur.ru> in
-       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333050>.
-
-2007-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/parse_ca.c: Add self-test.
-
-2007-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2007-05-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-05-27  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS: [no log message]
-
-2007-05-27  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * lib/gnutls_datum.c: (_gnutls_free_datum_m): Free even if size is 0.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS: Add.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * lib/x509/privkey_pkcs8.c: (decode_pkcs8_key): If ASN.1 decoding fails after decrypting an
-       already properly decoded value, assume it is due to a bad password
-       rather than ASN.1 error.  Reported by Nate Nielsen
-       <nielsen-list@memberwebs.com>.  (From 1.6.x branch.)
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * lib/x509/privkey_pkcs8.c: (decode_private_key_info): Translate asn1 errors properly.  Reported
-       by Nate Nielsen <nielsen-list@memberwebs.com>.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * lib/auth_cert.c: Fix mem leak, reported by Andrey Nosenko
-       <andrew.w.nosenko@gmail.com>.  (From 1.6.x branch.)
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * THANKS: Add (from 1.6.x).
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS: Version 1.7.11.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS: Fix.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS: Add.
-
-2007-05-26  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * libextra/opencdk/Makefile.am: Add opencdk.h to sources.
-
-2007-05-25  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * ChangeLog: Generated.
-
-2007-05-25  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS: Version 1.7.10.
-
-2007-05-25  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * Makefile.am: Use cg instead of cvs commands, for update-po target.
-
-2007-05-25  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * NEWS: Add.
-
-2007-05-25  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * Makefile.am: Change release target from cvs to git.
-
-2007-05-25  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * lgl/lseek.c, lgl/m4/lseek.m4: Update.
-
-2007-05-25  Simon Josefsson <jas@mocca.josefsson.org>
-
-       * doc/gendocs_template, lgl/.cvsignore, lgl/Makefile.am,
-       lgl/fseeko.c, lgl/m4/fseeko.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/unistd_h.m4, lgl/stdio_.h, lgl/unistd_.h: Update.
-
-2007-05-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2007-05-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2007-05-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: Use new API.
-
-2007-05-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-05-24  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/netinet_in_.h, gl/string_.h, gl/sys_socket_.h,
-       lgl/.cvsignore, lgl/Makefile.am, lgl/float+.h, lgl/float_.h,
-       lgl/fseeko.c, lgl/m4/float_h.m4, lgl/m4/fseeko.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/stdio_h.m4, lgl/m4/vasnprintf.m4,
-       lgl/m4/vasprintf.m4, lgl/m4/wint_t.m4, lgl/stdint_.h, lgl/stdio_.h,
-       lgl/string_.h, lgl/sys_socket_.h, lgl/sys_stat_.h, lgl/time_.h,
-       lgl/unistd_.h, lgl/vasnprintf.c, lgl/wchar_.h: Update.
-
-2007-05-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-05-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509.h: Export gnutls_x509_crt_get_raw_dn,
-       gnutls_x509_crt_get_raw_issuer_dn.
-
-2007-05-23  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/openpgp/xml.c: fix the key ID representation in the XML
-       code.
-
-2007-05-21  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/openpgp/extras.c, libextra/openpgp/openpgp.h,
-       libextra/openpgp/pgp.c, libextra/openpgp/xml.c: cleanups for the xml
-       code: elgamal keys are not supported.  bug fix for the key import
-       (base64) code, store the stream and close it in the deinit function.
-
-2007-05-21  Timo Schulz <twoaday@gnutls.org>
-
-       * src/openpgp/Makefile.am, src/openpgp/cli_ring.asc: Add client
-       keyring in base64 format.  This is the same file as cli_ring.gpg but
-       armored.
-
-2007-05-21  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/openpgp/extras.c: do not close the input stream in the
-       import code when the base64 is used.
-
-2007-05-14  Timo Schulz <twoaday@gnutls.org>
-
-       * tests/openpgp/keyring.c: few more comments.
-
-2007-05-14  Timo Schulz <twoaday@gnutls.org>
-
-       * configure.in: add makefile for the openpgp test folder
-
-2007-05-14  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/openpgp/extras.c: patch to support raw keyrings.
-
-2007-05-14  Timo Schulz <twoaday@gnutls.org>
-
-       * tests/Makefile.am, tests/openpgp/Makefile.am,
-       tests/openpgp/keyring.c: Add simple openpgp test.
-
-2007-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2007-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.9.
-
-2007-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Reorder to work around libtool bug.
-
-2007-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/vasnprintf.m4, lgl/vasnprintf.c, libextra/opencdk/armor.c,
-       libextra/opencdk/cipher.c, libextra/opencdk/compress.c,
-       libextra/opencdk/context.h, libextra/opencdk/filters.h,
-       libextra/opencdk/kbnode.c, libextra/opencdk/keydb.c,
-       libextra/opencdk/literal.c, libextra/opencdk/main.c,
-       libextra/opencdk/main.h, libextra/opencdk/misc.c,
-       libextra/opencdk/opencdk.h, libextra/opencdk/pubkey.c,
-       libextra/opencdk/read-packet.c, libextra/opencdk/sig-check.c,
-       libextra/opencdk/stream.c, libextra/opencdk/verify.c,
-       libextra/opencdk/write-packet.c: Update.
-
-2007-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: (gnutls_set_default_priority): Change order to prefer X.509 over
-       OpenPGP.
-
-2007-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs_template, gl/override/doc/gendocs_template,
-       gl/override/doc/gendocs_template.diff: Update.
-
-2007-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs_template: Revert to upstream gnulib version.
-
-2007-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-05-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-comp.m4, gl/m4/socklen.m4,
-       gl/socket_.h, gl/string_.h, gl/sys_socket_.h, lgl/Makefile.am,
-       lgl/getpass.c, lgl/m4/fseeko.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/socklen.m4, lgl/m4/stdint.m4, lgl/m4/stdio_h.m4,
-       lgl/m4/sys_stat_h.m4, lgl/m4/unistd_h.m4, lgl/socket_.h,
-       lgl/stat_.h, lgl/stdio_.h, lgl/string_.h, lgl/sys_socket_.h,
-       lgl/sys_stat_.h, lgl/time_.h, lgl/unistd_.h, lgl/wchar_.h: Update.
-
-2007-05-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Add gnutls-logo.pdf, to fix distcheck.
-
-2007-05-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Fix mem leaks.
-
-2007-04-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-otto-tls-sigma-ciphersuite-00.txt: Add.
-
-2007-04-24  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/opencdk/literal.c: missing file.
-
-2007-04-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-new-mac-00.txt,
-       doc/protocol/draft-ietf-tls-suiteb-00.txt: Add.
-
-2007-04-22  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/opencdk/dummy.c: [no log message]
-
-2007-04-22  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/opencdk/Makefile.am, libextra/opencdk/README,
-       libextra/opencdk/armor.c, libextra/opencdk/cipher.c,
-       libextra/opencdk/cipher.h, libextra/opencdk/compress.c,
-       libextra/opencdk/context.h, libextra/opencdk/encrypt.c,
-       libextra/opencdk/filters.h, libextra/opencdk/kbnode.c,
-       libextra/opencdk/keydb.c, libextra/opencdk/keygen.c,
-       libextra/opencdk/keylist.c, libextra/opencdk/keyserver.c,
-       libextra/opencdk/main.c, libextra/opencdk/main.h,
-       libextra/opencdk/md.c, libextra/opencdk/md.h,
-       libextra/opencdk/misc.c, libextra/opencdk/new-packet.c,
-       libextra/opencdk/opencdk.h, libextra/opencdk/packet.h,
-       libextra/opencdk/plaintext.c, libextra/opencdk/pubkey.c,
-       libextra/opencdk/read-packet.c, libextra/opencdk/seskey.c,
-       libextra/opencdk/sig-check.c, libextra/opencdk/sign.c,
-       libextra/opencdk/stream.c, libextra/opencdk/stream.h,
-       libextra/opencdk/sym-cipher.c, libextra/opencdk/trustdb.c,
-       libextra/opencdk/types.h, libextra/opencdk/verify.c,
-       libextra/opencdk/write-packet.c: replace the old build-in opencdk
-       version with the most recent cvs version.
-
-2007-04-22  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Check for OpenCDK function that is only available in
-       OpenCDK 0.6.0.
-
-2007-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2007-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-badra-tls-password-00.txt,
-       doc/protocol/draft-badra-tls-password-ext-00.txt: Add.
-
-2007-04-20  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: Adjustments for the opencdk migration
-       and some cleanups.
-
-2007-04-20  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/openpgp.h,
-       libextra/openpgp/pgp.c, libextra/openpgp/pgpverify.c,
-       libextra/openpgp/privkey.c, libextra/openpgp/xml.c: First bunch of
-       patches for the opencdk migration.
-
-2007-04-19  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/extras.c: (gnutls_openpgp_keyring_import): Make it work (it seems the old code
-       didn't work).  Patch from ludo@chbouib.org (Ludovic Courtès).
-
-2007-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Mention P12 structure.
-
-2007-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * tests/tlsia.c: Check return codes from init functions.
-
-2007-04-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/sign.c: Write NULL in parameters for RSA signing.
-
-2007-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/certtool-cfg.c, src/certtool.c: Use current time as
-       default serial number.
-
-2007-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.8.
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: Doc fix.
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/gc.c: Need to init libgcrypt with secure memory hooks.
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am: Add.
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Reorder to make it compile.
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-comp.m4, gl/string_.h, lgl/Makefile.am,
-       lgl/float+.h, lgl/m4/gnulib-comp.m4, lgl/m4/intl.m4,
-       lgl/m4/longdouble.m4, lgl/m4/stdint.m4, lgl/m4/stdio_h.m4,
-       lgl/m4/vasnprintf.m4, lgl/printf-args.c, lgl/printf-args.h,
-       lgl/printf-parse.c, lgl/stdio_.h, lgl/string_.h, lgl/time_.h,
-       lgl/vasnprintf.c, lgl/wchar_.h: Update.
-
-2007-04-16  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/gc-libgcrypt.c, lib/gnutls_handshake.c,
-       lib/gnutls_session_pack.c, lib/x509/output.c, lib/x509/verify.c: Fix
-       warnings, tiny patch from Andreas Metzler
-       <ametzler@downhill.at.eu.org>.
-
-2007-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Fix.
-
-2007-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Fix.
-
-2007-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2007-04-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_psk.c: (gnutls_psk_set_client_credentials): Fix prototype.
-
-2007-04-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-04-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am, lib/Makefile.am, src/cli.c, src/serv.c: 
-       Respect ENABLE_AUTHZ.
-
-2007-04-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c: Make tls-authz conditional on
-       ENABLE_AUTHZ.
-
-2007-04-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add anon conditional.
-
-2007-04-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix --disable-*.
-
-2007-04-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add --disable-tls-authorization.
-
-2007-04-10  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openpgp.c: (gnutls_certificate_set_openpgp_key): Allocate certificate structure
-       properly.  Tiny patch from ludo@chbouib.org (Ludovic Courtès).
-
-2007-04-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Make -d work again after last change.
-
-2007-04-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-04-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: (gnutls_x509_crt_get_key_id): Don't fail on non-RSA/DSA public keys.
-
-2007-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli-gaa.c, src/cli.gaa, src/common.c, src/common.h,
-       src/serv-gaa.c, src/serv.gaa: Use gnutls_cipher_suite_info.
-
-2007-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_algorithms.c: Add
-       gnutls_cipher_suite_info API, suggested by Howard Chu
-       <hyc@symas.com>.
-
-2007-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Don't hard code algorithm list.
-
-2007-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_algorithms.c: Add
-       new APIs to list supported algorithms: gnutls_cipher_list,
-       gnutls_mac_list, gnutls_compression_list, gnutls_protocol_list,
-       gnutls_certificate_type_list, and gnutls_kx_list.  Suggested by
-       Howard Chu <hyc@symas.com>.
-
-2007-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h: Simplify kx
-       definition, since gnutls-extra no longer touches it.
-
-2007-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Init the library immediately (for print_list(), called
-       by gaa_parser, to be able to call gnutls functions).
-
-2007-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: $(LIBOPENCDK_LIBS) should be necessary here,
-       since libgnutls-extra links to it.
-
-2007-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Fix LIBOPENCDK_LIBS.  No need for
-       AM_CPPFLAGS += $(LIBOPENCDK_CFLAGS), the new macro add necessary
-       -I's to CPPFLAGS automatically.
-
-2007-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Need stddef.h for opencdk.h.
-
-2007-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getpass.c, gl/getpass.h, gl/gnulib.mk, gl/m4/getpass.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, lgl/.cvsignore,
-       lgl/Makefile.am, lgl/getdelim.c, lgl/getdelim.h, lgl/getline.c,
-       lgl/getline.h, lgl/getpass.c, lgl/getpass.h, lgl/m4/getdelim.m4,
-       lgl/m4/getline.m4, lgl/m4/getpass.m4, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4: Update.
-
-2007-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix LIBGNUTLS_EXTRA_* for cdk changes.
-
-2007-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, m4/opencdk.m4: Use AC_LIB_HAVE_LINKFLAGS to find
-       opencdk, remove opencdk.m4.
-
-2007-04-03  Simon Josefsson <simon@josefsson.org>
-
-       * build-aux/gendocs.sh, gl/stdbool_.h, lgl/Makefile.am,
-       lgl/alloca_.h, lgl/asprintf.c, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/iconv.m4, lgl/m4/intdiv0.m4,
-       lgl/stat_.h, lgl/stdbool_.h, lgl/vasprintf.c: Update.
-
-2007-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: No need to error about unknown algorithm, it
-       already says unknown.
-
-2007-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Remove #if GNUTLS_PK_LOOP madness that
-       hides problems.  (gnutls_pk_algorithm_get_name): Don't return GOST for unsupported
-       algorithms (e.g., ECC).
-
-2007-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c: No need for vasprintf.h.
-
-2007-03-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getaddrinfo.c, gl/string_.h, gl/version-etc.c, lgl/.cvsignore,
-       lgl/Makefile.am, lgl/asprintf.c, lgl/des.c, lgl/dummy.c,
-       lgl/float+.h, lgl/m4/gnulib-comp.m4, lgl/m4/printf-posix.m4,
-       lgl/m4/stdio_h.m4, lgl/m4/vasnprintf.m4, lgl/m4/vasprintf.m4,
-       lgl/printf-parse.c, lgl/stdio_.h, lgl/string_.h, lgl/vasnprintf.c,
-       lgl/vasprintf.c, lgl/vasprintf.h: Update.
-
-2007-03-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-crq.c, doc/examples/ex-pkcs12.c,
-       doc/examples/ex-rfc2818.c, src/crypt.c: Use size_t at appropriate
-       places.  Tiny patch by Deanna Phillips <deanna@sdf.lonestar.org>.
-
-2007-03-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/anonself.c: Need netinet/in.h.  Tiny patch from Deanna
-       Phillips <deanna@sdf.lonestar.org>.
-
-2007-03-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-padding/pkcs1-pad: Trim whitespace from 'wc' output.
-       Tiny patch from Deanna Phillips <deanna@sdf.lonestar.org>.
-
-2007-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2007-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: (gnutls_x509_crt_set_version): Doc fix, tiny patch from Florian
-       Weimer <fweimer@bfk.de>.
-
-2007-03-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-comp.m4, gl/m4/netinet_in_h.m4,
-       gl/m4/sys_socket_h.m4, gl/netinet_in_.h, gl/socket_.h,
-       lgl/Makefile.am, lgl/des.c, lgl/des.h, lgl/dummy.c,
-       lgl/gc-gnulib.c, lgl/m4/gnulib-comp.m4, lgl/m4/snprintf.m4,
-       lgl/m4/stdbool.m4, lgl/m4/stdio_h.m4, lgl/m4/sys_socket_h.m4,
-       lgl/m4/vasnprintf.m4, lgl/snprintf.c, lgl/socket_.h,
-       lgl/stdbool_.h, lgl/stdint_.h, lgl/stdio_.h, lgl/vasnprintf.c,
-       lgl/vasnprintf.h, lgl/vasprintf.h: Update.
-
-2007-03-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-03.txt: Update,
-
-2007-03-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c: Simplify error handling.
-
-2007-03-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-03-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Doc fix.
-
-2007-03-07  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump due to added APIs.
-
-2007-03-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Prefer aes256.
-
-2007-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2007-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, maint-cfg.mk: Work around config.rpath issue.
-
-2007-03-06  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/stdio_.h: Update.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Use libgnutls' priorities.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/dhepskself.c: Remove priority setting.  Fix output.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-authz.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client2.c, doc/examples/ex-serv-pgp.c: Remove
-       confusing priority setting stuff.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * .cvsignore, build-aux/.cvsignore, doc/.cvsignore: [no log message]
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_authz.c: Don't assert when no authz.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Use default ciphers.  Simplify SRP callback.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: (gnutls_set_default_priority): Fix defaults.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Let libgnutls remove SRP/PSK if not used.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Indent and doc fix.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/gnutls_priority.h, lib/gnutls_record.c,
-       lib/gnutls_state.c: Remove gnutls_priority.h, not needed.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Reorder.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Reorder.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Reorder.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, build-aux/GNUmakefile, build-aux/config.rpath,
-       build-aux/gendocs.sh, build-aux/link-warning.h, build-aux/maint.mk,
-       gendocs.sh, gl/gnulib.mk, gl/m4/gnulib-cache.m4, lgl/Makefile.am,
-       lgl/m4/gnulib-cache.m4, link-warning.h, maint.mk: Fixes for
-       build-aux.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Use build-aux/.
-
-2007-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-03.txt,
-       lgl/m4/gnulib-comp.m4, lgl/m4/time_r.m4, lgl/m4/vasnprintf.m4,
-       lgl/m4/vasprintf.m4, lgl/time_.h, lgl/vasnprintf.c,
-       lgl/vasnprintf.h, lgl/vasprintf.h: Updaet.
-
-2007-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-salowey-tls-rsa-aes-gcm-00.txt: Add.
-
-2007-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * po/sv.po: Sync with TP.
-
-2007-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * po/pl.po: Sync with TP.
-
-2007-02-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-nir-tee-pm-00.txt: Add.
-
-2007-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/.cvsignore: [no log message]
-
-2007-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add authz server.
-
-2007-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Add authz.
-
-2007-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-serv-authz.c: Add.
-
-2007-02-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-authz.c, doc/gnutls.texi: Add.
-
-2007-02-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Add credits.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Minor tweaks to proxy output.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Typo.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/dn.c: Other cert.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add dn.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/dn.c: Add.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Rename.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: Rename non-released functions.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.h: Remove.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Code cleanup and documentation of last patch.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h, lib/x509/x509.h: Fix.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h, lib/x509/x509.c, lib/x509/x509.h: New APIs
-       to deal with DN's.  Patch from Howard Chu <hyc@symas.com>.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.7.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/.cvsignore: [no log message]
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getaddrinfo.c, gl/gnulib.mk, gl/m4/gnulib-comp.m4,
-       gl/m4/string_h.m4, gl/string_.h, lgl/Makefile.am,
-       lgl/m4/gnulib-comp.m4, lgl/m4/intdiv0.m4, lgl/m4/snprintf.m4,
-       lgl/m4/stdio_h.m4, lgl/m4/string_h.m4, lgl/m4/unistd_h.m4,
-       lgl/snprintf.c, lgl/snprintf.h, lgl/stdio_.h, lgl/string_.h,
-       lgl/unistd_.h, link-warning.h: Update.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_authz.c, lib/gnutls_supplemental.c: Typo.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c, lib/gnutls_extensions.h: Revert.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: New flags for authz extension.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_authz.c: Use our own logic to determine whether to send
-       extension replies in server.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.h: Add prototype for
-       _gnutls_extension_list_check, we use it in ext_authz.c.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c: Remove static from
-       _gnutls_extension_list_check, we use it in ext_authz.c
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_authz.c: Don't send authz extension when we shouldn't.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h: Generated.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/serv.c: Fix #include's.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/cli.gaa: Support gnutls-cli --authz-x509-attr-cert
-       and --authz-saml-assertion.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c, src/serv-gaa.c, src/serv-gaa.h, src/serv.c,
-       src/serv.gaa: Support gnutls-serv --authz-x509-attr-cert and
-       --authz-saml-assertion.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix so version due to added APIs.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore more.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Revert.
-
-2007-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.pc.in: Revert Requires-change.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_extensions.c: Add authz extension.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_authz.c: Typo.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_supplemental.c: Add authz hooks.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Fix type (in never released
-       prototypes).
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Add authz stuff.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Build ext_authz.h and ext_authz.c.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_authz.c, lib/ext_authz.h: New file.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_supplemental.h: Sync with
-       gnutls_supplemental.c.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_supplemental.c: Fill in type+length.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Add gnutls_authz_recv_callback_func
-       and gnutls_authz_send_callback_func.  Add gnutls_authz_enable,
-       gnutls_authz_send_x509_attr_cert, gnutls_authz_send_saml_assertion,
-       gnutls_authz_send_x509_attr_cert_url, and
-       gnutls_authz_send_saml_assertion_url.  Remove GNUTLS_AUTHZ_LAST from
-       gnutls_authz_data_format_type_t (never part of any release).
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_supplemental.c: If callbacks failed to provide
-       anything, at least send protocol valid (yet semantically invalid)
-       supplemental message.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Add for supplemental support.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Support supplemental handshake messages.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Add gnutls_supplemental.h and
-       gnutls_supplemental.c.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_supplemental.c, lib/gnutls_supplemental.h: New file.
-
-2007-02-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2007-02-19  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Add gnutls_supplemental_get_name.
-       Fix gnutls_authz_data_format_type_t.
-
-2007-02-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/debug.c: Support SUPPLEMENTAL handshake type.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: update
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check/hostname-check.c: Tests ipAddress SAN's too.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check/hostname-check.c: Test wildcard stuff too.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/rfc2818_hostname.c: Indent.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/rfc2818_hostname.c: Support iPAddress too.  Doc fix.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check/hostname-check.c: Fix mem leak.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/rfc2818_hostname.c: Doc fix.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/rfc2818_hostname.c: Don't treat absence of CN in subject
-       as a successful RFC 2818 hostname comparison match.  Reported by
-       "Richard W.M. Jones" <rjones@redhat.com>.
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/hostname-check/.cvsignore: [no log message]
-
-2007-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, tests/Makefile.am,
-       tests/hostname-check/Makefile.am, tests/hostname-check/README,
-       tests/hostname-check/hostname-check.c: Add self test of rfc2818
-       server identity check.
-
-2007-02-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.pc.in: Add 'Requires: libtasn1' to make 'pkg-config
-       --libs gnutls' output -ltasn1.  Reported by Pavlov Konstantin
-       <thresh@altlinux.ru>.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_hash_int.c: Avoid assert.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Make sure NULL is a pointer.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Change vararg 0 to NULL.  Tiny change suggested by
-       Joe Orton <joe@manyfish.co.uk>.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Fix gnutls_authz_data_format_type_t.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Add
-       gnutls_supplemental_data_format_type_t with member
-       GNUTLS_SUPPLEMENTAL_AUTHZ_DATA.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Add gnutls_authz_data_format_type_t,
-       with members GNUTLS_AUTHZ_X509_ATTR_CERT,
-       GNUTLS_AUTHZ_SAML_ASSERTION, GNUTLS_AUTHZ_X509_ATTR_CERT_URL,
-       GNUTLS_AUTHZ_SAML_ASSERTION_URL.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Reorder.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Add GNUTLS_EXTENSION_AUTHZ_CLIENT and
-       GNUTLS_EXTENSION_AUTHZ_SERVER.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Add GNUTLS_HANDSHAKE_SUPPLEMENTAL.
-
-2007-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Spell out handshake types.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h: Update.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Use error().
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Cleanup p12 printing.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Cleanup pkcs7_info.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Better errors.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.gaa: Remove --copyright (use --version).
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Use version-etc.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix for version-etc.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/stdarg.m4, gl/version-etc-fsf.c, gl/version-etc.c,
-       gl/version-etc.h: Update.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Cleanup CRL.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Cleanup.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Simplify.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Cleanups.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Rewrite generate_private_key_int.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix mem leak.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix crl_info.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Rewrite load_private_key.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Rewrite load_request.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Rewrite load_ca_private_key.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Remove.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Rewrite load_ca_cert.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: No limit on CRL size during verification.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Simplify.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/certificate_set_x509_crl.c: Need config.h.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Use AM_CPPFLAGS, not obsolete INCLUDES.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Need libgnu.la.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/errcodes.c: Need config.h.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_asn1_tab.c, lib/pkix_asn1_tab.c: Update.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove stuff obsoleted by time_r.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Don't check for time.h, not needed.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h: Only use time.h, from gnulib if needed.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/.cvsignore: [no log message]
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: UPdate.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Remove.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/string_.h, lgl/Makefile.am, lgl/m4/gnulib-comp.m4,
-       lgl/m4/time_h.m4, lgl/m4/time_r.m4, lgl/string_.h, lgl/time_.h,
-       lgl/time_r.c, lgl/time_r.h: Update.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/.cvsignore, tests/x509paths/.cvsignore: [no log
-       message]
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/README: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/gnutls-nist-tests.html: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/README: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/pkits_test: Unpack.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/.cvsignore: [no log message]
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/pkits_test: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/pkits_test_list_generator.patch: Update.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/gnutls_test_entry: Remove.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/build-chain, tests/nist-pkits/gnutls_test_entry,
-       tests/nist-pkits/pkits_test_list_generator.patch: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/README: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/README: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/mpi.c: We don't support inherited DSA parameters.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/pkits_crl, tests/nist-pkits/pkits_crt,
-       tests/nist-pkits/pkits_pkcs12, tests/nist-pkits/pkits_smime: Update.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/pkits: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/pkits: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/pkits: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore, tests/nist-pkits/.cvsignore: [no log message]
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/nist-pkits/README, tests/nist-pkits/pkits,
-       tests/nist-pkits/pkits_crl, tests/nist-pkits/pkits_crt,
-       tests/nist-pkits/pkits_pkcs12, tests/nist-pkits/pkits_smime,
-       tests/pkits, tests/pkits_crl, tests/pkits_crt, tests/pkits_pkcs12,
-       tests/pkits_smime: Move PKITS stuff to nist-pkits/.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509paths/README: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/x509paths/chain: fix for chain 1.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chain, tests/x509paths/README, tests/x509paths/chain: Move
-       old NIST stuff to separate directory.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/dn.c: Don't write to buf if *sizeof_buf==0.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Don't use uninitialized.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Don't access ret unless *ret_size>0.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix PKI test.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Simplify copyright.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c: Remove.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Remove unused.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Make certtool conditional on ENABLE_PKI.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add conditional for PKI stuff.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Handle larger certificate lists.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: crl: Support GNUTLS_X509_CRT_UNSIGNED_FULL.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Use gnutls_x509_crl_print.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/crl.c, lib/x509/output.c,
-       lib/x509/x509.c: Add gnutls_x509_crl_get_signature and
-       gnutls_x509_crl_print.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Use error().
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: We do need lgl/ though.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am, libextra/opencdk/Makefile.am: No need for
-       gl/.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/Makefile.am: Don't include gl/.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/error.c, gl/error.h, gl/gnulib.mk, gl/m4/error.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/progname.c,
-       gl/progname.h: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Revert.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in: Revert.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/dummy.c, src/lib/Makefile.am, src/lib/error.c,
-       src/lib/error.h, src/lib/m4/error.m4, src/lib/m4/gnulib-cache.m4,
-       src/lib/m4/gnulib-common.m4, src/lib/m4/gnulib-comp.m4,
-       src/lib/m4/gnulib-tool.m4, src/lib/progname.c, src/lib/progname.h: 
-       Remove.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: No need for gl/.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix src/lib/.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Build src/lib/.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Init src/lib/.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       src/lib/Makefile.am, src/lib/m4/gnulib-cache.m4,
-       src/lib/m4/gnulib-comp.m4: Update.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/error.c, gl/error.h, gl/m4/error.m4: Remove.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/error.c, gl/error.h, gl/gnulib.mk, gl/m4/error.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, src/lib/Makefile.am,
-       src/lib/error.c, src/lib/error.h, src/lib/m4/error.m4,
-       src/lib/m4/gnulib-cache.m4, src/lib/m4/gnulib-common.m4,
-       src/lib/m4/gnulib-comp.m4, src/lib/m4/gnulib-tool.m4,
-       src/lib/progname.c, src/lib/progname.h: Add.
-
-2007-02-13  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: No size limit on CRL data.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: (_gnutls_x509_san_find_type): Support GNUTLS_SAN_DN.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Support GNUTLS_SAN_DN.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: (parse_general_name): Support GNUTLS_SAN_DN.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in: Add.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.6.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: New APIs, bump libtool library versions.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/string_h.m4, gl/string_.h, lgl/Makefile.am,
-       lgl/m4/string_h.m4, lgl/string_.h: Update.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Use latest docs on web site.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * po/POTFILES.in: Add.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Mark for translation.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pkix_asn1_tab.c: Generated.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Print more than one SAN.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Better printing of XMPP SAN.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pkix.asn: Add XMPP definitions.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Doc fix.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Decode XMPP data.  Suggested by Matthias Wimmer
-       <m@tthias.eu>.
-
-2007-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Print X.509 client cert info.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Text fix.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: Update.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: strftime %Z on mingw32 seems to not understand
-       that gmtime was used and that the time given is in UTC.  Just hard
-       code it to UTC.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c: Typo.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/asprintf.c, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/vasprintf.m4, lgl/vasprintf.c,
-       lgl/vasprintf.h: Add.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Use gnulib's time_r for systems that lack
-       gmtime_r.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/time_r.m4, lgl/time_r.c, lgl/time_r.h: Add.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pathlen/no-ca-or-pathlen.pem: Fix.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Strings not zero terminated.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Hexprint unknown extensions.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * tests/key-id/key-id, tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: Update.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Remove.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Support GNUTLS_X509_CRT_UNSIGNED_FULL.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Use gnutls_x509_crt_print.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/x509.h: Add.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Fix error messages.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Really fix.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Fix.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: Change signature (ok since no release).
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Use datum for outputs.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-housley-tls-authz-extns-07.txt: Add.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Simplify.
-
-2007-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/extensions.c: Don't crash on NULL's.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add, from older branches.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/output.c: Doc fix.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Build output.c.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/output.c: Add.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/x509.c: Add
-       gnutls_x509_crt_get_signature.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: gnutls-serv: create client & proxy too.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c: Default proxy policy is ALL.  Fixes crash.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/extensions.c: Fix warnings.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c, lib/gnutls_str.h: Add
-       _gnutls_string_append_printf.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/x509.c: Add
-       gnutls_x509_crt_get_extension_data and
-       gnutls_x509_crt_get_extension_info.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: XMPP otherName SAN support.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/x509/x509.c: Fix.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Doc fix.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Support XMPP OID.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Doc fix.
-
-2007-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, includes/gnutls/x509.h,
-       lib/x509/common.c, lib/x509/x509.c, src/certtool.c: Support
-       otherName SAN's.
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: add tcp and tlsia
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Fix.
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Don't say TLS 1.0.
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_sig.c: Fix DSA sign, broken by last commit.
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_sig.c: Fix TLS 1.2 signing (for servers).
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: dsa key
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_sig.c: Fix crash on failures.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-srp-00.txt,
-       doc/protocol/draft-ietf-tls-srp-01.txt,
-       doc/protocol/draft-ietf-tls-srp-02.txt,
-       doc/protocol/draft-ietf-tls-srp-03.txt,
-       doc/protocol/draft-ietf-tls-srp-04.txt,
-       doc/protocol/draft-ietf-tls-srp-05.txt,
-       doc/protocol/draft-ietf-tls-srp-06.txt,
-       doc/protocol/draft-ietf-tls-srp-07.txt: Add.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.5.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/string_h.m4, gl/string_.h, lgl/Makefile.am,
-       lgl/m4/string_h.m4, lgl/string_.h: Update.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Reorder.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Don't ask for PSK if we don't have credentials for it.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: mention psk
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: (_gnutls_remove_unwanted_ciphersuites): Remove GNUTLS_KX_SRP_RSA or
-       GNUTLS_KX_SRP_DSS if there is no SRP credential.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: fix
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: fix
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Don't try to negotiate SRP kx if we don't have SRP
-       username/password.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Prefer PSK.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/serv.c: Modernize priorities.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: more
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Parse new MACs.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Prefer OpenPGP certs from client.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli-gaa.c: Generated.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Typo in last commit.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.gaa: Typo.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Fix --list.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_hash_int.c: Revert, not needed.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_hash_int.c: (_gnutls_hash_get_algo_len): Handle NULL MACs again, broken by last
-       commit.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Fix last commit.
-
-2007-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Support TLS 1.2 and AES 256.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.4.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: use static DH params if none or provided
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/anonself.c, tests/dhepskself.c, tests/resume.c,
-       tests/tlsia.c, tests/utils.c, tests/utils.h: Use static DH.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pskself.c: No dh here.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Reorder.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/sha2/.cvsignore: [no log message]
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, tests/Makefile.am: Add SHA-2 self test.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/sha2/Makefile.am, tests/sha2/key-ca.pem,
-       tests/sha2/key-subca.pem, tests/sha2/key-subsubca.pem,
-       tests/sha2/key-user.pem, tests/sha2/sha2: Add.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c: Set pathlength to -1 (not present) by default,
-       for templates.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-gaa.c: Generated.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c, src/certtool.gaa: Support --hash SHA-256/384/512.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_hash_int.c, lib/gnutls_int.h,
-       lib/x509/common.h, lib/x509/dn.c, lib/x509/x509.h: Support
-       (RSA-)SHA-256/384/512.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/gc-libgcrypt.c, lgl/gc.h: Update.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: (GNUTLS_SIGN_ALG_LOOP): Don't match unknown algorithms to GOST.
-       Affects gnutls_sign_algorithm_get_name, and
-       _gnutls_x509_sign_to_oid.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in: Enum types for SHA-256/384/512.
-
-2007-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gnulib.mk, gl/m4/gnulib-comp.m4, gl/m4/string_h.m4,
-       gl/stdbool_.h, gl/string_.h, lgl/Makefile.am,
-       lgl/m4/gnulib-comp.m4, lgl/m4/string_h.m4, lgl/memmem.c,
-       lgl/string_.h: Update.
-
-2007-02-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-04  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gai_strerror.c, gl/gnulib.mk, gl/m4/gnulib-comp.m4,
-       gl/m4/socklen.m4, gl/m4/string_h.m4, gl/string_.h, lgl/Makefile.am,
-       lgl/m4/gnulib-comp.m4, lgl/m4/socklen.m4, lgl/m4/string_h.m4,
-       lgl/string_.h: Update.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/signatures.texi: Removed the wrong file, re-add this one.
-       Oops.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Remove bibliography.texi.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/bibliography.texi, doc/signatures.texi: Remove.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Don't use my-bib-macros.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/my-bib-macros.texi: use pxref.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/my-bib-macros.texi: Fix.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: proxy and certtool stuff
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Doc fix.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/bibliography.texi: reorder
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/bibliography.texi: Add rfc3820.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Mention RFC 3820.
-
-2007-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Improve extensions stuff.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.3.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem: Update.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Print times in UTC.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * tests/key-id/.cvsignore: [no log message]
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Reorder.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, tests/Makefile.am, tests/key-id/Makefile.am,
-       tests/key-id/README, tests/key-id/ca-gnutls-keyid.pem,
-       tests/key-id/ca-no-keyid.pem, tests/key-id/ca-weird-keyid.pem,
-       tests/key-id/key-ca.pem, tests/key-id/key-id,
-       tests/key-id/key-user.pem: Add key-id self test.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Don't print proxy info if there aren't any proxy
-       extension.
-
-2007-02-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4785.txt: Add.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Use the CA's SKI as the AKI value, if it is
-       present.  Reported by Dale Sedivec
-       <dale-keyword-gnutls.5670f1@codefu.org>.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: Doc fix.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Add.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c: Fix last commit.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/certtool-cfg.c, src/certtool-cfg.h, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa: Support
-       reading/generating proxy certificates in certtool.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/extensions.c,
-       lib/x509/extensions.h, lib/x509/x509.c: Add
-       gnutls_x509_crt_get_proxy.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: Fix last commit.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: (gnutls_x509_crt_set_proxy_dn): Permit NULL @name's.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention RFC 3820.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/x509_write.c: 
-       Add proxy certificate APIs.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c: Have RET for path lengths to mean -1.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * gl/.cvsignore, lgl/.cvsignore: [no log message]
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h: String.h from gnulib now makes sure memmem is
-       available.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * gl/strdup.h, lgl/memmem.h: Remove.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getaddrinfo.c, gl/gnulib.mk, gl/m4/absolute-header.m4,
-       gl/m4/extensions.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/strdup.m4, gl/m4/string_h.m4, gl/socket_.h, gl/strdup.c,
-       gl/string_.h, lgl/Makefile.am, lgl/m4/extensions.m4,
-       lgl/m4/gnulib-common.m4, lgl/m4/gnulib-comp.m4, lgl/m4/memmem.m4,
-       lgl/m4/stdint.m4, lgl/m4/string_h.m4, lgl/m4/unistd_h.m4,
-       lgl/m4/wchar.m4, lgl/printf-args.c, lgl/printf-args.h,
-       lgl/printf-parse.c, lgl/socket_.h, lgl/stdint_.h, lgl/string_.h,
-       lgl/vasnprintf.c, lgl/wchar_.h: Update.
-
-2007-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pathlen/.cvsignore: Add.
-
-2007-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, tests/Makefile.am, tests/pathlen/Makefile.am,
-       tests/pathlen/ca-no-pathlen.pem,
-       tests/pathlen/no-ca-or-pathlen.pem, tests/pathlen/pathlen: Test for
-       pathlen bug (and general certificate parsing).
-
-2007-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/extensions.c: (_gnutls_x509_ext_extract_basicConstraints): Make sure
-       pathLenConstraint is read, even if CA reading fails.
-
-2007-01-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-25  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutlsxx.h, lib/gnutlsxx.cpp: Add comment to
-       describe C++ compiler bug problem.
-
-2007-01-25  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutlsxx.h, lib/gnutlsxx.cpp: Fix C++ compiler bug
-       in a "better" way, tiny patch from Matthias Scheler
-       <tron@NetBSD.org>.
-
-2007-01-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-01-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c, lib/gnutls_extra_hooks.h,
-       libextra/gnutls_openpgp.c, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/privkey.c: Fix import of ASCII armored OpenPGP
-       keys, patch from ludovic.courtes@laas.fr (Ludovic Courtès).
-
-2007-01-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-rescorla-tls-extractor-00.txt: Add.
-
-2007-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2007-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.2.
-
-2007-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/gc-gnulib.c, lgl/m4/gnulib-comp.m4,
-       lgl/m4/unistd_h.m4, lgl/m4/wint_t.m4, lgl/unistd_.h: Update.
-
-2007-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/pubkey.c: Doc fix.
-
-2007-01-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/opencdk.h, libextra/opencdk/pubkey.c: (cdk_pubkey_to_sexp, cdk_seckey_to_sexp): New functions, from Mario
-       Lenz <mario.lenz@gmx.net>.
-
-2007-01-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2007-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutlsxx.cpp: Make it compile by commenting out call to
-       virtual method (possibly incorrect but I don't know what the
-       intention was).
-
-2007-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Don't use -mms-bitfields
-       --enable-runtime-pseudo-reloc.
-
-2007-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am: Fix objdir!=srcdir.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: (generate_pkcs12): Read more than one certificate, if there are more
-       available, and store them in the PKCS12 blob.  Suggested by Sascha
-       Ziemann <sascha.ziemann@secunet.com>.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore gnutls_extra_hooks.h.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Add.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Reorder lgl/ and gl/, to make sure lgl is built
-       before gl.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, includes/gnutls/x509.h,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/x509.c,
-       lib/x509/x509_write.c, src/certtool-cfg.c, src/certtool-cfg.h,
-       src/certtool.c: Support pathLenConstraint.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: libgnu.la depends on liblgnu.la, so don't
-       add it twice.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gnulib.mk, gl/m4/gnulib-cache.m4: Getaddrinfo
-       needs snprintf from ../lgl/, so make libgnu.la depend on liblgnu.la.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_extra.c: Need strverscmp.h.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls.vers: Don't export _E_*, they are only needed inside
-       libgnutls now.  Fix copyright years.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/Makefile.am, lib/auth_cert.c, lib/auth_dh_common.c,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/auth_srp_rsa.c, lib/gnutls_cert.c, lib/gnutls_extra_hooks.c,
-       lib/gnutls_extra_hooks.h, libextra/gnutls_extra.c: Cleanup gnutls vs
-       gnutls-extra integration, for OpenPGP certs.
-
-2007-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_extra.c: Replace libgcrypt version check with
-       strverscmp.  No need to duplicate prototype found in gnutls.h for
-       gnutls_check_version.
-
-2007-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/lib-link.m4,
-       lgl/gc-gnulib.c, lgl/gc-libgcrypt.c, lgl/m4/gc-arcfour.m4,
-       lgl/m4/gc-arctwo.m4, lgl/m4/gc-des.m4, lgl/m4/gc-hmac-md5.m4,
-       lgl/m4/gc-hmac-sha1.m4, lgl/m4/gc-md2.m4, lgl/m4/gc-md4.m4,
-       lgl/m4/gc-md5.m4, lgl/m4/gc-random.m4, lgl/m4/gc-rijndael.m4,
-       lgl/m4/gc-sha1.m4, lgl/m4/gnulib-common.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/lib-link.m4: Update.
-
-2007-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/lib-link.m4, lgl/Makefile.am, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/lib-link.m4: Update.
-
-2007-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2007-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2007-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Revert part of patch.
-
-2007-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, src/Makefile.am: Tiny patch from
-       ludovic.courtes@laas.fr (Ludovic Courtès).  * configure.in: Look for `gaa', issuing a warning with the URL if
-       not found.  * src/Makefile.am (*-gaa.c): Use `$(GAA)' instead of `gaa'.  Mark
-       `.gaa' files as being in `$(srcdir)', thereby allowing for
-       out-of-source-tree builds.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Don't dist mkinstalldirs, automake no longer copies
-       it.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.1.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_asn1_tab.c: Generate.
-
-2006-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.asn: Fix comment to make it parse correctly.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_sig.c: Fix signature verification for DSA signatures in
-       TLS 1.2, reported by ludovic.courtes@laas.fr (Ludovic Courtès).  (_gnutls_pkcs1_rsa_verify_sig): Rename to _gnutls_verify_sig, and
-       add new parameter SHA1POS to indicate where in hash_concat the SHA.1
-       hash is stored (for DSA).  (_gnutls_verify_sig_hdata): Pass proper SHA1POS.  (_gnutls_verify_sig_params): Likewise.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/manpages/Makefile.am, lib/Makefile.am,
-       lib/x509/Makefile.am, libextra/Makefile.am,
-       libextra/openpgp/Makefile.am: Tiny patch from
-       ludovic.courtes@laas.fr (Ludovic Courtès).  * doc/Makefile.am: Refer to `sort2.pl' as
-         `$(srcdir)/scripts/sort2.pl' instead of `scripts/sort2.pl'.  * doc/manpages/Makefile.am: Refer to `gdoc' as   `$(top_srcdir)/doc/scripts/gdoc' instead of `../scripts/gdoc'.  * doc/lib/Makefile.am: Likewise.  * doc/lib/x509/Makefile.am: Likewise.  * doc/libextra/Makefile.am: Likewise.  * doc/libextra/openpgp/Makefile.am: Likewise.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c: (_gnutls_gen_cert_server_cert_req): For TLS 1.2, generate conforming
-       cert requests (i.e., include a empty list of supported hashes).
-       Report and tiny patch from ludovic.courtes@laas.fr (Ludovic
-       Courtès).
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/userid/.cvsignore: [no log message]
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: (_oid2str): Mark UID as a CHOICE-field (i.e., DirectoryString).  (_gnutls_x509_oid_data2string): Handle ia5String in CHOICEs.  Fixes
-       problem reported by Max Kellermann <max@duempel.org>.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pkix_asn1_tab.c: Generated.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/pkix.asn: Encoded UID DN fields as DirectoryString (e.g.,
-       PrintableString), not as IA5String.  Add IA5String as a CHOICE for
-       DirectoryString, to deal with backwards compatibility if there are
-       IA5String UID fields out there that were generated by older
-       versions.  Reported by Max Kellermann <max@duempel.org>.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/userid/userid: Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add tests/userid/.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add userid/.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/userid/Makefile.am, tests/userid/userid.pem: Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: (generate_rdn_seq): Store subject DN instead of issuer DN in the
-       certificate authority list, to make sure server's send the proper
-       list of expected CAs to the client.  Reported by Max Kellermann
-       <max@duempel.org>.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: (gnutls_certificate_set_x509_crl): Initialize before use, reported
-       by Max Kellermann <max@duempel.org>.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, tests/Makefile.am, tests/certificate_set_x509_crl.c: 
-       Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-12-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/lib-link.m4, gl/strdup.h, lgl/m4/lib-link.m4,
-       lgl/m4/stdint.m4: Update.
-
-2006-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-srp-13.txt: Add.
-
-2006-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-santesson-tls-gssapi-01.txt: Add.
-
-2006-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-rescorla-tls-opaque-prf-input-00.txt,
-       doc/protocol/draft-rescorla-tls-suiteb-00.txt: Add.
-
-2006-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/de.po: Sync with TP.
-
-2006-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * m4/intl.m4, m4/intldir.m4, m4/lock.m4, m4/visibility.m4: Remove
-       (should have just been .cvsignore'd).
-
-2006-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * m4/.cvsignore: [no log message]
-
-2006-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * m4/intl.m4, m4/intldir.m4, m4/lock.m4, m4/visibility.m4: Add.
-
-2006-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2006-12-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-12-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: Doc fix.
-
-2006-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, lgl/Makefile.am: Update.
-
-2006-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Put in devel/ directory.  Disable doc generation.
-
-2006-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.7.0.
-
-2006-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, lgl/Makefile.am: Fix gnulib-tool bug.
-
-2006-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_priority.c: Attempt TLS 1.2 and TLS 1.1 too, by
-       default.
-
-2006-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-11-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gettext.h, lgl/Makefile.am, lgl/gettext.h,
-       lgl/m4/eoverflow.m4, lgl/m4/size_max.m4, lgl/m4/stdint.m4: Update.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * tests/anonself.c: Print TLS version too.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * tests/anonself.c: More debugging.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * tests/utils.c: Output more debug info.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/keyserver.c: Doc fix.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/opencdk.h: Doc fixes.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/kbnode.c, libextra/opencdk/keydb.c,
-       libextra/opencdk/keygen.c, libextra/opencdk/keylist.c,
-       libextra/opencdk/sign.c: Doc fix.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/kbnode.c, libextra/opencdk/keygen.c,
-       libextra/opencdk/sign.c: Doc fix.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/keydb.c: Doc fix.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_ia.c: Use new internal PRF API.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_sig.c: To use NULL
-       DigestInfo.AlgorithmsIdentifier.parameters or not, that is the
-       question.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Move AM_CONDITIONAL outside of 'if gcc' clause,
-       fixes problem reported by "Michael C. Vergallen"
-       <mvergall@telenet.be>.
-
-2006-11-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c, lib/gnutls_constate.c, lib/gnutls_handshake.c,
-       lib/gnutls_kx.c, lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/gnutls_state.h: Client TLS 1.2 support.  Works against
-       www.mikestoolbox.org:4433.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Support "TLS1.2" as protocol name.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: (gnutls_protocol_t): Add GNUTLS_TLS1_2.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Support TLS 1.2.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getaddrinfo.c, gl/imaxtostr.c, gl/intprops.h,
-       gl/inttostr.c, gl/inttostr.h, gl/m4/absolute-header.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/inttostr.m4, gl/m4/longlong.m4,
-       gl/m4/stdint.m4, gl/m4/ulonglong.m4, gl/offtostr.c, gl/stdint_.h,
-       gl/uinttostr.c, gl/umaxtostr.c, lgl/m4/alloca.m4, lgl/m4/gettext.m4: 
-       Update.
-
-2006-11-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-11-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-housley-evidence-extns-01.txt: Add.
-
-2006-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Release do non-devel directory.
-
-2006-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.6.0.
-
-2006-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Fix copyright years.
-
-2006-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2006-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.5.5.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: (gnutls_record_recv): Fix docstring, suggested by Tim Kosse
-       <tim.kosse@filezilla-project.org>.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-sasl-rfc2831bis-11.txt: Remove, oops wrong
-       project.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-sasl-rfc2831bis-11.txt: Add.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/Makefile.am: Remove.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gettext.h, gl/m4/gnulib-comp.m4,
-       gl/m4/lib-link.m4, gl/m4/longlong.m4, gl/stdint_.h,
-       lgl/Makefile.am, lgl/gettext.h, lgl/m4/gnulib-comp.m4,
-       lgl/m4/lib-link.m4, lgl/m4/longlong.m4, lgl/stdint_.h: Update.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/chain1-expect.log,
-       tests/rsa-md5-collision/chain2-expect.log: Remove.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/rsa-md5-collision: Remove -x.
-
-2006-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/rsa-md5-collision: Make it work under
-       mingw32.
-
-2006-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions (done incorrectly in the 1.5.4
-       release).
-
-2006-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-x509-info.c: Fix cert_list_size type to match API,
-       reported by Tim Kosse <tim.kosse@filezilla-project.org>.
-
-2006-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-hajjeh-tls-identity-protection-00.txt: Add.
-
-2006-11-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-hajjeh-tls-sign-02.txt: Add.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.5.4.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/strverscmp.m4, lgl/strverscmp.c, lgl/strverscmp.h,
-       lib/gnutls_global.c: Use strverscmp.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c: Typo.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/manpages/Makefile.am: Add.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_ia.c: Doc fix.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: More errno discussion regarding push/pull
-       functions.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c: Don't use errno to avoid thread-safety
-       issues.
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c: Convert to EINTR/EAGAIN errno under Windows,
-       using WSAGetLastError().
-
-2006-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_buffers.c,
-       lib/gnutls_int.h: Add new APIs to set errno for push/pull functions,
-       suggested by tim.kosse@filezilla-project.org.
-
-2006-11-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, libextra/Makefile.am: Remove SOVERSION (see
-       configure.in).
-
-2006-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Set SOVERSION here.
-
-2006-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/.cvsignore: [no log message]
-
-2006-11-05  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/openpgp.h: (gnutls_openpgp_key_get_pk_algorithm): Fix prototype.
-
-2006-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/printf-parse.c: Update.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/pgp.c: (gnutls_openpgp_key_get_fingerprint): Doc fix.  Reported by
-       ludovic.courtes@laas.fr (Ludovic Courtès).
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/pgp.c: (gnutls_openpgp_key_get_name): Make SIZEOF_BUF contain
-       actual/required buffer size on return.  Suggested by
-       ludovic.courtes@laas.fr (Ludovic Courtès).
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/openpgp.h, libextra/openpgp/pgp.c,
-       libextra/openpgp/privkey.c: Fix return types.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_v2_compat.c: Have SSLv2 ClientHello's for unknown
-       versions negotiate the highest version we support, instead of the
-       lowest.  Reported by Pasi.Eronen@nokia.com.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Simplify ssize_t test.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-cert-select.c: Remove duplicate #include
-       <sys/stat.h>.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/defines.h: Simplify #include's using gnulib
-       modules.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getaddrinfo.c, gl/getdelim.c, gl/getline.c, gl/gettext.h,
-       gl/m4/lib-link.m4, gl/readline.c, lgl/Makefile.am, lgl/arcfour.c,
-       lgl/arctwo.c, lgl/des.c, lgl/gc-gnulib.c, lgl/gc-libgcrypt.c,
-       lgl/gc-pbkdf2-sha1.c, lgl/gettext.h, lgl/hmac-md5.c,
-       lgl/hmac-sha1.c, lgl/m4/codeset.m4, lgl/m4/gettext.m4,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4, lgl/m4/intl.m4,
-       lgl/m4/intldir.m4, lgl/m4/intmax.m4, lgl/m4/inttypes-h.m4,
-       lgl/m4/inttypes-pri.m4, lgl/m4/lib-link.m4, lgl/m4/lock.m4,
-       lgl/m4/signed.m4, lgl/m4/sys_stat_h.m4, lgl/m4/unistd_h.m4,
-       lgl/m4/vasnprintf.m4, lgl/md2.c, lgl/md4.c, lgl/memxor.c,
-       lgl/read-file.c, lgl/rijndael-alg-fst.c, lgl/rijndael-api-fst.c,
-       lgl/stat_.h: Update.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/m4/gnulib-comp.m4, lgl/m4/sys_stat_h.m4, lgl/stat_.h: Update.
-
-2006-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.5.3.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/.cvsignore: [no log message]
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/Makefile.am: Fix -I's.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/Makefile.am: Dist more.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/rsa-md5-collision/README: Add.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, libextra/Makefile.am, src/Makefile.am,
-       tests/Makefile.am: Change lgpl/ library name.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/m4/gnulib-cache.m4: Change lgpl/ library name
-       to liblgnu, to avoid weird libtool errors.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/Makefile.am, lgl/stdint_.h: Update.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getaddrinfo.c, gl/imaxtostr.c, gl/intprops.h,
-       gl/inttostr.c, gl/inttostr.h, gl/m4/absolute-header.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/inttostr.m4, gl/m4/longlong.m4,
-       gl/m4/stdint.m4, gl/m4/ulonglong.m4, gl/offtostr.c, gl/stdint_.h,
-       gl/uinttostr.c, gl/umaxtostr.c: Add.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/encrypt.c, libextra/opencdk/opencdk.h: Update to
-       0.5.11.
-
-2006-10-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Be specific about SSLv2 security problems.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/rsa-md5-collision: Fix distcheck.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/Makefile.am: Dist more.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12-decode/.cvsignore: [no log message]
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add tests.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/pkcs12-decode/Makefile.am,
-       tests/pkcs12-decode/pkcs12, tests/pkcs12_neon: Move pkcs12 tests to
-       pkcs12-decode/.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs8-decode/pkcs8: More debugging info.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs8-decode/.cvsignore: [no log message]
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/enc2pkcs8.pem, tests/encpkcs8.pem,
-       tests/pkcs8, tests/pkcs8-decode/Makefile.am,
-       tests/pkcs8-decode/enc2pkcs8.pem, tests/pkcs8-decode/encpkcs8.pem,
-       tests/pkcs8-decode/pkcs8, tests/pkcs8-decode/unencpkcs8.pem,
-       tests/unencpkcs8.pem: Move pkcs8 tests to pkcs8-decode/.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Move pkcs1-pad stuff to pkcs1-padding/.  Add
-       rsa-md5-collision/.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-padding/.cvsignore,
-       tests/rsa-md5-collision/.cvsignore: [no log message]
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/rsa-md5-collision/Makefile.am,
-       tests/rsa-md5-collision/chain1-expect.log,
-       tests/rsa-md5-collision/chain2-expect.log,
-       tests/rsa-md5-collision/mbox,
-       tests/rsa-md5-collision/rsa-md5-collision: Add.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-padding/Makefile.am, tests/pkcs1-padding/pkcs1-pad,
-       tests/pkcs1-padding/pkcs1-pad-broken.pem,
-       tests/pkcs1-padding/pkcs1-pad-broken2.pem,
-       tests/pkcs1-padding/pkcs1-pad-broken3.pem,
-       tests/pkcs1-padding/pkcs1-pad-ok.pem,
-       tests/pkcs1-padding/pkcs1-pad-ok2.pem: Moved from ../.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad, tests/pkcs1-pad-broken.pem,
-       tests/pkcs1-pad-broken2.pem, tests/pkcs1-pad-broken3.pem,
-       tests/pkcs1-pad-ok.pem, tests/pkcs1-pad-ok2.pem: Move to separate
-       directory.
-
-2006-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-null-03.txt,
-       doc/protocol/draft-ietf-tls-rfc4346-bis-02.txt: Add.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/.cvsignore: [no log message]
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Need lgpl gnulib.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Add lgpl too.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Reorder libgnu.la's.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/Makefile.am: Need lgpl/ gnulib in CFLAGS.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/alloca.h, lgl/stdint.h: Remove files that shouldn't have been
-       committed.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4: Fix avoid modules.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/alloca_.h, gl/asnprintf.c, gl/m4/alloca.m4,
-       gl/m4/eoverflow.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/intmax_t.m4, gl/m4/inttypes_h.m4, gl/m4/longdouble.m4,
-       gl/m4/longlong.m4, gl/m4/signed.m4, gl/m4/size_max.m4,
-       gl/m4/snprintf.m4, gl/m4/stdint_h.m4, gl/m4/vasnprintf.m4,
-       gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4,
-       gl/printf-args.c, gl/printf-args.h, gl/printf-parse.c,
-       gl/printf-parse.h, gl/size_max.h, gl/snprintf.c, gl/snprintf.h,
-       gl/vasnprintf.c, gl/vasnprintf.h, gl/xsize.h: Avoid duplicate
-       modules.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Avoid
-       duplicate modules.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Need gnulib lgl/ in CFLAGS and LIBADD.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/Makefile.am: Need gnulib lgl/ in CFLAGS.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am: Move modules from gl/ to lgl/.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, lgl/Makefile.am,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4: Move modules from gl/
-       to lgl/.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/absolute-header.m4, gl/m4/codeset.m4,
-       gl/m4/gettext.m4, gl/m4/glibc2.m4, gl/m4/glibc21.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/iconv.m4,
-       gl/m4/intdiv0.m4, gl/m4/intmax.m4, gl/m4/inttypes-h.m4,
-       gl/m4/inttypes-pri.m4, gl/m4/lcmessage.m4, gl/m4/lock.m4,
-       gl/m4/memmove.m4, gl/m4/minmax.m4, gl/m4/nls.m4, gl/m4/po.m4,
-       gl/m4/printf-posix.m4, gl/m4/progtest.m4, gl/m4/read-file.m4,
-       gl/m4/stdint.m4, gl/m4/uintmax_t.m4, gl/m4/ulonglong.m4,
-       gl/m4/visibility.m4, gl/memmove.c, gl/minmax.h, gl/read-file.c,
-       gl/read-file.h, gl/stdint_.h, lgl/Makefile.am, lgl/alloca.h,
-       lgl/alloca_.h, lgl/asnprintf.c, lgl/gettext.h, lgl/m4/alloca.m4,
-       lgl/m4/codeset.m4, lgl/m4/eoverflow.m4, lgl/m4/gettext.m4,
-       lgl/m4/glibc2.m4, lgl/m4/glibc21.m4, lgl/m4/gnulib-cache.m4,
-       lgl/m4/gnulib-comp.m4, lgl/m4/iconv.m4, lgl/m4/intdiv0.m4,
-       lgl/m4/intmax.m4, lgl/m4/intmax_t.m4, lgl/m4/inttypes-h.m4,
-       lgl/m4/inttypes-pri.m4, lgl/m4/inttypes_h.m4, lgl/m4/lcmessage.m4,
-       lgl/m4/lock.m4, lgl/m4/longdouble.m4, lgl/m4/memmove.m4,
-       lgl/m4/nls.m4, lgl/m4/po.m4, lgl/m4/printf-posix.m4,
-       lgl/m4/progtest.m4, lgl/m4/read-file.m4, lgl/m4/signed.m4,
-       lgl/m4/size_max.m4, lgl/m4/snprintf.m4, lgl/m4/socklen.m4,
-       lgl/m4/sockpfaf.m4, lgl/m4/stdint_h.m4, lgl/m4/sys_socket_h.m4,
-       lgl/m4/uintmax_t.m4, lgl/m4/vasnprintf.m4, lgl/m4/visibility.m4,
-       lgl/m4/wchar_t.m4, lgl/m4/wint_t.m4, lgl/m4/xsize.m4,
-       lgl/memmove.c, lgl/printf-args.c, lgl/printf-args.h,
-       lgl/printf-parse.c, lgl/printf-parse.h, lgl/read-file.c,
-       lgl/read-file.h, lgl/size_max.h, lgl/snprintf.c, lgl/snprintf.h,
-       lgl/socket_.h, lgl/stdint.h, lgl/vasnprintf.c, lgl/vasnprintf.h,
-       lgl/xsize.h: Move modules from gl/ to lgl/.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * lgl/.cvsignore: [no log message]
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Build lgl/ too.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/arcfour.c, gl/arcfour.h, gl/arctwo.c,
-       gl/arctwo.h, gl/des.c, gl/des.h, gl/gc-gnulib.c, gl/gc-libgcrypt.c,
-       gl/gc-pbkdf2-sha1.c, gl/gc.h, gl/hmac-md5.c, gl/hmac-sha1.c,
-       gl/hmac.h, gl/m4/arcfour.m4, gl/m4/arctwo.m4, gl/m4/des.m4,
-       gl/m4/gc-arcfour.m4, gl/m4/gc-arctwo.m4, gl/m4/gc-des.m4,
-       gl/m4/gc-hmac-md5.m4, gl/m4/gc-hmac-sha1.m4, gl/m4/gc-md2.m4,
-       gl/m4/gc-md4.m4, gl/m4/gc-md5.m4, gl/m4/gc-pbkdf2-sha1.m4,
-       gl/m4/gc-random.m4, gl/m4/gc-rijndael.m4, gl/m4/gc-sha1.m4,
-       gl/m4/gc.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/hmac-md5.m4, gl/m4/hmac-sha1.m4, gl/m4/md2.m4, gl/m4/md4.m4,
-       gl/m4/md5.m4, gl/m4/memxor.m4, gl/m4/rijndael.m4, gl/m4/sha1.m4,
-       gl/md2.c, gl/md2.h, gl/md4.c, gl/md4.h, gl/md5.c, gl/md5.h,
-       gl/memxor.c, gl/memxor.h, gl/rijndael-alg-fst.c,
-       gl/rijndael-alg-fst.h, gl/rijndael-api-fst.c,
-       gl/rijndael-api-fst.h, gl/sha1.c, gl/sha1.h, lgl/Makefile.am,
-       lgl/arcfour.c, lgl/arcfour.h, lgl/arctwo.c, lgl/arctwo.h,
-       lgl/des.c, lgl/des.h, lgl/gc-gnulib.c, lgl/gc-libgcrypt.c,
-       lgl/gc-pbkdf2-sha1.c, lgl/gc.h, lgl/hmac-md5.c, lgl/hmac-sha1.c,
-       lgl/hmac.h, lgl/m4/absolute-header.m4, lgl/m4/arcfour.m4,
-       lgl/m4/arctwo.m4, lgl/m4/des.m4, lgl/m4/gc-arcfour.m4,
-       lgl/m4/gc-arctwo.m4, lgl/m4/gc-des.m4, lgl/m4/gc-hmac-md5.m4,
-       lgl/m4/gc-hmac-sha1.m4, lgl/m4/gc-md2.m4, lgl/m4/gc-md4.m4,
-       lgl/m4/gc-md5.m4, lgl/m4/gc-pbkdf2-sha1.m4, lgl/m4/gc-random.m4,
-       lgl/m4/gc-rijndael.m4, lgl/m4/gc-sha1.m4, lgl/m4/gc.m4,
-       lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4, lgl/m4/hmac-md5.m4,
-       lgl/m4/hmac-sha1.m4, lgl/m4/lib-ld.m4, lgl/m4/lib-link.m4,
-       lgl/m4/lib-prefix.m4, lgl/m4/longlong.m4, lgl/m4/md2.m4,
-       lgl/m4/md4.m4, lgl/m4/md5.m4, lgl/m4/memxor.m4, lgl/m4/minmax.m4,
-       lgl/m4/rijndael.m4, lgl/m4/sha1.m4, lgl/m4/stdint.m4,
-       lgl/m4/ulonglong.m4, lgl/md2.c, lgl/md2.h, lgl/md4.c, lgl/md4.h,
-       lgl/md5.c, lgl/md5.h, lgl/memxor.c, lgl/memxor.h, lgl/minmax.h,
-       lgl/rijndael-alg-fst.c, lgl/rijndael-alg-fst.h,
-       lgl/rijndael-api-fst.c, lgl/rijndael-api-fst.h, lgl/sha1.c,
-       lgl/sha1.h, lgl/stdint_.h: Move modules from gl/ to lgl/.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am, lib/x509/Makefile.am: Use gnulib in
-       lgl/ instead of gl/.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/alloca_.h, gl/arcfour.c,
-       gl/arcfour.h, gl/arctwo.c, gl/arctwo.h, gl/asnprintf.c, gl/des.c,
-       gl/des.h, gl/dummy.c, gl/gai_strerror.c, gl/gc-gnulib.c,
-       gl/gc-libgcrypt.c, gl/gc-pbkdf2-sha1.c, gl/gc.h, gl/getaddrinfo.c,
-       gl/getaddrinfo.h, gl/getdelim.c, gl/getdelim.h, gl/getline.c,
-       gl/getline.h, gl/getpass.c, gl/getpass.h, gl/gettext.h,
-       gl/hmac-md5.c, gl/hmac-sha1.c, gl/hmac.h, gl/inet_ntop.c,
-       gl/inet_ntop.h, gl/inet_pton.c, gl/inet_pton.h,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/memmem.m4,
-       gl/md2.c, gl/md2.h, gl/md4.c, gl/md4.h, gl/md5.c, gl/md5.h,
-       gl/memmem.c, gl/memmem.h, gl/memxor.c, gl/memxor.h, gl/minmax.h,
-       gl/printf-args.c, gl/printf-args.h, gl/printf-parse.c,
-       gl/printf-parse.h, gl/read-file.c, gl/read-file.h, gl/readline.c,
-       gl/readline.h, gl/rijndael-alg-fst.c, gl/rijndael-alg-fst.h,
-       gl/rijndael-api-fst.c, gl/rijndael-api-fst.h, gl/sha1.c, gl/sha1.h,
-       gl/size_max.h, gl/snprintf.c, gl/snprintf.h, gl/socket_.h,
-       gl/stdbool_.h, gl/stdint_.h, gl/strdup.c, gl/strdup.h,
-       gl/vasnprintf.c, gl/vasnprintf.h, gl/xsize.h, lgl/Makefile.am,
-       lgl/dummy.c, lgl/m4/gnulib-cache.m4, lgl/m4/gnulib-comp.m4,
-       lgl/m4/gnulib-tool.m4, lgl/m4/memmem.m4, lgl/memmem.c,
-       lgl/memmem.h, lib/Makefile.am: Add lgl/ for LGPLed gnulib modules
-       (for lib/) and use gl/ for GPL gnulib modules, for use in src/ etc.
-
-2006-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gettext.h, gl/m4/alloca.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/lock.m4, gl/m4/longlong.m4,
-       gl/m4/size_max.m4, gl/m4/stdint.m4, gl/m4/ulonglong.m4,
-       gl/m4/vasnprintf.m4, gl/printf-args.c, gl/printf-args.h,
-       gl/printf-parse.c, gl/stdint_.h, gl/strdup.c, gl/vasnprintf.c: 
-       Update.
-
-2006-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/libtasn1.h: Update to 0.3.7.
-
-2006-10-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-11  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/keylist.c, libextra/opencdk/opencdk.h: Bump to
-       0.5.10.
-
-2006-10-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4680.txt, doc/protocol/rfc4681.txt: Add.
-
-2006-10-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-null-02.txt: Add.
-
-2006-10-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, libextra/Makefile.am: Fix .def filename.
-
-2006-10-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-10-03  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-10-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.5.2.
-
-2006-10-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-10-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-10-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getpass.c, gl/m4/getpass.m4, gl/m4/intmax.m4: 
-       Update.
-
-2006-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-null-01.txt: Add.
-
-2006-09-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-26  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openpgp.c: (kbx_data_to_keyring): Fix off-by-one error in call to malloc,
-       reported by "Adam Langley" <agl@imperialviolet.org>.
-
-2006-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Use library shared version 13 instead of 14,
-       incrementing it was a mistake since no API/ABI changes happened.
-       Reported by Andreas Metzler <ametzler@downhill.at.eu.org>.
-
-2006-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Improve the C++ test, to handle CXX env. variables,
-       suggested by Andreas Metzler <ametzler@downhill.at.eu.org>.
-
-2006-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Use version script for libgnutlsxx too.
-
-2006-09-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/libgnutlsxx.vers: Add.
-
-2006-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c, gl/m4/gnulib-comp.m4, gl/m4/lock.m4,
-       gl/m4/signed.m4, gl/m4/sockpfaf.m4, gl/md4.c, gl/rijndael-api-fst.c: 
-       Update.
-
-2006-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.c: (gnutls_x509_crt_init): Don't set output parameter on failures,
-       reported by Alon Bar-Lev <alon.barlev@gmail.com>.  Also clean up
-       logic.
-
-2006-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2006-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl.c: Fix prototype of gnutls_x509_crl_get_issuer_dn to
-       match x509.h, for IRIX ido cc builds, reported by Georg Schwarz
-       <georg.schwarz@freenet.de>.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix gendocs.sh path.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.5.1.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/gpl.diff: Rename.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/doc/gpl.texi.diff, gl/override/doc/lgpl.texi.diff,
-       gl/override/gpl.diff, gl/override/gpl.texi.diff,
-       gl/override/lgpl.diff, gl/override/lgpl.texi.diff: Rename.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/override/lgpl.diff: Rename.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/fdl.texi, doc/gpl.texi, doc/lgpl.texi, gl/Makefile.am,
-       gl/asnprintf.c, gl/gai_strerror.c, gl/getaddrinfo.c, gl/getpass.c,
-       gl/inet_ntop.c, gl/inet_pton.c, gl/m4/gettext.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/inttypes-h.m4,
-       gl/m4/inttypes-pri.m4, gl/m4/lib-link.m4, gl/m4/stdint.m4,
-       gl/md5.c, gl/memmove.c, gl/override/gpl.texi.diff,
-       gl/override/lgpl.texi.diff, gl/printf-args.c, gl/printf-parse.c,
-       gl/sha1.c, gl/snprintf.c, gl/stdint_.h, gl/strdup.c,
-       gl/vasnprintf.c: Update.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Dist gpl.texi and lgpl.texi.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add LGPL and GPL texts.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad: Simplify grep expression, to work around debug
-       messages from wine.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: (generate_self_signed): Load key, if generate_certificate() didn't
-       load or generate it, typically because it used a certificate
-       request.  Reported by Sascha Ziemann <sascha.ziemann@secunet.com>.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Revert last patch.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/tests.c: (test_session_resume2): When comparing session id's, also compare
-       that the lengths are the same.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2006-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/tests.c: (test_session_resume2): If session-id is NULL, resumption isn't
-       supported.  Tiny patch from Kataja Kai <kai.kataja@op.fi>.
-
-2006-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Dist more.
-
-2006-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad: Test another cert.
-
-2006-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad-broken3.pem: Add forged cert, from Ralf-Philipp
-       Weinmann.
-
-2006-09-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Gnulib seems to require autoconf 2.60?  Bump it.
-
-2006-09-18  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/keydb.c: (keydb_idx_search): Don't return CDK_EOF if key is found at offset
-       0.  Suggested by "Adam Langley" <alangley@gmail.com>.
-
-2006-09-18  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Remove (already there).
-
-2006-09-18  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2006-09-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-serv-pgp.c: Fix typo.  Tiny patch from "Adam
-       Langley" <agl@imperialviolet.org>.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad: Fix.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify.c: Permit empty parameters field too, found after
-       adding self tests.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad: Fix exit code.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad-broken2.pem, tests/pkcs1-pad-ok2.pem: Add, from
-       Eric Young in
-       <http://permalink.gmane.org/gmane.comp.encryption.general/9185>.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad: Add more tests.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add pkcs1-pad test.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad-broken.pem, tests/pkcs1-pad-ok.pem: Add, from
-       Yutaka OIWA <y.oiwa@aist.go.jp>.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs1-pad: Add.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify.c: Fix asn1_read_value() call to fix crash,
-       reported by Andreas Metzler <ametzler@downhill.at.eu.org>.
-
-2006-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pk.c: Add 'break' to make logic easier to follow.
-
-2006-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pk.c: Revert part of patch, logging is only enabled in
-       debug mode, which isn't recommended for real use.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify.c: Make sure the digestAlgorithm.parameters field
-       is empty, which it has to be for the hashes we support.  Otherwise,
-       the field can encode "garbage" that might be used to make the
-       signature be a perfect cube, similar (but not identical) to
-       Bleichenbacher's Crypto 06 rump session attack.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pk.c: Don't return different errors depending on
-       content of decrypted PKCS#1 token, to avoid Bleichenbacher's
-       Crypto'98 attack, suggested by Werner Koch <wk@gnupg.org>.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2006-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client-srp.c: Use GNUTLS_SHUT_RDWR, tiny patch
-       from "Robert Millan [ackstorm]" <rmillan@ackstorm.es>.
-
-2006-08-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-11.txt: Add.
-
-2006-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-08-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getaddrinfo.c, gl/m4/arcfour.m4,
-       gl/m4/arctwo.m4, gl/m4/codeset.m4, gl/m4/des.m4,
-       gl/m4/gc-pbkdf2-sha1.m4, gl/m4/gc.m4, gl/m4/getdelim.m4,
-       gl/m4/getline.m4, gl/m4/getpass.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/hmac-md5.m4, gl/m4/hmac-sha1.m4,
-       gl/m4/intmax_t.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes_h.m4,
-       gl/m4/lock.m4, gl/m4/longlong.m4, gl/m4/md2.m4, gl/m4/md4.m4,
-       gl/m4/md5.m4, gl/m4/memxor.m4, gl/m4/read-file.m4,
-       gl/m4/readline.m4, gl/m4/rijndael.m4, gl/m4/sha1.m4,
-       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/strdup.m4,
-       gl/override/doc/gendocs_template, gl/stdint_.h: Update.
-
-2006-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2006-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/examples/tcp.c: Include netinet/in.h
-       for FreeBSD, reported by Roman Bogorodskiy <novel@FreeBSD.org>.
-
-2006-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2006-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: (generate_certificate): Load private key when --load-request is
-       used, based on report from Sascha Ziemann
-       <sascha.ziemann@secunet.com>.
-
-2006-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509_write.c: (gnutls_x509_crt_sign2): Check to see if ISSUER_KEY is NULL before
-       continuing, based on report from Sascha Ziemann
-       <sascha.ziemann@secunet.com>.
-
-2006-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Map select to _win_select on Windows hosts.
-
-2006-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Need select.c in cli.c and serv.c.
-
-2006-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/select.c: Add, moved from cli.c, originally from plibc, see
-
-       <http://plibc.cvs.sourceforge.net/plibc/plibc/src/select.c?view=markup>.
-
-2006-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Move _win_select to select.c.
-
-2006-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Make select() work on Windows, copying code from plibc,
-       see
-
-       <http://plibc.cvs.sourceforge.net/plibc/plibc/src/select.c?view=markup>.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Mark with XXX.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix release target.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.5.0.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Add (XXX).
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, libextra/Makefile.am: Install *.def to bin/
-       directory.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, libextra/Makefile.am: Create *.def
-       files for libraries, on mingw.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gc.m4, gl/m4/getaddrinfo.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4,
-       gl/m4/memxor.m4, gl/m4/restrict.m4, gl/snprintf.c: Update.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Use int/void* macros to avoid warnings,
-       suggested by Andreas Metzler <ametzler@downhill.at.eu.org>.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_buffers.c: Remove.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Move GNUTLS_POINTER_TO_INT here.  Add
-       GNUTLS_INT_TO_POINTER.  Based on glib macros, and suggestions from
-       Andreas Metzler <ametzler@downhill.at.eu.org>.
-
-2006-08-13  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add void*, for GNUTLS_POINTER_TO_INT_CAST macros.
-
-2006-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: (_gnutls_x509_oid2mac_algorithm): Don't crash trying to strcmp the
-       NULL OID value in the hash_algorithms array, which happens when the
-       input OID doesn't match our OIDs for SHA1, MD5, MD2 or RIPEMD160.
-       Reported by satyakumar <satyam_kkd@hyd.hellosoft.com>.
-
-2006-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Don't overwrite CFLAGS.
-
-2006-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutlsxx.h: Make it compile.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/tls_test-gaa.c, src/tls_test-gaa.h: Update.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/tls_test.gaa: Use -V for --verbose.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c, src/crypt.c: Fix --version to conform to FSF
-       standards, to fix make distcheck.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/tls_test.c, src/tls_test.gaa: Support --version.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/psk.c, src/serv.c: Fix --version to conform to FSF
-       standards, to fix make distcheck.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix --without-included-libtasn1, reported by Daniel
-       Black <dragonheart@gentoo.org>.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4: Update.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/kbnode.c, libextra/opencdk/opencdk.h,
-       libextra/opencdk/stream.h: Update to 0.5.9.
-
-2006-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: add
-
-2006-08-03  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Fix libgcrypt link failure, reported by Brant
-       Gurganus, tiny patch by Daniel Black <dragonheart@gentoo.org>.
-
-2006-07-28  Simon Josefsson <simon@josefsson.org>
-
-       * gendocs.sh, gl/Makefile.am, gl/getaddrinfo.c, gl/getaddrinfo.h,
-       gl/gettext.h, gl/inet_ntop.h, gl/inet_pton.h, gl/m4/getline.m4,
-       gl/m4/gettext.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4, gl/m4/inttypes-h.m4,
-       gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4, gl/m4/isc-posix.m4,
-       gl/m4/lib-link.m4, gl/m4/lock.m4, gl/m4/netinet_in_h.m4,
-       gl/m4/nls.m4, gl/m4/onceonly_2_57.m4, gl/m4/po.m4, gl/m4/stdint.m4,
-       gl/m4/visibility.m4, gl/printf-args.c, gl/stdint_.h: Update.
-
-2006-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h: cert_type extension was updated to the IANA
-       assigned value
-
-2006-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h: cert_type extension was updated to the IANA
-       assigned value
-
-2006-07-13  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs.sh, gendocs.sh, gl/Makefile.am,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update.
-
-2006-07-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Revert.
-
-2006-07-13  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2006-07-13  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Retry handshake on non-fatal errors.
-
-2006-07-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix last commit.
-
-2006-07-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Dist arch/ images.
-
-2006-07-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Need -I's for arch/ images.
-
-2006-07-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Improve valgrind test.
-
-2006-07-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/absolute-header.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/onceonly_2_57.m4, gl/m4/stdint.m4: 
-       Update.
-
-2006-07-10  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Fix.
-
-2006-07-10  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2006-07-10  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix load of pgp_keyfile, reported by Mario Lenz.
-
-2006-07-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/.cvsignore: [no log message]
-
-2006-07-07  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getaddrinfo.c, gl/getaddrinfo.h,
-       gl/m4/absolute-header.m4, gl/m4/full-header-path.m4,
-       gl/m4/getpass.m4, gl/m4/gnulib-comp.m4, gl/m4/longlong.m4,
-       gl/m4/onceonly_2_57.m4, gl/m4/sockpfaf.m4, gl/m4/stdint.m4,
-       gl/m4/ulonglong.m4, gl/stdint_.h: Update.
-
-2006-07-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/bibliography.texi, doc/gnutls.texi: changed CRL rfc reference
-       from 2511 to 4211
-
-2006-07-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2006-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2006-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: added an extra error check.
-
-2006-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/common.c, src/serv.c: replaced USE_OPENPGP ifdefs
-       with ENABLE_OPENPGP.
-
-2006-06-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-funk-tls-inner-application-extension-03.txt: 
-       Add.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/.cvsignore: [no log message]
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * includes/Makefile.am: Only conditionally install gnutlsxx.h.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Build and dist ex-client-tlsia.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Dist gnutls-logo.png.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getaddrinfo.c, gl/m4/getaddrinfo.m4: Update.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getaddrinfo.c: Update.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getaddrinfo.c, gl/getaddrinfo.h,
-       gl/m4/getaddrinfo.m4, gl/m4/stdint.m4, gl/stdint_.h: Update.
-
-2006-06-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-srp-12.txt: Add.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc4346-bis-01.txt: Add.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Use GNU-style warnings.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Improve man output, from libtasn1.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix valgrind test.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Move around, to make $cross_compile work.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, tests/Makefile.am: Add --enable-valgrind-tests that
-       make it possible to enable/disable use of valgrind on self tests
-       specifically.  Defaults to enabled if valgrind is installed and we
-       aren't cross-compiling.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Fix.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Revert.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/minilzo/Makefile.am: Use libtool -no-install.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/minilzo/Makefile.am: Use -DLZO_HAVE_CONFIG_H, as
-       suggested by README.LZO.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/minilzo/Makefile.am, tests/Makefile.am: Work under mingw.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/gnutls_buffers.c: Avoid warnings when casting
-       void* to int.
-
-2006-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/libtasn1.h: Update.
-
-2006-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/stdint.m4, gl/stdint_.h: Update.
-
-2006-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2006-06-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.pc.in, libextra/gnutls-extra.pc.in: Add Libs.Private to
-       pkg-config files, from Andreas Metzler
-       <ametzler@downhill.at.eu.org>.
-
-2006-06-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getaddrinfo.c, gl/getaddrinfo.h, gl/m4/getaddrinfo.m4,
-       gl/socket_.h: Try new win32 hooks for getaddrinfo.
-
-2006-06-22  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Use AC_LIBTOOL_WIN32_DLL to make OBJDUMP/DLLTOOL
-       work under mingw.  Fix use of deprecated AM_PROG_LIBTOOL.
-
-2006-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2006-06-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/inet_pton.c: Update.
-
-2006-06-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/alloca_.h, gl/getaddrinfo.c, gl/inet_ntop.c,
-       gl/m4/getaddrinfo.m4, gl/m4/sockpfaf.m4, gl/m4/stdint.m4,
-       gl/read-file.c, gl/socket_.h, gl/stdint_.h: Update.
-
-2006-06-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Add -no-install.
-
-2006-06-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Look for gnutls.h in builddir.
-
-2006-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Need -I$builddir/gl for alloca.h when srcdir
-       != objdir.
-
-2006-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/Makefile.am: Need -I$builddir/gl for alloca.h
-       when srcdir != objdir.
-
-2006-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Need -I$builddir/gl for alloca.h when srcdir
-       != objdir.
-
-2006-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Need -I$builddir/gl for alloca.h when srcdir !=
-       objdir.
-
-2006-06-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Need -I$builddir/gl for alloca.h when srcdir !=
-       objdir.
-
-2006-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am: Update.
-
-2006-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/arpa_inet_.h, gl/inet_ntop.c, gl/inet_ntop.h,
-       gl/inet_pton.c, gl/inet_pton.h, gl/m4/arpa_inet_h.m4,
-       gl/m4/full-header-path.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4, gl/m4/inet_pton.m4,
-       gl/m4/size_max.m4, gl/m4/stdint.m4, gl/read-file.c, gl/size_max.h,
-       gl/stdint_.h: Update.
-
-2006-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/.cvsignore: [no log message]
-
-2006-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-badra-hajjeh-mtls-01.txt: Add
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ctr-01.txt: Add.
-
-2006-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2006-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: fixed bug
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Disable tests that use fork if the host doesn't
-       have fork.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Test for fork.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix LDFLAGS.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Use LDFLAGS for --enable-runtime-pseudo-reloc, to
-       avoid warnings.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/anonself.c, tests/dhepskself.c, tests/pskself.c,
-       tests/resume.c, tests/tlsia.c: Need config.h.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Workaround hard-wiring of gcrypt test in gnulib.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h: Fix prototype.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/strfile.h: Remove.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, lib/gnutls_x509.c,
-       libextra/gnutls_openpgp.c: Use read_binary_file from gnulib instead
-       of strfile stuff, to fix problem with binary files on mingw.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * tests/set_pkcs12_cred.c: Use utils stuff.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Initialize winsock, for mingw.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add HAVE_WINSOCK.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-alert.c, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client-tlsia.c, doc/examples/ex-client1.c,
-       doc/examples/ex-client2.c, doc/examples/ex-crq.c,
-       doc/examples/ex-pkcs12.c, doc/examples/ex-rfc2818.c,
-       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
-       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c,
-       doc/examples/tcp.c: Include config.h, don't include netinet/in.h
-       (for mingw).
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Need to use AC_LINK_IFELSE, for
-       -Wl,--enable-runtime-pseudo-reloc.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Simplify.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix typo.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Set -mms-bitfields -Wl,--enable-runtime-pseudo-reloc
-       if supported.  The former is to produce MSVS-compatible DLLs.  The
-       second is needed to link libgnutls-extra at all (only due to
-       _gnutls_compression_algorithms, fix it another way?).
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am: Update.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * gl/arpa_inet_.h, gl/inet_pton.c: Update.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo.
-
-2006-06-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add all the LZO tests.
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * po/sv.po: Sync with TP.
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: AC_PROG_CXX must be invoked unconditionally, for
-       libtool.  (argh!)
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Fix last commit.
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Make C++ stuff conditioned on ENABLE_CXX.
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add --disable-cxx, to make it possibly to disable
-       the C++ stuff.  Will also automatically disable it if there is no
-       C++ compiler.
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Use gnulib, for portability.
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.h: Don't include inet_ntop.h, use arpa/inet.h
-       unconditonially.
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/arpa_inet_h.m4: Update.
-
-2006-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/arpa_inet_.h, gl/inet_ntop.c, gl/inet_ntop.h,
-       gl/inet_pton.c, gl/m4/arpa_inet_h.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4: Try new arpa-inet module,
-       for mingw.
-
-2006-06-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove mingw32 hook to get -lwsock32, the
-       getaddrinfo gnulib module links with -lws2_32 which is the more
-       appropriate library to use (winsock.h goes with wsock32.lib and
-       winsock2.h goes with ws2_32, of which the latter is backwards
-       compatible and available since Windows 3.11 or so, I'm told).
-
-2006-06-14  Simon Josefsson <simon@josefsson.org>
-
-       * tests/certder.c: fix
-
-2006-06-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gc-gnulib.c, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/read-file.m4, gl/read-file.c,
-       gl/read-file.h: Update.
-
-2006-06-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump so version.
-
-2006-06-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Add gnutlsxx.h.
-
-2006-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getpass.c, gl/m4/stdbool.m4, gl/printf-args.c, gl/sha1.c,
-       gl/stdint_.h: Update.
-
-2006-06-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-10.txt: Add.
-
-2006-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/Makefile.am,
-       includes/gnutls/gnutlsxx.h, lib/Makefile.am, lib/gnutls_db.c,
-       lib/gnutlsxx.cpp: Added a preliminary C++ interface.
-
-2006-06-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-housley-tls-authz-extns-06.txt: Add.
-
-2006-05-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-housley-tls-authz-extns-05.txt: Add.
-
-2006-05-23  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/sv.po: Sync with TP.
-
-2006-05-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/certtool.1: Typo, from debian #368323.
-
-2006-05-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-srp-11.txt: Add.
-
-2006-05-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4507.txt: Add.
-
-2006-05-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.4.0.
-
-2006-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-09.txt: Add.
-
-2006-05-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c: Remove duplicated #include.
-
-2006-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c, src/tls_test.c: Don't use AI_NUMERICSERV, it doesn't
-       exist on most platforms.
-
-2006-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c: Need getaddrinfo.h.
-
-2006-05-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gai_strerror.c, gl/getaddrinfo.c,
-       gl/getaddrinfo.h, gl/m4/getaddrinfo.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/strdup.m4, gl/strdup.c, gl/strdup.h: Add
-       getaddrinfo.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf: Remove.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: No supression file.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_ia.c: Remove junk.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_inner_application.c: Fix self tests.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_ia.c: Indent.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Improve valgrind stuff.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * .cvsignore: [no log message]
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * config.rpath: Not needed, generated by autopoint.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * config.rpath, gl/Makefile.am, gl/des.c, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/md4.c, gl/sha1.c, gl/stdint_.h: Update.
-
-2006-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: updated to reflect the new openpgp draft.
-
-2006-05-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Check for -Wno-pointer-sign, taken from Werner's
-       ksba.
-
-2006-05-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/protocol/draft-santesson-tls-ume-07.txt: Add.
-
-2006-05-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump required libtasn1.
-
-2006-05-10  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/gstr.c, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/parser_aux.c, lib/minitasn1/parser_aux.h,
-       lib/minitasn1/structure.c: Update to 0.3.4.
-
-2006-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump required libtasn1 version to 0.3.3.
-
-2006-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Fix.
-
-2006-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-05-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Run tests under valgrind.
-
-2006-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/serv.c, src/tls_test.c: some changes for IPv6.
-       Based on patch by Remi Denis-Courmont, sent to Debian bug tracking
-       system.
-
-2006-05-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-housley-tls-authz-extns-04.txt: Add.
-
-2006-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/structure.c: updated to the latest libtasn1
-
-2006-05-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-05-05  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h, includes/gnutls/gnutls.h.in,
-       lib/ext_inner_application.c, lib/gnutls_int.h, libextra/gnutls_ia.c: 
-       TLS/IA fixes from Emile.
-
-2006-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4366.txt: Add.
-
-2006-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4346.txt, doc/protocol/rfc4347.txt: Add.
-
-2006-04-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Fix prototypes.
-
-2006-04-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/getpass.m4, gl/m4/longdouble.m4: Update.
-
-2006-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-santesson-tls-supp-02.txt,
-       doc/protocol/draft-santesson-tls-ume-06.txt: Add.
-
-2006-04-19  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: (LDADD): Add libgnutls after libgnu, for libgcrypt transitive
-       reference, tiny patch from Nix <nix@esperi.org.uk>.
-
-2006-04-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-santesson-tls-supp-01.txt: Add.
-
-2006-04-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-housley-tls-authz-extns-03.txt,
-       doc/protocol/draft-santesson-tls-ume-05.txt: Add.
-
-2006-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: removed AES-256 from the list of default
-       ciphers. No point in having it (when everything else is far away
-       even from 128 bit security)
-
-2006-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/gnutls.h.in, lib/gnutls_srp.c: 
-       gnutls_srp_set_client_credentials() uses const
-
-2006-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: documented the return value in the priority
-       functions
-
-2006-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/gnutls.h.in, lib/gnutls_handshake.c: [no log
-       message]
-
-2006-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gc-random.m4, gl/stdint_.h: Update.
-
-2006-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/extensions.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs7.c, lib/x509/x509.c: use snprintf()
-       instead of multiple calls to str_cpy() and str_cat().
-
-2006-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: bug fix
-
-2006-03-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-santesson-tls-supp-00.txt,
-       doc/protocol/draft-santesson-tls-ume-04.txt: Add.
-
-2006-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2006-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: added -Wno-pointer-sign to gcc to avoid tons of
-       useless warnings.
-
-2006-03-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-housley-tls-authz-extns-01.txt: Add.
-
-2006-03-21  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2006-03-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/bibliography.texi, doc/gnutls.texi: added reference for TLS
-       1.1
-
-2006-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c, lib/gnutls_global.h, lib/gnutls_x509.c,
-       lib/x509/rfc2818_hostname.c: some fixes for compilation
-
-2006-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: export to DER format is possible with certtool
-
-2006-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2006-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: Indent.
-
-2006-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am, lib/x509/compat.c, lib/x509/compat.h: Move
-       to ../gnutls_cert.c.
-
-2006-03-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: Move from x509/compat.c.
-
-2006-03-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: Add.
-
-2006-03-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2006-03-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/structure.c: Update.
-
-2006-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: force the gcrypt random generator to be
-       initialized at startup. Maybe it should be within and ifdef? This
-       saves lots of debugging time when something fails.
-
-2006-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/structure.c: added the fix for der_coding() from
-       libtasn1.
-
-2006-03-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Rebuild srp manpages too.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.3.5.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/libtasn1.h: Update.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS, po/pl.po: Sync with TP.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Add update-po target.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Doc fix.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c, lib/x509/sign.c, lib/x509/x509_write.c: Use new
-       asn1_copy_node API.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/libtasn1.h, lib/minitasn1/structure.c: Update.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1-dont.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/parser_aux.c, lib/minitasn1/parser_aux.h,
-       lib/minitasn1/structure.c: Update.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Use internal error approach again, after
-       discussion with Nikos.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Fix.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1-dont.h, lib/minitasn1/libtasn1.h: Update.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Fix type_field.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Use external API.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/parser_aux.h, lib/minitasn1/structure.c: Update.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Fix.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Use external libtasn1 API.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Fix typo.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Required libtasn1 0.3.1.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Revert, we now use the new exported functions.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Make it build.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Sort.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Disable XML functionality, because it relies on
-       libtasn1 internals.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, libextra/Makefile.am: Add -no-undefined, for
-       mingw32 builds.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c, lib/x509/xml.c, src/cli.c, src/common.c,
-       src/common.h, src/serv.c, tests/resume.c: Indent.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gc-gnulib.c, gl/gc-libgcrypt.c,
-       gl/m4/gc-random.m4, gl/m4/gc.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/readline.m4, maint.mk: Update.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * po/LINGUAS: Add.
-
-2006-03-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-funk-tls-inner-application-extension-02.txt: 
-       Add.
-
-2006-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/common.c, src/common.h: gnutls-cli can now recognize services
-       and port numbers with the -p option.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * .cvscopying: Fix.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Gettext fixes.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Fix.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_global.c: Error message
-       translations.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * .cvsignore, m4/.cvsignore, po/.cvsignore: [no log message]
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * maint.mk: Update.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Add indent file list.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Remove indent target.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Revert, autoreconf needs it.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove gettext version stuff.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gettext.h, gl/m4/codeset.m4, gl/m4/gettext.m4,
-       gl/m4/glibc2.m4, gl/m4/glibc21.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/iconv.m4, gl/m4/intdiv0.m4,
-       gl/m4/intmax.m4, gl/m4/inttypes-pri.m4, gl/m4/isc-posix.m4,
-       gl/m4/lcmessage.m4, gl/m4/nls.m4, gl/m4/po.m4,
-       gl/m4/printf-posix.m4, gl/m4/progtest.m4, gl/m4/readline.m4,
-       gl/m4/uintmax_t.m4, gl/m4/ulonglong.m4, maint.mk: Update.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-03-03  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in, po/Makevars, po/POTFILES.in: 
-       Gettextize.
-
-2006-03-01  Simon Josefsson <simon@josefsson.org>
-
-       * gtk-doc.make: Add.
-
-2006-03-01  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/readline.m4, gl/m4/socklen.m4, gl/m4/sys_socket_h.m4,
-       gl/readline.c, maint.mk: Update.
-
-2006-03-01  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf, maint-cfg.mk: Don't gtkdocize.
-
-2006-02-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am, lib/minitasn1/coding.c,
-       lib/minitasn1/decoding.c, lib/minitasn1/der.h,
-       lib/minitasn1/element.c, lib/minitasn1/errors.h,
-       lib/minitasn1/errors_int.h, lib/minitasn1/gstr.c,
-       lib/minitasn1/gstr.h, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c, lib/minitasn1/structure.h: Update.
-
-2006-02-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: gnutls_record_send: Doc fix, suggested by
-       Eric Leblond <regit@inl.fr>.
-
-2006-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/sign.c: Fix warning.
-
-2006-02-17  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Make it explicit that GNUTLS_DIG_*
-       has the same values as GNUTLS_MAC_*.
-
-2006-02-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-santesson-tls-ume-02.txt: Add.
-
-2006-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Fix.
-
-2006-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Fix.
-
-2006-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Fix.
-
-2006-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Fix.
-
-2006-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * maint-cfg.mk: Add mingw32 target.
-
-2006-02-14  Simon Josefsson <simon@josefsson.org>
-
-       * GNUmakefile, gl/Makefile.am, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, maint-cfg.mk, maint.mk: Add
-       maintainer-makefile module.
-
-2006-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/xml.c: Use external libtasn1 API.
-
-2006-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/der.h, lib/minitasn1/element.c,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c: Sync with libtasn1 CVS.
-
-2006-02-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump libtasn1 version.
-
-2006-02-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix typo.
-
-2006-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.3.4.
-
-2006-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2006-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/errors.h, lib/minitasn1/errors_int.h,
-       lib/minitasn1/gstr.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c: Update from libtasn1.
-
-2006-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2006-02-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-housley-tls-authz-extns-00.txt: Add.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c: Fix typo in last commit.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/set_pkcs12_cred.c: Simplify using under gdb.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c: Fix for latest certder bug.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/certder.c: Add more bug trigger.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/certder.c: Add.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c: More asn1 length out of bounds checking.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c: Fix asn1_get_length_der usage.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c: Fix asn1_get_length_der usage.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/element.c: Fix copyright.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/element.c, lib/minitasn1/structure.c: Fix
-       asn1_get_length_der usage.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c: Revert.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c: Fix for cert selftest.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add certder test.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/certder.c: Add.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/libtasn1.h: Bump version.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Need libtasn1 0.2.18.
-
-2006-02-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/der.h, lib/minitasn1/element.c,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c: Add libtasn1 fixes from Nikos, prompted
-       by report from "Evgeny Legerov" <admin@gleg.net>.
-
-2006-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/xml.c: some fixes for the new libtasn1
-
-2006-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/mpi.c: [no log message]
-
-2006-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/mpi.c: corrected wrong order of free.
-
-2006-02-02  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/main.h, libextra/opencdk/packet.h: Fix prototypes
-       for AIX compiler, reported by "Heiden, John"
-       <JHeiden@UTNet.UToledo.Edu>.
-
-2006-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2006-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: Corrected bugs in
-       gnutls_certificate_set_x509_crl() and
-       gnutls_certificate_set_x509_trust(), that caused memory corruption
-       if more than one certificates were added. Report and patch by Max
-       Kellermann <max@duempel.org>.
-
-2006-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2006-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: added some text about premature termination
-       of sessions.
-
-2006-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: fixed bug in non-blocking gnutls_bye().
-       gnutls_send will no longer invalidate session if the underlying send
-       fails, but it will set may_not_write to true. That is to allow
-       reading the already received data. Patches and bug reports by Yoann
-       Vandoorselaere <yoann@prelude-ids.org>
-
-2006-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/.cvsignore: [no log message]
-
-2006-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/inet_ntop.h, gl/m4/gnulib-tool.m4, gl/m4/socklen.m4,
-       gl/m4/stdbool.m4, gl/socket_.h, gl/stdbool_.h, gl/vasnprintf.c: 
-       Update.
-
-2006-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.h: Mingw32 fixes.
-
-2006-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-salowey-tls-ticket-07.txt: Add.
-
-2006-01-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-santesson-tls-ume-01.txt: Add.
-
-2006-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: removed the RIPEMD test
-       since it is not supported any more.
-
-2006-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: minor updates.
-
-2006-01-19  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/sys_socket_h.m4,
-       gl/md5.c, gl/md5.h, gl/sha1.c, gl/sha1.h, gl/socket_.h: Update.
-
-2006-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2006-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-08.txt: Add.
-
-2006-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2006-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix igloo scp.
-
-2006-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Re-add igloo.
-
-2006-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2006-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.3.3.
-
-2006-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * .cvscopying: Fix copyright years.
-
-2006-01-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2006-01-11  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/dummy.c, gl/m4/gnulib-comp.m4,
-       gl/m4/readline.m4, gl/sha1.c, gl/stdint_.h: Update.
-
-2006-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/socklen.m4,
-       gl/m4/stdint.m4, gl/stdint_.h: Update.
-
-2006-01-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-santesson-tls-ume-00.txt: Add.
-
-2006-01-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/bibliography.texi: [no log message]
-
-2005-12-31  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h: C++ fix.
-
-2005-12-31  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_ia.c: Doc fix.
-
-2005-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-07.txt: Add.
-
-2005-12-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls_errors.c,
-       lib/gnutls_global.h, lib/minitasn1/coding.c,
-       lib/minitasn1/errors.c, lib/x509/crq.c: Constify, tiny patch from
-       "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio@vodafone.com>.
-
-2005-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Doc fix.
-
-2005-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h, libextra/gnutls_ia.c: Fix TLS/IA
-       prototypes, suggested by Jouni Malinen <jkmaline@cc.hut.fi>.
-
-2005-12-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Use _gnutls_init as increment/decrement
-       counter for init/deinit, suggested by ZIGLIO, Frediano.
-
-2005-12-18  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Cosmetic changes.
-
-2005-12-18  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Cosmetic changes.
-
-2005-12-18  Simon Josefsson <simon@josefsson.org>
-
-       * tests/resume.c: Fix mem leak.
-
-2005-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am, includes/gnutls/gnutls.h.in,
-       lib/gnutls_compress_int.c, lib/gnutls_constate.c: fixed a memory
-       copy that caused crashes.
-
-2005-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/resume.c: More debug info.
-
-2005-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2005-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add resume self test.
-
-2005-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/resume.c: Add, to test resume funtions.
-
-2005-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-salowey-tls-ticket-06.txt: Add.
-
-2005-12-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-12-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Doc fix.
-
-2005-12-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in: Add.
-
-2005-12-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Add API to get master secret too.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Fix.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Fix indentation.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, includes/gnutls/extra.h,
-       includes/gnutls/gnutls.h.in, includes/gnutls/openpgp.h,
-       includes/gnutls/openssl.h, includes/gnutls/pkcs12.h,
-       includes/gnutls/x509.h, lib/auth_anon.c, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp_passwd.h,
-       lib/auth_srp_sb64.c, lib/ext_inner_application.c,
-       lib/ext_inner_application.h, lib/ext_max_record.c,
-       lib/gnutls_algorithms.c, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_buffers.c, lib/gnutls_cert.c, lib/gnutls_db.h,
-       lib/gnutls_dh.c, lib/gnutls_dh.h, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_psk.c, lib/gnutls_record.c,
-       lib/gnutls_session.c, lib/gnutls_session_pack.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/gnutls_x509.c,
-       lib/x509/mpi.h, lib/x509_b64.c, libextra/gnutls_ia.c,
-       libextra/openpgp/gnutls_openpgp.h, src/common.c, src/serv.c,
-       tests/dhepskself.c, tests/tlsia.c: Indent more.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Remove igloo, it seem weird.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.3.2.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c, lib/gnutls_state.h: Fix warnings.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Remove debug code.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/gnutls_state.c: Add
-       functions to access the TLS PRF and to extract client/server random
-       fields, suggested by Jouni Malinen <jkmaline@cc.hut.fi>.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore more.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/.cvsignore, libextra/.cvsignore, tests/.cvsignore: [no log
-       message]
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/Makefile.am, doc/examples/ex-client-tlsia.c,
-       doc/gnutls.texi, doc/manpages/Makefile.am, includes/gnutls/extra.h,
-       includes/gnutls/gnutls.h.in, lib/Makefile.am, lib/debug.c,
-       lib/defines.h, lib/ext_inner_application.c,
-       lib/ext_inner_application.h, lib/gnutls_alert.c,
-       lib/gnutls_buffers.c, lib/gnutls_constate.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_record.c, lib/gnutls_state.c, libextra/Makefile.am,
-       libextra/gnutls_ia.c, tests/Makefile.am, tests/tlsia.c: Add TLS/IA
-       support.
-
-2005-12-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-comp.m4: Update.
-
-2005-12-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.c: added missing set_params_function()
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c, lib/auth_cert.h, lib/auth_psk_passwd.c,
-       lib/auth_srp_passwd.c, lib/auth_srp_sb64.c, lib/defines.h,
-       lib/ext_cert_type.c, lib/ext_server_name.c, lib/ext_srp.c,
-       lib/gnutls_buffers.c, lib/gnutls_cert.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_int.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/gnutls_ui.c, lib/gnutls_x509.c, lib/x509/common.c,
-       lib/x509/dn.c, lib/x509/extensions.c, lib/x509/pkcs7.c,
-       lib/x509/privkey_pkcs8.c, lib/x509_b64.c: Replace "uint" with
-       "unsigned".  Remove unused "sint".
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h, lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_num.c,
-       lib/gnutls_num.h, lib/gnutls_session_pack.c, lib/x509/mpi.c,
-       lib/x509/mpi.h, libextra/openpgp/extras.c,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/pgp.c: Replace
-       uint32 with uint32_t.
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_dh_common.c, lib/auth_psk.c, lib/auth_rsa_export.c,
-       lib/auth_srp.c, lib/defines.h, lib/ext_max_record.c,
-       lib/ext_max_record.h, lib/ext_server_name.c,
-       lib/gnutls_algorithms.c, lib/gnutls_cipher.c,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_num.c,
-       lib/gnutls_num.h, lib/gnutls_record.c, lib/gnutls_v2_compat.c,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/x509.c,
-       lib/x509/x509_write.c: Replace uint16 with uint16_t.
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove unused sizeof checks.
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/auth_cert.c, lib/auth_dh_common.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp_passwd.h,
-       lib/auth_srp_sb64.c, lib/defines.h, lib/ext_cert_type.c,
-       lib/ext_max_record.c, lib/ext_server_name.c, lib/ext_srp.c,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_datum.c, lib/gnutls_db.c, lib/gnutls_db.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_num.c, lib/gnutls_record.c,
-       lib/x509/extensions.c, lib/x509/pkcs12.c, lib/x509/pkcs7.c,
-       lib/x509/x509.c, lib/x509_b64.c, lib/x509_b64.h,
-       libextra/gnutls_openpgp.c, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/xml.c: Replace uint8 with uint8_t.
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4: Update.
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h: Remove unused types, to start the transition to the
-       POSIX integer types (uint32_t, uint16_t, uint8_t).
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Remove -I../lib, these tools should only use the
-       external API.
-
-2005-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h, lib/gnutls_str.c: ULONG_MAX should be in limits.h,
-       so include it at the right place.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs12.c: Fix mem leaks.  Remove unused variable.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: Fix mem leak.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.3.1.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c: Fix.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Dist pkcs8 blobs.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Fix.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/enc3pkcs8.pem: add
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/enc3pkcs8.pem: Add.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/enc2pkcs8.pem, tests/pkcs8: Add rc2 pkcs#8 blob.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/encpkcs8.pem, tests/unencpkcs8.pem: Fix.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/pkcs8: Add PKCS#8 self test.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Make --password work for PKCS#8 --key-info.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/encpkcs8.pem, tests/unencpkcs8.pem: Add, PKSC#8 blobs.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Remove.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/privkey_pkcs8.c: (gnutls_x509_privkey_import_pkcs8): Handle unencrypted PEM keys.
-       Remove unused "encrypted" variable.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/certtool.c: Generate unencrypted PKCS#8 keys for blank
-       passwords.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/TODO, includes/gnutls/gnutls.h.in, lib/gnutls_x509.c,
-       tests/Makefile.am, tests/set_pkcs12_cred.c: Support reading X.509
-       credentials from PKCS#12 files.
-
-2005-12-08  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Print PKCS#12 type for each element.
-
-2005-12-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4279.txt: Add.
-
-2005-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_session_pack.c: Corrected bugs in session resumption.
-       Bugs reported by Yoann Vandoorselare.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Put 1.3.x releases in devel/ directory.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: add
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Fix.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CODING_STYLE: Mention indentation.
-
-2005-12-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-12-01  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/socklen.m4, gl/readline.c, gl/stdint_.h: Update.
-
-2005-12-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Don't infloop.
-
-2005-12-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-12-01  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Check starttls_alarmed earlier, the signal might be
-       sent before select is called.  Report by Otto Maddox
-       <ottomaddox@fastmail.fm> and influenced by tiny patch from Nozomu
-       Ando <nand@mac.com>.
-
-2005-12-01  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2005-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/gnutls.h.in, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c: Some fixes in session resumption and
-       prototypes. Based on patches and suggestions by Joe Orton.
-
-2005-11-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/tls-numbers.txt: From
-       <http://people.nokia.net/~pasi/tls-numbers.txt>.
-
-2005-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey_pkcs8.c: added some clarification about the
-       encryption status.
-
-2005-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool.c: Corrected a bug in certtool for 64 bit
-       machines. Reported by Max Kellermann <max@duempel.org>.
-
-2005-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli.gaa: [no log message]
-
-2005-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_datum.c, lib/gnutls_session_pack.c, src/serv.c: some
-       more fixes for PSK.
-
-2005-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: the library version number was bumped to 13 to allow
-       for incompatible changes.
-
-2005-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog, lib/auth_anon.c, lib/auth_anon.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_psk.h,
-       lib/gnutls_kx.c, lib/gnutls_psk.c, lib/gnutls_session_pack.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, src/Makefile.am,
-       src/cli-gaa.c, src/cli.c, src/cli.gaa, src/common.c,
-       src/gnutls-http-serv, src/params.pem, src/serv.c: Completed the
-       DHE-PSK ciphersuite additions.
-
-2005-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_psk.c: some documentation updates
-
-2005-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_anon_cred.c, lib/gnutls_psk.c: 
-       gnutls_anon_set_params_function was renamed to
-       gnutls_anon_set_server_params_function to be more consistent with
-       the other functions. The same for the PSK.
-
-2005-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.h, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/gnutls_cert.c, lib/gnutls_handshake.c: get_rsa_params was
-       converted to behave similarly to get_dh_params.
-
-2005-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: [no log message]
-
-2005-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/gnutls.h.in, lib/Makefile.am,
-       lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dhe.c, lib/auth_dhe_psk.c,
-       lib/auth_psk.c, lib/auth_psk.h, lib/auth_rsa_export.c,
-       lib/auth_srp.c, lib/auth_srp_sb64.c, lib/gnutls_algorithms.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth_int.h,
-       lib/gnutls_cert.c, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_psk.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_rsa_export.h,
-       lib/gnutls_state.c, lib/gnutls_ui.c, src/common.c, src/serv.c,
-       tests/Makefile.am, tests/dhepskself.c, tests/pskself.c: added
-       DHE-PSK ciphersuites and some cleanups.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.3.0.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/prime.c, src/serv.c, tests/pskself.c: Indent.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Use sha1sum instead of md5sum for igloo.linux.gr
-       CHECKSUMS.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog.1: Add, generated using cvs2cl --utc --fsf --FSF
-       --usermap .cvsusers -I ChangeLog -I .cvs --window 120 -l
-       "-d""<2005-11-08""", and manually adjusting the start and end of the
-       file.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Don't use --tags for cvs2cl.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Dist auth_psk.h.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-gaa.c, src/cli-gaa.c, src/crypt-gaa.c,
-       src/psk-gaa.c, src/serv-gaa.c, src/tls_test-gaa.c: Regenerate GAA
-       code, to remove use of C++ // comments.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Add license.  Fix parser error.  Dist
-       and install SRP man pages too.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, doc/examples/Makefile.am, doc/manpages/Makefile.am,
-       src/Makefile.am, src/prime.c: Disable more SRP stuff if
-       --disable-srp, tiny patch from Albert Chin
-       <gnutls-dev@mlists.thewrittenword.com> and tiny patch to src/prime.c
-       from RedHat gnutls-1.2.6 RPM.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Use more verbose NEWS entry format.
-
-2005-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/pskself.c: updated PSK self test
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-gaa.c: Fix.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add pskself.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pskself.c: Add, based on anonself.c.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_errors.c: Fix error messages; PSK also use the SRP
-       errors.
-
-2005-11-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_psk.c: Doc fix.
-
-2005-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/debug.c, lib/x509/common.c, lib/x509/crl.c, lib/x509/dn.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs7.c, libextra/openssl_compat.c,
-       src/serv.c: Include config.h first.  Tiny patch from Albert Chin
-       <gnutls-dev@mlists.thewrittenword.com>.
-
-2005-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/opencdk.h: Don't use trailing comma in last enum
-       constant, for IBM C v6.  Tiny patch from Albert Chin
-       <gnutls-dev@mlists.thewrittenword.com>.
-
-2005-11-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: Tru64 UNIX 4.0D has mmap() but doesn't define
-       MAP_FAILED, tiny patch from Albert Chin
-       <gnutls-dev@mlists.thewrittenword.com>
-
-2005-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/gnutls.texi, lib/gnutls_algorithms.c: removed the RIPEMD
-       ciphersuites.
-
-2005-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/arch/extensions_st.eps, doc/arch/extensions_st.pdf,
-       doc/arch/mod_auth_st.eps, doc/arch/mod_auth_st.pdf,
-       doc/internals.texi: added brief documentation on the extension and
-       auth_method internals.
-
-2005-11-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi, lib/gnutls_state.c, lib/gnutls_x509.c,
-       src/certtool.gaa: some documentation updates.
-
-2005-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/arch/certificate-user-use-case.eps,
-       doc/arch/certificate-user-use-case.pdf,
-       doc/arch/client-server-use-case.eps,
-       doc/arch/client-server-use-case.pdf,
-       doc/arch/handshake-sequence.eps, doc/arch/handshake-sequence.pdf,
-       doc/arch/handshake-state.eps, doc/arch/handshake-state.pdf,
-       doc/arch/objects.eps, doc/arch/objects.pdf,
-       doc/certificate-user-use-case.pdf, doc/client-server-use-case.pdf,
-       doc/handshake-sequence.pdf, doc/handshake-state.pdf,
-       doc/internals.texi, doc/objects.pdf: moved architecture figures to
-       arch/
-
-2005-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog, Makefile.am: made ChangeLog more compact by ignoring
-       past changes.
-
-2005-11-10  Simon Josefsson <simon@josefsson.org>
-
-       * gl/inet_ntop.h, gl/readline.c: Update.
-
-2005-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: [no log message]
-
-2005-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h: [no log message]
-
-2005-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/signatures.texi: Add.
-
-2005-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/certificate-user-use-case.pdf,
-       doc/client-server-use-case.pdf, doc/gnutls.texi,
-       doc/handshake-sequence.pdf, doc/handshake-state.pdf,
-       doc/internals.texi, doc/objects.pdf: added some stuff about the
-       internals of gnutls.
-
-2005-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : added again the files in binary mode.
-
-2005-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : [no log message]
-
-2005-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : added some architectural diagrams. Quite primitive.
-
-2005-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/signatures.texi: add
-
-2005-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * doc/signatures.texi: Wrap around <80 columns.
-
-2005-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am, lib/gnutls_session_pack.c, src/cli.c,
-       src/serv.c: fixed bug in session packing for anonymous connections.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * src/serv.c, tests/anonself.c, tests/openpgp_test.c,
-       tests/openssl.c, tests/x509_test.c: Indent.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Indent tests/.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dh_common.c, lib/auth_dh_common.h,
-       lib/auth_dhe.c, lib/auth_psk.c, lib/auth_psk.h,
-       lib/auth_psk_passwd.c, lib/auth_psk_passwd.h, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_srp_passwd.h, lib/auth_srp_rsa.c,
-       lib/auth_srp_sb64.c, lib/debug.c, lib/debug.h, lib/defines.h,
-       lib/ext_cert_type.c, lib/ext_cert_type.h, lib/ext_max_record.c,
-       lib/ext_max_record.h, lib/ext_server_name.c, lib/ext_server_name.h,
-       lib/ext_srp.c, lib/ext_srp.h, lib/gnutls_alert.c,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_anon_cred.c, lib/gnutls_asn1_tab.c, lib/gnutls_auth.c,
-       lib/gnutls_auth.h, lib/gnutls_auth_int.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_compress_int.c,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_global.c, lib/gnutls_global.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_helper.c, lib/gnutls_helper.h,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_mem.c, lib/gnutls_mem.h, lib/gnutls_mpi.c,
-       lib/gnutls_mpi.h, lib/gnutls_num.c, lib/gnutls_num.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_priority.c,
-       lib/gnutls_priority.h, lib/gnutls_psk.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_srp.c,
-       lib/gnutls_srp.h, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/gnutls_str.c, lib/gnutls_str.h, lib/gnutls_ui.c,
-       lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/io_debug.h, lib/pkix_asn1_tab.c,
-       lib/strfile.h, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/compat.c, lib/x509/compat.h, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/crq.h,
-       lib/x509/dn.c, lib/x509/dn.h, lib/x509/dsa.c, lib/x509/dsa.h,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/mpi.c,
-       lib/x509/mpi.h, lib/x509/pkcs12.c, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
-       lib/x509/pkcs7.h, lib/x509/privkey.c, lib/x509/privkey.h,
-       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818.h,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/sign.h,
-       lib/x509/verify.c, lib/x509/verify.h, lib/x509/x509.c,
-       lib/x509/x509.h, lib/x509/x509_write.c, lib/x509/xml.c,
-       lib/x509_b64.c, lib/x509_b64.h, libextra/gnutls_extra.c,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openssl.c, libextra/openpgp/compat.c,
-       libextra/openpgp/extras.c, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/openpgp.h, libextra/openpgp/pgp.c,
-       libextra/openpgp/pgpverify.c, libextra/openpgp/privkey.c,
-       libextra/openpgp/xml.c, libextra/openssl_compat.c,
-       libextra/openssl_compat.h, src/certtool-cfg.c, src/certtool-cfg.h,
-       src/certtool.c, src/cli.c, src/common.c, src/common.h, src/crypt.c,
-       src/errcodes.c, src/list.h, src/prime.c, src/psk.c, src/serv.c,
-       src/tests.c, src/tests.h, src/tls_test.c: Use GNU coding style.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Use GNU coding style for indent.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Add.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Ignore more headers.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * src/.cvsignore: [no log message]
-
-2005-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_psk.c, lib/auth_psk_passwd.c, lib/auth_psk_passwd.h,
-       lib/gnutls_psk.c, src/serv-gaa.c, src/serv-gaa.h: more psk stuff
-
-2005-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/TODO, doc/gnutls.texi,
-       doc/manpages/Makefile.am, doc/manpages/psktool.1,
-       includes/gnutls/gnutls.h.in, lib/Makefile.am, lib/auth_psk.c,
-       lib/auth_psk.h, lib/auth_psk_passwd.c, lib/auth_psk_passwd.h,
-       lib/auth_srp.h, lib/auth_srp_sb64.c, lib/ext_srp.c,
-       lib/gnutls_algorithms.c, lib/gnutls_compress_int.c,
-       lib/gnutls_db.c, lib/gnutls_helper.c, lib/gnutls_helper.h,
-       lib/gnutls_int.h, lib/gnutls_psk.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
-       lib/gnutls_srp.c, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/libgnutls.vers, src/Makefile.am, src/cli-gaa.c, src/cli-gaa.h,
-       src/cli.c, src/cli.gaa, src/common.c, src/crypt.c,
-       src/gnutls-http-serv, src/psk-gaa.c, src/psk-gaa.h, src/psk.c,
-       src/psk.gaa, src/serv.c, src/serv.gaa: This is the initial commit in
-       the 1.3 branch. Ported from the PSK branch: * PSK ciphersuites have been added.  * The session resumption data are now system independent.
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-11-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.9.
-
-2005-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: corrected bug in pkcs 12 ID key setting. Found and
-       reported by Fran <e_agf@yahoo.es>.
-
-2005-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: fixed typos etc.
-
-2005-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: [no log message]
-
-2005-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/signatures.texi: supported algorithms were moved in a
-       different subsection.
-
-2005-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * README: [no log message]
-
-2005-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/signatures.texi: [no log message]
-
-2005-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/signatures.texi: [no log message]
-
-2005-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi, doc/signatures.texi: better output for non-tex
-       formats.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/signatures.texi: Fix.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/signatures.texi: Add.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/signatures.texi: Add.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: Remove
-       GNUTLS_CERTIFICATE_VERIFY_FLAGS_LAST hack, use version number
-       defines instead.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Add numeric version numbers, for CPP
-       version comparisons.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Compute numeric version numbers, for CPP version
-       comparisons.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: Add GNUTLS_CERTIFICATE_VERIFY_FLAGS_LAST,
-       based on report by Daniel Stenberg <daniel@haxx.se>.
-
-2005-11-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_ui.c: Doc fix, suggested by Daniel Stenberg
-       <daniel@haxx.se>.
-
-2005-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs12.c, lib/x509/privkey_pkcs8.c: some type fixes.
-
-2005-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: [no log message]
-
-2005-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/bibliography.texi, doc/gnutls.texi,
-       doc/signatures.texi: added some text about digital signatures.
-
-2005-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/x509/clicert-dsa.pem, src/x509/clicert.pem: appended the
-       intermediate CA certificates to client certificates.
-
-2005-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa: added
-       the --require-cert option to gnutls-serv
-
-2005-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_kx.c: Some fixes in the certificate
-       handling.
-
-2005-10-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/bibliography.texi: [no log message]
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/bibliography.texi, doc/gnutls.texi: [no log message]
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/bibliography.texi, doc/gnutls.texi: the bibliography stuff is
-       a bit sorted... I hate that texinfo stuff.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/inet_ntop.c: Update.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/inet_ntop.h: Update.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c, gl/gc-libgcrypt.c, gl/md2.c, gl/md2.h: Update.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/pgpverify.c: Doc fix.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Revert.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Fix warnings.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Don't include openpgp stuff in api manual.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Remove @anchor, texinfo @deftypefun create them
-       implicitly.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Fix.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Fix depends.
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi, doc/scripts/gdoc: some changes to allow cross
-       referencing of functions.
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * gl/arctwo.c: [no log message]
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/TODO: Add.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-libgcrypt.c, gl/m4/md2.m4: Update.
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-libgcrypt.c: Support MD2.
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: some more updates.
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: added text about gnutls_certificate_verify_flags.
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: [no log message]
-
-2005-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c, gl/gc-libgcrypt.c, gl/gc.h: Update.
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/bibliography.texi, doc/gnutls.texi, doc/my-bib-macros.texi: 
-       some more changes for better pdf output
-
-2005-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/bibliography.texi, doc/gnutls.texi,
-       doc/my-bib-macros.texi: added bibliography\!
-
-2005-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : [no log message]
-
-2005-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : pdf files generated with png2pdf. The output is a bit better
-       than eps2pdf.
-
-2005-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi, src/errcodes.c: some updates and improvments in
-       the pdf output.
-
-2005-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: [no log message]
-
-2005-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: The check for insecure algorithms is only
-       performed on non-self signed certificates.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c: Update.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/verify.c: Don't accept MD2/MD5 hashes when verifying
-       X.509 certificate signatures.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Print whether verification failed due to an
-       insecure algorithm.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in: Add GNUTLS_CERT_INSECURE_ALGORITHM.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs7.h, lib/x509/privkey.h, lib/x509/verify.h,
-       lib/x509/x509.h: Get public prototypes from gnutls/x509.h instead.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Fix prototype.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.h: Get exported function prototypes from
-       gnutls/x509.h instead.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: Fix.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.h: Add.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_hash_int.c: Add MD2.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c: Fix link errors.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * : Remove.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: Add MD2/MD5 verify flags.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gc-gnulib.c, gl/gc-libgcrypt.c, gl/gc.h,
-       gl/m4/gc-md2.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/md2.m4, gl/md2.c, gl/md2.h: Add MD2.
-
-2005-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in, lib/gnutls_algorithms.c: Add MD2.
-
-2005-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c, gl/inet_ntop.c, gl/inet_ntop.h,
-       gl/m4/inet_ntop.m4, gl/md4.h, gl/md5.c, gl/md5.h: Update.
-
-2005-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-hajjeh-tls-sign-01.txt: Add.
-
-2005-10-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-10-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: Fix zero size send.
-
-2005-10-22  Simon Josefsson <simon@josefsson.org>
-
-       * gl/arcfour.c, gl/arcfour.h, gl/arctwo.h, gl/m4/gc.m4,
-       gl/m4/gnulib-comp.m4, gl/md4.c, gl/md4.h: Update.
-
-2005-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c: Update.
-
-2005-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/hmac-md5.c, gl/hmac-sha1.c, gl/m4/gc.m4,
-       gl/m4/gnulib-comp.m4, gl/md4.c, gl/rijndael-alg-fst.h: Update.
-
-2005-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c: Update.
-
-2005-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/des.c, gl/des.h, gl/gc-gnulib.c, gl/m4/des.m4,
-       gl/m4/gc-des.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: 
-       Update.
-
-2005-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/arctwo.c, gl/arctwo.h, gl/gc-gnulib.c,
-       gl/gc-libgcrypt.c, gl/m4/arctwo.m4, gl/m4/gc-arctwo.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update.
-
-2005-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-10-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-salowey-tls-ticket-05.txt: Add.
-
-2005-10-20  Simon Josefsson <simon@josefsson.org>
-
-       * tests/anonself.c: Fix bug.
-
-2005-10-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-modadugu-tls-ctr-00.txt: Add.
-
-2005-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/arcfour.c, gl/arcfour.h, gl/gc-gnulib.c,
-       gl/m4/arcfour.m4, gl/m4/gc-arcfour.m4, gl/m4/gc-hmac-md5.m4,
-       gl/m4/gc-hmac-sha1.m4, gl/m4/gc-md4.m4, gl/m4/gc-md5.m4,
-       gl/m4/gc-rijndael.m4, gl/m4/gc-sha1.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4: Update.
-
-2005-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc-gnulib.c: Cleanup.
-
-2005-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc.h: Add ecb.
-
-2005-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * gl/rijndael-api-fst.c: Fix CBC IV bugs.
-
-2005-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gc-gnulib.c, gl/hmac-md5.c, gl/hmac-sha1.c,
-       gl/m4/gc-rijndael.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/rijndael.m4, gl/rijndael-alg-fst.c, gl/rijndael-alg-fst.h,
-       gl/rijndael-api-fst.c, gl/rijndael-api-fst.h: Update.
-
-2005-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Reverse logic.
-
-2005-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * README: Update --with-builtin-crypto documentation.
-
-2005-10-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add --with-builtin-crypto to enable gnulib
-       functions.
-
-2005-10-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Initialize gcrypt here, for now, to make sure
-       it is done even if gnulib's GC uses the non-libgcrypt functions.
-
-2005-10-18  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove unused USE_GCRYPT.
-
-2005-10-18  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gc-gnulib.c, gl/gc-libgcrypt.c, gl/gc.h,
-       gl/m4/gc-md4.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/md4.m4, gl/md4.c, gl/md4.h: Add gc-md4.
-
-2005-10-18  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/stdbool.m4: Update.
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gc-libgcrypt.c, gl/m4/gc-sha1.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update.
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/gc.c: Add self tests of gc.
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/hmac-md5.c, gl/m4/gc-hmac-md5.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/hmac-md5.m4,
-       gl/m4/md5.m4, gl/md5.c, gl/md5.h: Update.
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/gc.h, lib/gnutls_cipher_int.h, lib/gnutls_hash_int.h,
-       lib/x509/pkcs12_encr.c, lib/x509/privkey_pkcs8.c,
-       libextra/Makefile.am: Fixes to make GC work again.
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/x509/Makefile.am, libextra/Makefile.am,
-       src/Makefile.am: Don't link to gc directly.
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/.cvsignore, crypto/Makefile.am, crypto/gc-libgcrypt.c,
-       crypto/gc-nettle.c, crypto/gc.h, crypto/pkcs5.c, crypto/test-gc.c,
-       crypto/utils.c, crypto/utils.h, nettle/.cvsignore,
-       nettle/Makefile.am, nettle/aes-decrypt-table.c,
-       nettle/aes-decrypt.c, nettle/aes-encrypt-table.c,
-       nettle/aes-encrypt.c, nettle/aes-internal.h, nettle/aes-meta.c,
-       nettle/aes-set-decrypt-key.c, nettle/aes-set-encrypt-key.c,
-       nettle/aes.c, nettle/aes.h, nettle/arcfour-crypt.c,
-       nettle/arcfour-meta.c, nettle/arcfour.c, nettle/arcfour.h,
-       nettle/arctwo-meta.c, nettle/arctwo.c, nettle/arctwo.h,
-       nettle/cbc.c, nettle/cbc.h, nettle/des-compat.c,
-       nettle/des-compat.h, nettle/des.c, nettle/des.h, nettle/des3.c,
-       nettle/desCode.h, nettle/descore.README, nettle/desinfo.h,
-       nettle/hmac-md5.c, nettle/hmac-sha1.c, nettle/hmac.c,
-       nettle/hmac.h, nettle/keymap.h, nettle/knuth-lfib.c,
-       nettle/knuth-lfib.h, nettle/macros.h, nettle/md2-meta.c,
-       nettle/md2.c, nettle/md2.h, nettle/md5-meta.c, nettle/md5.c,
-       nettle/md5.h, nettle/memxor.c, nettle/memxor.h,
-       nettle/nettle-internal.c, nettle/nettle-internal.h,
-       nettle/nettle-meta.h, nettle/parity.h, nettle/rotors.h,
-       nettle/sha.h, nettle/sha1-compress.c, nettle/sha1-meta.c,
-       nettle/sha1.c, nettle/tests/.cvsignore, nettle/tests/Makefile.am,
-       nettle/tests/aes-test.c, nettle/tests/arcfour-test.c,
-       nettle/tests/arctwo-test.c, nettle/tests/cbc-test.c,
-       nettle/tests/des-compat-test.c, nettle/tests/des-test.c,
-       nettle/tests/des3-test.c, nettle/tests/hmac-test.c,
-       nettle/tests/knuth-lfib-test.c, nettle/tests/md2-test.c,
-       nettle/tests/md4-test.c, nettle/tests/md5-test.c,
-       nettle/tests/run-tests, nettle/tests/sha1-test.c,
-       nettle/tests/testutils.c, nettle/tests/testutils.h: Remove
-       nettle+crypto.
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in: Replace nettle+crypto with gnulib.
-
-2005-10-17  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gc-libgcrypt.c, gl/gc-pbkdf2-sha1.c, gl/gc.h,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/stdbool.m4: 
-       UPdate.
-
-2005-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: added some more verbose messages to the client to
-       report whether it sent any certificates or not.
-
-2005-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_server_name.h: Remove unused prototypes.
-
-2005-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Don't
-       use gc just yet.
-
-2005-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gc-md5.m4: Add.
-
-2005-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/gc-gnulib.c, gl/gc-libgcrypt.c,
-       gl/gc-pbkdf2-sha1.c, gl/gc.h, gl/hmac-sha1.c, gl/hmac.h,
-       gl/m4/gc-hmac-sha1.m4, gl/m4/gc-pbkdf2-sha1.m4, gl/m4/gc.m4,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/hmac-sha1.m4,
-       gl/m4/inttypes.m4, gl/m4/memxor.m4, gl/m4/restrict.m4,
-       gl/m4/sha1.m4, gl/m4/stdint.m4, gl/memxor.c, gl/memxor.h,
-       gl/sha1.c, gl/sha1.h, gl/stdint_.h: Update.
-
-2005-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-badra-hajjeh-mtls-00.txt: Add.
-
-2005-10-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-srp-10.txt: Add.
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.8.
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * src/crypt.c: Don't use error.
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2005-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getdelim.c, gl/m4/gnulib-comp.m4, gl/m4/stdbool.m4: Update.
-
-2005-10-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: depends on libgcrypt 1.2.2
-
-2005-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: handle better EOF from stdin.
-
-2005-10-01  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2005-10-01  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Don't install libexamples.la.
-
-2005-09-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/manpages/Makefile.am, lib/auth_dh_common.c,
-       lib/auth_rsa_export.c, lib/auth_srp.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_pk.c,
-       lib/gnutls_srp.c, lib/x509/pkcs12.c, lib/x509/pkcs12_encr.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c: Made the PKCS #12 API
-         handle null passwords. Based on patch by Anton Altaparmakov
-       <aia21@cam.ac.uk>.
-
-2005-09-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4158.txt: Add.
-
-2005-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, src/common.c, src/common.h: Use gnulib for
-       inet_ntop.
-
-2005-09-24  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/inet_ntop.c, gl/inet_ntop.h,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/inet_ntop.m4,
-       gl/m4/sockpfaf.m4: Add inet_ntop.
-
-2005-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add --insecure.
-
-2005-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h: Generated.
-
-2005-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c, src/cli.gaa: Add --insecure.  Make the default be to
-       abort connections if the peer doesn't verify, when a ca certificate
-       or PGP trust database has been supplied.
-
-2005-09-23  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Fix warnings.
-
-2005-09-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-cert-select.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-export.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-srp.c, doc/examples/ex-serv1.c: Don't use mmap.
-       Use memset instead of bzero.
-
-2005-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Revert stupid program_name workaround, patch
-       from Martin Lambers <marlam@marlam.de>.
-
-2005-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/error.c, gl/error.h, gl/getdelim.c,
-       gl/getline.c, gl/getpass.c, gl/m4/error.m4, gl/m4/gnulib-cache.m4,
-       gl/m4/gnulib-comp.m4, gl/m4/strerror_r.m4, gl/memmove.c,
-       gl/readline.c: Remove error module.  Update gnulib files.
-
-2005-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c, src/certtool.c: Don't use error module until
-       program_name problem is solved.
-
-2005-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Use gnulib for socklen test.
-
-2005-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
-       gl/m4/socklen.m4: Update.
-
-2005-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Don't use mmap, patch from Martin Lambers
-       <marlam@marlam.de>.
-
-2005-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-11.txt: Add.
-
-2005-09-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-funk-tls-inner-application-extension-00.txt,
-       doc/protocol/draft-funk-tls-inner-application-extension-01.txt: Add.
-
-2005-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: gtk-doc in debian should work fine now
-
-2005-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/tmpl/.cvsignore: [no log message]
-
-2005-09-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/tmpl/gnutls-unused.sgml: Add (to workaround gtk-doc
-       makefile bug.)
-
-2005-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-chudov-cryptopro-cptls-02.txt: Add.
-
-2005-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2005-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.7.
-
-2005-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-salowey-tls-ticket-04.txt: Add.
-
-2005-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-09-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-09-06  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getpass.c: Update.
-
-2005-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/gnulib-tool.m4, gl/m4/lib-ld.m4, gl/m4/lib-prefix.m4: Add.
-
-2005-09-03  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib.m4: Update.
-
-2005-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/getdelim.c,
-       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/lib-link.m4: 
-       Update gnulib.
-
-2005-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4162.txt: Add.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Update my PGP key.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/libtasn1.h: Update.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Dist libgnutls-extra.vers.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Dist libgnutls.vers.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Fix typo.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/libgnutls-extra.vers: Add version script.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, lib/libgnutls.vers: Add.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, libextra/Makefile.am: Use version script.
-
-2005-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add --enable-ld-version-script.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix typo.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Link with libz.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/isascii.c, gl/isascii.h, gl/m4/gnulib.m4,
-       gl/m4/isascii.m4: Update.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Add program_name, to shut up error module.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove isascii gnulib module.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h: Let's pretend all system has isascii until we find
-       one that actually hasn't.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-verify.c: Don't use C99 features.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Disable zlib code if we don't find zlib.h too.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Remove gnutls_random.h.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getpass.c, gl/m4/gnulib.m4: Update.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/auth_srp_passwd.c, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_pk.c, lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
-       lib/x509/pkcs12.c, lib/x509/privkey_pkcs8.c: Don't include
-       gnutls_random.h.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/gnutls_random.c, lib/gnutls_random.h: (_gnutls_get_random): Removed, not used any more.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_rsa.c: Call gc directly instead of _gnutls_get_random.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * src/crypt.c: Prototype error().
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs12.c, lib/x509/privkey_pkcs8.c: Call gc directly
-       instead of _gnutls_get_random.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pk.c: Fix last commit.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_srp_passwd.c, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_pk.c: Call gc directly instead of
-       _gnutls_get_random.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Add libgc.la for crypt.c.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * src/crypt.c: Avoid gcrypt.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Fix typo.
-
-2005-08-30  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Add -I for ../crypto.  Remove unneeded OpenCDK
-       CFLAGS.
-
-2005-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2005-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getpass.c, gl/m4/gnulib.m4, gl/m4/minmax.m4: 
-       Update.
-
-2005-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getpass.c: Update.
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getpass.c, gl/m4/getpass.m4, gl/m4/gnulib.m4: 
-       Update.
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Only use getpass, not getpass-gnu (the later is
-       always built on glibc platforms).
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Fix copyright.  Fix rc/status checking in last
-       commit.
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Use gnutls_certificate_verify_peers2, suggested by
-       Daniel Stenberg <daniel@haxx.se>.
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c, lib/gnutls_x509.c: Doc fix.
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c: (gnutls_certificate_verify_peers2): Doc fix, suggested by Daniel
-       Stenberg <daniel@haxx.se>.
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: Indent.
-
-2005-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: (gnutls_certificate_verify_flags): Doc fix.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Fix objdir!=srcdir builds once again.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/Makefile.am: Add -I for objdir!=srcdir builds.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am: Add -I for gl.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.h: Don't re-map socklen_t (done by configure now),
-       suggested by Martin Lambers <marlam@marlam.de>.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Define socklen_t to int, not size_t, if it is
-       missing, suggested by Martin Lambers <marlam@marlam.de>.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getpass.c, gl/m4/getpass.m4: Update.
-
-2005-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/openpgp.h: Protect config.h #include.
-
-2005-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/internals.eps, doc/layers.eps, doc/pgp1.eps: updated figures
-
-2005-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-cfg.c: (read_int): Use readline.  Use strtol, and catch out of range
-       inputs.  Suggested by Fran.
-
-2005-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add readline.
-
-2005-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Possibly link with readline.
-
-2005-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib.m4, gl/m4/lib-link.m4,
-       gl/m4/readline.m4, gl/readline.c, gl/readline.h: Update.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/errors.c, lib/minitasn1/errors.h,
-       lib/minitasn1/libtasn1.h: Update to 0.2.15.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/isascii.m4: Update.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/isascii.c, gl/isascii.h,
-       gl/m4/gnulib.m4, gl/m4/isascii.m4, lib/defines.h: Use isascii from
-       gnulib.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h: Protect config.h include.  Assume C89 platform.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/m4/gnulib.m4, gl/m4/memmove.m4,
-       gl/memmove.c, lib/defines.h: Cleanup memmove.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/tcp.c: Add, from ex-client2.c.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client2.c: Use external tcp_*.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Don't call progname stuff.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/memmem.c, lib/memmem.h: Remove.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Link with gnulib for memmem.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/alloca_.h, gl/asnprintf.c, gl/error.c,
-       gl/error.h, gl/getdelim.c, gl/getdelim.h, gl/getline.c,
-       gl/getline.h, gl/getpass.c, gl/getpass.h, gl/m4/gnulib.m4,
-       gl/m4/memmem.m4, gl/memmem.c, gl/memmem.h, gl/minmax.h,
-       gl/printf-args.c, gl/printf-args.h, gl/printf-parse.c,
-       gl/printf-parse.h, gl/progname.c, gl/progname.h, gl/size_max.h,
-       gl/snprintf.c, gl/snprintf.h, gl/stdbool_.h, gl/vasnprintf.c,
-       gl/vasnprintf.h, gl/xsize.h: Update.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Replace GPL progname.h with simple workaround.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Avoid progname module (only GPL one left).  Add
-       memmem gnulib module.  Force gnulib files to be LGPL.
-
-2005-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/getdelim.c, gl/getdelim.h, gl/getline.c,
-       gl/getline.h, gl/getndelim2.c, gl/getndelim2.h, gl/m4/getdelim.m4,
-       gl/m4/getline.m4, gl/m4/getndelim2.m4, gl/m4/gnulib.m4,
-       gl/m4/onceonly_2_57.m4, gl/m4/ssize_t.m4: Update.
-
-2005-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-alert.c, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client1.c, doc/examples/ex-client2.c,
-       doc/examples/ex-crq.c, doc/examples/ex-pkcs12.c,
-       doc/examples/ex-rfc2818.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-export.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-srp.c, doc/examples/ex-serv1.c,
-       doc/examples/ex-session-info.c, doc/examples/ex-verify.c,
-       doc/examples/ex-x509-info.c: Indent.
-
-2005-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, doc/Makefile.am, doc/examples/.cvsignore,
-       doc/examples/Makefile.am, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client1.c, doc/examples/ex-client2.c,
-       doc/examples/ex-crq.c, doc/examples/ex-pkcs12.c,
-       doc/examples/ex-rfc2818.c, doc/examples/ex-serv-anon.c,
-       doc/examples/ex-serv-export.c, doc/examples/ex-serv-pgp.c,
-       doc/examples/ex-serv-srp.c, doc/examples/ex-serv1.c,
-       doc/examples/ex-session-info.c, doc/examples/ex-verify.c,
-       doc/examples/ex-x509-info.c: Build examples.  Fix errors.
-
-2005-07-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2005-07-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Doc fixes, tiny patch from Ralph Giles
-       <giles@onlinegamegroup.com>.
-
-2005-07-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc4132.txt: Add.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.6.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/libtasn1.h: Sync with 0.2.14.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_anon_cred.c: Fix GTK-DOC warnings.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: gtk-doc 1.4 is ok
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/gnutls.h.in, includes/gnutls/openpgp.h,
-       lib/gnutls_auth.c, lib/gnutls_cert.c, lib/gnutls_ui.c: Fix GTK-DOC
-       warnings.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/x509.h: Fix GTK-DOC warning.
-
-2005-07-16  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c, lib/x509/privkey.c, lib/x509/x509.c: Fix GTK-DOC
-       warnings.
-
-2005-07-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-salowey-tls-ticket-03.txt: Add.
-
-2005-07-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-x509-info.c: corrected wrong number of arguments
-       in gnutls_x509_crt_import(). Reported by Fco J. Arias.
-
-2005-07-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/gnutls_compress_int.c, libextra/gnutls_extra.c: 
-       Fix LZO 1.x vs 2.x header file #include mess.
-
-2005-07-14  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2005-07-14  Simon Josefsson <simon@josefsson.org>
-
-       * gl/m4/size_max.m4, gl/size_max.h: Update.
-
-2005-07-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2005-07-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Check for lzo1x_1_compress in -llzo2 too, and prefer
-       -llzo2 if available, reported by Thomas Klausner <tk@giga.or.at>.
-
-2005-07-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/gnutls_compress_int.c, libextra/Makefile.am,
-       libextra/gnutls_extra.c, libextra/lzoconf.h, libextra/lzodefs.h,
-       libextra/minilzo.c, libextra/minilzo.h,
-       libextra/minilzo/.cvsignore, libextra/minilzo/Makefile.am,
-       libextra/minilzo/README.LZO, libextra/minilzo/lzoconf.h,
-       libextra/minilzo/lzodefs.h, libextra/minilzo/minilzo.c,
-       libextra/minilzo/minilzo.h, libextra/minilzo/testmini.c: Move
-       MiniLZO to separate directory.  Update from MiniLZO 2.00 to 2.01.
-
-2005-07-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-07-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-07-03  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-07-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.5.
-
-2005-07-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/libgnutls-extra-config.in: Fix --help for distcheck.
-
-2005-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls-config.in: Send --help output to stdout.
-
-2005-07-02  Simon Josefsson <simon@josefsson.org>
-
-       * lib/libgnutls-config.in: Exit with 0 for --help.
-
-2005-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12_neon: Fix.
-
-2005-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkcs12_neon: Fix objdir!=srcdir (for distcheck).
-
-2005-06-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Dist gnutls-logo.eps.
-
-2005-06-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-rescorla-dtls-05.txt: Add.
-
-2005-06-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-13.txt: Add.
-
-2005-06-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-09.txt: Add.
-
-2005-06-17  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Use --enable-gtk-doc during distcheck.
-
-2005-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2005-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/Makefile.am: Fix srcdir!=objdir builds.
-
-2005-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/Makefile.am, libextra/openpgp/Makefile.am: Add
-       license.
-
-2005-06-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am, libextra/openpgp/Makefile.am: Fix
-       srcdir!=objdir builds.
-
-2005-06-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-06-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/lzodefs.h: Add.
-
-2005-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, THANKS: [no log message]
-
-2005-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_compress_int.c, libextra/Makefile.am,
-       libextra/gnutls_extra.c, libextra/lzoconf.h, libextra/minilzo.c,
-       libextra/minilzo.h: Updated to minilzo 2.0 and corrected stuff
-       pointed out by
-
-2005-06-03  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-12.txt: Add.
-
-2005-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509_write.c: some updates to prevent warnings for non
-       constant initializers
-
-2005-05-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-10.txt: Add.
-
-2005-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_ui.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/mpi.c, lib/x509/sign.c,
-       lib/x509/x509_write.c: fixed some type conflicts.
-
-2005-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: crt_list_import() now works with DER certificates
-       (although only 1 can be imported).
-
-2005-05-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-05-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2005-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/dn.c: [no log message]
-
-2005-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/dn.c: correct the behaviour in DN parsing. Return the
-       correct size when requested.
-
-2005-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.4.
-
-2005-05-28  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2005-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: print the correct issuer in verify_chain()
-
-2005-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_anon.c, lib/auth_cert.c, lib/auth_dhe.c,
-       lib/auth_rsa.c, lib/auth_rsa_export.c, lib/auth_srp.c,
-       lib/auth_srp_passwd.c, lib/auth_srp_rsa.c, lib/ext_srp.c,
-       lib/gnutls_cert.c, lib/gnutls_handshake.c, lib/gnutls_state.c,
-       lib/gnutls_ui.c, lib/gnutls_x509.c, lib/x509/pkcs12_bag.c,
-       src/certtool.c: eliminated some warnings.
-
-2005-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2005-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * config.rpath, doc/gendocs.sh: Update.
-
-2005-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS, COPYING, COPYING.LIB, Makefile.am, NEWS, configure.in,
-       crypto/Makefile.am, crypto/gc-libgcrypt.c, crypto/gc.h,
-       crypto/pkcs5.c, crypto/test-gc.c, crypto/utils.c, crypto/utils.h,
-       doc/Makefile.am, doc/fdl.texi, doc/gendocs.sh,
-       doc/gendocs_template, includes/Makefile.am,
-       includes/gnutls/extra.h, includes/gnutls/gnutls.h.in,
-       includes/gnutls/openpgp.h, includes/gnutls/openssl.h,
-       includes/gnutls/pkcs12.h, includes/gnutls/x509.h, lib/Makefile.am,
-       lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/auth_rsa.c, lib/auth_rsa_export.c, lib/auth_srp.c,
-       lib/auth_srp.h, lib/auth_srp_passwd.c, lib/auth_srp_passwd.h,
-       lib/auth_srp_rsa.c, lib/auth_srp_sb64.c, lib/debug.c, lib/debug.h,
-       lib/defines.h, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/ext_max_record.c, lib/ext_max_record.h, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/ext_srp.c, lib/ext_srp.h,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_auth.h, lib/gnutls_auth_int.h, lib/gnutls_buffer.h,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_compress_int.c, lib/gnutls_compress_int.h,
-       lib/gnutls_constate.c, lib/gnutls_constate.h, lib/gnutls_datum.c,
-       lib/gnutls_datum.h, lib/gnutls_db.c, lib/gnutls_db.h,
-       lib/gnutls_dh.c, lib/gnutls_dh.h, lib/gnutls_dh_primes.c,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_mem.c,
-       lib/gnutls_mem.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/gnutls_num.c, lib/gnutls_num.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_priority.c, lib/gnutls_priority.h,
-       lib/gnutls_random.c, lib/gnutls_random.h, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session.h, lib/gnutls_session_pack.c,
-       lib/gnutls_session_pack.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/io_debug.h, lib/memmem.c,
-       lib/memmem.h, lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/errors.h, lib/minitasn1/gstr.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c, lib/strfile.h, lib/x509/Makefile.am,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/compat.c,
-       lib/x509/compat.h, lib/x509/crl.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/crq.h, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/dsa.c, lib/x509/dsa.h, lib/x509/extensions.c,
-       lib/x509/extensions.h, lib/x509/mpi.c, lib/x509/mpi.h,
-       lib/x509/pkcs12.c, lib/x509/pkcs12.h, lib/x509/pkcs12_bag.c,
-       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/pkcs7.h,
-       lib/x509/privkey.c, lib/x509/privkey.h, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818.h, lib/x509/rfc2818_hostname.c, lib/x509/sign.c,
-       lib/x509/sign.h, lib/x509/verify.c, lib/x509/verify.h,
-       lib/x509/x509.c, lib/x509/x509.h, lib/x509/x509_write.c,
-       lib/x509/xml.c, lib/x509_b64.c, lib/x509_b64.h,
-       libextra/Makefile.am, libextra/gnutls_extra.c,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openssl.c, libextra/lzoconf.h, libextra/minilzo.c,
-       libextra/minilzo.h, libextra/opencdk/armor.c,
-       libextra/opencdk/cipher.c, libextra/opencdk/cipher.h,
-       libextra/opencdk/compress.c, libextra/opencdk/context.h,
-       libextra/opencdk/encrypt.c, libextra/opencdk/filters.h,
-       libextra/opencdk/kbnode.c, libextra/opencdk/keydb.c,
-       libextra/opencdk/keygen.c, libextra/opencdk/keylist.c,
-       libextra/opencdk/keyserver.c, libextra/opencdk/main.c,
-       libextra/opencdk/main.h, libextra/opencdk/md.c,
-       libextra/opencdk/md.h, libextra/opencdk/misc.c,
-       libextra/opencdk/new-packet.c, libextra/opencdk/opencdk.h,
-       libextra/opencdk/packet.h, libextra/opencdk/plaintext.c,
-       libextra/opencdk/pubkey.c, libextra/opencdk/read-packet.c,
-       libextra/opencdk/seskey.c, libextra/opencdk/sig-check.c,
-       libextra/opencdk/sign.c, libextra/opencdk/stream.c,
-       libextra/opencdk/stream.h, libextra/opencdk/sym-cipher.c,
-       libextra/opencdk/trustdb.c, libextra/opencdk/types.h,
-       libextra/opencdk/verify.c, libextra/opencdk/write-packet.c,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/pgp.c, libextra/openpgp/pgpverify.c,
-       libextra/openpgp/privkey.c, libextra/openpgp/xml.c,
-       libextra/openssl_compat.c, libextra/openssl_compat.h,
-       src/Makefile.am, src/certtool-cfg.c, src/certtool.c, src/cli.c,
-       src/common.c, src/crypt.c, src/list.h, src/prime.c, src/serv.c,
-       src/tests.c, src/tls_test.c, tests/Makefile.am, tests/anonself.c,
-       tests/chain, tests/openssl.c, tests/pkcs12_neon, tests/pkits,
-       tests/pkits_crl, tests/pkits_crt, tests/pkits_pkcs12,
-       tests/pkits_smime, tests/simple.c, tests/utils.c, tests/utils.h: 
-       Update FSF office address in license.
-
-2005-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Update FSF office address in license.
-
-2005-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-05-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/alloca_.h, gl/asnprintf.c, gl/error.c,
-       gl/error.h, gl/getline.c, gl/getline.h, gl/getndelim2.c,
-       gl/getndelim2.h, gl/getpass.c, gl/getpass.h, gl/m4/gnulib.m4,
-       gl/m4/minmax.m4, gl/minmax.h, gl/printf-args.c, gl/printf-args.h,
-       gl/printf-parse.c, gl/printf-parse.h, gl/progname.c, gl/progname.h,
-       gl/snprintf.c, gl/snprintf.h, gl/stdbool_.h, gl/vasnprintf.c,
-       gl/vasnprintf.h, gl/xsize.h: Update.
-
-2005-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/certtool.1: [no log message]
-
-2005-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-verify.c: improved the verification example.
-
-2005-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/verify.c: Corrected a bug in
-       certificate verification that could lead to a trusted certificate
-       path to be marked as non-trusted, if it included the last
-       self-signed certificate in the chain.
-
-2005-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/ex-cert-select.c: [no log message]
-
-2005-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog, NEWS, configure.in, doc/manpages/Makefile.am,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: Introduced to --fix-key option to certtool, which
-       can be used to regenerate the (optional) parameters in a private
-       key. It should be used together with --key-info.
-
-2005-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc3546bis-01.txt: Add.
-
-2005-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Typo.
-
-2005-05-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Include defines.h before gnutls.h, to pull in
-       config.h, to make sure memmem.h prototype memmem properly, from
-       Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
-
-2005-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: removed unneeded gnutls_x509_crt_init().
-
-2005-05-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-10.txt: Add.
-
-2005-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: [no log message]
-
-2005-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/pkcs12.c: corrected some things that
-       could affect 64 bit machines.
-
-2005-05-01  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Use gnutls/extra.h to get
-       gnutls_openpgp_recv_key_func type.
-
-2005-05-01  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/openpgp.h: Remove, defined in gnutls.h.
-
-2005-04-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: added date
-
-2005-04-28  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2005-04-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Revert fully, LT_CURRENT was also updated.  Sorry.
-
-2005-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Revert partially, LT_AGE already incremented.
-
-2005-04-27  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump versions.
-
-2005-04-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: for the gnutls_cipher.c bug, that could cause denial of
-       service
-
-2005-04-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: increased age
-
-2005-04-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/gnutls/x509.h,
-       lib/gnutls_rsa_export.c, lib/x509/privkey.c, src/certtool.c: 
-       certtool can now fix the old RSA private keys. This is done by using
-       the -k parameter.
-
-2005-04-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c, lib/x509/x509.h: at the export phase, encode
-       the key.
-
-2005-04-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-04-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_mpi.h, lib/x509/privkey.c, lib/x509/x509.h: corrected
-       bugs in RSA key export.
-
-2005-04-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c: added an extra check while checking the
-       padding.
-
-2005-04-25  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-04-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.2.
-
-2005-04-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Don't regenerate error_codes.texi when gnutls.h
-       is newer, because it will always be, and this causes texinfo to be
-       run on the manual.
-
-2005-04-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Dist more.
-
-2005-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c: some updates in the description of
-       gnutls_alert_get()
-
-2005-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c: gnutls_alert_send_appropriate() is no longer
-       marked as deprecated.
-
-2005-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: [no log message]
-
-2005-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: [no log message]
-
-2005-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2005-04-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_alert.c: Make it compile.
-
-2005-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.h: [no log message]
-
-2005-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.h, lib/gnutls_cert.c, lib/gnutls_session_pack.c,
-       lib/gnutls_ui.c: some cleanups, and changes in the resuming code to
-       avoid freeing non-allocated stuff.
-
-2005-04-19  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Remove some warnings.
-
-2005-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: some cleanups in certtool
-
-2005-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, includes/Makefile.am, includes/gnutls/Makefile.am: 
-       Remove includes/gnutls/Makefile.am.  Fix includes/Makefile.am to
-       compensate.
-
-2005-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Remove gnutls_alert.h.
-
-2005-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/Makefile.am: Add license.
-
-2005-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * includes/Makefile.am: Simplify.  Add license.
-
-2005-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/Makefile.am: Don't dist gnutls.h, it is generated.
-
-2005-04-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, includes/gnutls/gnutls.h.in, lib/gnutls.h.in.in: 
-       Move lib/gnutls.h.in.in into includes/gnutls/gnutls.h.in.  Fix
-       #warning about missing components, it didn't work in config.status.
-       Simplify configure.ac wrt to gnutls.h.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add more warnings (likely to be trimmed later).
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h: Remove.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.h: Remove dupe definition.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.h.in.in: Revert.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.h.in.in: Moved from gnutls_mem.h.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_mem.h: Cleanup.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.h: Fix warning.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/main.c: Fix warning.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_cert.c, lib/auth_srp_passwd.c, lib/gnutls_constate.c,
-       lib/gnutls_v2_compat.c, lib/gnutls_x509.c, libextra/opencdk/main.c,
-       libextra/opencdk/misc.c: Fix warning.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_hash_int.c, lib/gnutls_kx.c: Fix warning.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.c: Fix warnings.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_state.c, lib/gnutls_state.h: Fix
-       warning.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/getpass.m4: Update.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_handshake.h: Cleanup.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/getline.m4, gl/m4/getpass.m4,
-       gl/progname.c, gl/size_max.h, gl/vasnprintf.c: Update.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Improve warning CFLAGS.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: (_gnutls_x509_oid_data2string): Fix memory leak, tiny patch from
-       Rupert Kittinger <rkit@mur.at>.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Make error_codes.texi build, after removing
-       gnutls_errors_int.h.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_alert.c: Make it build.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_srp.c, lib/ext_srp.c, lib/gnutls_alert.h,
-       lib/gnutls_algorithms.h, lib/gnutls_handshake.c, lib/gnutls_kx.c,
-       lib/gnutls_record.c: Simplify.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_auth_int.h, lib/gnutls_db.h: Cleanup.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CODING_STYLE, lib/Makefile.am, lib/gnutls_errors.h,
-       lib/gnutls_errors_int.h: Simplify.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_ui.h: Remove. (Everything moved to gnutls.h.in.in.)
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, lib/auth_anon.c, lib/auth_anon.h,
-       lib/auth_cert.c, lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.h, lib/auth_srp_passwd.c,
-       lib/auth_srp_rsa.c, lib/debug.c, lib/debug.h, lib/gnutls.h.in.in,
-       lib/gnutls_alert.h, lib/gnutls_auth_int.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_dh.h, lib/gnutls_errors_int.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_mem.h, lib/gnutls_record.c, lib/gnutls_record.h,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.h, lib/gnutls_sig.h,
-       lib/gnutls_state.c, lib/gnutls_state.h, lib/gnutls_ui.c,
-       lib/gnutls_x509.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/x509.c, lib/x509/x509.h,
-       lib/x509/x509_write.c, libextra/openpgp/openpgp.h: Clean up #include
-       situation, merge from gnutls_1_2_1_with_include_fixes.  Now
-       lib/gnutls_int.h start by including gnutls/gnutls.h, to check
-       prototypes during compile time.  More cleanups are expected.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Mention API/ABI changes more clearly.
-
-2005-04-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2005-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c: Some fixes for
-       AuthorityKeyIdentifier parsing. Suggested by Fabio.
-
-2005-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: [no log message]
-
-2005-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-rescorla-dtls-04.txt: Add.
-
-2005-04-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-09.txt: Add.
-
-2005-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/manpages/Makefile.am, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/dn.c, lib/x509/pkcs12.c: Fixed pkcs12
-       friendly name and local key identifier decoding.
-
-2005-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: print some more information for PKCS #12
-       structures.
-
-2005-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: [no log message]
-
-2005-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/x509_write.c: [no log message]
-
-2005-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c: return unexpected_message alert in the case of
-       a handshake unexpected message.
-
-2005-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2005-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: Doc fix, suggested by Nikos Mavrogiannopoulos
-       <nmav@gnutls.org>.
-
-2005-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.1.
-
-2005-04-04  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: Doc fixes, adapted from suggestions by Martin
-       Lambers <marlam@web.de>.
-
-2005-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: added warning to libraries compiled with features
-       disabled.
-
-2005-04-02  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Fix.
-
-2005-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: some more documentation fixes.
-
-2005-03-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_record.c: Doc fix, reported by Martin Lambers
-       <marlam@web.de>.
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: [no log message]
-
-2005-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/x509.c, lib/x509/x509.h,
-       src/certtool.c, src/cli.c: more improvments to
-       gnutls_x509_crt_list_import()
-
-2005-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/x509.c, lib/x509/x509.h,
-       src/cli.c: improved gnutls_x509_crt_list_import().
-
-2005-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: certtool can now print certificate information in
-       files containing multiple certificates.
-
-2005-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: [no log message]
-
-2005-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/x509.c, src/cli.c: Added
-       the function gnutls_x509_crt_list_import(). This is a convinience
-       function to import many certificates with a single call.
-
-2005-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/x509_write.c: Added
-       gnutls_x509_crt_set_extension_by_oid().
-
-2005-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/crq.c: corrected bug in
-       gnutls_crq_get_attribute_by_oid()
-
-2005-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: fixed the library number.
-
-2005-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls_hash_int.h, lib/x509/common.c,
-       lib/x509/crq.c, lib/x509/privkey_pkcs8.c, lib/x509/x509.h,
-       lib/x509/xml.c, libextra/opencdk/opencdk.h: [no log message]
-
-2005-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/x509/crq.c: Added the functions:     gnutls_x509_crq_get_attribute_by_oid() and     gnutls_x509_crq_set_attribute_by_oid().
-
-2005-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_cert.h, lib/auth_dh_common.c,
-       lib/auth_dh_common.h, lib/gnutls_auth.c, lib/gnutls_record.c,
-       lib/gnutls_session_pack.c: eliminated some memory leaks caused by
-       DHE and RSA-EXPORT ciphersuites. Thanks to Yoann Vandoorselaere for
-       reporting them.
-
-2005-03-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-srp-09.txt: Add.
-
-2005-03-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-03-11  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/tests/Makefile.am: Dist testutils.{c,h}.
-
-2005-03-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Flow.
-
-2005-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c, libextra/openpgp/pgpverify.c,
-       libextra/openssl_compat.c: some doc fixes.
-
-2005-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: [no log message]
-
-2005-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/dsa.c, lib/x509/privkey.c: [no log message]
-
-2005-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/x509/common.h, lib/x509/pkcs12.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.h: gnutls will now recognize
-       the GOST signature and public key OIDs. However no support is
-       planned.
-
-2005-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dh.c: added a check to test whether the DH secret is
-       zero.
-
-2005-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: [no log message]
-
-2005-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/verify.c,
-       lib/x509/verify.h: Improved the semantics of
-       GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT, to allow only trusted Version 1
-       CAs and introduced GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT which has
-       the old semantics.
-
-2005-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: test commit
-
-2005-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: [no log message]
-
-2005-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2005-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_state.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/pkcs12.c, lib/x509/privkey.c, lib/x509/sign.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_write.c,
-       libextra/gnutls_openssl.c, src/certtool.c, src/cli.c, src/common.c,
-       src/serv.c, src/tests.c: renamed all instances of _SHA to _SHA1 to
-       make naming more consistent and clear.
-
-2005-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2005-03-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Don't force -O2 -finline-functions.
-
-2005-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa, src/prime.c: Added the option --get-dh-params to
-       certtool, in order to get the included primes and generators
-
-2005-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool.c: added warning when MD5 is being used.
-
-2005-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: [no log message]
-
-2005-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_srp.c: added more strict checks for g,n
-
-2005-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-salowey-tls-ticket-00.txt,
-       doc/protocol/draft-salowey-tls-ticket-02.txt: new ticket
-
-2005-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-02-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-06.txt: Add.
-
-2005-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: some modifications for gnutls_bye()
-       semantics.
-
-2005-02-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-rescorla-dtls-03.txt: Add.
-
-2005-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/srptool.1: updated documentation for srptool.1
-
-2005-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add -Wshadow for --enable-developer-mode.
-
-2005-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_ui.c, lib/gnutls_ui.h: (gnutls_rsa_export_get_pubkey): Don't use reserved word "exp",
-       reported by Neil Spring <nspring@cs.washington.edu>.
-
-2005-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h, lib/x509/crl.c: (gnutls_x509_crl_get_crt_serial): Don't use reserved word "time",
-       reported by Neil Spring <nspring@cs.washington.edu>.
-
-2005-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: Fix last commit.
-
-2005-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl.c: (gnutls_x509_crl_get_crt_serial): Don't use reserved word "index",
-       reported by Neil Spring <nspring@cs.washington.edu>.
-
-2005-02-12  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h: (gnutls_x509_crl_get_crt_serial): Don't use reserved word "index" in
-       prototype, reported by Neil Spring <nspring@cs.washington.edu>.
-
-2005-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: [no log message]
-
-2005-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2005-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h: Protect for C++, tiny patch from Daniel
-       Black <dragonheart@gentoo.org>.
-
-2005-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Scan in lib/x509/ too, sources now
-       fixed.
-
-2005-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c: Doc fix.
-
-2005-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/privkey.c, lib/x509/x509.c: Doc fix.
-
-2005-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crq.c, lib/x509/dn.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs7.c, lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/x509.c: Doc fix.
-
-2005-02-06  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Markup fixes.
-
-2005-02-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2005-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-04.txt,
-       doc/protocol/draft-ietf-tls-srp-07.txt: [no log message]
-
-2005-01-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-lee-tls-seed-01.txt: Add.
-
-2005-01-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: Fix gtk-doc.
-
-2005-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey_pkcs8.c, lib/x509/x509.c, lib/x509/xml.c: some
-       changes for 64bit machines.
-
-2005-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.c: [no log message]
-
-2005-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/compat.c: these functions are not exported in the API
-       documentation.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Don't use "devel" directory.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: Fix.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.2.0.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Make it compile.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs_template: Add.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs.sh, doc/gendocs_template: Update.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Fix gnutls-extra-api.texi.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Fix x509-api.texi.
-
-2005-01-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix indices, suggested by Nikos.
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * : converted the eps to pdf (using epstopdf), resulting in a better
-       output in gnutls.pdf.
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: corrected types.
-
-2005-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add, from Nikos.
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: [no log message]
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi, doc/manpages/Makefile.am,
-       doc/protocol/draft-ietf-tls-openpgp-keys-05.txt: [no log message]
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crypt-gaa.c, src/crypt-gaa.h, src/crypt.gaa: srptool has now
-       the --version parameter.
-
-2005-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-05.txt,
-       doc/protocol/draft-ietf-tls-openpgp-keys-06.txt: Add.
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: [no log message]
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crypt.c: print version in srptool
-
-2005-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2005-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crypt.c: [no log message]
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/common.c: --disable-extra-pki works again.
-
-2005-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/auth_cert.c, lib/auth_cert.h, lib/auth_srp.h,
-       lib/gnutls_algorithms.c, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_priority.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.h,
-       libextra/gnutls_extra.c, libextra/gnutls_extra.h,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/openpgp.h: 
-       Changes to make the --disable-* options work again.
-
-2005-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2005-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Typo.
-
-2005-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix license header.  Mention TLS 1.1 more.  Talk
-       about TLS instead of TLS 1.0 in general.
-
-2005-01-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/error.c, gl/gettext.h, gl/m4/alloca.m4,
-       gl/m4/codeset.m4, gl/m4/eoverflow.m4, gl/m4/error.m4,
-       gl/m4/getline.m4, gl/m4/getndelim2.m4, gl/m4/getpass.m4,
-       gl/m4/gettext.m4, gl/m4/glibc21.m4, gl/m4/gnulib.m4,
-       gl/m4/iconv.m4, gl/m4/intdiv0.m4, gl/m4/intmax.m4,
-       gl/m4/intmax_t.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4,
-       gl/m4/inttypes_h.m4, gl/m4/isc-posix.m4, gl/m4/lcmessage.m4,
-       gl/m4/lib-ld.m4, gl/m4/lib-link.m4, gl/m4/lib-prefix.m4,
-       gl/m4/longdouble.m4, gl/m4/longlong.m4, gl/m4/nls.m4, gl/m4/po.m4,
-       gl/m4/printf-posix.m4, gl/m4/progtest.m4, gl/m4/signed.m4,
-       gl/m4/size_max.m4, gl/m4/snprintf.m4, gl/m4/ssize_t.m4,
-       gl/m4/stdbool.m4, gl/m4/stdint_h.m4, gl/m4/strerror_r.m4,
-       gl/m4/uintmax_t.m4, gl/m4/ulonglong.m4, gl/m4/vasnprintf.m4,
-       gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/size_max.h: 
-       Update.
-
-2005-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-01-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/anonself.c, tests/chain,
-       tests/openssl.c, tests/pkcs12_neon, tests/simple.c, tests/utils.c,
-       tests/utils.h: Clean up license templates.
-
-2005-01-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Clean up license templates.
-
-2005-01-24  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in, doc/Makefile.am, lib/Makefile.am,
-       lib/gnutls.pc.in, lib/x509/Makefile.am, lib/x509/common.h,
-       lib/x509/compat.h, lib/x509/crq.h, lib/x509/dn.h, lib/x509/dsa.h,
-       lib/x509/extensions.h, lib/x509/mpi.h, lib/x509/pkcs12.h,
-       lib/x509/pkcs7.h, lib/x509/privkey.h, lib/x509/rfc2818.h,
-       lib/x509/sign.h, lib/x509/verify.h, lib/x509/x509.h,
-       libextra/Makefile.am, libextra/gnutls-extra.pc.in,
-       libextra/gnutls_extra.h, libextra/openssl_compat.h: Clean up license
-       templates.
-
-2005-01-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.pc.in: Clean up license templates.
-
-2005-01-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/gnutls_int_compat.c: Remove
-       gnutls_int_compat.c (not used).
-
-2005-01-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/auth_anon.h, lib/auth_cert.h,
-       lib/auth_dh_common.h, lib/auth_srp.h, lib/auth_srp_passwd.h,
-       lib/debug.h, lib/defines.h, lib/ext_cert_type.h,
-       lib/ext_max_record.h, lib/ext_server_name.h, lib/ext_srp.h,
-       lib/gnutls.h.in.in, lib/gnutls_alert.h, lib/gnutls_algorithms.h,
-       lib/gnutls_auth.h, lib/gnutls_auth_int.h, lib/gnutls_buffer.h,
-       lib/gnutls_buffers.h, lib/gnutls_cert.h, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.h,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.h,
-       lib/gnutls_datum.h, lib/gnutls_db.h, lib/gnutls_dh.h,
-       lib/gnutls_errors.h, lib/gnutls_errors_int.h,
-       lib/gnutls_extensions.h, lib/gnutls_global.h,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_kx.h, lib/gnutls_mem.h, lib/gnutls_mpi.h,
-       lib/gnutls_num.h, lib/gnutls_pk.h, lib/gnutls_priority.h,
-       lib/gnutls_random.h, lib/gnutls_record.h, lib/gnutls_rsa_export.h,
-       lib/gnutls_session.h, lib/gnutls_session_pack.h, lib/gnutls_sig.h,
-       lib/gnutls_srp.h, lib/gnutls_state.h, lib/gnutls_str.h,
-       lib/gnutls_ui.h, lib/gnutls_v2_compat.h, lib/gnutls_x509.h,
-       lib/io_debug.h, lib/strfile.h, lib/x509_b64.c, lib/x509_b64.h: Clean
-       up license templates.
-
-2005-01-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_anon.h, lib/auth_cert.h, lib/auth_dh_common.h,
-       lib/auth_srp.h, lib/auth_srp_passwd.h, lib/debug.h, lib/defines.h,
-       lib/ext_cert_type.h, lib/ext_max_record.h, lib/ext_server_name.h,
-       lib/ext_srp.h, lib/gnutls_alert.h, lib/gnutls_algorithms.h,
-       lib/gnutls_auth.h, lib/gnutls_auth_int.h, lib/gnutls_buffer.h,
-       lib/gnutls_buffers.h, lib/gnutls_cert.h, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.h,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.h,
-       lib/gnutls_datum.h, lib/gnutls_db.h, lib/gnutls_dh.h,
-       lib/gnutls_errors.h, lib/gnutls_errors_int.h,
-       lib/gnutls_extensions.h, lib/gnutls_global.h,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_kx.h, lib/gnutls_mem.h, lib/gnutls_mpi.h,
-       lib/gnutls_num.h, lib/gnutls_pk.h, lib/gnutls_priority.h,
-       lib/gnutls_random.h, lib/gnutls_record.h, lib/gnutls_rsa_export.h,
-       lib/gnutls_session.h, lib/gnutls_session_pack.h, lib/gnutls_sig.h,
-       lib/gnutls_srp.h, lib/gnutls_state.h, lib/gnutls_str.h,
-       lib/gnutls_ui.h, lib/gnutls_v2_compat.h, lib/gnutls_x509.h,
-       lib/io_debug.h, lib/memmem.h, lib/strfile.h, lib/x509_b64.h: Clean
-       up license templates.
-
-2005-01-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/debug.c, lib/ext_server_name.c: File is LGPL.
-
-2005-01-22  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h, includes/gnutls/openpgp.h,
-       includes/gnutls/openssl.h, includes/gnutls/pkcs12.h,
-       includes/gnutls/x509.h: Clean up license templates.
-
-2005-01-22  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/pgp.c, libextra/openpgp/pgpverify.c,
-       libextra/openpgp/privkey.c, libextra/openpgp/xml.c,
-       libextra/openssl_compat.c: Clean up license templates.
-
-2005-01-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c, lib/x509/compat.c, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
-       lib/x509/dsa.c, lib/x509/extensions.c, lib/x509/mpi.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c,
-       lib/x509/pkcs7.c, lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_write.c, lib/x509/xml.c,
-       libextra/gnutls_extra.c, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openssl.c, libextra/openssl_compat.c: Clean up
-       license templates.
-
-2005-01-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_anon.c, lib/auth_cert.c, lib/auth_dh_common.c,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/auth_srp.c, lib/auth_srp_passwd.c, lib/auth_srp_rsa.c,
-       lib/auth_srp_sb64.c, lib/debug.c, lib/ext_cert_type.c,
-       lib/ext_max_record.c, lib/ext_server_name.c, lib/ext_srp.c,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_compress.c, lib/gnutls_compress_int.c,
-       lib/gnutls_constate.c, lib/gnutls_datum.c, lib/gnutls_db.c,
-       lib/gnutls_dh.c, lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_mem.c, lib/gnutls_mpi.c,
-       lib/gnutls_num.c, lib/gnutls_num.h, lib/gnutls_pk.c,
-       lib/gnutls_priority.c, lib/gnutls_random.c, lib/gnutls_record.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_session.c,
-       lib/gnutls_session.h, lib/gnutls_session_pack.c, lib/gnutls_sig.c,
-       lib/gnutls_srp.c, lib/gnutls_state.c, lib/gnutls_str.c,
-       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
-       lib/x509_b64.c: Clean up license templates.
-
-2005-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, src/certtool.c: some cleanups.
-
-2005-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls.h.in.in,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/mpi.c,
-       lib/x509/mpi.h, lib/x509/sign.c, lib/x509/sign.h,
-       lib/x509/x509_write.c, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa: introduced
-       gnutls_x509_crt_sign2(), gnutls_x509_crq_sign2() and
-       gnutls_x509_crl_sign2(). Also added the --hash option to certtool in
-       order to be able to generate certificates signed with different hash
-       algorithms.
-
-2005-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls.h.in.in, lib/gnutls_handshake.c,
-       lib/gnutls_int.h: changed the values of GNUTLS_PK_UNKNOWN and
-       GNUTLS_SIGN_UNKNOWN to zero.
-
-2005-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-01-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_int.h, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/x509.h: Simplified the algorithm to OID
-       and vice versa functions, and added the RSA-RMD160 and the RMD160
-       OID.
-
-2005-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c, lib/x509/dn.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs7.c, lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/x509.c: updated documentation
-
-2005-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey_pkcs8.c: [no log message]
-
-2005-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openssl_compat.c: These compatibility functions will no
-       longer show up in the documentation.
-
-2005-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-rescorla-dtls-00.txt,
-       doc/protocol/draft-rescorla-dtls-02.txt: updated dtls draft
-
-2005-01-19  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (ChangeLog): Add --tags.
-
-2005-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c: increased a buffer.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (release): Fix.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.23.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix last commit better.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix client cert callback, to make X.509 client
-       authentication work.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (ChangeLog): Make it more like FSF format.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * .cvscopying: Add.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c, src/errcodes.c: Fix warning.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-01-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/parser_aux.c, lib/minitasn1/structure.c: Sync with
-       libtasn1 0.2.13.
-
-2005-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2005-01-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2005-01-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-hajjeh-tls-sign-00.txt: Add.
-
-2005-01-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: Fix.
-
-2005-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: added a check in verbose
-       mode to print the HTTPS server's name.
-
-2005-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tls_test.c: [no log message]
-
-2005-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2005-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: print RSA and DSA parameters in both certificates
-       and private keys.
-
-2005-01-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2005-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: (_gnutls_x509_data2hex): Make sure bin2hex will convert entire
-       string first, because bin2hex will not return NULL any longer.
-
-2005-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_constate.c: (_gnutls_set_keys): Use larger buffer, to hold entire hex output.
-       Reported by Michael.Ringe@aachen.utimaco.de.
-
-2005-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_kx.c: (generate_normal_master): Use larger buffer, to hold entire hex
-       output.  Reported by Michael.Ringe@aachen.utimaco.de.
-
-2005-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2005-01-07  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_str.c: (_gnutls_bin2hex): Return truncated string instead of NULL, to make
-       it easier to use directly as a parameter to printf.  Reported by
-       Michael.Ringe@aachen.utimaco.de.
-
-2005-01-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2005-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2005-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2005-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/dn.c: (_gnutls_x509_parse_dn): Return buffer size, not string size, in
-       *sizeof_buf.  Reported by Martin Lambers <marlam@web.de>.
-
-2005-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: Add gtk-doc URLs.
-
-2005-01-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: Fix gtk-doc stuff.
-
-2004-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-12-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc3546bis-00.txt: Add.
-
-2004-12-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2004-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: Update.
-
-2004-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/tests/.cvsignore: [no log message]
-
-2004-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/Makefile.am, nettle/tests/md2-test.c: Add MD2.
-
-2004-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/Makefile.am, nettle/md2-meta.c, nettle/md2.c,
-       nettle/md2.h, nettle/md5-compat.c, nettle/md5-compat.h,
-       nettle/tests/Makefile.am, nettle/tests/md5-compat-test.c: Remove
-       md5-compat (not used).
-
-2004-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2004-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c, crypto/gc.h: Add MD2 support, tiny patch
-       from Martin Kostner.
-
-2004-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/.cvsignore: [no log message]
-
-2004-12-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/alloca_.h, gl/progname.c, gl/progname.h: Update.
-
-2004-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-12-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-05.txt: Add.
-
-2004-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS: [no log message]
-
-2004-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/pkcs12.c: [no log message]
-
-2004-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: [no log message]
-
-2004-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: corrected bug in gnutls_x509_set_time()
-
-2004-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: some additions for certtool
-
-2004-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/gnutls.texi: added documentation for the export/import to
-       pkcs3 and pkcs1 formats for RSA and DH parameters.
-
-2004-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/x509/verify.c, libextra/gnutls_openssl.c,
-       src/certtool.c: Corrected bugs found by Marcin Garski
-       <mgarski@post.pl>
-
-2004-12-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-12-14  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Fix.
-
-2004-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-kerb-01.txt: Add.
-
-2004-12-09  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-09.txt: Add.
-
-2004-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-12-07  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-07.txt: Add.
-
-2004-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/pkix_asn1_tab.c, lib/x509/verify.c: The certificate
-       chain verification function now checks certificates in the reverse
-       order to minimize the resources spent. This has not be thoroughtly
-       tested.
-
-2004-11-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-04.txt: Add.
-
-2004-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/dn.c: corrected bug in parse_dn_oid(). Traced and
-       reported by Pelle Johansson.
-
-2004-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-23  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rfc3943.txt: Add.
-
-2004-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-19  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_ui.c: Doc fix.
-
-2004-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-17  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2004-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-03.txt: Add.
-
-2004-11-16  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2004-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/parser_aux.c, lib/minitasn1/structure.c: updated to
-       the new libtasn1.
-
-2004-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/extensions.c: [no log message]
-
-2004-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/extensions.c: corrected CRL dist points handling.
-
-2004-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/extensions.c: corrected a sigsegv when writing CRL
-       distribution points. It does not work properly though.
-
-2004-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-11-08  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Make private key optional in --to-p12, suggested
-       by Fabian Fagerholm <fabbe@paniq.net>.
-
-2004-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc.h: Cleanup.  Add PKs.
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.22.
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/Makefile.am: Need minitasn1 -I's.
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getpass.c, gl/m4/getpass.m4: Update.
-
-2004-11-04  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add link to PGP key.
-
-2004-11-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Forgot a source file.
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Remove leftovers.
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/.cvsignore: Fix.
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am, libextra/opencdk/Makefile.am,
-       libextra/openpgp/Makefile.am: Use convenience libraries for openpgp/
-       and opencdk/.
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Use LDFLAGS instead of LIBADD, for
-       $(LIBTASN1_LIBS).
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Simplify.
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Need libtasn1 for libgnutls-openssl.
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am: Add -I for alloca.h in gl (why wasn't
-       this needed before?).
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2004-11-03  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/.cvsignore: [no log message]
-
-2004-10-31  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls.types: Remove.
-
-2004-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c, lib/minitasn1/errors.c,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c: GTK-DOC fixes.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/openpgp.h: GTK-DOC fixes.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/crl.c, lib/x509/x509_write.c: Doc fix.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/structure.c: GTK-DOC fix.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Editorial fixes.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * src/errcodes.c: Fix.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: No need for libgnutls-extra.vers.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Need libgc.la for libgnutls_openssl.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Add openssl self test.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * tests/openssl.c: Add.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/openssl.h: Declare MD_CTX.  Add MD5_DIGEST_LENGTH.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_openssl.c: Remove MD_CTX (should never have been
-       here).
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/openssl.h, libextra/gnutls_openssl.c: Port openssl
-       glue to generic crypto API.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * tests/simple.c: Fix.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Recurse into minitasn1/.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Remove libgnutls.vers.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Use AM_CPPFLAGS instead of obsoleted INCLUDES.
-       Use only one of -Iminitasn1 or $(LIBTASN1_CFLAGS), depending on
-       ENABLE_MINITASN1.  Link with minitasn1/libminitasn1.la, instead of
-       building files here.  Don't use $(LIBTASN1_LIBS) unless
-       ENABLE_MINITASN1.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am: Build library in this directory.
-
-2004-10-30  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Put .la libraries in LIBADD, not LDFLAGS, as
-       recommended.
-
-2004-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/x509/Makefile.am: Build x509 files inside
-       x509/, to avoid scattering *.o and *.lo for every file in x509/ in
-       lib/.
-
-2004-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf: Fix.
-
-2004-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Remove SERV_LIBS (not used).
-
-2004-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Use AS_HELP_STRING.  Remove SERV_LIBS (unused).
-       Various indentation and cleanup.
-
-2004-10-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2004-10-29  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in, lib/Makefile.am, lib/libgnutls.vers,
-       libextra/Makefile.am, libextra/libgnutls-extra.vers: Replace GNU LD
-       version script with Libtool -export-symbols-regex, tiny patch from
-       Joe Orton <joe@manyfish.co.uk>.
-
-2004-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/errors.h, lib/minitasn1/errors_int.h,
-       lib/minitasn1/gstr.c, lib/minitasn1/gstr.h, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c: Doc fixes,
-       from Martijn Koster <mak@greenhills.co.uk>.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/structure.c: GTK-DOC fix.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/ext_server_name.c, lib/gnutls_alert.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_db.c, lib/gnutls_handshake.c,
-       lib/gnutls_priority.c, lib/gnutls_record.c, lib/gnutls_session.c,
-       lib/gnutls_srp.c, lib/gnutls_state.c, lib/gnutls_ui.c,
-       lib/gnutls_x509.c, lib/minitasn1/structure.c,
-       libextra/gnutls_openpgp.c: Doc fix.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Reenable --sgml-mode.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Change struct-marker & to #, to align with
-       modern GTK-DOC.  Improve texinfo and man output.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_int.h, lib/gnutls_ui.h, libextra/gnutls_openpgp.c,
-       libextra/minilzo.c, libextra/openpgp/gnutls_openpgp.h, src/serv.c: 
-       Indent.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * lib/auth_anon.h, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/auth_srp.h, lib/auth_srp_passwd.c,
-       lib/auth_srp_passwd.h, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/ext_srp.h, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_auth.h, lib/gnutls_auth_int.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_compress_int.c, lib/gnutls_constate.c,
-       lib/gnutls_datum.c, lib/gnutls_datum.h, lib/gnutls_db.c,
-       lib/gnutls_db.h, lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_extensions.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_kx.h, lib/gnutls_mem.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_random.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c, lib/gnutls_session.h,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/memmem.c, lib/memmem.h,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/compat.c,
-       lib/x509/compat.h, lib/x509/crl.c, lib/x509/crl_write.c,
-       lib/x509/crq.c, lib/x509/crq.h, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/dsa.h, lib/x509/extensions.c, lib/x509/extensions.h,
-       lib/x509/mpi.h, lib/x509/pkcs12.c, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
-       lib/x509/pkcs7.h, lib/x509/privkey.c, lib/x509/privkey.h,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/sign.h,
-       lib/x509/verify.c, lib/x509/verify.h, lib/x509/x509.c,
-       lib/x509/x509.h, lib/x509/x509_write.c, lib/x509_b64.c,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openssl.c, libextra/lzoconf.h, libextra/minilzo.c,
-       libextra/minilzo.h, libextra/openpgp/compat.c,
-       libextra/openpgp/extras.c, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/openpgp.h, libextra/openpgp/pgpverify.c,
-       libextra/openssl_compat.c, libextra/openssl_compat.h,
-       src/certtool-cfg.h, src/certtool.c, src/common.c, src/common.h,
-       src/list.h, src/serv.c, src/tests.c, src/tests.h: Indent.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Add indent target.
-
-2004-10-28  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am: Update.
-
-2004-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf: Mention --enable-gtk-doc.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix release target for new GTK-DOC.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.21.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf: Run gtkdocize.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/.cvsignore: Rewrite.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.tmpl: Remove.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am, doc/reference/gnutls-docs.sgml: Add
-       opencdk and libtasn1 to GTK-DOC manual.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Rewrite, GTK-DOC from CVS (plus
-       patches) seem to work reasonably well now.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls-docs.sgml: Add.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/common.c: Make it compile.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Dist *.p12.
-
-2004-10-27  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/.cvsignore: [no log message]
-
-2004-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs12_encr.c: allow for NULL and empty passwords in
-       pkcs12 string to key
-
-2004-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs12_encr.c: [no log message]
-
-2004-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs12_encr.c, lib/x509/privkey_pkcs8.c: [no log message]
-
-2004-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: some minor fixes.
-
-2004-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Move LIBS (i.e., -lz) to end of LIBGNUTLS_LIBS, to
-       fix libgnutls*-config --libs output, reported by Yoann
-       Vandoorselaere <yoann@prelude-ids.org>.
-
-2004-10-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Revert to my own Makefile.am for now.
-
-2004-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Resign PGP key.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Fix.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Fix.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Rewrite, align with upstream
-       recommendations.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/gnutls.types: Add.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am, tests/pkcs12_neon: Add.  Test vectors from Joe
-       Orton <joe@manyfish.co.uk>, by permission
-       (<20041024155032.GB26275@manyfish.co.uk>).
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_x509.c: (gnutls_certificate_set_x509_trust): Fix memory bug, tiny patch by
-       Aleix Conchillo Flaque <aleix@member.fsf.org>.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/.cvsignore, libextra/.cvsignore: [no log message]
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, configure.in, lib/Makefile.am, lib/gnutls.pc.in,
-       libextra/Makefile.am, libextra/gnutls-extra.pc.in: Add pkg-config
-       meta files, suggested by Stéphane LOEUILLET
-       <stephane.loeuillet@tiscali.fr>.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Generated.
-
-2004-10-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, lib/libgnutls-config.in,
-       libextra/libgnutls-extra-config.in: Add parameter --la-file to
-       libgnutls-config and libgnutls-extra-config, tiny patch contributed
-       by Joe Orton <joe@manyfish.co.uk>.
-
-2004-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: print teletex strings if they contain only
-       ASCII characters.
-
-2004-10-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/dn.c: corrected bug in _gnutls_x509_get_dn_oid().
-
-2004-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/common.c: [no log message]
-
-2004-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/common.h, lib/x509/dn.c,
-       lib/x509/dn.h: print the hex value of the name in certificates with
-       unknown character sets.
-
-2004-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/rfc2253.txt: added the LDAP string rfc.
-
-2004-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, src/certtool.c: some fixes
-
-2004-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .cvsusers, AUTHORS: [no log message]
-
-2004-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am, lib/x509/common.c: Increased the
-       precision in ASN.1 time to seconds from minutes.  In certificate
-       names disallow non UTF8 strings such as UCS-2 and UCS-4.
-
-2004-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2004-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.20.
-
-2004-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump versions.
-
-2004-10-12  Simon Josefsson <simon@josefsson.org>
-
-       * gl/getpass.c, gl/snprintf.c, gl/snprintf.h: Update gnulib.
-
-2004-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.19.
-
-2004-10-07  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: (HIGNORE): Add.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Look for memmem, for lib/memmem.c test.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/.cvsignore: [no log message]
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/alloca_.h, gl/asnprintf.c,
-       gl/m4/alloca.m4, gl/m4/eoverflow.m4, gl/m4/gnulib.m4,
-       gl/m4/intmax_t.m4, gl/m4/snprintf.m4, gl/m4/vasnprintf.m4,
-       gl/printf-args.c, gl/printf-args.h, gl/printf-parse.c,
-       gl/printf-parse.h, gl/snprintf.c, gl/snprintf.h, gl/vasnprintf.c,
-       gl/vasnprintf.h, gl/xsize.h: Add GNULib module, for missing snprintf
-       on OSF1 V4.0, reported by Yoann Vandoorselaere
-       <yoann@prelude-ids.org>.  Note that lib/ does not yet use it.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h, lib/gnutls_ui.h: (gnutls_certificate_verify_peers): Fix prototype.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h: Fix warning.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Don't use exit.h (not needed, EXIT_* is C89).
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * gl/exit.h, gl/m4/extensions.m4, gl/m4/gnulib.m4,
-       gl/m4/unlocked-io.m4: Update Gnulib.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/m4/gnulib.m4, gl/m4/memmem.m4,
-       gl/memmem.c, gl/memmem.h, lib/Makefile.am, lib/memmem.c,
-       lib/memmem.h: Don't link to gnulib in lib/ until issues are solved
-       (see bug-gnulib).  Move memmem from gl/ to lib/, since it is the
-       only gnulib module lib/ needs.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-10-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/error.c, gl/getndelim2.c,
-       gl/getpass.c, gl/m4/gnulib.m4, gl/m4/memmem.m4, gl/m4/memstr.m4,
-       gl/memmem.c, gl/memmem.h, gl/memstr.c, gl/memstr.h,
-       gl/unlocked-io.h, lib/defines.h, lib/gnutls_x509.c, lib/x509_b64.c: 
-       Update Gnulib.  Replace memstr with memmem, see continued discussion
-       on bug-gnulib.
-
-2004-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-10-04  Simon Josefsson <simon@josefsson.org>
-
-       * : Add.
-
-2004-10-01  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/compat.h: (gnutls_certificate_verify_peers): Add.
-
-2004-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-09-30  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/m4/gnulib.m4, gl/m4/memstr.m4,
-       gl/m4/strnstr.m4, gl/memstr.c, gl/memstr.h, gl/strnstr.c,
-       gl/strnstr.h, lib/defines.h, lib/gnutls_x509.c, lib/x509_b64.c: 
-       Replace strnstr with memstr.  See discussion on bug-gnulib list.
-
-2004-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Link with gnulib.  Currently only minmax.h and
-       strnstr are used, which are under LGPL.  The license templates in
-       gl/ will be fixed as soon as gnulib-tool support combined GPL/LGPL
-       projects.
-
-2004-09-29  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/m4/gnulib.m4, gl/m4/strnstr.m4,
-       gl/minmax.h, gl/progname.c, gl/progname.h, gl/strnstr.c,
-       gl/strnstr.h, lib/Makefile.am, lib/defines.h, lib/strnstr.c: Use
-       strnstr from gnulib.  Gnulib sync.
-
-2004-09-26  Simon Josefsson <simon@josefsson.org>
-
-       * gl/minmax.h: Use version from Lesser GNULib.
-
-2004-09-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2004-09-21  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am, libextra/opencdk/main.c: Use gnulib getpass
-       in opencdk.
-
-2004-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-rfc2818.c: Fix.
-
-2004-09-19  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-rfc2818.c, doc/gnutls.texi: Add.
-
-2004-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am, src/Makefile.am: Fix objdir != srcdir in -I,
-       reported by "Gerrit P. Haase" <gp@familiehaase.de>.
-
-2004-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Fix objdir != srcdir in -I, reported by "Gerrit
-       P. Haase" <gp@familiehaase.de>.
-
-2004-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2004-09-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/Makefile.am: Fix objdir != srcdir in -I, reported by
-       "Gerrit P. Haase" <gp@familiehaase.de>.
-
-2004-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-09-11  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-09-10  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: (load_cert): Fix crash in `certtool --to-p12 --load-privkey foo'.
-
-2004-09-09  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c: Sync with libtasn1 0.2.11.
-
-2004-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * : New version, solve the S/MIME bugs I reported.  Downloaded from
-       http://csrc.nist.gov/pki/testing/x509paths.html on 2004-09-03 with
-       SHA1 ada0f267e0ff4eb16a0e19964cf518a833f00093.
-
-2004-09-02  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2004-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2004-08-31  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cert.c, lib/x509/x509.c: Fix mem leak (tiny patch).
-       From Simon Posnjak <simon.posnjak@cetrtapot.si>.
-
-2004-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-27  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_state.c: Typo.
-
-2004-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-26  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-srp-08.txt: Add.
-
-2004-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Update.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h, lib/gnutls.h.in.in: Move remaining SRP
-       functions to lib/.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h, lib/gnutls_anon_cred.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_srp.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h: Doc fix.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h, lib/gnutls_alert.c,
-       libextra/gnutls_extra.c, libextra/gnutls_openpgp.c: Doc fix.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/Makefile.am: Hack to fix texinfo docs.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/extra.h, libextra/gnutls_openpgp.c: Fix
-       prototypes.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Add.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (release): Copy gtk-doc.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_global.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h: Fix prototypes.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/Makefile.am: Clean more.
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/x509.h, lib/gnutls.h.in.in, lib/gnutls_ui.h,
-       lib/x509/pkcs12.c, lib/x509/privkey.c: Fix prototypes. (Unfinished,
-       there should be a tool to do this...)
-
-2004-08-25  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-psk-01.txt: Add.
-
-2004-08-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO, doc/protocol/draft-badra-tls-express-00.txt,
-       doc/protocol/draft-salowey-tls-ticket-00.txt: Add.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, configure.in: Bump version.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.18.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/arctwo-meta.c, nettle/arctwo.c, nettle/arctwo.h,
-       nettle/des-compat.c, nettle/des-compat.h, nettle/macros.h,
-       nettle/nettle-meta.h, nettle/tests/arctwo-test.c,
-       nettle/tests/des-compat-test.c, nettle/tests/md5-test.c,
-       nettle/tests/testutils.c: Sync Nettle with CVS.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/Makefile.am: Build libnettle.la before self tests.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, nettle/Makefile.am, nettle/knuth-lfib.c,
-       nettle/knuth-lfib.h, nettle/tests/.cvsignore,
-       nettle/tests/Makefile.am, nettle/tests/aes-test.c,
-       nettle/tests/arcfour-test.c, nettle/tests/arctwo-test.c,
-       nettle/tests/cbc-test.c, nettle/tests/des-compat-test.c,
-       nettle/tests/des-test.c, nettle/tests/des3-test.c,
-       nettle/tests/hmac-test.c, nettle/tests/knuth-lfib-test.c,
-       nettle/tests/md4-test.c, nettle/tests/md5-compat-test.c,
-       nettle/tests/md5-test.c, nettle/tests/run-tests,
-       nettle/tests/sha1-test.c, nettle/tests/testutils.c,
-       nettle/tests/testutils.h: Add Nettle self tests.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/README.CVS: Add.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * doc/reference/.cvsignore: [no log message]
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * m4/gtk-doc.m4: Update.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, doc/Makefile.am, doc/README.CVS,
-       doc/reference/.cvsignore, doc/reference/Makefile.am,
-       doc/reference/gnutls-docs.tmpl, m4/gtk-doc.m4: Generate GTK-DOC
-       manuals (libextra/openpgp/ part doesn't work yet).
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_algorithms.c: Make gtk-doc happy.
-
-2004-08-24  Simon Josefsson <simon@josefsson.org>
-
-       * includes/gnutls/openssl.h, lib/gnutls.h.in.in: Make gtk-doc happy.
-
-2004-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * src/cfg/platon/str/strdyn.c: Fix.  Reported by Dimitri
-       Papadopoulos-Orfanos <papadopo@shfj.cea.fr>.
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Check for ctype.h to shut up Sun CC warnings in
-       src/cfg/shared.c.  Reported by Dimitri Papadopoulos-Orfanos
-       <papadopo@shfj.cea.fr>.
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chain: Fix.
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkits: Add.
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/arctwo-meta.c, nettle/arctwo.c, nettle/arctwo.h,
-       nettle/macros.h, nettle/nettle-meta.h: Update.
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: ISO certify.
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * m4/gc_random.m4: Fix.
-
-2004-08-23  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, m4/gc_random.m4: Move /dev/*random stuff to separate
-       m4 file.
-
-2004-08-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * AUTHORS: Add copying conditions, and PGP release key.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * README, THANKS: Add copying conditions.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add copying conditions.  Markup.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkits_pkcs12, tests/pkits_smime: Typo.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/int.h: Bump version.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Remove stale -I.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/libtasn1.h: Bump version.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Need newer libtasn1.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/minitasn1/decoding.c: Only apply BER indefinite logic when we
-       have actually encountered BER indefinite lengths.  Pending upstream
-       review.  Triggered by PKITS test case
-       pkcs12/CPSPointerQualifierTest20EE.p12 (and others) as invoked by
-       tests/pkits_pkcs12.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkits_crl, tests/pkits_crt, tests/pkits_pkcs12,
-       tests/pkits_smime: Fix.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: (print_certificate_info): Don't crash on large X.509 extensions
-       (thanks to PKITS test suite).  Also output ASCII representation of
-       printable extension data (some extension contain humanly readable
-       strings).
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkits_crl, tests/pkits_crt, tests/pkits_smime: Add.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: (smime_to_pkcs7): Make sure PKCS#7 output use LF EOL.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * tests/pkits_pkcs12: Add.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: (smime_to_pkcs7): Handle LF EOF.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Fix --password.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * : Add NIST's Public Key Interoperability Test Suite.  Taken from
-       <http://csrc.nist.gov/pki/testing/x509paths.html>.
-       c8b1230c34f175f0fe479692e65c7ecc04117dfc  PKITS_data.zip
-       e823aa3a8ece752aa7211153312b364dc578e789  PKITS.pdf
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Handle different #include's for PKCS12
-       functions.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * .cvsignore: [no log message]
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Want gzip too.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in: Use bz2.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/scripts/gdoc: Support -include.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Add man pages for lib/x509/, libextra/,
-       and libextra/openpgp/.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Add man pages for API.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/.cvsignore: [no log message]
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c, crypto/gc-nettle.c, crypto/gc.h,
-       crypto/test-gc.c: Mem alloca stuff for libgcrypt.  Indent.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/.cvsignore, crypto/Makefile.am, crypto/test-gc.c,
-       crypto/utils.c, crypto/utils.h: Add self test of generic crypto.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/pkcs5.c: Doc fix.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/gnutls.h.in.in: Revert ssize_t change.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/gnutls.h.in.in: Assume POSIX system (which we
-       already do), so it has ssize_t.  Redefining ssize_t locally, if it
-       doesn't exist, already handled by gnulib.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Simplify further.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Simplify further.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Move things from EXTRA_DIST, to improve
-       dependency tracking.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Move things from EXTRA_DIST to *_SOURCES, to
-       improve dependency tracking.  Simplify.
-
-2004-08-22  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c: Fix warnings.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-nettle.c: Add checks.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/x509/Makefile.am: Remove pkcs5.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs5.c, lib/x509/pkcs5.h, lib/x509/privkey_pkcs8.c: 
-       Replace PKCS5 with GC.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/Makefile.am, crypto/gc.h, crypto/pkcs5.c: Add pkcs5 stuff,
-       replacing lib/x509/pkcs5.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc.h: Typo.
-
-2004-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c, crypto/gc-nettle.c, crypto/gc.h: (gc_hmac_sha1): Add (for PKCS5 KDF).
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-nettle.c, nettle/arctwo-meta.c, nettle/arctwo.c,
-       nettle/arctwo.h, nettle/nettle-meta.h: Change name of arctwo variant
-       from 'pkcs12' to 'gutmann'.  Seems PKCS12 code uses pure rfc 2268
-       (who uses the variant then?!).
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/rrc2.doc: Add.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/arctwo.c: Typo.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/arctwo.c: Support plain RFC 2268 too.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2004-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey.c: Corrected a memory leak. Patch got from debian
-       bug report logs.  Reported by Modestas Vainius
-       <geromanas@mailas.com>.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/arctwo.c: Fix.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/arctwo.c: Fix.
-
-2004-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: corrected bug with generalTime ASN.1 encoding.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-nettle.c, nettle/Makefile.am, nettle/arctwo-meta.c,
-       nettle/arctwo.c, nettle/arctwo.h, nettle/nettle-meta.h: Add arctwo.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc.h: (GC_SHA1_LEN): Add.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs12_encr.c: Fix.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/pkcs12_encr.c: Use gc.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c, crypto/gc-nettle.c, crypto/gc.h: (gc_hash_buffer): Add.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chain: Cleanup.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chain: Add CRL's.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, tests/Makefile.am, tests/anonself.c: Add.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add examples.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/.cvsignore: [no log message]
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client2.c, doc/examples/ex-serv1.c: Doc fix.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-client1.c, doc/examples/ex-serv-anon.c: Add.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Markup.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Enable gnits in automake.
-
-2004-08-21  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Allow AC_PROG_CC to modify CFLAGS (why not?).  Don't
-       check for install (handled by automake).
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Simplify shared library versioning.
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/gnutls_extra.c: Use automake VERSION.
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am, libextra/opencdk/armor.c: Fix version
-       number.
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: Use automake VERSION instead of
-       GNUTLS_VERSION.
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Use modern AC_INIT.  Remove GNUTLS_*VERSION.
-       Separate libtool versioning from package versioning.
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Remove, all are dist'ed by automake automatically.
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo.
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/defines.h: Remove size_t, time_t, ptrdiff_t definitions.
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Assume time_t and ptrdiff_t (ANSI C89).
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.h.in.in: Assume time_t is in time.h (ANSI C89).
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/gnutls.h.in.in: Assume size_t is in stddef.h
-       (C89).
-
-2004-08-20  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: (T_CPU, T_VENDOR, T_OS): Remove (unused).
-
-2004-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.17.
-
-2004-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix, suggested by Stepan Kasal <kasal@ucw.cz>.
-
-2004-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_mpi.h: Reorder, to get config.h included before
-       gcrypt.h.
-
-2004-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Revert.
-
-2004-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix example indentation.
-
-2004-08-18  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/Makefile.am: Don't dist nettle-types.h.
-
-2004-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-17  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c, crypto/gc-nettle.c, crypto/gc.h: Add
-       one-call interface.
-
-2004-08-17  Simon Josefsson <simon@josefsson.org>
-
-       * src/cli.c: Fix mem leak.
-
-2004-08-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pk.c: Typo.
-
-2004-08-17  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS: Add.
-
-2004-08-17  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_pk.c: Simplify computation of PKCS#1 version 1.5 type 2
-       non-zero pad bytes, reported by Robey Pointer <robey@danger.com>.
-
-2004-08-17  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/m4/gnulib.m4, gl/minmax.h,
-       lib/Makefile.am, lib/auth_srp_passwd.c, lib/ext_srp.c,
-       lib/gnutls_buffers.c, lib/gnutls_num.h, lib/gnutls_pk.c,
-       lib/gnutls_str.c, lib/x509/dn.c, lib/x509/pkcs12.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify.c,
-       libextra/Makefile.am: Use minmax.h from gnulib instead of GMIN/GMAX.
-
-2004-08-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Oops, revert DES, not supported.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * src/common.c: Support AES-256 and DES in --ciphers too.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, README: Fix.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * README: Add.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c, crypto/gc-nettle.c, crypto/gc.h: Indent.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-nettle.c: Fix.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c, crypto/gc-nettle.c, crypto/gc.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: Move hashing to
-       generic crypto API.  Implement hashing for nettle/libgcrypt in
-       generic crypto API.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, crypto/gc-libgcrypt.c, crypto/gc-nettle.c,
-       crypto/gc.h, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_random.c, lib/gnutls_random.h: Move randomness calls to
-       generic crypto API.  Implement randomness for libgcrypt and nettle
-       wrappers.
-
-2004-08-16  Simon Josefsson <simon@josefsson.org>
-
-       * gl/Makefile.am, gl/m4/gnulib.m4: Update.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-nettle.c: Doc fix.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Typo.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-nettle.c: Implement.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c: Reorder.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc.h: Add.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * nettle/nettle-meta.h: Add des(3).
-
-2004-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in, crypto/gc-nettle.c,
-       m4/ax_create_stdint_h.m4, nettle/.cvsignore, nettle/Makefile.am,
-       nettle/aes-decrypt-table.c, nettle/aes-decrypt.c,
-       nettle/aes-encrypt-table.c, nettle/aes-encrypt.c,
-       nettle/aes-internal.h, nettle/aes-meta.c,
-       nettle/aes-set-decrypt-key.c, nettle/aes-set-encrypt-key.c,
-       nettle/aes.c, nettle/aes.h, nettle/arcfour-crypt.c,
-       nettle/arcfour-meta.c, nettle/arcfour.c, nettle/arcfour.h,
-       nettle/cbc.c, nettle/cbc.h, nettle/des-compat.c,
-       nettle/des-compat.h, nettle/des.c, nettle/des.h, nettle/des3.c,
-       nettle/desCode.h, nettle/descore.README, nettle/desinfo.h,
-       nettle/hmac-md5.c, nettle/hmac-sha1.c, nettle/hmac.c,
-       nettle/hmac.h, nettle/keymap.h, nettle/macros.h,
-       nettle/md5-compat.c, nettle/md5-compat.h, nettle/md5-meta.c,
-       nettle/md5.c, nettle/md5.h, nettle/memxor.c, nettle/memxor.h,
-       nettle/nettle-internal.c, nettle/nettle-internal.h,
-       nettle/nettle-meta.h, nettle/parity.h, nettle/rotors.h,
-       nettle/sha.h, nettle/sha1-compress.c, nettle/sha1-meta.c,
-       nettle/sha1.c: Add Nettle.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * crypto/gc-libgcrypt.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_global.c: Fix warnings.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_cipher_int.c: Fix.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in, crypto/.cvsignore, crypto/Makefile.am,
-       crypto/gc-libgcrypt.c, crypto/gc.h, lib/Makefile.am,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_errors_int.h, lib/gnutls_global.c, lib/gnutls_mpi.h,
-       libextra/Makefile.am: Initiate move of all libgcrypt calls to
-       crypto/gc* wrapper.  Currently only encryption/decryption goes
-       through generic API.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (release): Fix tag name.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/getpass.c, gl/getpass.h,
-       gl/m4/getpass.m4, gl/m4/gnulib.m4, gl/m4/stdbool.m4, gl/stdbool_.h,
-       src/Makefile.am, src/certtool-cfg.c, src/certtool.c, src/crypt.c,
-       src/getpass.c, src/getpass.h: Replace ad-hoc 'read_pass' with gnulib
-       module 'getpass-gnu'.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Improve markup.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/errcodes.c: Fix.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Use @finalout, to avoid ugly black boxes.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fixes.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * doc/examples/ex-alert.c, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client2.c, doc/examples/ex-crq.c,
-       doc/examples/ex-pkcs12.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
-       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c: Indent.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (release): Abort if tag exists.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (release): Fix tag name.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.16.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * gl/.cvsignore: [no log message]
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool.c: Use progname.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/progname.c, gl/progname.h: Add
-       progname gnulib module.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Fix -I's, for srcdir != objdir builds (e.g.,
-       'make distcheck').
-
-2004-08-15  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, lib/Makefile.am, libextra/Makefile.am,
-       src/Makefile.am: Fix -I's, for srcdir != objdir builds (e.g., 'make
-       distcheck').
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am: Link gnulib.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (release): Fix.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.15.
-
-2004-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Reorder.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * config.rpath: Add, needed by gnulib.  When we support gettext,
-       this will be generated.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h: Generated.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, src/Makefile.am, src/certtool.c, src/certtool.gaa: Add
-       --smime-to-p7.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, gl/Makefile.am, gl/error.c, gl/error.h, gl/exit.h,
-       gl/gettext.h, gl/m4/codeset.m4, gl/m4/error.m4, gl/m4/gettext.m4,
-       gl/m4/glibc21.m4, gl/m4/gnulib.m4, gl/m4/iconv.m4,
-       gl/m4/intdiv0.m4, gl/m4/intmax.m4, gl/m4/inttypes-pri.m4,
-       gl/m4/inttypes.m4, gl/m4/inttypes_h.m4, gl/m4/isc-posix.m4,
-       gl/m4/lcmessage.m4, gl/m4/lib-ld.m4, gl/m4/lib-link.m4,
-       gl/m4/lib-prefix.m4, gl/m4/longdouble.m4, gl/m4/longlong.m4,
-       gl/m4/nls.m4, gl/m4/po.m4, gl/m4/printf-posix.m4,
-       gl/m4/progtest.m4, gl/m4/signed.m4, gl/m4/size_max.m4,
-       gl/m4/stdint_h.m4, gl/m4/strerror_r.m4, gl/m4/uintmax_t.m4,
-       gl/m4/ulonglong.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4,
-       gl/m4/xsize.m4: Add error and exit gnulib modules.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * gl/.cvsignore: [no log message]
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add gl/Makefile.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Recurse into gl/.
-
-2004-08-14  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, configure.in, gl/Makefile.am, gl/getline.c,
-       gl/getline.h, gl/getndelim2.c, gl/getndelim2.h,
-       gl/m4/extensions.m4, gl/m4/getline.m4, gl/m4/getndelim2.m4,
-       gl/m4/gnulib.m4, gl/m4/onceonly_2_57.m4, gl/m4/ssize_t.m4,
-       gl/m4/unlocked-io.m4, gl/unlocked-io.h: Set up GnuTLS to use gnulib
-       for portability files.  Initially only adding "getline", I will need
-       it for S/MIME parsing.
-
-2004-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chain: Be nicer.
-
-2004-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/.cvsignore: [no log message]
-
-2004-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * tests/chain: Add.
-
-2004-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-badra-tls-key-exchange-00.txt: Add.
-
-2004-08-12  Simon Josefsson <simon@josefsson.org>
-
-       * : Add NIST X.509 Path Validation Test Suite, Version 1.07.  See
-       http://csrc.nist.gov/pki/testing/x509paths_old.html.  Taken from
-       http://csrc.nist.gov/pki/testing/x509tests.tgz, with MD5sum
-       5e6c15b7920e33a3e171258828c980f5.
-
-2004-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-08.txt: Add.
-
-2004-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Typo.
-
-2004-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix direntry.
-
-2004-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2004-08-11  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/gnutls-cli.1: Update.
-
-2004-08-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * m4/autobuild.m4: Update.
-
-2004-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/opencdk/keyserver.c: Need sys/types.h, for FreeBSD 4.10.
-
-2004-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: (release): Remove ChangeLog stuff.
-
-2004-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2004-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: If socklen_t doesn't exist, use size_t (needed for
-       Darwin).
-
-2004-08-10  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Add.
-
-2004-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-09  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Move AB_INIT to where it actually works.
-
-2004-08-09  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.14.
-
-2004-08-09  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Add release target.
-
-2004-08-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, THANKS, configure.in, m4/autobuild.m4: Add.
-
-2004-08-09  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Add.
-
-2004-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * THANKS: Add.
-
-2004-08-07  Simon Josefsson <simon@josefsson.org>
-
-       * tests/Makefile.am: Typo, reported by Michael Heironimus
-       <mkh01@earthlink.net>.
-
-2004-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-06  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Terminology consistency.
-
-2004-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * tests/simple.c: Fix warning.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am, lib/x509/Makefile.am, libextra/Makefile.am,
-       libextra/openpgp/Makefile.am: Remove *.tex stuff.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/manpages/Makefile.am: Simplify.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am, src/retcodes.c: Remove retcodes.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Fix last commit.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, doc/Makefile.am, doc/examples/Makefile.am,
-       doc/examples/ex-alert.c, doc/examples/ex-cert-select.c,
-       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
-       doc/examples/ex-client2.c, doc/examples/ex-crq.c,
-       doc/examples/ex-pkcs12.c, doc/examples/ex-serv-export.c,
-       doc/examples/ex-serv-pgp.c, doc/examples/ex-serv-srp.c,
-       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
-       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c,
-       doc/scripts/Makefile.am, doc/scripts/sort1.pl, doc/tex/.cvsignore,
-       doc/tex/Makefile.am, doc/tex/alert.tex, doc/tex/appendix.tex,
-       doc/tex/auth.tex, doc/tex/callbacks.tex, doc/tex/cert_auth.tex,
-       doc/tex/certificate.tex, doc/tex/ciphers.tex,
-       doc/tex/ciphersuites.tex, doc/tex/compression.tex,
-       doc/tex/cover.tex.in, doc/tex/errors.tex, doc/tex/ex-alert.tex,
-       doc/tex/ex-cert-select.tex, doc/tex/ex-client-resume.tex,
-       doc/tex/ex-client-srp.tex, doc/tex/ex-client2.tex,
-       doc/tex/ex-crq.tex, doc/tex/ex-pkcs12.tex,
-       doc/tex/ex-serv-export.tex, doc/tex/ex-serv-pgp.tex,
-       doc/tex/ex-serv-srp.tex, doc/tex/ex-serv1.tex,
-       doc/tex/ex-session-info.tex, doc/tex/ex-verify.tex,
-       doc/tex/ex-x509-info.tex, doc/tex/examples.tex, doc/tex/fdl.tex,
-       doc/tex/funcs.tex, doc/tex/gnutls-logo.ps, doc/tex/gnutls.bib,
-       doc/tex/gnutls.tex, doc/tex/handshake.tex, doc/tex/howto.tex,
-       doc/tex/internals.eps, doc/tex/layers.eps, doc/tex/layers.tex,
-       doc/tex/library.tex, doc/tex/macros.tex, doc/tex/memory.tex,
-       doc/tex/openssl.tex, doc/tex/pgp-fig1.eps, doc/tex/pgpcert.xml.tex,
-       doc/tex/preface.tex, doc/tex/preparation.tex, doc/tex/programs.tex,
-       doc/tex/record.tex, doc/tex/record_weaknesses.tex, doc/tex/srp.tex,
-       doc/tex/supported_ciphersuites.tex, doc/tex/tls_extensions.tex,
-       doc/tex/tlsintro.tex, doc/tex/translayer.tex, doc/tex/x509-1.eps,
-       doc/tex/x509cert.xml.tex: Remove old manual.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in, doc/gnutls.texi: Fix copyright.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf, doc/README.CVS: Revert.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/TODO: Done.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/README.CVS: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Save gnutls.bib.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix deps.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Reorder.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix HTML.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gendocs.sh, doc/gendocs_template, doc/gnutls-logo.eps: Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add logo.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix image size.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Fix deps.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Build more.  Dist ps/pdf/html.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * : Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/.cvsignore: [no log message]
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/gnutls.texi, doc/scripts/sort2.pl: Add
-       Texinfo API documentation.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/openpgp/Makefile.am: Build pgp-api.texi.  Dist
-       pgp-api.tex{,i}.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/.cvsignore, lib/.cvsignore, lib/x509/.cvsignore,
-       libextra/.cvsignore, libextra/openpgp/.cvsignore: [no log message]
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * libextra/Makefile.am: Build gnutls-extra-api.texi.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/Makefile.am: Build gnutls-api.texi.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/x509/Makefile.am: Build x509-api.texi.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls.h.in.in: (gnutls_is_secure_function): Add.  (gnutls_global_set_mem_functions): Use it.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_global.c: (gnutls_global_set_mem_functions): Use typedefs in prototype, for
-       gdoc.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * lib/gnutls_mem.h: (gnutls_is_secure_function): Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Dist more.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS, doc/internals.eps, doc/layers.eps, doc/pgp1.eps,
-       doc/x509-1.eps: Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/.cvsignore: [no log message]
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi, src/errcodes.c: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add error_codes.texi.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/errcodes.c: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am: Build error_codes.texi using errcodes.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/Makefile.am, src/errcodes.c: (errcodes): Add, same as retcodes, but for texinfo.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * src/.cvsignore: [no log message]
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Fix.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/.cvsignore: [no log message]
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2004-08-05  Simon Josefsson <simon@josefsson.org>
-
-       * doc/gnutls.texi: Add.
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, acinclude.m4, libgcrypt.m4, libtasn1.m4,
-       m4/libgcrypt.m4, m4/libtasn1.m4, m4/opencdk.m4, opencdk.m4: Move
-       *.m4's to m4/.
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf: Simplify.
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Add copying condition.  Remove useless prefix
-       setting.
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf, configure.in: Don't use maintainer mode (see Autoconf
-       manual for rationale).
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/Makefile.am, doc/fdl.texi, doc/gnutls.texi: Start Texinfo
-       manual.
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * doc/.cvsignore: [no log message]
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * ChangeLog: ChangeLog
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am: Fix cvs2cl target.
-
-2004-08-04  Simon Josefsson <simon@josefsson.org>
-
-       * NEWS: Version 1.1.13.
-
-2004-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * .cvsusers: Fix.
-
-2004-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * configure.in: Bump version.
-
-2004-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * Makefile.am, NEWS, configure.in, tests/Makefile,
-       tests/Makefile.am, tests/simple.c, tests/utils.c, tests/utils.h: Add
-       (start of) self test suite.
-
-2004-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * .cvsignore, doc/examples/.cvsignore, doc/manpages/.cvsignore,
-       doc/tex/.cvsignore, includes/.cvsignore,
-       includes/gnutls/.cvsignore, libextra/.cvsignore,
-       libextra/opencdk/.cvsignore, libextra/openpgp/.cvsignore,
-       src/.cvsignore, src/cfg/.cvsignore, src/cfg/platon/.cvsignore,
-       src/cfg/platon/str/.cvsignore, src/openpgp/.cvsignore,
-       tests/.cvsignore: Ignore more.
-
-2004-08-02  Simon Josefsson <simon@josefsson.org>
-
-       * buildconf: Use autoreconf.
-
-2004-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_srp.c, lib/gnutls_cert.c, lib/gnutls_srp.c,
-       lib/gnutls_srp.h: _gnutls_calc_srp_u() has been modified to be
-       better.
-
-2004-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2004-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, lib/gnutls_int.h: [no log message]
-
-2004-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: print the number of bits of the public key in a
-       certificate.
-
-2004-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/tex/examples.tex: [no log message]
-
-2004-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, lib/auth_cert.h, lib/gnutls.h.in.in,
-       lib/gnutls_cert.c, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_int.h, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, libextra/gnutls_extra.h,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/gnutls_openpgp.h: Added some default limits in the
-       verification of certificate chains, to avoid denial of service
-       attacks. Also added gnutls_certificate_set_verify_limits() to
-       override them.
-
-2004-07-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-cert-select.tex, lib/gnutls_cert.c: corrected
-       documentation.
-
-2004-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * README: [no log message]
-
-2004-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/extra.h, lib/Makefile.am, lib/auth_srp.c,
-       lib/auth_srp.h, lib/auth_srp_passwd.c, lib/auth_srp_passwd.h,
-       lib/auth_srp_rsa.c, lib/auth_srp_sb64.c, lib/ext_srp.c,
-       lib/ext_srp.h, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_extensions.c, lib/gnutls_srp.c, lib/gnutls_srp.h,
-       libextra/Makefile.am, libextra/auth_srp.c, libextra/auth_srp.h,
-       libextra/auth_srp_passwd.c, libextra/auth_srp_passwd.h,
-       libextra/auth_srp_rsa.c, libextra/auth_srp_sb64.c,
-       libextra/ext_srp.c, libextra/ext_srp.h, libextra/gnutls_extra.c,
-       libextra/gnutls_srp.c, libextra/gnutls_srp.h, libgcrypt.m4,
-       opencdk.m4: SRP ciphersuites were moved to the gnutls (lgpl)
-       library.
-
-2004-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2004-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * .cvsusers: added Simon
-
-2004-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/Makefile.am, libextra/gnutls_openpgp.c,
-       libextra/openpgp/extras.c, libextra/openpgp/pgp.c,
-       libextra/openpgp/privkey.c, libextra/openpgp/xml.c: [no log message]
-
-2004-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, libextra/auth_srp.c, libextra/gnutls_srp.c,
-       libextra/gnutls_srp.h: * Updated the SRP authentication to conform to the   latest (yet unreleased) draft. Unfortunately this breaks   compatibility with previous versions.
-
-2004-07-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/minitasn1/Makefile.am, lib/x509/Makefile.am,
-       libextra/Makefile.am, libextra/opencdk/Makefile.am,
-       libextra/openpgp/Makefile.am, libextra/openpgp/openpgp.c,
-       libextra/openpgp/pgp.c, libextra/openpgp/pgpverify.c,
-       libextra/openpgp/verify.c: avoid using libtool's convenience
-       libraries since they are buggy and cause conflicts in linking.
-
-2004-07-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/opencdk/encrypt.c, libextra/opencdk/main.c,
-       libextra/opencdk/misc.c: removed the malloc.h include.
-
-2004-07-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-compression-07.txt,
-       doc/protocol/rfc3749.txt, doc/tex/gnutls.bib: added the tls
-       compression rfc.
-
-2004-07-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/cert_auth.tex: [no log message]
-
-2004-07-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: [no log message]
-
-2004-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: [no log message]
-
-2004-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-07-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pk.c, lib/gnutls_x509.c, lib/x509/x509.c: eliminated
-       some memory leaks. Reported by Yoann Vandoorselaere
-       <yoann@prelude-ids.org>.
-
-2004-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-ssl-mods-00.txt: added
-       draft-ietf-tls-ssl-mods
-
-2004-07-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/Makefile.am: [no log message]
-
-2004-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2004-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp.c, libextra/auth_srp.h,
-       libextra/auth_srp_passwd.c, libextra/gnutls_srp.c: Do not free the
-       SRP (n/g) parameters from the callback if they are the static ones
-       defined in extra.h
-
-2004-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, lib/auth_anon.h, lib/auth_cert.h,
-       lib/auth_dh_common.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_datum.c, lib/gnutls_datum.h, lib/gnutls_record.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/gnutls_ui.c, lib/gnutls_x509.c, libextra/gnutls_openpgp.c,
-       libextra/openpgp/verify.c, src/serv.c: The ephemeral DH and RSA
-       parameters are no longer stored in the session resume DB. This saves
-       space, but will cause resumed sessions not to be able to access the
-       original session parameters (which is ok).
-
-2004-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: Reject hello packets with major version
-       higher than 3.
-
-2004-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/x509/ca.pem, src/x509/cert-dsa.pem, src/x509/cert.pem,
-       src/x509/clicert-dsa.pem, src/x509/clicert.pem,
-       src/x509/key-dsa.pem, src/x509/key.pem: added some new certificates.
-
-2004-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, includes/gnutls/x509.h, lib/x509/verify.c,
-       lib/x509/verify.h, libextra/gnutls_srp.c, libextra/openpgp/verify.c: * Corrected a bug in certificate verification. Pointed out by   Yoann Vandoorselaere <yoann@prelude-ids.org> * Added the GNUTLS_VERIFY_DO_NOT_ALLOW_SAME flags to the   verification functions.
-
-2004-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/gnutls.bib, doc/tex/tlsintro.tex: 
-       added links to gpgme and to Rescola's book.
-
-2004-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_pk.c: Corrected bug in PKCS #1 encryption.
-
-2004-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/TODO, doc/tex/auth.tex,
-       doc/tex/certificate.tex, doc/tex/ex-alert.tex,
-       doc/tex/ex-cert-select.tex, doc/tex/ex-client-resume.tex,
-       doc/tex/ex-client-srp.tex, doc/tex/ex-client2.tex,
-       doc/tex/ex-crq.tex, doc/tex/ex-pkcs12.tex,
-       doc/tex/ex-serv-export.tex, doc/tex/ex-serv-pgp.tex,
-       doc/tex/ex-serv-srp.tex, doc/tex/ex-serv1.tex,
-       doc/tex/ex-session-info.tex, doc/tex/ex-verify.tex,
-       doc/tex/ex-x509-info.tex, includes/Makefile.am,
-       includes/gnutls/Makefile.am, includes/gnutls/compat.h,
-       includes/gnutls/extra.h, includes/gnutls/openpgp.h,
-       includes/gnutls/openssl.h, includes/gnutls/pkcs12.h,
-       includes/gnutls/x509.h, lib/auth_anon.c, lib/auth_anon.h,
-       lib/auth_cert.c, lib/auth_cert.h, lib/auth_dh_common.c,
-       lib/auth_dh_common.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/debug.c, lib/debug.h,
-       lib/ext_cert_type.c, lib/ext_cert_type.h, lib/ext_max_record.c,
-       lib/ext_max_record.h, lib/ext_server_name.c, lib/ext_server_name.h,
-       lib/gnutls.h.in.in, lib/gnutls_alert.c, lib/gnutls_alert.h,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth.h,
-       lib/gnutls_auth_int.h, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_compress_int.c,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_mpi.c,
-       lib/gnutls_mpi.h, lib/gnutls_pk.c, lib/gnutls_pk.h,
-       lib/gnutls_priority.c, lib/gnutls_priority.h, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session.h, lib/gnutls_session_pack.c,
-       lib/gnutls_session_pack.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_state.c, lib/gnutls_state.h, lib/gnutls_str.c,
-       lib/gnutls_str.h, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/compat.c, lib/x509/compat.h, lib/x509/crl.c,
-       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/crq.h,
-       lib/x509/dn.c, lib/x509/extensions.c, lib/x509/extensions.h,
-       lib/x509/mpi.c, lib/x509/mpi.h, lib/x509/pkcs12.c,
-       lib/x509/pkcs12.h, lib/x509/pkcs12_bag.c, lib/x509/pkcs7.c,
-       lib/x509/pkcs7.h, lib/x509/privkey.c, lib/x509/privkey.h,
-       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818_hostname.c,
-       lib/x509/sign.c, lib/x509/sign.h, lib/x509/verify.c,
-       lib/x509/verify.h, lib/x509/x509.c, lib/x509/x509.h,
-       lib/x509/x509_write.c, lib/x509/xml.c, lib/x509_b64.c,
-       libextra/auth_srp.c, libextra/auth_srp.h,
-       libextra/auth_srp_passwd.c, libextra/auth_srp_passwd.h,
-       libextra/auth_srp_rsa.c, libextra/auth_srp_sb64.c,
-       libextra/ext_srp.c, libextra/ext_srp.h, libextra/gnutls_extra.h,
-       libextra/gnutls_openpgp.c, libextra/gnutls_openssl.c,
-       libextra/gnutls_srp.c, libextra/gnutls_srp.h,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/openpgp.c,
-       libextra/openpgp/openpgp.h, libextra/openpgp/privkey.c,
-       libextra/openpgp/verify.c, libextra/openpgp/xml.c,
-       libextra/openssl_compat.c, libextra/openssl_compat.h: Added the '_t'
-       suffix to all exported symbols.
-
-2004-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-srp-06.txt,
-       doc/protocol/draft-ietf-tls-srp-07.txt: added new srp draft
-
-2004-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-verify.tex, lib/gnutls_ui.c: [no log message]
-
-2004-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/openpgp.c: [no log message]
-
-2004-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/openpgp.h, libextra/openpgp/extras.c,
-       libextra/openpgp/openpgp.h, libextra/openpgp/verify.c: [no log
-       message]
-
-2004-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/verify.c: Added gnutls_openpgp_keyring_check_id()
-
-2004-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/examples/Makefile.am, doc/tex/Makefile.am,
-       doc/tex/certificate.tex, doc/tex/ex-rfc2818.tex,
-       doc/tex/ex-verify.tex, doc/tex/examples.tex,
-       includes/gnutls/x509.h, lib/x509/verify.c, lib/x509/verify.h,
-       lib/x509/x509.c, lib/x509/x509.h, libextra/openpgp/Makefile.am: 
-       added an improved verification example.
-
-2004-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-rescorla-dtls-00.txt: added datagram tls draft.
-
-2004-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_record.c, lib/gnutls_state.c: 
-       some fixes in the session resuming code.
-
-2004-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/extra.h, includes/gnutls/openpgp.h,
-       includes/gnutls/pkcs12.h, includes/gnutls/x509.h, lib/auth_anon.c,
-       lib/auth_anon.h, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/auth_rsa.c, lib/auth_rsa_export.c, lib/debug.c, lib/debug.h,
-       lib/defines.h, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/ext_max_record.c, lib/ext_max_record.h, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/gnutls.h.in.in, lib/gnutls_alert.c,
-       lib/gnutls_alert.h, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_anon_cred.c,
-       lib/gnutls_asn1_tab.c, lib/gnutls_auth.c, lib/gnutls_auth.h,
-       lib/gnutls_auth_int.h, lib/gnutls_buffer.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_compress_int.c,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_errors_int.h, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_int_compat.c, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_mem.c, lib/gnutls_mem.h, lib/gnutls_mpi.c,
-       lib/gnutls_mpi.h, lib/gnutls_num.c, lib/gnutls_num.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_priority.c,
-       lib/gnutls_priority.h, lib/gnutls_random.c, lib/gnutls_random.h,
-       lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session.h, lib/gnutls_session_pack.c,
-       lib/gnutls_session_pack.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_state.c, lib/gnutls_state.h, lib/gnutls_str.c,
-       lib/gnutls_str.h, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/io_debug.h, lib/pkix_asn1_tab.c,
-       lib/strfile.h, lib/strnstr.c, lib/x509/common.c, lib/x509/compat.c,
-       lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/dsa.c, lib/x509/extensions.c,
-       lib/x509/mpi.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
-       lib/x509/pkcs12_encr.c, lib/x509/pkcs5.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509_write.c, lib/x509/xml.c,
-       lib/x509_b64.c, lib/x509_b64.h, libextra/auth_srp.c,
-       libextra/auth_srp_passwd.c, libextra/auth_srp_rsa.c,
-       libextra/auth_srp_sb64.c, libextra/ext_srp.c,
-       libextra/gnutls_extra.c, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openssl.c, libextra/gnutls_srp.c,
-       libextra/minilzo.c, libextra/openpgp/compat.c,
-       libextra/openpgp/extras.c, libextra/openpgp/openpgp.c,
-       libextra/openpgp/openpgp.h, libextra/openpgp/privkey.c,
-       libextra/openpgp/verify.c, libextra/openpgp/xml.c,
-       libextra/openssl_compat.c, src/certtool-cfg.c, src/certtool-gaa.c,
-       src/certtool.c, src/cli-gaa.c, src/cli.c, src/common.c,
-       src/crypt-gaa.c, src/crypt.c, src/getpass.c, src/prime.c,
-       src/retcodes.c, src/serv-gaa.c, src/serv.c, src/tests.c,
-       src/tls_test-gaa.c, src/tls_test.c: changed indentation to 4 spaces
-       instead of tabs.
-
-2004-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/cover.tex.in, lib/gnutls_record.c, lib/x509/x509.c: [no
-       log message]
-
-2004-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/gnutls.bib, doc/tex/howto.tex: 
-       [no log message]
-
-2004-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, doc/tex/certificate.tex, doc/tex/compression.tex,
-       doc/tex/programs.tex: [no log message]
-
-2004-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_datum.c, lib/gnutls_ui.c, lib/x509/pkcs12_bag.c,
-       src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa, src/common.c,
-       src/gnutls-http-serv, src/serv-gaa.c, src/serv-gaa.h, src/serv.c,
-       src/serv.gaa, src/tests.c, src/tests.h, src/tls_test.c: several
-       improvements
-
-2004-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tls_test-gaa.c, src/tls_test.gaa: [no log
-       message]
-
-2004-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_cert.h, lib/auth_dh_common.h,
-       lib/gnutls_compress_int.c, lib/gnutls_state.c, src/cli.c,
-       src/common.c, src/common.h, src/tests.c, src/tests.h,
-       src/tls_test.c: updated gnutls-cli-debug to print DHE and RSA-EXPORT
-       information if verbose is set. Some other minor fixes.
-
-2004-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.CODING_STYLE, lib/auth_anon.c, lib/auth_anon.h,
-       lib/auth_cert.h, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/auth_rsa.c, lib/auth_rsa_export.c, lib/debug.c, lib/debug.h,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_auth.c, lib/gnutls_auth.h, lib/gnutls_auth_int.h,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress_int.c,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.c, lib/gnutls_db.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_session_pack.c, lib/gnutls_sig.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/x509/pkcs12.c, lib/x509/privkey_pkcs8.c, libextra/auth_srp.c,
-       libextra/auth_srp_rsa.c, libextra/ext_srp.c,
-       libextra/gnutls_extra.c: some other changes to the internal types
-       names.
-
-2004-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dh_common.c, lib/auth_dh_common.h,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c, lib/debug.c,
-       lib/debug.h, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_dh.c,
-       lib/gnutls_dh.h, lib/gnutls_dh_primes.c, lib/gnutls_int.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session_pack.c,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_state.c,
-       lib/gnutls_ui.c, lib/gnutls_ui.h, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, libextra/auth_srp.c, libextra/auth_srp.h,
-       libextra/auth_srp_rsa.c, libextra/gnutls_srp.c: several internal
-       types fix.
-
-2004-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/auth_rsa_export.c,
-       lib/gnutls_mpi.h, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/dsa.c, lib/x509/dsa.h, lib/x509/mpi.c, lib/x509/mpi.h,
-       lib/x509/pkcs12_encr.c, lib/x509/privkey.c, lib/x509/sign.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509.h: Added the
-       functions gnutls_x509_crt_get_pk_rsa_raw() and
-       gnutls_x509_crt_get_pk_dsa_raw() to retrieve parameters from
-       certificates.
-
-2004-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_anon.c, lib/auth_cert.h, lib/auth_dh_common.c,
-       lib/auth_dh_common.h, lib/auth_dhe.c, lib/auth_rsa_export.c,
-       lib/gnutls_state.c, lib/gnutls_state.h, lib/gnutls_ui.c,
-       lib/gnutls_ui.h: Allow access to the RSA-EXPORT parameters.
-
-2004-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dh_common.c, lib/auth_dh_common.h,
-       lib/gnutls_compress_int.c, lib/gnutls_mpi.c, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_ui.c, lib/gnutls_ui.h: added function
-       to access the DH (peer's) public key.
-
-2004-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/gnutls_auth.c, lib/gnutls_cipher_int.c, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_ui.c, lib/gnutls_ui.h, src/serv.c: 
-       Added news functions to allow access to the ephemeral Diffie Hellman
-       parameters.
-
-2004-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, lib/gnutls_pk.c: [no log message]
-
-2004-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/gnutls.bib: [no log message]
-
-2004-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: ciphers are sorted according to a strength order.
-
-2004-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, libextra/auth_srp.c, libextra/gnutls_srp.c: Updated to
-       conform to the latest srp draft (draft-ietf-tls-srp-07).
-
-2004-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_handshake.c, lib/gnutls_mpi.h,
-       libextra/auth_srp.c, libextra/openpgp/compat.c, libtasn1.m4: [no log
-       message]
-
-2004-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_v2_compat.c: added some extra
-       checks in hello packet parsing.
-
-2004-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/Makefile.am, lib/x509/Makefile.am,
-       libextra/Makefile.am, libextra/openpgp/Makefile.am,
-       src/Makefile.am, src/certtool-cfg.h, src/retcodes.c: some libtasn1
-       related compilation fixes
-
-2004-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2004-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * acinclude.m4, lib/gnutls_handshake.c: [no log message]
-
-2004-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/opencdk/keydb.c, libextra/opencdk/main.h,
-       libextra/opencdk/opencdk.h, libextra/opencdk/pubkey.c,
-       libextra/opencdk/read-packet.c, libextra/opencdk/sig-check.c,
-       libextra/openpgp/verify.c: added new opencdk
-
-2004-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/README.autoconf, doc/certtool.cfg,
-       lib/gnutls_handshake.c, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       libextra/libgnutls-extra.m4: Corrected session resuming in SRP
-       ciphersuites.
-
-2004-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/programs.tex, lib/gnutls_state.c, lib/libgnutls.m4: [no
-       log message]
-
-2004-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_state.c: _gnutls_deinit() is
-       no longer used. Sessions are not automatically removed any more, on
-       abnormal termination.
-
-2004-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_record.c: some cleanups and better
-       handling of EOF in record_recv.
-
-2004-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/decoding.c: [no log message]
-
-2004-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/int.h: [no log message]
-
-2004-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * acinclude.m4, configure.in, lib/minitasn1/libtasn1.h, libtasn1.m4: 
-       added proper libtasn1 version detection.
-
-2004-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/decoding.c: Applied patch by Max Vozeler
-       <max@hinterhof.net>, sent by Ivo Timmermans.
-
-2004-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/certtool.cfg, lib/pkix.asn,
-       libextra/Makefile.am, src/certtool-cfg.c, src/certtool.c: certtool
-       has now support for more X.520 DN attribute types.
-
-2004-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, doc/certtool.cfg: [no log message]
-
-2004-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c, src/certtool-cfg.h, src/certtool.c: certtool
-       can now read and set the UID field to a DN.
-
-2004-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h: [no log message]
-
-2004-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pkcs12.tex, doc/tex/examples.tex,
-       includes/gnutls/pkcs12.h, lib/gnutls.h.in.in, lib/gnutls_int.h,
-       lib/x509/pkcs12_bag.c, src/certtool.c: removed gnutls_const_datum
-       type.
-
-2004-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: [no log message]
-
-2004-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/opencdk/Makefile.am, libextra/opencdk/README,
-       libextra/opencdk/opencdk.h, libextra/opencdk/sig-check.c,
-       libextra/openpgp/verify.c: updated opencdk to report if any key
-       signer was found.
-
-2004-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, libextra/Makefile.am, libextra/gnutls_extra.c,
-       libextra/openpgp/Makefile.am, libextra/openpgp/compat.c,
-       libextra/openpgp/extras.c, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/openpgp.c, libextra/openpgp/openpgp.h,
-       libextra/openpgp/privkey.c, libextra/openpgp/verify.c,
-       libextra/openpgp/xml.c: [no log message]
-
-2004-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c, src/prime.c: [no log message]
-
-2004-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_compress_int.c, lib/gnutls_handshake.c,
-       lib/gnutls_priority.c, libextra/Makefile.am,
-       libextra/gnutls_extra.c, libextra/gnutls_openpgp.c, src/cli.c,
-       src/common.c, src/serv.c: some fixes in the compilation system.
-
-2004-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, libextra/Makefile.am: [no log message]
-
-2004-05-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, libextra/Makefile.am, libextra/gnutls_extra.c: Added
-       configure option to disable lzo completely.
-
-2004-05-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/certtool.cfg, doc/tex/srp.tex,
-       lib/Makefile.am, libextra/Makefile.am,
-       libextra/opencdk/Makefile.am, libextra/opencdk/armor.c,
-       libextra/opencdk/cipher.c, libextra/opencdk/cipher.h,
-       libextra/opencdk/compress.c, libextra/opencdk/context.h,
-       libextra/opencdk/encrypt.c, libextra/opencdk/filters.h,
-       libextra/opencdk/kbnode.c, libextra/opencdk/keydb.c,
-       libextra/opencdk/keygen.c, libextra/opencdk/keylist.c,
-       libextra/opencdk/keyserver.c, libextra/opencdk/main.c,
-       libextra/opencdk/main.h, libextra/opencdk/md.c,
-       libextra/opencdk/md.h, libextra/opencdk/misc.c,
-       libextra/opencdk/new-packet.c, libextra/opencdk/opencdk.h,
-       libextra/opencdk/packet.h, libextra/opencdk/plaintext.c,
-       libextra/opencdk/pubkey.c, libextra/opencdk/read-packet.c,
-       libextra/opencdk/seskey.c, libextra/opencdk/sig-check.c,
-       libextra/opencdk/sign.c, libextra/opencdk/stream.c,
-       libextra/opencdk/stream.h, libextra/opencdk/sym-cipher.c,
-       libextra/opencdk/trustdb.c, libextra/opencdk/types.h,
-       libextra/opencdk/verify.c, libextra/opencdk/write-packet.c,
-       libextra/openpgp/Makefile.am: opencdk is being included if not
-       found.
-
-2004-05-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c, src/certtool-cfg.h, src/certtool.c,
-       src/crypt-gaa.c, src/crypt.gaa: certtool can now add ip address SAN
-       extension.
-
-2004-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: the TLS hello message random values no
-       longer use strong random data.
-
-2004-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: [no log message]
-
-2004-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am, src/README.srpcrypt, src/README.srptool: [no log
-       message]
-
-2004-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_rsa.c, lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_v2_compat.c, libextra/auth_srp_passwd.c,
-       libextra/gnutls_openpgp.c, libextra/gnutls_srp.c: Fixed some things
-       in the random number usage. Weak levels are used where possible to
-       avoid emptying the strong random pool.
-
-2004-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am, doc/manpages/gnutls-srpcrypt.1,
-       doc/manpages/srptool.1, doc/protocol/draft-eronen-tls-psk-00.txt,
-       doc/tex/ex-x509-info.tex, doc/tex/srp.tex: [no log message]
-
-2004-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/cert_auth.tex, doc/tex/certificate.tex,
-       doc/tex/ciphers.tex: some additions to certificate stuff.
-
-2004-05-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-05-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_auth.c, lib/gnutls_handshake.c, lib/gnutls_kx.c,
-       lib/gnutls_pk.c, lib/gnutls_ui.h: Added
-       gnutls_auth_client_get_type() and gnutls_auth_server_get_type().
-
-2004-04-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_cert_type.c, lib/gnutls_cert.c, lib/gnutls_state.c: Fixes
-       in the automatic disabling of certificate types.
-
-2004-04-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_cert.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_state.c: Automatically disable certificate types that do
-       not have corresponding certificates.
-
-2004-04-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: added xml exporting capabilities to certtool
-       utility.
-
-2004-04-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_cert.c: [no log message]
-
-2004-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls_cert.c, src/cli.c: [no log message]
-
-2004-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2004-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/TODO, lib/gnutls_global.c,
-       lib/gnutls_record.c: [no log message]
-
-2004-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: [no log message]
-
-2004-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c, lib/gnutls_random.h, src/common.c: [no log
-       message]
-
-2004-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: [no log message]
-
-2004-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/tex/ex-serv-srp.tex, doc/tex/programs.tex,
-       doc/tex/srp.tex, src/Makefile.am: Renamed gnutls-srpcrypt to srptool
-
-2004-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/openpgp.h, lib/auth_cert.c: Corrected bug in
-       OpenPGP key loading using a callback.
-
-2004-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_record.c, lib/gnutls_str.c: Corrected bug in TLS
-       renegotiation.
-
-2004-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: [no log message]
-
-2004-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/tex/ex-rfc2818.tex, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, src/certtool.c, src/crypt-gaa.c,
-       src/crypt-gaa.h: Added gnutls_sign_algorithm_get_name() and
-       gnutls_pk_algorithm_get_name().
-
-2004-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_rsa.c, lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_auth.c, lib/gnutls_constate.c, lib/gnutls_handshake.c,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_state.c,
-       lib/gnutls_v2_compat.c, lib/x509/verify.c, libextra/ext_srp.c,
-       src/certtool-cfg.c, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/cli-gaa.c, src/cli-gaa.h, src/serv-gaa.c, src/serv-gaa.h,
-       src/tls_test-gaa.c, src/tls_test-gaa.h: Some updates in order to
-       compile with tcc.
-
-2004-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/structure.c: added the new libtasn1.
-
-2004-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-cfg.c, src/certtool-cfg.h, src/certtool.c: some
-       cleanups in the parsing code.
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-05.txt,
-       doc/protocol/draft-ietf-tls-rfc2246-bis-06.txt: [no log message]
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: [no log message]
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/extensions.c, src/certtool.c: minor bugfixes.
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/extensions.c, lib/x509/x509_write.c: [no log message]
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/certtool.cfg: [no log message]
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/certtool.cfg, src/certtool-cfg.c, src/certtool-cfg.h,
-       src/certtool.c: [no log message]
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/Makefile.am, doc/certtool.cfg, doc/manpages/certtool.1,
-       doc/tex/programs.tex, src/certtool.cfg, src/tests.c: [no log
-       message]
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: [no log message]
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, src/Makefile.am: certtool will use the system's
-       libcfg if available.
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/TODO, src/Makefile.am,
-       src/certtool-cfg.c, src/certtool-cfg.h, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.cfg,
-       src/certtool.gaa, src/cfg/Makefile.am, src/cfg/cfg+.c,
-       src/cfg/cfg+.h, src/cfg/cfgfile.c, src/cfg/cfgfile.h,
-       src/cfg/cmdline.c, src/cfg/cmdline.h, src/cfg/parse.c,
-       src/cfg/platon/Makefile.am, src/cfg/platon/str/Makefile.am,
-       src/cfg/platon/str/dynfgets.c, src/cfg/platon/str/dynfgets.h,
-       src/cfg/platon/str/strctype.c, src/cfg/platon/str/strctype.h,
-       src/cfg/platon/str/strdyn.c, src/cfg/platon/str/strdyn.h,
-       src/cfg/platon/str/strplus.c, src/cfg/platon/str/strplus.h,
-       src/cfg/props.c, src/cfg/shared.c, src/cfg/shared.h, src/getpass.c,
-       src/getpass.h: Added batch support to certtool. Now can use
-       templates.
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_cipher_int.c, lib/gnutls_global.c,
-       lib/x509/Makefile.am, lib/x509/rc2.c, lib/x509/rc2.h: The RC2 cipher
-       is no more included. The one in libgcrypt is now used.
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/extensions.c, lib/x509/extensions.h,
-       lib/x509/x509_write.c, src/certtool.c: updated the extensions
-       handling.
-
-2004-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, includes/gnutls/x509.h, lib/x509/extensions.c,
-       lib/x509/extensions.h, lib/x509/x509.c, lib/x509/x509_write.c,
-       src/certtool.c: - Added support for authority key identifier X.509 extension   field.  - Added support for the extended key usage X.509 extension field.
-
-2004-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, lib/gnutls_cipher.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_state.c: The record receive buffer
-       is now stored in the session data, to avoid memory allocations per
-       receive.
-
-2004-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog, NEWS, configure.in: [no log message]
-
-2004-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_rsa_export.c, lib/x509/privkey.c, lib/x509/x509.h: 
-       Optimized (a bit) the rsa_parameter copying. I don't like it.
-
-2004-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_compress_int.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: [no log message]
-
-2004-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls_state.c: - Corrected bug in RSA parameters handling which could cause   unexpected crashes.
-
-2004-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/library.tex, lib/auth_cert.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h: [no log message]
-
-2004-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp.c: implemented all the check for SRP group
-       parameters from the latest SRP draft.
-
-2004-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp.h, libextra/auth_srp_passwd.c,
-       libextra/gnutls_srp.c: [no log message]
-
-2004-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: [no log message]
-
-2004-03-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/examples.tex,
-       doc/tex/gnutls.bib, doc/tex/gnutls.tex: [no log message]
-
-2004-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_handshake.c, lib/gnutls_x509.c: some improvements that
-       lead to fewer calls to malloc().
-
-2004-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/gnutls.bib, doc/tex/howto.tex, doc/tex/tls_extensions.tex: 
-       [no log message]
-
-2004-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/gnutls/extra.h, lib/auth_cert.c,
-       lib/gnutls_cert.c, lib/gnutls_global.c, lib/gnutls_int.h,
-       lib/gnutls_ui.h, libextra/auth_srp_passwd.c, libextra/gnutls_srp.c,
-       src/cli.c, src/tests.c: Deprecated:
-       gnutls_srp_server_set_select_function(),
-       gnutls_certificate_client_set_select_function(),
-       gnutls_srp_server_set_select_function().
-
-2004-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, src/Makefile.am, src/certtool.c, src/crypt.c,
-       src/getpass.c, src/getpass.h: replaced the getpass() call with an
-       internal one.
-
-2004-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am, doc/tex/Makefile.am,
-       doc/tex/ex-pgp-keyserver.tex, doc/tex/examples.tex: removed the
-       openpgp key retrieval example.
-
-2004-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/Makefile.am, libextra/openpgp/openpgp.c,
-       libextra/openpgp/xml.c: Finally corrected a compilation issue when
-       opencdk was installed in a non-base directory. Some other minor
-       fixes.
-
-2004-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libgcrypt.m4, src/serv.c: [no log message]
-
-2004-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/auth.tex, includes/gnutls/x509.h,
-       lib/gnutls.h.in.in, lib/gnutls_anon_cred.c, lib/gnutls_cert.c,
-       lib/gnutls_dh.h, lib/gnutls_dh_primes.c, lib/gnutls_int.h,
-       lib/gnutls_rsa_export.c, lib/gnutls_rsa_export.h,
-       lib/gnutls_state.c, lib/gnutls_ui.h, lib/x509/privkey.c,
-       lib/x509/privkey.h: * Added functions gnutls_rsa_params_cpy(), gnutls_dh_params_cpy()   and gnutls_x509_privkey_cpy().
-
-2004-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/auth.tex, doc/tex/preparation.tex,
-       lib/gnutls_handshake.c, lib/gnutls_state.c: * Added some preliminary documentation for the new libgcrypt locking
-       interface.  * Added some documentation for the parameters setting using
-       callback.
-
-2004-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.h,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/gnutls.h.in.in, lib/gnutls_anon_cred.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_sig.c, lib/gnutls_state.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h, src/serv.c: Added
-       gnutls_certificate_set_params_function() and
-       gnutls_anon_set_params_function() that set the RSA or DH parameters
-       using a callback.
-
-2004-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/openpgp.h: [no log message]
-
-2004-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/openpgp.h: [no log message]
-
-2004-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/int.h, lib/minitasn1/libtasn1.h: added new libtasn1
-       (0.2.7)
-
-2004-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_hash_int.c: some bugfixes. No
-       longer allow sending client hello if a TLS version is not set.
-
-2004-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls_cipher.c, lib/gnutls_constate.c,
-       lib/gnutls_hash_int.c, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_sig.c: patch to fix the bug in mutual certificate
-       authentication in SSL 3.0
-
-2004-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h: added new minitasn1.
-
-2004-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-compression-06.txt,
-       doc/protocol/draft-ietf-tls-compression-07.txt,
-       doc/protocol/draft-ietf-tls-srp-05.txt,
-       doc/protocol/draft-ietf-tls-srp-06.txt: [no log message]
-
-2004-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/openpgp.c: [no log message]
-
-2004-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/alert.tex, doc/tex/ciphers.tex, doc/tex/howto.tex,
-       doc/tex/srp.tex, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/x509/Makefile.am, lib/x509/rfc2818_hostname.c, opencdk.m4: 
-       Corrected the return values of gnutls_x509_crt_check_hostname().
-
-2004-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/preface.tex: [no log message]
-
-2004-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/Makefile.am: [no log message]
-
-2004-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.h: [no log message]
-
-2004-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c: fixed CRLDistpoints ASN.1
-       definitions.
-
-2004-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c, libextra/auth_srp.c: [no log message]
-
-2004-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/structure.c, src/common.c: [no log message]
-
-2004-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c: [no log message]
-
-2004-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/compression.tex, lib/ext_server_name.c,
-       lib/gnutls.h.in.in, lib/gnutls_extensions.c, src/cli.c,
-       src/common.c: Fixed a bug where 'server name' extension was always
-       sent.
-
-2004-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dh_primes.c: Fixed some bugs. Patch by Brieuc Jeunhomme
-       <bbp@via.ecp.fr>.
-
-2004-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, src/certtool.c: added getpass() check.
-
-2004-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/cert_auth.tex,
-       doc/tex/ex-x509-info.tex, doc/tex/library.tex,
-       doc/tex/programs.tex, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cert.c, lib/gnutls_cipher.c,
-       lib/gnutls_constate.c, lib/gnutls_errors.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_record.c,
-       lib/gnutls_state.c, lib/x509/crl.c, lib/x509/crq.c,
-       lib/x509/pkcs12.c, lib/x509/pkcs7.c, lib/x509/x509.c,
-       lib/x509/x509_write.c, lib/x509/xml.c, lib/x509_b64.c,
-       libextra/gnutls_extra.c, libextra/gnutls_srp.c, src/certtool-gaa.c,
-       src/certtool.c, src/cli-gaa.c, src/common.c, src/crypt-gaa.c,
-       src/serv-gaa.c, src/serv.c, src/tls_test-gaa.c: Several bug fixes
-       and cleanups by Arne Thomassen.
-
-2004-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/pkix.asn, lib/pkix_asn1_tab.c: [no log
-       message]
-
-2004-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, includes/gnutls/x509.h, lib/gnutls.h.in.in,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crl.c, lib/x509/crq.c, lib/x509/dn.c, lib/x509/mpi.c,
-       lib/x509/pkcs12.c, lib/x509/sign.c, lib/x509/x509.c, src/certtool.c: * Added the gnutls_sign_algorithm type.  * Improved the DN parser.
-
-2004-01-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, doc/protocol/rfc3039.txt, lib/gnutls_handshake.c: [no
-       log message]
-
-2004-01-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/x509/common.c, lib/x509/privkey_pkcs8.c: 
-       [no log message]
-
-2004-01-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/Makefile.am: [no log message]
-
-2004-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: the -D_REENTRANT is now used.
-
-2004-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: [no log message]
-
-2004-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2004-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2004-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/common.c,
-       lib/x509/dn.c, src/certtool.c: Corrected problem printing the DC
-       attributes in a DN.
-
-2004-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: [no log message]
-
-2004-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       src/certtool.c, src/common.c: [no log message]
-
-2004-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/x509/compat.c, libextra/gnutls_openpgp.c,
-       libextra/openpgp/gnutls_openpgp.h, src/cli.c: [no log message]
-
-2004-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crl_write.c: [no log message]
-
-2004-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/compat.h, lib/x509/rfc2818_hostname.c, src/cli.c: Updated
-       gnutls-cli's SRP behaviour. Some other fixes.
-
-2003-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: [no log message]
-
-2003-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.h, src/certtool.c, src/common.c: [no log message]
-
-2003-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/auth.tex, lib/gnutls_algorithms.c, lib/gnutls_ui.h,
-       lib/x509/rfc2818_hostname.c, lib/x509/x509.c, src/certtool.c: [no
-       log message]
-
-2003-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/x509/rfc2818_hostname.c, libextra/openpgp/openpgp.c: [no log
-       message]
-
-2003-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, lib/gnutls_cipher.c: [no log message]
-
-2003-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: added TLS 1.1 protocol
-       detection.
-
-2003-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/x509/rfc2818_hostname.c: [no log message]
-
-2003-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: added arcfour 40 cipher
-       detection.
-
-2003-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/library.tex, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/extensions.c: [no log message]
-
-2003-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex-cert-select.tex, doc/tex/macros.tex,
-       doc/tex/record_weaknesses.tex, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, lib/gnutls_cipher.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_state.c, src/common.c, src/serv.c: 
-       Added support for TLS 1.1
-
-2003-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_cert.h, lib/gnutls_cert.c,
-       lib/gnutls_random.c, lib/gnutls_ui.h: updated the client retrieval
-       certificate callback.
-
-2003-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/cert_auth.tex, doc/tex/certificate.tex,
-       doc/tex/ex-x509-info.tex, includes/gnutls/x509.h, lib/x509/x509.c,
-       lib/x509/x509_write.c, src/certtool.c: Added
-       gnutls_x509_crt_cpy_crl_dist_points()
-
-2003-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/certificate.tex, doc/tex/gnutls.bib,
-       includes/gnutls/extra.h, includes/gnutls/x509.h,
-       lib/gnutls.h.in.in, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/extensions.c, lib/x509/x509.c, lib/x509/x509.h,
-       src/certtool.c: Corrected the CRL distribution point extension
-       handling.
-
-2003-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c, lib/x509/compat.h, libextra/gnutls_extra.c,
-       libextra/openpgp/compat.c, libextra/openpgp/gnutls_openpgp.h: [no
-       log message]
-
-2003-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * AUTHORS, NEWS, configure.in, doc/tex/cover.tex.in,
-       includes/Makefile.am, includes/gnutls/Makefile.am,
-       includes/gnutls/compat8.h, includes/gnutls/openssl.h,
-       lib/auth_anon.c, lib/auth_cert.c, lib/auth_dh_common.c,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c, lib/debug.c,
-       lib/ext_cert_type.c, lib/ext_max_record.c, lib/ext_server_name.c,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_compress.c, lib/gnutls_compress_int.c,
-       lib/gnutls_constate.c, lib/gnutls_datum.c, lib/gnutls_db.c,
-       lib/gnutls_dh.c, lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_kx.c,
-       lib/gnutls_mem.c, lib/gnutls_mpi.c, lib/gnutls_num.c,
-       lib/gnutls_pk.c, lib/gnutls_priority.c, lib/gnutls_random.c,
-       lib/gnutls_record.c, lib/gnutls_rsa_export.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/gnutls_str.c, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/gnutls_x509.c, lib/strnstr.c, lib/x509/common.c,
-       lib/x509/compat.c, lib/x509/compat.h, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/dsa.c,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs5.c,
-       lib/x509/pkcs7.c, lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/rc2.c, lib/x509/rfc2818_hostname.c, lib/x509/sign.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_write.c,
-       lib/x509/xml.c, lib/x509_b64.c, libextra/Makefile.am,
-       libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_rsa.c, libextra/auth_srp_sb64.c,
-       libextra/ext_srp.c, libextra/gnutls_extra.c,
-       libextra/gnutls_openpgp.c, libextra/gnutls_openssl.c,
-       libextra/gnutls_srp.c, libextra/openpgp/compat.c,
-       libextra/openpgp/extras.c, libextra/openpgp/openpgp.c,
-       libextra/openpgp/privkey.c, libextra/openpgp/verify.c,
-       libextra/openpgp/xml.c, libextra/openssl_compat.c,
-       libextra/openssl_compat.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa, src/cli.c, src/crypt.c,
-       src/prime.c, src/serv.c, src/tests.c, src/tls_test.c: * Added CRL verification functionality to certtool.  * Added the FSF copyright notices.  * Moved all the compatibility interface to the openssl   compatibility library.
-
-2003-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c, lib/x509/mpi.c, lib/x509/mpi.h, lib/x509/sign.c,
-       lib/x509/verify.c: corrected signing and verifying with DSA keys.
-
-2003-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/tex/certificate.tex, includes/gnutls/x509.h,
-       lib/Makefile.am, lib/x509/Makefile.am, lib/x509/crl.c,
-       lib/x509/sign.c, lib/x509/sign.h, lib/x509/x509_write.c,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: Added support for generating CRLs in the library
-       and the certtool utility.
-
-2003-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls_mpi.h, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/extensions.c, lib/x509/extensions.h,
-       lib/x509/privkey.c, lib/x509/x509.c, lib/x509/x509.h,
-       lib/x509/x509_write.c, src/certtool.c: Added support for the Subject
-       Key ID PKIX extension.
-
-2003-12-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_server_name.c, libextra/gnutls_srp.c: [no log message]
-
-2003-12-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, includes/gnutls/x509.h, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/common.c, lib/x509/dsa.c,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/x509.c,
-       lib/x509/x509_write.c, src/certtool.c: Added support for reading and
-       generating CRL distribution points extensions in certificates (not
-       working yet).
-
-2003-12-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_mpi.h, libextra/auth_srp.c: Added checks (in SRP) for
-       A%n==0,1,-1 in server side.
-
-2003-12-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/TODO, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa: Added PKCS #7
-       support to certtool utility.
-
-2003-12-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/examples/Makefile.am, doc/manpages/certtool.1,
-       doc/tex/ex-cert-select.tex, doc/tex/examples.tex, lib/auth_cert.c,
-       lib/auth_cert.h, lib/gnutls_cert.c, lib/gnutls_int.h,
-       lib/gnutls_ui.h, lib/x509/compat.c, libextra/gnutls_openssl.c: [no
-       log message]
-
-2003-12-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: [no log message]
-
-2003-12-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, includes/Makefile.am,
-       includes/gnutls/Makefile.am, includes/gnutls/compat4.h,
-       includes/gnutls/compat8.h, includes/gnutls/openpgp.h,
-       includes/gnutls/x509.h, lib/dh_compat.c, lib/gnutls_ui.h,
-       lib/rsa_compat.c, libextra/gnutls_openpgp.c,
-       libextra/openpgp/openpgp.c, libextra/openpgp/verify.c,
-       libextra/openpgp/xml.c: Added gnutls_openpgp_key_get_key_usage(),
-       and removed several compatibility functions.
-
-2003-12-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/openpgp.h, lib/Makefile.am, lib/auth_cert.c,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/x509/common.c, lib/x509/mpi.c,
-       lib/x509/rfc2818_hostname.c, libextra/Makefile.am,
-       libextra/auth_srp_rsa.c, libextra/gnutls_extra.c,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/openpgp.h,
-       libextra/openpgp/privkey.c: several cleanups.
-
-2003-12-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: Corrected bug which disallowed
-       ciphersuites other than the CERTIFICATE ones to work.
-
-2003-12-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/privkey.c: [no log message]
-
-2003-12-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, includes/gnutls/compat8.h, includes/gnutls/openpgp.h,
-       lib/auth_cert.c, lib/gnutls_cert.c, lib/gnutls_int.h,
-       lib/gnutls_ui.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       libextra/Makefile.am, libextra/gnutls_extra.h,
-       libextra/gnutls_openpgp.c, libextra/openpgp/Makefile.am,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/openpgp.c,
-       libextra/openpgp/openpgp.h: Improved
-       gnutls_certificate_client_retrieve_function() and
-       gnutls_certificate_server_retrieve_function() so that the parsing
-       time spent within them is minimized. Also added
-       gnutls_openpgp_privkey struct. No testing yet.
-
-2003-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls_cert.h, lib/x509/extensions.c,
-       lib/x509/x509_write.c: [no log message]
-
-2003-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls_cert.h,
-       lib/x509/extensions.c, lib/x509/extensions.h,
-       lib/x509/x509_write.c, src/certtool.c, src/tests.c, src/tests.h,
-       src/tls_test.c: Added gnutls_x509_crt_set_key_usage() and certtool
-       can now set the certificate's key usage.
-
-2003-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, doc/protocol/draft-ietf-tls-emailaddr-00.txt,
-       doc/tex/auth.tex: [no log message]
-
-2003-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/cert_auth.tex, doc/tex/ciphersuites.tex, src/serv.c: [no
-       log message]
-
-2003-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am, doc/tex/auth.tex, doc/tex/cert_auth.tex,
-       doc/tex/certificate.tex, doc/tex/ciphers.tex,
-       doc/tex/ciphersuites.tex, doc/tex/compression.tex,
-       doc/tex/handshake.tex, doc/tex/openpgp.tex,
-       doc/tex/preparation.tex, doc/tex/record_weaknesses.tex,
-       doc/tex/tls_extensions.tex, doc/tex/x509.tex: some updated in
-       documentation
-
-2003-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/cli.c, src/serv.c: Corrected bug in gnutls_bye() which made it
-       return an error code of INVALID_REQUEST instead of success.
-
-2003-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, includes/gnutls/x509.h, lib/Makefile.am,
-       lib/gnutls_pk.c, lib/gnutls_rsa_export.c, lib/gnutls_rsa_export.h,
-       lib/gnutls_sig.c, lib/gnutls_ui.h, lib/rsa_compat.c,
-       lib/x509/Makefile.am, lib/x509/common.c, lib/x509/crq.c,
-       lib/x509/dsa.c, lib/x509/dsa.h, lib/x509/mpi.c, lib/x509/mpi.h,
-       lib/x509/privkey.c, lib/x509/sign.c, lib/x509/x509.c,
-       lib/x509/x509_write.c, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa: Added support for generating and
-       exporting DSA private keys. Exporting to PKCS #8 is still not
-       supported due to lack of standards.
-
-2003-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_cert.c, lib/auth_cert.h, lib/auth_dhe.c,
-       lib/auth_rsa.c, lib/auth_rsa_export.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_int.h, lib/gnutls_state.c,
-       lib/gnutls_ui.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       libextra/auth_srp_rsa.c, libextra/gnutls_extra.c,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/openpgp/gnutls_openpgp.h: Added the callbacks
-       gnutls_certificate_client_retrieve_function() and
-       gnutls_certificate_server_retrieve_function(), to allow a client or
-       a server to specify certificates for the handshake without storing
-       them to the credentials structure.
-
-2003-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/auth_anon.c, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/dh_compat.c, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_rsa_export.c, lib/gnutls_ui.c,
-       lib/libgnutls.vers, lib/x509/common.c, libextra/auth_srp_rsa.c,
-       libextra/gnutls_extra.c, libextra/libgnutls-extra.vers, opencdk.m4: * The error codes GNUTLS_E_NO_TEMPORARY_DH_PARAMS and
-         GNUTLS_E_NO_TEMPORARY_RSA_PARAMS are no longer returned by the
-         handshake function. Ciphersuites that require temporary parameters
-       are removed when such parameters do not exist.  * Several internal changes to allow adding the callback function to
-         retrieve the certificate and the private key.
-
-2003-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls.h.in.in, lib/gnutls_dh_primes.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_state.c: Included
-       gnutls_1_0_0_patches.
-
-2003-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, THANKS, lib/Makefile.am, lib/gnutls_handshake.c,
-       lib/gnutls_record.c, libextra/Makefile.am,
-       libextra/openpgp/Makefile.am, src/cli.c, src/tests.c, src/tests.h,
-       src/tls_test.c: Included gnutls_1_0_0_patches.
-
-2003-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, doc/tex/ciphers.tex, lib/gnutls_dh_primes.c,
-       lib/gnutls_mpi.c, src/prime.c: some minor fixes and cleanups.
-
-2003-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/common.c: [no log message]
-
-2003-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cipher.c, lib/gnutls_cipher_int.c: some cleanups in the
-       record protocol processing.
-
-2003-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/tex/srp.tex, includes/gnutls/extra.h,
-       lib/gnutls.h.in.in, lib/gnutls_errors.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_state.c, libextra/auth_srp.c,
-       libextra/auth_srp.h, libextra/ext_srp.c, libextra/ext_srp.h,
-       libextra/gnutls_srp.c, src/cli.c: Improved the support for
-       draft-ietf-tls-srp-05. The two-phase handshake is now fully
-       supported without any interaction with the application layer (except
-       for a callback).
-
-2003-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/manpages/Makefile.am, doc/manpages/certtool.1,
-       doc/manpages/gnutls-cli-debug.1, doc/manpages/gnutls-cli.1,
-       doc/manpages/gnutls-serv.1, doc/manpages/gnutls-srpcrypt.1: Added
-       new manpages by Ivo.
-
-2003-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ciphersuites.tex: [no log message]
-
-2003-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_hash_int.c, lib/gnutls_random.c,
-       lib/x509/dn.c, src/common.c: eliminated some memory leaks and other
-       fixes.
-
-2003-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-serv-export.tex, doc/tex/ex-serv-srp.tex,
-       doc/tex/preface.tex: [no log message]
-
-2003-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tests.h, src/tls_test.c: added detection for ZLIB
-       compression.
-
-2003-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tls_test.c: improved srp detection.
-
-2003-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/srp.tex, lib/gnutls_cipher.c, libextra/auth_srp.c,
-       src/cli.c: Some fixes in the certificate authenticated SRP
-       ciphersuites.
-
-2003-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.autoconf, lib/gnutls_alert.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c,
-       libextra/auth_srp.c, src/serv-gaa.c, src/serv.c: some fixes to
-       comply with the SRP draft. The handshake is now repeated if an empty
-       SRP username is received.
-
-2003-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/srp.tex, includes/gnutls/extra.h,
-       lib/gnutls_anon_cred.c, lib/gnutls_cert.c, lib/gnutls_x509.c,
-       lib/libgnutls.vers, lib/x509_b64.c, libextra/auth_srp.c,
-       libextra/auth_srp_sb64.c, libextra/gnutls_openpgp.c,
-       libextra/gnutls_srp.c, libextra/libgnutls-extra.vers,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/openpgp.c,
-       libextra/openpgp/verify.c, src/common.c, src/crypt.c: several
-       corrections in the documentation.
-
-2003-11-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/libgnutls.vers, libextra/libgnutls-extra.vers: 
-       [no log message]
-
-2003-11-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-11-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/auth.tex, doc/tex/examples.tex, doc/tex/gnutls.bib,
-       doc/tex/gnutls.tex, doc/tex/handshake.tex, doc/tex/library.tex,
-       doc/tex/preface.tex, doc/tex/programs.tex, doc/tex/srp.tex: [no log
-       message]
-
-2003-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/Makefile.am, doc/tex/appendix.tex,
-       doc/tex/ciphers.tex, doc/tex/ciphersuites.tex,
-       doc/tex/supported_ciphersuites.tex, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, lib/gnutls_cipher_int.c, lib/gnutls_int.h,
-       lib/gnutls_state.c: Removed the TWOFISH cipher. Documented the
-       supported ciphersuites.
-
-2003-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-benaloh-pct-00.txt,
-       doc/protocol/draft-benaloh-pct-01.txt,
-       doc/protocol/draft-hickman-netscape-ssl-00.txt: Added historical
-       documents. Got from
-       http://www21.ocn.ne.jp/~k-west/SSLandTLS/index-e.html
-
-2003-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, doc/tex/preface.tex: [no log message]
-
-2003-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/preface.tex: [no log message]
-
-2003-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/tex/Makefile.am, lib/auth_cert.c,
-       lib/auth_rsa_export.c, lib/gnutls.h.in.in, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_mem.h, lib/gnutls_mpi.c,
-       lib/gnutls_mpi.h, lib/gnutls_x509.c, libextra/gnutls_openpgp.c,
-       src/serv.c: corrected some bugs that affected openpgp
-       authentication.
-
-2003-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ciphersuites.tex, doc/tex/gnutls.bib, doc/tex/gnutls.tex,
-       doc/tex/handshake.tex, doc/tex/library.tex, doc/tex/openpgp.tex,
-       doc/tex/preface.tex: [no log message]
-
-2003-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/protocol/rfc3279.txt, doc/tex/cover.tex.in,
-       doc/tex/gnutls.bib, doc/tex/library.tex, includes/gnutls/x509.h,
-       lib/gnutls_pk.c, lib/x509/privkey.c, lib/x509/verify.c,
-       lib/x509/verify.h, lib/x509/x509.c: Exported the
-       gnutls_x509_privkey_sign_data(), gnutls_x509_privkey_verify_data()
-       and gnutls_x509_crt_verify_data().
-
-2003-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: only generate v3 certificates, since we always use
-       the CA (basicConstraints) extension.
-
-2003-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/privkey.c: ensure that the leading
-       zero is there on RSA keys.
-
-2003-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c, lib/x509/sign.c, lib/x509/x509_write.c: [no log
-       message]
-
-2003-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-x509-info.tex: [no log message]
-
-2003-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c: added crq_get_version().
-
-2003-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/ex-crq.tex, doc/tex/gnutls.bib,
-       doc/tex/openssl.tex, lib/x509/crq.c, lib/x509/x509_write.c,
-       src/certtool.c: Some documentation fixes. Changed
-       gnutls_x509_*_set_version() to have a compatible input with
-       gnutls_x509_*_get_version().
-
-2003-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/rfc2459.txt, doc/protocol/rfc3280.txt: added the
-       newest PKIX rfc.
-
-2003-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-cert-select.tex, doc/tex/ex-client-resume.tex,
-       doc/tex/ex-client-srp.tex, doc/tex/ex-client2.tex,
-       doc/tex/ex-serv-export.tex, doc/tex/ex-serv-pgp.tex,
-       doc/tex/examples.tex: [no log message]
-
-2003-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_record.c: [no log message]
-
-2003-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.autoconf, includes/gnutls/x509.h, lib/x509/pkcs5.c,
-       src/common.c, src/serv.c: [no log message]
-
-2003-11-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-compression-05.txt,
-       doc/protocol/draft-ietf-tls-compression-06.txt,
-       doc/protocol/draft-ietf-tls-ecc-03.txt,
-       doc/protocol/draft-ietf-tls-ecc-04.txt: [no log message]
-
-2003-11-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: generated certificates by certtool now have
-       version 1 if they do not include extensions.
-
-2003-11-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/ext_server_name.c, lib/gnutls.h.in.in, opencdk.m4,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c: [no log
-       message]
-
-2003-11-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS, lib/gnutls_session.c, lib/x509/pkcs12.c,
-       libextra/gnutls_openssl.c, src/certtool.gaa, src/serv-gaa.c,
-       src/serv.c, src/serv.gaa: Some fixes pointed out by Dimitri
-       Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-client-resume.tex, doc/tex/ex-client-srp.tex,
-       doc/tex/ex-client2.tex, doc/tex/ex-rfc2818.tex,
-       doc/tex/examples.tex: [no log message]
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am, doc/tex/ex-client-resume.tex,
-       doc/tex/ex-client-srp.tex, doc/tex/ex-client2.tex,
-       doc/tex/examples.tex: Simplified a bit the client examples.
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-client1.tex: [no log message]
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs5.c, src/certtool-gaa.c, src/certtool.gaa,
-       src/serv.c, src/tests.c: [no log message]
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: some changes in password reading.
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs5.c: some corrections in the pkcs5 module by Simon
-       Josefsson.
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_server_name.c, lib/gnutls_int.h: [no log message]
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_session_pack.c,
-       lib/gnutls_session_pack.h: [no log message]
-
-2003-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/auth_cert.c, lib/defines.h,
-       lib/ext_server_name.c, lib/gnutls.h.in.in, lib/gnutls_cert.c,
-       lib/gnutls_record.c, lib/gnutls_session.c, lib/gnutls_state.c,
-       lib/gnutls_str.c, lib/gnutls_ui.c, lib/gnutls_ui.h, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/extensions.c,
-       lib/x509/pkcs12.h, lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c,
-       lib/x509/pkcs5.c, lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_write.c,
-       lib/x509_b64.c, libextra/gnutls_srp.c, src/certtool.c,
-       src/common.c, src/serv.c: Several minor fixes in code and function
-       documentation.
-
-2003-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-crq.tex: [no log message]
-
-2003-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/common.c, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/x509.c, lib/x509/x509_write.c: [no log
-       message]
-
-2003-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/x509/crl.c, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/dn.h, lib/x509/extensions.c,
-       lib/x509/extensions.h, lib/x509/x509.c, src/certtool.c: * Added gnutls_x509_*_get_dn_oid() and
-         gnutls_x509_crt_get_extension_oid() functions which return the
-       available OIDs.  * The certtool utility now prints all available extension OIDs and   values.
-
-2003-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls_str.c, lib/gnutls_str.h,
-       lib/x509/common.c, lib/x509/compat.c, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/crq.h, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/rfc2818_hostname.c, lib/x509/x509.c, lib/x509/x509.h,
-       libextra/openpgp/openpgp.h: gnutls_x509_*_get_*_dn_by_oid()
-       functions have a raw_flag parameter added.  Several other fixes.
-
-2003-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/gnutls/compat8.h,
-       includes/gnutls/openpgp.h, includes/gnutls/pkcs12.h,
-       includes/gnutls/x509.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/x509/compat.c, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/dn.h, lib/x509/pkcs12.c,
-       lib/x509/pkcs7.c, lib/x509/pkcs7.h, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.c, lib/x509/x509.h,
-       lib/x509/x509_write.c, libextra/openpgp/openpgp.c, src/certtool.c,
-       src/cli.c, src/common.c, src/tests.c: gnutls_x509_*_set_dn_by_oid()
-       functions have a raw_flag parameter added. Some other fixes in
-       function types.
-
-2003-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, includes/gnutls/compat8.h, includes/gnutls/x509.h,
-       lib/gnutls.h.in.in, lib/x509/crq.c, lib/x509/crq.h,
-       lib/x509/x509.c, lib/x509/x509.h: Compatibility header for gnutls4
-       is no longer included in gnutls.h. Added deprecated warnings to
-       gnutls8 stuff.
-
-2003-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/openssl.h: [no log message]
-
-2003-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c, lib/x509/x509.c: [no log message]
-
-2003-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/common.c, lib/x509/crq.c,
-       lib/x509/x509_write.c: added gnutls_x509_oid_known() to report known
-       OIDs.
-
-2003-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509_write.c: added gnutls_x509_oid_known() to report
-       known OIDs.
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/defines.h, lib/gnutls.h.in.in,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.gaa,
-       src/crypt-gaa.c, src/crypt-gaa.h, src/crypt.gaa, src/prime.c,
-       src/tls_test-gaa.c, src/tls_test-gaa.h, src/tls_test.gaa: [no log
-       message]
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/ext_max_record.c, lib/gnutls_extensions.c,
-       lib/gnutls_int.h, src/cli.c: [no log message]
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: [no log message]
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/auth_cert.c, lib/debug.c,
-       lib/ext_server_name.c, lib/gnutls_buffers.c, lib/gnutls_constate.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/gnutls_mem.c,
-       lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
-       lib/x509/crl.c, lib/x509_b64.c, libextra/auth_srp.c,
-       libextra/auth_srp_sb64.c, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openssl.c, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/verify.c, src/common.h: Some bugfixes, and type
-       corrections.
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in: [no log message]
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/x509/common.c, src/cli.c, src/common.c, src/serv.c: Added the
-       RIPEMD ciphersuites defined in draft-ietf-tls-openpgp-keys-04.
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/libgnutls.m4, libextra/libgnutls-extra.m4: [no log message]
-
-2003-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/openssl.tex, includes/Makefile.am,
-       lib/minitasn1/mem.h, libextra/Makefile.am,
-       libextra/libgnutls-extra.vers: The openssl compatibility layer was
-       moved to gnutls-openssl to allow the extension of it without
-       bloating the libgnutls-extra.
-
-2003-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/defines.h: [no log message]
-
-2003-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: [no log message]
-
-2003-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Prints certificate information before signing.
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_random.h: [no log message]
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_random.c, src/crypt.c: Patch by Werner
-       Koch: * configure.in: Check for gcry_create_nonce.  * lib/gnutls_random.c (_gnutls_get_random): Ditto.  * src/crypt.c (_srp_crypt): Use gcry_create_nonce if available.  Also removed some unneeded code in random.c.
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog, NEWS, configure.in: [no log message]
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa: Added capability to read CRLs to
-       certtool.
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls_x509.c, lib/x509/compat.c,
-       lib/x509/crl.c, lib/x509/pkcs7.c, lib/x509/pkcs7.h,
-       lib/x509/x509.c, lib/x509/x509.h: Renamed several pkcs #7 related
-       functions. That is to allow future extensions to the API.
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc: [no log message]
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crl.c, lib/x509/crq.c, lib/x509/pkcs12_bag.c,
-       lib/x509/x509.c, lib/x509/x509_write.c: [no log message]
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc: [no log message]
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc: [no log message]
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h: [no log message]
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/gnutls/x509.h, lib/gnutls.h.in.in,
-       lib/gnutls_dh_primes.c, lib/gnutls_ui.h, lib/x509/pkcs7.c,
-       lib/x509_b64.c, src/cli-gaa.c: Added gnutls_pkcs7_set_certificate2()
-       and gnutls_pkcs7_set_crl2() functions.
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crl.c, lib/x509/crq.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs12_bag.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.c: added some check for the
-       input parameters.
-
-2003-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, libgcrypt.m4: [no log message]
-
-2003-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/x509/common.c, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/x509.c: Removed the
-       gnutls_handshake_set_rsa_pms_check() prototype from gnutls.h.
-       Corrected the *_get_dn() functions to return the data size if the
-       data argument is NULL, and *data_size == 0. Bugs reported by Gergely
-       Nagy <algernon@bonehunter.rulez.org>.
-
-2003-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/gnutls_constate.c, lib/gnutls_extensions.c,
-       lib/gnutls_session_pack.c: some fixes to have the correct cert_type
-       on resumed sessions.
-
-2003-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool.c: The certtool utility can now generate PKCS
-       #12 structures without specifying a certificate.
-
-2003-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/gnutls.bib: [no log message]
-
-2003-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/errors.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/mem.h,
-       lib/minitasn1/structure.c: Included the new libtasn 0.2.6.
-
-2003-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-03.txt,
-       doc/protocol/draft-ietf-tls-openpgp-keys-04.txt: [no log message]
-
-2003-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.gaa,
-       src/cli.c, src/common.c, src/common.h, src/crypt-gaa.c,
-       src/crypt-gaa.h, src/crypt.gaa, src/prime.c, src/serv.c,
-       src/tests.c, src/tls_test-gaa.c, src/tls_test-gaa.h,
-       src/tls_test.c, src/tls_test.gaa: some code cleanups.
-
-2003-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c, libextra/gnutls_srp.c: [no log message]
-
-2003-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.gaa,
-       src/common.c, src/crypt-gaa.c, src/crypt-gaa.h, src/crypt.gaa,
-       src/tests.c, src/tests.h, src/tls_test-gaa.c, src/tls_test-gaa.h,
-       src/tls_test.c, src/tls_test.gaa: [no log message]
-
-2003-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/certtool-gaa.c, src/certtool.gaa, src/cli.c,
-       src/common.c, src/common.h, src/crypt-gaa.c, src/crypt.gaa,
-       src/serv.c, src/tls_test.c: [no log message]
-
-2003-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.gaa, src/crypt-gaa.c,
-       src/crypt-gaa.h, src/crypt.c, src/crypt.gaa: [no log message]
-
-2003-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in: Corrected the types in
-       gnutls_anon_free_client_credentials() and
-       gnutls_anon_allocate_client_credentials(). Reported by Ivo.
-
-2003-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, src/crypt.c, src/tests.c, src/tls_test.c: [no log
-       message]
-
-2003-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_buffers.c, libextra/auth_srp_passwd.c,
-       libextra/gnutls_openpgp.c, libgcrypt.m4, src/Makefile.am,
-       src/certtool.c, src/cli-gaa.c, src/cli.c, src/crypt.c, src/serv.c,
-       src/tests.c, src/tests.h, src/tls_test-gaa.c, src/tls_test.c: some
-       changes to compile in mingw32.
-
-2003-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc: added the new gdoc by Simon.
-
-2003-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_compress.c, lib/gnutls_handshake.c, lib/gnutls_ui.c,
-       lib/x509/privkey.c: [no log message]
-
-2003-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/pkcs12.h, lib/ext_server_name.c,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cert.c,
-       lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_compress_int.c, lib/gnutls_compress_int.h,
-       lib/gnutls_db.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_state.h, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/extensions.h, lib/x509/pkcs12.c, lib/x509/pkcs5.c,
-       lib/x509/pkcs5.h, lib/x509/pkcs7.c, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818_hostname.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509_b64.c, lib/x509_b64.h: 
-       some type fixes. Based on build logs sent by Dimitri
-       Papadopoulos-Orfanos <papadopo@shfj.cea.fr>.
-
-2003-11-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: preserve the flags from the last certificate
-       verification, in a chain.
-
-2003-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/verify.c: added gnutls_openpgp_key_verify_self()
-       which verifies the self signature in the key.
-
-2003-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/openpgp.h, libextra/gnutls_openpgp.c,
-       libextra/openpgp/compat.c, libextra/openpgp/openpgp.c,
-       libextra/openpgp/verify.c, src/common.c: added
-       gnutls_openpgp_key_export() function.
-
-2003-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: [no log message]
-
-2003-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/library.tex,
-       includes/gnutls/openpgp.h, includes/gnutls/x509.h: [no log message]
-
-2003-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/compat.c, libextra/openpgp/openpgp.h,
-       libextra/openpgp/verify.c: [no log message]
-
-2003-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_int.h, lib/x509/pkcs12_bag.c,
-       lib/x509/privkey.h, lib/x509/privkey_pkcs8.c: Some changes to
-       preserve binary compatibility.
-
-2003-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: Added option to certtool to use export-grade
-       algorithms. If password is set in pkcs8 mode, then the output
-       structure will be encrypted.
-
-2003-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/verify.c, libextra/openpgp/verify.c,
-       src/certtool-gaa.c, src/certtool.gaa, tests/test25.pem: [no log
-       message]
-
-2003-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/prime-gaa.c, src/prime-gaa.h, src/prime.gaa: [no log message]
-
-2003-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/Makefile.am: gdoc and sort1.pl are now included in the
-       distribution.
-
-2003-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/certificate.tex, doc/tex/cover.tex.in,
-       doc/tex/ex-rfc2818.tex, lib/gnutls.h.in.in, lib/gnutls_cert.c,
-       lib/gnutls_int.h, lib/x509/compat.c, lib/x509/verify.c,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/verify.c, src/Makefile.am, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa, src/common.c,
-       src/prime.c: * Several changes in certificate and key verification.  * GNUTLS_CERT_NOT_TRUSTED was replaced by GNUTLS_CERT_INVALID, to
-         avoid having two flags for the same thing.  * Updated documentation for openpgp key verification.  * The prime tool was combined with the certtool.
-
-2003-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       libextra/gnutls_openpgp.c, libextra/openpgp/extras.c: [no log
-       message]
-
-2003-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c, src/certtool.gaa, src/common.c: [no log message]
-
-2003-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/.cvsignore, libextra/openpgp/openpgp.c,
-       libextra/openpgp/openpgp.h: [no log message]
-
-2003-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/pkcs12.h, libextra/gnutls_openpgp.c,
-       src/certtool.c, src/common.c: more openpgp related changes.
-
-2003-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs12_bag.c: Added gnutls_pkcs12_bag_set_crl() and
-       gnutls_pkcs12_bag_set_crt() functions.
-
-2003-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: [no log message]
-
-2003-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex, lib/Makefile.am, lib/gnutls_x509.c,
-       lib/strfile.h, libextra/gnutls_openpgp.c,
-       libextra/openpgp/openpgp.h, src/serv.c: some openpgp related
-       changes.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/crypt.c: [no log message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_global.c: added version check against libtasn1
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool.c, src/certtool.gaa,
-       src/common.c: [no log message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c, src/cli.c, src/crypt.c, src/serv.c: Added error
-       checking to global_init() calls.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/auth.tex, doc/tex/handshake.tex, doc/tex/howto.tex: 
-       Corrected some things in documentation. Got from Debian bug tracking
-       system, Reported by Ivan Nestlerode <nestler@speakeasy.net>
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/x509/pkcs12_bag.c,
-       libextra/openpgp/compat.c, libextra/openpgp/extras.c,
-       libextra/openpgp/verify.c: [no log message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/pkcs12.h, lib/gnutls.h.in.in,
-       lib/x509/pkcs12_bag.c, lib/x509/verify.c, src/certtool.c: introduced
-       gnutls_const_datum for gnutls_pkcs12_bag_get_data(). Some other
-       cleanups in the verification functions.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: corrected some bugs in the verification
-       functions.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/test22.pem: [no log message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c, src/certtool.c, tests/test23.pem: [no log
-       message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls.h.in.in, lib/gnutls_int.h,
-       lib/x509/compat.c, lib/x509/verify.c, src/certtool.c, src/common.c,
-       tests/test1.pem, tests/test10.pem, tests/test13.pem,
-       tests/test2.pem, tests/test20.pem, tests/test21.pem,
-       tests/test22.pem, tests/test23.pem, tests/test24.pem,
-       tests/test25.pem, tests/test26.pem, tests/test3.pem: Improved the
-       certificate verification functions and the certtool program's
-       verification capability.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c, src/crypt.c: Certtool is only compiled when
-       ENABLE_PKI is defined.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/Makefile.am: [no log message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509_b64.c, lib/x509_b64.h: Made the
-       B64FSIZE to return an accurate value.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/programs.tex, lib/x509/common.c,
-       lib/x509_b64.c, src/certtool.c: some fixes.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: [no log message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/programs.tex: [no log message]
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: added capability to print pkcs12 structures.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/libgnutls-extra.vers: exported OpenSSL* symbols.
-
-2003-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/rfc2818.h: added missing file.
-
-2003-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex-pkcs12.tex, includes/gnutls/pkcs12.h,
-       lib/x509/common.c, src/certtool-gaa.c, src/certtool-gaa.h,
-       src/certtool.c, src/certtool.gaa: added pkcs #12 support to
-       certtool. Corrected some bugs in the export functions.
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-sharedkeys-01.txt,
-       doc/protocol/draft-ietf-tls-sharedkeys-02.txt: [no log message]
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: [no log message]
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool.c, src/certtool.gaa: [no log
-       message]
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_dh_primes.c: Used the new gcrypt API for
-       generating primes and groups.
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: added the --der option to certtool.
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/programs.tex,
-       includes/gnutls/openpgp.h, lib/x509/x509.c, lib/x509/x509_write.c,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: several improvements for the certtool utility.
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/common.c: [no log message]
-
-2003-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/Makefile.am, doc/manpages/Makefile.am,
-       doc/manpages/gnutls-cli-debug.1, doc/manpages/gnutls-cli.1,
-       doc/manpages/gnutls-serv.1, doc/manpages/gnutls-srpcrypt.1: Added
-       manpages created by Ivo Timmermans <ivo@o2w.nl>
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c, src/cli-gaa.c, src/cli-gaa.h, src/cli.c,
-       src/cli.gaa, src/common.c: Added the --print-cert option to
-       gnutls-cli.
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/Makefile.am: [no log message]
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/x509/common.c, lib/x509/mpi.c,
-       lib/x509/mpi.h, lib/x509/privkey.c, lib/x509/privkey.h,
-       lib/x509/x509.c, lib/x509_b64.c, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa: Added
-       capability to print the keyid of a certificate or a private key to
-       certtool. Updated the key_id functions to return the hash of the
-       SubjectPublicKey.
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Added fingerprint calculation to certtool.
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, libextra/gnutls_openssl.c: added configure option to
-       disable the openssl compatibility layer.
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c: a fix in the get_subject_alt_name, to return
-       GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE when finished reading.
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool.c: Added capability to decode some X.509v3
-       extensions.
-
-2003-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: Added certificate chain verification capability to
-       certtool
-
-2003-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c: [no log message]
-
-2003-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/common.c,
-       lib/x509/crq.c, lib/x509/privkey_pkcs8.c, src/Makefile.am,
-       src/certtool-gaa.c, src/certtool-gaa.h, src/certtool.c,
-       src/certtool.gaa: Several improvments in the certtool.
-
-2003-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/privkey_pkcs8.c, src/Makefile.am, src/certtool-gaa.c,
-       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa, src/common.c: 
-       Added a certtool primitive command line utility
-
-2003-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crl.c, lib/x509/dn.c, lib/x509/extensions.c,
-       lib/x509/extensions.h, lib/x509/mpi.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/x509.h, lib/x509/x509_write.c: Improved
-       the certificate generation stuff.
-
-2003-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, includes/gnutls/x509.h, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/dn.c, lib/x509/dn.h, lib/x509/sign.c,
-       lib/x509/x509_write.c: Almost finished the X.509 certificate
-       generation.
-
-2003-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, THANKS, configure.in, includes/gnutls/x509.h,
-       lib/Makefile.am, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/Makefile.am, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crq.c, lib/x509/crq.h, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/x509.c,
-       lib/x509/x509_write.c, libgcrypt.m4: Added some support for writable
-       gnutls_x509_crt structures. Not ready yet.
-
-2003-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_mem.h, lib/minitasn1/mem.h: some
-       alloca-related fixes. Patch by Philip Brown <phil@bolthole.com>.
-
-2003-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/rfc2818_hostname.c: The hostname verification in the
-       certificate is now case insensitive.
-
-2003-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: [no log message]
-
-2003-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2003-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_handshake.c: corrected a bug in the debugging
-       output of handshake. Pointed out by Mark McLoughlin
-       <mark@skynet.ie>.
-
-2003-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/openpgp.h: 
-       Corrected issue in openpgp code, which did not allow compilation
-       when opencdk was not present.
-
-2003-10-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2003-10-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/cover.tex.in: [no log message]
-
-2003-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: opencdk is now mandatory in the base installation.
-
-2003-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/openpgp.h, includes/gnutls/x509.h,
-       lib/gnutls_dh.h, lib/gnutls_dh_primes.c, lib/gnutls_rsa_export.c,
-       lib/gnutls_state.c, lib/gnutls_state.h, lib/gnutls_ui.c,
-       lib/x509/common.c, lib/x509/pkcs5.c, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/x509.c, lib/x509/x509.h,
-       libextra/openpgp/openpgp.c: Some changes in types.
-
-2003-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h: [no log message]
-
-2003-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/extensions.c, lib/x509/x509.c, lib/x509/x509.h: [no log
-       message]
-
-2003-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls_errors.c, lib/gnutls_global.c,
-       lib/gnutls_int.h, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crl.c, lib/x509/crq.c, lib/x509/crq.h, lib/x509/dn.c,
-       lib/x509/pkcs7.c, lib/x509/pkcs7.h, lib/x509/privkey.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.c, lib/x509/x509.h,
-       lib/x509_b64.c, libextra/auth_srp_sb64.c: Corrected some of the
-       return types. Several other minor corrections.
-
-2003-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, doc/README.autoconf, doc/tex/gnutls.bib,
-       lib/gnutls_pk.c: [no log message]
-
-2003-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/fdl.tex, doc/tex/gnutls.bib: [no log message]
-
-2003-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/fdl.tex, doc/tex/funcs.tex, doc/tex/gnutls.bib: 
-       Documentation is now under FDL 1.2.
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am: [no log message]
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/funcs.tex, libextra/Makefile.am,
-       libextra/gnutls_openpgp.c, libextra/openpgp/Makefile.am,
-       libextra/openpgp/gnutls_openpgp.c: [no log message]
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: [no log message]
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, libextra/Makefile.am, src/cli.c,
-       src/common.c, src/serv.c: [no log message]
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/Makefile.am, doc/tex/funcs.tex,
-       includes/Makefile.am, includes/gnutls/openpgp.h, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
-       lib/x509/pkcs7.c, lib/x509/privkey.c, lib/x509/x509.c,
-       libextra/Makefile.am, libextra/gnutls_extra.c,
-       libextra/openpgp/Makefile.am, libextra/openpgp/gnutls_openpgp.h,
-       libextra/openpgp/openpgp.c, libextra/openpgp/openpgp.h,
-       src/common.c: Updated the openpgp key API.
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/Makefile.am: [no log message]
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, includes/gnutls/openpgp.h, libextra/Makefile.am,
-       libextra/gnutls_openpgp.h, libextra/openpgp/Makefile.am,
-       libextra/openpgp/gnutls_openpgp.c,
-       libextra/openpgp/gnutls_openpgp.h, libextra/openpgp/openpgp.c,
-       libextra/openpgp/openpgp.h: Converted the pgp verification functions
-       to the new API.
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/extra.h, includes/gnutls/openpgp.h,
-       libextra/openpgp/gnutls_openpgp.c: [no log message]
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/xml.c: the place where the XML stuff were moved.
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/openpgp/Makefile.am, libextra/openpgp/gnutls_openpgp.c,
-       libextra/openpgp/openpgp.c, libextra/openpgp/openpgp.h: Updated the
-       old opencdk code and moved the XML stuff. Based on patch by Mikhail
-       Teterin <mi+mx@aldan.algebra.com>.
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/Makefile.am, lib/gnutls_alert.c,
-       lib/gnutls_algorithms.c, lib/x509/Makefile.am,
-       lib/x509/rfc2818_hostname.c, libextra/Makefile.am, src/cli.c,
-       src/common.c, src/common.h, src/serv.c: Applied patch by Arne that
-       fixes several possible NULL pointer dereferences.
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: Disable buffering.  Clear FD set.  Patch by Simon
-       Josefsson  <jas@extundo.com>
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: [no log message]
-
-2003-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/Makefile.am, libextra/gnutls_openpgp.c,
-       libextra/openpgp/Makefile.am, libextra/openpgp/gnutls_openpgp.c,
-       libextra/openpgp/openpgp.c, libextra/openpgp/openpgp.h: started some
-       rewrite of the openpgp stuff.
-
-2003-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli.gaa: [no log message]
-
-2003-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/common.h, src/serv.c: Rolled back some of Arne's
-       changes. Now the ciphers can be set in the client/server.
-
-2003-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc, doc/tex/Makefile.am, lib/gnutls_errors.c: Patch
-       by Arne.  Fixes a linking problem with _gnutls_handshake2str() and
-       _gnutls_packet2str().  Some other fixes in the documentation creation.
-
-2003-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_errors.c, lib/gnutls_record.c,
-       lib/gnutls_state.c, lib/minitasn1/structure.c, src/cli.c,
-       src/common.c, src/serv.c: A new patch by Arne. More bug fixes and
-       optimizations.
-
-2003-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: Corrected some unaligned accesses in IA64.
-       Initial patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
-
-2003-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_srp.c: Corrected a bug in the SRP U calculation.
-       Reported by Casey Marshall <rsdio@metastatic.org>.
-
-2003-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/common.c: Applied Simos' patch for the SIGALRM
-       triggered handshake.
-
-2003-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_pk.c, lib/x509/rfc2818_hostname.c: 
-       some cleanups.
-
-2003-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex-serv-pgp.tex, includes/gnutls/x509.h, src/cli.c,
-       src/common.c, src/common.h, src/serv.c, src/tests.c: Added a
-       hostname check with the certificate in the gnutls-cli.
-
-2003-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_int.h, lib/gnutls_priority.c,
-       libextra/gnutls_openssl.c, src/cli.c, src/serv.c, src/tests.c: 
-       RIJNDAEL ciphersuites were renamed to AES.
-
-2003-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: [no log message]
-
-2003-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c: [no log message]
-
-2003-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_constate.c, lib/gnutls_errors.c,
-       lib/gnutls_handshake.c, lib/gnutls_v2_compat.c, src/cli.c,
-       src/serv.c: some more cleanups.
-
-2003-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, src/cli.c, src/serv.c: Corrected the
-       client's behaviour in the handshake handling. Some fixes in the
-       documentation.
-
-2003-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/crypt.c: [no log message]
-
-2003-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, src/cli.c: [no log message]
-
-2003-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/libgnutls.vers, libextra/libgnutls-extra.vers: [no log
-       message]
-
-2003-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/Makefile.am, lib/libgnutls.vers,
-       libextra/Makefile.am, libextra/libgnutls-extra.vers: Some additions
-       to export only the documented API, and some support for versioning.
-
-2003-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, doc/.cvsignore, doc/tex/library.tex, lib/debug.c,
-       lib/debug.h, lib/gnutls_errors.c, src/cli.c: cleanups.
-
-2003-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp.c, src/crypt-gaa.c, src/crypt-gaa.h,
-       src/crypt.c, src/crypt.gaa, src/srp/tpasswd, src/srp/tpasswd.conf: 
-       Corrected and improved SRP support. The gnutls-srpcrypt now
-       generates several primes.
-
-2003-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp.c: added a size check in the group generator
-       received by the server.
-
-2003-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/README.autoconf, doc/TODO,
-       doc/tex/ex-pkcs12.tex, includes/gnutls/x509.h,
-       lib/x509/privkey_pkcs8.c, src/cli.c: Improved the error handling in
-       the gnutls-cli.
-
-2003-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       libextra/auth_srp.c: [no log message]
-
-2003-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_alert.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, libextra/auth_srp.c, src/crypt.c,
-       src/srp/tpasswd, src/srp/tpasswd.conf: Updated the SRP
-       implementation to follow the latest draft.
-
-2003-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tls_test.c: corrected bug which made some tests
-       now to be compiled.
-
-2003-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/x509_b64.c, src/retcodes.c: More more fixes by Arne.
-
-2003-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509_b64.c: [no log message]
-
-2003-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_server_name.c: [no log message]
-
-2003-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c, src/tests.c, src/tls_test-gaa.c, src/tls_test-gaa.h,
-       src/tls_test.c, src/tls_test.gaa: corrected bug in the session
-       resumption detection in the gnutls-cli-debug, and other minor fixes.
-
-2003-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/programs.tex, src/tls_test.c: [no log message]
-
-2003-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/openssl.h, lib/gnutls_compress_int.c,
-       src/tls_test.c: minor cleanups.
-
-2003-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: [no log message]
-
-2003-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509_b64.c: CR is now allowed in the base64 decoder.
-
-2003-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/README.CVS: [no log message]
-
-2003-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: _gnutls_bin2hex function was removed from
-       gnutls_errors.c
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/serv.c: [no log message]
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gnutls_global.c, lib/rc2.c, lib/rc2.h,
-       lib/x509/Makefile.am, lib/x509/rc2.c, lib/x509/rc2.h: RC2 is not
-       included when PKCS#12 is disabled.
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, doc/README.CODING_STYLE, doc/README.CVS: [no log
-       message]
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: [no log message]
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/defines.h, lib/rc2.c: RC2 was made reentrant.
-       The stddef.h is now included if found.
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_global.c: [no log message]
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_global.c: 
-       added better check for gcrypt library.
-
-2003-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_record.c, lib/gnutls_state.c, lib/gnutls_v2_compat.c,
-       libextra/ext_srp.c: Arne: - gcry_check_version() _must_ be called nowadays, says
-       libgcrypt-1.1.42/NEWS.  - configure.in: the respective test in configure.in included
-       <sys/stddef.h> (which doesn't exist) instead of the usual
-       <stddef.h>.  - lib/gnutls_errors.c: declaration of function _gnutls_bin2hex()
-       doesn't match prototype from file lib/gnutls_str.h, causing
-       compilation failure - configure.in: -Wsign-compare removed.
-
-2003-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_anon.c, lib/dh_compat.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_compress.c, lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_mem.c, lib/gnutls_record.c,
-       lib/gnutls_rsa_export.c, lib/rsa_compat.c, lib/x509/common.c,
-       lib/x509_b64.c, libextra/ext_srp.c: more fixes by Arne.
-
-2003-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/rc2.c: Cleaned up the RC2 cipher.
-
-2003-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/alert.tex, doc/tex/ciphersuites.tex,
-       doc/tex/ex-cert-select.tex, doc/tex/howto.tex, doc/tex/record.tex,
-       doc/tex/record_weaknesses.tex, doc/tex/srp.tex,
-       doc/tex/translayer.tex, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dh_common.c, lib/auth_rsa_export.c, lib/dh_compat.c,
-       lib/gnutls_algorithms.c, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_cert.c, lib/gnutls_compress_int.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_mem.c,
-       lib/gnutls_num.c, lib/gnutls_pk.c, lib/gnutls_record.c,
-       lib/gnutls_state.c, lib/gnutls_x509.c, lib/io_debug.h,
-       lib/x509/compat.c, lib/x509/verify.c, libextra/auth_srp_sb64.c,
-       src/retcodes.c: still more patches by Arne Thomassen
-
-2003-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, lib/gnutls_compress_int.c,
-       lib/gnutls_record.c: some more cleanups.
-
-2003-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/record_weaknesses.tex, lib/gnutls_anon_cred.c,
-       lib/gnutls_auth.c, lib/gnutls_buffers.c, lib/gnutls_cert.c,
-       lib/gnutls_compress_int.c, lib/gnutls_db.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_mem.c, lib/gnutls_record.c,
-       lib/x509/pkcs7.c, lib/x509_b64.c, libextra/auth_srp_passwd.h,
-       libextra/auth_srp_sb64.c, libextra/ext_srp.c: more patches by Arne
-       Thomassen.
-
-2003-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_handshake.c, lib/gnutls_kx.c, lib/gnutls_mpi.c: [no log
-       message]
-
-2003-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_anon_cred.c: [no log message]
-
-2003-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/README.CODING_STYLE, doc/README.CVS,
-       doc/protocol/draft-ietf-tls-rfc2246-bis-04.txt,
-       doc/protocol/draft-ietf-tls-rfc2246-bis-05.txt,
-       includes/gnutls/x509.h, lib/auth_anon.c, lib/auth_cert.c,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/gnutls_alert.c, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_cert.c, lib/gnutls_compress_int.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_extensions.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_int.h, lib/gnutls_num.c, lib/gnutls_pk.c,
-       lib/gnutls_random.c, lib/gnutls_state.c, lib/gnutls_v2_compat.c,
-       lib/gnutls_x509.c, lib/minitasn1/errors.c, lib/rc2.c,
-       libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_rsa.c, libextra/gnutls_extra.c,
-       libextra/gnutls_openssl.c, libextra/gnutls_srp.h, src/common.c,
-       src/serv.c, tests/x509_test.c: Applied patch from Arne Thomassen
-       <arne@arne-thomassen.de>, which corrects several things in the
-       library.
-
-2003-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/debug.c, lib/gnutls_algorithms.c,
-       lib/gnutls_cert.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_dh.h, lib/gnutls_global.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_rsa_export.c, lib/rc2.c, lib/rc2.h,
-       lib/x509/pkcs12.c, lib/x509/pkcs12.h, lib/x509/pkcs12_encr.c,
-       lib/x509/pkcs5.c, lib/x509/privkey.c, lib/x509/privkey.h,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.h: Ported to the new
-       libgcrypt (still unstable). Also added the RC2 cipher and improved
-       the PKCS #12 stuff in order to support it.
-
-2003-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/Makefile.am, lib/minitasn1/coding.c,
-       lib/minitasn1/decoding.c, lib/minitasn1/element.c: * Added the new libtasn1.  * the tex files are included in the distribution.
-
-2003-07-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-07-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: added missing rfc2818_hostname.lo object.
-
-2003-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs12_encr.c: Removed the salt size restriction
-       (multiple of 8) to allow parsing IE5 generated structures.
-
-2003-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/compat4.h: [no log message]
-
-2003-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/ex-client-srp.tex,
-       doc/tex/ex-client1.tex, doc/tex/ex-serv1.tex, doc/tex/handshake.tex: 
-       [no log message]
-
-2003-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-client-resume.tex, doc/tex/ex-client-srp.tex,
-       doc/tex/ex-client1.tex, doc/tex/ex-client2.tex,
-       doc/tex/ex-serv-export.tex, doc/tex/ex-serv-pgp.tex,
-       doc/tex/ex-serv-srp.tex, doc/tex/ex-serv1.tex: added the
-       (gnutls_transport_ptr) cast to example programs.
-
-2003-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/openssl.h, libextra/gnutls_openssl.c: [no log
-       message]
-
-2003-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls.h.in.in: [no log message]
-
-2003-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, doc/tex/ex-pkcs12.tex, lib/x509/pkcs12_encr.c: [no log
-       message]
-
-2003-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex-pkcs12.tex, includes/Makefile.am,
-       includes/gnutls/Makefile.am, includes/gnutls/pkcs12.h,
-       includes/gnutls/x509.h: [no log message]
-
-2003-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs12_encr.c: [no log message]
-
-2003-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am, doc/tex/Makefile.am,
-       doc/tex/certificate.tex, doc/tex/ex-crq.tex, doc/tex/ex-pkcs12.tex,
-       doc/tex/examples.tex, doc/tex/gnutls.tex: some reorganization on the
-       documentation. Added also stuff about PKCS #12 structures.
-
-2003-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.c: Corrected a null pointer dereference in
-       gnutls_certificate_get_ours(). Report and Patch by Steve Langasek.
-
-2003-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/dn.c, lib/x509/pkcs12.c, lib/x509/privkey_pkcs8.c: 
-       some cleanups.
-
-2003-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls_buffers.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/gnutls_pk.c, lib/x509/mpi.c, lib/x509/mpi.h, lib/x509/pkcs12.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c: Added function to do
-       the MAC verification in the PKCS #12 structure.
-
-2003-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/common.h, lib/x509/dn.c,
-       lib/x509/dn.h, lib/x509/pkcs12.c, lib/x509/pkcs12.h: Added stuff
-       needed to read PKCS #12 bag attributes.
-
-2003-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/common.c,
-       lib/x509/dn.c, lib/x509/pkcs12.c, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_bag.c: Added ability to write Bag attributes
-       LocalKeyId and friendlyName, in order for browsers to be able to
-       import our structures.
-
-2003-06-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls_state.c, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/pkcs12_encr.c,
-       lib/x509/privkey_pkcs8.c: some cleanups.
-
-2003-06-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/decoding.c, lib/minitasn1/element.c: added new
-       Fabio's fixes.
-
-2003-06-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs12.c, lib/x509/privkey_pkcs8.c: PKCS #12 generation,
-       finaly can interoperate with openssl even in the encrypted case.
-
-2003-06-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/common.h, lib/x509/pkcs12.c,
-       lib/x509/pkcs12.h, lib/x509/pkcs12_bag.c, lib/x509/privkey_pkcs8.c: 
-       Some more improvements in the PKCS #12 part. Now it interoperates
-       with openssl pkcs12, in the unencrypted case.
-
-2003-06-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dh_primes.c, lib/gnutls_int.h, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/pkcs12.c, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs5.c, lib/x509/privkey.h,
-       lib/x509/privkey_pkcs8.c: Several more additions to PKCS #12 to
-       allow encrypting bags. Still not interoperable.
-
-2003-06-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, includes/gnutls/x509.h, lib/gnutls_algorithms.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_errors.c, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_session.c,
-       lib/gnutls_state.c, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/pkcs12.c,
-       lib/x509/pkcs12.h, lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c,
-       lib/x509/pkcs7.c, lib/x509/privkey_pkcs8.c: More PKCS #12 additions.
-       Now the code can generate PKCS #12 files. Also added the ability to
-       decrypt plain DES encrypted PKCS #8 keys.
-
-2003-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls_cert.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/x509/pkcs12.c, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_encr.c, lib/x509/pkcs5.c: Passwords in PKCS5 and
-       PKCS12 are now restricted to ASCII ones.
-
-2003-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/pkcs12.c, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c: Some changes in
-       PKCS12 to allow a bag to hold more than one elements.
-
-2003-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/x509/common.h, lib/x509/pkcs12.c,
-       lib/x509/pkcs12.h, lib/x509/pkcs12_bag.c, lib/x509/privkey_pkcs8.c: 
-       some pkcs12 improvements.
-
-2003-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/Makefile.am, lib/x509/common.h, lib/x509/pkcs12.h,
-       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c,
-       lib/x509/privkey_pkcs8.c: Some additions to allow decrypting PKCS #5
-       encrypted data, with PKCS #12 schema OIDs.
-
-2003-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-cert-select.tex, doc/tex/ex-client2.tex,
-       doc/tex/ex-serv-srp.tex, doc/tex/layers.tex, doc/tex/record.tex,
-       doc/tex/tlsintro.tex, includes/gnutls/x509.h, lib/Makefile.am,
-       lib/gnutls_alert.c, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/x509/Makefile.am, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/pkcs12.c, lib/x509/pkcs12.h, lib/x509/pkcs12_bag.c,
-       lib/x509/privkey.h: Some improvements in PKCS12 parser. Now it can
-       extract private keys from the structure.
-
-2003-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/protocol/draft-ietf-tls-extensions-06.txt,
-       doc/protocol/rfc3546.txt, doc/tex/gnutls.bib: new extensions RFC
-
-2003-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-srp-04.txt,
-       doc/protocol/draft-ietf-tls-srp-05.txt, doc/tex/gnutls.bib: new srp
-       draft.
-
-2003-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/gnutls.bib, doc/tex/library.tex: corrected a typo.
-
-2003-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp.c: [no log message]
-
-2003-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: added the most compatible ciphers in
-       default priorities.
-
-2003-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/cli.c, src/crypt.c: Corrected bug in SRP where a non
-       allocated value was freed.  Reported by Hiroshi Hayakawa
-       <deuva@rapid.ocn.ne.jp>.  Also the SRP programs are now build by default (they weren't due to
-       a bug).
-
-2003-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-ecc-01.txt,
-       doc/protocol/draft-ietf-tls-ecc-03.txt: [no log message]
-
-2003-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-03.txt,
-       doc/protocol/draft-ietf-tls-rfc2246-bis-04.txt: [no log message]
-
-2003-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h: [no log message]
-
-2003-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_dh_common.c, lib/gnutls_auth.c, lib/gnutls_auth_int.h,
-       lib/gnutls_dh.c, lib/x509/privkey.c, lib/x509/x509.c: [no log
-       message]
-
-2003-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-compression-04.txt,
-       doc/protocol/draft-ietf-tls-compression-05.txt,
-       doc/protocol/draft-ietf-tls-sharedkeys-01.txt: [no log message]
-
-2003-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_buffers.c: Corrected a bug in the record layer
-       buffering, which affected the case where external pull function was
-       used. Report and a patch by Sergey Poznyakoff
-       <gray@Mirddin.farlep.net>.
-
-2003-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_server_name.c, lib/ext_server_name.h, lib/gnutls.h.in.in: 
-       [no log message]
-
-2003-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/defines.h, lib/minitasn1/decoding.c, lib/minitasn1/element.c,
-       lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/pkcs12.c,
-       lib/x509/pkcs12.h: some more stuff about PKCS12. Still on early
-       stage and incomplete.
-
-2003-05-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c: [no log message]
-
-2003-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/defines.h: [no log message]
-
-2003-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/openssl.h: [no log message]
-
-2003-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_cipher.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/der.h, lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
-       lib/x509/privkey.c, lib/x509/x509.c, libextra/gnutls_openssl.c,
-       libextra/gnutls_srp.c, src/serv-gaa.c, src/serv.c, src/serv.gaa: 
-       Several fixes in several places. Patch by Sean Gao
-       <sean.gao@sun.com>.
-
-2003-05-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-05-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-05-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: Corrections in the TLS layer openpgp certificate
-       packet parser.
-
-2003-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * README: [no log message]
-
-2003-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls_x509.c,
-       lib/x509/privkey.c, lib/x509/privkey.h, lib/x509/x509.c, src/serv.c: * Added gnutls_x509_privkey_get_key_id() and
-         gnutls_x509_crt_get_key_id() functions which return a unique (per
-         public key) ID. These can be used to check if the private key
-       corresponds to a given certificate.
-
-2003-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c: [no log message]
-
-2003-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/x509guide.txt: [no log message]
-
-2003-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c: The PEM header for certificate requests is now
-       BEGIN NEW CERTIFICATE REQUEST.
-
-2003-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_x509.c, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509/crq.c, lib/x509/pkcs7.c: Renamed all of the PKCS #xx stuff
-       names, to pkcs-x-name.
-
-2003-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/x509/Makefile.am, lib/x509/common.h,
-       lib/x509/pkcs7.c, lib/x509/privkey_pkcs8.c: [no log message]
-
-2003-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c: added definitions for pkcs12
-
-2003-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: Corrected a bug in gnutls-cli while resuming sessions.
-       Reported by Ivo Timmermans, patch by Gergely Nagy
-       <algernon@boszorka.mad.hu>.
-
-2003-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_server_name.c: Corrected bug in server_name extension
-       which made the client to send the wrong size of data.
-
-2003-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/common.c, src/serv.c: [no log message]
-
-2003-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_state.c: Increased the default DH bits limit.
-
-2003-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/verify.c: some prototype fixes.
-
-2003-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-openpgp-keys-02.txt,
-       doc/protocol/draft-ietf-tls-openpgp-keys-03.txt: [no log message]
-
-2003-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_extra.c, src/cli.c, src/common.c, src/crypt.c,
-       src/serv.c, src/tests.c, src/tls_test.c: Some fixes to allow proper
-       compiling when --disable-srp-authentication and
-       --disable-anon-authentication are specified. Patch by Paul Sheer.
-
-2003-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_cert.c, lib/gnutls_x509.c,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/compat.c,
-       lib/x509/crl.c, lib/x509/crq.c, lib/x509/pkcs5.c, lib/x509/pkcs7.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/sign.c, lib/x509/verify.c,
-       lib/x509/x509.c, lib/x509/xml.c, src/cli.c, src/common.c,
-       src/serv.c: Added the --disable-extra-pki configure option, which
-       disables all extra PKI stuff like PKCS #7, PKCS #10 etc. To be used
-       in constraint systems.
-
-2003-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/x509.c: [no log message]
-
-2003-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_mpi.c, lib/minitasn1/decoding.c, lib/x509/crl.c,
-       lib/x509/x509.c, libextra/gnutls_openpgp.c: several bug fixes in the
-       certificate parsing, and some in the asn1 parser.
-
-2003-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_x509.c, lib/x509/crl.c,
-       lib/x509/x509.c: More fixes to eliminate constants.
-
-2003-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_pk.c,
-       lib/x509/mpi.c, lib/x509/privkey.c, lib/x509/x509.h: Eliminated the
-       need for a hard coded max MPI parameter size.
-
-2003-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.sym, libextra/gnutls-extra.sym: [no log message]
-
-2003-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/common.h, lib/x509/xml.c,
-       src/common.c: Some fixes in the gnutls_x509_crt_to_xml() function.
-
-2003-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/x509/pkcs7.c, libextra/Makefile.am: [no log
-       message]
-
-2003-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509_b64.c: some cleanups.
-
-2003-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/gnutls/x509.h, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/crl.c, lib/x509/pkcs7.c: Several
-       improvments in the PKCS #7 handling. Added capability to delete
-       certificates, and handle CRLs.
-
-2003-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_alert.c, lib/gnutls_alert.h,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/privkey_pkcs8.c,
-       lib/x509/x509.c, lib/x509/x509.h: several cleanups.
-
-2003-03-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509_b64.c, lib/x509_b64.h: [no log message]
-
-2003-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/pkcs7.c,
-       lib/x509/x509.c, lib/x509_b64.c, lib/x509_b64.h: Several fixes to
-       allow exporting the PKCS #7 structures.
-
-2003-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/pkcs7.c, lib/x509/privkey_pkcs8.c: [no log message]
-
-2003-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_handshake.c,
-       lib/gnutls_v2_compat.c: Some improvements in the version detection
-       in the client hello.
-
-2003-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/x509/pkcs7.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.c, lib/x509/x509.h: Added
-       functionality to generate PKCS #7 structures. Currently only
-       certificates can be put there. (untested)
-
-2003-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa: Added
-       the --debug option to the gnutls-serv.
-
-2003-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/minitasn1/coding.c, lib/minitasn1/element.c,
-       lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/parser_aux.c, lib/pkix.asn, src/tests.c, src/tests.h,
-       src/tls_test.c: Added bogus TLS record version check in the
-       gnutls-cli-debug tool.
-
-2003-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/ext_server_name.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_session_pack.c,
-       lib/gnutls_sig.c, lib/x509/crl.c, lib/x509/crq.c, lib/x509/mpi.c,
-       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c, lib/x509/sign.c,
-       lib/x509/verify.c, lib/x509/x509.c: Several
-       GNUTLS_E_UNIMPLEMENTED_FEATURE errors were replaced with meaningful
-       error values.
-
-2003-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: Added the
-       --debug option in the client.
-
-2003-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_cert.c, lib/gnutls_buffers.c, lib/gnutls_global.c,
-       lib/gnutls_kx.c: * Corrected behaviour when a certificate request message is
-         received.  Now a certificate packet is always sent, and in SSL 3.0
-         cipher suites a no_certificate alert is sent instead.
-
-2003-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: Corrected a parsing error in the Certificate
-       request message.
-
-2003-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509/Makefile.am: last changes for 0.9.3 release.
-
-2003-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/x509/mpi.c, lib/x509/pkcs7.c,
-       lib/x509/verify.c: reduced the FIXMEs.
-
-2003-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/privkey.h,
-       lib/x509/privkey_pkcs8.c, src/cli-gaa.c, src/cli.gaa: Allow for
-       unencrypted PKCS #8 private keys.
-
-2003-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: [no log message]
-
-2003-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c, lib/gnutls_global.h, lib/gnutls_rsa_export.c: 
-       The functions that return the pkix_asn and gnutls_asn types were
-       converted to macros.
-
-2003-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c, lib/x509/common.h, lib/x509/privkey_pkcs8.c,
-       lib/x509/xml.c: Some cleanups.
-
-2003-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/Makefile.am,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_constate.c, lib/gnutls_errors.c,
-       lib/x509/privkey_pkcs8.c, lib/x509/x509.c, lib/x509/x509.h: * Added support for encoding and decoding PKCS #8 2.0 encrypted   RSA private keys.
-
-2003-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/funcs.tex, lib/gnutls_cert.c, lib/x509/Makefile.am: 
-       the idea of using a separate library for x509 stuff was dropped for
-       now.
-
-2003-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c: more cleanups.
-
-2003-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c, lib/gnutls_x509.c: [no log message]
-
-2003-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls.h.in.in,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_x509.c,
-       lib/minitasn1/coding.c, lib/pkix.asn, lib/x509/crl.c,
-       lib/x509/x509.c, lib/x509/x509.h: * Added the new functions: gnutls_certificate_set_x509_key()   gnutls_certificate_set_x509_trust(),
-         gnutls_certificate_set_x509_crl(), gnutls_x509_crt_export(),
-       gnutls_x509_crl_export().
-
-2003-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/x509/mpi.c, lib/x509/mpi.h, lib/x509/privkey_pkcs8.c: [no log
-       message]
-
-2003-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509/Makefile.am,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/pkcs5.c,
-       lib/x509/pkcs5.h, lib/x509/privkey.c, lib/x509/privkey.h,
-       lib/x509/privkey_pkcs8.c: Added ability to import PKCS8 encrypted
-       keys.
-
-2003-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex-serv-export.tex, includes/gnutls/compat8.h,
-       lib/gnutls.h.in.in, lib/gnutls_ui.c, src/prime-gaa.c, src/prime.gaa: * The gnutls_certificate_set_rsa_params() was renamed to   gnutls_certificate_set_rsa_export_params().
-
-2003-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-serv-export.tex, doc/tex/ex-serv1.tex: [no log message]
-
-2003-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_rsa.c, lib/gnutls_int.h, lib/gnutls_pk.c: [no log
-       message]
-
-2003-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_rsa.c, lib/gnutls.h.in.in, lib/gnutls_alert.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_pk.c, lib/gnutls_state.c, src/tests.c, src/tests.h,
-       src/tls_test.c: * The RSA premaster secret version check can no longer be disabled.  * Implemented the counter measure discussed in the paper "Attacking   RSA-based Sessions in SSL/TLS", against the attack discussed in
-         the same paper.  * Added the functions: gnutls_handshake_get_last_in(),   gnutls_handshake_get_last_out().
-
-2003-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_priority.c, lib/minitasn1/coding.c,
-       lib/minitasn1/decoding.c, lib/minitasn1/element.c,
-       lib/minitasn1/errors.c, lib/minitasn1/errors_int.h,
-       lib/minitasn1/int.h, lib/minitasn1/libtasn1.h,
-       lib/minitasn1/structure.c, lib/x509/dn.c: * The diffie Hellman ciphersuites are now of higher priority than   the plain RSA.  * Added the new libtasn1.
-
-2003-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/auth_rsa.c, lib/debug.c, lib/debug.h,
-       lib/dh_compat.c, lib/gnutls.h.in.in, lib/gnutls_alert.c,
-       lib/gnutls_alert.h, lib/gnutls_buffers.c, lib/gnutls_constate.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_pk.c, lib/gnutls_sig.c, lib/rsa_compat.c, lib/x509/dn.c,
-       lib/x509/x509.c, libextra/auth_srp.c, libextra/gnutls_openpgp.c,
-       src/cli.c: * Improved the error logging functions, by adding a level, and   by allowing debugging messages just by increasing the level.
-
-2003-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am, doc/tex/Makefile.am,
-       doc/tex/ex-info.tex, doc/tex/ex-session-info.tex,
-       doc/tex/ex-x509-info.tex, doc/tex/examples.tex: [no log message]
-
-2003-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: [no log message]
-
-2003-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/funcs.tex, lib/Makefile.am, lib/x509/Makefile.am: 
-       some of the extra X.509 functionality was moved to libgnutls-x509
-       library.
-
-2003-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dh_primes.c, lib/gnutls_errors.c, lib/gnutls_pk.c,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/mpi.c, lib/x509/sign.c,
-       lib/x509/verify.c, lib/x509/x509.c: better use of asn1_der_coding()
-       to avoid using static buffers.
-
-2003-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c: [no log message]
-
-2003-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/x509/common.c,
-       lib/x509/verify.c, lib/x509/x509.h: MD2 support was dropped this is
-       an algorithm we cannot use.
-
-2003-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/sign.c, lib/x509/verify.c: some cleanups.
-
-2003-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/crq.c, lib/x509/x509.c: Added
-       gnutls_x509_crq_get_challenge_password().
-
-2003-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.CVS: [no log message]
-
-2003-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am, doc/tex/Makefile.am,
-       doc/tex/ex-crq.tex, doc/tex/examples.tex: added an example about
-       certificate request and private key generation.
-
-2003-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_int.h, lib/x509/crq.c, lib/x509/x509.c: [no log
-       message]
-
-2003-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/gnutls/x509.h, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/common.c, lib/x509/common.h,
-       lib/x509/crq.c, lib/x509/dn.c, lib/x509/dn.h, lib/x509/x509.c,
-       libextra/auth_srp_rsa.c: Added support for PKCS#10 certificate
-       requests generation.
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/rfc2985.txt: added pkcs9 rfc.
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/crq.c: several other additions and fixes for the
-       certificate request stuff.
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/crq.c,
-       lib/x509/dn.c, lib/x509/dn.h, lib/x509/mpi.c, lib/x509/mpi.h,
-       lib/x509/sign.c, lib/x509/sign.h: several other additions and fixes
-       for the certificate request stuff.
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile, tests/openpgp_test.c: [no log message]
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/rfc2986.txt: added rfc for certificate requests.
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/gnutls_pk.c, lib/gnutls_pk.h,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/pkix.asn,
-       lib/pkix_asn1_tab.c, lib/x509/Makefile.am, lib/x509/crl.c,
-       lib/x509/crq.c, lib/x509/crq.h, lib/x509/pkcs7.c,
-       lib/x509/privkey.c, lib/x509/sign.c, lib/x509/sign.h,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509.h: Added some
-       stuff needed in PKCS#10 certificate request generation. Some other
-       fixes as well.
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in: [no log message]
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/auth_rsa_export.c, lib/gnutls_int.h,
-       lib/gnutls_rsa_export.c, lib/gnutls_rsa_export.h,
-       lib/x509/privkey.c, lib/x509/x509.h: The RSA parameters handling
-       functions, are now implemented using the rsa privkey functions.
-
-2003-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/privkey.c: added flags to
-       privkey_generate()
-
-2003-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: unmap data and close the file descriptor after
-       the mmap().
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h: [no log message]
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, libextra/gnutls_srp.c: [no log message]
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_srp.c: fixed a memory leak. Reported by Rupert
-       Kittinger <r.kittinger@efkon.com>
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls_dh_primes.c, lib/gnutls_x509.c,
-       src/cli.c: Use mmap() if available to read files.
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/Makefile.am, lib/defines.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_x509.c, lib/strnstr.c,
-       lib/x509/crl.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
-       lib/x509_b64.c: * Added an strnstr() function and the requirement in some functions
-         to use null terminated PEM structures is no more.
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c: [no log message]
-
-2003-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_mpi.h,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_x509.c,
-       lib/x509/privkey.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509.h, libextra/auth_srp_rsa.c, libextra/gnutls_openpgp.c: * Added ability to generate RSA keys.  * Increased the maximum parameter size in order to read some large
-         keys by some CAs. Patch by Ian Peters <itp@ximian.com>.  * Rolled back some of yesterdays changes. The gnutls_x509_privkey,
-         was replaced (again) by the gnutls_privkey.
-
-2003-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/auth_cert.c, lib/auth_cert.h,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_int.h,
-       lib/gnutls_privkey.c, lib/gnutls_privkey.h, lib/gnutls_sig.c,
-       lib/gnutls_sig.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       lib/x509/privkey.c, lib/x509/x509.h: some improvements in the
-       private key handling api. It is now used internally.
-
-2003-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_ui.c: [no log message]
-
-2003-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_ui.c: The fingerprint now accepts a
-       pointer to an int instead of a ptr to a size_t.
-
-2003-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-info.tex, src/common.c: [no log message]
-
-2003-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, THANKS: [no log message]
-
-2003-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-02.txt,
-       doc/protocol/draft-ietf-tls-rfc2246-bis-03.txt: added the new tls
-       1.1 draft
-
-2003-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2003-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/Makefile.am, lib/gnutls_buffers.c,
-       lib/x509/Makefile.am, libextra/Makefile.am: the documentation is now
-       created on dist time.
-
-2003-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_buffers.c: Corrected a broken buffer check in
-       _gnutls_io_read_buffered()
-
-2003-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/Makefile.am: [no log message]
-
-2003-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.CODING_STYLE, doc/tex/certificate.tex,
-       doc/tex/ex-rfc2818.tex, doc/tex/ex-serv-export.tex,
-       doc/tex/ex-serv1.tex: some documentation fixes.
-
-2003-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/record_weaknesses.tex: Documented the last timing attack.
-
-2003-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/defines.h, lib/gnutls.h.in.in,
-       lib/gnutls_alert.c, lib/gnutls_cipher.c, lib/gnutls_constate.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_int.h, lib/gnutls_num.c,
-       lib/gnutls_num.h, lib/gnutls_ui.c, lib/gnutls_x509.c, src/serv.c: * Corrected a bug in 64 bit architectures, which affected the   serial number calculation in the record layer.  * Added gnutls_certificate_free_keys() which deletes all the   private keys and certificates from the credentials structure.
-
-2003-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c: updated to the
-       new libtasn1.
-
-2003-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_cipher.c, lib/gnutls_cipher_int.c: Added
-       protection against the new TLS 1.0 record layer timing attack.
-
-2003-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/auth_cert.h, lib/gnutls.h.in.in,
-       lib/gnutls_ui.c, lib/gnutls_x509.c, lib/x509/verify.c,
-       lib/x509/verify.h, src/cli.c, src/common.c: Added a flag to allow
-       signing by v1 X.509 certificates. Also added a function to allow
-       setting the verification flags in the credentials structure.
-
-2003-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tls_test.c: some fixes in tests
-
-2003-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/x509/verify.c: Added
-       support for MD2 signature verification in X.509 certificates.
-
-2003-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/tests.c, src/tls_test.c: Added option to disable all TLS 1.0
-       extensions.
-
-2003-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c: [no log message]
-
-2003-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, doc/tex/Makefile.am, lib/Makefile.am: some fixes in
-       makefiles.
-
-2003-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_cipher.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_global.c: [no log message]
-
-2003-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c: [no log message]
-
-2003-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am, doc/tex/Makefile.am,
-       doc/tex/ex-cert-select.tex, doc/tex/ex-info.tex,
-       doc/tex/examples.tex: Added a small example on how to use the
-       certificate selection callback in client side.
-
-2003-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_auth.c, lib/gnutls_mpi.c, lib/gnutls_pk.c,
-       libextra/auth_srp.c, libextra/gnutls_srp.c: some fixes in types.
-
-2003-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls_cert.c, src/cli.c, src/tests.c: The
-       client certificate selection callback is no longer called twice. It
-       is called once if it is set.
-
-2003-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c, lib/gnutls_record.c, lib/gnutls_session.c: 
-       [no log message]
-
-2003-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: [no log message]
-
-2003-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/common.c: [no log message]
-
-2003-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tls_test.c: works better in buggy servers.
-
-2003-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: [no log message]
-
-2003-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex-serv-export.tex, doc/tex/ex-serv1.tex,
-       includes/gnutls/compat8.h, includes/gnutls/x509.h, lib/Makefile.am,
-       lib/dh_compat.c, lib/gnutls.h.in.in, lib/gnutls_dh_primes.c,
-       lib/gnutls_int.h, lib/gnutls_rsa_export.c, lib/gnutls_rsa_export.h,
-       lib/rsa_compat.c, lib/x509/mpi.c, libextra/Makefile.am,
-       src/prime.c, src/serv.c: The RSA and DH parameter handling has been
-       updated.
-
-2003-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls_x509.c, lib/x509/x509.c: Added a
-       primitive function to load a file into memory, so that no
-       certificate files are truncated. Also fixed a bug in the client
-       certificate callback function.
-
-2003-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.c, lib/x509/dn.c, lib/x509/pkcs7.c,
-       lib/x509/pkcs7.h, lib/x509/x509.c: Null, as the data value, is now
-       an acceptable value in functions that may return the size of the
-       data.
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffers.c, src/common.c: [no log message]
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls.h.in.in, lib/gnutls_cert.c,
-       lib/gnutls_ui.h, lib/x509/dn.c, lib/x509/rfc2818_hostname.c,
-       src/cli.c, src/common.c, src/tests.c, src/tests.h, src/tls_test.c: 
-       Corrected bugs in gnutls_x509_rdn_get(). Added a test to print the
-       server's trusted CAs in gnutls-cli-debug, and in gnutls-cli.
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/prime.c: [no log message]
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/gnutls/x509.h, lib/gnutls_cert.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
-       lib/gnutls_pk.c, lib/gnutls_privkey.c, lib/gnutls_x509.c,
-       lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/element.c, lib/minitasn1/errors.c,
-       lib/minitasn1/gstr.h, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
-       lib/minitasn1/structure.c, lib/x509/common.c, lib/x509/compat.c,
-       lib/x509/crl.c, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/pkcs7.c,
-       lib/x509/verify.c, lib/x509/x509.c, lib/x509/xml.c: ported to
-       libtasn1 0.2.x. Also the included minitasn1 was replaced by the
-       0.2.1 version of libtasn1.
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls.h.in.in, lib/gnutls_int.h,
-       lib/x509/crl.c, lib/x509/dn.c, lib/x509/x509.c: gnutls_const_datum
-       was removed from exported types, for the time being.
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/extra.h: [no log message]
-
-2003-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/common.c: [no log message]
-
-2003-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * README, doc/TODO, lib/auth_cert.c, lib/gnutls_int.h,
-       lib/gnutls_state.c, lib/gnutls_x509.c: Added option to allow an
-       X.509 server not to send the trusted CA list to the peer.
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/appendix.tex, doc/tex/certificate.tex,
-       doc/tex/ex-info.tex, doc/tex/ex-rfc2818.tex, doc/tex/funcs.tex,
-       doc/tex/gnutls.bib, doc/tex/x509cert.xml.tex: [no log message]
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, src/cli.c, src/serv.c: [no log message]
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c: [no log message]
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, src/tests.c, src/tests.h, src/tls_test.c: Added
-       test which prints the Diffie Hellman prime bits used.
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/compat8.h, includes/gnutls/x509.h,
-       lib/gnutls.h.in.in, lib/gnutls_dh_primes.c, lib/gnutls_int.h,
-       lib/gnutls_privkey.c, lib/gnutls_ui.h, lib/gnutls_x509.c,
-       lib/x509/Makefile.am, lib/x509/compat.c, lib/x509/crl.c,
-       lib/x509/pkcs7.c, lib/x509/pkcs7.h, lib/x509/privkey.c,
-       lib/x509/x509.c, lib/x509/x509.h: Added some private key handling
-       functions. They are primitive enough for now.
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h: some fixes
-       to compile.
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-extensions-05.txt,
-       doc/protocol/draft-ietf-tls-extensions-06.txt: added new extensions
-       draft.
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/compat8.h, includes/gnutls/x509.h,
-       lib/auth_cert.c, lib/auth_cert.h, lib/gnutls.h.in.in,
-       lib/gnutls_cert.c, lib/gnutls_dh_primes.c, lib/gnutls_int.h,
-       lib/gnutls_ui.h, lib/gnutls_x509.c, lib/x509/compat.c,
-       lib/x509/crl.c, lib/x509/extensions.c, lib/x509/extensions.h,
-       lib/x509/mpi.c, lib/x509/mpi.h, lib/x509/pkcs7.c, lib/x509/pkcs7.h,
-       lib/x509/rfc2818_hostname.c, lib/x509/verify.c, lib/x509/verify.h,
-       lib/x509/x509.c, lib/x509/x509.h, lib/x509/xml.c, tests/x509_test.c: 
-       gnutls_x509_certificate_* were renamed gnutls_x509_crt_*.
-
-2003-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls.h.in.in, lib/gnutls_int.h,
-       lib/gnutls_ui.c, lib/x509/x509.c: added
-       gnutls_x509_certificate_get_fingerprint(). Untested yet.
-
-2003-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/compat8.h, lib/debug.c, lib/debug.h,
-       lib/gnutls.h.in.in, lib/gnutls_errors.c, lib/gnutls_global.c,
-       lib/gnutls_ui.c, lib/gnutls_ui.h, lib/x509/compat.h,
-       lib/x509/rfc2818_hostname.c, lib/x509/x509.c: renamed
-       gnutls_x509_fingerprint to gnutls_fingerprint.
-
-2003-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dh_primes.c, src/prime.c: fixes in pkcs3 DH parameter
-       generation.
-
-2003-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp_rsa.c: [no log message]
-
-2003-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/Makefile.am, includes/gnutls/Makefile.am,
-       includes/gnutls/compat8.h, lib/Makefile.am, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/gnutls.h.in.in, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_dh_primes.c, lib/gnutls_handshake.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_ui.h, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/x509/compat.c, lib/x509/extensions.c,
-       lib/x509/pkcs7.h, lib/x509/x509.h, lib/x509_extensions.c,
-       lib/x509_extensions.h, lib/x509_sig_check.c, lib/x509_verify.c,
-       lib/x509_verify.h, libextra/auth_srp_rsa.c,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openpgp.h, src/cli-gaa.c, src/cli-gaa.h, src/cli.c,
-       src/cli.gaa, src/serv-gaa.c, src/serv-gaa.h, src/serv.c,
-       src/serv.gaa: Several internal changes to use the new certificate
-       API. CRL support is complete.
-
-2003-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/Makefile.am, lib/x509/common.c,
-       lib/x509/crl.c, lib/x509/crl.h, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/pkcs7.c, lib/x509/verify.c, lib/x509/x509.c,
-       lib/x509/x509.h, tests/test20.pem, tests/test21.pem,
-       tests/x509_test.c: Certificate revocation support is almost
-       complete.
-
-2003-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls.h.in.in, lib/gnutls_int.h,
-       lib/x509/crl.c, lib/x509/crl.h, lib/x509/verify.c,
-       lib/x509/verify.h, lib/x509/x509.c, lib/x509/x509.h: added a crl
-       verification function (untested yet).
-
-2003-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c, src/common.c: [no log message]
-
-2003-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/Makefile.am, lib/gnutls_x509.c,
-       lib/x509/Makefile.am, lib/x509/compat.c, lib/x509/compat.h,
-       lib/x509/crl.c, lib/x509/dn.c, lib/x509/dn.h,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/mpi.c,
-       lib/x509/mpi.h, lib/x509/rfc2818_hostname.c, lib/x509/verify.c,
-       lib/x509/verify.h, lib/x509/x509.c, lib/x509/x509.h,
-       lib/x509_b64.c, tests/test2.pem, tests/x509_test.c: Added some new
-       certificate verification functions.
-
-2003-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/gnutls_cert.c, lib/x509/dn.c: 
-       [no log message]
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_privkey.c: removed the raw part in the gnutls_privkey
-       internal structure..
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/compat.c, lib/x509/extensions.c,
-       lib/x509/extensions.h, lib/x509/rfc2818_hostname.c,
-       lib/x509/x509.c, lib/x509/x509.h: Criticality of an X.509 extension
-       can now be extracted.
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/x509/.cvsignore,
-       lib/x509/extensions.c, lib/x509/extensions.h, lib/x509/x509.c,
-       lib/x509_extensions.c: Added function to extract the key usage
-       extension from an X.509 certificate, and combined some code.
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: [no log message]
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/Makefile.am, doc/tex/certificate.tex,
-       doc/tex/ex-info.tex, doc/tex/ex-rfc2818.tex, doc/tex/funcs.tex,
-       includes/gnutls/x509.h, lib/Makefile.am, lib/gnutls_dh_primes.c,
-       lib/gnutls_ui.h, lib/gnutls_x509.h, lib/rfc2818_hostname.c,
-       lib/x509/Makefile.am, lib/x509/compat.h, lib/x509/dn.h,
-       lib/x509/rfc2818_hostname.c, lib/x509/x509.h, lib/x509/xml.c,
-       lib/x509_xml.c: More stuff for the new certificate API.
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/x509.h, lib/Makefile.am, lib/gnutls_cert.c,
-       lib/gnutls_errors.h, lib/gnutls_errors_int.h, lib/gnutls_x509.c,
-       lib/x509/Makefile.am, lib/x509/compat.c, lib/x509/dn.c: The old
-       certificate parsing API was reimplemented over the new one. It will
-       stay in the 1.0.0 release for compatibility reasons.
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/Makefile.am, lib/gnutls_x509.h,
-       lib/x509/Makefile.am, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/pkcs7.c, lib/x509/pkcs7.h, lib/x509/x509.c: Added the new
-       PKCS7 parsing functions.
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509/x509.c, lib/x509/x509.h: Added the new certificate
-       handling functions.
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-client-resume.tex, doc/tex/ex-client1.tex,
-       doc/tex/ex-client2.tex, doc/tex/ex-serv-export.tex,
-       doc/tex/ex-serv-pgp.tex, doc/tex/ex-serv1.tex,
-       includes/gnutls/x509.h, lib/Makefile.am, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/x509/Makefile.am, lib/x509/common.c,
-       lib/x509/common.h, lib/x509/crl.c, lib/x509/crl.h, lib/x509_xml.c: 
-       Added the new certificate handling functions.
-
-2003-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS, includes/gnutls/x509.h, lib/Makefile.am,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/x509/Makefile.am,
-       lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
-       lib/x509/dn.c, lib/x509/dn.h, lib/x509_extensions.c, lib/x509_xml.c: 
-       More improvements in the CRL support, and the X.509 backend. Added a
-       function to get some parts of the DN using an OID.
-
-2003-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/gnutls.h.in.in, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/x509/crl.c, lib/x509/crl.h: CRL parsing
-       support is almost complete.
-
-2003-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/x509.h, lib/debug.c, lib/debug.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_rsa_export.c, lib/gnutls_str.c,
-       lib/gnutls_str.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       lib/x509/crl.c, lib/x509/dn.c, lib/x509/dn.h: Several fixes and
-       improvements in CRL support.
-
-2003-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, includes/Makefile.am,
-       includes/gnutls/Makefile.am, includes/gnutls/x509.h,
-       lib/Makefile.am, lib/gnutls_int.h, lib/gnutls_x509.c,
-       lib/x509/Makefile.am, lib/x509/crl.c, lib/x509/crl.h,
-       lib/x509/dn.c, lib/x509/dn.h: Added preliminary CRL support. This
-       will be under the new X.509 API. Other x509 functions will be
-       updated later.
-
-2003-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_dh_primes.c, lib/gnutls_pk.c: some fixes. There wasn't
-       any limitation in libtasn1 code... just my lazyness.
-
-2003-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/prime-gaa.c, src/prime-gaa.h, src/prime.c, src/prime.gaa: use
-       options to print DH parameters.
-
-2003-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_dh_primes.c, lib/gnutls_int.h, lib/gnutls_ui.h,
-       lib/minitasn1/coding.c, src/prime.c: * Added gnutls_pkcs3_extract_dh_params() and
-         gnutls_pkcs3_export_dh_params() which extracts and export parameters
-         from and to PKCS#3 encoded structures.  These were added to read
-       parameters generated using the openssl dhparam tool.  * The prime program was modified to also print the generated prime
-         and generator using the PKCS#3 format.
-
-2003-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/tex/ex-serv-export.tex,
-       doc/tex/ex-serv-pgp.tex, doc/tex/ex-serv1.tex, lib/Makefile.am,
-       lib/auth_anon.c, lib/auth_dhe.c, lib/gnutls.asn,
-       lib/gnutls.h.in.in, lib/gnutls_alert.c, lib/gnutls_anon_cred.c,
-       lib/gnutls_asn1_tab.c, lib/gnutls_cert.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_global.c, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_rsa_export.c, lib/gnutls_state.c,
-       lib/gnutls_ui.h, src/serv-gaa.c, src/serv-gaa.h, src/serv.c,
-       src/serv.gaa: * gnutls_dh_params_generate() and gnutls_rsa_params_generate() now
-        use gnutls_malloc() to allocate the output parameters.  * Added gnutls_pkcs3_extract_dh_params() which extracts parameters
-        from PKCS#3 encoded structures. This was in order to read parameters
-        generated using the openssl dhparam tool.  * Several changes in the temporary (DH/RSA) parameter codebase. No
-        DH parameters are now included in the library. Also a credentials
-        structure can now hold only one temporary parameter.
-
-2003-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.c: more doc for the gnutls_set_dh_prime_bits().
-
-2003-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls.sym, lib/gnutls_alert.c,
-       lib/gnutls_int_compat.c: removed backward compatibility functions
-       for 0.9.0 version.
-
-2003-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/minitasn1/.cvsignore: [no log message]
-
-2003-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/compression.tex: [no log message]
-
-2003-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/compression.tex: [no log message]
-
-2003-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, libextra/auth_srp.c: 
-       use RECEIVED_ILLEGAL_PARAMETER instead of SRP_PROTOCOL_FAILURE, when
-       the SRP protocol fails.
-
-2003-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: The gcrypt log handler is only set when we
-       are in debugging mode.
-
-2003-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: [no log message]
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_rsa.c, lib/debug.c, lib/gnutls_algorithms.c,
-       lib/gnutls_compress_int.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_extensions.c,
-       lib/gnutls_global.c, lib/gnutls_rsa_export.c, lib/gnutls_x509.c,
-       src/cli.c: Added ability to send some messages back to the
-       application using the gnutls_global_set_log_function(). This is
-       quite experimental.
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-client-resume.tex, doc/tex/ex-client-srp.tex,
-       doc/tex/ex-client1.tex, doc/tex/ex-client2.tex,
-       doc/tex/ex-rfc2818.tex: some minor bugfixes in the documentation.
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_mpi.h,
-       libextra/auth_srp.c: Added check and error code for some SRP fatal
-       protocol failures.
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tls_test.c: [no log message]
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp_passwd.c, libextra/gnutls_srp.c: more cleanups.
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_errors.c, lib/gnutls_errors_int.h: 
-       [no log message]
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_alert.c, lib/gnutls_auth_int.h,
-       lib/gnutls_handshake.c, libextra/auth_srp.c,
-       libextra/auth_srp_passwd.c, libextra/ext_srp.c,
-       libextra/gnutls_openpgp.c, src/cli.c: The library notifies the
-       application on empty and illegal SRP usernames, so that proper
-       notification (via an alert) is sent to the peer. Currently when the
-       SRP ciphersuite is advertized but no username is sent by the peer,
-       the library returns GNUTLS_E_EMPTY_SRP_USERNAME, and the alert
-       associated with this is GNUTLS_A_ACCESS_DENIED (to be changed when
-       the srp draft defines something more appropriate).
-
-2003-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp_passwd.c: Some cleanups.
-
-2003-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/Makefile.am, doc/scripts/Makefile.am,
-       lib/gnutls_x509.c, libextra/auth_srp_passwd.c: [no log message]
-
-2003-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: [no log message]
-
-2003-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tls_test.c: improved srp detection
-
-2003-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_dh.h, lib/gnutls_dh_primes.c,
-       libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_passwd.h, libextra/gnutls_srp.c, src/cli.c,
-       src/tests.c: Improved the SRP support, to prevent attackers guessing
-       the available usernames by brute force. The g,n values sent are now
-       obtained by the password conf file. (they were static ones)
-
-2003-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/cover.tex.in, lib/Makefile.am, lib/auth_anon.c,
-       lib/auth_cert.c, lib/auth_dh_common.c, lib/auth_dhe.c,
-       lib/auth_rsa.c, lib/auth_rsa_export.c, lib/debug.c,
-       lib/ext_cert_type.c, lib/ext_server_name.c, lib/gnutls_alert.c,
-       lib/gnutls_algorithms.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_compress_int.c,
-       lib/gnutls_constate.c, lib/gnutls_datum.c, lib/gnutls_db.c,
-       lib/gnutls_dh.c, lib/gnutls_errors.c, lib/gnutls_extensions.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_mem.c,
-       lib/gnutls_mpi.c, lib/gnutls_pk.c, lib/gnutls_record.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_state.c, lib/gnutls_ui.c,
-       lib/gnutls_x509.c, lib/x509_extensions.c, lib/x509_sig_check.c,
-       lib/x509_verify.c, lib/x509_xml.c: [no log message]
-
-2003-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am: [no log message]
-
-2003-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2003-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2003-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am, doc/tex/patents.tex,
-       includes/gnutls/compat4.h, libmcrypt.m4: [no log message]
-
-2003-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_alert.c, lib/gnutls_buffers.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_record.c, lib/gnutls_record.h: 
-       Prefixed with underscore some internal functions.
-
-2003-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/appendix.tex, doc/tex/library.tex, doc/tex/srp.tex: 
-       [no log message]
-
-2003-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/patents.tex, doc/tex/srp.tex, lib/Makefile.am,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_x509.c,
-       lib/x509_b64.c, libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/gnutls_openpgp.c: GNUTLS_E_PARSING_ERROR error code was
-       replaced by GNUTLS_E_BASE64_DECODING_ER and
-       GNUTLS_E_SRP_PWD_PARSING_ERROR. GNUTLS_E_ASCII_ARMOR_ERROR was also
-       replaced by GNUTLS_E_BASE64_DECODING_ERROR.
-
-2003-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/Makefile.am, doc/tex/Makefile.am, doc/tex/appendix.tex,
-       doc/tex/patents.tex: Added some information about the SRP patents in
-       the documentation.
-
-2003-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-serv-srp.tex: [no log message]
-
-2003-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_hash_int.c: [no log message]
-
-2003-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, acinclude.m4, configure.in, doc/README.CODING_STYLE,
-       lib/Makefile.am, lib/defines.h, lib/gnutls.h.in.in, lib/gnutls.sym,
-       lib/gnutls_auth.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_state.c, libextra/Makefile.am,
-       libextra/gnutls-extra.sym: Only the documented symbols are now
-       exported.
-
-2003-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: If the certificate does not contain the
-       basicConstraints extension GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE
-       will be returned by gnutls_x509_extract_certificate_ca_status().
-
-2003-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/x509_extensions.c: [no log message]
-
-2003-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_ui.h, lib/gnutls_x509.c: Added
-       gnutls_x509_extract_certificate_ca_status() which returns the CA
-       status of the given certificate.
-
-2003-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-rfc2818.tex: [no log message]
-
-2003-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2003-01-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in: [no log message]
-
-2003-01-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2003-01-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls_compress_int.c,
-       lib/minitasn1/Makefile.am, libextra/Makefile.am: If liblzo is found
-       in the system then libgnutls-extra will depend on it, instead of
-       including minilzo.
-
-2002-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_mpi.c: Added a test for null (zero) integers in MPI
-       scanning.
-
-2002-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tests.c, src/tls_test.c: some fixes in the gnutls-cli-debug
-       program
-
-2002-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: Added missing stub function.
-
-2002-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/Makefile: [no log message]
-
-2002-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/minitasn1/Makefile.am, lib/minitasn1/README: [no
-       log message]
-
-2002-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/Makefile.am: [no log message]
-
-2002-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * Makefile.am, NEWS, configure.in, doc/README.CVS, lib/Makefile.am,
-       lib/defines.h, lib/minitasn1/coding.c, lib/minitasn1/decoding.c,
-       lib/minitasn1/der.h, lib/minitasn1/element.c,
-       lib/minitasn1/element.h, lib/minitasn1/errors.c,
-       lib/minitasn1/errors.h, lib/minitasn1/errors_int.h,
-       lib/minitasn1/gstr.c, lib/minitasn1/gstr.h, lib/minitasn1/int.h,
-       lib/minitasn1/libtasn1.h, lib/minitasn1/mem.h,
-       lib/minitasn1/parser_aux.c, lib/minitasn1/parser_aux.h,
-       lib/minitasn1/structure.c, lib/minitasn1/structure.h: [no log
-       message]
-
-2002-12-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: depends on libgcrypt 1.1.11
-
-2002-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_anon.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/gnutls_auth.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       libextra/auth_srp.c, libextra/auth_srp.h, libextra/auth_srp_rsa.c: 
-       Dropped the support for the client key exchange message 0, and
-       server key exchange message 2.
-
-2002-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/debug.c, lib/gnutls_mpi.h,
-       lib/gnutls_record.c, libextra/auth_srp.c: Finished SRP-6 stuff. It
-       should work fine now.
-
-2002-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp.c, libextra/auth_srp_rsa.c, libextra/ext_srp.c,
-       libextra/gnutls_srp.c, libextra/gnutls_srp.h: First part of SRP-6
-       support. Follows draft-ietf-tls-srp-04 and does not need the second
-       key exchange part. Does not work yet.
-
-2002-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-compression-03.txt,
-       doc/protocol/draft-ietf-tls-compression-04.txt,
-       doc/protocol/draft-ietf-tls-srp-03.txt,
-       doc/protocol/draft-ietf-tls-srp-04.txt, doc/tex/gnutls.bib,
-       doc/tex/programs.tex: [no log message]
-
-2002-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/extra.h, libextra/gnutls_openpgp.c: Added
-       gnutls_openpgp_extract_key_name_string() which returns a single
-       string for a pgp user id.
-
-2002-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-serv-export.tex, src/serv.c: updated some example and
-       the server to use the new gnutls_malloc() in callbacks.
-
-2002-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_ui.h, lib/gnutls_x509.c: Added the
-       gnutls_x509_extract_dn_string() function.
-
-2002-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/README.CODING_STYLE: [no log message]
-
-2002-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: [no log message]
-
-2002-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * README, doc/TODO: [no log message]
-
-2002-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog, lib/gnutls_mem.c, libextra/gnutls_openpgp.c: [no log
-       message]
-
-2002-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2002-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: [no log message]
-
-2002-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: updated to include a callback for receiving openpgp
-       keys, using libopencdk.
-
-2002-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_cert_type.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_sig.c, lib/x509_b64.c,
-       libextra/auth_srp_sb64.c: some cleanups
-
-2002-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: minor cleanups
-
-2002-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex: [no log message]
-
-2002-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_server_name.c: some fixes in server_name extension
-
-2002-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex, src/serv-gaa.c, src/serv-gaa.h,
-       src/serv.c, src/serv.gaa: [no log message]
-
-2002-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/callbacks.tex, lib/gnutls.h.in.in, lib/gnutls_db.c,
-       lib/gnutls_global.c, lib/gnutls_mem.c, lib/x509_b64.c,
-       libextra/auth_srp_sb64.c, libextra/gnutls_srp.c: Exported the more
-       convenient gnutls_malloc() and gnutls_free() functions. Actually
-       pointers to functions.
-
-2002-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_global.c: [no log message]
-
-2002-12-07  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: Some bug fixes for the OpenPGP code.
-
-2002-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_db.c, libextra/gnutls_srp.c: [no log message]
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/x509_b64.c, libextra/auth_srp_sb64.c: Changed the
-       semantics of gnutls_pem_base64_encode_alloc() and
-       gnutls_pem_base64_decode_alloc(). In the default case were the
-       gnutls library is used with malloc/realloc/free, these are binary
-       compatible.  They now require the returned data to be freed using the
-       gnutls_global_get_free_function().
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/extra.h, lib/gnutls_int.h, lib/gnutls_ui.h,
-       libextra/auth_srp_passwd.c, libextra/gnutls_srp.c,
-       libextra/gnutls_srp.h: some cleanups.
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, doc/tex/Makefile.am, doc/tex/callbacks.tex,
-       doc/tex/library.tex, lib/gnutls.h.in.in, lib/gnutls_datum.c,
-       lib/gnutls_datum.h, lib/gnutls_db.c, lib/gnutls_global.c,
-       lib/gnutls_mem.c, lib/gnutls_mem.h, lib/gnutls_state.c,
-       lib/gnutls_str.c, lib/gnutls_str.h, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_passwd.h, libextra/gnutls_srp.c, src/cli.c,
-       src/serv.c: Added the new functions gnutls_get_malloc_function(),
-       gnutls_get_free_function(). Also changed the way callback functions
-       must allocate data. They now need to use these functions, instead of
-       just calling malloc().
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_passwd.h, libextra/gnutls_srp.c: more updates in
-       the SRP parameter callback.
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, includes/gnutls/extra.h: [no log message]
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/ext_srp.c, libextra/gnutls_srp.c: Some updates in the srp
-       codebase, to detect illegal usernames etc.
-
-2002-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c: added error code to
-       report illegal srp usernames. Some fixes in the extension parsing to
-       report fatal errors.
-
-2002-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/x509_extensions.c, lib/x509_verify.c: some optimizations in
-       string handling of the x.509 asn.1 parsers.
-
-2002-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * tests/openpgp_test.c: [no log message]
-
-2002-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog, doc/tex/ex-pgp-keyserver.tex: [no log message]
-
-2002-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_global.c: [no log message]
-
-2002-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am, doc/tex/ex-pgp-keyserver.tex,
-       doc/tex/examples.tex, doc/tex/macros.tex, doc/tex/preparation.tex: 
-       Added a chapter for sources preparation. Based on the documenation
-       of libksba.
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, doc/tex/ex-pgp-keyserver.tex: depends on opencdk
-       0.3.5
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex, doc/tex/gnutls.bib,
-       doc/tex/srp.tex, doc/tex/x509.tex: [no log message]
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_extensions.c: Corrected bug in extension parsing.
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_extra.c: [no log message]
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/Makefile.am, doc/tex/srp.tex: [no log message]
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/auth.tex, includes/gnutls/extra.h, libextra/gnutls_srp.c: 
-       some updates on srp documentation.
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex: [no log message]
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex: [no log message]
-
-2002-12-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/ext_cert_type.c, lib/ext_server_name.c,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_compress_int.c, lib/gnutls_constate.c,
-       lib/gnutls_datum.c, lib/gnutls_datum.h, lib/gnutls_db.c,
-       lib/gnutls_dh.c, lib/gnutls_dh_primes.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_kx.c, lib/gnutls_mem.c,
-       lib/gnutls_mpi.c, lib/gnutls_num.c, lib/gnutls_pk.c,
-       lib/gnutls_priority.c, lib/gnutls_privkey.c, lib/gnutls_random.c,
-       lib/gnutls_record.c, lib/gnutls_rsa_export.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_state.c,
-       lib/gnutls_str.c, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/gnutls_x509.c, lib/x509_extensions.c, lib/x509_sig_check.c,
-       libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_rsa.c, libextra/ext_srp.c,
-       libextra/gnutls_extra.c, libextra/gnutls_openpgp.c,
-       libextra/gnutls_srp.c: Cleanups. Prefixed some internal function
-       with underscore.
-
-2002-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: more fixes in
-       gnutls_x509_extract_certificate_dn_string()
-
-2002-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, lib/gnutls_dh_primes.c: [no log message]
-
-2002-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex-pgp-keyserver.tex, includes/gnutls/extra.h,
-       lib/gnutls_dh.h, lib/gnutls_dh_primes.c, libextra/auth_srp.c,
-       libextra/auth_srp.h, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_passwd.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_srp.c, libextra/gnutls_srp.h, src/common.c: Added
-       the function gnutls_srp_server_set_credentials_function() to allow
-       retrieving SRP parameters from an external backend - other than
-       password files.
-
-2002-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex-pgp-keyserver.tex, lib/auth_cert.c,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openpgp.h: Enabled the OpenPGP key retrieval
-       callback function (untested yet).
-
-2002-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/Makefile.am, libextra/crypt.c, libextra/crypt.h,
-       libextra/crypt_srpsha1.c, libextra/crypt_srpsha1.h: removed all
-       files related to srpsha1 encoding. The are not needed any more.
-
-2002-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2002-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/gnutls/extra.h, lib/x509_b64.c,
-       libextra/auth_srp_sb64.c, libextra/crypt.c,
-       libextra/crypt_srpsha1.c, libextra/gnutls_srp.c,
-       libextra/gnutls_srp.h, src/common.c, src/crypt-gaa.c, src/crypt.c,
-       src/crypt.gaa: Added the functions:    gnutls_srp_verifier()    gnutls_srp_base64_encode()    gnutls_srp_base64_decode() and modified the gnutls-srpcrypt, to use the exported functions.
-
-2002-12-01  Timo Schulz <twoaday@gnutls.org>
-
-       * tests/openpgp_test.c: Some enhancements for the OpenPGP test
-       program.
-
-2002-12-01  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: Some new code for the OpenPGP lib.
-
-2002-12-01  Timo Schulz <twoaday@gnutls.org>
-
-       * tests/openpgp_test.c: Some enhancements for the OpenPGP test
-       program.
-
-2002-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: [no log message]
-
-2002-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2002-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int.h, lib/gnutls_x509.c: 
-       gnutls_x509_extract_certificate_dn_string() now behaves as described
-       in RFC2253.
-
-2002-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.CODING_STYLE, includes/gnutls/extra.h,
-       lib/gnutls_int.h: some changes in the callback function behaviour.
-
-2002-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: linked against libgcrypt (I saw that in debian)
-
-2002-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.CODING_STYLE, doc/README.CVS: [no log message]
-
-2002-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.CODING_STYLE: [no log message]
-
-2002-11-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/alert.tex, doc/tex/certificate.tex, doc/tex/errors.tex,
-       doc/tex/examples.tex, doc/tex/funcs.tex, doc/tex/gnutls.bib,
-       doc/tex/handshake.tex, doc/tex/layers.tex, doc/tex/openpgp.tex,
-       doc/tex/record.tex, doc/tex/record_weaknesses.tex,
-       doc/tex/tls_extensions.tex: [no log message]
-
-2002-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/compat.h: [no log message]
-
-2002-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, libextra/auth_srp_rsa.c,
-       libextra/gnutls_extra.c: Several cleanups and elimination of
-       warnings.
-
-2002-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am, doc/tex/gnutls.bib, doc/tex/record.tex,
-       doc/tex/record_weaknesses.tex, doc/tex/tls_extensions.tex,
-       doc/tex/tlsintro.tex, includes/gnutls/compat4.h,
-       lib/ext_server_name.c, lib/gnutls_int_compat.c: updated
-       documentation to include record layer weaknesses and
-       counter-measures, and the supported TLS extensions.
-
-2002-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/Makefile.am, includes/gnutls/Makefile.am: [no log
-       message]
-
-2002-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/compat4.h, lib/gnutls.h.in.in: compat4.h was
-       added, and is included by default in gnutls.h.
-
-2002-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/compat.h, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cert.h, lib/gnutls_sig.c,
-       lib/gnutls_ui.h, lib/gnutls_x509.c, lib/rfc2818_hostname.c,
-       libextra/gnutls_extra.c: Moved the GNUTLS_X509KEY_* to gnutls_cert.h
-       and renamed them to KEY_*. Improved the checking of key usage.
-
-2002-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: added the AES ciphersuites for
-       certificate srp authentication.
-
-2002-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/README.autoconf, doc/TODO: [no log message]
-
-2002-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/auth.tex: [no log message]
-
-2002-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_cert.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_x509.c, libextra/auth_srp_rsa.c, libextra/ext_srp.c,
-       libextra/gnutls_extra.c, src/cli.c, src/common.c, src/common.h,
-       src/serv.c: Added support for the DSS certificate SRP authenticated
-       cipher suites (currently only with 3DES cipher). Cleaned up the
-       client and server code, which was duplicated.
-
-2002-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/auth_cert.c, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_auth.c, lib/gnutls_auth_int.h, lib/gnutls_cert.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_v2_compat.c,
-       lib/gnutls_x509.c, libextra/Makefile.am, libextra/auth_srp.c,
-       libextra/auth_srp.h, libextra/auth_srp_rsa.c, libextra/ext_srp.c,
-       libextra/gnutls_extra.c, libextra/gnutls_extra.h, src/cli.c,
-       src/common.c, src/serv.c: Added certificate authenticated SRP cipher
-       suites.
-
-2002-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/auth.tex, doc/tex/compression.tex, doc/tex/gnutls.bib,
-       doc/tex/openpgp.tex, doc/tex/tlsintro.tex: [no log message]
-
-2002-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/gnutls.bib: [no log message]
-
-2002-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, lib/gnutls_x509.c: [no log message]
-
-2002-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_int_compat.c: added compatibility function for the
-       openpgp_keyserver.
-
-2002-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am, doc/tex/appendix.tex, doc/tex/auth.tex,
-       doc/tex/compression.tex, doc/tex/examples.tex, doc/tex/gnutls.bib,
-       doc/tex/gnutls.tex, doc/tex/openpgp.tex, doc/tex/tlsintro.tex: added
-       bibliography in documentation.
-
-2002-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex: [no log message]
-
-2002-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex: [no log message]
-
-2002-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-pgp-keyserver.tex: [no log message]
-
-2002-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/examples/Makefile.am, doc/tex/Makefile.am,
-       doc/tex/ex-pgp-keyserver.tex, doc/tex/examples.tex,
-       includes/gnutls/extra.h, lib/gnutls_int.h: updated pgp key retrieval
-       callback and added example.
-
-2002-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am: [no log message]
-
-2002-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am: [no log message]
-
-2002-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/Makefile.am, doc/examples/.cvsignore,
-       doc/examples/Makefile.am, doc/tex/Makefile.am: example programs are
-       now located in doc/examples directory.
-
-2002-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_alert.c, lib/gnutls_alert.h: Added
-       some new alert codes from the extensions draft.
-
-2002-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_ui.c: [no log message]
-
-2002-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/.cvsignore: [no log message]
-
-2002-11-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-client2.tex, doc/tex/examples.tex: updated the basic
-       client to support OpenPGP certificate authentication.
-
-2002-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am, doc/tex/ex-serv-pgp.tex,
-       doc/tex/examples.tex: added example with an openpgp server
-
-2002-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: [no log message]
-
-2002-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_anon.c, lib/auth_cert.c, lib/auth_dh_common.c,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
-       lib/gnutls_auth.c, lib/gnutls_cert.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_session_pack.c,
-       lib/gnutls_state.c, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/gnutls_x509.c, libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/ext_srp.c: The session->gnutls_key was renamed to
-       session->key.
-
-2002-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/compat.h, includes/gnutls/extra.h: added compat.h
-       which has definitions for compatibility with older (0.4.x and 0.5.y,
-       y<5) versions.
-
-2002-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, includes/Makefile.am, includes/gnutls/Makefile.am,
-       lib/gnutls_ui.h: [no log message]
-
-2002-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/extra.h, lib/gnutls_int.h: The
-       gnutls_openpgp_recv_key_func() callback function now accepts a key
-       fingerprint, instead of the key id.
-
-2002-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/common.h, src/serv.c, src/tests.c, src/tests.h,
-       src/tls_test.c: [no log message]
-
-2002-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c, src/serv.c, src/tests.c: cleanups
-
-2002-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/extra.h, lib/gnutls.h.in.in: dropped source
-       backwards compatibility
-
-2002-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, includes/gnutls/extra.h, lib/gnutls_int.h,
-       libextra/gnutls_openpgp.c: Added callback for OpenPGP key retrieval.
-
-2002-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-rfc2246-bis-01.txt,
-       doc/protocol/draft-ietf-tls-rfc2246-bis-02.txt: added new rfc2246bis
-       draft
-
-2002-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * opencdk.m4: updated url for opencdk
-
-2002-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c, lib/gnutls_buffers.c, lib/gnutls_db.c,
-       lib/gnutls_global.c, lib/gnutls_state.c, lib/gnutls_x509.c: some
-       updated in the documentation
-
-2002-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2002-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-04  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: Applied patch to make the error
-       handling with keyservers more easier.
-
-2002-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls.h.in.in, lib/gnutls_alert.c, lib/gnutls_alert.h,
-       lib/gnutls_errors_int.h: Added new alert (certificate unobtainable)
-       from draft-ietf-tls-extensions.
-
-2002-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in: depends on opencdk 0.3.2
-
-2002-11-04  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: Some debug code for the OpenPGP part.
-
-2002-11-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/common.c: [no log message]
-
-2002-11-03  Timo Schulz <twoaday@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       libextra/gnutls_openpgp.c: Use the old error codes for OpenPGP
-       again.
-
-2002-11-03  Timo Schulz <twoaday@gnutls.org>
-
-       * lib/auth_cert.c: Fixed an off-by-one bug for OpenPGP fingerprint
-       handling.
-
-2002-11-03  Timo Schulz <twoaday@gnutls.org>
-
-       * lib/gnutls_errors_int.h: Corrected error number (the old was
-       reserved).
-
-2002-11-03  Timo Schulz <twoaday@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       libextra/gnutls_openpgp.c: Unification for the OpenPGP error code.
-
-2002-11-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_cert.c: corrected behaviour of verification in openpgp
-       keys.
-
-2002-11-03  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: Set the OpenPGP certificate status to
-       GNUTLS_CERT_NOT_TRUSTED if the function failed.
-
-2002-11-03  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/gnutls_openpgp.c, tests/openpgp_test.c: Bug fix for the
-       OpenPGP secret key order.
-
-2002-11-03  Timo Schulz <twoaday@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       libextra/gnutls_openpgp.c: Add OpenPGP error description
-
-2002-11-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_sig.c,
-       lib/gnutls_x509.c: Renamed GNUTLS_E_X509_KEY_USAGE_VIOLATION to
-       GNUTLS_E_KEY_USAGE_VIOLATION, in order to apply to PGP keys as well.
-
-2002-11-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_pk.c,
-       lib/gnutls_sig.c, lib/x509_sig_check.c, src/cli-gaa.c,
-       src/cli-gaa.h, src/cli.c, src/cli.gaa, src/common.c: Added some new
-       error codes and updated client.
-
-2002-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: [no log message]
-
-2002-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in: [no log message]
-
-2002-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: [no log message]
-
-2002-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * libextra/gnutls_openpgp.c: fixed stub
-
-2002-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2002-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/ext_cert_type.c, lib/ext_max_record.c,
-       lib/ext_server_name.c, lib/gnutls_alert.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c,
-       lib/gnutls_record.c, lib/gnutls_rsa_export.c,
-       lib/gnutls_session_pack.c, lib/gnutls_ui.c, lib/x509_b64.c,
-       libextra/gnutls_openpgp.c, libextra/gnutls_srp.c: Combined
-       GNUTLS_E_INVALID_PARAMETERS wich GNUTLS_E_INVALID_REQUEST.
-       Introduced GNUTLS_E_SHORT_MEMORY_BUFFER.
-
-2002-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c, lib/x509_xml.c: Fixed some memory leaks which
-       may occured on error cases.
-
-2002-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_x509.c, src/common.c: 
-       gnutls_x509_extract_certificate_dn_string() was rewritten.
-
-2002-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/Makefile.am: [no log message]
-
-2002-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: Added a check for dn extraction failure in
-       gnutls_x509_extract_certificate_dn_string().
-
-2002-11-01  Timo Schulz <twoaday@gnutls.org>
-
-       * libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h: Adjust the
-       keydb search code.
-
-2002-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-10-29  Timo Schulz <twoaday@gnutls.org>
-
-       * configure.in: Bump OpenCDK version to 0.3.0
-
-2002-10-29  Timo Schulz <twoaday@gnutls.org>
-
-       * lib/gnutls_errors_int.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openpgp.h, tests/Makefile, tests/openpgp_test.c: Add
-       new regression test for OpenPGP.  New code for the OpenCDK 0.3.0
-       version.  A new error code for the OpenPGP part.
-
-2002-10-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_buffer.h: added missing file
-
-2002-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/gnutls_buffers.c, lib/gnutls_cert.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_constate.c,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_pk.c, lib/gnutls_record.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_state.c, lib/gnutls_ui.c,
-       lib/gnutls_x509.c, lib/x509_verify.c, lib/x509_xml.c,
-       libextra/auth_srp_passwd.c, libextra/gnutls_openpgp.c: 
-       GNUTLS_E_UNKNOWN_ERROR was removed, and was replaced by
-       GNUTLS_E_INTERNAL_ERROR.
-
-2002-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: [no log message]
-
-2002-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/Makefile.am, doc/tex/auth.tex, doc/tex/tlsintro.tex,
-       doc/tex/translayer.tex: [no log message]
-
-2002-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_str.h: 
-       Optimizations in buffering code, which reduce the number of
-       malloc/realloc calls.
-
-2002-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c, src/retcodes.c: The error code table now
-       contains all the error codes sorted.
-
-2002-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/Makefile.am, doc/tex/appendix.tex,
-       doc/tex/errors.tex, doc/tex/gnutls.tex, lib/gnutls_errors.c,
-       lib/gnutls_pk.c, src/Makefile.am, src/retcodes.c: Documented error
-       codes in an appendix. This documentation is generated automatically
-       using the retcodes program.
-
-2002-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc: [no log message]
-
-2002-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/scripts/gdoc, doc/scripts/sort1.pl, doc/tex/Makefile.am: Added
-       script to sort function  names in function reference.
-
-2002-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_errors.c: [no log message]
-
-2002-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/auth_cert.c, lib/gnutls_cipher.c, lib/gnutls_constate.c,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_pk.c, lib/gnutls_v2_compat.c: 
-       Added more descriptive error codes to be returned by
-       gnutls_strerror(). Removed old and unused error codes.
-
-2002-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/tls_test-gaa.c, src/tls_test-gaa.h, src/tls_test.c,
-       src/tls_test.gaa: gnutls-cli-debug now accepts one hostname only
-
-2002-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: gnutls-cli
-       now accepts one hostname only
-
-2002-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-compression-02.txt,
-       doc/protocol/draft-ietf-tls-compression-03.txt: [no log message]
-
-2002-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO, doc/tex/Makefile.am, lib/Makefile.am, lib/auth_anon.c,
-       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
-       lib/rfc2818_hostname.c: Merged common stuff in DHE and anonymous DH
-       key exchange.
-
-2002-10-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/examples.tex: [no log message]
-
-2002-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/Makefile.am, doc/tex/ex-client-resume.tex,
-       doc/tex/ex-client-srp.tex, doc/tex/ex-client1.tex,
-       doc/tex/ex-client2.tex, doc/tex/ex-info.tex,
-       doc/tex/ex-serv-export.tex, doc/tex/ex-serv-srp.tex,
-       doc/tex/ex-serv1.tex, doc/tex/ex1.tex, doc/tex/ex2.tex,
-       doc/tex/ex3.tex, doc/tex/ex4.tex, doc/tex/serv-export.tex,
-       doc/tex/serv-srp.tex, doc/tex/serv1.tex, doc/tex/srp1.tex: Example
-       programs found in the documentation can now be generated by running
-       "make examples" in doc/tex directory.
-
-2002-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * THANKS, libextra/Makefile.am: Fixed interlibrary dependencies. By
-       Ivo Timmermans. This requires the debian libtool 1.4.2-7.1
-
-2002-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/compression.tex, doc/tex/layers.tex,
-       doc/tex/translayer.tex: [no log message]
-
-2002-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_max_record.c, lib/ext_server_name.c: cleanups in the
-       server name extension.
-
-2002-10-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, src/cli.c: Some fixes in 'gnutls-cli' client program to
-       prevent some segmentation faults at exit.
-
-2002-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2002-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/auth.tex, doc/tex/funcs.tex: [no log message]
-
-2002-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/Makefile.am, doc/tex/alert.tex, doc/tex/auth.tex,
-       doc/tex/certificate.tex, doc/tex/ciphersuites.tex,
-       doc/tex/compression.tex, doc/tex/handshake.tex, doc/tex/howto.tex,
-       doc/tex/memory.tex, doc/tex/record.tex, doc/tex/tlsintro.tex: 
-       spelling corrections, and addition of a subsection for compression
-       algorithms.
-
-2002-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_algorithms.c: ZLIB's number was changed according to
-       draft-ietf-tls-compression-02
-
-2002-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/auth_anon.c, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/defines.h, lib/ext_cert_type.c,
-       lib/ext_cert_type.h, lib/ext_max_record.c, lib/ext_max_record.h,
-       lib/ext_server_name.c, lib/ext_server_name.h, lib/gnutls.h.in.in,
-       lib/gnutls_alert.c, lib/gnutls_alert.h, lib/gnutls_algorithms.c,
-       lib/gnutls_auth.c, lib/gnutls_auth.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_compress_int.c,
-       lib/gnutls_compress_int.h, lib/gnutls_db.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_mem.c,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_record.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_session_pack.c,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_state.c,
-       lib/gnutls_ui.c, lib/gnutls_ui.h, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/rfc2818_hostname.c, lib/x509_b64.c,
-       lib/x509_b64.h, lib/x509_sig_check.c, libextra/auth_srp.c,
-       libextra/auth_srp.h, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_passwd.h, libextra/auth_srp_sb64.c,
-       libextra/crypt.c, libextra/crypt_srpsha1.c, libextra/ext_srp.c,
-       libextra/ext_srp.h, libextra/gnutls_openpgp.c: several fixes in the
-       codebase, mostly in signed/unsigned checkings.
-
-2002-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_max_record.c, lib/ext_max_record.h: Corrected some types,
-       to work in 64 bits machines. Suggested by Ivo Timmermans
-       <ivo@o2w.nl>.
-
-2002-10-12  Andrew McDonald <admcd@gnutls.org>
-
-       * includes/gnutls/openssl.h: Enclose in extern "C" (from Debian bug
-       #163394).
-
-2002-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/serv.c: now does not require carriage return
-
-2002-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/ext_server_name.c: Fixes (or not) in server name extension
-       parsing
-
-2002-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/certificate.tex, doc/tex/ex-rfc2818.tex, doc/tex/ex3.tex,
-       doc/tex/examples.tex: updated documentation
-
-2002-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/ext_server_name.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c, src/serv.c: Improved the server name
-       extension. Resumed sessions can now use it.
-
-2002-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/Makefile.am, lib/ext_server_name.c,
-       lib/ext_server_name.h, lib/gnutls.h.in.in, lib/gnutls_extensions.c,
-       lib/gnutls_int.h, src/cli.c, src/common.c, src/serv.c: Added server
-       name extension, from draft-ietf-tls-extension-05.
-
-2002-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/protocol/draft-ietf-tls-compression-01.txt,
-       doc/protocol/draft-ietf-tls-compression-02.txt,
-       doc/protocol/draft-ietf-tls-rfc2246-bis-01.txt: [no log message]
-
-2002-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-alert.tex, doc/tex/ex-rfc2818.tex,
-       doc/tex/examples.tex, lib/rfc2818_hostname.c: more documentation
-       updates
-
-2002-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-rfc2818.tex: more documentation updates
-
-2002-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/tex/ex-alert.tex: [no log message]
-
-2002-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, doc/tex/Makefile.am, doc/tex/ex-alert.tex,
-       doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex4.tex,
-       doc/tex/examples.tex, doc/tex/handshake.tex,
-       doc/tex/serv-export.tex, doc/tex/serv-srp.tex, doc/tex/serv1.tex,
-       src/serv.c: Separated alert checking from the example programs, to
-       make them cleaner. Added an example which demonstrates the alert
-       checking.
-
-2002-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/examples.tex: last minute changes for 0.5.9 release.
-
-2002-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/Makefile.am, lib/gnutls_ui.h, lib/rfc2818_hostname.c: 
-       Added int gnutls_x509_check_certificates_hostname() which check
-       whether the given hostname matches the owner of the given X.509
-       certificate.
-
-2002-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, configure.in, lib/gnutls_extensions.c, lib/x509_xml.c: 
-       cleanups
-
-2002-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_priority.c: [no log message]
-
-2002-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli.c: [no log message]
-
-2002-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/tex/ex4.tex, doc/tex/serv-export.tex,
-       doc/tex/serv1.tex, lib/gnutls.h.in.in, lib/gnutls_priority.c,
-       src/cli-gaa.c: Added gnutls_set_default_priority() and
-       gnutls_set_default_export_priority() functions, to avoid calling all
-       the *_priority() functions if the defaults are ok.
-
-2002-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_x509.c: [no log message]
-
-2002-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_ui.h, lib/gnutls_x509.c: Added
-       gnutls_x509_extract_certificate_dn_string() which returns the peer's
-       Distinguished name in a single string.
-
-2002-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, lib/gnutls.h.in.in, lib/gnutls_auth.c,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_kx.c,
-       src/cli.c, src/cli.gaa: several cleanups
-
-2002-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: Changes in
-       gnutls-cli, to allow testing of starttls implementations.
-
-2002-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, lib/gnutls_ui.c, lib/gnutls_ui.h: rolled back addition of
-       certificate_get_our_issuer() function.
-
-2002-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * includes/gnutls/extra.h, libextra/gnutls_extra.c,
-       libextra/libgnutls-extra.m4: Corrected the broken detection of
-       libgnutls-extra. Bug reported by Ivo Timmermans.
-
-2002-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2002-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS, doc/TODO, lib/gnutls_state.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h: Corrected bug which prevented
-       gnutls_certificate_get_ours() from working.  Added
-       gnutls_certificate_get_our_issuer() function.
-
-2002-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * lib/gnutls_privkey.c, lib/gnutls_privkey.h, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, lib/x509_b64.c: Improved
-       gnutls_x509_extract_key_pk_algorithm(), which can now distinguish
-       DSA keys from unknown keys.
-
-2002-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * ChangeLog: [no log message]
-
-2002-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, lib/gnutls_buffers.c: some fixes to compile with
-       gcc-2.95.
-
-2002-10-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * doc/TODO: [no log message]
-
-2002-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * NEWS: [no log message]
-
-2002-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-       * configure.in, doc/TODO, lib/gnutls.h.in.in, lib/gnutls_privkey.c,
-       lib/gnutls_privkey.h, lib/gnutls_ui.h: Added function to extract the
-       public key algorithm of a DER encoded private key.
+       * doc/latex/cover-epub.tex, doc/latex/cover.tex,
+       doc/scripts/Makefile.am, doc/scripts/getfuncs.pl,
+       doc/scripts/mytexi2latex, doc/scripts/sort1.pl,
+       doc/scripts/sort2.pl, doc/scripts/split-texi.pl,
+       doc/scripts/split.pl, lib/gnutls_dtls.c, lib/gnutls_mbuffers.c,
+       lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/pkcs11.c,
+       lib/pkcs11_privkey.c, lib/pkcs11_secret.c, lib/pkcs11_write.c,
+       lib/x509/verify.c, tests/openpgp-auth.c, tests/openpgp-auth2.c,
+       tests/scripts/common.sh: Add/fix copyright headers.
 
-2002-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * cfg.mk: Add rules to generate clang analysis.
 
-2002-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * doc/protocol/draft-ietf-tls-compression-00.txt,
-       doc/protocol/draft-ietf-tls-compression-01.txt: [no log message]
+       * build-aux/gendocs.sh, doc/gendocs_template, gl/Makefile.am,
+       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/stdlib_h.m4,
+       gl/stdlib.in.h, gl/sys_stat.in.h, gl/tests/fcntl.in.h,
+       gl/unistd.in.h: Update gnulib files.
 
-2002-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, configure.in, lib/auth_rsa.c, lib/gnutls_cert.c: [no log
-       message]
+       * ChangeLog: Generated.
 
-2002-09-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * NEWS, configure.ac: Version 3.0.12.
 
-2002-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, configure.in, lib/gnutls_cert.c: [no log message]
+       * cfg.mk, po/POTFILES.in: Fix syntax-check rules.
 
-2002-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_global.c: enabled error messages of libgcrypt in debug
-       mode
+       * .gitignore, NEWS, configure.ac, doc/Makefile.am,
+       doc/cha-bib.texi, doc/cha-cert-auth2.texi, doc/cha-functions.texi,
+       doc/cha-gtls-examples.texi, doc/examples/Makefile.am,
+       doc/examples/ex-ocsp-client.c, doc/examples/ex-ocsp-verify.c,
+       doc/manpages/Makefile.am, doc/reference/gnutls-docs.sgml,
+       lib/includes/Makefile.am, lib/includes/gnutls/ocsp.h,
+       lib/libgnutls.map, lib/pkix.asn, lib/pkix_asn1_tab.c,
+       lib/x509/Makefile.am, lib/x509/ocsp.c, lib/x509/ocsp_output.c,
+       m4/hooks.m4, src/Makefile.am, src/ocsptool-common.h,
+       src/ocsptool.c, src/ocsptool.gaa, tests/Makefile.am, tests/ocsp.c: 
+       Add OCSP functionality.
 
-2002-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * lib/x509/verify-high.c, lib/x509/verify-high.h: Fix semantics of
+       (unused) _gnutls_trustlist_inlist.
 
-2002-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/Makefile.am, lib/defines.h, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_compress_int.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       libextra/Makefile.am, libextra/gnutls_extra.c, libextra/lzoconf.h,
-       libextra/minilzo.c, libextra/minilzo.h, src/cli.c, src/serv.c: Added
-       support for the LZO compression library in gnutls-extra. Some fixes
-       in the hello message parsing.
+       * doc/manpages/Makefile.am: Bump copyright year on manpages.
 
-2002-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_state.c: [no log message]
+       * lib/x509/x509.c: Fix mem leak.
 
-2002-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_buffers.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_int_compat.c, lib/gnutls_state.c: 
-       replaced gnutls_handshake_get_direction() with
-       gnutls_record_get_direction().
+       * doc/manpages/Makefile.am: Cosmetic improvement of build output.
 
-2002-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-19  Simon Josefsson <simon@josefsson.org>
 
-       * doc/tex/appendix.tex, doc/tex/certificate.tex,
-       doc/tex/library.tex: updated documentation
+       * guile/tests/Makefile.am: Print detailed guile warnings (for
+       obsolete functions).
 
-2002-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-18  Simon Josefsson <simon@josefsson.org>
 
-       * README, src/serv.c: [no log message]
+       * doc/Makefile.am: Fix doc/enums/ generation to work with 'make
+       distcheck'.
 
-2002-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-18  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_record.c: [no log message]
+       * guile/pre-inst-guile.in: Fix builddir != srcdir builds.
 
-2002-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/library.tex, doc/tex/macros.tex,
-       doc/tex/tlsintro.tex, doc/tex/translayer.tex: [no log message]
+       * doc/cha-gtls-app.texi: doc fix
 
-2002-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * NEWS, lib/gnutls_errors.c, lib/gnutls_priority.c, src/cli.c: 
+       GNUTLS_E_NO_PRIORITIES_WERE_SET is also returned by
+       gnutls_priority_set_* This allows to warn when an incomplete set of
+       priorities is specified.  Reported by Yaroslav Stavnichiy.
 
-2002-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_global.c: [no log message]
+       * lib/gnutls_errors.c, lib/gnutls_handshake.c,
+       lib/includes/gnutls/gnutls.h.in: introduced
+       GNUTLS_E_NO_PRIORITIES_WERE_SET.
 
-2002-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/library.tex: [no log message]
+       * doc/cha-gtls-app.texi, doc/texinfo.css: more documentation
+       updates.
 
-2002-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/library.tex: [no log message]
+       * doc/cha-internals.texi: added more information to internals''
 
-2002-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/TODO, doc/tex/alert.tex, doc/tex/auth.tex,
-       doc/tex/programs.tex, lib/gnutls_alert.c, src/crypt.c: [no log
-       message]
+       * doc/printlist.c: better print supported algorithms.
 
-2002-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/layers.tex: [no log message]
+       * doc/examples/ex-client-x509.c: Added
+       gnutls_certificate_set_x509_key_file in a comment.
 
-2002-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/library.tex: [no log message]
+       * doc/examples/ex-pkcs11-list.c, doc/examples/print-ciphersuites.c: 
+       added boilerplate
 
-2002-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-17  Ludovic Courtès <ludo@gnu.org>
 
-       * README, lib/gnutls.h.in.in, lib/gnutls_alert.c: Added a new
-       function to convert from an error to an alert code.
+       * guile/pre-inst-guile.in: Fix $(srcdir) != $(builddir) for Guile.  Now that modules/gnutls.scm is generated, $(builddir) must be in the
+       search path.
 
-2002-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-16  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_compress_int.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: Improved support for zlib.
+       * tests/ecdsa/ecdsa: Fix srcdir != builddir builds.  Tiny patch from Elias Pipping <pipping@lavabit.com>.
 
-2002-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-16  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * lib/includes/gnutls/gnutls.h.in, lib/nettle/ecc_mulmod.c: GTK-DOC
+       fixes.
 
-2002-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-16  Simon Josefsson <simon@josefsson.org>
 
-       * doc/protocol/draft-ietf-tls-srp-02.txt,
-       doc/protocol/draft-ietf-tls-srp-03.txt: [no log message]
+       * doc/manpages/Makefile.am: Generated.
 
-2002-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-16  Simon Josefsson <simon@josefsson.org>
 
-       * doc/protocol/draft-ietf-tls-compression-00.txt,
-       doc/protocol/draft-ietf-tls-extensions-03.txt,
-       doc/protocol/draft-ietf-tls-extensions-05.txt: updated drafts
+       * doc/cha-programs.texi: Fix sc_space_tab syntax-check nit.
 
-2002-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-16  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS: [no log message]
+       * .clcopying, AUTHORS, cfg.mk, doc/Makefile.am,
+       doc/alert-printlist.c, doc/credentials/Makefile.am, doc/errcodes.c,
+       doc/examples/Makefile.am, doc/extract-guile-c-doc.scm,
+       doc/fdl-1.3.texi, doc/gpl-3.0.texi, doc/lgpl-2.1.texi,
+       doc/printlist.c, extra/Makefile.am, extra/gnutls_openssl.c,
+       extra/includes/Makefile.am, extra/includes/gnutls/openssl.h,
+       extra/openssl_compat.c, extra/openssl_compat.h, guile/Makefile.am,
+       guile/modules/Makefile.am, guile/modules/gnutls.in,
+       guile/modules/gnutls/build/enums.scm,
+       guile/modules/gnutls/build/priorities.scm,
+       guile/modules/gnutls/build/smobs.scm,
+       guile/modules/gnutls/build/utils.scm,
+       guile/modules/gnutls/extra.scm,
+       guile/modules/system/documentation/c-snarf.scm,
+       guile/modules/system/documentation/output.scm,
+       guile/pre-inst-guile.in, guile/src/errors.c, guile/src/utils.c,
+       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
+       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
+       guile/tests/openpgp-keys.scm, guile/tests/pkcs-import-export.scm,
+       guile/tests/session-record-port.scm, guile/tests/srp-base64.scm,
+       guile/tests/x509-auth.scm, guile/tests/x509-certificates.scm,
+       lib/auth/anon.c, lib/auth/anon_ecdh.c, lib/auth/dh_common.c,
+       lib/auth/dhe.c, lib/auth/dhe_psk.c, lib/auth/psk.c,
+       lib/auth/psk_passwd.c, lib/auth/rsa.c, lib/auth/rsa_export.c,
+       lib/auth/srp_passwd.c, lib/auth/srp_rsa.c, lib/auth/srp_sb64.c: 
+       Collapse and cleanup copyright information.
 
-2002-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-16  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, src/cli.c, tests/x509_test.c: [no log message]
+       * .clcopying, AUTHORS, ChangeLog, ChangeLog.1, Makefile.am, NEWS,
+       README, README-alpha, THANKS, configure.ac, doc/Makefile.am,
+       doc/alert-printlist.c, doc/credentials/Makefile.am,
+       doc/cyclo/Makefile.am, doc/errcodes.c, doc/examples/Makefile.am,
+       doc/extract-guile-c-doc.scm, doc/fdl-1.3.texi,
+       doc/gnutls-guile.texi, doc/gnutls.texi, doc/gpl-3.0.texi,
+       doc/lgpl-2.1.texi, doc/manpages/Makefile.am, doc/printlist.c,
+       extra/Makefile.am, extra/gnutls_openssl.c,
+       extra/includes/Makefile.am, extra/includes/gnutls/openssl.h,
+       extra/openssl_compat.c, extra/openssl_compat.h, guile/Makefile.am,
+       guile/modules/Makefile.am, guile/modules/gnutls.in,
+       guile/modules/gnutls/build/enums.scm,
+       guile/modules/gnutls/build/priorities.scm,
+       guile/modules/gnutls/build/smobs.scm,
+       guile/modules/gnutls/build/tests.scm,
+       guile/modules/gnutls/build/utils.scm,
+       guile/modules/gnutls/extra.scm,
+       guile/modules/system/documentation/c-snarf.scm,
+       guile/modules/system/documentation/output.scm,
+       guile/pre-inst-guile.in, guile/src/Makefile.am, guile/src/core.c,
+       guile/src/errors.c, guile/src/errors.h,
+       guile/src/make-enum-header.scm, guile/src/make-enum-map.scm,
+       guile/src/make-session-priorities.scm,
+       guile/src/make-smob-header.scm, guile/src/make-smob-types.scm,
+       guile/src/utils.c, guile/src/utils.h, guile/tests/Makefile.am,
+       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
+       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
+       guile/tests/openpgp-keys.scm, guile/tests/pkcs-import-export.scm,
+       guile/tests/priorities.scm, guile/tests/session-record-port.scm,
+       guile/tests/srp-base64.scm, guile/tests/x509-auth.scm,
+       guile/tests/x509-certificates.scm, lib/Makefile.am,
+       lib/accelerated/Makefile.am, lib/accelerated/accelerated.c,
+       lib/accelerated/cryptodev.c, lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/aes-gcm-padlock.c,
+       lib/accelerated/x86/aes-gcm-x86.c,
+       lib/accelerated/x86/aes-padlock.c, lib/accelerated/x86/aes-x86.c,
+       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
+       lib/accelerated/x86/asm/cpuid-x86-64.s,
+       lib/accelerated/x86/asm/cpuid-x86.s,
+       lib/accelerated/x86/hmac-padlock.c,
+       lib/accelerated/x86/sha-padlock.c, lib/accelerated/x86/x86.h,
+       lib/algorithms.h, lib/algorithms/Makefile.am,
+       lib/algorithms/cert_types.c, lib/algorithms/ciphers.c,
+       lib/algorithms/ciphersuites.c, lib/algorithms/ecc.c,
+       lib/algorithms/kx.c, lib/algorithms/mac.c,
+       lib/algorithms/protocols.c, lib/algorithms/publickey.c,
+       lib/algorithms/secparams.c, lib/algorithms/sign.c,
+       lib/auth/Makefile.am, lib/auth/anon.c, lib/auth/anon.h,
+       lib/auth/anon_ecdh.c, lib/auth/cert.c, lib/auth/cert.h,
+       lib/auth/dh_common.c, lib/auth/dh_common.h, lib/auth/dhe.c,
+       lib/auth/dhe_psk.c, lib/auth/ecdh_common.c, lib/auth/ecdh_common.h,
+       lib/auth/psk.c, lib/auth/psk.h, lib/auth/psk_passwd.c,
+       lib/auth/psk_passwd.h, lib/auth/rsa.c, lib/auth/rsa_export.c,
+       lib/auth/srp.c, lib/auth/srp.h, lib/auth/srp_passwd.c,
+       lib/auth/srp_passwd.h, lib/auth/srp_rsa.c, lib/auth/srp_sb64.c,
+       lib/crypto-api.c, lib/crypto-backend.c, lib/crypto-backend.h,
+       lib/crypto.h, lib/debug.c, lib/debug.h, lib/ext/Makefile.am,
+       lib/ext/cert_type.c, lib/ext/cert_type.h, lib/ext/ecc.c,
+       lib/ext/ecc.h, lib/ext/max_record.c, lib/ext/max_record.h,
+       lib/ext/safe_renegotiation.c, lib/ext/safe_renegotiation.h,
+       lib/ext/server_name.c, lib/ext/server_name.h,
+       lib/ext/session_ticket.c, lib/ext/session_ticket.h,
+       lib/ext/signature.c, lib/ext/signature.h, lib/ext/srp.c,
+       lib/ext/srp.h, lib/extras/Makefile.am, lib/gnutls.pc.in,
+       lib/gnutls_alert.c, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
+       lib/gnutls_auth.h, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
+       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
+       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
+       lib/gnutls_compress.c, lib/gnutls_compress.h,
+       lib/gnutls_constate.c, lib/gnutls_constate.h, lib/gnutls_datum.c,
+       lib/gnutls_datum.h, lib/gnutls_db.c, lib/gnutls_db.h,
+       lib/gnutls_dh.c, lib/gnutls_dh.h, lib/gnutls_dh_primes.c,
+       lib/gnutls_dtls.h, lib/gnutls_ecc.c, lib/gnutls_errors.c,
+       lib/gnutls_errors.h, lib/gnutls_extensions.c,
+       lib/gnutls_extensions.h, lib/gnutls_global.c, lib/gnutls_global.h,
+       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
+       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_helper.c,
+       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
+       lib/gnutls_mbuffers.h, lib/gnutls_mem.c, lib/gnutls_mem.h,
+       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_num.c,
+       lib/gnutls_num.h, lib/gnutls_pcert.c, lib/gnutls_pk.h,
+       lib/gnutls_priority.c, lib/gnutls_psk.c, lib/gnutls_record.c,
+       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
+       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
+       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
+       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_srp.c,
+       lib/gnutls_srp.h, lib/gnutls_state.h, lib/gnutls_str.c,
+       lib/gnutls_str.h, lib/gnutls_str_array.h,
+       lib/gnutls_supplemental.c, lib/gnutls_supplemental.h,
+       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
+       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/hash.c,
+       lib/includes/Makefile.am, lib/includes/gnutls/abstract.h,
+       lib/includes/gnutls/compat.h, lib/includes/gnutls/crypto.h,
+       lib/includes/gnutls/dtls.h, lib/includes/gnutls/gnutlsxx.h,
+       lib/includes/gnutls/openpgp.h, lib/includes/gnutls/pkcs11.h,
+       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
+       lib/libgnutls.map, lib/libgnutlsxx.map, lib/locks.c,
+       lib/minitasn1/Makefile.am, lib/minitasn1/coding.c,
+       lib/minitasn1/decoding.c, lib/minitasn1/element.c,
+       lib/minitasn1/element.h, lib/minitasn1/errors.c,
+       lib/minitasn1/gstr.c, lib/minitasn1/gstr.h, lib/minitasn1/int.h,
+       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
+       lib/minitasn1/parser_aux.h, lib/minitasn1/structure.c,
+       lib/minitasn1/structure.h, lib/minitasn1/version.c,
+       lib/nettle/Makefile.am, lib/nettle/cipher.c, lib/nettle/ecc_free.c,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
+       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_mulmod_timing.c,
+       lib/nettle/ecc_points.c, lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_check_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/ecc_verify_hash.c, lib/nettle/egd.c, lib/nettle/init.c,
+       lib/nettle/mac.c, lib/nettle/mpi.c, lib/nettle/pk.c,
+       lib/nettle/rnd.c, lib/opencdk/Makefile.am, lib/opencdk/armor.c,
+       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/hash.c,
+       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
+       lib/opencdk/main.h, lib/opencdk/misc.c, lib/opencdk/new-packet.c,
+       lib/opencdk/opencdk.h, lib/opencdk/packet.h, lib/opencdk/pubkey.c,
+       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
+       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
+       lib/opencdk/stream.h, lib/opencdk/types.h,
+       lib/opencdk/write-packet.c, lib/openpgp/Makefile.am,
+       lib/openpgp/compat.c, lib/openpgp/extras.c,
+       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
+       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
+       lib/random.c, lib/random.h, lib/system.c, lib/system_override.c,
+       lib/x509/Makefile.am, lib/x509/common.c, lib/x509/common.h,
+       lib/x509/crl.c, lib/x509/crl_write.c, lib/x509/crq.c,
+       lib/x509/dn.c, lib/x509/extensions.c, lib/x509/key_decode.c,
+       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/output.c,
+       lib/x509/pbkdf2-sha1.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
+       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
+       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818_hostname.c,
+       lib/x509/sign.c, lib/x509/verify-high.c, lib/x509/verify-high.h,
+       lib/x509/x509_int.h, lib/x509/x509_write.c, lib/x509_b64.c,
+       lib/x509_b64.h, m4/gcc.m4, m4/guile.m4, m4/hooks.m4, po/cs.po.in,
+       po/de.po.in, po/fr.po.in, po/it.po.in, po/ms.po.in, po/nl.po.in,
+       po/pl.po.in, po/sv.po.in, po/uk.po.in, po/zh_CN.po.in,
+       src/Makefile.am, src/benchmark-cipher.c, src/benchmark-tls.c,
+       src/benchmark.c, src/certtool-cfg.c, src/certtool-common.c,
+       src/certtool.c, src/cli.c, src/common.c, src/crywrap/Makefile.am,
+       src/dh.c, src/p11common.c, src/p11tool.c, src/pkcs11.c, src/psk.c,
+       src/serv.c, src/srptool.c, src/tests.c, src/tls_test.c,
+       src/udp-serv.c, tests/Makefile.am, tests/anonself.c,
+       tests/certder.c, tests/certificate_set_x509_crl.c,
+       tests/certuniqueid.c, tests/chainverify.c, tests/crq_apis.c,
+       tests/crq_key_id.c, tests/cve-2008-4989.c, tests/cve-2009-1415.c,
+       tests/cve-2009-1416.c, tests/dhepskself.c, tests/dn.c, tests/dn2.c,
+       tests/dsa/Makefile.am, tests/dsa/testdsa, tests/ecdsa/Makefile.am,
+       tests/ecdsa/ecdsa, tests/gc.c, tests/hostname-check.c,
+       tests/infoaccess.c, tests/init_roundtrip.c,
+       tests/key-id/Makefile.am, tests/key-id/README, tests/key-id/key-id,
+       tests/mini-deflate.c, tests/mini-eagain-dtls.c,
+       tests/mini-eagain.c, tests/mini-x509-rehandshake.c,
+       tests/mini-x509.c, tests/mini.c, tests/moredn.c, tests/mpi.c,
+       tests/nist-pkits/pkits, tests/nist-pkits/pkits_crl,
+       tests/nist-pkits/pkits_crt, tests/nist-pkits/pkits_pkcs12,
+       tests/nist-pkits/pkits_smime, tests/nul-in-x509-names.c,
+       tests/openpgp-certs/Makefile.am, tests/openpgp-certs/testcerts,
+       tests/openpgp-certs/testselfsigs, tests/openpgp-keyring.c,
+       tests/openpgpself.c, tests/openssl.c, tests/parse_ca.c,
+       tests/pathlen/Makefile.am, tests/pathlen/pathlen,
+       tests/pgps2kgnu.c, tests/pkcs1-padding/Makefile.am,
+       tests/pkcs1-padding/pkcs1-pad, tests/pkcs12-decode/Makefile.am,
+       tests/pkcs12-decode/pkcs12, tests/pkcs12_encode.c,
+       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c,
+       tests/pkcs8-decode/Makefile.am, tests/pkcs8-decode/pkcs8,
+       tests/pskself.c, tests/resume.c, tests/rfc2253-escape-test,
+       tests/rng-fork.c, tests/rsa-encrypt-decrypt.c,
+       tests/rsa-md5-collision/Makefile.am,
+       tests/rsa-md5-collision/README,
+       tests/rsa-md5-collision/rsa-md5-collision,
+       tests/safe-renegotiation/Makefile.am,
+       tests/safe-renegotiation/srn0.c, tests/safe-renegotiation/srn1.c,
+       tests/safe-renegotiation/srn2.c, tests/safe-renegotiation/srn3.c,
+       tests/safe-renegotiation/srn4.c, tests/safe-renegotiation/srn5.c,
+       tests/scripts/Makefile.am, tests/set_pkcs12_cred.c,
+       tests/setcredcrash.c, tests/sha2/Makefile.am, tests/sha2/sha2,
+       tests/sha2/sha2-dsa, tests/simple.c, tests/slow/Makefile.am,
+       tests/slow/gendh.c, tests/slow/keygen.c, tests/suite/Makefile.am,
+       tests/suite/chain, tests/suite/eagain, tests/suite/testcompat,
+       tests/suite/testcompat-main, tests/suite/testsrn,
+       tests/suppressions.valgrind, tests/userid/Makefile.am,
+       tests/userid/userid, tests/userid/userid.pem, tests/utils.c,
+       tests/utils.h, tests/x509_altname.c, tests/x509cert-tl.c,
+       tests/x509cert.c, tests/x509dn.c, tests/x509self.c,
+       tests/x509sign-verify.c: Run 'make update-copyright'.
 
-2002-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-16  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, lib/gnutls_db.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_rsa_export.c: Corrected bug in gnutls_dh_params_set().
-       Corrected bug in session resuming code of server side.
+       * cfg.mk: Ignore pkg.m4.  Copyright fixes.
 
-2002-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/ext_cert_type.c, lib/ext_max_record.c, libextra/ext_srp.c: 
-       some cleanups in the extension parsing
+       * lib/gnutls_x509.c: improved doc
 
-2002-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Simon Josefsson <simon@josefsson.org>
 
-       * acconfig.h: [no log message]
+       * lib/gnutls_pk.c: Fix memory leak.
 
-2002-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc: Added Simon Josefsson's patch for gdoc. Now gdoc
-       supports texinfo output.
+       * doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/cha-intro-tls.texi: properly spread authentication and
+       credentials doc.
 
-2002-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, buildconf, configure.in, lib/gnutls.h.in.in,
-       lib/gnutls_global.c, libextra/gnutls_extra.c, libmcrypt.m4: changes
-       for autoconf 2.50
+       * doc/cha-gtls-app.texi: updated text
 
-2002-09-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/certificate.tex, doc/tex/examples.tex,
-       doc/tex/handshake.tex, doc/tex/library.tex, doc/tex/x509.tex: [no
-       log message]
+       * cfg.mk: no longer use texi2html. makeinfo --html has decent
+       output.
 
-2002-09-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, src/serv.c: Removed dependency on libgdbm
-       library.
+       * doc/errcodes.c: print numeric error codes everywhere.
 
-2002-09-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_dhe.c, lib/auth_rsa_export.c, lib/gnutls_algorithms.c,
-       lib/gnutls_compress_int.c, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_mem.c, lib/gnutls_mem.h,
-       lib/gnutls_str.c, lib/gnutls_x509.c, lib/x509_xml.c,
-       libextra/gnutls_openpgp.c, libextra/gnutls_srp.c: Some fixes for the
-       used realloc() function. Now we have gnutls_realloc_fast() which
-       frees the given pointer if the new allocation failed.
+       * doc/cha-programs.texi: SECURE256 -> SECURE192
 
-2002-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/tex/.cvsignore, lib/gnutls_num.h,
-       lib/gnutls_str.c: updated string functions
+       * doc/alert-printlist.c, doc/scripts/gdoc,
+       doc/scripts/split-texi.pl, doc/texinfo.css: updated css for better
+       html output.
 
-2002-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * lib/includes/gnutls/gnutls.h.in: better indent
+       gnutls_certificate_set_x509_simple_pkcs12_file to allow them being
+       found by doc script.
 
-2002-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_rsa_export.c: [no log message]
+       * doc/gnutls.texi, doc/scripts/gdoc, doc/scripts/split-texi.pl: 
+       caption is set on enumerations in texinfo. Unfortunately they are
+       not visible to the pdf output due to a probable bug in texinfo.
 
-2002-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/certificate.tex, doc/tex/ciphers.tex,
-       doc/tex/ex-rfc2818.tex, doc/tex/examples.tex, doc/tex/layers.eps,
-       doc/tex/layers.tex, doc/tex/memory.tex: [no log message]
+       * doc/cha-cert-auth2.texi: Added pkcs12_simple function.
 
-2002-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/x509cert.xml.tex, src/common.c: [no log message]
+       * .gitignore: more files to ignore
 
-2002-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: last changes for 0.5.6 release
+       * gl/Makefile.am, gl/argp-parse.c, gl/inet_ntop.c,
+       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
+       gl/m4/ld-version-script.m4, gl/m4/printf.m4, gl/m4/stdlib_h.m4,
+       gl/m4/usleep.m4, gl/select.c, gl/stdlib.in.h, gl/tests/Makefile.am,
+       gl/tests/ignore-value.h, gl/tests/pipe.c, gl/tests/test-init.sh,
+       gl/tests/test-usleep.c, gl/usleep.c, maint.mk, src/udp-serv.c: 
+       usleep() is no longer used.
 
-2002-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * doc/cha-intro-tls.texi, doc/errcodes.c: documentation updates
 
-2002-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/pgpcert.xml.tex, doc/tex/x509cert.xml.tex,
-       lib/x509_xml.c, libextra/gnutls_openpgp.c, src/common.c,
-       src/gnutls-http-serv: added versioning in the XML output of
-       certificate functions.
+       * doc/scripts/gdoc: improved gdoc output for function parameters.
 
-2002-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/gnutls.tex, doc/tex/intro.tex,
-       doc/tex/library.tex: [no log message]
+       * lib/algorithms/ciphers.c, lib/algorithms/mac.c,
+       lib/crypto-backend.h, lib/gnutls_cipher_int.c,
+       lib/gnutls_cipher_int.h, lib/gnutls_hash_int.c,
+       lib/gnutls_hash_int.h, lib/nettle/cipher.c, lib/nettle/mac.c: Only
+       list algorithms if they are implemented.
 
-2002-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/gnutls.tex, doc/tex/internals.eps,
-       doc/tex/library.tex: [no log message]
+       * lib/algorithms/ciphers.c: reordered ciphers to place on top the
+       most used.
 
-2002-09-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, doc/tex/Makefile.am, doc/tex/certificate.tex,
-       doc/tex/x509-1.eps, lib/gnutls_global.h: [no log message]
+       * .gitignore, doc/cha-gtls-app.texi, doc/cha-gtls-examples.texi,
+       doc/cha-programs.texi, doc/examples/Makefile.am,
+       doc/examples/print-ciphersuites.c: Documented ways to list the
+       enabled ciphersuites.
 
-2002-09-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/certificate.tex,
-       doc/tex/ciphers.tex, doc/tex/ciphersuites.tex, doc/tex/gnutls.tex,
-       doc/tex/intro.tex, doc/tex/layers.tex, doc/tex/library.tex,
-       doc/tex/openpgp.tex, doc/tex/tlsintro.tex, doc/tex/x509.tex: 
-       reorganized documentation
+       * doc/cha-gtls-app.texi: updated
 
-2002-09-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/Makefile, tests/Makefile.am, tests/Makefile.in: [no log
-       message]
+       * doc/cha-gtls-app.texi: documentation update
 
-2002-09-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/test22.pem: [no log message]
+       * NEWS, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
+       lib/libgnutls.map: Added gnutls_session_resumption_requested().
 
-2002-09-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, configure.in, tests/Makefile, tests/Makefile.am,
-       tests/Makefile.in, tests/ca.pem, tests/test1.pem, tests/test10.pem,
-       tests/test13.pem, tests/test2.pem, tests/test23.pem,
-       tests/test24.pem, tests/test26.pem, tests/test3.pem,
-       tests/x509_test.c: Added more tests for the X.509 certificate
-       validation. These tests are now only included in the CVS not the
-       distribution.
+       * NEWS: updated
 
-2002-09-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/auth_srp.c: [no log message]
+       * lib/auth/ecdh_common.c: avoid allocating a privkey param for the
+       public key.
 
-2002-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * lib/nettle/ecc_shared_secret.c: corrected issue in ECDH key
+       generation.  This issue prevented an ECDH key that was smaller than
+       the prime from being correctly aligned.
 
-2002-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_extensions.c, lib/gnutls_int.h: Corrected
-       extension type checks which used an 8 bit extension size, instead of
-       16 bits.
+       * lib/gnutls_alert.c: better handle alert for
+       GNUTLS_E_PREMATURE_TERMINATION
 
-2002-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/auth_srp.c, libextra/gnutls_srp.c: Corrected the SRP 'u'
-       generation, and the size part of 's' changed to 8bits.
+       * lib/gnutls_record.c: do not absorb error message
 
-2002-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/gnutls.h.in.in, lib/gnutls_anon_cred.c,
-       lib/gnutls_auth.c, lib/gnutls_cert.c, lib/gnutls_handshake.c,
-       lib/gnutls_ui.c, lib/gnutls_x509.c, libextra/auth_srp.c,
-       libextra/auth_srp.h, libextra/auth_srp_passwd.c,
-       libextra/ext_srp.c, libextra/gnutls_extra.h,
-       libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h,
-       libextra/gnutls_srp.c, src/cli.c, src/serv.c, src/tests.c,
-       src/tls_test.c: [no log message]
+       * NEWS, lib/nettle/ecc_projective_check_point.c: Eliminated memory
+       leak in ecc_projective_check_point().
 
-2002-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, THANKS, configure.in, libextra/ext_srp.c: [no log message]
+       * cross.mk: updated
 
-2002-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/auth_srp.c: corrected the SRP key exchange (bugs pointed
-       out by D. Taylor)
+       * lib/includes/gnutls/x509.h, lib/x509/common.c, lib/x509/dn.c: 
+       gnutls_x509_dn_oid_name() was extended with a flags option that
+       accepts currently GNUTLS_X509_DN_OID_RETURN_OID or 0.
 
-2002-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/ext_cert_type.c, lib/gnutls_int.h, lib/gnutls_x509.c: 
-       corrected the cert_type extension. (bug pointed out by D. Taylor)
+       * doc/cha-bib.texi, doc/cha-cert-auth.texi, doc/latex/gnutls.bib,
+       lib/includes/gnutls/compat.h, lib/x509/crl.c, lib/x509/dn.c,
+       lib/x509/x509.c: Added discussion of distinguished names.
 
-2002-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_priority.c, lib/gnutls_priority.h: gnutls_list replaced
-       by const int*
+       * doc/cha-cert-auth2.texi: describe gnutls_privkey_import_ext in
+       more detail.
 
-2002-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * NEWS, lib/includes/gnutls/x509.h, lib/libgnutls.map,
+       lib/x509/common.c, lib/x509/common.h, lib/x509/dn.c: Added
+       gnutls_x509_dn_oid_name().
 
-2002-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/appendix.tex, doc/tex/cover.tex.in,
-       doc/tex/gnutls.tex, doc/tex/handshake.tex, tests/Makefile.am: last
-       changes for 0.5.5 release
+       * doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi: discuss the change
+       in Diffie-Hellman parameters.
 
-2002-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-02.txt: [no log message]
+       * doc/cha-gtls-app.texi, lib/gnutls_priority.c: Defined more
+       precisely the SECURE levels.
 
-2002-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi: updated for
+       pkg-config autoconf macro and added gnutls_pubkey_encrypt_data.
 
-2002-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, configure.in: [no log message]
+       * lib/x509/x509.c: updated descriptions
 
-2002-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex4.tex,
-       doc/tex/serv-export.tex, doc/tex/serv-srp.tex, doc/tex/serv1.tex,
-       doc/tex/srp1.tex, lib/gnutls.h.in.in, lib/gnutls_int_compat.c,
-       lib/gnutls_state.c, lib/gnutls_x509.c, lib/x509_extensions.c,
-       libextra/gnutls_openssl.c, src/cli.c, src/serv.c, src/tls_test.c: 
-       [no log message]
+       * lib/x509/x509.c: removed not applicable comments.
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/programs.tex: [no log message]
+       * NEWS, lib/gnutls_pubkey.c, lib/includes/gnutls/abstract.h,
+       lib/libgnutls.map, tests/Makefile.am, tests/rsa-encrypt-decrypt.c: 
+       Added gnutls_pubkey_encrypt_data().
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.c: [no log message]
+       * configure.ac: more gcc warnings to ignore
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/ex4.tex, doc/tex/serv-export.tex, doc/tex/serv-srp.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex: corrected bugs in examples.
+       * src/serv.c, src/udp-serv.c, src/udp-serv.h: tcp and udp server are
+       now void functions.
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/extra.h, lib/gnutls.h.in.in,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth_int.h,
-       lib/gnutls_cert.c, lib/gnutls_handshake.c, lib/gnutls_int_compat.c,
-       lib/gnutls_record.c, lib/x509_b64.c, libextra/gnutls_openssl.c,
-       libextra/gnutls_srp.c, src/tests.c: more cleanups
+       * NEWS, src/certtool.c: --outder option works for public keys.
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/auth.tex, doc/tex/ex1.tex,
-       doc/tex/ex2.tex, doc/tex/ex4.tex, doc/tex/examples.tex,
-       doc/tex/gnutls.tex, doc/tex/serv-export.tex, doc/tex/serv-srp.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex: Updated documentation and added
-       more server examples.
+       * NEWS, src/certtool.c: certtool --outder option now works for
+       private keys as well.
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_int.h, lib/gnutls_int_compat.c,
-       lib/gnutls_ui.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       lib/x509_b64.c, lib/x509_b64.h, tests/x509_test.c: Updated the
-       base64 encoding/decoding functions.
+       * lib/accelerated/x86/Makefile.am: removed trailing slash.
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/gnutls_cert.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c,
-       lib/gnutls_state.c, lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
-       libextra/gnutls_openpgp.c: several clean ups
+       * THANKS: updated thanks
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/appendix.tex, doc/tex/gnutls.tex,
-       doc/tex/howto.tex, doc/tex/macros.tex, doc/tex/pgpcert.xml.tex,
-       doc/tex/x509.tex, doc/tex/x509cert.xml.tex: Updated documentation to
-       include examples of XML certificates.
+       * tests/slow/Makefile.am: remove trailing slash.
 
-2002-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_state.c, src/common.c: [no log message]
+       * GNUmakefile, build-aux/config.rpath, build-aux/pmccabe2html,
+       build-aux/snippet/arg-nonnull.h, build-aux/snippet/c++defs.h,
+       build-aux/snippet/warn-on-use.h, build-aux/useless-if-before-free,
+       build-aux/vc-list-files, gl/Makefile.am, gl/accept.c, gl/alloca.c,
+       gl/alloca.in.h, gl/alphasort.c, gl/argp-ba.c, gl/argp-eexst.c,
+       gl/argp-fmtstream.c, gl/argp-fmtstream.h, gl/argp-fs-xinl.c,
+       gl/argp-help.c, gl/argp-namefrob.h, gl/argp-parse.c, gl/argp-pin.c,
+       gl/argp-pv.c, gl/argp-pvh.c, gl/argp-xinl.c, gl/argp.h,
+       gl/arpa_inet.in.h, gl/asnprintf.c, gl/asprintf.c,
+       gl/basename-lgpl.c, gl/bind.c, gl/byteswap.in.h, gl/c-ctype.c,
+       gl/c-ctype.h, gl/close.c, gl/closedir.c, gl/connect.c,
+       gl/dirent-private.h, gl/dirent.in.h, gl/dirname-lgpl.c,
+       gl/dirname.h, gl/dosname.h, gl/errno.in.h, gl/error.c, gl/error.h,
+       gl/fd-hook.c, gl/fd-hook.h, gl/filename.h, gl/float+.h, gl/float.c,
+       gl/float.in.h, gl/fpucw.h, gl/frexp.c, gl/frexpl.c, gl/fseek.c,
+       gl/fseeko.c, gl/fseterr.c, gl/fseterr.h, gl/fstat.c, gl/ftell.c,
+       gl/ftello.c, gl/gai_strerror.c, gl/getaddrinfo.c, gl/getdelim.c,
+       gl/getline.c, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c,
+       gl/getopt_int.h, gl/getpass.c, gl/getpass.h, gl/getpeername.c,
+       gl/getsubopt.c, gl/gettext.h, gl/gettime.c, gl/gettimeofday.c,
+       gl/inet_ntop.c, gl/inet_pton.c, gl/intprops.h, gl/isnan.c,
+       gl/isnand-nolibm.h, gl/isnand.c, gl/isnanf-nolibm.h, gl/isnanf.c,
+       gl/isnanl-nolibm.h, gl/isnanl.c, gl/itold.c, gl/listen.c,
+       gl/lseek.c, gl/m4/00gnulib.m4, gl/m4/alloca.m4, gl/m4/alphasort.m4,
+       gl/m4/argp.m4, gl/m4/arpa_inet_h.m4, gl/m4/byteswap.m4,
+       gl/m4/clock_time.m4, gl/m4/close.m4, gl/m4/closedir.m4,
+       gl/m4/codeset.m4, gl/m4/dirent_h.m4, gl/m4/dirname.m4,
+       gl/m4/double-slash-root.m4, gl/m4/dup2.m4, gl/m4/eealloc.m4,
+       gl/m4/environ.m4, gl/m4/errno_h.m4, gl/m4/error.m4,
+       gl/m4/exponentd.m4, gl/m4/exponentf.m4, gl/m4/exponentl.m4,
+       gl/m4/extensions.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4,
+       gl/m4/fdopen.m4, gl/m4/float_h.m4, gl/m4/fpieee.m4, gl/m4/frexp.m4,
+       gl/m4/frexpl.m4, gl/m4/fseek.m4, gl/m4/fseeko.m4, gl/m4/fstat.m4,
+       gl/m4/ftell.m4, gl/m4/ftello.m4, gl/m4/ftruncate.m4, gl/m4/func.m4,
+       gl/m4/getaddrinfo.m4, gl/m4/getcwd.m4, gl/m4/getdelim.m4,
+       gl/m4/getline.m4, gl/m4/getopt.m4, gl/m4/getpagesize.m4,
+       gl/m4/getpass.m4, gl/m4/getsubopt.m4, gl/m4/gettext.m4,
+       gl/m4/gettime.m4, gl/m4/gettimeofday.m4, gl/m4/glibc2.m4,
+       gl/m4/glibc21.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/hostent.m4,
+       gl/m4/iconv.m4, gl/m4/include_next.m4, gl/m4/inet_ntop.m4,
+       gl/m4/inet_pton.m4, gl/m4/intdiv0.m4, gl/m4/intl.m4,
+       gl/m4/intldir.m4, gl/m4/intlmacosx.m4, gl/m4/intmax.m4,
+       gl/m4/intmax_t.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4,
+       gl/m4/inttypes_h.m4, gl/m4/ioctl.m4, gl/m4/isnand.m4,
+       gl/m4/isnanf.m4, gl/m4/isnanl.m4, gl/m4/largefile.m4,
+       gl/m4/lcmessage.m4, gl/m4/ld-output-def.m4,
+       gl/m4/ld-version-script.m4, gl/m4/ldexpl.m4, gl/m4/lib-ld.m4,
+       gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/m4/lock.m4,
+       gl/m4/longlong.m4, gl/m4/lseek.m4, gl/m4/lstat.m4, gl/m4/malloc.m4,
+       gl/m4/malloca.m4, gl/m4/manywarnings.m4, gl/m4/math_h.m4,
+       gl/m4/memchr.m4, gl/m4/memmem.m4, gl/m4/mempcpy.m4,
+       gl/m4/minmax.m4, gl/m4/mmap-anon.m4, gl/m4/mode_t.m4,
+       gl/m4/msvc-inval.m4, gl/m4/msvc-nothrow.m4, gl/m4/multiarch.m4,
+       gl/m4/netdb_h.m4, gl/m4/netinet_in_h.m4, gl/m4/nls.m4,
+       gl/m4/nocrash.m4, gl/m4/open.m4, gl/m4/opendir.m4,
+       gl/m4/pathmax.m4, gl/m4/perror.m4, gl/m4/pipe.m4, gl/m4/po.m4,
+       gl/m4/printf-frexp.m4, gl/m4/printf-frexpl.m4,
+       gl/m4/printf-posix.m4, gl/m4/printf.m4, gl/m4/progtest.m4,
+       gl/m4/putenv.m4, gl/m4/rawmemchr.m4, gl/m4/read-file.m4,
+       gl/m4/readdir.m4, gl/m4/realloc.m4, gl/m4/scandir.m4,
+       gl/m4/select.m4, gl/m4/servent.m4, gl/m4/setenv.m4,
+       gl/m4/signal_h.m4, gl/m4/signbit.m4, gl/m4/size_max.m4,
+       gl/m4/sleep.m4, gl/m4/snprintf.m4, gl/m4/socketlib.m4,
+       gl/m4/sockets.m4, gl/m4/socklen.m4, gl/m4/sockpfaf.m4,
+       gl/m4/ssize_t.m4, gl/m4/stat.m4, gl/m4/stdalign.m4,
+       gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4,
+       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdio_h.m4,
+       gl/m4/stdlib_h.m4, gl/m4/strcase.m4, gl/m4/strchrnul.m4,
+       gl/m4/strdup.m4, gl/m4/strerror.m4, gl/m4/strerror_r.m4,
+       gl/m4/string_h.m4, gl/m4/strings_h.m4, gl/m4/strndup.m4,
+       gl/m4/strnlen.m4, gl/m4/strverscmp.m4, gl/m4/symlink.m4,
+       gl/m4/sys_ioctl_h.m4, gl/m4/sys_select_h.m4, gl/m4/sys_socket_h.m4,
+       gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4, gl/m4/sys_types_h.m4,
+       gl/m4/sys_uio_h.m4, gl/m4/sysexits.m4, gl/m4/thread.m4,
+       gl/m4/threadlib.m4, gl/m4/time_h.m4, gl/m4/time_r.m4,
+       gl/m4/timespec.m4, gl/m4/uintmax_t.m4, gl/m4/ungetc.m4,
+       gl/m4/unistd_h.m4, gl/m4/usleep.m4, gl/m4/valgrind-tests.m4,
+       gl/m4/vasnprintf.m4, gl/m4/vasprintf.m4, gl/m4/version-etc.m4,
+       gl/m4/vfprintf-posix.m4, gl/m4/visibility.m4,
+       gl/m4/vprintf-posix.m4, gl/m4/vsnprintf.m4, gl/m4/warn-on-use.m4,
+       gl/m4/warnings.m4, gl/m4/wchar_h.m4, gl/m4/wchar_t.m4,
+       gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/m4/yield.m4, gl/malloc.c,
+       gl/math.in.h, gl/memchr.c, gl/memmem.c, gl/mempcpy.c, gl/minmax.h,
+       gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c,
+       gl/msvc-nothrow.h, gl/netdb.in.h, gl/netinet_in.in.h, gl/opendir.c,
+       gl/override/m4/valgrind-tests.m4.diff, gl/printf-args.c,
+       gl/printf-args.h, gl/printf-frexp.c, gl/printf-frexp.h,
+       gl/printf-frexpl.c, gl/printf-frexpl.h, gl/printf-parse.c,
+       gl/printf-parse.h, gl/progname.c, gl/progname.h, gl/rawmemchr.c,
+       gl/read-file.c, gl/read-file.h, gl/readdir.c, gl/realloc.c,
+       gl/recv.c, gl/recvfrom.c, gl/scandir.c, gl/select.c, gl/send.c,
+       gl/sendto.c, gl/setsockopt.c, gl/shutdown.c, gl/signal.in.h,
+       gl/signbitd.c, gl/signbitf.c, gl/signbitl.c, gl/size_max.h,
+       gl/sleep.c, gl/snprintf.c, gl/socket.c, gl/sockets.c, gl/sockets.h,
+       gl/stdalign.in.h, gl/stdarg.in.h, gl/stdbool.in.h, gl/stddef.in.h,
+       gl/stdint.in.h, gl/stdio-impl.h, gl/stdio.in.h, gl/stdlib.in.h,
+       gl/str-two-way.h, gl/strcasecmp.c, gl/strchrnul.c, gl/strdup.c,
+       gl/strerror-override.c, gl/strerror-override.h, gl/strerror.c,
+       gl/string.in.h, gl/strings.in.h, gl/stripslash.c, gl/strncasecmp.c,
+       gl/strndup.c, gl/strnlen.c, gl/strverscmp.c, gl/sys_select.in.h,
+       gl/sys_socket.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
+       gl/sys_types.in.h, gl/sys_uio.in.h, gl/sysexits.in.h,
+       gl/tests/Makefile.am, gl/tests/binary-io.h, gl/tests/dup2.c,
+       gl/tests/fcntl.in.h, gl/tests/fdopen.c, gl/tests/getcwd-lgpl.c,
+       gl/tests/getpagesize.c, gl/tests/glthread/lock.c,
+       gl/tests/glthread/lock.h, gl/tests/glthread/thread.c,
+       gl/tests/glthread/thread.h, gl/tests/glthread/threadlib.c,
+       gl/tests/glthread/yield.h, gl/tests/ignore-value.h,
+       gl/tests/infinity.h, gl/tests/init.sh, gl/tests/inttypes.in.h,
+       gl/tests/ioctl.c, gl/tests/lstat.c, gl/tests/macros.h,
+       gl/tests/malloca.c, gl/tests/malloca.h, gl/tests/minus-zero.h,
+       gl/tests/nan.h, gl/tests/open.c, gl/tests/pathmax.h,
+       gl/tests/perror.c, gl/tests/pipe.c, gl/tests/putenv.c,
+       gl/tests/same-inode.h, gl/tests/setenv.c, gl/tests/signature.h,
+       gl/tests/stat.c, gl/tests/strerror_r.c, gl/tests/symlink.c,
+       gl/tests/sys_ioctl.in.h, gl/tests/test-accept.c,
+       gl/tests/test-alloca-opt.c, gl/tests/test-argp-2.sh,
+       gl/tests/test-argp.c, gl/tests/test-arpa_inet.c,
+       gl/tests/test-binary-io.c, gl/tests/test-binary-io.sh,
+       gl/tests/test-bind.c, gl/tests/test-byteswap.c,
+       gl/tests/test-c-ctype.c, gl/tests/test-close.c,
+       gl/tests/test-connect.c, gl/tests/test-dirent.c,
+       gl/tests/test-dup2.c, gl/tests/test-environ.c,
+       gl/tests/test-errno.c, gl/tests/test-fcntl-h.c,
+       gl/tests/test-fdopen.c, gl/tests/test-fgetc.c,
+       gl/tests/test-float.c, gl/tests/test-fprintf-posix.h,
+       gl/tests/test-fputc.c, gl/tests/test-fread.c,
+       gl/tests/test-frexp.c, gl/tests/test-frexpl.c,
+       gl/tests/test-fseek.c, gl/tests/test-fseeko.c,
+       gl/tests/test-fseeko3.c, gl/tests/test-fseeko4.c,
+       gl/tests/test-fseterr.c, gl/tests/test-fstat.c,
+       gl/tests/test-ftell.c, gl/tests/test-ftell3.c,
+       gl/tests/test-ftello.c, gl/tests/test-ftello3.c,
+       gl/tests/test-ftello4.c, gl/tests/test-ftruncate.c,
+       gl/tests/test-func.c, gl/tests/test-fwrite.c,
+       gl/tests/test-getaddrinfo.c, gl/tests/test-getcwd-lgpl.c,
+       gl/tests/test-getdelim.c, gl/tests/test-getline.c,
+       gl/tests/test-getopt.c, gl/tests/test-getopt.h,
+       gl/tests/test-getopt_long.h, gl/tests/test-getpeername.c,
+       gl/tests/test-gettimeofday.c, gl/tests/test-ignore-value.c,
+       gl/tests/test-inet_ntop.c, gl/tests/test-inet_pton.c,
+       gl/tests/test-init.sh, gl/tests/test-intprops.c,
+       gl/tests/test-inttypes.c, gl/tests/test-ioctl.c,
+       gl/tests/test-isnand-nolibm.c, gl/tests/test-isnand.h,
+       gl/tests/test-isnanf-nolibm.c, gl/tests/test-isnanf.h,
+       gl/tests/test-isnanl-nolibm.c, gl/tests/test-isnanl.h,
+       gl/tests/test-listen.c, gl/tests/test-lock.c,
+       gl/tests/test-lstat.c, gl/tests/test-lstat.h,
+       gl/tests/test-malloc-gnu.c, gl/tests/test-malloca.c,
+       gl/tests/test-math.c, gl/tests/test-memchr.c,
+       gl/tests/test-netdb.c, gl/tests/test-netinet_in.c,
+       gl/tests/test-open.c, gl/tests/test-open.h,
+       gl/tests/test-pathmax.c, gl/tests/test-perror.c,
+       gl/tests/test-perror2.c, gl/tests/test-pipe.c,
+       gl/tests/test-printf-frexp.c, gl/tests/test-printf-frexpl.c,
+       gl/tests/test-printf-posix.h, gl/tests/test-rawmemchr.c,
+       gl/tests/test-read-file.c, gl/tests/test-recv.c,
+       gl/tests/test-recvfrom.c, gl/tests/test-select-fd.c,
+       gl/tests/test-select-stdin.c, gl/tests/test-select.c,
+       gl/tests/test-select.h, gl/tests/test-send.c,
+       gl/tests/test-sendto.c, gl/tests/test-setenv.c,
+       gl/tests/test-setsockopt.c, gl/tests/test-shutdown.c,
+       gl/tests/test-signal-h.c, gl/tests/test-signbit.c,
+       gl/tests/test-sleep.c, gl/tests/test-snprintf.c,
+       gl/tests/test-sockets.c, gl/tests/test-stat.c,
+       gl/tests/test-stat.h, gl/tests/test-stdalign.c,
+       gl/tests/test-stdbool.c, gl/tests/test-stddef.c,
+       gl/tests/test-stdint.c, gl/tests/test-stdio.c,
+       gl/tests/test-stdlib.c, gl/tests/test-strchrnul.c,
+       gl/tests/test-strerror.c, gl/tests/test-strerror_r.c,
+       gl/tests/test-string.c, gl/tests/test-strings.c,
+       gl/tests/test-strnlen.c, gl/tests/test-strverscmp.c,
+       gl/tests/test-symlink.c, gl/tests/test-symlink.h,
+       gl/tests/test-sys_ioctl.c, gl/tests/test-sys_select.c,
+       gl/tests/test-sys_socket.c, gl/tests/test-sys_stat.c,
+       gl/tests/test-sys_time.c, gl/tests/test-sys_types.c,
+       gl/tests/test-sys_uio.c, gl/tests/test-sys_wait.h,
+       gl/tests/test-sysexits.c, gl/tests/test-thread_create.c,
+       gl/tests/test-thread_self.c, gl/tests/test-time.c,
+       gl/tests/test-u64.c, gl/tests/test-unistd.c,
+       gl/tests/test-unsetenv.c, gl/tests/test-usleep.c,
+       gl/tests/test-vasnprintf.c, gl/tests/test-vasprintf.c,
+       gl/tests/test-vc-list-files-cvs.sh,
+       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
+       gl/tests/test-version-etc.c, gl/tests/test-version-etc.sh,
+       gl/tests/test-vfprintf-posix.c, gl/tests/test-vprintf-posix.c,
+       gl/tests/test-vsnprintf.c, gl/tests/test-wchar.c,
+       gl/tests/unsetenv.c, gl/tests/w32sock.h, gl/tests/zerosize-ptr.h,
+       gl/time.in.h, gl/time_r.c, gl/timespec.h, gl/u64.h, gl/unistd.in.h,
+       gl/usleep.c, gl/vasnprintf.c, gl/vasnprintf.h, gl/vasprintf.c,
+       gl/verify.h, gl/version-etc-fsf.c, gl/version-etc.c,
+       gl/version-etc.h, gl/vfprintf.c, gl/vprintf.c, gl/vsnprintf.c,
+       gl/w32sock.h, gl/wchar.in.h, gl/xsize.h, maint.mk: Updated gnulib
+       and added usleep and getaddrinfo modules.
 
-2002-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * lib/x509/output.c: Authority information access information ->
+       Authority information access
 
-2002-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_x509.c, lib/gnutls_x509.h: Improved the
-       certificate and key read functions. They can now read a PEM encoded
-       key and certificate from the same file.
+       * lib/auth/cert.c, lib/auth/cert.h, lib/auth/dhe.c, lib/auth/rsa.c,
+       lib/auth/rsa_export.c, lib/auth/srp_rsa.c: 
+       _gnutls_proc_cert_client_certificate and
+       _gnutls_proc_cert_server_certificate renamed to
+       _gnutls_proc_certificate.
 
-2002-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex3.tex, doc/tex/handshake.tex, lib/auth_cert.c,
-       lib/ext_cert_type.c, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_cert.c, lib/gnutls_int_compat.c, lib/gnutls_priority.c,
-       lib/gnutls_priority.h, lib/gnutls_state.c, lib/gnutls_state.h,
-       libextra/gnutls_openssl.c, src/cli.c, src/common.c, src/serv.c,
-       src/tests.c: cert_type abreviation was expanded to certificate_type.
+       * NEWS: updated news
 
-2002-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/ex-rfc2818.tex, doc/tex/examples.tex: 
-       updated examples
+       * lib/gnutls_dh_primes.c: gnutls_dh_params_cpy() copies the
+       src->q_bits.
 
-2002-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in: [no log message]
+       * tests/slow/gendh.c: properly deinitialize.
 
-2002-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/ex4.tex, doc/tex/examples.tex, doc/tex/serv1.tex,
-       doc/tex/srp1.tex, includes/gnutls/extra.h,
-       includes/gnutls/openssl.h, lib/auth_anon.c, lib/auth_anon.h,
-       lib/auth_cert.c, lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/debug.c, lib/debug.h,
-       lib/ext_cert_type.c, lib/ext_cert_type.h, lib/ext_max_record.c,
-       lib/ext_max_record.h, lib/gnutls.h.in.in, lib/gnutls_alert.c,
-       lib/gnutls_alert.h, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_auth.c, lib/gnutls_auth.h,
-       lib/gnutls_auth_int.h, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
-       lib/gnutls_compress.h, lib/gnutls_compress_int.c,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_db.c, lib/gnutls_db.h,
-       lib/gnutls_dh.h, lib/gnutls_dh_primes.c, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_int_compat.c, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_priority.c, lib/gnutls_priority.h, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
-       lib/gnutls_session.h, lib/gnutls_session_pack.c,
-       lib/gnutls_session_pack.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_state.c, lib/gnutls_state.h, lib/gnutls_ui.c,
-       lib/gnutls_ui.h, lib/gnutls_v2_compat.c, lib/gnutls_v2_compat.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/x509_sig_check.c,
-       lib/x509_verify.c, libextra/auth_srp.c, libextra/auth_srp.h,
-       libextra/auth_srp_passwd.c, libextra/auth_srp_passwd.h,
-       libextra/ext_srp.c, libextra/ext_srp.h, libextra/gnutls_openssl.c,
-       libextra/gnutls_srp.c, src/cli.c, src/common.c, src/serv.c,
-       src/tests.c, src/tls_test.c: Renamed all the constructed types to
-       have more consisten names, and some other minor improvements.
+       * lib/nettle/mpi.c: corrected leak in DH parameter generation.
 
-2002-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, PGPKEYS: removed PGPKEYS from the distribution.
+       * ChangeLog: updated changelog
 
-2002-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * lib/nettle/mpi.c: removed old comment
 
-2002-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: [no log message]
+       * ChangeLog, NEWS: updated changelog and news for release
 
-2002-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_record.c: Allow the NULL pointer
-       for data in gnutls_record_send(), if the previous call was
-       interrupted.
+       * lib/gnutls_cipher.c: corrected typo
 
-2002-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: Corrected possible bug in decompression code.
-       Well compressed packets may have been rejected due to limited
-       buffer.
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-2002-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex: [no log message]
+       * lib/gnutls_buffers.c: Corrected functionality of
+       gnutls_record_get_direction(). Reported by Philip Allison.
 
-2002-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/README.autoconf, doc/TODO,
-       doc/protocol/draft-ietf-tls-srp-01.txt,
-       doc/protocol/draft-ietf-tls-srp-02.txt, lib/gnutls_algorithms.c,
-       lib/gnutls_int.h, libextra/Makefile.am, libextra/auth_srp.c,
-       libextra/auth_srp_passwd.c, libextra/auth_srp_passwd.h,
-       libextra/crypt.c, libextra/crypt.h, libextra/crypt_bcrypt.c,
-       libextra/crypt_bcrypt.h, libextra/crypt_srpsha1.c,
-       libextra/crypt_srpsha1.h, libextra/gnutls_srp.c,
-       libextra/gnutls_srp.h, src/crypt-gaa.c, src/crypt-gaa.h,
-       src/crypt.c, src/crypt.gaa: Added support for the new SRP draft by
-       D. Taylor. This includes the removal of the blowfish crypt hash
-       option, and the change of SRP cipher suite numbers.
+       * NEWS, lib/gnutls_cipher.c: provide less timing information when
+       decoding packets. Patch by Nadhem Alfardan.
 
-2002-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.c, lib/gnutls_hash_int.c, lib/gnutls_x509.c: removed old
-       FIXME stuff.
+       * src/serv.c: use AI_ADDRCONFIG if available.
 
-2002-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS: [no log message]
+       * configure.ac: prevent building of crywrap in windows
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/x509.tex, src/cli.c: [no log message]
+       * cross.mk: updated
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * : added figures used in the documentation. Figures were generated
-       by DIA.
+       * ChangeLog: updated
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphers.tex, doc/tex/ex1.tex,
-       doc/tex/ex2.tex, doc/tex/ex4.tex, doc/tex/srp1.tex,
-       lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_int.h,
-       libextra/gnutls_openssl.c, src/cli.c, src/serv.c, src/tests.c: 
-       Renamed GNUTLS_CIPHER_ARCFOUR to GNUTLS_CIPHER_ARCFOUR_128
+       * lib/extras/Makefile.am: added missing file
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .cvsignore, README: [no log message]
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_state.c: better export ciphersuite detection
+       * src/certtool-gaa.c, src/certtool-gaa.h, src/p11tool-gaa.c: Updated
+       auto-generated files
 
-2002-08-26  Andrew McDonald <admcd@gnutls.org>
+2012-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openssl.c: Update SSL_CIPHER_get_name() to use
-       gnutls_cipher_suite_get_name()
+       * doc/latex/.gitignore, doc/latex/cover.tex: added missing file
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa_export.c: [no log message]
+       * src/benchmark-tls.c: print the RSA and DH bits as well as EC bits
+       for comparison.
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/common.c, src/common.h, src/tests.c,
-       src/tests.h, src/tls_test.c: Improved the gnutls-cli-debug program
+       * src/benchmark-tls.c: use 1840 bit DH and RSA to compare with 192
+       bits of ECDH
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2012-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls_state.c: [no log message]
+       * lib/algorithms/publickey.c, lib/algorithms/secparams.c,
+       lib/algorithms/sign.c, lib/auth/cert.c, lib/auth/ecdh_common.c,
+       lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/gnutls_sig.c,
+       lib/includes/gnutls/gnutls.h.in, lib/nettle/pk.c, lib/pkcs11_int.h,
+       lib/pkcs11_privkey.c, lib/pkcs11_write.c, lib/x509/key_decode.c,
+       lib/x509/key_encode.c, lib/x509/output.c, lib/x509/privkey.c,
+       lib/x509/privkey_pkcs8.c, lib/x509/verify.c, src/certtool.c,
+       src/p11tool.gaa, tests/slow/keygen.c: GNUTLS_PK_ECC -> GNUTLS_PK_EC
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ciphers.tex, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_int.h, src/cli.c, src/serv.c,
-       src/tests.c: renamed ARCFOUR-EXPORT to ARCFOUR-40
+       * lib/openpgp/gnutls_openpgp.c: CDK_EOF error code now returns
+       GNUTLS_E_PARSING_ERROR
 
-2002-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_rsa_export.c, lib/gnutls_kx.c,
-       lib/gnutls_rsa_export.h, lib/gnutls_state.c, lib/gnutls_state.h: 
-       Added support for RSA_EXPORT_WITH_RC4_EXPORT_MD5 with RSA
-       certificates with modulus less than 512 bits. This change made the
-       code a bit messy.
+       * lib/opencdk/armor.c, lib/opencdk/opencdk.h: removed
+       cdk_armor_filter_use()
 
-2002-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: [no log message]
+       * src/certtool.c: correctly report 0 keys on a keyring
 
-2002-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c, src/tests.c, src/tests.h, src/tls_test.c: improvements
-       in server html output
+       * lib/opencdk/kbnode.c, lib/opencdk/opencdk.h,
+       lib/openpgp/gnutls_openpgp.c, lib/openpgp/pgp.c,
+       lib/openpgp/privkey.c: more opencdk simplifications
 
-2002-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphers.tex, doc/tex/intro.tex: changes
-       in order to keep up with the addition of export-grade ciphersuite
+       * tests/openpgp-certs/testselfsigs: specify key type (raw) to
+       certtool
 
-2002-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa_export.c: [no log message]
+       * lib/opencdk/Makefile.am, lib/opencdk/armor.c,
+       lib/opencdk/keydb.c, lib/opencdk/main.c, lib/opencdk/opencdk.h,
+       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.c: Removed unneeded
+       opencdk functionality.
 
-2002-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * cross.mk: verify signatures on download
 
-2002-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/serv.c: changes for export cipher suites
+       * lib/gnutls_global.c, lib/gnutls_mem.c: _gnutls_is_secure_memory is
+       no more.
 
-2002-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: Added the first EXPORT-grade ciphersuite
+       * NEWS, src/cli.c: gnutls-cli can now read input from win32.
 
-2002-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/auth_rsa_export.c, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_cert.c, lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_rsa_export.c, lib/gnutls_rsa_export.h,
-       lib/gnutls_state.c, lib/gnutls_state.h, lib/gnutls_ui.c,
-       lib/gnutls_ui.h, lib/gnutls_x509.c: Corrected bug in DHE key
-       exchange which prevented from parsing the given certificates
-       properly.
+       * NEWS, lib/openpgp/pgp.c, lib/openpgp/privkey.c: Avoid using base64
+       armor auto-detection which causes decoding errors in win32.  For
+       some reason reading from the stream modifies the stream and this
+       work-around avoids that issue.
 
-2002-08-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * tests/pgps2kgnu.c: enable debugging in pgps2kgnu
 
-2002-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * tests/Makefile.am, tests/openpgp-auth2.c: do not use valgrind in
+       windows
 
-2002-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openpgp.h: Exported gnutls_openpgp_extract_key_id().
-       This is the gnutls_openpgp_keyid() function renamed.
+       * cross.mk: gmp is compiled with --enable-fat.
 
-2002-08-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_auth.c: [no log message]
+       * tests/Makefile.am: link libutils with libgnu.
 
-2002-08-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_int_compat.c, src/serv.c: 
-       gnutls_handshake_set_exportable_detection() was obsoleted.
+       * .gitignore: more files to ignore
 
-2002-08-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * doc/manpages/Makefile.am: Added missing function names.
 
-2002-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * cross.mk: Added a preliminary win32 compilation makefile.
 
-2002-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * doc/Makefile.am: win32 fixes
 
-2002-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_constate.c, lib/gnutls_hash_int.c: corrected bug in
-       SSL3 random generation function. Now the export ciphersuite works in
-       SSL3 mode too.
+       * configure.ac: do not build crywrap on win32
 
-2002-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_constate.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_state.c: Added
-       the first exportable ciphersuite (TLS_RSA_WITH_RC4_EXPORT_MD5). This
-       one only works in servers that have certificates of 512 bits length.
+       * extra/includes/gnutls/openssl.h: undefine possible system macros.
 
-2002-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * doc/examples/ex-serv-dtls.c: updated DTLS example
 
-2002-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_constate.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_state.c, src/cli.c: Added some initials for the export
-       cipher suites.
+       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi,
+       doc/cha-programs.texi: more updates
 
-2002-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt,
-       doc/protocol/draft-ietf-tls-openpgp-keys-02.txt: updated openpgp
-       draft
+       * doc/cha-ciphersuites.texi, doc/cha-copying.texi,
+       doc/cha-gtls-app.texi, doc/cha-gtls-examples.texi,
+       doc/cha-internals.texi, doc/cha-library.texi,
+       doc/cha-shared-key.texi, doc/gnutls.texi: Small improvements in
+       documentation.
 
-2002-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: included the change cipher specs in
-       gnutls_handshake_get_direction().
+       * NEWS, lib/x509/privkey.c: corrected bug in DSA private key
+       parsing.
 
-2002-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * src/certtool.gaa: Added --rsa option which is a no-op for now.
 
-2002-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_handshake.c: 
-       gnutls_handshake_check_direction() renamed to
-       gnutls_handshake_get_direction().
+       * lib/extras/randomart.c, lib/extras/randomart.h, lib/gnutls_ui.c,
+       lib/openpgp/output.c, lib/x509/output.c,
+       tests/pathlen/ca-no-pathlen.pem, tests/pathlen/no-ca-or-pathlen.pem: 
+       Allow the insertion of characters to align the randomart.
 
-2002-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/tls_test-gaa.c, src/tls_test-gaa.h, src/tls_test.c,
-       src/tls_test.gaa: Added verbose option to gnutls-cli-debug.
+       * src/certtool.c: Print the fingerprint of PGP keys and not only the
+       key ID.
 
-2002-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_state.c: Added the
-       gnutls_handshake_set_exportable_detection() function, which is used
-       to control whether the handshake will check for exportable cipher
-       suites in the server. In that case an error of
-       GNUTLS_E_EXPORT_CIPHER_SUITE is returned.
+       * tests/pathlen/ca-no-pathlen.pem,
+       tests/pathlen/no-ca-or-pathlen.pem: Add random art to keys.
 
-2002-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: [no log message]
+       * tests/mini-deflate.c: Skip deflate test if libz is not available.
 
-2002-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * lib/openpgp/output.c, lib/x509/output.c, src/certtool.c: updated
+       random art's messages.
 
-2002-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS: included cvs aliases into authors file
+       * src/certtool.c: Print the pgp key's randomart as well.
 
-2002-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: [no log message]
+       * lib/openpgp/output.c, lib/x509/output.c: Print the randomart on
+       the key ID and not the fingerprint.
 
-2002-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_algorithms.c: Added
-       gnutls_cipher_suite_get_name(). This functions constructs the name
-       of a cipher suite using the given algorithms.
+       * lib/gnutls_errors.c: Updated GNUTLS_E_NO_CERTIFICATE_FOUND
+       description.
 
-2002-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * .gitignore: more files to ignore
 
-2002-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_handshake.c, lib/gnutls_int.h: 
-       Added new function gnutls_handshake_check_direction(), which returns
-       the state where the handshake function was interrupted.
+       * lib/extras/randomart.c, lib/extras/randomart.h, lib/gnutls_ui.c,
+       lib/openpgp/output.c, lib/x509/output.c, src/certtool.c: print
+       randomart for private keys as well.
 
-2002-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * buildconf, configure.in, doc/README.CVS: Added the
-       --enable-maintainer-mode configure option, and renamed the old one
-       to --enable-developer-mode.
+       * lib/extras/randomart.c, lib/system.c, lib/system.h,
+       lib/x509/output.c: gnutls_atfork was no longer in use.
 
-2002-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, lib/gnutls.h.in.in, lib/gnutls_x509.c: added
-       some missing consts
+       * NEWS, configure.ac, lib/Makefile.am, lib/extras/Makefile.am,
+       lib/extras/randomart.c, lib/extras/randomart.h, lib/gnutls_ui.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
+       lib/openpgp/output.c, lib/x509/output.c: Added function
+       gnutls_random_art() to convert fingerprints to images (currently
+       ascii-art).
 
-2002-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Patrick Pelletier <code@funwithsoftware.org>
 
-       * ChangeLog: [no log message]
+       * doc/cha-gtls-app.texi, doc/cha-gtls-examples.texi,
+       doc/cha-internals.texi, lib/algorithms/ciphers.c,
+       lib/algorithms/protocols.c, lib/algorithms/secparams.c,
+       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_db.c,
+       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_priority.c,
+       lib/gnutls_state.c, lib/gnutls_ui.c, lib/nettle/rnd.c: minor doc and
+       comment fixes Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-07-21  Andrew McDonald <admcd@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/openssl.tex, includes/gnutls/openssl.h,
-       libextra/gnutls_openssl.c: add ability to use separate file
-       descriptors for send() and recv() using new set_transport_ptr2()
-       function
+       * doc/Makefile.am, doc/cha-gtls-app.texi,
+       doc/cha-gtls-examples.texi, doc/cha-intro-tls.texi,
+       doc/examples/Makefile.am, doc/examples/ex-client-anon.c,
+       doc/examples/ex-client-dtls.c, doc/examples/ex-client-psk.c,
+       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
+       doc/examples/ex-client-udp.c, doc/examples/ex-client-x509.c,
+       doc/examples/ex-client1.c, doc/examples/ex-rfc2818.c,
+       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-srp.c,
+       doc/examples/ex-serv-x509.c, doc/examples/ex-serv1.c: updated
+       examples and added new "handling alerts" section.
 
-2002-07-21  Andrew McDonald <admcd@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/openssl.h, libextra/gnutls_openssl.c: some initial
-       support for TLS/SSL server applications
+       * doc/cha-gtls-examples.texi, doc/examples/udp.c: updated and
+       included in the documentation the udp code.
 
-2002-07-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * NEWS, src/cli.c, src/serv.c: Set don't fragment bit in Linux as
+       well as in BSD variants.
 
-2002-07-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c: Added a special error code for cases where
-       the peer (server) supports only export ciphersuites.
+       * .gitignore, doc/examples/ex-serv-dtls.c, doc/examples/ex-serv1.c: 
+       updated server examples
 
-2002-07-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * doc/cha-cert-auth.texi, doc/cha-cert-auth2.texi,
+       doc/cha-gtls-app.texi, doc/cha-programs.texi,
+       doc/cha-shared-key.texi: smallexample is no longer used. It is
+       intended only for typesetting with smaller pages and had no relation
+       to our usage.
 
-2002-07-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * src/serv.c: prepend UDP to server application name when in UDP
+       mode.
 
-2002-07-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * doc/cha-gtls-app.texi, doc/cha-gtls-examples.texi,
+       doc/examples/Makefile.am, doc/examples/ex-serv-dtls.c,
+       doc/examples/ex-serv1.c: Added DTLS server example.
 
-2002-07-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * src/udp-serv.c: corrected a leak
 
-2002-07-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/errors.tex, doc/tex/howto.tex,
-       doc/tex/openpgp.tex, doc/tex/record.tex: Several documentation
-       fixes. Suggestions and patch by Paul Wujek <pwujek@xp2telecom.com>
+       * doc/cha-gtls-app.texi: Added SECP192R1 curve.
 
-2002-07-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * lib/includes/gnutls/abstract.h, lib/includes/gnutls/pkcs11.h: 
+       pkcs11.h and abstract.h use extern C idiom for C++.
 
-2002-07-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/ext_max_record.c, lib/gnutls_cert.c, lib/gnutls_compress.c,
-       lib/gnutls_compress_int.c, lib/gnutls_constate.c,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_global.c,
-       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c,
-       libextra/gnutls_extra.c: Fixes in zlib compression code.
-       gnutls_global_init_extra() in libgnutls-extra fails if library
-       versions do not match. Semantic changes in
-       gnutls_record_set_max_size(). The requested size is now immediately
-       enforced at the output buffers.
+       * NEWS, lib/algorithms/ciphersuites.c: Added ciphersuites:
+       GNUTLS_PSK_WITH_AES_256_GCM_SHA384 and
+       GNUTLS_DHE_PSK_WITH_AES_256_GCM_SHA384.
 
-2002-07-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/serv.c: Client and server now accept the null
-       cipher option.
+       * NEWS, lib/algorithms/ciphersuites.c: Corrected ciphersuite
+       GNUTLS_ECDHE_PSK_AES_256_CBC_SHA384
 
-2002-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * src/serv.c: Only use configured interfaces. Patch by Pino Toscano.
 
-2002-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_buffers.c, lib/gnutls_int.h,
-       lib/gnutls_record.c: Added gnutls_transport_set_ptr2() which accepts
-       two pointers.
+       * lib/algorithms/protocols.c: better comments.
 
-2002-07-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: [no log message]
+       * lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c: 
+       gnutls_protocol_get_version() and _gnutls_set_current_version() are
+       now inline functions
 
-2002-07-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls_mpi.h, lib/gnutls_privkey.c: moved to
-       libgcrypt 1.1.8
+       * lib/algorithms/ciphersuites.c: documented
+       _gnutls_supported_ciphersuites()
 
-2002-07-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * lib/algorithms/ciphersuites.c: renamed the _SHA ciphersuites to
+       _SHA1.
 
-2002-07-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/libgnutls.m4, libextra/libgnutls-extra.m4: corrected m4
-       macros for gnutls
+       * lib/nettle/mpi.c: correctly set the odd bits.
 
-2002-07-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-ciphersuite-05.txt,
-       doc/protocol/rfc3268.txt: [no log message]
+       * ChangeLog, Makefile.am, cfg.mk: make dist forces regeneration of
+       ChangeLog and manpages.
 
-2002-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * doc/Makefile.am: Added missing file
 
-2002-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/ext_cert_type.c, lib/ext_max_record.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_constate.c, lib/gnutls_datum.c, lib/gnutls_db.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_mpi.c, lib/gnutls_num.c, lib/gnutls_pk.c,
-       lib/gnutls_priority.c, lib/gnutls_privkey.c, lib/gnutls_random.c,
-       lib/gnutls_record.c, lib/gnutls_session_pack.c, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
-       lib/x509_b64.c, lib/x509_extensions.c, lib/x509_sig_check.c,
-       lib/x509_verify.c, lib/x509_xml.c: Added some hints on the file
-       purpose, and some other cleanups.
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-2002-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * doc/cha-gtls-app.texi: documented new priority strings.
 
-2002-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_db.h, lib/gnutls_state.c: [no log message]
+       * lib/gnutls_handshake.c: server precedence also used in compression
+       methods.
 
-2002-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_db.c, lib/gnutls_state.c: Now gnutls_deinit() removes
-       abnormally terminated sessions. Added the _gnutls_deinit() function
-       which has the behaviour of the older gnutls_deinit().
+       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
+       lib/auth/dh_common.c, lib/auth/rsa.c, lib/auth/rsa_export.c,
+       lib/gnutls_auth.c, lib/gnutls_constate.c, lib/gnutls_constate.h,
+       lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_session_pack.c, lib/gnutls_state.c,
+       lib/gnutls_v2_compat.c: cipher_suite_st is no longer used
+       internally. We only use a point to 2 bytes.
 
-2002-07-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: corrected possible bug in http server
+       * NEWS, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_priority.c: Added new priority string %SERVER_PRECEDENCE.
 
-2002-07-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/gnutls.tex: [no log message]
+       * lib/gnutls_priority.c: Removed 128-bit ciphers from secure192, but
+       added SHA256 (or no ciphersuites are there).
 
-2002-07-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c, src/serv.c: [no log message]
+       * NEWS, src/Makefile.am, src/certtool-common.h, src/certtool-gaa.c,
+       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa, src/dh.c,
+       src/prime.c: Added the --dh-info parameter to certtool.
 
-2002-07-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * NEWS, doc/manpages/Makefile.am, lib/algorithms/ciphersuites.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/common.c: 
+       gnutls_priority_get_cipher_suite was renamed to
+       gnutls_priority_get_cipher_suite_index.  This makes a more
+       consistent API at the cost of requiring
+       gnutls_get_cipher_suite_info().  An advantage however is that more
+       information can now be accessed.
 
-2002-07-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * NEWS, lib/auth/anon.c, lib/auth/dh_common.c,
+       lib/auth/dh_common.h, lib/auth/dhe.c, lib/auth/dhe_psk.c,
+       lib/crypto-backend.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
+       lib/gnutls_dh_primes.c, lib/gnutls_int.h, lib/nettle/mpi.c,
+       src/benchmark-tls.c, src/benchmark.c, src/prime.c: Diffie Hellman
+       PKCS #3 parameters now contain the recommended private key size.  By
+       using the recommended key size the calculations for the server side
+       are reduced, giving a 50% increase in DH calculations.
 
-2002-07-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/nettle/mpi.c: small cleanups.
 
-2002-07-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.h: [no log message]
+       * lib/auth/psk_passwd.c, lib/auth/rsa.c, lib/auth/rsa_export.c,
+       lib/auth/srp_passwd.c, lib/crypto-api.c, lib/ext/session_ticket.c,
+       lib/gnutls_cipher.c, lib/gnutls_handshake.c, lib/gnutls_mpi.c,
+       lib/gnutls_pk.c, lib/nettle/gnettle.h, lib/nettle/mpi.c,
+       lib/nettle/pk.c, lib/nettle/rnd.c, lib/opencdk/misc.c,
+       lib/pkcs11_secret.c, lib/random.c, lib/random.h, lib/x509/pkcs12.c,
+       lib/x509/privkey_pkcs8.c: Optimizations in DH parameter generation.  The larger prime is find first and the big loop needs to find a
+       smaller prime, increasing performance.  The _gnutls_rnd() function
+       is now inline and GNUTLS_RND_NONCE doesn't update random generator
+       state.
 
-2002-07-06  Andrew McDonald <admcd@gnutls.org>
+2011-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/openssl.tex: added some more information about current
-       limitations of OpenSSL compatibility layer
+       * NEWS: updated
 
-2002-07-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/Makefile.am: added gnutls_openssl.c
+       * lib/ext/session_ticket.c, lib/gnutls_handshake.c,
+       lib/gnutls_int.h: If a ticket is sent to client then don't store the
+       session information in the session cache.
 
-2002-07-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/examples.tex: [no log message]
+       * NEWS, lib/algorithms/ciphersuites.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/cli-gaa.c,
+       src/cli.gaa, src/common.c, src/common.h, src/serv-gaa.c,
+       src/serv.gaa: Added gnutls_priority_get_cipher_suite().  This allows
+       listing the ciphersuites enabled in a priority structure.  The
+       certtool -l option was overloaded so if combined with --priority it
+       will only list the ciphersuites that are enabled by the given
+       priority string.
 
-2002-07-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/intro.tex, doc/tex/x509.tex: some documentation fixes.
+       * lib/nettle/ecc_mulmod.c: removed unused variables.
 
-2002-07-06  Andrew McDonald <admcd@gnutls.org>
+2011-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/openssl.h, libextra/gnutls_openssl.c: get rid of
-       some warnings during build
+       * lib/gnutls_priority.c: Added 192-bit curve in normal priorities.
 
-2002-07-06  Timo Schulz <twoaday@gnutls.org>
+2011-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h: Minor fixes
-       for the OpenPGP code.
+       * NEWS: documented updates
 
-2002-07-05  Andrew McDonald <admcd@gnutls.org>
+2011-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/openssl.h, libextra/gnutls_openssl.c: yet more
-       functions, and some fixes
+       * src/common.c: Print ephemeral information after certificate
+       information.
 
-2002-07-05  Andrew McDonald <admcd@gnutls.org>
+2011-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/openssl.h, libextra/gnutls_openssl.c: some more
-       functions implemented
+       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
+       lib/gnutls_handshake.c: Optimized ciphersuite sorting.
 
-2002-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/examples.tex, doc/tex/funcs.tex,
-       doc/tex/openssl.tex: [no log message]
+       * src/benchmark-tls.c: modified the test to a level of 80bits of
+       security.
 
-2002-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_xml.c, libextra/gnutls_openpgp.c: [no log message]
+       * lib/algorithms/ecc.c, lib/includes/gnutls/gnutls.h.in: Added
+       SECP192R1 curve.
 
-2002-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/extra.h, lib/gnutls.h.in.in, lib/gnutls_ui.h: 
-       Added defines for old function names.
+       * tests/x509cert.c: be less verbose.
 
-2002-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c, src/serv.c: [no log message]
+       * NEWS: documented fix
 
-2002-07-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: Fixed stub for xml keys. Added support
-       for the new string functions in xml key generation.
+       * src/benchmark-tls.c: Added ECDHE-ECDSA test.
 
-2002-07-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex: [no log message]
+       * lib/nettle/Makefile.am, lib/nettle/ecc.h,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_mulmod.c,
+       lib/nettle/ecc_mulmod_timing.c, lib/nettle/ecc_sign_hash.c: The
+       timing resistant ecc_mulmod() is only used when signing using the
+       ECDSA private key. This improves performance in all other cases that
+       do not require timing resistance.
 
-2002-07-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/README.srpcrypt, src/crypt-gaa.c, src/crypt-gaa.h,
-       src/crypt.gaa, src/serv.c: updated the parameters of srpcrypt
-       program. Other minor changes in included programs.
+       * lib/accelerated/x86/x86.h: corrected have_cpuid for x86-64.
 
-2002-07-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: Corrected bug in the mpi extraction function
-       from X.509 certificates (affects DSA certificates).
+       * doc/Makefile.am, doc/cha-cert-auth2.texi: renamed hardware tokens
+       to security modules.
 
-2002-07-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * doc/cha-cert-auth2.texi: Added section 'Managing encrypted keys'
+       to include PKCS 12 structures.
 
-2002-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openpgp.h: [no log message]
+       * src/benchmark-tls.c: Added RSA key exchange to comparison.
 
-2002-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_ui.h,
-       lib/x509_xml.c, libextra/gnutls_openpgp.c, src/common.c: Made the
-       xml convertion functions more mnemonic. Several other fixes in the
-       core library.
+       * devel/perlasm/cpuid-x86.pl, devel/perlasm/cpuid-x86_64.pl,
+       lib/accelerated/accelerated.c, lib/accelerated/x86/aes-padlock.c,
+       lib/accelerated/x86/aes-x86.c,
+       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
+       lib/accelerated/x86/asm/cpuid-x86-64.s,
+       lib/accelerated/x86/asm/cpuid-x86.s, lib/accelerated/x86/x86.h: 
+       Exported gnutls_cpuid() and gnutls_have_cpuid().
 
-2002-06-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_alert.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_auth.h, lib/gnutls_cipher.c,
-       lib/gnutls_compress_int.c, lib/gnutls_compress_int.h,
-       lib/gnutls_errors.c, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_x509.c, lib/x509_extensions.c,
-       lib/x509_extensions.h, lib/x509_xml.c: Several (internal) cleanups.
-       Const flags are better used now.
+       * doc/Makefile.am: Fix descriptive text.
 
-2002-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * doc/manpages/Makefile.am, doc/scripts/getfuncs.pl: Fix getfuncs.pl
+       parse bug; require non-empty list of function parameters.  Otherwise it would detect a comment like '* foo()' as another
+       function.
 
-2002-06-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/auth_cert.c, lib/gnutls_x509.c: Better organization of
-       cert2gnutls_cert function.
+       * doc/manpages/gnutls_init.3,
+       doc/manpages/gnutls_pk_algorithm_get_name.3: Really remove manpages.
 
-2002-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/x509_xml.c: Now
-       certificate decoding makes use of partial DER decoding of the
-       libtasn1 library. It speedups a bit the handshake in client side,
-       which needs to decode the certificate, in order to read the public
-       key parameters.
+       * .gitignore, doc/manpages/Makefile.am: Fix whitespace in last
+       commit.
 
-2002-06-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * doc/manpages/Makefile.am: Don't rebuild man pages on every 'make'
+       invocation.
 
-2002-06-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_xml.c: Improved XML output.
+       * doc/manpages/Makefile.am, doc/manpages/gnutls_alert_get.3,
+       doc/manpages/gnutls_alert_get_name.3,
+       doc/manpages/gnutls_alert_get_strname.3,
+       doc/manpages/gnutls_alert_send.3,
+       doc/manpages/gnutls_alert_send_appropriate.3,
+       doc/manpages/gnutls_anon_allocate_client_credentials.3,
+       doc/manpages/gnutls_anon_allocate_server_credentials.3,
+       doc/manpages/gnutls_anon_free_client_credentials.3,
+       doc/manpages/gnutls_anon_free_server_credentials.3,
+       doc/manpages/gnutls_anon_set_params_function.3,
+       doc/manpages/gnutls_anon_set_server_dh_params.3,
+       doc/manpages/gnutls_anon_set_server_params_function.3,
+       doc/manpages/gnutls_auth_client_get_type.3,
+       doc/manpages/gnutls_auth_get_type.3,
+       doc/manpages/gnutls_auth_server_get_type.3,
+       doc/manpages/gnutls_bye.3,
+       doc/manpages/gnutls_certificate_activation_time_peers.3,
+       doc/manpages/gnutls_certificate_allocate_credentials.3,
+       doc/manpages/gnutls_certificate_client_get_request_status.3,
+       doc/manpages/gnutls_certificate_expiration_time_peers.3,
+       doc/manpages/gnutls_certificate_free_ca_names.3,
+       doc/manpages/gnutls_certificate_free_cas.3,
+       doc/manpages/gnutls_certificate_free_credentials.3,
+       doc/manpages/gnutls_certificate_free_crls.3,
+       doc/manpages/gnutls_certificate_free_keys.3,
+       doc/manpages/gnutls_certificate_get_issuer.3,
+       doc/manpages/gnutls_certificate_get_openpgp_keyring.3,
+       doc/manpages/gnutls_certificate_get_ours.3,
+       doc/manpages/gnutls_certificate_get_peers.3,
+       doc/manpages/gnutls_certificate_send_x509_rdn_sequence.3,
+       doc/manpages/gnutls_certificate_server_set_request.3,
+       doc/manpages/gnutls_certificate_set_dh_params.3,
+       doc/manpages/gnutls_certificate_set_key.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key_file.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key_file2.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key_mem.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key_mem2.3,
+       doc/manpages/gnutls_certificate_set_params_function.3,
+       doc/manpages/gnutls_certificate_set_rsa_export_params.3,
+       doc/manpages/gnutls_certificate_set_verify_flags.3,
+       doc/manpages/gnutls_certificate_set_verify_function.3,
+       doc/manpages/gnutls_certificate_set_verify_limits.3,
+       doc/manpages/gnutls_certificate_set_x509_crl.3,
+       doc/manpages/gnutls_certificate_set_x509_crl_file.3,
+       doc/manpages/gnutls_certificate_set_x509_crl_mem.3,
+       doc/manpages/gnutls_certificate_set_x509_key.3,
+       doc/manpages/gnutls_certificate_set_x509_key_file.3,
+       doc/manpages/gnutls_certificate_set_x509_key_mem.3,
+       doc/manpages/gnutls_certificate_set_x509_trust.3,
+       doc/manpages/gnutls_certificate_set_x509_trust_file.3,
+       doc/manpages/gnutls_certificate_set_x509_trust_mem.3,
+       doc/manpages/gnutls_certificate_type_get.3,
+       doc/manpages/gnutls_certificate_type_get_id.3,
+       doc/manpages/gnutls_certificate_type_get_name.3,
+       doc/manpages/gnutls_certificate_type_list.3,
+       doc/manpages/gnutls_certificate_type_set_priority.3,
+       doc/manpages/gnutls_certificate_verify_peers2.3,
+       doc/manpages/gnutls_check_version.3,
+       doc/manpages/gnutls_cipher_add_auth.3,
+       doc/manpages/gnutls_cipher_decrypt.3,
+       doc/manpages/gnutls_cipher_decrypt2.3,
+       doc/manpages/gnutls_cipher_deinit.3,
+       doc/manpages/gnutls_cipher_encrypt.3,
+       doc/manpages/gnutls_cipher_encrypt2.3,
+       doc/manpages/gnutls_cipher_get.3,
+       doc/manpages/gnutls_cipher_get_block_size.3,
+       doc/manpages/gnutls_cipher_get_id.3,
+       doc/manpages/gnutls_cipher_get_key_size.3,
+       doc/manpages/gnutls_cipher_get_name.3,
+       doc/manpages/gnutls_cipher_init.3,
+       doc/manpages/gnutls_cipher_list.3,
+       doc/manpages/gnutls_cipher_set_iv.3,
+       doc/manpages/gnutls_cipher_set_priority.3,
+       doc/manpages/gnutls_cipher_suite_get_name.3,
+       doc/manpages/gnutls_cipher_suite_info.3,
+       doc/manpages/gnutls_cipher_tag.3,
+       doc/manpages/gnutls_compression_get.3,
+       doc/manpages/gnutls_compression_get_id.3,
+       doc/manpages/gnutls_compression_get_name.3,
+       doc/manpages/gnutls_compression_list.3,
+       doc/manpages/gnutls_compression_set_priority.3,
+       doc/manpages/gnutls_credentials_clear.3,
+       doc/manpages/gnutls_credentials_set.3,
+       doc/manpages/gnutls_db_check_entry.3,
+       doc/manpages/gnutls_db_get_ptr.3,
+       doc/manpages/gnutls_db_remove_session.3,
+       doc/manpages/gnutls_db_set_cache_expiration.3,
+       doc/manpages/gnutls_db_set_ptr.3,
+       doc/manpages/gnutls_db_set_remove_function.3,
+       doc/manpages/gnutls_db_set_retrieve_function.3,
+       doc/manpages/gnutls_db_set_store_function.3,
+       doc/manpages/gnutls_deinit.3, doc/manpages/gnutls_dh_get_group.3,
+       doc/manpages/gnutls_dh_get_peers_public_bits.3,
+       doc/manpages/gnutls_dh_get_prime_bits.3,
+       doc/manpages/gnutls_dh_get_pubkey.3,
+       doc/manpages/gnutls_dh_get_secret_bits.3,
+       doc/manpages/gnutls_dh_params_cpy.3,
+       doc/manpages/gnutls_dh_params_deinit.3,
+       doc/manpages/gnutls_dh_params_export_pkcs3.3,
+       doc/manpages/gnutls_dh_params_export_raw.3,
+       doc/manpages/gnutls_dh_params_generate2.3,
+       doc/manpages/gnutls_dh_params_import_pkcs3.3,
+       doc/manpages/gnutls_dh_params_import_raw.3,
+       doc/manpages/gnutls_dh_params_init.3,
+       doc/manpages/gnutls_dh_set_prime_bits.3,
+       doc/manpages/gnutls_dtls_cookie_send.3,
+       doc/manpages/gnutls_dtls_cookie_verify.3,
+       doc/manpages/gnutls_dtls_get_data_mtu.3,
+       doc/manpages/gnutls_dtls_get_mtu.3,
+       doc/manpages/gnutls_dtls_prestate_set.3,
+       doc/manpages/gnutls_dtls_set_mtu.3,
+       doc/manpages/gnutls_dtls_set_timeouts.3,
+       doc/manpages/gnutls_ecc_curve_get.3,
+       doc/manpages/gnutls_ecc_curve_get_name.3,
+       doc/manpages/gnutls_ecc_curve_get_size.3,
+       doc/manpages/gnutls_error_is_fatal.3,
+       doc/manpages/gnutls_error_to_alert.3,
+       doc/manpages/gnutls_fingerprint.3,
+       doc/manpages/gnutls_global_deinit.3,
+       doc/manpages/gnutls_global_init.3,
+       doc/manpages/gnutls_global_set_audit_log_function.3,
+       doc/manpages/gnutls_global_set_log_function.3,
+       doc/manpages/gnutls_global_set_log_level.3,
+       doc/manpages/gnutls_global_set_mem_functions.3,
+       doc/manpages/gnutls_global_set_mutex.3,
+       doc/manpages/gnutls_global_set_time_function.3,
+       doc/manpages/gnutls_handshake.3,
+       doc/manpages/gnutls_handshake_get_last_in.3,
+       doc/manpages/gnutls_handshake_get_last_out.3,
+       doc/manpages/gnutls_handshake_set_max_packet_length.3,
+       doc/manpages/gnutls_handshake_set_post_client_hello_function.3,
+       doc/manpages/gnutls_handshake_set_private_extensions.3,
+       doc/manpages/gnutls_hash.3, doc/manpages/gnutls_hash_deinit.3,
+       doc/manpages/gnutls_hash_fast.3,
+       doc/manpages/gnutls_hash_get_len.3,
+       doc/manpages/gnutls_hash_init.3, doc/manpages/gnutls_hash_output.3,
+       doc/manpages/gnutls_hex2bin.3, doc/manpages/gnutls_hex_decode.3,
+       doc/manpages/gnutls_hex_encode.3, doc/manpages/gnutls_hmac.3,
+       doc/manpages/gnutls_hmac_deinit.3, doc/manpages/gnutls_hmac_fast.3,
+       doc/manpages/gnutls_hmac_get_len.3,
+       doc/manpages/gnutls_hmac_init.3, doc/manpages/gnutls_hmac_output.3,
+       doc/manpages/gnutls_init.3, doc/manpages/gnutls_key_generate.3,
+       doc/manpages/gnutls_kx_get.3, doc/manpages/gnutls_kx_get_id.3,
+       doc/manpages/gnutls_kx_get_name.3, doc/manpages/gnutls_kx_list.3,
+       doc/manpages/gnutls_kx_set_priority.3,
+       doc/manpages/gnutls_mac_get.3, doc/manpages/gnutls_mac_get_id.3,
+       doc/manpages/gnutls_mac_get_key_size.3,
+       doc/manpages/gnutls_mac_get_name.3, doc/manpages/gnutls_mac_list.3,
+       doc/manpages/gnutls_mac_set_priority.3,
+       doc/manpages/gnutls_openpgp_crt_check_hostname.3,
+       doc/manpages/gnutls_openpgp_crt_deinit.3,
+       doc/manpages/gnutls_openpgp_crt_export.3,
+       doc/manpages/gnutls_openpgp_crt_get_auth_subkey.3,
+       doc/manpages/gnutls_openpgp_crt_get_creation_time.3,
+       doc/manpages/gnutls_openpgp_crt_get_expiration_time.3,
+       doc/manpages/gnutls_openpgp_crt_get_fingerprint.3,
+       doc/manpages/gnutls_openpgp_crt_get_key_id.3,
+       doc/manpages/gnutls_openpgp_crt_get_key_usage.3,
+       doc/manpages/gnutls_openpgp_crt_get_name.3,
+       doc/manpages/gnutls_openpgp_crt_get_pk_algorithm.3,
+       doc/manpages/gnutls_openpgp_crt_get_pk_dsa_raw.3,
+       doc/manpages/gnutls_openpgp_crt_get_pk_rsa_raw.3,
+       doc/manpages/gnutls_openpgp_crt_get_preferred_key_id.3,
+       doc/manpages/gnutls_openpgp_crt_get_revoked_status.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_count.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_creation_time.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_expiration_time.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_fingerprint.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_id.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_idx.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_algorithm.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_revoked_status.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_usage.3,
+       doc/manpages/gnutls_openpgp_crt_get_version.3,
+       doc/manpages/gnutls_openpgp_crt_import.3,
+       doc/manpages/gnutls_openpgp_crt_init.3,
+       doc/manpages/gnutls_openpgp_crt_print.3,
+       doc/manpages/gnutls_openpgp_crt_set_preferred_key_id.3,
+       doc/manpages/gnutls_openpgp_crt_verify_ring.3,
+       doc/manpages/gnutls_openpgp_crt_verify_self.3,
+       doc/manpages/gnutls_openpgp_keyring_check_id.3,
+       doc/manpages/gnutls_openpgp_keyring_deinit.3,
+       doc/manpages/gnutls_openpgp_keyring_get_crt.3,
+       doc/manpages/gnutls_openpgp_keyring_get_crt_count.3,
+       doc/manpages/gnutls_openpgp_keyring_import.3,
+       doc/manpages/gnutls_openpgp_keyring_init.3,
+       doc/manpages/gnutls_openpgp_privkey_deinit.3,
+       doc/manpages/gnutls_openpgp_privkey_export.3,
+       doc/manpages/gnutls_openpgp_privkey_export_dsa_raw.3,
+       doc/manpages/gnutls_openpgp_privkey_export_rsa_raw.3,
+       doc/manpages/gnutls_openpgp_privkey_export_subkey_dsa_raw.3,
+       doc/manpages/gnutls_openpgp_privkey_export_subkey_rsa_raw.3,
+       doc/manpages/gnutls_openpgp_privkey_get_fingerprint.3,
+       doc/manpages/gnutls_openpgp_privkey_get_key_id.3,
+       doc/manpages/gnutls_openpgp_privkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_openpgp_privkey_get_preferred_key_id.3,
+       doc/manpages/gnutls_openpgp_privkey_get_revoked_status.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_count.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_creation_time.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_fingerprint.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_id.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_idx.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_pk_algorithm.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_revoked_status.3,
+       doc/manpages/gnutls_openpgp_privkey_import.3,
+       doc/manpages/gnutls_openpgp_privkey_init.3,
+       doc/manpages/gnutls_openpgp_privkey_sec_param.3,
+       doc/manpages/gnutls_openpgp_privkey_set_preferred_key_id.3,
+       doc/manpages/gnutls_openpgp_privkey_sign_hash.3,
+       doc/manpages/gnutls_openpgp_send_cert.3,
+       doc/manpages/gnutls_openpgp_set_recv_key_function.3,
+       doc/manpages/gnutls_pcert_deinit.3,
+       doc/manpages/gnutls_pcert_import_openpgp.3,
+       doc/manpages/gnutls_pcert_import_openpgp_raw.3,
+       doc/manpages/gnutls_pcert_import_x509.3,
+       doc/manpages/gnutls_pcert_import_x509_raw.3,
+       doc/manpages/gnutls_pcert_list_import_x509_raw.3,
+       doc/manpages/gnutls_pem_base64_decode.3,
+       doc/manpages/gnutls_pem_base64_decode_alloc.3,
+       doc/manpages/gnutls_pem_base64_encode.3,
+       doc/manpages/gnutls_pem_base64_encode_alloc.3,
+       doc/manpages/gnutls_perror.3,
+       doc/manpages/gnutls_pk_algorithm_get_name.3,
+       doc/manpages/gnutls_pk_bits_to_sec_param.3,
+       doc/manpages/gnutls_pk_get_id.3, doc/manpages/gnutls_pk_get_name.3,
+       doc/manpages/gnutls_pk_list.3,
+       doc/manpages/gnutls_pkcs11_add_provider.3,
+       doc/manpages/gnutls_pkcs11_copy_secret_key.3,
+       doc/manpages/gnutls_pkcs11_copy_x509_crt.3,
+       doc/manpages/gnutls_pkcs11_copy_x509_privkey.3,
+       doc/manpages/gnutls_pkcs11_deinit.3,
+       doc/manpages/gnutls_pkcs11_delete_url.3,
+       doc/manpages/gnutls_pkcs11_init.3,
+       doc/manpages/gnutls_pkcs11_obj_deinit.3,
+       doc/manpages/gnutls_pkcs11_obj_export.3,
+       doc/manpages/gnutls_pkcs11_obj_export_url.3,
+       doc/manpages/gnutls_pkcs11_obj_get_info.3,
+       doc/manpages/gnutls_pkcs11_obj_get_type.3,
+       doc/manpages/gnutls_pkcs11_obj_import_url.3,
+       doc/manpages/gnutls_pkcs11_obj_init.3,
+       doc/manpages/gnutls_pkcs11_obj_list_import_url.3,
+       doc/manpages/gnutls_pkcs11_privkey_deinit.3,
+       doc/manpages/gnutls_pkcs11_privkey_export_url.3,
+       doc/manpages/gnutls_pkcs11_privkey_generate.3,
+       doc/manpages/gnutls_pkcs11_privkey_get_info.3,
+       doc/manpages/gnutls_pkcs11_privkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_pkcs11_privkey_import_url.3,
+       doc/manpages/gnutls_pkcs11_privkey_init.3,
+       doc/manpages/gnutls_pkcs11_set_pin_function.3,
+       doc/manpages/gnutls_pkcs11_set_token_function.3,
+       doc/manpages/gnutls_pkcs11_token_get_flags.3,
+       doc/manpages/gnutls_pkcs11_token_get_info.3,
+       doc/manpages/gnutls_pkcs11_token_get_mechanism.3,
+       doc/manpages/gnutls_pkcs11_token_get_url.3,
+       doc/manpages/gnutls_pkcs11_token_init.3,
+       doc/manpages/gnutls_pkcs11_token_set_pin.3,
+       doc/manpages/gnutls_pkcs11_type_get_name.3,
+       doc/manpages/gnutls_pkcs12_bag_decrypt.3,
+       doc/manpages/gnutls_pkcs12_bag_deinit.3,
+       doc/manpages/gnutls_pkcs12_bag_encrypt.3,
+       doc/manpages/gnutls_pkcs12_bag_get_count.3,
+       doc/manpages/gnutls_pkcs12_bag_get_data.3,
+       doc/manpages/gnutls_pkcs12_bag_get_friendly_name.3,
+       doc/manpages/gnutls_pkcs12_bag_get_key_id.3,
+       doc/manpages/gnutls_pkcs12_bag_get_type.3,
+       doc/manpages/gnutls_pkcs12_bag_init.3,
+       doc/manpages/gnutls_pkcs12_bag_set_crl.3,
+       doc/manpages/gnutls_pkcs12_bag_set_crt.3,
+       doc/manpages/gnutls_pkcs12_bag_set_data.3,
+       doc/manpages/gnutls_pkcs12_bag_set_friendly_name.3,
+       doc/manpages/gnutls_pkcs12_bag_set_key_id.3,
+       doc/manpages/gnutls_pkcs12_deinit.3,
+       doc/manpages/gnutls_pkcs12_export.3,
+       doc/manpages/gnutls_pkcs12_generate_mac.3,
+       doc/manpages/gnutls_pkcs12_get_bag.3,
+       doc/manpages/gnutls_pkcs12_import.3,
+       doc/manpages/gnutls_pkcs12_init.3,
+       doc/manpages/gnutls_pkcs12_set_bag.3,
+       doc/manpages/gnutls_pkcs12_verify_mac.3,
+       doc/manpages/gnutls_pkcs7_deinit.3,
+       doc/manpages/gnutls_pkcs7_delete_crl.3,
+       doc/manpages/gnutls_pkcs7_delete_crt.3,
+       doc/manpages/gnutls_pkcs7_export.3,
+       doc/manpages/gnutls_pkcs7_get_crl_count.3,
+       doc/manpages/gnutls_pkcs7_get_crl_raw.3,
+       doc/manpages/gnutls_pkcs7_get_crt_count.3,
+       doc/manpages/gnutls_pkcs7_get_crt_raw.3,
+       doc/manpages/gnutls_pkcs7_import.3,
+       doc/manpages/gnutls_pkcs7_init.3,
+       doc/manpages/gnutls_pkcs7_set_crl.3,
+       doc/manpages/gnutls_pkcs7_set_crl_raw.3,
+       doc/manpages/gnutls_pkcs7_set_crt.3,
+       doc/manpages/gnutls_pkcs7_set_crt_raw.3, doc/manpages/gnutls_prf.3,
+       doc/manpages/gnutls_prf_raw.3,
+       doc/manpages/gnutls_priority_deinit.3,
+       doc/manpages/gnutls_priority_init.3,
+       doc/manpages/gnutls_priority_set.3,
+       doc/manpages/gnutls_priority_set_direct.3,
+       doc/manpages/gnutls_privkey_decrypt_data.3,
+       doc/manpages/gnutls_privkey_deinit.3,
+       doc/manpages/gnutls_privkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_privkey_get_type.3,
+       doc/manpages/gnutls_privkey_import_ext.3,
+       doc/manpages/gnutls_privkey_import_openpgp.3,
+       doc/manpages/gnutls_privkey_import_pkcs11.3,
+       doc/manpages/gnutls_privkey_import_x509.3,
+       doc/manpages/gnutls_privkey_init.3,
+       doc/manpages/gnutls_privkey_sign_data.3,
+       doc/manpages/gnutls_privkey_sign_hash.3,
+       doc/manpages/gnutls_protocol_get_id.3,
+       doc/manpages/gnutls_protocol_get_name.3,
+       doc/manpages/gnutls_protocol_get_version.3,
+       doc/manpages/gnutls_protocol_list.3,
+       doc/manpages/gnutls_protocol_set_priority.3,
+       doc/manpages/gnutls_psk_allocate_client_credentials.3,
+       doc/manpages/gnutls_psk_allocate_server_credentials.3,
+       doc/manpages/gnutls_psk_client_get_hint.3,
+       doc/manpages/gnutls_psk_free_client_credentials.3,
+       doc/manpages/gnutls_psk_free_server_credentials.3,
+       doc/manpages/gnutls_psk_server_get_username.3,
+       doc/manpages/gnutls_psk_set_client_credentials.3,
+       doc/manpages/gnutls_psk_set_params_function.3,
+       doc/manpages/gnutls_psk_set_server_credentials_file.3,
+       doc/manpages/gnutls_psk_set_server_credentials_hint.3,
+       doc/manpages/gnutls_psk_set_server_dh_params.3,
+       doc/manpages/gnutls_psk_set_server_params_function.3,
+       doc/manpages/gnutls_pubkey_deinit.3,
+       doc/manpages/gnutls_pubkey_export.3,
+       doc/manpages/gnutls_pubkey_get_key_id.3,
+       doc/manpages/gnutls_pubkey_get_key_usage.3,
+       doc/manpages/gnutls_pubkey_get_openpgp_key_id.3,
+       doc/manpages/gnutls_pubkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_pubkey_get_pk_dsa_raw.3,
+       doc/manpages/gnutls_pubkey_get_pk_ecc_raw.3,
+       doc/manpages/gnutls_pubkey_get_pk_ecc_x962.3,
+       doc/manpages/gnutls_pubkey_get_pk_rsa_raw.3,
+       doc/manpages/gnutls_pubkey_get_preferred_hash_algorithm.3,
+       doc/manpages/gnutls_pubkey_get_verify_algorithm.3,
+       doc/manpages/gnutls_pubkey_import.3,
+       doc/manpages/gnutls_pubkey_import_dsa_raw.3,
+       doc/manpages/gnutls_pubkey_import_ecc_raw.3,
+       doc/manpages/gnutls_pubkey_import_ecc_x962.3,
+       doc/manpages/gnutls_pubkey_import_openpgp.3,
+       doc/manpages/gnutls_pubkey_import_pkcs11.3,
+       doc/manpages/gnutls_pubkey_import_pkcs11_url.3,
+       doc/manpages/gnutls_pubkey_import_privkey.3,
+       doc/manpages/gnutls_pubkey_import_rsa_raw.3,
+       doc/manpages/gnutls_pubkey_import_x509.3,
+       doc/manpages/gnutls_pubkey_init.3,
+       doc/manpages/gnutls_pubkey_set_key_usage.3,
+       doc/manpages/gnutls_pubkey_verify_data.3,
+       doc/manpages/gnutls_pubkey_verify_data2.3,
+       doc/manpages/gnutls_pubkey_verify_hash.3,
+       doc/manpages/gnutls_record_check_pending.3,
+       doc/manpages/gnutls_record_disable_padding.3,
+       doc/manpages/gnutls_record_get_direction.3,
+       doc/manpages/gnutls_record_get_discarded.3,
+       doc/manpages/gnutls_record_get_max_size.3,
+       doc/manpages/gnutls_record_recv.3,
+       doc/manpages/gnutls_record_recv_seq.3,
+       doc/manpages/gnutls_record_send.3,
+       doc/manpages/gnutls_record_set_max_size.3,
+       doc/manpages/gnutls_rehandshake.3, doc/manpages/gnutls_rnd.3,
+       doc/manpages/gnutls_rsa_export_get_modulus_bits.3,
+       doc/manpages/gnutls_rsa_export_get_pubkey.3,
+       doc/manpages/gnutls_rsa_params_cpy.3,
+       doc/manpages/gnutls_rsa_params_deinit.3,
+       doc/manpages/gnutls_rsa_params_export_pkcs1.3,
+       doc/manpages/gnutls_rsa_params_export_raw.3,
+       doc/manpages/gnutls_rsa_params_generate2.3,
+       doc/manpages/gnutls_rsa_params_import_pkcs1.3,
+       doc/manpages/gnutls_rsa_params_import_raw.3,
+       doc/manpages/gnutls_rsa_params_init.3,
+       doc/manpages/gnutls_safe_renegotiation_status.3,
+       doc/manpages/gnutls_sec_param_get_name.3,
+       doc/manpages/gnutls_sec_param_to_pk_bits.3,
+       doc/manpages/gnutls_server_name_get.3,
+       doc/manpages/gnutls_server_name_set.3,
+       doc/manpages/gnutls_session_channel_binding.3,
+       doc/manpages/gnutls_session_enable_compatibility_mode.3,
+       doc/manpages/gnutls_session_get_data.3,
+       doc/manpages/gnutls_session_get_data2.3,
+       doc/manpages/gnutls_session_get_id.3,
+       doc/manpages/gnutls_session_get_ptr.3,
+       doc/manpages/gnutls_session_is_resumed.3,
+       doc/manpages/gnutls_session_set_data.3,
+       doc/manpages/gnutls_session_set_ptr.3,
+       doc/manpages/gnutls_session_ticket_enable_client.3,
+       doc/manpages/gnutls_session_ticket_enable_server.3,
+       doc/manpages/gnutls_session_ticket_key_generate.3,
+       doc/manpages/gnutls_set_default_export_priority.3,
+       doc/manpages/gnutls_set_default_priority.3,
+       doc/manpages/gnutls_sign_algorithm_get_requested.3,
+       doc/manpages/gnutls_sign_callback_get.3,
+       doc/manpages/gnutls_sign_callback_set.3,
+       doc/manpages/gnutls_sign_get_id.3,
+       doc/manpages/gnutls_sign_get_name.3,
+       doc/manpages/gnutls_sign_list.3,
+       doc/manpages/gnutls_srp_allocate_client_credentials.3,
+       doc/manpages/gnutls_srp_allocate_server_credentials.3,
+       doc/manpages/gnutls_srp_base64_decode.3,
+       doc/manpages/gnutls_srp_base64_decode_alloc.3,
+       doc/manpages/gnutls_srp_base64_encode.3,
+       doc/manpages/gnutls_srp_base64_encode_alloc.3,
+       doc/manpages/gnutls_srp_free_client_credentials.3,
+       doc/manpages/gnutls_srp_free_server_credentials.3,
+       doc/manpages/gnutls_srp_server_get_username.3,
+       doc/manpages/gnutls_srp_set_client_credentials.3,
+       doc/manpages/gnutls_srp_set_prime_bits.3,
+       doc/manpages/gnutls_srp_set_server_credentials_file.3,
+       doc/manpages/gnutls_srp_verifier.3, doc/manpages/gnutls_strerror.3,
+       doc/manpages/gnutls_strerror_name.3,
+       doc/manpages/gnutls_supplemental_get_name.3,
+       doc/manpages/gnutls_transport_get_ptr.3,
+       doc/manpages/gnutls_transport_get_ptr2.3,
+       doc/manpages/gnutls_transport_set_errno.3,
+       doc/manpages/gnutls_transport_set_errno_function.3,
+       doc/manpages/gnutls_transport_set_ptr.3,
+       doc/manpages/gnutls_transport_set_ptr2.3,
+       doc/manpages/gnutls_transport_set_pull_function.3,
+       doc/manpages/gnutls_transport_set_pull_timeout_function.3,
+       doc/manpages/gnutls_transport_set_push_function.3,
+       doc/manpages/gnutls_transport_set_vec_push_function.3,
+       doc/manpages/gnutls_x509_crl_check_issuer.3,
+       doc/manpages/gnutls_x509_crl_deinit.3,
+       doc/manpages/gnutls_x509_crl_export.3,
+       doc/manpages/gnutls_x509_crl_get_authority_key_id.3,
+       doc/manpages/gnutls_x509_crl_get_crt_count.3,
+       doc/manpages/gnutls_x509_crl_get_crt_serial.3,
+       doc/manpages/gnutls_x509_crl_get_dn_oid.3,
+       doc/manpages/gnutls_x509_crl_get_extension_data.3,
+       doc/manpages/gnutls_x509_crl_get_extension_info.3,
+       doc/manpages/gnutls_x509_crl_get_extension_oid.3,
+       doc/manpages/gnutls_x509_crl_get_issuer_dn.3,
+       doc/manpages/gnutls_x509_crl_get_issuer_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crl_get_next_update.3,
+       doc/manpages/gnutls_x509_crl_get_number.3,
+       doc/manpages/gnutls_x509_crl_get_raw_issuer_dn.3,
+       doc/manpages/gnutls_x509_crl_get_signature.3,
+       doc/manpages/gnutls_x509_crl_get_signature_algorithm.3,
+       doc/manpages/gnutls_x509_crl_get_this_update.3,
+       doc/manpages/gnutls_x509_crl_get_version.3,
+       doc/manpages/gnutls_x509_crl_import.3,
+       doc/manpages/gnutls_x509_crl_init.3,
+       doc/manpages/gnutls_x509_crl_list_import.3,
+       doc/manpages/gnutls_x509_crl_list_import2.3,
+       doc/manpages/gnutls_x509_crl_print.3,
+       doc/manpages/gnutls_x509_crl_privkey_sign.3,
+       doc/manpages/gnutls_x509_crl_set_authority_key_id.3,
+       doc/manpages/gnutls_x509_crl_set_crt.3,
+       doc/manpages/gnutls_x509_crl_set_crt_serial.3,
+       doc/manpages/gnutls_x509_crl_set_next_update.3,
+       doc/manpages/gnutls_x509_crl_set_number.3,
+       doc/manpages/gnutls_x509_crl_set_this_update.3,
+       doc/manpages/gnutls_x509_crl_set_version.3,
+       doc/manpages/gnutls_x509_crl_sign.3,
+       doc/manpages/gnutls_x509_crl_sign2.3,
+       doc/manpages/gnutls_x509_crl_verify.3,
+       doc/manpages/gnutls_x509_crq_deinit.3,
+       doc/manpages/gnutls_x509_crq_export.3,
+       doc/manpages/gnutls_x509_crq_get_attribute_by_oid.3,
+       doc/manpages/gnutls_x509_crq_get_attribute_data.3,
+       doc/manpages/gnutls_x509_crq_get_attribute_info.3,
+       doc/manpages/gnutls_x509_crq_get_basic_constraints.3,
+       doc/manpages/gnutls_x509_crq_get_challenge_password.3,
+       doc/manpages/gnutls_x509_crq_get_dn.3,
+       doc/manpages/gnutls_x509_crq_get_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crq_get_dn_oid.3,
+       doc/manpages/gnutls_x509_crq_get_extension_by_oid.3,
+       doc/manpages/gnutls_x509_crq_get_extension_data.3,
+       doc/manpages/gnutls_x509_crq_get_extension_info.3,
+       doc/manpages/gnutls_x509_crq_get_key_id.3,
+       doc/manpages/gnutls_x509_crq_get_key_purpose_oid.3,
+       doc/manpages/gnutls_x509_crq_get_key_rsa_raw.3,
+       doc/manpages/gnutls_x509_crq_get_key_usage.3,
+       doc/manpages/gnutls_x509_crq_get_pk_algorithm.3,
+       doc/manpages/gnutls_x509_crq_get_subject_alt_name.3,
+       doc/manpages/gnutls_x509_crq_get_subject_alt_othername_oid.3,
+       doc/manpages/gnutls_x509_crq_get_version.3,
+       doc/manpages/gnutls_x509_crq_import.3,
+       doc/manpages/gnutls_x509_crq_init.3,
+       doc/manpages/gnutls_x509_crq_print.3,
+       doc/manpages/gnutls_x509_crq_privkey_sign.3,
+       doc/manpages/gnutls_x509_crq_set_attribute_by_oid.3,
+       doc/manpages/gnutls_x509_crq_set_basic_constraints.3,
+       doc/manpages/gnutls_x509_crq_set_challenge_password.3,
+       doc/manpages/gnutls_x509_crq_set_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crq_set_key.3,
+       doc/manpages/gnutls_x509_crq_set_key_purpose_oid.3,
+       doc/manpages/gnutls_x509_crq_set_key_rsa_raw.3,
+       doc/manpages/gnutls_x509_crq_set_key_usage.3,
+       doc/manpages/gnutls_x509_crq_set_pubkey.3,
+       doc/manpages/gnutls_x509_crq_set_subject_alt_name.3,
+       doc/manpages/gnutls_x509_crq_set_version.3,
+       doc/manpages/gnutls_x509_crq_sign.3,
+       doc/manpages/gnutls_x509_crq_sign2.3,
+       doc/manpages/gnutls_x509_crq_verify.3,
+       doc/manpages/gnutls_x509_crt_check_hostname.3,
+       doc/manpages/gnutls_x509_crt_check_issuer.3,
+       doc/manpages/gnutls_x509_crt_check_revocation.3,
+       doc/manpages/gnutls_x509_crt_cpy_crl_dist_points.3,
+       doc/manpages/gnutls_x509_crt_deinit.3,
+       doc/manpages/gnutls_x509_crt_export.3,
+       doc/manpages/gnutls_x509_crt_get_activation_time.3,
+       doc/manpages/gnutls_x509_crt_get_authority_info_access.3,
+       doc/manpages/gnutls_x509_crt_get_authority_key_id.3,
+       doc/manpages/gnutls_x509_crt_get_basic_constraints.3,
+       doc/manpages/gnutls_x509_crt_get_ca_status.3,
+       doc/manpages/gnutls_x509_crt_get_crl_dist_points.3,
+       doc/manpages/gnutls_x509_crt_get_dn.3,
+       doc/manpages/gnutls_x509_crt_get_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crt_get_dn_oid.3,
+       doc/manpages/gnutls_x509_crt_get_expiration_time.3,
+       doc/manpages/gnutls_x509_crt_get_extension_by_oid.3,
+       doc/manpages/gnutls_x509_crt_get_extension_data.3,
+       doc/manpages/gnutls_x509_crt_get_extension_info.3,
+       doc/manpages/gnutls_x509_crt_get_extension_oid.3,
+       doc/manpages/gnutls_x509_crt_get_fingerprint.3,
+       doc/manpages/gnutls_x509_crt_get_issuer.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_alt_name.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_alt_name2.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_alt_othername_oid.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_dn.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_dn_oid.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_unique_id.3,
+       doc/manpages/gnutls_x509_crt_get_key_id.3,
+       doc/manpages/gnutls_x509_crt_get_key_purpose_oid.3,
+       doc/manpages/gnutls_x509_crt_get_key_usage.3,
+       doc/manpages/gnutls_x509_crt_get_pk_algorithm.3,
+       doc/manpages/gnutls_x509_crt_get_pk_dsa_raw.3,
+       doc/manpages/gnutls_x509_crt_get_pk_rsa_raw.3,
+       doc/manpages/gnutls_x509_crt_get_preferred_hash_algorithm.3,
+       doc/manpages/gnutls_x509_crt_get_proxy.3,
+       doc/manpages/gnutls_x509_crt_get_raw_dn.3,
+       doc/manpages/gnutls_x509_crt_get_raw_issuer_dn.3,
+       doc/manpages/gnutls_x509_crt_get_serial.3,
+       doc/manpages/gnutls_x509_crt_get_signature.3,
+       doc/manpages/gnutls_x509_crt_get_signature_algorithm.3,
+       doc/manpages/gnutls_x509_crt_get_subject.3,
+       doc/manpages/gnutls_x509_crt_get_subject_alt_name.3,
+       doc/manpages/gnutls_x509_crt_get_subject_alt_name2.3,
+       doc/manpages/gnutls_x509_crt_get_subject_alt_othername_oid.3,
+       doc/manpages/gnutls_x509_crt_get_subject_key_id.3,
+       doc/manpages/gnutls_x509_crt_get_subject_unique_id.3,
+       doc/manpages/gnutls_x509_crt_get_verify_algorithm.3,
+       doc/manpages/gnutls_x509_crt_get_version.3,
+       doc/manpages/gnutls_x509_crt_import.3,
+       doc/manpages/gnutls_x509_crt_import_pkcs11.3,
+       doc/manpages/gnutls_x509_crt_import_pkcs11_url.3,
+       doc/manpages/gnutls_x509_crt_init.3,
+       doc/manpages/gnutls_x509_crt_list_import.3,
+       doc/manpages/gnutls_x509_crt_list_import2.3,
+       doc/manpages/gnutls_x509_crt_list_import_pkcs11.3,
+       doc/manpages/gnutls_x509_crt_list_verify.3,
+       doc/manpages/gnutls_x509_crt_print.3,
+       doc/manpages/gnutls_x509_crt_privkey_sign.3,
+       doc/manpages/gnutls_x509_crt_set_activation_time.3,
+       doc/manpages/gnutls_x509_crt_set_authority_key_id.3,
+       doc/manpages/gnutls_x509_crt_set_basic_constraints.3,
+       doc/manpages/gnutls_x509_crt_set_ca_status.3,
+       doc/manpages/gnutls_x509_crt_set_crl_dist_points.3,
+       doc/manpages/gnutls_x509_crt_set_crl_dist_points2.3,
+       doc/manpages/gnutls_x509_crt_set_crq.3,
+       doc/manpages/gnutls_x509_crt_set_crq_extensions.3,
+       doc/manpages/gnutls_x509_crt_set_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crt_set_expiration_time.3,
+       doc/manpages/gnutls_x509_crt_set_extension_by_oid.3,
+       doc/manpages/gnutls_x509_crt_set_issuer_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crt_set_key.3,
+       doc/manpages/gnutls_x509_crt_set_key_purpose_oid.3,
+       doc/manpages/gnutls_x509_crt_set_key_usage.3,
+       doc/manpages/gnutls_x509_crt_set_proxy.3,
+       doc/manpages/gnutls_x509_crt_set_proxy_dn.3,
+       doc/manpages/gnutls_x509_crt_set_pubkey.3,
+       doc/manpages/gnutls_x509_crt_set_serial.3,
+       doc/manpages/gnutls_x509_crt_set_subject_alt_name.3,
+       doc/manpages/gnutls_x509_crt_set_subject_alternative_name.3,
+       doc/manpages/gnutls_x509_crt_set_subject_key_id.3,
+       doc/manpages/gnutls_x509_crt_set_version.3,
+       doc/manpages/gnutls_x509_crt_sign.3,
+       doc/manpages/gnutls_x509_crt_sign2.3,
+       doc/manpages/gnutls_x509_crt_verify.3,
+       doc/manpages/gnutls_x509_crt_verify_data.3,
+       doc/manpages/gnutls_x509_crt_verify_hash.3,
+       doc/manpages/gnutls_x509_dn_deinit.3,
+       doc/manpages/gnutls_x509_dn_export.3,
+       doc/manpages/gnutls_x509_dn_get_rdn_ava.3,
+       doc/manpages/gnutls_x509_dn_import.3,
+       doc/manpages/gnutls_x509_dn_init.3,
+       doc/manpages/gnutls_x509_dn_oid_known.3,
+       doc/manpages/gnutls_x509_privkey_cpy.3,
+       doc/manpages/gnutls_x509_privkey_deinit.3,
+       doc/manpages/gnutls_x509_privkey_export.3,
+       doc/manpages/gnutls_x509_privkey_export_dsa_raw.3,
+       doc/manpages/gnutls_x509_privkey_export_ecc_raw.3,
+       doc/manpages/gnutls_x509_privkey_export_pkcs8.3,
+       doc/manpages/gnutls_x509_privkey_export_rsa_raw.3,
+       doc/manpages/gnutls_x509_privkey_export_rsa_raw2.3,
+       doc/manpages/gnutls_x509_privkey_fix.3,
+       doc/manpages/gnutls_x509_privkey_generate.3,
+       doc/manpages/gnutls_x509_privkey_get_key_id.3,
+       doc/manpages/gnutls_x509_privkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_x509_privkey_import.3,
+       doc/manpages/gnutls_x509_privkey_import_dsa_raw.3,
+       doc/manpages/gnutls_x509_privkey_import_ecc_raw.3,
+       doc/manpages/gnutls_x509_privkey_import_pkcs8.3,
+       doc/manpages/gnutls_x509_privkey_import_rsa_raw.3,
+       doc/manpages/gnutls_x509_privkey_import_rsa_raw2.3,
+       doc/manpages/gnutls_x509_privkey_init.3,
+       doc/manpages/gnutls_x509_privkey_sec_param.3,
+       doc/manpages/gnutls_x509_privkey_sign_data.3,
+       doc/manpages/gnutls_x509_privkey_sign_hash.3,
+       doc/manpages/gnutls_x509_privkey_verify_params.3,
+       doc/manpages/gnutls_x509_rdn_get.3,
+       doc/manpages/gnutls_x509_rdn_get_by_oid.3,
+       doc/manpages/gnutls_x509_rdn_get_oid.3,
+       doc/manpages/gnutls_x509_trust_list_add_cas.3,
+       doc/manpages/gnutls_x509_trust_list_add_crls.3,
+       doc/manpages/gnutls_x509_trust_list_add_named_crt.3,
+       doc/manpages/gnutls_x509_trust_list_deinit.3,
+       doc/manpages/gnutls_x509_trust_list_get_issuer.3,
+       doc/manpages/gnutls_x509_trust_list_init.3,
+       doc/manpages/gnutls_x509_trust_list_verify_crt.3,
+       doc/manpages/gnutls_x509_trust_list_verify_named_crt.3: manpages
+       don't need to be in the repository.
 
-2002-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * tests/Makefile.am, tests/cipher-test.c, tests/slow/Makefile.am,
+       tests/slow/cipher-test.c: cipher-test is now run without valgrind
 
-2002-06-24  Andrew McDonald <admcd@gnutls.org>
+2011-11-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openssl.c: fix SSL_CIPHER_get_bits to return key
-       size in bits rather than bytes
+       * lib/gnutls_errors.h: removed superfluous check.
 
-2002-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-29  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in: Depends on opencdk 0.2.0
+       * cfg.mk, tests/suite/chain: Fix syntax-check nits.
 
-2002-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, includes/Makefile.am, includes/gnutls/Makefile.am: 
-       [no log message]
+       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
+       doc/scripts/mytexi2latex: documentation updates.
 
-2002-06-23  Timo Schulz <twoaday@gnutls.org>
+2011-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: Changes for the new OpenCDK version.
+       * doc/gnutls.texi: use emph instead of cite since cite produces bad
+       output in texi2html.
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * doc/cha-cert-auth2.texi, doc/scripts/mytexi2latex: updates in
+       sectioning. Subheading was used instead of subsection in few cases.
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-25  Ludovic Courtès <ludo@gnu.org>
 
-       * tests/x509_test.c: [no log message]
+       * guile/modules/system/documentation/output.scm: guile: Fix the
+       (unused) `output-procedure-texi-documentation-from-c-file'.  Reported by Mike Gran <spk121@yahoo.com>.
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: [no log message]
+       * cfg.mk: copy images to html_node
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/gnutls_cert.h, lib/gnutls_record.c, lib/gnutls_str.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/x509_extensions.c,
-       lib/x509_extensions.h, lib/x509_sig_check.c: The TLS handshake no
-       longer fails if the X.509 extensions in the Certificate are critical
-       and unsupported. The unsupported critical extensions are now only
-       catched by the verification functions.
+       * doc/cha-cert-auth2.texi: added missing node
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_str.c, lib/gnutls_str.h, lib/x509_xml.c: Added new
-       string functions to handle the XML string stuff.
+       * doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi,
+       doc/cha-internals.texi, doc/cha-intro-tls.texi,
+       doc/cha-library.texi, doc/cha-programs.texi, doc/scripts/gdoc,
+       doc/scripts/mytexi2latex: updates in texi and tex documentation.
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex4.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex, includes/gnutls/Makefile.am,
-       includes/gnutls/extra.h, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, lib/gnutls_anon_cred.c, lib/gnutls_cert.c,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/x509_xml.c,
-       libextra/gnutls_openssl.c, libextra/gnutls_srp.c, src/cli.c,
-       src/serv.c, src/tls_test.c: Renamed credential allocation functions
-       from *_sc() to *_cred().
+       * lib/opencdk/Makefile.am, lib/opencdk/dummy.c, lib/opencdk/main.h: 
+       dropped unneeded function.
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/gnutls/Makefile.am, includes/gnutls/gnutls.h: [no log
-       message]
+       * .gitignore, doc/Makefile.am, doc/cha-functions.texi,
+       doc/cha-gtls-app.texi, doc/gnutls.texi, doc/scripts/gdoc,
+       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/openpgp.h: Separated API reference to header
+       files in the texi manual.
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, configure.in, lib/Makefile.am, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, lib/gnutls_int_compat.c,
-       lib/gnutls_x509.c, libextra/Makefile.am, libextra/extra.h,
-       libextra/gnutls_openssl.c, libextra/openssl.h, src/Makefile.am,
-       src/cli.c, src/common.c, src/prime.c, src/serv.c, src/tests.c,
-       src/tls_test.c, tests/Makefile.am: [no log message]
+       * doc/cha-gtls-examples.texi: removed text for tcp functions.
 
-2002-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * includes/Makefile.am, includes/gnutls/Makefile.am,
-       includes/gnutls/extra.h, includes/gnutls/gnutls.h,
-       includes/gnutls/openssl.h: Installed headers moved to includes/
-       directory.
+       * NEWS, cfg.mk, doc/manpages/Makefile.am,
+       doc/manpages/gnutls_alert_get.3,
+       doc/manpages/gnutls_alert_get_name.3,
+       doc/manpages/gnutls_alert_get_strname.3,
+       doc/manpages/gnutls_alert_send.3,
+       doc/manpages/gnutls_alert_send_appropriate.3,
+       doc/manpages/gnutls_anon_allocate_client_credentials.3,
+       doc/manpages/gnutls_anon_allocate_server_credentials.3,
+       doc/manpages/gnutls_anon_free_client_credentials.3,
+       doc/manpages/gnutls_anon_free_server_credentials.3,
+       doc/manpages/gnutls_anon_set_params_function.3,
+       doc/manpages/gnutls_anon_set_server_dh_params.3,
+       doc/manpages/gnutls_anon_set_server_params_function.3,
+       doc/manpages/gnutls_auth_client_get_type.3,
+       doc/manpages/gnutls_auth_get_type.3,
+       doc/manpages/gnutls_auth_server_get_type.3,
+       doc/manpages/gnutls_bye.3,
+       doc/manpages/gnutls_certificate_activation_time_peers.3,
+       doc/manpages/gnutls_certificate_allocate_credentials.3,
+       doc/manpages/gnutls_certificate_client_get_request_status.3,
+       doc/manpages/gnutls_certificate_expiration_time_peers.3,
+       doc/manpages/gnutls_certificate_free_ca_names.3,
+       doc/manpages/gnutls_certificate_free_cas.3,
+       doc/manpages/gnutls_certificate_free_credentials.3,
+       doc/manpages/gnutls_certificate_free_crls.3,
+       doc/manpages/gnutls_certificate_free_keys.3,
+       doc/manpages/gnutls_certificate_get_issuer.3,
+       doc/manpages/gnutls_certificate_get_openpgp_keyring.3,
+       doc/manpages/gnutls_certificate_get_ours.3,
+       doc/manpages/gnutls_certificate_get_peers.3,
+       doc/manpages/gnutls_certificate_send_x509_rdn_sequence.3,
+       doc/manpages/gnutls_certificate_server_set_request.3,
+       doc/manpages/gnutls_certificate_set_dh_params.3,
+       doc/manpages/gnutls_certificate_set_key.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key_file.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key_file2.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key_mem.3,
+       doc/manpages/gnutls_certificate_set_openpgp_key_mem2.3,
+       doc/manpages/gnutls_certificate_set_params_function.3,
+       doc/manpages/gnutls_certificate_set_rsa_export_params.3,
+       doc/manpages/gnutls_certificate_set_verify_flags.3,
+       doc/manpages/gnutls_certificate_set_verify_function.3,
+       doc/manpages/gnutls_certificate_set_verify_limits.3,
+       doc/manpages/gnutls_certificate_set_x509_crl.3,
+       doc/manpages/gnutls_certificate_set_x509_crl_file.3,
+       doc/manpages/gnutls_certificate_set_x509_crl_mem.3,
+       doc/manpages/gnutls_certificate_set_x509_key.3,
+       doc/manpages/gnutls_certificate_set_x509_key_file.3,
+       doc/manpages/gnutls_certificate_set_x509_key_mem.3,
+       doc/manpages/gnutls_certificate_set_x509_trust.3,
+       doc/manpages/gnutls_certificate_set_x509_trust_file.3,
+       doc/manpages/gnutls_certificate_set_x509_trust_mem.3,
+       doc/manpages/gnutls_certificate_type_get.3,
+       doc/manpages/gnutls_certificate_type_get_id.3,
+       doc/manpages/gnutls_certificate_type_get_name.3,
+       doc/manpages/gnutls_certificate_type_list.3,
+       doc/manpages/gnutls_certificate_type_set_priority.3,
+       doc/manpages/gnutls_certificate_verify_peers2.3,
+       doc/manpages/gnutls_check_version.3,
+       doc/manpages/gnutls_cipher_add_auth.3,
+       doc/manpages/gnutls_cipher_decrypt.3,
+       doc/manpages/gnutls_cipher_decrypt2.3,
+       doc/manpages/gnutls_cipher_deinit.3,
+       doc/manpages/gnutls_cipher_encrypt.3,
+       doc/manpages/gnutls_cipher_encrypt2.3,
+       doc/manpages/gnutls_cipher_get.3,
+       doc/manpages/gnutls_cipher_get_block_size.3,
+       doc/manpages/gnutls_cipher_get_id.3,
+       doc/manpages/gnutls_cipher_get_key_size.3,
+       doc/manpages/gnutls_cipher_get_name.3,
+       doc/manpages/gnutls_cipher_init.3,
+       doc/manpages/gnutls_cipher_list.3,
+       doc/manpages/gnutls_cipher_set_iv.3,
+       doc/manpages/gnutls_cipher_set_priority.3,
+       doc/manpages/gnutls_cipher_suite_get_name.3,
+       doc/manpages/gnutls_cipher_suite_info.3,
+       doc/manpages/gnutls_cipher_tag.3,
+       doc/manpages/gnutls_compression_get.3,
+       doc/manpages/gnutls_compression_get_id.3,
+       doc/manpages/gnutls_compression_get_name.3,
+       doc/manpages/gnutls_compression_list.3,
+       doc/manpages/gnutls_compression_set_priority.3,
+       doc/manpages/gnutls_credentials_clear.3,
+       doc/manpages/gnutls_credentials_set.3,
+       doc/manpages/gnutls_db_check_entry.3,
+       doc/manpages/gnutls_db_get_ptr.3,
+       doc/manpages/gnutls_db_remove_session.3,
+       doc/manpages/gnutls_db_set_cache_expiration.3,
+       doc/manpages/gnutls_db_set_ptr.3,
+       doc/manpages/gnutls_db_set_remove_function.3,
+       doc/manpages/gnutls_db_set_retrieve_function.3,
+       doc/manpages/gnutls_db_set_store_function.3,
+       doc/manpages/gnutls_deinit.3, doc/manpages/gnutls_dh_get_group.3,
+       doc/manpages/gnutls_dh_get_peers_public_bits.3,
+       doc/manpages/gnutls_dh_get_prime_bits.3,
+       doc/manpages/gnutls_dh_get_pubkey.3,
+       doc/manpages/gnutls_dh_get_secret_bits.3,
+       doc/manpages/gnutls_dh_params_cpy.3,
+       doc/manpages/gnutls_dh_params_deinit.3,
+       doc/manpages/gnutls_dh_params_export_pkcs3.3,
+       doc/manpages/gnutls_dh_params_export_raw.3,
+       doc/manpages/gnutls_dh_params_generate2.3,
+       doc/manpages/gnutls_dh_params_import_pkcs3.3,
+       doc/manpages/gnutls_dh_params_import_raw.3,
+       doc/manpages/gnutls_dh_params_init.3,
+       doc/manpages/gnutls_dh_set_prime_bits.3,
+       doc/manpages/gnutls_dtls_cookie_send.3,
+       doc/manpages/gnutls_dtls_cookie_verify.3,
+       doc/manpages/gnutls_dtls_get_data_mtu.3,
+       doc/manpages/gnutls_dtls_get_mtu.3,
+       doc/manpages/gnutls_dtls_prestate_set.3,
+       doc/manpages/gnutls_dtls_set_mtu.3,
+       doc/manpages/gnutls_dtls_set_timeouts.3,
+       doc/manpages/gnutls_ecc_curve_get.3,
+       doc/manpages/gnutls_ecc_curve_get_name.3,
+       doc/manpages/gnutls_ecc_curve_get_size.3,
+       doc/manpages/gnutls_error_is_fatal.3,
+       doc/manpages/gnutls_error_to_alert.3,
+       doc/manpages/gnutls_fingerprint.3,
+       doc/manpages/gnutls_global_deinit.3,
+       doc/manpages/gnutls_global_init.3,
+       doc/manpages/gnutls_global_set_audit_log_function.3,
+       doc/manpages/gnutls_global_set_log_function.3,
+       doc/manpages/gnutls_global_set_log_level.3,
+       doc/manpages/gnutls_global_set_mem_functions.3,
+       doc/manpages/gnutls_global_set_mutex.3,
+       doc/manpages/gnutls_global_set_time_function.3,
+       doc/manpages/gnutls_handshake.3,
+       doc/manpages/gnutls_handshake_get_last_in.3,
+       doc/manpages/gnutls_handshake_get_last_out.3,
+       doc/manpages/gnutls_handshake_set_max_packet_length.3,
+       doc/manpages/gnutls_handshake_set_post_client_hello_function.3,
+       doc/manpages/gnutls_handshake_set_private_extensions.3,
+       doc/manpages/gnutls_hash.3, doc/manpages/gnutls_hash_deinit.3,
+       doc/manpages/gnutls_hash_fast.3,
+       doc/manpages/gnutls_hash_get_len.3,
+       doc/manpages/gnutls_hash_init.3, doc/manpages/gnutls_hash_output.3,
+       doc/manpages/gnutls_hex2bin.3, doc/manpages/gnutls_hex_decode.3,
+       doc/manpages/gnutls_hex_encode.3, doc/manpages/gnutls_hmac.3,
+       doc/manpages/gnutls_hmac_deinit.3, doc/manpages/gnutls_hmac_fast.3,
+       doc/manpages/gnutls_hmac_get_len.3,
+       doc/manpages/gnutls_hmac_init.3, doc/manpages/gnutls_hmac_output.3,
+       doc/manpages/gnutls_init.3, doc/manpages/gnutls_key_generate.3,
+       doc/manpages/gnutls_kx_get.3, doc/manpages/gnutls_kx_get_id.3,
+       doc/manpages/gnutls_kx_get_name.3, doc/manpages/gnutls_kx_list.3,
+       doc/manpages/gnutls_kx_set_priority.3,
+       doc/manpages/gnutls_mac_get.3, doc/manpages/gnutls_mac_get_id.3,
+       doc/manpages/gnutls_mac_get_key_size.3,
+       doc/manpages/gnutls_mac_get_name.3, doc/manpages/gnutls_mac_list.3,
+       doc/manpages/gnutls_mac_set_priority.3,
+       doc/manpages/gnutls_openpgp_crt_check_hostname.3,
+       doc/manpages/gnutls_openpgp_crt_deinit.3,
+       doc/manpages/gnutls_openpgp_crt_export.3,
+       doc/manpages/gnutls_openpgp_crt_get_auth_subkey.3,
+       doc/manpages/gnutls_openpgp_crt_get_creation_time.3,
+       doc/manpages/gnutls_openpgp_crt_get_expiration_time.3,
+       doc/manpages/gnutls_openpgp_crt_get_fingerprint.3,
+       doc/manpages/gnutls_openpgp_crt_get_key_id.3,
+       doc/manpages/gnutls_openpgp_crt_get_key_usage.3,
+       doc/manpages/gnutls_openpgp_crt_get_name.3,
+       doc/manpages/gnutls_openpgp_crt_get_pk_algorithm.3,
+       doc/manpages/gnutls_openpgp_crt_get_pk_dsa_raw.3,
+       doc/manpages/gnutls_openpgp_crt_get_pk_rsa_raw.3,
+       doc/manpages/gnutls_openpgp_crt_get_preferred_key_id.3,
+       doc/manpages/gnutls_openpgp_crt_get_revoked_status.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_count.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_creation_time.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_expiration_time.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_fingerprint.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_id.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_idx.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_algorithm.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_revoked_status.3,
+       doc/manpages/gnutls_openpgp_crt_get_subkey_usage.3,
+       doc/manpages/gnutls_openpgp_crt_get_version.3,
+       doc/manpages/gnutls_openpgp_crt_import.3,
+       doc/manpages/gnutls_openpgp_crt_init.3,
+       doc/manpages/gnutls_openpgp_crt_print.3,
+       doc/manpages/gnutls_openpgp_crt_set_preferred_key_id.3,
+       doc/manpages/gnutls_openpgp_crt_verify_ring.3,
+       doc/manpages/gnutls_openpgp_crt_verify_self.3,
+       doc/manpages/gnutls_openpgp_keyring_check_id.3,
+       doc/manpages/gnutls_openpgp_keyring_deinit.3,
+       doc/manpages/gnutls_openpgp_keyring_get_crt.3,
+       doc/manpages/gnutls_openpgp_keyring_get_crt_count.3,
+       doc/manpages/gnutls_openpgp_keyring_import.3,
+       doc/manpages/gnutls_openpgp_keyring_init.3,
+       doc/manpages/gnutls_openpgp_privkey_deinit.3,
+       doc/manpages/gnutls_openpgp_privkey_export.3,
+       doc/manpages/gnutls_openpgp_privkey_export_dsa_raw.3,
+       doc/manpages/gnutls_openpgp_privkey_export_rsa_raw.3,
+       doc/manpages/gnutls_openpgp_privkey_export_subkey_dsa_raw.3,
+       doc/manpages/gnutls_openpgp_privkey_export_subkey_rsa_raw.3,
+       doc/manpages/gnutls_openpgp_privkey_get_fingerprint.3,
+       doc/manpages/gnutls_openpgp_privkey_get_key_id.3,
+       doc/manpages/gnutls_openpgp_privkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_openpgp_privkey_get_preferred_key_id.3,
+       doc/manpages/gnutls_openpgp_privkey_get_revoked_status.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_count.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_creation_time.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_fingerprint.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_id.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_idx.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_pk_algorithm.3,
+       doc/manpages/gnutls_openpgp_privkey_get_subkey_revoked_status.3,
+       doc/manpages/gnutls_openpgp_privkey_import.3,
+       doc/manpages/gnutls_openpgp_privkey_init.3,
+       doc/manpages/gnutls_openpgp_privkey_sec_param.3,
+       doc/manpages/gnutls_openpgp_privkey_set_preferred_key_id.3,
+       doc/manpages/gnutls_openpgp_privkey_sign_hash.3,
+       doc/manpages/gnutls_openpgp_send_cert.3,
+       doc/manpages/gnutls_openpgp_set_recv_key_function.3,
+       doc/manpages/gnutls_pcert_deinit.3,
+       doc/manpages/gnutls_pcert_import_openpgp.3,
+       doc/manpages/gnutls_pcert_import_openpgp_raw.3,
+       doc/manpages/gnutls_pcert_import_x509.3,
+       doc/manpages/gnutls_pcert_import_x509_raw.3,
+       doc/manpages/gnutls_pcert_list_import_x509_raw.3,
+       doc/manpages/gnutls_pem_base64_decode.3,
+       doc/manpages/gnutls_pem_base64_decode_alloc.3,
+       doc/manpages/gnutls_pem_base64_encode.3,
+       doc/manpages/gnutls_pem_base64_encode_alloc.3,
+       doc/manpages/gnutls_perror.3,
+       doc/manpages/gnutls_pk_algorithm_get_name.3,
+       doc/manpages/gnutls_pk_bits_to_sec_param.3,
+       doc/manpages/gnutls_pk_get_id.3, doc/manpages/gnutls_pk_get_name.3,
+       doc/manpages/gnutls_pk_list.3,
+       doc/manpages/gnutls_pkcs11_add_provider.3,
+       doc/manpages/gnutls_pkcs11_copy_secret_key.3,
+       doc/manpages/gnutls_pkcs11_copy_x509_crt.3,
+       doc/manpages/gnutls_pkcs11_copy_x509_privkey.3,
+       doc/manpages/gnutls_pkcs11_deinit.3,
+       doc/manpages/gnutls_pkcs11_delete_url.3,
+       doc/manpages/gnutls_pkcs11_init.3,
+       doc/manpages/gnutls_pkcs11_obj_deinit.3,
+       doc/manpages/gnutls_pkcs11_obj_export.3,
+       doc/manpages/gnutls_pkcs11_obj_export_url.3,
+       doc/manpages/gnutls_pkcs11_obj_get_info.3,
+       doc/manpages/gnutls_pkcs11_obj_get_type.3,
+       doc/manpages/gnutls_pkcs11_obj_import_url.3,
+       doc/manpages/gnutls_pkcs11_obj_init.3,
+       doc/manpages/gnutls_pkcs11_obj_list_import_url.3,
+       doc/manpages/gnutls_pkcs11_privkey_deinit.3,
+       doc/manpages/gnutls_pkcs11_privkey_export_url.3,
+       doc/manpages/gnutls_pkcs11_privkey_generate.3,
+       doc/manpages/gnutls_pkcs11_privkey_get_info.3,
+       doc/manpages/gnutls_pkcs11_privkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_pkcs11_privkey_import_url.3,
+       doc/manpages/gnutls_pkcs11_privkey_init.3,
+       doc/manpages/gnutls_pkcs11_set_pin_function.3,
+       doc/manpages/gnutls_pkcs11_set_token_function.3,
+       doc/manpages/gnutls_pkcs11_token_get_flags.3,
+       doc/manpages/gnutls_pkcs11_token_get_info.3,
+       doc/manpages/gnutls_pkcs11_token_get_mechanism.3,
+       doc/manpages/gnutls_pkcs11_token_get_url.3,
+       doc/manpages/gnutls_pkcs11_token_init.3,
+       doc/manpages/gnutls_pkcs11_token_set_pin.3,
+       doc/manpages/gnutls_pkcs11_type_get_name.3,
+       doc/manpages/gnutls_pkcs12_bag_decrypt.3,
+       doc/manpages/gnutls_pkcs12_bag_deinit.3,
+       doc/manpages/gnutls_pkcs12_bag_encrypt.3,
+       doc/manpages/gnutls_pkcs12_bag_get_count.3,
+       doc/manpages/gnutls_pkcs12_bag_get_data.3,
+       doc/manpages/gnutls_pkcs12_bag_get_friendly_name.3,
+       doc/manpages/gnutls_pkcs12_bag_get_key_id.3,
+       doc/manpages/gnutls_pkcs12_bag_get_type.3,
+       doc/manpages/gnutls_pkcs12_bag_init.3,
+       doc/manpages/gnutls_pkcs12_bag_set_crl.3,
+       doc/manpages/gnutls_pkcs12_bag_set_crt.3,
+       doc/manpages/gnutls_pkcs12_bag_set_data.3,
+       doc/manpages/gnutls_pkcs12_bag_set_friendly_name.3,
+       doc/manpages/gnutls_pkcs12_bag_set_key_id.3,
+       doc/manpages/gnutls_pkcs12_deinit.3,
+       doc/manpages/gnutls_pkcs12_export.3,
+       doc/manpages/gnutls_pkcs12_generate_mac.3,
+       doc/manpages/gnutls_pkcs12_get_bag.3,
+       doc/manpages/gnutls_pkcs12_import.3,
+       doc/manpages/gnutls_pkcs12_init.3,
+       doc/manpages/gnutls_pkcs12_set_bag.3,
+       doc/manpages/gnutls_pkcs12_verify_mac.3,
+       doc/manpages/gnutls_pkcs7_deinit.3,
+       doc/manpages/gnutls_pkcs7_delete_crl.3,
+       doc/manpages/gnutls_pkcs7_delete_crt.3,
+       doc/manpages/gnutls_pkcs7_export.3,
+       doc/manpages/gnutls_pkcs7_get_crl_count.3,
+       doc/manpages/gnutls_pkcs7_get_crl_raw.3,
+       doc/manpages/gnutls_pkcs7_get_crt_count.3,
+       doc/manpages/gnutls_pkcs7_get_crt_raw.3,
+       doc/manpages/gnutls_pkcs7_import.3,
+       doc/manpages/gnutls_pkcs7_init.3,
+       doc/manpages/gnutls_pkcs7_set_crl.3,
+       doc/manpages/gnutls_pkcs7_set_crl_raw.3,
+       doc/manpages/gnutls_pkcs7_set_crt.3,
+       doc/manpages/gnutls_pkcs7_set_crt_raw.3, doc/manpages/gnutls_prf.3,
+       doc/manpages/gnutls_prf_raw.3,
+       doc/manpages/gnutls_priority_deinit.3,
+       doc/manpages/gnutls_priority_init.3,
+       doc/manpages/gnutls_priority_set.3,
+       doc/manpages/gnutls_priority_set_direct.3,
+       doc/manpages/gnutls_privkey_decrypt_data.3,
+       doc/manpages/gnutls_privkey_deinit.3,
+       doc/manpages/gnutls_privkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_privkey_get_type.3,
+       doc/manpages/gnutls_privkey_import_ext.3,
+       doc/manpages/gnutls_privkey_import_openpgp.3,
+       doc/manpages/gnutls_privkey_import_pkcs11.3,
+       doc/manpages/gnutls_privkey_import_x509.3,
+       doc/manpages/gnutls_privkey_init.3,
+       doc/manpages/gnutls_privkey_sign_data.3,
+       doc/manpages/gnutls_privkey_sign_hash.3,
+       doc/manpages/gnutls_protocol_get_id.3,
+       doc/manpages/gnutls_protocol_get_name.3,
+       doc/manpages/gnutls_protocol_get_version.3,
+       doc/manpages/gnutls_protocol_list.3,
+       doc/manpages/gnutls_protocol_set_priority.3,
+       doc/manpages/gnutls_psk_allocate_client_credentials.3,
+       doc/manpages/gnutls_psk_allocate_server_credentials.3,
+       doc/manpages/gnutls_psk_client_get_hint.3,
+       doc/manpages/gnutls_psk_free_client_credentials.3,
+       doc/manpages/gnutls_psk_free_server_credentials.3,
+       doc/manpages/gnutls_psk_server_get_username.3,
+       doc/manpages/gnutls_psk_set_client_credentials.3,
+       doc/manpages/gnutls_psk_set_params_function.3,
+       doc/manpages/gnutls_psk_set_server_credentials_file.3,
+       doc/manpages/gnutls_psk_set_server_credentials_hint.3,
+       doc/manpages/gnutls_psk_set_server_dh_params.3,
+       doc/manpages/gnutls_psk_set_server_params_function.3,
+       doc/manpages/gnutls_pubkey_deinit.3,
+       doc/manpages/gnutls_pubkey_export.3,
+       doc/manpages/gnutls_pubkey_get_key_id.3,
+       doc/manpages/gnutls_pubkey_get_key_usage.3,
+       doc/manpages/gnutls_pubkey_get_openpgp_key_id.3,
+       doc/manpages/gnutls_pubkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_pubkey_get_pk_dsa_raw.3,
+       doc/manpages/gnutls_pubkey_get_pk_ecc_raw.3,
+       doc/manpages/gnutls_pubkey_get_pk_ecc_x962.3,
+       doc/manpages/gnutls_pubkey_get_pk_rsa_raw.3,
+       doc/manpages/gnutls_pubkey_get_preferred_hash_algorithm.3,
+       doc/manpages/gnutls_pubkey_get_verify_algorithm.3,
+       doc/manpages/gnutls_pubkey_import.3,
+       doc/manpages/gnutls_pubkey_import_dsa_raw.3,
+       doc/manpages/gnutls_pubkey_import_ecc_raw.3,
+       doc/manpages/gnutls_pubkey_import_ecc_x962.3,
+       doc/manpages/gnutls_pubkey_import_openpgp.3,
+       doc/manpages/gnutls_pubkey_import_pkcs11.3,
+       doc/manpages/gnutls_pubkey_import_pkcs11_url.3,
+       doc/manpages/gnutls_pubkey_import_privkey.3,
+       doc/manpages/gnutls_pubkey_import_rsa_raw.3,
+       doc/manpages/gnutls_pubkey_import_x509.3,
+       doc/manpages/gnutls_pubkey_init.3,
+       doc/manpages/gnutls_pubkey_set_key_usage.3,
+       doc/manpages/gnutls_pubkey_verify_data.3,
+       doc/manpages/gnutls_pubkey_verify_data2.3,
+       doc/manpages/gnutls_pubkey_verify_hash.3,
+       doc/manpages/gnutls_record_check_pending.3,
+       doc/manpages/gnutls_record_disable_padding.3,
+       doc/manpages/gnutls_record_get_direction.3,
+       doc/manpages/gnutls_record_get_discarded.3,
+       doc/manpages/gnutls_record_get_max_size.3,
+       doc/manpages/gnutls_record_recv.3,
+       doc/manpages/gnutls_record_recv_seq.3,
+       doc/manpages/gnutls_record_send.3,
+       doc/manpages/gnutls_record_set_max_size.3,
+       doc/manpages/gnutls_rehandshake.3, doc/manpages/gnutls_rnd.3,
+       doc/manpages/gnutls_rsa_export_get_modulus_bits.3,
+       doc/manpages/gnutls_rsa_export_get_pubkey.3,
+       doc/manpages/gnutls_rsa_params_cpy.3,
+       doc/manpages/gnutls_rsa_params_deinit.3,
+       doc/manpages/gnutls_rsa_params_export_pkcs1.3,
+       doc/manpages/gnutls_rsa_params_export_raw.3,
+       doc/manpages/gnutls_rsa_params_generate2.3,
+       doc/manpages/gnutls_rsa_params_import_pkcs1.3,
+       doc/manpages/gnutls_rsa_params_import_raw.3,
+       doc/manpages/gnutls_rsa_params_init.3,
+       doc/manpages/gnutls_safe_renegotiation_status.3,
+       doc/manpages/gnutls_sec_param_get_name.3,
+       doc/manpages/gnutls_sec_param_to_pk_bits.3,
+       doc/manpages/gnutls_server_name_get.3,
+       doc/manpages/gnutls_server_name_set.3,
+       doc/manpages/gnutls_session_channel_binding.3,
+       doc/manpages/gnutls_session_enable_compatibility_mode.3,
+       doc/manpages/gnutls_session_get_data.3,
+       doc/manpages/gnutls_session_get_data2.3,
+       doc/manpages/gnutls_session_get_id.3,
+       doc/manpages/gnutls_session_get_ptr.3,
+       doc/manpages/gnutls_session_is_resumed.3,
+       doc/manpages/gnutls_session_set_data.3,
+       doc/manpages/gnutls_session_set_ptr.3,
+       doc/manpages/gnutls_session_ticket_enable_client.3,
+       doc/manpages/gnutls_session_ticket_enable_server.3,
+       doc/manpages/gnutls_session_ticket_key_generate.3,
+       doc/manpages/gnutls_set_default_export_priority.3,
+       doc/manpages/gnutls_set_default_priority.3,
+       doc/manpages/gnutls_sign_algorithm_get_requested.3,
+       doc/manpages/gnutls_sign_callback_get.3,
+       doc/manpages/gnutls_sign_callback_set.3,
+       doc/manpages/gnutls_sign_get_id.3,
+       doc/manpages/gnutls_sign_get_name.3,
+       doc/manpages/gnutls_sign_list.3,
+       doc/manpages/gnutls_srp_allocate_client_credentials.3,
+       doc/manpages/gnutls_srp_allocate_server_credentials.3,
+       doc/manpages/gnutls_srp_base64_decode.3,
+       doc/manpages/gnutls_srp_base64_decode_alloc.3,
+       doc/manpages/gnutls_srp_base64_encode.3,
+       doc/manpages/gnutls_srp_base64_encode_alloc.3,
+       doc/manpages/gnutls_srp_free_client_credentials.3,
+       doc/manpages/gnutls_srp_free_server_credentials.3,
+       doc/manpages/gnutls_srp_server_get_username.3,
+       doc/manpages/gnutls_srp_set_client_credentials.3,
+       doc/manpages/gnutls_srp_set_prime_bits.3,
+       doc/manpages/gnutls_srp_set_server_credentials_file.3,
+       doc/manpages/gnutls_srp_verifier.3, doc/manpages/gnutls_strerror.3,
+       doc/manpages/gnutls_strerror_name.3,
+       doc/manpages/gnutls_supplemental_get_name.3,
+       doc/manpages/gnutls_transport_get_ptr.3,
+       doc/manpages/gnutls_transport_get_ptr2.3,
+       doc/manpages/gnutls_transport_set_errno.3,
+       doc/manpages/gnutls_transport_set_errno_function.3,
+       doc/manpages/gnutls_transport_set_ptr.3,
+       doc/manpages/gnutls_transport_set_ptr2.3,
+       doc/manpages/gnutls_transport_set_pull_function.3,
+       doc/manpages/gnutls_transport_set_pull_timeout_function.3,
+       doc/manpages/gnutls_transport_set_push_function.3,
+       doc/manpages/gnutls_transport_set_vec_push_function.3,
+       doc/manpages/gnutls_x509_crl_check_issuer.3,
+       doc/manpages/gnutls_x509_crl_deinit.3,
+       doc/manpages/gnutls_x509_crl_export.3,
+       doc/manpages/gnutls_x509_crl_get_authority_key_id.3,
+       doc/manpages/gnutls_x509_crl_get_crt_count.3,
+       doc/manpages/gnutls_x509_crl_get_crt_serial.3,
+       doc/manpages/gnutls_x509_crl_get_dn_oid.3,
+       doc/manpages/gnutls_x509_crl_get_extension_data.3,
+       doc/manpages/gnutls_x509_crl_get_extension_info.3,
+       doc/manpages/gnutls_x509_crl_get_extension_oid.3,
+       doc/manpages/gnutls_x509_crl_get_issuer_dn.3,
+       doc/manpages/gnutls_x509_crl_get_issuer_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crl_get_next_update.3,
+       doc/manpages/gnutls_x509_crl_get_number.3,
+       doc/manpages/gnutls_x509_crl_get_raw_issuer_dn.3,
+       doc/manpages/gnutls_x509_crl_get_signature.3,
+       doc/manpages/gnutls_x509_crl_get_signature_algorithm.3,
+       doc/manpages/gnutls_x509_crl_get_this_update.3,
+       doc/manpages/gnutls_x509_crl_get_version.3,
+       doc/manpages/gnutls_x509_crl_import.3,
+       doc/manpages/gnutls_x509_crl_init.3,
+       doc/manpages/gnutls_x509_crl_list_import.3,
+       doc/manpages/gnutls_x509_crl_list_import2.3,
+       doc/manpages/gnutls_x509_crl_print.3,
+       doc/manpages/gnutls_x509_crl_privkey_sign.3,
+       doc/manpages/gnutls_x509_crl_set_authority_key_id.3,
+       doc/manpages/gnutls_x509_crl_set_crt.3,
+       doc/manpages/gnutls_x509_crl_set_crt_serial.3,
+       doc/manpages/gnutls_x509_crl_set_next_update.3,
+       doc/manpages/gnutls_x509_crl_set_number.3,
+       doc/manpages/gnutls_x509_crl_set_this_update.3,
+       doc/manpages/gnutls_x509_crl_set_version.3,
+       doc/manpages/gnutls_x509_crl_sign.3,
+       doc/manpages/gnutls_x509_crl_sign2.3,
+       doc/manpages/gnutls_x509_crl_verify.3,
+       doc/manpages/gnutls_x509_crq_deinit.3,
+       doc/manpages/gnutls_x509_crq_export.3,
+       doc/manpages/gnutls_x509_crq_get_attribute_by_oid.3,
+       doc/manpages/gnutls_x509_crq_get_attribute_data.3,
+       doc/manpages/gnutls_x509_crq_get_attribute_info.3,
+       doc/manpages/gnutls_x509_crq_get_basic_constraints.3,
+       doc/manpages/gnutls_x509_crq_get_challenge_password.3,
+       doc/manpages/gnutls_x509_crq_get_dn.3,
+       doc/manpages/gnutls_x509_crq_get_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crq_get_dn_oid.3,
+       doc/manpages/gnutls_x509_crq_get_extension_by_oid.3,
+       doc/manpages/gnutls_x509_crq_get_extension_data.3,
+       doc/manpages/gnutls_x509_crq_get_extension_info.3,
+       doc/manpages/gnutls_x509_crq_get_key_id.3,
+       doc/manpages/gnutls_x509_crq_get_key_purpose_oid.3,
+       doc/manpages/gnutls_x509_crq_get_key_rsa_raw.3,
+       doc/manpages/gnutls_x509_crq_get_key_usage.3,
+       doc/manpages/gnutls_x509_crq_get_pk_algorithm.3,
+       doc/manpages/gnutls_x509_crq_get_subject_alt_name.3,
+       doc/manpages/gnutls_x509_crq_get_subject_alt_othername_oid.3,
+       doc/manpages/gnutls_x509_crq_get_version.3,
+       doc/manpages/gnutls_x509_crq_import.3,
+       doc/manpages/gnutls_x509_crq_init.3,
+       doc/manpages/gnutls_x509_crq_print.3,
+       doc/manpages/gnutls_x509_crq_privkey_sign.3,
+       doc/manpages/gnutls_x509_crq_set_attribute_by_oid.3,
+       doc/manpages/gnutls_x509_crq_set_basic_constraints.3,
+       doc/manpages/gnutls_x509_crq_set_challenge_password.3,
+       doc/manpages/gnutls_x509_crq_set_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crq_set_key.3,
+       doc/manpages/gnutls_x509_crq_set_key_purpose_oid.3,
+       doc/manpages/gnutls_x509_crq_set_key_rsa_raw.3,
+       doc/manpages/gnutls_x509_crq_set_key_usage.3,
+       doc/manpages/gnutls_x509_crq_set_pubkey.3,
+       doc/manpages/gnutls_x509_crq_set_subject_alt_name.3,
+       doc/manpages/gnutls_x509_crq_set_version.3,
+       doc/manpages/gnutls_x509_crq_sign.3,
+       doc/manpages/gnutls_x509_crq_sign2.3,
+       doc/manpages/gnutls_x509_crq_verify.3,
+       doc/manpages/gnutls_x509_crt_check_hostname.3,
+       doc/manpages/gnutls_x509_crt_check_issuer.3,
+       doc/manpages/gnutls_x509_crt_check_revocation.3,
+       doc/manpages/gnutls_x509_crt_cpy_crl_dist_points.3,
+       doc/manpages/gnutls_x509_crt_deinit.3,
+       doc/manpages/gnutls_x509_crt_export.3,
+       doc/manpages/gnutls_x509_crt_get_activation_time.3,
+       doc/manpages/gnutls_x509_crt_get_authority_info_access.3,
+       doc/manpages/gnutls_x509_crt_get_authority_key_id.3,
+       doc/manpages/gnutls_x509_crt_get_basic_constraints.3,
+       doc/manpages/gnutls_x509_crt_get_ca_status.3,
+       doc/manpages/gnutls_x509_crt_get_crl_dist_points.3,
+       doc/manpages/gnutls_x509_crt_get_dn.3,
+       doc/manpages/gnutls_x509_crt_get_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crt_get_dn_oid.3,
+       doc/manpages/gnutls_x509_crt_get_expiration_time.3,
+       doc/manpages/gnutls_x509_crt_get_extension_by_oid.3,
+       doc/manpages/gnutls_x509_crt_get_extension_data.3,
+       doc/manpages/gnutls_x509_crt_get_extension_info.3,
+       doc/manpages/gnutls_x509_crt_get_extension_oid.3,
+       doc/manpages/gnutls_x509_crt_get_fingerprint.3,
+       doc/manpages/gnutls_x509_crt_get_issuer.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_alt_name.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_alt_name2.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_alt_othername_oid.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_dn.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_dn_oid.3,
+       doc/manpages/gnutls_x509_crt_get_issuer_unique_id.3,
+       doc/manpages/gnutls_x509_crt_get_key_id.3,
+       doc/manpages/gnutls_x509_crt_get_key_purpose_oid.3,
+       doc/manpages/gnutls_x509_crt_get_key_usage.3,
+       doc/manpages/gnutls_x509_crt_get_pk_algorithm.3,
+       doc/manpages/gnutls_x509_crt_get_pk_dsa_raw.3,
+       doc/manpages/gnutls_x509_crt_get_pk_rsa_raw.3,
+       doc/manpages/gnutls_x509_crt_get_preferred_hash_algorithm.3,
+       doc/manpages/gnutls_x509_crt_get_proxy.3,
+       doc/manpages/gnutls_x509_crt_get_raw_dn.3,
+       doc/manpages/gnutls_x509_crt_get_raw_issuer_dn.3,
+       doc/manpages/gnutls_x509_crt_get_serial.3,
+       doc/manpages/gnutls_x509_crt_get_signature.3,
+       doc/manpages/gnutls_x509_crt_get_signature_algorithm.3,
+       doc/manpages/gnutls_x509_crt_get_subject.3,
+       doc/manpages/gnutls_x509_crt_get_subject_alt_name.3,
+       doc/manpages/gnutls_x509_crt_get_subject_alt_name2.3,
+       doc/manpages/gnutls_x509_crt_get_subject_alt_othername_oid.3,
+       doc/manpages/gnutls_x509_crt_get_subject_key_id.3,
+       doc/manpages/gnutls_x509_crt_get_subject_unique_id.3,
+       doc/manpages/gnutls_x509_crt_get_verify_algorithm.3,
+       doc/manpages/gnutls_x509_crt_get_version.3,
+       doc/manpages/gnutls_x509_crt_import.3,
+       doc/manpages/gnutls_x509_crt_import_pkcs11.3,
+       doc/manpages/gnutls_x509_crt_import_pkcs11_url.3,
+       doc/manpages/gnutls_x509_crt_init.3,
+       doc/manpages/gnutls_x509_crt_list_import.3,
+       doc/manpages/gnutls_x509_crt_list_import2.3,
+       doc/manpages/gnutls_x509_crt_list_import_pkcs11.3,
+       doc/manpages/gnutls_x509_crt_list_verify.3,
+       doc/manpages/gnutls_x509_crt_print.3,
+       doc/manpages/gnutls_x509_crt_privkey_sign.3,
+       doc/manpages/gnutls_x509_crt_set_activation_time.3,
+       doc/manpages/gnutls_x509_crt_set_authority_key_id.3,
+       doc/manpages/gnutls_x509_crt_set_basic_constraints.3,
+       doc/manpages/gnutls_x509_crt_set_ca_status.3,
+       doc/manpages/gnutls_x509_crt_set_crl_dist_points.3,
+       doc/manpages/gnutls_x509_crt_set_crl_dist_points2.3,
+       doc/manpages/gnutls_x509_crt_set_crq.3,
+       doc/manpages/gnutls_x509_crt_set_crq_extensions.3,
+       doc/manpages/gnutls_x509_crt_set_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crt_set_expiration_time.3,
+       doc/manpages/gnutls_x509_crt_set_extension_by_oid.3,
+       doc/manpages/gnutls_x509_crt_set_issuer_dn_by_oid.3,
+       doc/manpages/gnutls_x509_crt_set_key.3,
+       doc/manpages/gnutls_x509_crt_set_key_purpose_oid.3,
+       doc/manpages/gnutls_x509_crt_set_key_usage.3,
+       doc/manpages/gnutls_x509_crt_set_proxy.3,
+       doc/manpages/gnutls_x509_crt_set_proxy_dn.3,
+       doc/manpages/gnutls_x509_crt_set_pubkey.3,
+       doc/manpages/gnutls_x509_crt_set_serial.3,
+       doc/manpages/gnutls_x509_crt_set_subject_alt_name.3,
+       doc/manpages/gnutls_x509_crt_set_subject_alternative_name.3,
+       doc/manpages/gnutls_x509_crt_set_subject_key_id.3,
+       doc/manpages/gnutls_x509_crt_set_version.3,
+       doc/manpages/gnutls_x509_crt_sign.3,
+       doc/manpages/gnutls_x509_crt_sign2.3,
+       doc/manpages/gnutls_x509_crt_verify.3,
+       doc/manpages/gnutls_x509_crt_verify_data.3,
+       doc/manpages/gnutls_x509_crt_verify_hash.3,
+       doc/manpages/gnutls_x509_dn_deinit.3,
+       doc/manpages/gnutls_x509_dn_export.3,
+       doc/manpages/gnutls_x509_dn_get_rdn_ava.3,
+       doc/manpages/gnutls_x509_dn_import.3,
+       doc/manpages/gnutls_x509_dn_init.3,
+       doc/manpages/gnutls_x509_dn_oid_known.3,
+       doc/manpages/gnutls_x509_privkey_cpy.3,
+       doc/manpages/gnutls_x509_privkey_deinit.3,
+       doc/manpages/gnutls_x509_privkey_export.3,
+       doc/manpages/gnutls_x509_privkey_export_dsa_raw.3,
+       doc/manpages/gnutls_x509_privkey_export_ecc_raw.3,
+       doc/manpages/gnutls_x509_privkey_export_pkcs8.3,
+       doc/manpages/gnutls_x509_privkey_export_rsa_raw.3,
+       doc/manpages/gnutls_x509_privkey_export_rsa_raw2.3,
+       doc/manpages/gnutls_x509_privkey_fix.3,
+       doc/manpages/gnutls_x509_privkey_generate.3,
+       doc/manpages/gnutls_x509_privkey_get_key_id.3,
+       doc/manpages/gnutls_x509_privkey_get_pk_algorithm.3,
+       doc/manpages/gnutls_x509_privkey_import.3,
+       doc/manpages/gnutls_x509_privkey_import_dsa_raw.3,
+       doc/manpages/gnutls_x509_privkey_import_ecc_raw.3,
+       doc/manpages/gnutls_x509_privkey_import_pkcs8.3,
+       doc/manpages/gnutls_x509_privkey_import_rsa_raw.3,
+       doc/manpages/gnutls_x509_privkey_import_rsa_raw2.3,
+       doc/manpages/gnutls_x509_privkey_init.3,
+       doc/manpages/gnutls_x509_privkey_sec_param.3,
+       doc/manpages/gnutls_x509_privkey_sign_data.3,
+       doc/manpages/gnutls_x509_privkey_sign_hash.3,
+       doc/manpages/gnutls_x509_privkey_verify_params.3,
+       doc/manpages/gnutls_x509_rdn_get.3,
+       doc/manpages/gnutls_x509_rdn_get_by_oid.3,
+       doc/manpages/gnutls_x509_rdn_get_oid.3,
+       doc/manpages/gnutls_x509_trust_list_add_cas.3,
+       doc/manpages/gnutls_x509_trust_list_add_crls.3,
+       doc/manpages/gnutls_x509_trust_list_add_named_crt.3,
+       doc/manpages/gnutls_x509_trust_list_deinit.3,
+       doc/manpages/gnutls_x509_trust_list_get_issuer.3,
+       doc/manpages/gnutls_x509_trust_list_init.3,
+       doc/manpages/gnutls_x509_trust_list_verify_crt.3,
+       doc/manpages/gnutls_x509_trust_list_verify_named_crt.3,
+       doc/scripts/getfuncs.pl, lib/gnutls_cert.c, lib/gnutls_str.c: Added
+       a more robust manpage generation method.
 
-2002-06-21  Andrew McDonald <admcd@gnutls.org>
+2011-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openssl.c, libextra/openssl.h: changes to way
-       SSL_CIPHER allocation is handled make use of option SSL_OP_NO_TLSv1
+       * doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c: 
+       updated/fixed SRP and PSK examples.
 
-2002-06-21  Andrew McDonald <admcd@gnutls.org>
+2011-11-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openssl.c: use gnutls_cipher_get_key_size() in
-       SSL_CIPHER_get_bits()
+       * lib/auth/cert.c: updated client certificate signature algorithm
+       indication, to allow holding 3 algorithms.
 
-2002-06-21  Andrew McDonald <admcd@gnutls.org>
+2011-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openssl.c, libextra/openssl.h: make arrays for
-       priority information in SSL_METHOD statically allocated
+       * cfg.mk: use texi2html to generate documentation
 
-2002-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: [no log message]
+       * doc/scripts/gdoc: corrected texinfo and manpage generation of
+       documentation.
 
-2002-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/pkix.asn, lib/pkix_asn1_tab.c, lib/x509_xml.c: [no log
-       message]
+       * lib/gnutls_record.c: count all discarded packets as dropped.
 
-2002-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-15  Martin Storsjo <martin@martin.st>
 
-       * lib/gnutls_x509.c: corrected countryName
+       * extra/Makefile.am, lib/Makefile.am: Add dependencies from the def
+       files to the libraries that generate them This avoids build failures in parallel builds, where builds could
+       fail with this error message: make[2]: *** No rule to make target `libgnutls-26.def', needed by
+       `all-am'.  Stop.  There is no direct rules that generate it, but it is generated as a
+       byproduct when building libgnutls.la. By marking the la file as a
+       dependency, make won't bail out by not finding the file until that
+       dependency is built, and at that point, the def file exists.  Signed-off-by: Simon Josefsson <simon@josefsson.org>
 
-2002-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       src/common.c: [no log message]
+       * doc/Makefile.am, doc/cha-auth.texi, doc/cha-cert-auth.texi,
+       doc/cha-cert-auth2.texi, doc/cha-gtls-app.texi,
+       doc/cha-gtls-examples.texi, doc/cha-intro-tls.texi,
+       doc/cha-library.texi, doc/cha-shared-key.texi, doc/gnutls.texi,
+       doc/latex/.gitignore, doc/latex/Makefile.am, doc/latex/gnutls.tex,
+       doc/scripts/mytexi2latex: reorganized documentation
 
-2002-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/extra.h, libextra/openssl.h: changed <gnutls.h> with
-       <gnutls/gnutls.h>
+       * lib/accelerated/x86/asm-coff/appro-aes-x86-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
+       lib/accelerated/x86/asm-coff/padlock-x86-coff.s,
+       lib/accelerated/x86/asm/appro-aes-gcm-x86-64.s,
+       lib/accelerated/x86/asm/appro-aes-x86-64.s,
+       lib/accelerated/x86/asm/appro-aes-x86.s,
+       lib/accelerated/x86/asm/cpuid-x86-64.s,
+       lib/accelerated/x86/asm/cpuid-x86.s,
+       lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s: Commited new assembler files.
 
-2002-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_constate.c, lib/gnutls_int.h: 
-       Exported gnutls_cipher_get_key_size(). Better name printing for MAC
-       algorithms.
+       * cfg.mk, devel/perlasm/aesni-x86.pl,
+       devel/perlasm/aesni-x86_64.pl, devel/perlasm/cbc.pl,
+       devel/perlasm/cpuid-x86.pl, devel/perlasm/cpuid-x86_64.pl,
+       devel/perlasm/e_padlock-x86.pl, devel/perlasm/e_padlock-x86_64.pl,
+       devel/perlasm/ghash-x86.pl, devel/perlasm/ghash-x86_64.pl,
+       devel/perlasm/license-gnutls.txt, devel/perlasm/license.txt,
+       devel/perlasm/ppc-xlate.pl, devel/perlasm/readme,
+       devel/perlasm/x86_64-xlate.pl, devel/perlasm/x86asm.pl,
+       devel/perlasm/x86gas.pl, devel/perlasm/x86masm.pl,
+       devel/perlasm/x86nasm.pl: Added rules to auto-generate the assembler
+       files.
 
-2002-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/cli.c, src/common.c, src/serv.c, src/tests.c,
-       src/tls_test.c: [no log message]
+       * .gitignore: more files to ignore
 
-2002-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex4.tex,
-       doc/tex/funcs.tex, doc/tex/serv1.tex, doc/tex/srp1.tex,
-       libextra/Makefile.am, libextra/extra.h, libextra/gnutls-extra.h,
-       libextra/gnutls-openssl.h, libextra/openssl.h: New install directory
-       for headers is /gnutls
+       * doc/cha-cert-auth.texi: updated
 
-2002-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: [no log message]
+       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-programs.texi,
+       doc/gnutls.texi: Tools are discussed in the relevant chapters and
+       sections.
 
-2002-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c, lib/gnutls_x509.h: [no log message]
+       * NEWS: released 3.0.8
 
-2002-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-12  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in, doc/tex/handshake.tex, doc/tex/memory.tex,
-       doc/tex/translayer.tex, lib/gnutls.h.in.in, lib/gnutls_global.c: [no
-       log message]
+       * configure.ac: Add tests/slow/Makfile and sort config files.
 
-2002-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-12  Simon Josefsson <simon@josefsson.org>
 
-       * .cvsusers: [no log message]
+       * cfg.mk: Fix wordwrap.
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-12  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * lib/x509/verify-high.c, lib/x509/verify-high.h: Don't export
+       verify-high structs internally.
 
-2002-06-19  Andrew McDonald <admcd@gnutls.org>
+2011-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls-openssl.h, libextra/gnutls_openssl.c: Implemented
-       some more functions.  Basic TLS/SSL operations tested with: slrn,
-       wget, lynx
+       * cfg.mk: document the gpl modules used by gnulib
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_cert.c, lib/gnutls_db.c,
-       lib/gnutls_global.c, lib/gnutls_int_compat.c, lib/gnutls_ui.h,
-       libextra/gnutls-extra.h, libextra/gnutls_srp.c, src/serv.c: _func
-       abreviation is no longer used. Functions renamed to _function.
+       * tests/Makefile.am, tests/gendh.c, tests/keygen.c,
+       tests/slow/Makefile.am, tests/slow/README, tests/slow/gendh.c,
+       tests/slow/keygen.c: slow tests are not being run using valgrind
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_xml.c: x509_xml.c
+       * tests/ecdsa/Makefile.am: distribute pem file
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: removed ioctl stuff.
+       * tests/ecdsa/bad-key.pem, tests/ecdsa/ecdsa: Added test to detect a
+       wrong ECDSA key.
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa,
-       src/tls_test.c: added 'nodb' and 'quiet' options to server.
+       * lib/gnutls_errors.h, lib/gnutls_int.h: define likely() and
+       unlikely() and use them to prevent debugging code from being
+       prioritized in branch prediction.
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_pk.c, src/cli.c: [no log message]
+       * .gitignore: more files to ignore
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_pk.c: Corrected bug in PKCS-1 RSA encryption.
+       * NEWS, m4/hooks.m4: bumped library version and documented updates.
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c: [no log message]
+       * lib/crypto-backend.h, lib/gnutls_errors.c, lib/gnutls_pk.c,
+       lib/gnutls_pk.h, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/x509.h, lib/libgnutls.map, lib/nettle/pk.c,
+       lib/x509/privkey.c, src/certtool.c, tests/Makefile.am,
+       tests/keygen.c: Added gnutls_x509_privkey_verify_params() which
+       verifies the parameters of a private key. Added test case for
+       private key generation.
 
-2002-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .cvsusers, AUTHORS: [no log message]
+       * src/certtool-cfg.c, src/certtool-common.c, src/certtool.c,
+       src/psk.c, src/srptool.c, src/tests.c, src/tls_test.c: simplified
+       copyright years.
 
-2002-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/common.c, src/list.h, src/serv.c: The server
-       used was changed to a non blocking one. The server was created by
-       Paul Sheer.
+       * configure.ac, m4/hooks.m4: bumped library versions
 
-2002-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: cleanups
+       * doc/cha-cert-auth.texi, doc/scripts/mytexi2latex,
+       lib/x509/crl_write.c: Added documentation on revocation lists.
 
-2002-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: fixed stubs
+       * tests/suite/chain: account for error code 1 in certtool.
 
-2002-06-17  Timo Schulz <twoaday@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: Minor changes and a XML stub if OpenCDK
-       is not used.
+       * NEWS: document updates
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_xml.c: [no log message]
+       * lib/gnutls_cipher.c: Reduce pad.
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int_compat.c, lib/gnutls_x509.c, lib/x509_xml.c: [no
-       log message]
+       * configure.ac: added missing dir
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls-extra.h, libextra/gnutls-openssl.h,
-       libextra/gnutls_openssl.c: [no log message]
+       * lib/gnutls_int.h, lib/gnutls_record.c: Revert "periodically print
+       messages that might be used in timing attacks." This reverts commit a333d71762903ff5b716d1e3967017b1baf61bd2.
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c: [no log message]
+       * lib/gnutls_state.c: Revert "dropped packets are also reported on
+       gnutls_deinit() to ensure that they are not lost." This reverts commit 41a73fb4a147dc4773d4b546d5d8b5cfdae255d9.
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/gnutls.tex, doc/tex/howto.tex: Added
-       chapter on how to use TLS in application protocols.
+       * NEWS: updated
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openssl.c: [no log message]
+       * lib/gnutls_cipher.c: provide less timing information during packet
+       MAC verification.
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/Makefile.am, libextra/gnutls-openssl.h: Added Andrew's
-       openssl compatible interface.
+       * tests/ecdsa/ecdsa: silence test
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.h, lib/x509_xml.c, libextra/gnutls-extra.h: [no log
-       message]
+       * lib/crypto-backend.h, lib/gnutls_ecc.c, lib/gnutls_pubkey.c,
+       lib/nettle/pk.c, lib/pkcs11_write.c, lib/x509/key_decode.c,
+       lib/x509/key_encode.c, lib/x509/privkey.c: Corrected ECC key
+       generation.
 
-2002-06-16  Timo Schulz <twoaday@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h: Changed the
-       xml function name to fit into the GnuTLS API.  New memory handling
-       for gnutls_datum.
+       * src/certtool.c: fail on certificate verification
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: [no log message]
+       * tests/Makefile.am, tests/ecdsa/Makefile.am, tests/ecdsa/ecdsa: 
+       Added ECDSA key generation, signing and verification tests.
 
-2002-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls-extra.h: [no log message]
+       * src/certtool.c: verify the self signature of a CRQ when --crq-info
+       parameter is given.
 
-2002-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * lib/x509/verify-high.h: Add verify-high.h, to export some structs
+       (for OCSP).
 
-2002-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Simon Josefsson <simon@josefsson.org>
 
-       * doc/tex/alert.tex, doc/tex/ciphers.tex, doc/tex/errors.tex,
-       doc/tex/examples.tex, doc/tex/handshake.tex, doc/tex/layers.tex,
-       doc/tex/macros.tex, doc/tex/memory.tex, doc/tex/record.tex,
-       doc/tex/translayer.tex: [no log message]
+       * lib/algorithms.h, lib/algorithms/mac.c: Add explicit digest
+       mapping functions (for OCSP).
 
-2002-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in: [no log message]
+       * lib/x509/Makefile.am, lib/x509/verify-high.c: Make verify-high
+       structures internally accessible (for OCSP).
 
-2002-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Simon Josefsson <simon@josefsson.org>
 
-       * acconfig.h, configure.in, doc/TODO, src/Makefile.am: Corrected
-       libgdbm issues
+       * lib/libgnutls.map: Indent.
 
-2002-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Simon Josefsson <simon@josefsson.org>
 
-       * doc/tex/Makefile.am: [no log message]
+       * lib/x509/common.c, lib/x509/common.h, lib/x509/extensions.c: Make
+       more functions available internally (for OCSP).
 
-2002-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in: [no log message]
+       * lib/gnutls_str.c, lib/gnutls_str.h, lib/x509/output.c: Make
+       asciiprint a globally available function.
 
-2002-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in: [no log message]
+       * .gitignore: Add.
 
-2002-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, doc/TODO, doc/tex/handshake.tex,
-       doc/tex/serv1.tex, lib/defines.h, lib/gnutls.h.in.in,
-       lib/gnutls_db.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_int_compat.c, lib/gnutls_state.c, lib/x509_xml.c,
-       src/Makefile.am, src/common.c, src/serv.c: Removed the gdbm backend
-       for resuming TLS sessions. Program gnutls-serv was modified to
-       include support for resuming sessions with the callback api.
+       * lib/gnutls_state.c: dropped packets are also reported on
+       gnutls_deinit() to ensure that they are not lost.
 
-2002-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/alert.tex, doc/tex/auth.tex,
-       doc/tex/errors.tex, doc/tex/examples.tex, doc/tex/funcs.tex,
-       doc/tex/gnutls.tex, doc/tex/handshake.tex, doc/tex/layers.tex,
-       doc/tex/openpgp.tex, doc/tex/record.tex, doc/tex/x509.tex: Added
-       index.
+       * lib/gnutls_int.h, lib/gnutls_record.c: periodically print messages
+       that might be used in timing attacks.
 
-2002-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/auth.tex, doc/tex/macros.tex,
-       doc/tex/openpgp.tex, doc/tex/x509.tex: [no log message]
+       * COPYING.LESSER, lib/COPYING: LGPLv3 license was moved to root.
 
-2002-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * lib/x509_xml.c: [no log message]
+       * configure.ac, doc/reference/gnutls-docs.sgml,
+       doc/reference/version.xml.in: Update gtk-doc template.
 
-2002-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls_ui.h, lib/x509_xml.c: [no log message]
+       * doc/cha-gtls-app.texi: updated
 
-2002-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * lib/Makefile.am, lib/gnutls_ui.h, lib/x509_xml.c: Added XML
-       extraction from an X.509 certificate. Only some basic functionality
-       is now available.
+       * lib/includes/gnutls/pkcs11.h: Remove redundant const keyword in
+       (confuses gtk-doc parser).
 
-2002-06-14  Timo Schulz <twoaday@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/gnutls_openpgp.c: Corrected the key length calcuation for
-       the key data fields.
+       * README-alpha: Mention libidn dependency for crywrap.
 
-2002-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/crypt_bcrypt.c: [no log message]
+       * lib/gnutls_pubkey.c: Don't crash if gnutls_pubkey_deinit is given
+       a NULL key.
 
-2002-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * lib/pkix.asn, lib/pkix_asn1_tab.c: [no log message]
+       * lib/x509_b64.c, lib/x509_b64.h: Remove dead code and use more
+       static.
 
-2002-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * cfg.mk: Fix code coverage rules.
 
-2002-06-12  Timo Schulz <twoaday@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/gnutls_openpgp.c: Some minor improvements for the XML
-       code.
+       * .gitignore: Ignore coverage related stuff.
 
-2002-06-12  Timo Schulz <twoaday@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/gnutls_openpgp.c: Implemented verbosity level for XML
-       output.
+       * configure.ac, lib/Makefile.am: Don't add p11-kit to CFLAGS/LIBS
+       globally, just where it is needed.
 
-2002-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * lib/x509_ASN.c: [no log message]
+       * doc/cyclo/Makefile.am: The build rule didn't really work before,
+       now fixed.  Update copyright years.
 
-2002-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/Makefile.am, src/Makefile.am, tests/Makefile.am: [no log
-       message]
+       * .gitignore: Remove unneeded stuff.
 
-2002-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/README.CVS: [no log message]
+       * lib/debug.c: enable _gnutls_dump_mpi() when debugging.
 
-2002-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_cert.c, lib/auth_rsa.c,
-       lib/gnutls_asn1_tab.c, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_errors.c, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_privkey.c,
-       lib/gnutls_sig.c, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       lib/pkix_asn1_tab.c, lib/x509_extensions.c, lib/x509_sig_check.c,
-       lib/x509_verify.c: renamed libasn1 to libtasn1
+       * lib/debug.c, lib/debug.h: Revert "Remove dead code." This reverts commit e5d8a79fcc429902e8fb9b7cec91d66b965df5bb.
 
-2002-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * configure.ac, lib/Makefile.am, lib/gcrypt/Makefile.am,
+       lib/gcrypt/cipher.c, lib/gcrypt/init.c, lib/gcrypt/mac.c,
+       lib/gcrypt/mpi.c, lib/gcrypt/pk.c, lib/gcrypt/rnd.c: No need to
+       distribute the libgcrypt backend (which cannot even be compiled).
 
-2002-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.CVS: renamed libasn1 to libtasn1
+       * lib/accelerated/x86/README: updated to include padlock.
 
-2002-06-10  Timo Schulz <twoaday@gnutls.org>
+2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: A small fix for the XML code.
+       * lib/nettle/cipher.c, lib/nettle/mac.c: release allocated memory on
+       a cipher or mac failure to initialize.
 
-2002-06-10  Timo Schulz <twoaday@gnutls.org>
+2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h: Basic XML
-       output for OpenPGP certificates.
+       * doc/cha-gtls-app.texi: clarified usage of
+       gnutls_record_check_pending().
 
-2002-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * doc/tex/Makefile.am, doc/tex/layers.eps, doc/tex/layers.ps,
-       doc/tex/layers.tex, doc/tex/openpgp.tex, doc/tex/pgp-fig1.eps: [no
-       log message]
+       * lib/debug.c, lib/debug.h: Remove dead code.
 
-2002-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * doc/tex/Makefile.am, doc/tex/auth.tex, doc/tex/gnutls.tex,
-       doc/tex/intro.tex, doc/tex/openpgp.tex, doc/tex/pgp-fig1.eps: Added
-       Timo's openpgp guide
+       * .gitignore: Sort and add.
 
-2002-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in: [no log message]
+       * lib/gnutls_db.c, lib/gnutls_db.h: Remove some redundant prototypes
+       and use more static.
 
-2002-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * Makefile.am, buildconf, configure.in, lib/Makefile.am: Added
-       configure option to use the included libasn1.
+       * lib/gnutls_db.c, lib/gnutls_db.h: Simplify redundant code.
 
-2002-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * Makefile.am, NEWS, configure.in, libextra/Makefile.am,
-       tests/Makefile.am: [no log message]
+       * build-aux/pmccabe2html, gl/Makefile.am, gl/m4/gnulib-cache.m4,
+       gl/m4/gnulib-comp.m4: Add pmccabe2html gnulib module.
 
-2002-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * doc/README.CVS: [no log message]
+       * gl/override/lib/hmac-md5.c.diff, gl/override/lib/memxor.c.diff,
+       gl/override/lib/memxor.h.diff: Remove obsolete files.
 
-2002-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * lib/Makefile.am, lib/auth_cert.c, lib/auth_rsa.c,
-       lib/gnutls_asn1_tab.c, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_errors.c, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_pk.c,
-       lib/gnutls_privkey.c, lib/gnutls_sig.c, lib/gnutls_x509.c,
-       lib/gnutls_x509.h, lib/pkix_asn1_tab.c, lib/x509_ASN.y,
-       lib/x509_asn1.c, lib/x509_asn1.h, lib/x509_der.c, lib/x509_der.h,
-       lib/x509_extensions.c, lib/x509_extensions.h, lib/x509_sig_check.c,
-       lib/x509_verify.c: Adapted codebase to the new libasn1 0.1.0.
+       * configure.ac, gl/override/lib/read-file.c.diff,
+       gl/override/lib/read-file.h.diff,
+       gl/override/tests/test-read-file.c.diff, gl/read-file.c,
+       gl/read-file.h, gl/tests/test-read-file.c, lib/gnutls_x509.c,
+       lib/openpgp/gnutls_openpgp.c, src/certtool-common.c,
+       src/certtool.c, src/cli.c, src/crywrap/crywrap.c: Simplify static
+       library renaming hack.
 
-2002-06-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * src/Makefile.am, src/asn1c.c: removed asn1c.c program. Moved to
-       libasn1.
+       * tests/suite/Makefile.am: Cleanup and fix authorship notice (I
+       didn't write this file).
 
-2002-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_ui.h: [no log message]
+       * tests/dsa/testdsa, tests/openpgp-certs/testcerts,
+       tests/suite/testcompat-main, tests/suite/testsrn: Fix
+       srcdir!=builddir builds.
 
-2002-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-09  Simon Josefsson <simon@josefsson.org>
 
-       * tests/x509_test.c: [no log message]
+       * Makefile.am: Allow distcheck to work, the suppressions.valgrind
+       file caused problems.
 
-2002-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_global.c, lib/gnutls_mem.c, lib/gnutls_mem.h,
-       lib/x509_b64.c: Added gnutls_b64_encode_fmt2() and
-       gnutls_b64_decode_fmt2(). These functions return allocated data.
-       Cleaned up the gnutls_datum code and some of memory stuff.
+       * doc/Makefile.am: enums.texi: Look in builddir too for gnutls.h.
 
-2002-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, acconfig.h, configure.in, lib/gnutls_alert.c,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_global.c,
-       lib/gnutls_mem.c, lib/gnutls_mem.h: Added check for C99 macro
-       support. Stubs are used if they are not supported by the compile. A
-       more elegant solution is required.
+       * NEWS, doc/manpages/Makefile.am: doc: man pages for API functions
+       were removed.
 
-2002-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_global.c, lib/gnutls_mem.c, lib/gnutls_mem.h: only use
-       the libc's strdup, if using the libc's malloc function.
+       * GNUmakefile, gl/Makefile.am, gl/alignof.h, gl/argp-parse.c,
+       gl/closedir.c, gl/m4/gnulib-comp.m4, gl/m4/math_h.m4,
+       gl/m4/stdalign.m4, gl/math.in.h, gl/stdalign.in.h, gl/stdlib.in.h,
+       gl/sys_socket.in.h, gl/tests/Makefile.am, gl/tests/putenv.c,
+       gl/tests/test-stdalign.c, maint.mk: Update gnulib files.
 
-2002-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * cfg.mk: Improve syntax-check rules.
 
-2002-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_mem.c, lib/gnutls_mem.h: Removed gnutls_strdup().
-       Replaced with a pointer to libc's strdup() function.
+       * tests/Makefile.am: Re-indent.
 
-2002-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_record.c, lib/gnutls_state.c,
-       src/cli.c: [no log message]
+       * doc/Makefile.am: Fix syntax-check whitespace nit.
 
-2002-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_buffers.c: No longer realloc() the record buffers. It
-       had some meaning when gnutls_realloc_fast() was there, but now they
-       one cause a slowdown.
+       * configure.ac: Fix portability quirk.
 
-2002-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_int.h, lib/gnutls_state.c, src/cli.c, src/serv.c: Created
-       gnutls_handshake_set_private_extensions() function.
+       * tests/rsa-md5-collision/README: Fix 'the the' double use.
 
-2002-06-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_state.c: [no log message]
+       * lib/accelerated/x86/hmac-padlock.c: Remove unneeded assert.h
+       inclusion.
 
-2002-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in, lib/defines.h, lib/gnutls_algorithms.c,
-       lib/gnutls_int.h, lib/gnutls_state.c, libextra/crypt_bcrypt.c: 
-       Corrected issues with ptrdiff_t. Added option to enable private
-       (experimental) cipher suites. They are now disabled by default so
-       they do not create interoperability problems.
+       * .gitattributes: Drop unneeded .gitattributes.
 
-2002-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in, libextra/crypt_bcrypt.c, libextra/crypt_srpsha1.c: 
-       added check for ptrdiff_t type.
+       * doc/reference/Makefile.am, gtk-doc.make: Update gtk-doc files.
 
-2002-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * doc/reference/gnutls-docs.sgml: Drop openssl API from GnuTLS API
+       manual to avoid build errors.
 
-2002-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * src/cli.c, src/serv.c: [no log message]
+       * doc/reference/Makefile.am: Drop more extra stuff.
 
-2002-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/serv-gaa.c, src/serv-gaa.h, src/serv.gaa: [no log message]
+       * extra/gnutls-extra.pc.in, extra/libgnutls-extra.map: Remove
+       obsolete libgnutls-extra stuff.
 
-2002-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog, doc/tex/Makefile.am, doc/tex/asn1.tex, lib/Makefile.am: 
-       asn1.ps is no longer generated in the gnutls package. It is included
-       in the libasn1 package.
+       * doc/examples/verify.c: Include examples.h to get
+       verify_certificate_callback prototype.
 
-2002-06-03  Timo Schulz <twoaday@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/gnutls-extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openpgp.h: Corrected some data types and more
-       documentation.
+       * doc/reference/Makefile.am: Improve header ignoring.
 
-2002-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * tests/x509_test.c: [no log message]
+       * configure.ac: Use gettext 0.18 to avoid build error.
 
-2002-06-02  Timo Schulz <twoaday@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/gnutls-extra.h: [no log message]
+       * lib/nettle/ecc_mulmod.c: Fix compile warnings.
 
-2002-06-02  Timo Schulz <twoaday@gnutls.org>
+2011-11-08  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/gnutls-extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openpgp.h: More fixes for the keyid and some changes
-       for the _mem functions.
+       * po/it.po.in: Sync with TP.
 
-2002-06-02  Timo Schulz <twoaday@gnutls.org>
+2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h: Applied the
-       patches. Changed the keyid from u32[2] to byte[8].
+       * NEWS, configure.ac, m4/hooks.m4: released 3.0.7
 
-2002-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/algorithms/ciphersuites.c: Corrected ciphersuite
+       GNUTLS_ECDHE_RSA_AES_128_CBC_SHA256. Reported by Fabrice Gautier.
 
-2002-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, NEWS, configure.in, doc/TODO,
-       lib/gnutls_anon_cred.c, lib/gnutls_x509.c, lib/gnutls_x509.h,
-       libextra/gnutls_srp.c: Removed stubs for srp and anonymous
-       authentication. Added test suite directory.
+       * lib/gnutls_session.c: bug fix in gnutls_session_get_data().
 
-2002-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * tests/Makefile.am, tests/test1.pem, tests/test10.pem,
-       tests/test2.pem, tests/test25.pem, tests/test3.pem,
-       tests/x509_test.c: added test suite
+       * NEWS, configure.ac, m4/hooks.m4: bumped version
 
-2002-06-02  Timo Schulz <twoaday@gnutls.org>
+2011-11-07  Alban Crequy <alban.crequy@collabora.co.uk>
 
-       * libextra/gnutls_openpgp.c: Some modifications for the newest
-       OpenCDK snapshot.
+       * lib/gnutls_session.c: gnutls_session_get_data: fix possible buffer
+       overflow The test to avoid the buffer overflow was always false because
+       session_data_size was set at the wrong place. This problem has been
+       introduced by this commit: |commit ad4ed44c65e753e6d3a00104c049dd81826ccbf3 |Author: Nikos
+       Mavrogiannopoulos <nmav@gnutls.org> |Date:   Mon Nov 7 22:24:48 2005
+       +0000 | |    This is the initial commit in the 1.3 branch. Ported
+       from the PSK branch: |    * PSK ciphersuites have been added.  |
+       * The session resumption data are now system independent.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * NEWS: documented changes.
 
-2002-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: [no log message]
+       * lib/auth/ecdh_common.c, lib/crypto-backend.h, lib/gnutls_ecc.c,
+       lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/nettle/Makefile.am,
+       lib/nettle/ecc.h, lib/nettle/ecc_free.c, lib/nettle/ecc_make_key.c,
+       lib/nettle/ecc_projective_check_point.c,
+       lib/nettle/ecc_projective_dbl_point.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/pk.c, lib/pkcs11_write.c, lib/x509/key_decode.c,
+       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/privkey.c,
+       lib/x509/x509_int.h: Verify that received ECDH public key lies on
+       the curve.
 
-2002-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c, lib/gnutls_record.c: [no log message]
+       * lib/gnutls_priority.c: ECDHE ciphersuites take precendence to
+       plain DHE
 
-2002-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: Minor fixes. Added documentation for
-       gnutls_certificate_set_openpgp_trustdb() function.
+       * NEWS, THANKS: documented fixes
 
-2002-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/common.c, src/serv-gaa.c, src/serv.c, src/serv.gaa,
-       src/tls_test-gaa.c, src/tls_test.gaa: [no log message]
+       * lib/nettle/ecc_test.c: re-removed file
 
-2002-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       libextra/gnutls_openpgp.c: Added error code for unsupported trustdb.
+       * lib/x509/privkey_pkcs8.c: Report correct error on ECC key parsing
+       error.
 
-2002-05-27  Timo Schulz <twoaday@gnutls.org>
+2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: Check the trustdb format before the
-       handshake begins.
+       * lib/nettle/ecc.h, lib/nettle/ecc_mulmod.c,
+       lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_dbl_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c, lib/nettle/ecc_test.c: 
+       converted more things to native gmp. This solves issue noticed in
+       mips64 by Joseph Graham.
 
-2002-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * tests/suite/testcompat-main: Added tests for null ciphersuites.
 
-2002-05-27  Timo Schulz <twoaday@gnutls.org>
+2011-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c: Added a check for the trustdb so we can
-       figure out if the format is useable for OpenCDK.
+       * NEWS: documented fix
 
-2002-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls-extra.h, src/cli.c, src/common.c, src/serv.c: [no
-       log message]
+       * doc/Makefile.am, doc/cha-gtls-app.texi, doc/examples/Makefile.am,
+       doc/examples/ex-client-udp.c, doc/examples/ex-client2.c,
+       doc/examples/ex-rfc2818.c, doc/examples/examples.h,
+       doc/examples/verify.c: Include only a single example with X.509
+       client. This example includes certificate verification.
 
-2002-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/CertificateExample.c, src/CrlExample.c, src/Makefile.am,
-       src/cli-gaa.c, src/cli.gaa, src/crypt.c, src/serv-gaa.c,
-       src/serv.gaa: some parts were moved to libasn1.
+       * doc/latex/Makefile.am: no libextra in doc
 
-2002-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_mem.h: [no log message]
+       * lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h: corrected NULL
+       cipher encryption. Reported by Fabrice Gautier.
 
-2002-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-04  Ludovic Courtès <ludo@gnu.org>
 
-       * ChangeLog: [no log message]
+       * configure.ac, guile/modules/gnutls.in, guile/pre-inst-guile.in,
+       guile/src/Makefile.am: guile: Rename `libguile-gnutls-v-2.la' to
+       `guile-gnutls-v-2.la'.
 
-2002-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-04  Ludovic Courtès <ludo@gnu.org>
 
-       * doc/TODO: [no log message]
+       * .gitignore, configure.ac, guile/modules/Makefile.am,
+       guile/modules/gnutls.in, guile/modules/gnutls.scm,
+       guile/pre-inst-guile.in, guile/src/Makefile.am: guile: Install
+       libguile-gnutls under $(libdir)/guile/X.Y.
 
-2002-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-03  Ludovic Courtès <ludo@gnu.org>
 
-       * doc/tex/Makefile.am, doc/tex/errors.tex, doc/tex/gnutls.tex,
-       doc/tex/memory.tex: added memory handling section
+       * guile/modules/gnutls.scm, guile/pre-inst-guile.in,
+       guile/src/Makefile.am: guile: Rename to `libguile-gnutls-v-2'.
 
-2002-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-03  Ludovic Courtès <ludo@gnu.org>
 
-       * lib/gnutls_auth.c, lib/gnutls_buffers.c, lib/gnutls_mem.h,
-       lib/gnutls_priority.c: reintroduced realloc_fast() which prevents
-       some malloc(0) situations.
+       * doc/gnutls-guile.texi: doc: Make it clear that both Guile 1.8 and
+       2.0 are supported.
 
-2002-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-03  Ludovic Courtès <ludo@gnu.org>
 
-       * Makefile.am: [no log message]
+       * doc/Makefile.am, doc/gnutls-guile.texi: guile: Update doc to
+       reflect the removal of (gnutls extra).
 
-2002-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-03  Ludovic Courtès <ludo@gnu.org>
 
-       * doc/TODO, lib/auth_cert.c, lib/auth_rsa.c, lib/gnutls_int.h,
-       lib/gnutls_num.h, lib/gnutls_record.c, libextra/auth_srp.c,
-       libextra/auth_srp_passwd.c, libextra/gnutls_srp.c,
-       libextra/gnutls_srp.h: Several clean ups and bug fixes.
+       * guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
+       guile/tests/openpgp-keys.scm: guile: Remove uses of (gnutls extra)
+       from the tests.
 
-2002-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-03  Ludovic Courtès <ludo@gnu.org>
 
-       * ChangeLog: [no log message]
+       * guile/modules/gnutls.scm, guile/modules/gnutls/build/enums.scm,
+       guile/modules/gnutls/build/smobs.scm,
+       guile/modules/gnutls/extra.scm, guile/pre-inst-guile.in,
+       guile/src/Makefile.am, guile/src/core.c, guile/src/extra.c,
+       guile/src/make-enum-header.scm, guile/src/make-enum-map.scm,
+       guile/src/make-smob-header.scm, guile/src/make-smob-types.scm: 
+       guile: Merge the (gnutls extra) module in (gnutls); deprecate it.
 
-2002-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-03  Ludovic Courtès <ludo@gnu.org>
 
-       * NEWS, THANKS, acconfig.h, configure.in, lib/auth_cert.c,
-       lib/gnutls.h.in.in, lib/gnutls_algorithms.c, lib/gnutls_auth.c,
-       lib/gnutls_buffers.c, lib/gnutls_constate.c, lib/gnutls_datum.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_mem.c, lib/gnutls_mem.h,
-       lib/gnutls_pk.c, lib/gnutls_x509.c, lib/x509_b64.c,
-       libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/crypt_bcrypt.c, libextra/crypt_srpsha1.c,
-       libextra/gnutls_openpgp.c, libextra/gnutls_srp.c, src/common.c: 
-       Applied Jeff Johnson's patch which fixes type problems in 64 bit
-       machines. Removed the default allocation handlers, and made the
-       libc's functions to be defaults. Added function which sets the
-       memory allocation functions to be used.
+       * guile/pre-inst-guile.in, guile/src/Makefile.am: Reverting "Drop
+       guile libgnutls-extra stuff."
 
-2002-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls.h.in.in, libextra/gnutls-extra.h,
-       libextra/gnutls_extra.h, libextra/gnutls_openpgp.c,
-       libextra/gnutls_openpgp.h: [no log message]
+       * lib/gnutls_str.c, lib/gnutls_str.h, lib/openpgp/output.c,
+       lib/x509/output.c: removed duplicate code.
 
-2002-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.h: [no log message]
+       * guile/modules/gnutls/build/enums.scm: removed enumerations that
+       don't exist
 
-2002-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-02  Simon Josefsson <simon@josefsson.org>
 
-       * libextra/gnutls_openpgp.c: corrected function declaration
+       * lib/auth/srp.c: Fix typo.
 
-2002-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.CVS, doc/tex/Makefile.am, doc/tex/serv1.tex,
-       doc/tex/srp1.tex: Updated documentation for the gnutls-extra library
+       * gl/Makefile.am, gl/hmac-md5.c, gl/hmac.h, gl/m4/gnulib-cache.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/md5.m4, gl/m4/memxor.m4, gl/md5.c,
+       gl/md5.h, gl/memxor.c, gl/memxor.h, gl/tests/Makefile.am,
+       gl/tests/test-hmac-md5.c, gl/tests/test-md5.c: hmac-md5 gnulib
+       module was removed (it was no longer used)
 
-2002-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/gnutls_cipher.c, lib/gnutls_constate.c, lib/gnutls_datum.c,
-       lib/gnutls_datum.h, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_num.c, lib/gnutls_num.h,
-       lib/gnutls_record.c, lib/gnutls_session_pack.c,
-       lib/gnutls_v2_compat.c, lib/gnutls_x509.c, libextra/auth_srp.c: 
-       Prefixed internal functions with _gnutls_
+       * .gitignore: more files to ignore
 
-2002-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in: [no log message]
+       * src/srptool.c: print all groups.
 
-2002-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * lib/auth/srp.c, lib/auth/srp_passwd.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/prime.c,
+       src/srptool.c: Added 3072 and 4096-bit groups from RFC5054.
 
-2002-05-20  Timo Schulz <twoaday@gnutls.org>
+2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h: 
-       Modifications for the new OpenCDK version and some minor fixes.
+       * lib/gnutls_x509.c, lib/openpgp/gnutls_openpgp.c,
+       src/certtool-common.c, src/certtool.c, src/cli.c,
+       src/crywrap/crywrap.c: read_file() and friends are accessed as
+       gl_read_file().
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/README.autoconf, lib/Makefile.am,
-       libextra/Makefile.am, libextra/libgnutls-extra-config.in,
-       libextra/libgnutls-extra.m4, src/crypt.c, src/tests.c: [no log
-       message]
+       * gl/override/lib/read-file.c.diff,
+       gl/override/lib/read-file.h.diff,
+       gl/override/tests/test-read-file.c.diff, gl/read-file.c,
+       gl/read-file.h, gl/tests/test-read-file.c: read_file and friends
+       were renamed to gl_read_file.
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README, doc/tex/Makefile.am, lib/Makefile.am,
-       libextra/Makefile.am, src/Makefile.am, src/cli.c, src/common.c,
-       src/serv.c, src/tls_test.c: [no log message]
+       * THANKS: added David
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, README, libextra/auth_srp.c, libextra/auth_srp_passwd.c,
-       libextra/auth_srp_sb64.c, libextra/crypt.c,
-       libextra/crypt_bcrypt.c, libextra/crypt_srpsha1.c,
-       libextra/ext_srp.c, libextra/gnutls_extra.c,
-       libextra/gnutls_openpgp.c, libextra/gnutls_srp.c: [no log message]
+       * NEWS: documented fix
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, README, configure.in: [no log message]
+       * doc/Makefile.am: errcodes printlist and alert-printlist become
+       EXTRA_PROGRAMS so they are not built by default.
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-28  Simon Josefsson <simon@josefsson.org>
 
-       * lib/Makefile.am, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_srp_passwd.h, lib/auth_srp_sb64.c,
-       lib/crypt.c, lib/crypt.h, lib/crypt_bcrypt.c, lib/crypt_bcrypt.h,
-       lib/crypt_srpsha1.c, lib/crypt_srpsha1.h, lib/ext_srp.c,
-       lib/ext_srp.h, lib/gnutls-extra.h, lib/gnutls_extra.c,
-       lib/gnutls_extra.h, lib/gnutls_openpgp.c, lib/gnutls_openpgp.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, libextra/Makefile.am,
-       libextra/auth_srp.c, libextra/auth_srp.h,
-       libextra/auth_srp_passwd.c, libextra/auth_srp_passwd.h,
-       libextra/auth_srp_sb64.c, libextra/crypt.c, libextra/crypt.h,
-       libextra/crypt_bcrypt.c, libextra/crypt_bcrypt.h,
-       libextra/crypt_srpsha1.c, libextra/crypt_srpsha1.h,
-       libextra/ext_srp.c, libextra/ext_srp.h, libextra/gnutls-extra.h,
-       libextra/gnutls_extra.c, libextra/gnutls_extra.h,
-       libextra/gnutls_openpgp.c, libextra/gnutls_openpgp.h,
-       libextra/gnutls_srp.c, libextra/gnutls_srp.h: Moved the gnutls-extra
-       files to libextra directory.
+       * cfg.mk: Fix bootstrap rule to avoid duplicate gettext files.
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-28  Simon Josefsson <simon@josefsson.org>
 
-       * lib/.cvsignore: [no log message]
+       * cfg.mk: Remove old hack.
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-28  Simon Josefsson <simon@josefsson.org>
 
-       * doc/tex/Makefile.am, doc/tex/funcs.tex, lib/Makefile.am: removed
-       html version of the documentation
+       * guile/pre-inst-guile.in, guile/src/Makefile.am: Drop guile
+       libgnutls-extra stuff.
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-28  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls-extra.h, lib/gnutls_extra.c, lib/gnutls_extra.h,
-       src/cli.c, src/serv.c: [no log message]
+       * doc/gnutls.texi: Avoid line wrapping copyright line.
 
-2002-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-28  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, README, configure.in, doc/tex/Makefile.am,
-       doc/tex/funcs.tex, doc/tex/macros.tex, lib/Makefile.am,
-       lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cert.c,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_openpgp.h, lib/gnutls_ui.h, lib/libgnutls-config.in,
-       src/Makefile.am, src/cli.c, src/common.c, src/serv.c, src/tests.c,
-       src/tls_test.c: Separated the library to gnutls and gnutls-extra.
-       gnutls-extra library contains the GPL parts of gnutls
+       * build-aux/config.rpath: Update config.rpath from gnulib.
 
-2002-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-28  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * doc/manpages/Makefile.am, doc/reference/gnutls-docs.sgml: Drop
+       more libgnutls-extra related stuff.
 
-2002-05-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README, configure.in, src/prime.c, src/tests.c: [no log message]
+       * NEWS, configure.ac, m4/hooks.m4: released 3.0.5
 
-2002-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README, configure.in, lib/auth_anon.c, lib/auth_dhe.c,
-       lib/auth_rsa.c, lib/auth_srp.c, lib/libgnutls-config.in,
-       src/prime.c: Added --modules option to libgnutls-config. This option
-       prints the extra modules that have been enabled into the library.
+       * tests/utils.c: added stdarg.h for vsnprintf.
 
-2002-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_global.c: [no log message]
+       * src/benchmark.c, src/benchmark.h: win32 fixes by David Hoyt.
 
-2002-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * doc/examples/Makefile.am: more builddir fixes.
 
-2002-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: configure script now prints the library license
+       * build-aux/config.rpath, gl/Makefile.am, gl/connect.c,
+       gl/inet_ntop.c, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
+       gl/m4/inet_ntop.m4, gl/recv.c, gl/send.c, gl/tests/Makefile.am,
+       gl/tests/connect.c, gl/tests/test-inet_ntop.c,
+       gl/tests/test-recv.c, gl/tests/test-send.c: Added recv(), send(),
+       connect() and inet_ntop() gnulib modules.
 
-2002-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/gnutls_int.h, lib/opencdk/opencdk.h: do not unconditionally
+       include sys/socket.h.
 
-2002-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dh_primes.c: Replaced group1 prime with a prime of 1024
-       bits
+       * gl/Makefile.am, gl/close.c, gl/m4/gnulib-cache.m4,
+       gl/m4/gnulib-comp.m4, gl/tests/Makefile.am, gl/tests/close.c: Added
+       gnulib close module.
 
-2002-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * COPYING.LIB, NEWS, README, lib/auth_anon.c, lib/auth_cert.c,
-       lib/auth_dhe.c, lib/auth_rsa.c, lib/debug.c, lib/ext_cert_type.c,
-       lib/ext_max_record.c, lib/gnutls.h.in.in, lib/gnutls_alert.c,
-       lib/gnutls_algorithms.c, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
-       lib/gnutls_buffers.c, lib/gnutls_cert.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_compress.c,
-       lib/gnutls_compress_int.c, lib/gnutls_constate.c,
-       lib/gnutls_datum.c, lib/gnutls_db.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_errors.c, lib/gnutls_extensions.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_mem.c, lib/gnutls_mpi.c,
-       lib/gnutls_num.c, lib/gnutls_pk.c, lib/gnutls_priority.c,
-       lib/gnutls_privkey.c, lib/gnutls_random.c, lib/gnutls_record.c,
-       lib/gnutls_session.c, lib/gnutls_session_pack.c, lib/gnutls_sig.c,
-       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_ui.c,
-       lib/gnutls_v2_compat.c, lib/gnutls_x509.c, lib/x509_asn1.c,
-       lib/x509_b64.c, lib/x509_der.c, lib/x509_extensions.c,
-       lib/x509_sig_check.c, lib/x509_verify.c: License changed to LGPL
+       * lib/nettle/rnd.c: do not use NULL for device_fd in windows.
 
-2002-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dh.c: [no log message]
+       * lib/opencdk/main.c: no need to include windows.h here.
 
-2002-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dh.c: Some cleanups in the Diffie Hellman code.
+       * .gitignore: more files to ignore
 
-2002-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: Added the missing user_ptr pointer in
-       gnutls_internals.
+       * src/certtool-cfg.c, src/cli.c, src/tls_test.c, src/udp-serv.c: 
+       w32socket changes.
 
-2002-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * gl/Makefile.am, gl/arpa_inet.in.h, gl/errno.in.h, gl/inet_pton.c,
+       gl/m4/ftruncate.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
+       gl/m4/ioctl.m4, gl/m4/perror.m4, gl/m4/pipe.m4, gl/m4/select.m4,
+       gl/m4/signal_h.m4, gl/m4/strerror_r.m4, gl/m4/sys_ioctl_h.m4,
+       gl/m4/sys_select_h.m4, gl/m4/thread.m4, gl/m4/yield.m4,
+       gl/math.in.h, gl/select.c, gl/signal.in.h, gl/strerror-override.c,
+       gl/strerror-override.h, gl/sys_select.in.h, gl/tests/Makefile.am,
+       gl/tests/arpa_inet.in.h, gl/tests/connect.c, gl/tests/ftruncate.c,
+       gl/tests/glthread/lock.c, gl/tests/glthread/lock.h,
+       gl/tests/glthread/thread.c, gl/tests/glthread/thread.h,
+       gl/tests/glthread/threadlib.c, gl/tests/glthread/yield.h,
+       gl/tests/inet_pton.c, gl/tests/ioctl.c, gl/tests/perror.c,
+       gl/tests/pipe.c, gl/tests/strerror_r.c, gl/tests/sys_ioctl.in.h,
+       gl/tests/test-connect.c, gl/tests/test-ftruncate.c,
+       gl/tests/test-ftruncate.sh, gl/tests/test-ioctl.c,
+       gl/tests/test-lock.c, gl/tests/test-perror.c,
+       gl/tests/test-perror.sh, gl/tests/test-perror2.c,
+       gl/tests/test-pipe.c, gl/tests/test-select-fd.c,
+       gl/tests/test-select-in.sh, gl/tests/test-select-out.sh,
+       gl/tests/test-select-stdin.c, gl/tests/test-select.c,
+       gl/tests/test-select.h, gl/tests/test-signal-h.c,
+       gl/tests/test-strerror_r.c, gl/tests/test-sys_ioctl.c,
+       gl/tests/test-sys_select.c, gl/tests/test-thread_create.c,
+       gl/tests/test-thread_self.c, gl/tests/w32sock.h, gl/w32sock.h,
+       maint.mk: new gnulib + added select + inet_pton.
 
-2002-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * src/common.h, src/udp-serv.c: netinet headers were put on an
+       ifndef _WIN32.
 
-2002-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls.h.in.in, lib/gnutls_state.c: Added
-       gnutls_state_set_ptr() and gnutls_state_get_ptr() functions, to
-       assist in callback functions.
+       * doc/cha-gtls-app.texi: more libextra doc fixes.
 
-2002-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.h: Corrected prototypes for callback selector
-       functions, which now accept the state.
+       * doc/cha-functions.texi: extra-api is no more
 
-2002-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s: corrected symbols for
+       coff.
 
-2002-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-25  Simon Josefsson <simon@josefsson.org>
 
-       * lib/auth_anon.c, lib/gnutls_anon_cred.c, lib/gnutls_cert.c,
-       lib/gnutls_dh.c, lib/gnutls_dh_primes.c, lib/gnutls_kx.c,
-       lib/gnutls_openpgp.c, lib/gnutls_pk.c, lib/gnutls_privkey.c,
-       lib/gnutls_sig.c, lib/gnutls_srp.c, lib/x509_sig_check.c: [no log
-       message]
+       * NEWS, lib/minitasn1/decoding.c, lib/minitasn1/element.c,
+       lib/minitasn1/element.h, lib/minitasn1/errors.c,
+       lib/minitasn1/gstr.c, lib/minitasn1/gstr.h, lib/minitasn1/int.h,
+       lib/minitasn1/libtasn1.h, lib/minitasn1/parser_aux.c,
+       lib/minitasn1/parser_aux.h, lib/minitasn1/structure.c,
+       lib/minitasn1/structure.h, lib/minitasn1/version.c: Update to
+       libtasn1 2.10.
 
-2002-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * configure.ac: changed mingw32 detection
 
-2002-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls_gcry.c, lib/gnutls_gcry.h,
-       lib/gnutls_int.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h: renamed
-       gnutls_gcry* to gnutls_mpi*
+       * configure.ac, lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/asm-coff/appro-aes-gcm-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/appro-aes-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-64-coff.s,
+       lib/accelerated/x86/asm-coff/padlock-x86-64-coff.s: added coff files
+       for mingw64
 
-2002-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls_global.c: Updated libgcrypt
-       initialization stuff. Now depends on libgcrypt 1.1.7, and only
-       initializes libgcrypt if this has not been done before.
+       * lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/asm-coff/appro-aes-x86-coff.s,
+       lib/accelerated/x86/asm-coff/cpuid-x86-coff.s,
+       lib/accelerated/x86/asm-coff/padlock-x86-coff.s,
+       lib/accelerated/x86/coff/appro-aes-x86-coff.s,
+       lib/accelerated/x86/coff/padlock-x86-coff.s: Added coff version of
+       cpuid.
 
-2002-05-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * .gitignore: more files to ignore
 
-2002-05-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * configure.ac, lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/coff/appro-aes-x86-coff.s,
+       lib/accelerated/x86/coff/padlock-x86-coff.s: Added COFF versions of
+       assembly files.
 
-2002-05-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_srp.c,
-       lib/auth_srp_passwd.c, lib/crypt.c, lib/crypt_bcrypt.c,
-       lib/crypt_srpsha1.c, lib/debug.c, lib/gnutls_auth.c,
-       lib/gnutls_dh.c, lib/gnutls_dh_primes.c, lib/gnutls_gcry.c,
-       lib/gnutls_gcry.h, lib/gnutls_openpgp.c, lib/gnutls_openpgp.h,
-       lib/gnutls_pk.c, lib/gnutls_privkey.c, lib/gnutls_srp.c,
-       lib/gnutls_x509.c, lib/x509_ASN.c, lib/x509_sig_check.c: Cleaned up
-       the big number support.
+       * THANKS: Added Jan.
 
-2002-05-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_alert.h: [no log message]
+       * lib/minitasn1/coding.c: use coding.c from libtasn1 git, to avoid
+       issue when compiled with gcc-4.6.
 
-2002-04-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c: [no log message]
+       * lib/accelerated/x86/aes-padlock.c: Corrected PHE-partial test.
 
-2002-04-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in: [no log message]
+       * NEWS: documented fixes
 
-2002-04-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * lib/gnutls_global.c: library mismatch error is no longer used
 
-2002-04-21  Timo Schulz <twoaday@gnutls.org>
+2011-10-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Adjust the code for the new OpenCDK version.
+       * lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/aes-padlock.c,
+       lib/accelerated/x86/aes-padlock.h,
+       lib/accelerated/x86/asm/padlock-common.s,
+       lib/accelerated/x86/sha-padlock.h: PHE-partial detection is not
+       being done, instead of checking for VIA nano.
 
-2002-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_compress_int.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       lib/gnutls_srp.c, lib/gnutls_state.h: Optimized memory handling in
-       the record protocol.
+       * lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/aes-padlock.h,
+       lib/accelerated/x86/asm/padlock-common.s: No need to check for
+       padlock nano in 32-bit systems, so simplify things.
 
-2002-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp.h, lib/gnutls_anon_cred.c, lib/gnutls_srp.c,
-       lib/gnutls_ui.c, src/cli.c, src/serv.c: Added stubs when SRP or
-       anonymous authentication are disabled, to preserve binary
-       compatibility
+       * lib/gnutls_hash_int.c: initialize only a fully available hash
 
-2002-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * lib/accelerated/x86/asm/padlock-common.s: is_padlock_nano is
+       behaving properly and saving registers.
 
-2002-04-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, doc/tex/ex4.tex, lib/gnutls.h.in.in,
-       lib/gnutls_state.c, src/cli.c, src/serv.c: gnutls_session_resumed()
-       was renamed to gnutls_session_is_resumed(), and changed semantics,
-       to make the return value be the obvious one.
+       * lib/gnutls_errors.c: removed libextra error codes.
 
-2002-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/ex4.tex, doc/tex/examples.tex: 
-       updated documentation for the new resumption check function
+       * guile/modules/gnutls.scm, guile/src/make-enum-header.scm: removed
+       extra.h header from guile code.
 
-2002-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls.h.in.in, lib/gnutls_int.h,
-       lib/gnutls_privkey.c, lib/gnutls_state.c, src/cli.c, src/serv.c: 
-       Added function to report if a session is a resumed one. See
-       gnutls_session_resumed().
+       * lib/includes/gnutls/gnutls.h.in: removed libextra errors.
 
-2002-04-18  Timo Schulz <twoaday@gnutls.org>
+2011-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Applied the fixes for the new code.
+       * src/serv.c, src/udp-serv.c: added extra headers.
 
-2002-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp.c: [no log message]
+       * .gitignore, doc/latex/.gitignore, gl/Makefile.am, gl/accept.c,
+       gl/bind.c, gl/frexp.c, gl/frexpl.c, gl/getpeername.c, gl/gettext.h,
+       gl/isnan.c, gl/listen.c, gl/m4/arpa_inet_h.m4, gl/m4/frexp.m4,
+       gl/m4/frexpl.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
+       gl/m4/include_next.m4, gl/m4/inet_pton.m4, gl/m4/isnand.m4,
+       gl/m4/isnanl.m4, gl/m4/ldexpl.m4, gl/m4/math_h.m4,
+       gl/m4/printf-frexpl.m4, gl/m4/printf.m4, gl/m4/stdlib_h.m4,
+       gl/m4/vasnprintf.m4, gl/math.in.h, gl/override/lib/gettext.h.diff,
+       gl/printf-frexp.c, gl/printf-frexpl.c, gl/recvfrom.c, gl/sendto.c,
+       gl/setsockopt.c, gl/shutdown.c, gl/socket.c, gl/stdlib.in.h,
+       gl/tests/Makefile.am, gl/tests/arpa_inet.in.h,
+       gl/tests/inet_pton.c, gl/tests/test-accept.c,
+       gl/tests/test-arpa_inet.c, gl/tests/test-bind.c,
+       gl/tests/test-getpeername.c, gl/tests/test-inet_pton.c,
+       gl/tests/test-isnanl.h, gl/tests/test-listen.c,
+       gl/tests/test-recvfrom.c, gl/tests/test-sendto.c,
+       gl/tests/test-setsockopt.c, gl/tests/test-shutdown.c,
+       gl/vasnprintf.c, maint.mk: added new gnulib and modules.
 
-2002-04-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/ext_cert_type.c, lib/ext_cert_type.h,
-       lib/ext_max_record.c, lib/ext_max_record.h, lib/ext_srp.c,
-       lib/ext_srp.h, lib/gnutls_extensions.c, lib/gnutls_srp.c,
-       src/gnutls-http-serv, src/serv.c: Some minor fixes in SRP support.
-       Changed extension generation. Now less allocation with malloc are
-       done.
+       * extra/Makefile.am, lib/Makefile.am, lib/accelerated/Makefile.am,
+       lib/accelerated/x86/Makefile.am, lib/algorithms/Makefile.am,
+       lib/auth/Makefile.am, lib/ext/Makefile.am, lib/nettle/Makefile.am,
+       lib/opencdk/Makefile.am, lib/openpgp/Makefile.am, src/Makefile.am: 
+       more builddir fixes by David Hoyt.
 
-2002-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dh.c: [no log message]
+       * lib/Makefile.am: Added includes in Makefile.am
 
-2002-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-56-bit-ciphersuites-01.txt: [no log
-       message]
+       * lib/accelerated/Makefile.am, lib/algorithms/Makefile.am,
+       lib/auth/Makefile.am, lib/ext/Makefile.am,
+       lib/minitasn1/Makefile.am, lib/nettle/Makefile.am,
+       lib/opencdk/Makefile.am, lib/openpgp/Makefile.am: Added
+       -I$(builddir)/../../gl to CFLAGS.
 
-2002-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_x509.c: Fixed description of
-       gnutls_x509_extract_certificate_subject_alt_name().
+       * lib/accelerated/x86/Makefile.am: Add -I to fix building.  Reported by "Hoyt, David" <hoyt6@llnl.gov>.
 
-2002-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-21  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog: [no log message]
+       * lib/Makefile.am, lib/x509/Makefile.am: Also add -I's for gnulib's
+       build directory, for mingw.  Reported by "Hoyt, David" <hoyt6@llnl.gov>.
 
-2002-04-13  Timo Schulz <twoaday@gnutls.org>
+2011-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Some modifications for the new OpenCDK code.
+       * NEWS, extra/gnutls_extra.c, guile/src/extra.c,
+       lib/auth/srp_passwd.c, lib/gnutls_srp.c: removed more extra.h
+       leftovers.
 
-2002-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphersuites.tex, doc/tex/errors.tex,
-       doc/tex/ex1.tex, doc/tex/examples.tex, doc/tex/gnutls.tex,
-       doc/tex/handshake.tex, doc/tex/serv1.tex, src/crypt.c: Documentation
-       fixes
+       * lib/accelerated/x86/asm/appro-aes-gcm-x86-64.s,
+       lib/accelerated/x86/asm/appro-aes-x86-64.s,
+       lib/accelerated/x86/asm/appro-aes-x86.s,
+       lib/accelerated/x86/asm/cpuid-x86-64.s,
+       lib/accelerated/x86/asm/cpuid-x86.s,
+       lib/accelerated/x86/asm/padlock-common.s,
+       lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s: updated gnustack note.
 
-2002-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * src/certtool-common.c, src/pkcs11.c, src/psk.c, src/srptool.c,
+       src/tests.c, src/tls_test.c: extra.h is no more.
 
-2002-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * Makefile.am, NEWS, README, configure.ac, doc/Makefile.am,
+       doc/cha-internals.texi, doc/examples/Makefile.am,
+       doc/manpages/Makefile.am, doc/reference/Makefile.am,
+       extra/Makefile.am, extra/gnutls-extra.pc.in, extra/gnutls_extra.c,
+       extra/gnutls_openssl.c, extra/includes/Makefile.am,
+       extra/includes/gnutls/openssl.h, extra/libgnutls-extra.map,
+       extra/openssl_compat.c, extra/openssl_compat.h,
+       guile/src/Makefile.am, libextra/Makefile.am,
+       libextra/gnutls-extra.pc.in, libextra/gnutls_extra.c,
+       libextra/gnutls_openssl.c, libextra/includes/Makefile.am,
+       libextra/includes/gnutls/extra.h,
+       libextra/includes/gnutls/openssl.h, libextra/libgnutls-extra.map,
+       libextra/openssl_compat.c, libextra/openssl_compat.h,
+       src/Makefile.am, tests/Makefile.am, tests/openpgp-keyring.c,
+       tests/suite/Makefile.am: libgnutls-extra is no more.
 
-2002-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, src/Makefile.am: [no log message]
+       * lib/pkcs11.c, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
+       lib/pkcs11_write.c: Added Stef to authors of pkcs11.
 
-2002-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acconfig.h, configure.in: fixed opencdk detection problem
+       * NEWS, THANKS: documented fix
 
-2002-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c, lib/gnutls_x509.h: better doc (internal) for
-       _gnutls_int2str()
+       * lib/x509/common.c: Corrected bug in gnutls_x509_data2hex. Report
+       and fix by Vincent Untz.
 
-2002-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * NEWS: updated for register_md5_handler().
 
-2002-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * libextra/includes/gnutls/extra.h, libextra/libgnutls-extra.map: 
+       completely drop gnutls_register_md5_handler()
 
-2002-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/serv1.tex, lib/gnutls.h.in.in, lib/gnutls_state.c: [no log
-       message]
+       * lib/accelerated/x86/asm/padlock-common.s: Added gnu-stack note.
 
-2002-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth_rsa.c, lib/gnutls_int.h, lib/gnutls_state.c: Added
-       function which disables the version check in the RSA premaster
-       secret -only needed in server side
+       * NEWS, doc/scripts/Makefile.am: released 3.0.4
 
-2002-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * tests/pathlen/ca-no-pathlen.pem,
+       tests/pathlen/no-ca-or-pathlen.pem: updated tests for new key ID
 
-2002-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/x509/privkey.c: key id is being calculated the same way in
+       private keys as in public keys.
 
-2002-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/Makefile.am, doc/tex/asn1.tex,
-       doc/tex/cover.tex.in, doc/tex/funcs.tex, doc/tex/gnutls.tex,
-       lib/Makefile.am: separated asn1 parser library and tls library
-       documentation
+       * doc/Makefile.am, doc/cha-intro-tls.texi, doc/cha-tls-app.texi,
+       doc/gnutls.texi, doc/latex/Makefile.am, doc/latex/gnutls.tex,
+       doc/scripts/gdoc, doc/scripts/mytexi2latex, doc/scripts/sort1.pl,
+       doc/scripts/split-texi.pl, doc/scripts/split.pl,
+       doc/sec-tls-app.texi, tests/nist-pkits/build-chain: 'How to use TLS
+       in application protocols' section was moved to introduction to TLS.
+       Fixes in perl.
 
-2002-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * src/tests.c, src/tests.h, src/tls_test.c: Added a test for servers
+       not accepting small records.
 
-2002-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_pk.c: changes for 0.4.1
+       * lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s: new version of padlock by
+       Andy.
 
-2002-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.h: [no log message]
+       * NEWS, configure.ac, m4/hooks.m4: bumped versions
 
-2002-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-12  Simon Josefsson <simon@josefsson.org>
 
-       * lib/x509_verify.c: fixed case where a certificate could be both
-       invalid and trusted.
+       * .gitignore: Add and sort.
 
-2002-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * doc/cha-intro-tls.texi: updated text
 
-2002-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, opencdk.m4: [no log message]
+       * m4/hooks.m4: check for nettle 2.4 or later
 
-2002-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-10  Simon Josefsson <simon@josefsson.org>
 
-       * Makefile.am: [no log message]
+       * src/cli.c: Fix type of keyid (finally!).
 
-2002-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-10  Simon Josefsson <simon@josefsson.org>
 
-       * acinclude.m4, buildconf, libgcrypt.m4, libmcrypt.m4, opencdk.m4: 
-       m4 files were removed from acinclude.m4
+       * doc/manpages/Makefile.am, lib/includes/gnutls/abstract.h: More doc
+       fixes.
 
-2002-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-10  Simon Josefsson <simon@josefsson.org>
 
-       * acinclude.m4, configure.in: added detection of opencdk
+       * lib/gnutls_x509.c: GTK-DOC doc fix.
 
-2002-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-10  Simon Josefsson <simon@josefsson.org>
 
-       * doc/README.autoconf: [no log message]
+       * src/cli.c: Use gnutls_openpgp_keyid_t type for keyid variable.
 
-2002-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-10  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog, NEWS, configure.in: [no log message]
+       * src/cli.c: Include stdint.h to get uint8_t.
 
-2002-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-10  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_x509.c, lib/gnutls_x509.h, lib/x509_verify.c,
-       lib/x509_verify.h: Improved X.509 time convertion functions
+       * src/cli.c: Revert "avoid usage of C99 constructs." This reverts commit 643ebdf12b415fc3edd3b7bc12654bc92d3aed24.
 
-2002-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_x509.c: 
-       GNUTLS_E_UNIX_TIME_LIMIT_REACHED error code was removed
+       * lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s: updated Andy's code.
+       padlock_shax_blocks does not require any more, the state to be of
+       128-byte size.
 
-2002-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ciphers.tex, doc/tex/handshake.tex,
-       doc/tex/translayer.tex: [no log message]
+       * src/tests.c: Corrected check for AES-GCM
 
-2002-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_verify.c: Added kludge in order to work with dates over
-       2036
+       * src/tests.c, src/tests.h, src/tls_test.c: test for camellia
 
-2002-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex3.tex: [no log message]
+       * src/cli.c: avoid usage of C99 constructs.
 
-2002-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_cert.c, lib/gnutls_int.h,
-       lib/gnutls_int_compat.c, lib/gnutls_openpgp.c, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, lib/gnutls_x509.h, lib/x509_verify.c,
-       src/common.c: GNUTLS_CERT_EXPIRED is no longer returned by
-       verification functions. Added functions to check the expiration and
-       activation date of peer's certificate. See
-       gnutls_certificate_expiration_time_peers().
+       * lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/asm/padlock-common.s,
+       lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s: is_padlock_nano moved to
+       padlock-common.s to allow easier upgrade to Andy's newer code.
 
-2002-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, configure.in, lib/defines.h, lib/x509_verify.c: 
-       Replaced mktime() with mktime_utc(). This corrects a bug with the
-       localtime returned by mktime().
+       * tests/cipher-test.c: Added more elaborate test of hash functions.
 
-2002-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, lib/auth_cert.c, lib/defines.h,
-       lib/gnutls_algorithms.c, lib/gnutls_buffers.c,
-       lib/gnutls_handshake.c, lib/gnutls_mem.h, lib/gnutls_x509.c,
-       lib/x509_asn1.c, lib/x509_der.c: merged changes from
-       gnutls_0_4_with_alloca.
+       * lib/gnutls_int.h, lib/x509/mpi.c: HASH2MAC macro is no more.
 
-2002-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.h: [no log message]
+       * NEWS, lib/gnutls_ui.c, lib/x509/common.c, lib/x509/common.h,
+       lib/x509/crq.c, lib/x509/output.c, lib/x509/x509.c, src/certtool.c: 
+       Key ID calculation is now consistent on all structures. It is a SHA1
+       hash of the subjectPublicKeyInfo structures.
 
-2002-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls_cert.h, lib/gnutls_pk.c: Optimized RSA
-       signature calculation
+       * doc/cha-library.texi: simplified documentation
 
-2002-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/gnutls_int.h: [no log message]
+       * NEWS, doc/cha-intro-tls.texi: documentation update
 
-2002-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c: [no log message]
+       * src/tests.c, src/tests.h, src/tls_test.c: Added tests for ECDHE,
+       AES-GCM and SHA256.
 
-2002-04-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS, configure.in, doc/TODO: [no log message]
+       * NEWS, lib/gnutls_sig.c: fixes to enable the external signing
+       callback to operate with TLS 1.2
 
-2002-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c, lib/gnutls_pk.c: [no log message]
+       * NEWS, doc/cha-auth.texi, doc/cha-cert-auth.texi, lib/auth/cert.c,
+       lib/gnutls_cert.c, lib/gnutls_privkey.c, lib/gnutls_x509.c,
+       lib/includes/gnutls/abstract.h, lib/includes/gnutls/compat.h,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Added new
+       signing callback in gnutls_privkey_t.
 
-2002-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_gcry.c, lib/gnutls_global.c, lib/gnutls_pk.c,
-       lib/gnutls_privkey.c, lib/gnutls_x509.c, lib/x509_asn1.h,
-       lib/x509_extensions.c, lib/x509_sig_check.c, lib/x509_verify.c: 
-       Error codes of ASN.1 parser are now independent, with a map to
-       gnutls' error codes.
+       * gl/Makefile.am, gl/m4/math_h.m4, gl/math.in.h: updated gnulib.
 
-2002-03-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c: cleanups
+       * NEWS: documented fix
 
-2002-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Added the text for
-       gnutls_openpgp_extract_key_pk_algorithm.
+       * lib/x509/x509.c: corrected bug in key id extraction. Reported by
+       Erik Jensen.
 
-2002-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/serv1.tex, lib/gnutls.h.in.in, lib/gnutls_x509.c,
-       src/cli.c, src/serv.c: Removed the CRL list parameter from
-       gnutls_certificate_set_x509_trust_*.
+       * lib/accelerated/x86/aes-padlock.c,
+       lib/accelerated/x86/aes-padlock.h,
+       lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s,
+       lib/accelerated/x86/hmac-padlock.c,
+       lib/accelerated/x86/sha-padlock.c, src/benchmark-cipher.c: better
+       detection of padlock PHE.
 
-2002-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: gnutls_certificate_set_x509_trust_*() now
-       accept single DER certificates or PEM certificate lists.
+       * .gitignore, NEWS, lib/accelerated/Makefile.am,
+       lib/accelerated/accelerated.c, lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/aes-padlock.c,
+       lib/accelerated/x86/aes-padlock.h,
+       lib/accelerated/x86/hmac-padlock.c,
+       lib/accelerated/x86/sha-padlock.c,
+       lib/accelerated/x86/sha-padlock.h, lib/accelerated/x86/x86.h,
+       lib/nettle/mac.c, tests/cipher-test.c: Updates for padlock hashes in
+       C7 nano. Requires a part of nettle to be included.
 
-2002-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c: [no log message]
+       * lib/accelerated/x86/aes-gcm-padlock.c: Always use encryption
+       direction.
 
-2002-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, lib/crypt_srpsha1.c, lib/gnutls_x509.c: Added
-       ability to read DSA DER formatted keys, and corrected bugs in DER
-       certificate reading.
+       * src/Makefile.am, src/serv.c: libextra is not needed for neither
+       gnutls-cli or serv.
 
-2002-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_db.c: [no log message]
+       * configure.ac: corrected path
 
-2002-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_compress.c, lib/gnutls_compress_int.c,
-       lib/gnutls_compress_int.h, lib/gnutls_constate.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_sig.c, lib/gnutls_srp.c, lib/gnutls_state.c,
-       lib/gnutls_ui.c, lib/x509_sig_check.c: Prefixed with underscore
-       several internal functions.
+       * lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s: updated padlock code.
 
-2002-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-04  Nikos Mavrogiannopoulos <nikos@thingfish.esat.kuleuven.be>
 
-       * src/cli.c: [no log message]
+       * lib/gnutls_str_array.h, lib/nettle/rnd.c, lib/system.c: fixes in
+       headers. Suggested by Bjorn Christensen.
 
-2002-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-04  Nikos Mavrogiannopoulos <nikos@thingfish.esat.kuleuven.be>
 
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_global.c,
-       lib/gnutls_x509.c: removed unneeded functions
+       * lib/accelerated/Makefile.am, lib/accelerated/intel/.gitignore,
+       lib/accelerated/intel/Makefile.am, lib/accelerated/intel/README,
+       lib/accelerated/intel/aes-gcm-padlock.c,
+       lib/accelerated/intel/aes-gcm-x86.c,
+       lib/accelerated/intel/aes-padlock.c,
+       lib/accelerated/intel/aes-padlock.h,
+       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h,
+       lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-x86.s,
+       lib/accelerated/intel/asm/cpuid-x86-64.s,
+       lib/accelerated/intel/asm/cpuid-x86.s,
+       lib/accelerated/intel/asm/padlock-x86-64.s,
+       lib/accelerated/intel/asm/padlock-x86.s,
+       lib/accelerated/intel/license.txt,
+       lib/accelerated/intel/sha-padlock.c, lib/accelerated/intel/x86.h,
+       lib/accelerated/x86/.gitignore, lib/accelerated/x86/Makefile.am,
+       lib/accelerated/x86/README, lib/accelerated/x86/aes-gcm-padlock.c,
+       lib/accelerated/x86/aes-gcm-x86.c,
+       lib/accelerated/x86/aes-padlock.c,
+       lib/accelerated/x86/aes-padlock.h, lib/accelerated/x86/aes-x86.c,
+       lib/accelerated/x86/aes-x86.h,
+       lib/accelerated/x86/asm/appro-aes-gcm-x86-64.s,
+       lib/accelerated/x86/asm/appro-aes-x86-64.s,
+       lib/accelerated/x86/asm/appro-aes-x86.s,
+       lib/accelerated/x86/asm/cpuid-x86-64.s,
+       lib/accelerated/x86/asm/cpuid-x86.s,
+       lib/accelerated/x86/asm/padlock-x86-64.s,
+       lib/accelerated/x86/asm/padlock-x86.s,
+       lib/accelerated/x86/license.txt, lib/accelerated/x86/sha-padlock.c,
+       lib/accelerated/x86/x86.h: intel directory renamed to x86.
 
-2002-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: added crlf
-       option
+       * NEWS: updated
 
-2002-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, doc/TODO, lib/auth_rsa.c, lib/gnutls_int.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_sig.c, lib/x509_der.c,
-       lib/x509_sig_check.c, src/cli.c, src/serv-gaa.c, src/serv-gaa.h,
-       src/serv.gaa: Some cleanups in the certificate authentication.
-       Parameters are passed together with the length, to avoid abuse.
+       * .gitignore, gl/Makefile.am, gl/error.c, gl/float.c,
+       gl/float.in.h, gl/fstat.c, gl/itold.c, gl/lseek.c, gl/m4/close.m4,
+       gl/m4/dup2.m4, gl/m4/fdopen.m4, gl/m4/float_h.m4, gl/m4/fstat.m4,
+       gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/msvc-nothrow.m4, gl/m4/pathmax.m4,
+       gl/m4/stdio_h.m4, gl/m4/sys_stat_h.m4, gl/m4/unistd_h.m4,
+       gl/math.in.h, gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c,
+       gl/msvc-nothrow.h, gl/opendir.c, gl/sockets.c, gl/sockets.h,
+       gl/stdio.in.h, gl/strings.in.h, gl/sys_stat.in.h,
+       gl/tests/Makefile.am, gl/tests/close.c, gl/tests/dup2.c,
+       gl/tests/fdopen.c, gl/tests/msvc-inval.c, gl/tests/msvc-inval.h,
+       gl/tests/test-close.c, gl/tests/test-dup2.c, gl/tests/test-fgetc.c,
+       gl/tests/test-fputc.c, gl/tests/test-fread.c,
+       gl/tests/test-fwrite.c, gl/unistd.in.h, gl/w32sock.h, maint.mk: 
+       Added new gnulib.
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_pk.c: [no log message]
+       * lib/gnutls_sig.c: added an assert
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * doc/cha-gtls-app.texi: doc fixes
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO: [no log message]
+       * lib/gnutls_dtls.c: replaced uint type.
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c, lib/x509_b64.c: Cleaned up the return values of
-       several functions.
+       * lib/nettle/egd.c, lib/nettle/rnd.c: fix compilation in windows
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa: added
-       option to read DER encoded certificates
+       * doc/cha-library.texi: updated text.
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/gnutls_cert.h, lib/gnutls_pk.c,
-       lib/gnutls_privkey.c: Optimized RSA decryption. (Very) Much faster
-       now
+       * lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-padlock.c,
+       lib/accelerated/intel/aes-padlock.h,
+       lib/accelerated/intel/sha-padlock.c, lib/gnutls_str.h: Added ability
+       to hash and hmac with VIA padlock.
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: read PKCS7 certificate chains in the reverse
-       order.
+       * NEWS: documented updates
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_compress_int.c: [no log message]
+       * lib/nettle/mac.c: optimizations in hmac.
 
-2002-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-10-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.h: [no log message]
+       * lib/crypto-backend.h, lib/gnutls_cipher_int.h,
+       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_mpi.h,
+       lib/gnutls_pk.h, lib/nettle/cipher.c, lib/nettle/mac.c,
+       lib/nettle/mpi.c, lib/nettle/pk.c, lib/nettle/rnd.c,
+       libextra/Makefile.am, libextra/fipsmd5.c, libextra/gnutls_extra.c: 
+       The hash_fast() and hmac_fast() functions can be registered as well
+       to allow backends with optimized (hw) implementations. In the nettle
+       backend the different is one memory allocation less.
 
-2002-03-26  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_asn1.c, lib/x509_asn1.h: add asn1_number_of_elements
-       function
+       * lib/gnutls_cipher_int.h, lib/gnutls_hash_int.h, lib/gnutls_mpi.h,
+       lib/gnutls_pk.h, lib/nettle/cipher.c, lib/nettle/mac.c,
+       lib/nettle/mpi.c, lib/nettle/pk.c, lib/nettle/rnd.c: operations
+       structures were made constants.
 
-2002-03-26  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_der.c: fix bug in asn1_get_start_end_der function
+       * lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_state.c: 
+       simplified usage of resume_true and resume_false.
 
-2002-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/common.c: [no log message]
+       * lib/gnutls_constate.c: simplified assignment of server_write and
+       client_write.
 
-2002-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c: [no log message]
+       * lib/accelerated/intel/aes-padlock.c,
+       lib/accelerated/intel/asm/padlock-x86.s: movdqa replaced with movaps
+       (C3 doesn't support SSE2 but only SSE)
 
-2002-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, doc/tex/ex3.tex: [no log message]
+       * lib/accelerated/intel/aes-padlock.c: manually keep the IV.
 
-2002-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, lib/gnutls_x509.c, src/common.c: changed semantics of
-       gnutls_x509_extract_certificate_pk_algorithm()
+       * lib/accelerated/intel/asm/padlock-x86.s: re-added ecb
 
-2002-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: [no log message]
+       * lib/accelerated/intel/asm/padlock-x86-64.s,
+       lib/accelerated/intel/asm/padlock-x86.s: removed unused modes.
 
-2002-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_buffers.c, lib/gnutls_global.c, lib/gnutls_record.c: 
-       Several optimizations
+       * src/benchmark-cipher.c, src/benchmark.h, src/cli-gaa.c,
+       src/cli-gaa.h, src/cli.gaa: Allow benchmarking the software version
+       of ciphers.
 
-2002-03-26  Timo Schulz <twoaday@gnutls.org>
+2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Now the pk algorithm is returned and not
-       only the key size in bits.
+       * configure.ac, src/p11common.c: fixed compilation without p11-kit
 
-2002-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h, lib/gnutls_pk.h, lib/gnutls_x509.c: [no log
-       message]
+       * lib/accelerated/intel/aes-padlock.c: enabled VIA acceleration.
 
-2002-03-26  Timo Schulz <twoaday@gnutls.org>
+2011-09-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: Function which is used
-       to extract key parameters for openpgp keys.
+       * src/benchmark.c: small update
 
-2002-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, lib/gnutls.h.in.in, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_pk.h, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, src/common.c, src/gnutls-http-serv, src/serv.c: 
-       added gnutls_x509_extract_certificate_pk_algorithm()
+       * THANKS: more people to thank
 
-2002-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, lib/gnutls.h.in.in,
-       lib/gnutls_int.h, lib/gnutls_x509.c, src/cli-gaa.c, src/cli.c,
-       src/cli.gaa, src/serv-gaa.c, src/serv.c, src/serv.gaa: Improved
-       PKCS7 support
+       * doc/examples/ex-pkcs11-list.c, src/benchmark.c, src/udp-serv.c: 
+       include config.h where needed.
 
-2002-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_x509.c: Added function which reads
-       the DER encoded certificate and key.  (now only works for RSA keys)
+       * tests/suite/testcompat-main: worked around openssl 1.0.0e bug
+       (avoid using -mtu).
 
-2002-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * src/udp-serv.c: udp-serv includes config.h.
 
-2002-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/Makefile.am, lib/auth_cert.c, lib/gnutls_global.c,
-       lib/gnutls_hash_int.c, lib/gnutls_random.c, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, lib/pkix.asn, lib/pkix_asn1_tab.c,
-       lib/x509_asn1.c, lib/x509_extensions.c, lib/x509_sig_check.c,
-       lib/x509_verify.c, src/gnutls-http-serv, src/serv.c: Added support
-       for RFC2630 - PKCS7 formated structures
+       * lib/opencdk/read-packet.c, lib/opencdk/stream.c: corrections in
+       debugging code.
 
-2002-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: [no log message]
+       * configure.ac, lib/accelerated/Makefile.am,
+       lib/accelerated/accelerated.c, lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/x86.h, lib/accelerated/x86.h: Better usage of
+       X86 conditionals to simplify and avoid an undefined warning in
+       x86-32.
 
-2002-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: [no log message]
+       * lib/nettle/egd.c: a hack to allow compilation on systems without
+       AF_LOCAL.
 
-2002-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c: more cleanups
+       * lib/gnutls_pcert.c: Disable openpgp code when not requested.
+       Reported by Bjorn Christensen.
 
-2002-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS, configure.in, lib/auth_cert.c: [no log message]
+       * tests/cve-2009-1416.c, tests/mpi.c, tests/rng-fork.c,
+       tests/x509cert-tl.c, tests/x509cert.c: more silent tests.
 
-2002-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c: Cleanups and fixes in X.509 certificate message
-       parsing
+       * NEWS, gl/m4/valgrind-tests.m4,
+       gl/override/m4/valgrind-tests.m4.diff, lib/gnutls_cipher.c,
+       lib/gnutls_compress.c, lib/gnutls_compress.h,
+       lib/gnutls_constate.c, lib/gnutls_int.h, tests/Makefile.am,
+       tests/libgcrypt.supp, tests/safe-renegotiation/Makefile.am,
+       tests/safe-renegotiation/suppressions.valgrind,
+       tests/suppressions.valgrind: Further optimizations in the
+       compression code. Re-enabled the test program by suppressing the
+       zlib warning.
 
-2002-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-23  Simon Josefsson <simon@josefsson.org>
 
-       * src/cli-gaa.c, src/common.h, src/serv-gaa.c, src/serv.c,
-       src/tls_test-gaa.c: [no log message]
+       * tests/utils.c: Redeuce self-test noise.
 
-2002-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: [no log message]
+       * .gitignore: more files to ignore
 
-2002-03-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c: Corrected code to avoid compiler's warnings
+       * configure.ac, doc/latex/Makefile.am, doc/latex/cover-epub.tex,
+       doc/latex/cover.tex.in, doc/latex/epub.tex,
+       doc/latex/macros-epub.tex: Added epub version of manual
 
-2002-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * doc/latex/gnutls.bib: corrected typos
 
-2002-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, acconfig.h, configure.in, lib/auth_anon.c,
-       lib/auth_srp.c, lib/auth_srp.h, lib/auth_srp_passwd.c,
-       lib/auth_srp_passwd.h, lib/auth_srp_sb64.c, lib/crypt.c,
-       lib/crypt_bcrypt.c, lib/crypt_srpsha1.c, lib/ext_srp.c,
-       lib/ext_srp.h, lib/gnutls_algorithms.c, lib/gnutls_anon_cred.c,
-       lib/gnutls_auth.c, lib/gnutls_extensions.c,
-       lib/gnutls_session_pack.c, lib/gnutls_srp.c, lib/gnutls_srp.h,
-       lib/gnutls_ui.c, src/serv.c: Added hooks not to include SRP and
-       Anonymous authentication
+       * doc/latex/gnutls.tex, doc/scripts/mytexi2latex: pdf is the image
+       format for latex.
 
-2002-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c, lib/gnutls_x509.c: Corrected behaviour when no
-       certificate is got by the peer.
+       * tests/Makefile.am: deflate test moved out
 
-2002-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/gnutls-http-serv: Added script which runs an
-       http server with the appropriate parameters.
+       * lib/gnutls_compress.c: removed uneeded vars
 
-2002-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS, lib/gnutls_record.c, lib/gnutls_state.c: CBC
-       protection support is disabled by default.
+       * lib/gnutls_cipher.c, lib/gnutls_compress.c,
+       lib/gnutls_compress.h, lib/gnutls_record.c, tests/Makefile.am,
+       tests/eagain-common.h, tests/mini-deflate.c: Simplified and
+       corrected decompression and compression.  Added test program.
 
-2002-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS: [no log message]
+       * src/common.c: print session ID
 
-2002-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_constate.c: [no log message]
+       * .gitignore, NEWS, lib/includes/gnutls/x509.h, lib/x509/output.c,
+       lib/x509/x509.c, tests/infoaccess.c: libgnutls:
+       gnutls_x509_crt_print supports printing AIA fields.  Support
+       caIssuers.
 
-2002-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_constate.c: [no log message]
+       * lib/includes/gnutls/x509.h: Improve gnutls_info_access_what_t
+       documentation.
 
-2002-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_cipher.c,
-       lib/gnutls_compress_int.c, lib/gnutls_compress_int.h,
-       lib/gnutls_constate.c: Optimizations and fixes in compression
+       * configure.ac, doc/scripts/gdoc, lib/auth/cert.c: Fix syntax-check
+       warnings.
 
-2002-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/auth_srp_passwd.c, lib/gnutls_cipher.c, lib/gnutls_x509.c: [no
-       log message]
+       * gl/Makefile.am, gl/closedir.c, gl/dirent-private.h,
+       gl/dirent.in.h, gl/filename.h, gl/isnan.c, gl/m4/argp.m4,
+       gl/m4/closedir.m4, gl/m4/dirent_h.m4, gl/m4/environ.m4,
+       gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4, gl/m4/frexp.m4,
+       gl/m4/frexpl.m4, gl/m4/getcwd.m4, gl/m4/getpass.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/iconv.m4, gl/m4/include_next.m4,
+       gl/m4/ldexpl.m4, gl/m4/lseek.m4, gl/m4/msvc-inval.m4,
+       gl/m4/nocrash.m4, gl/m4/opendir.m4, gl/m4/pathmax.m4,
+       gl/m4/printf-frexpl.m4, gl/m4/printf.m4, gl/m4/readdir.m4,
+       gl/m4/setenv.m4, gl/m4/signbit.m4, gl/m4/sleep.m4,
+       gl/m4/ssize_t.m4, gl/m4/stdint.m4, gl/m4/stdio_h.m4,
+       gl/m4/strings_h.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4,
+       gl/m4/sys_types_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4,
+       gl/m4/vasnprintf.m4, gl/math.in.h, gl/opendir.c, gl/readdir.c,
+       gl/stdio.in.h, gl/strings.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
+       gl/sys_types.in.h, gl/sys_uio.in.h, gl/tests/Makefile.am,
+       gl/tests/dup2.c, gl/tests/infinity.h, gl/tests/init.sh,
+       gl/tests/msvc-inval.c, gl/tests/msvc-inval.h, gl/tests/nan.h,
+       gl/tests/pathmax.h, gl/tests/putenv.c, gl/tests/stat.c,
+       gl/tests/test-dup2.c, gl/tests/test-fcntl-h.c,
+       gl/tests/test-fdopen.c, gl/tests/test-fgetc.c,
+       gl/tests/test-fprintf-posix.h, gl/tests/test-frexp.c,
+       gl/tests/test-frexpl.c, gl/tests/test-fseeko4.c,
+       gl/tests/test-fseeko4.sh, gl/tests/test-fstat.c,
+       gl/tests/test-ftello4.c, gl/tests/test-ftello4.sh,
+       gl/tests/test-isnand.h, gl/tests/test-isnanf.h,
+       gl/tests/test-isnanl.h, gl/tests/test-pathmax.c,
+       gl/tests/test-printf-posix.h, gl/tests/test-signbit.c,
+       gl/tests/test-sys_socket.c, gl/tests/test-sys_stat.c,
+       gl/tests/test-sys_types.c, gl/tests/test-time.c, gl/unistd.in.h,
+       gl/wchar.in.h, maint.mk: Update gnulib files.
 
-2002-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/auth_cert.c, lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_compress_int.c, lib/gnutls_compress_int.h,
-       lib/gnutls_constate.c, lib/gnutls_int.h, lib/gnutls_state.c,
-       lib/x509_ASN.c, lib/x509_ASN.y, lib/x509_asn1.c: Improved
-       compression support. Corrected several bugs in empty fragment
-       sending and receiving.
+       * lib/gnutls_dtls.c, lib/pkcs11_privkey.c, lib/x509/x509.c: Fix
+       gtk-doc Since: tags.
 
-2002-03-19  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-09-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/x509_asn1.c: segmentation fault bug fix
+       * doc/manpages/Makefile.am: Generated.
 
-2002-03-18  Timo Schulz <twoaday@gnutls.org>
+2011-09-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_openpgp.c: New OpenCDK interface for secure memory.
+       * NEWS, doc/manpages/Makefile.am, lib/includes/gnutls/x509.h,
+       lib/libgnutls.map, lib/pkix.asn, lib/pkix_asn1_tab.c,
+       lib/x509/x509.c, tests/Makefile.am, tests/infoaccess.c: Added
+       gnutls_x509_crt_get_authority_info_access.
 
-2002-03-18  Timo Schulz <twoaday@gnutls.org>
+2011-09-21  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_errors_int.h, lib/gnutls_openpgp.c: Detection of
-       revoked OpenPGP userID's.
+       * lib/accelerated/intel/aes-padlock.c: Make it build with -Wunused.
 
-2002-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c: [no log message]
+       * src/serv.c: do not trust getaddrinfo if IPv6 is not enabled. Patch
+       by Somchai Smythe.
 
-2002-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.h: added missing prototypes
+       * .gitignore, doc/scripts/split-texi.pl: Added missing files
 
-2002-03-18  Timo Schulz <twoaday@gnutls.org>
+2011-09-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: Support for multiple
-       userID's.
+       * configure.ac, lib/gnutls_privkey.c, lib/pkcs11.c, src/cli.c: 
+       Compilation fixes when pkcs11 is not enabled.
 
-2002-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_srp.c: [no log message]
+       * doc/Makefile.am, doc/gnutls.texi, doc/scripts/gdoc: enumerations
+       are visible in the texinfo output.
 
-2002-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/serv.c: removed default parameters arguments
+       * NEWS: released 3.0.3
 
-2002-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, THANKS, acconfig.h, configure.in,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_mem.c,
-       lib/gnutls_mem.h, src/cli.c: Added hooks for electric fence
+       * lib/accelerated/intel/Makefile.am: Added missing file.
 
-2002-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.CVS, src/Makefile.am: [no log message]
+       * doc/gnutls.texi, doc/latex/Makefile.am: doc fixes
 
-2002-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_verify.c: Checking of certificate lists even if the CA
-       size is zero. Pointed out by Andrew McDonald
+       * NEWS, lib/accelerated/intel/aes-padlock.c: VIA is disabled by
+       default.
 
-2002-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.CVS: [no log message]
+       * configure.ac, m4/hooks.m4: bumped version
 
-2002-03-13  Timo Schulz <twoaday@gnutls.org>
+2011-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Improved code for the various keyrings and
-       support for armored keyring files.
+       * NEWS, lib/auth/cert.c: Corrected memory leak in privkey
+       deinitialization. Reported by Dan Winship.
 
-2002-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in: [no log message]
+       * lib/accelerated/accelerated.c, lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-padlock.c,
+       lib/accelerated/intel/aes-x86.c,
+       lib/accelerated/intel/asm/cpuid-x86-64.s,
+       lib/accelerated/intel/asm/cpuid-x86.s, lib/accelerated/x86.h: 
+       eliminated inline assembly.
 
-2002-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS, acconfig.h, configure.in, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_state.c: made CBC chosen plaintext
-       protection configurable
+       * NEWS, lib/gnutls_dtls.c, lib/gnutls_int.h, lib/gnutls_record.c,
+       lib/includes/gnutls/dtls.h, lib/libgnutls.map: Added
+       gnutls_record_get_discarded() to return the number of discarded
+       record packets in a DTLS session.
 
-2002-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * configure.ac, lib/accelerated/Makefile.am,
+       lib/accelerated/accelerated.c, lib/accelerated/x86.h: Added better
+       detection of capabilities in 386. If cpuid doesn't exist don't try
+       to execute it.
 
-2002-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.h: [no log message]
+       * doc/cha-auth.texi, doc/scripts/mytexi2latex: updates on SRP
+       description
 
-2002-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: [no log message]
+       * src/benchmark.c: stress that values are bytes and not bits
 
-2002-03-11  Timo Schulz <twoaday@gnutls.org>
+2011-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Added missing stub for one function.
+       * src/serv-gaa.c: new gaa
 
-2002-03-10  Timo Schulz <twoaday@gnutls.org>
+2011-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: New error codes.
+       * doc/latex/macros.tex: removed unused macro
 
-2002-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, lib/gnutls_constate.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c, lib/gnutls_pk.c,
-       lib/gnutls_privkey.c, lib/gnutls_record.c, lib/gnutls_sig.c,
-       lib/gnutls_state.c, lib/gnutls_x509.c, lib/x509_asn1.h: some error
-       codes were renamed to more appropriate names
+       * doc/cha-library.texi: corrected name of gnutls_global_set_mutex.
 
-2002-03-09  Timo Schulz <twoaday@gnutls.org>
+2011-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/x509_ASN.c: Patches for the new OpenCDK
-       version and some stricter checks for memory leaks.
+       * lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in: 
+       Functions for RSA-EXPORT were marked as deprecated.
 
-2002-03-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS, doc/tex/ex3.tex, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.c, lib/gnutls_cert.c, lib/gnutls_constate.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_record.c, lib/gnutls_state.c, lib/gnutls_state.h,
-       lib/x509_verify.c, src/common.c: removed GNUTLS_CERT_TRUSTED
-       enumeration
+       * doc/cha-gtls-app.texi, lib/gnutls_errors.c: documentation update
 
-2002-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_state.c: [no log message]
+       * doc/cha-internals.texi: doc updates
 
-2002-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_record.c: 
-       Added protection against denial of service attacks, while receiving
-       empty packets.
+       * doc/cha-library.texi, doc/cha-support.texi: Downloading and
+       installing moved to main document
 
-2002-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c: [no log message]
+       * doc/latex/gnutls.tex: corrected page numbers.
 
-2002-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c: corrected memory leak
+       * lib/accelerated/intel/aes-padlock.c: Do not prefer GCM in padlock
+       because it is slow.
 
-2002-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_openpgp.c, lib/gnutls_record.c,
-       lib/gnutls_state.h: Added protection against the newly discovered
-       CBC attacks against TLS.  Experimental code.
+       * doc/TODO: updated
 
-2002-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/CertificateExample.c, src/CrlExample.c, src/asn1c.c: [no log
-       message]
+       * doc/scripts/gdoc: functions and enumerations are being added in
+       index.
 
-2002-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: Added references to internet drafts.
-       Added DHE_DSS with ARCFOUR from 56 bit draft.
+       * doc/Makefile.am, doc/cha-gtls-app.texi, doc/cha-internals.texi,
+       doc/gnutls-objects.eps: removed gnutls-objects.
 
-2002-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/README.autoconf, doc/TODO, doc/tex/alert.tex,
-       doc/tex/asn1.tex, doc/tex/examples.tex, doc/tex/handshake.tex,
-       doc/tex/record.tex: [no log message]
+       * doc/cha-gtls-app.texi: updated
 
-2002-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-extensions-02.txt,
-       doc/protocol/draft-ietf-tls-extensions-03.txt: Added new draft
+       * lib/gnutls_buffers.c, lib/gnutls_record.c: clarified format of
+       sequence number in gnutls_record_recv_seq.
 
-2002-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/Makefile.am, lib/auth_cert.c, lib/gnutls_alert.c,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_gcry.c,
-       lib/gnutls_global.c, lib/gnutls_pk.c, lib/gnutls_privkey.c,
-       lib/gnutls_x509.c, lib/x509_ASN.c, lib/x509_ASN.y, lib/x509_asn1.h,
-       lib/x509_extensions.c, lib/x509_sig_check.c, lib/x509_verify.c: 
-       Combined error codes of gnutls and ASN.1 parser. Also several
-       cleanups in the X.509 code.
+       * doc/cha-cert-auth.texi: Added a paragraph on opensc and trousers
+       PKCS #11 modules.
 
-2002-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/asn1.tex, doc/tex/ciphers.tex,
-       doc/tex/ciphersuites.tex, doc/tex/examples.tex, doc/tex/funcs.tex,
-       doc/tex/gnutls.tex, doc/tex/handshake.tex, doc/tex/record.tex,
-       doc/tex/translayer.tex: [no log message]
+       * lib/accelerated/x86.h: added license
 
-2002-03-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/alert.tex, doc/tex/gnutls.tex,
-       doc/tex/translayer.tex: Added alert protocol section
+       * NEWS, doc/cha-auth.texi, doc/cha-cert-auth.texi,
+       doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
+       doc/latex/gnutls.tex, doc/latex/macros.tex,
+       doc/scripts/mytexi2latex, lib/includes/gnutls/gnutls.h.in: updated
+       documentation. The function descriptions were converted to floats.
 
-2002-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_x509.c,
-       lib/x509_ASN.c, lib/x509_asn1.c, lib/x509_der.c, lib/x509_verify.c: 
-       Added the error UNIX_TIME_LIMIT_EXCEEDED, and corrected bugs in
-       X.509 certificate parsing.
+       * NEWS, lib/accelerated/intel/aes-padlock.c: disable the 64-bit
+       padlock until it is tested.
 
-2002-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/errors.tex, lib/gnutls.h.in.in: updated
+       * lib/accelerated/x86.h: corrected typo in cpuid for 386.
 
-2002-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/auth.tex, doc/tex/ciphersuites.tex,
-       doc/tex/gnutls.tex, doc/tex/handshake.tex, doc/tex/layers.tex,
-       doc/tex/macros.tex, doc/tex/resumedb.tex, doc/tex/translayer.tex: 
-       updated documentation
+       * doc/scripts/mytexi2latex: fix on double arguments
 
-2002-03-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, configure.in, doc/scripts/gdoc, lib/gnutls_cert.c,
-       lib/gnutls_handshake.c, lib/x509_ASN.y, lib/x509_asn1.c,
-       lib/x509_der.c: changes for pretty documentation and cleanups.
+       * .gitignore, doc/cha-cert-auth.texi, doc/cha-intro-tls.texi,
+       doc/gnutls.texi, doc/latex/Makefile.am, doc/latex/gnutls.tex,
+       doc/latex/macros.tex, doc/scripts/gdoc, doc/scripts/mytexi2latex,
+       doc/scripts/split.pl, lib/includes/gnutls/dtls.h,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/pkcs12.h,
+       lib/includes/gnutls/x509.h: Modified gdoc to be able to handle
+       enumerations. Only valid to latex.
 
-2002-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_state.c: pgp_fingerprint indicator is not cleared.
+       * NEWS, lib/auth/ecdh_common.c, lib/nettle/ecc_free.c,
+       lib/nettle/pk.c, lib/x509/verify-high.c, tests/x509cert-tl.c,
+       tests/x509cert.c: Memory leak fixes in ECC ciphersuites and the
+       trust_list.
 
-2002-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/tls_test.c: [no log message]
+       * lib/accelerated/intel/aes-gcm-padlock.c,
+       lib/accelerated/intel/aes-padlock.c,
+       lib/accelerated/intel/aes-padlock.h: simplified ecb encryption.
 
-2002-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-09  Simon Josefsson <simon@josefsson.org>
 
-       * src/tls_test.c: last minute changes for 0.3.91 release
+       * src/prime.c: Fix build warnings.
 
-2002-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-09  Simon Josefsson <simon@josefsson.org>
 
-       * ChangeLog, NEWS, configure.in, lib/auth_anon.c, lib/auth_cert.c,
-       lib/auth_dhe.c, lib/auth_srp.c, lib/gnutls_auth.c,
-       lib/gnutls_auth_int.h, lib/gnutls_errors.c, src/cli.c: Added checks
-       in authentication type renegotiation procedure.
+       * lib/pkcs11_write.c: Fix possible infloop and build warning about
+       uninitialied variable.
 
-2002-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-09  Simon Josefsson <simon@josefsson.org>
 
-       * doc/TODO: [no log message]
+       * lib/accelerated/intel/aes-gcm-padlock.c,
+       lib/accelerated/intel/aes-padlock.c,
+       lib/accelerated/intel/aes-padlock.h, lib/gnutls_sig.c,
+       lib/gnutls_state.c, lib/gnutls_ui.c,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
+       lib/includes/gnutls/x509.h, lib/openpgp/gnutls_openpgp.c,
+       lib/pkcs11_privkey.c: Fix build errors.
 
-2002-03-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-09  Simon Josefsson <simon@josefsson.org>
 
-       * lib/auth_cert.c, lib/gnutls_auth.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_state.c, lib/gnutls_state.h: Changed
-       behaviour in rehandshake procedure. Now can use rehandshake with a
-       different authentication method (ie. perform anonymous
-       authentication, and after that perform a certificate authentication,
-       or srp).
+       * doc/manpages/Makefile.am: Generated.
 
-2002-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-09  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_mem.h, lib/gnutls_x509.c: corrected certificate type
-       checking.
+       * gl/m4/getcwd.m4, gl/m4/gnulib-common.m4, gl/m4/largefile.m4,
+       gl/tests/init.sh, gl/tests/lstat.c, gl/tests/open.c,
+       gl/tests/stat.c, gl/tests/test-float.c, gl/unistd.in.h, maint.mk: 
+       Update gnulib files.
 
-2002-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli-gaa.c, src/cli-gaa.h, src/cli.c,
-       src/cli.gaa, src/common.h, src/crypt.c, src/serv-gaa.c,
-       src/serv-gaa.h, src/serv.c, src/serv.gaa, src/tls_test-gaa.c,
-       src/tls_test.gaa: Updated cli and server to read certificate and
-       keys from command line parameters. client, client-debug and server
-       are now being installed.
+       * lib/gnutls_handshake.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
+       lib/gnutls_state.c, lib/gnutls_ui.c, lib/nettle/mac.c: converted
+       quick data hashes to _gnutls_hash_fast and the hmac equivalent.
 
-2002-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c: 
-       Cleanups in gnutls_handshake.c and gnutls_algorithms.c.  Now cipher
-       suites get associated with a protocol version. This will allow
-       disabling several ciphersuites which are only defined in TLS 1.0,
-       when using SSL 3.0.
+       * lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-gcm-padlock.c,
+       lib/accelerated/intel/aes-padlock.c,
+       lib/accelerated/intel/aes-padlock.h,
+       lib/accelerated/intel/aes-x86.h, lib/accelerated/intel/padlock.c: 
+       Added padlock support to GCM ciphers.
 
-2002-03-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: No extensions are now sent if SSL 3.0 is
-       the only protocol advertized.
+       * lib/gnutls_extensions.c: do not reset length
 
-2002-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_session.c: added a check in the given parameters for
-       null
+       * NEWS, lib/gnutls_extensions.c: Do not send an empty extension
+       structure in server hello. This affects old implementations that do
+       not support extensions. Reported by J. Cameijo Cerdeira.
 
-2002-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/tests.c, src/tests.h, src/tls_test.c: added session resumption
-       test
+       * lib/gnutls_x509.c: Corrected documentation for
+       gnutls_certificate_set_x509_trust.  Reported by Stephen Lynch.
 
-2002-02-28  Timo Schulz <twoaday@gnutls.org>
+2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Changed the interface for the new OpenCDK
-       version.
+       * doc/cha-internals.texi: minimized example
 
-2002-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-gaa.c, src/cli.c, src/cli.gaa, src/serv-gaa.c,
-       src/tls_test-gaa.c, src/tls_test-gaa.h, src/tls_test.c,
-       src/tls_test.gaa: updated gaa files, and client options.
+       * lib/accelerated/intel/asm/padlock-x86-64.s,
+       lib/accelerated/intel/asm/padlock-x86.s: Added gnustack flag
 
-2002-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_state.c, lib/gnutls_state.h,
-       src/tests.c: gnutls_record_set_default_version() was prefixed with
-       underscore, and it is no longer exported.
+       * lib/accelerated/intel/aes-gcm-x86.c,
+       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/padlock.c,
+       lib/crypto-api.c, lib/crypto-backend.h, lib/ext/session_ticket.c,
+       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
+       lib/gnutls_constate.c, lib/includes/gnutls/crypto.h,
+       lib/nettle/cipher.c, lib/x509/privkey_pkcs8.c: Added encryption flag
+       to simplify and optimize key expansion.
 
-2002-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_db.c, lib/gnutls_int.h,
-       lib/gnutls_session_pack.c, lib/gnutls_state.c: Corrected session
-       resuming in certificate authentication. gnutls_deinit, does not
-       remove the session entry any more if it is invalid. Added
-       gnutls_db_remove_session() function, which does this.
+       * AUTHORS, lib/accelerated/accelerated.c,
+       lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-gcm-x86.c,
+       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h,
+       lib/accelerated/intel/asm/padlock-x86-64.s,
+       lib/accelerated/intel/asm/padlock-x86.s,
+       lib/accelerated/intel/padlock.c: Added support for VIA padlock based
+       on Andy's code (untested).
 
-2002-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/tls_test-gaa.c, src/tls_test-gaa.h, src/tls_test.gaa: added
-       missing files
+       * lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h: 
+       corrected AES-NI code.
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_mem.c: removed cycle from gnutls_free and
-       gnutls_secure_free.
+       * lib/gnutls_x509.c: simplified
+       gnutls_certificate_set_x509_trust_file. It uses
+       gnutls_certificate_set_x509_trust_mem.
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, src/tests.c, src/tests.h, src/tls_test.c: added check for
-       TLS closure alerts
+       * lib/gnutls_x509.c, lib/x509/x509.c: Modified fix of "Allow CA
+       importing of 0 certificates to succeed".
+       gnutls_x509_crt_list_import() is still failing when no certificates
+       are found and only gnutls_certificate_set_x509_trust_mem() returns
+       zero when no certificates are found.
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/tests.c, src/tests.h, src/tls_test.c: added openpgp
-       authentication test, and unknown cipher suites test
+       * NEWS, lib/gnutls_pubkey.c, lib/includes/gnutls/abstract.h,
+       lib/libgnutls.map, lib/pkcs11.c, lib/pkcs11_int.h,
+       lib/pkcs11_privkey.c, lib/pkcs11_write.c, lib/x509/key_decode.c,
+       lib/x509/key_encode.c, lib/x509/privkey.c, lib/x509/x509_int.h,
+       src/certtool-common.h, src/certtool.c, src/pkcs11.c, src/prime.c: 
+       Added support to read elliptic curve public keys from PKCS #11
+       tokens (untested).
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/ext_srp.c: Now we do not send the srp username as an
-       extension, if SRP is disabled.
+       * NEWS, lib/includes/gnutls/pkcs11.h, lib/libgnutls.map,
+       lib/pkcs11.c, lib/pkcs11_int.h, lib/pkcs11_privkey.c,
+       lib/pkcs11_write.c, src/certtool-common.c, src/certtool-common.h,
+       src/certtool-gaa.c, src/certtool.c, src/certtool.gaa,
+       src/p11common.c, src/p11tool-gaa.c, src/p11tool-gaa.h,
+       src/p11tool.c, src/p11tool.gaa, src/p11tool.h, src/pkcs11.c: Added
+       gnutls_pkcs11_privkey_generate().  p11tool can be used to generate
+       keys in tokens.
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-06  Simon Josefsson <simon@josefsson.org>
 
-       * src/cli.c, src/tests.c, src/tests.h, src/tls_test.c: added check
-       for client hello extensions.
+       * NEWS, lib/x509/x509.c, tests/parse_ca.c: libgnutls: Allow CA
+       importing of 0 certificates to succeed.  Reported by Jonathan Nieder <jrnieder@gmail.com> in
+       <http://bugs.debian.org/640639>.
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli.c, src/tests.c, src/tests.h,
-       src/tls_test.c: Added tls_test. This is program that can be used to
-       test TLS servers' parameters.
+       * ChangeLog: updated changelog
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_errors.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_state.c: Added
-       gnutls_record_set_default_version(). This is a low level function.
+       * README, README-alpha: simplified README
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in: SOCKET_PTR was removed
+       * lib/accelerated/intel/aes-x86.h: documented extra alignment
 
-2002-02-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in: corrected record_send() prototype
+       * lib/gnutls_record.c: cleaned-up code
 
-2002-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-04  Andreas Metzler <ametzler@downhill.at.eu.org>
 
-       * configure.in: updated for fcdump
+       * configure.ac: Add p11-kit-1 to gnutls.pc Requires.private.  If building with PKCS#11 support append p11-kit-1 to gnutls.pc
+       Requires.private.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * .gitignore: more files to ignore
 
-2002-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_pk.c: added (an impossible situation) check
+       * doc/cha-gtls-app.texi: documentation updates
 
-2002-02-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: [no log message]
+       * lib/gnutlsxx.cpp: updated for lowat
 
-2002-02-24  Timo Schulz <twoaday@gnutls.org>
+2011-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Fixed a possible buffer overflow.
+       * doc/cha-auth.texi, doc/cha-cert-auth.texi,
+       doc/cha-functions.texi, doc/cha-gtls-app.texi,
+       doc/cha-intro-tls.texi: documentation updates. @acronym was removed
+       from the cindex.
 
-2002-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/openpgp/Makefile.am: added missing makefile.am
+       * lib/includes/gnutls/compat.h: set_lowat was removed as a macro.
 
-2002-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/serv1.tex, lib/auth_anon.c,
-       lib/auth_anon.h, lib/auth_cert.h, lib/auth_dhe.c,
-       lib/auth_srp_passwd.c, lib/gnutls.h.in.in, lib/gnutls_anon_cred.c,
-       lib/gnutls_cert.c, lib/gnutls_dh.h, lib/gnutls_dh_primes.c,
-       lib/gnutls_int.h, lib/gnutls_ui.c, src/cli.c, src/serv.c: The Diffie
-       Hellman parameters are now stored in the credentials structures.
-       This will allow precomputation of signatures (for DHE cipher
-       suites).
+       * doc/cha-programs.texi: simplified examples
 
-2002-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS, configure.in, lib/gnutls_int.h, lib/gnutls_ui.h,
-       lib/x509_verify.c, src/cli.c: [no log message]
+       * doc/examples/ex-serv-pgp.c, tests/openpgp-certs/testcerts: 
+       explicitly enable openpgp certtype in tests.
 
-2002-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/common.c, src/serv.c: [no log message]
+       * NEWS: updated
 
-2002-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphers.tex, doc/tex/ciphersuites.tex,
-       doc/tex/errors.tex, doc/tex/ex3.tex, doc/tex/gnutls.tex,
-       doc/tex/resumedb.tex: [no log message]
+       * configure.ac, m4/hooks.m4: bumped version
 
-2002-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: [no log message]
+       * doc/cha-bib.texi, doc/cha-gtls-app.texi, doc/latex/gnutls.bib: 
+       more doc on MTU.
 
-2002-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_cert.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_openpgp.c, lib/gnutls_record.c,
-       lib/gnutls_x509.c, lib/x509_sig_check.c, lib/x509_verify.c: removed
-       GNUTLS_CERT_NONE (replaced by GNUTLS_E_NO_CERTIFICATE_FOUND).
-       removed GNUTLS_CERT_VALID (it's valid if it's not invalid)
+       * tests/openpgpself.c: explicitly enable openpgp certtype in tests.
 
-2002-02-23  Timo Schulz <twoaday@gnutls.org>
+2011-09-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: Bug fixes for
-       _verify_key and basic trust handling for keys.
+       * doc/cha-gtls-app.texi, lib/system_override.c: Added documentation
+       on asynchronous operation.
 
-2002-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, lib/debug.c: [no log message]
+       * configure.ac: do not exit configure if p11-kit is not found.
 
-2002-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_verify.c: [no log message]
+       * NEWS, lib/gnutls_priority.c: OpenPGP certificate type priority is
+       not enabled by default.
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_verify.c: [no log message]
+       * NEWS, doc/cha-gtls-app.texi, lib/gnutls_handshake.c,
+       lib/gnutls_int.h, lib/gnutls_priority.c: Added %NO_EXTENSIONS
+       priority string.
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: includes moved before #ifdef
+       * doc/printlist.c: doc fixes
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: [no log message]
+       * tests/suite/testcompat-main: disabled test
 
-2002-02-22  Timo Schulz <twoaday@gnutls.org>
+2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Added stubs for the case we don't have
-       OpenCDK support.
+       * libextra/openssl_compat.c, libextra/openssl_compat.h: removed old
+       and unused compatibility functions.
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex3.tex, lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/gnutls.h.in.in, lib/gnutls_cert.c, lib/gnutls_x509.c,
-       lib/x509_sig_check.c, lib/x509_verify.c, src/common.c, src/serv.c: 
-       Changed certificate verification functions.
+       * lib/includes/gnutls/x509.h, lib/x509/crl.c, lib/x509/crq.c,
+       lib/x509/extensions.c, lib/x509/key_decode.c, lib/x509/output.c,
+       lib/x509/privkey.c, lib/x509/x509.c, lib/x509/x509_int.h,
+       libextra/gnutls_openssl.c, src/crywrap/crywrap.c: corrected sign
+       type errors for integers.
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * lib/gnutls_record.c: Corrected error checking in
+       _gnutls_send_int().
 
-2002-02-22  Timo Schulz <twoaday@gnutls.org>
+2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: Implemented
-       gnutls_certificate_set_openpgp_key_mem.  Some basic routines for key
-       ownertrust.
+       * doc/cha-gtls-app.texi: doc updates
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.h, lib/gnutls.h.in.in, lib/gnutls_cert.c: added
-       trustdb stuff
+       * NEWS, src/certtool-cfg.c, src/common.h: removed unneeded header.
+       Documented updates.
 
-2002-02-22  Timo Schulz <twoaday@gnutls.org>
+2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Modified code for the new OpenCDK code.
+       * lib/nettle/ecc.h, lib/nettle/ecc_free.c,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
+       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_dbl_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/ecc_verify_hash.c: Avoid assert() and do not include
+       needless headers.
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: [no log message]
+       * tests/suite/testcompat: skip if datefudge is not available
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c: [no log message]
+       * lib/accelerated/x86.h: Modified cpuid for 32-bit x86 to avoid a
+       gcc issue (not finding a register).
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: moved private cipher suites to 0xFF
-       space.
+       * NEWS, src/Makefile.am, src/benchmark-cipher.c,
+       src/benchmark-tls.c, src/benchmark.h, src/cli-gaa.c, src/cli-gaa.h,
+       src/cli.gaa: Benchmark applications were incorporated to gnutls-cli
 
-2002-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/layers.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex, lib/gnutls.h.in.in,
-       lib/gnutls_alert.c, lib/gnutls_alert.h, lib/gnutls_algorithms.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_record.c, src/cli.c, src/serv.c: Several alert protocol
-       changes.
+       * lib/algorithms/ciphersuites.c: Corrected DH-ANON ciphersuite
+       names.
 
-2002-02-21  Timo Schulz <twoaday@gnutls.org>
+2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Fixed return code check for GnuTLS
-       functions.
+       * doc/cha-cert-auth.texi, doc/gnutls-pgp.eps, doc/gnutls-x509.eps: 
+       updated figures.
 
-2002-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_alert.c: [no log message]
+       * NEWS, lib/x509/x509.c: XmppAddr -> UTF8String
 
-2002-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_openpgp.c: set_key_server renamed
-       to set_keyserver
+       * lib/openpgp/gnutls_openpgp.c, lib/openpgp/privkey.c,
+       lib/x509/x509.c: more updates in private key copy.
 
-2002-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, NEWS, doc/tex/ex1.tex, doc/tex/serv1.tex, lib/debug.c,
-       lib/debug.h, lib/gnutls.h.in.in, lib/gnutls_alert.c, src/cli.c: 
-       Added gnutls_alert_str (allows printing alert number descriptions)
+       * lib/accelerated/intel/aes-x86.h: removed unused variable.
 
-2002-02-21  Timo Schulz <twoaday@gnutls.org>
+2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Fixed a segfault in the OpenPGP code.
+       * NEWS, lib/gnutls_privkey.c, lib/gnutls_x509.c,
+       lib/includes/gnutls/abstract.h, lib/openpgp/gnutls_openpgp.c,
+       lib/openpgp/gnutls_openpgp.h, lib/openpgp/privkey.c,
+       lib/x509/x509.c: gnutls_certificate_set_x509_key() and
+       gnutls_certificate_set_openpgp_key() operate as in gnutls 2.10.x and
+       do not require to hold the structures.
 
-2002-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c: Updated the openpgp certificate message,
-       fingerprint handling.
+       * lib/accelerated/intel/aes-gcm-x86.c,
+       lib/accelerated/intel/aes-x86.c: removed unused variables.
 
-2002-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.gaa, src/common.c,
-       src/common.h, src/serv-gaa.c, src/serv-gaa.h, src/serv.gaa: [no log
-       message]
+       * lib/gnutls_record.c: Allow out-of-order change_cipher_spec in
+       DTLS.
 
-2002-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_verify.c: some fixes in verification procedure
+       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/cha-intro-tls.texi, doc/examples/ex-cert-select-pkcs11.c,
+       lib/gnutls_buffers.c, lib/gnutls_pubkey.c, lib/gnutls_record.c: 
+       documentation changes.
 
-2002-02-19  Timo Schulz <twoaday@gnutls.org>
+2011-08-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/.cvsignore, lib/gnutls_cert.h, lib/gnutls_errors_int.h,
-       lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: Applied the patches to
-       fix the GDOC problem.  Some bug fixes all over the place and the
-       implementation of some function stubs.
+       * doc/examples/ex-client-srp.c, doc/examples/ex-serv-srp.c: 
+       gnutls/extra.h is not required for SRP.
 
-2002-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex3.tex, lib/gnutls.h.in.in, lib/gnutls_cert.c,
-       lib/gnutls_int.h, lib/gnutls_x509.c, lib/x509_sig_check.c,
-       src/common.c: removed CERT_CORRUPTED
+       * doc/latex/gnutls.tex: leave an empty page
 
-2002-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c: openpgp fingerprint is calculated dynamically.
+       * doc/cha-auth.texi, doc/cha-bib.texi, doc/cha-cert-auth.texi,
+       doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
+       doc/latex/gnutls.bib, doc/latex/gnutls.tex: documentation updates
 
-2002-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, lib/auth_cert.h, lib/gnutls.h.in.in: Added some
-       support the OpenPGP Certificate message, with key fingerprints.
+       * lib/nettle/rnd.c: unlock rnd mutex on error.
 
-2002-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, lib/auth_cert.c, lib/gnutls.h.in.in, lib/gnutls_int.h,
-       lib/gnutls_state.c, lib/gnutls_state.h, src/cli-gaa.c,
-       src/cli-gaa.h, src/cli.c, src/cli.gaa, src/common.c: Added some
-       stuff for the client to send the OpenPGP fingerprint.
+       * doc/cha-bib.texi, doc/latex/gnutls.bib: bibliography updated
 
-2002-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-22  Andreas Metzler <ametzler@debian.org>
 
-       * doc/tex/cover.tex.in: [no log message]
+       * lib/libgnutls.map: Export export_gnutls_openpgp_privkey_sign_hash.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/gnutls_pk.c: Corrected bug in RSA
-       authentication, responsible for random (very very rare, and
-       difficult to reproduce) failures.
+       * lib/gnutls_buffers.c, lib/system.c: AIX check moved to system.c.
 
-2002-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c, lib/x509_verify.c: [no log message]
+       * src/crywrap/crywrap.c: Handle memory allocation errors.
 
-2002-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c, lib/x509_verify.c: Improved X.509 verification
-       functions. They are still too primitive.
+       * doc/manpages/Makefile.am, doc/manpages/crywrap.8: The crywrap
+       manpage was removed due to license reasons.
 
-2002-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-22  Ludovic Courtès <ludo@gnu.org>
 
-       * lib/auth_rsa.c, lib/gnutls_dh.c: [no log message]
+       * guile/tests/priorities.scm: guile: Fix `priorities' test to use
+       `run-test'.  This is a followup to commit
+       cd7b8102316cd4151356c4b2b7909c7435593890 ("guile: Fix tests to match
+       the `exit' behavior introduced in Guile 2.0.1.").
 
-2002-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c: Some cleanups.
+       * src/crywrap/Makefile.am: include README to distribution.
 
-2002-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphersuites.tex, doc/tex/layers.tex: 
-       [no log message]
+       * lib/gnutls_ui.c: documentation fixes.
 
-2002-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/errors.tex, doc/tex/ex1.tex,
-       doc/tex/ex2.tex, doc/tex/layers.tex, doc/tex/serv1.tex,
-       doc/tex/srp1.tex, lib/gnutls.h.in.in, lib/gnutls_record.c,
-       src/cli.c, src/serv.c: [no log message]
+       * doc/cha-cert-auth.texi, doc/cha-internals.texi,
+       doc/cha-intro-tls.texi, doc/cha-library.texi,
+       doc/scripts/mytexi2latex: Use texinfo's word break.
 
-2002-02-15  Timo Schulz <twoaday@gnutls.org>
+2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Fixed some memory leaks.  Code to handle
-       ElGamal keys.  Some minor bug fixes.
+       * NEWS, m4/hooks.m4: updated for release
 
-2002-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_record.c: renamed gnutls_read to
-       gnutls_record_read and gnutls_write to gnutls_record_write.
+       * src/crywrap/Makefile.am: Added missing file
 
-2002-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/ciphersuites.tex,
-       doc/tex/cover.tex.in, doc/tex/errors.tex, doc/tex/ex1.tex,
-       doc/tex/ex2.tex, doc/tex/gnutls.tex, doc/tex/layers.ps,
-       doc/tex/layers.tex, doc/tex/serv1.tex, doc/tex/srp1.tex: Added TLS
-       Layers section.
+       * po/cs.po.in, po/fi.po.in, po/nl.po.in, po/pl.po.in, po/sv.po.in,
+       po/uk.po.in: Sync with TP.
 
-2002-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/Makefile.am: corrected typo
 
-2002-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/serv-gaa.c, src/serv.gaa: updated client and server
+       * lib/gnutls_buffers.c: Added hack for AIX systems that may not set
+       errno property on EAGAIN.
 
-2002-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-00.txt: removed
+       * doc/examples/ex-cert-select-pkcs11.c: simplified PKCS #11 token
+       example.
 
-2002-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_extensions.c,
-       lib/gnutls_extensions.h, lib/gnutls_record.c: Extension types now
-       use a 16 bit type field (following the current draft).  Some fixes
-       in the max record size extension.
+       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
+       lib/gnutls_record.c, lib/system_override.c: documentation updates
 
-2002-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/protocol/draft-ietf-tls-openpgp-keys-01.txt,
-       doc/tex/serv1.tex: [no log message]
+       * .gitignore: updated ignored files.
 
-2002-02-14  Timo Schulz <twoaday@gnutls.org>
+2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: Basic HKP keyserver
-       support.  Function to retrieve the key from the keyring by keyid,
-       fingerprint.
+       * tests/resume.c: Corrected session resumption test.
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c, lib/x509_verify.c: Verification function
-       returns the GNUTLS_CERT_VALID flag.
+       * tests/utils.c: Avoid using vfprintf() and use a combination of
+       vsnprintf and fputs instead. My gnulib has issues with them.
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog, doc/tex/ex3.tex, doc/tex/serv1.tex: [no log message]
+       * gl/Makefile.am, gl/m4/gnulib-cache.m4: added vfprintf-posix
+       (needed by tests)
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp_passwd.c, lib/gnutls_int.h, lib/gnutls_srp.c,
-       lib/gnutls_ui.h: Changed srp callback function parameters.
+       * configure.ac: depend on p11-kit 0.4+.
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dh_primes.c, src/serv.c: Corrected bugs in prime
-       generation.
+       * NEWS, lib/Makefile.am, lib/auth/cert.c, lib/auth/cert.h,
+       lib/gnutls_cert.c, lib/gnutls_str_array.h, lib/gnutls_x509.c,
+       lib/openpgp/gnutls_openpgp.c: Removed the limitation of one name per
+       certificate.
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli.c, src/common.c, src/serv-gaa.c,
-       src/serv-gaa.h, src/serv.c, src/serv.gaa: Server updated. Now
-       command line parameters are available.
+       * doc/cha-auth.texi: rephrased text on anonymous authentication.
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-gaa.c, src/cli.c, src/cli.gaa: [no log message]
+       * doc/cha-programs.texi: small update in psktool
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/x509_ASN.c: [no log message]
+       * NEWS: updated crywrap
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
-       src/common.c: Updated client
+       * NEWS: documented changes
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_kx.c, lib/gnutls_record.c: Direct access to version field
-       in the state was replaced by the function
-       gnutls_protocol_get_version().
+       * lib/auth/cert.c, lib/auth/cert.h, lib/gnutls_cert.c,
+       lib/gnutls_state.c, lib/gnutls_ui.c, lib/gnutls_x509.c,
+       lib/openpgp/gnutls_openpgp.c: gnutls_certificate_set_x509_key_file()
+       and friends support server name indication.  If multiple
+       certificates are set using this function the proper one will be
+       selected during a handshake, with the limitation of a single name
+       per certificate.
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c: Corrected bugs in RSA authentication. Random value
-       is not generated using the GNUTLS_STRONG_RANDOM flag, and fixed
-       client key exchange packet formating, to depend on the correct
-       version.
+       * lib/x509/x509.c: Documentation fixes.
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-17  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, lib/gnutls.h.in.in: [no log message]
+       * cfg.mk, src/crywrap/crywrap.c: Fix syntax-check nits.
 
-2002-02-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h, lib/x509_sig_check.c, lib/x509_verify.c: Added
-       GNUTLS_CERT_INVALID and GNUTLS_CERT_VALID of CertificateStatus
-       flags, which replace GNUTLS_CERT_NOT_TRUSTED.
+       * NEWS, lib/algorithms/ciphers.c: Added AES-256-GCM. Reported by
+       Benjamin Hof.
 
-2002-02-13  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_ASN.y: bug fix with bison 1.32
+       * NEWS: documented fix
 
-2002-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_anon.h, lib/auth_cert.h,
-       lib/auth_dhe.c, lib/gnutls.h.in.in, lib/gnutls_dh.c,
-       lib/gnutls_dh.h, lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_state.c,
-       lib/gnutls_state.h, lib/gnutls_ui.c, lib/gnutls_ui.h, src/cli.c,
-       src/common.c, src/serv.c: Added more functions to allow access to
-       Diffie Hellman parameters (partially at least). Corrected Diffie
-       Hellman stuff.
+       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, src/p11common.c: 
+       Introduced GNUTLS_PKCS11_PIN_WRONG flag to indicate the previously
+       given PIN is wrong.
 
-2002-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex: [no log message]
+       * NEWS: documented fix
 
-2002-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * doc/cha-programs.texi: some discussion on tokens.
 
-2002-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli-gaa.c, src/cli-gaa.h, src/cli.c,
-       src/cli.gaa: Made most ifdefs in client program, configurable via
-       command line.
+       * lib/pkcs11.c: Corrected issue when asking multiple times for PIN.
 
-2002-02-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/ext_cert_type.c: It does not send the cert_type extension if
-       only x.509 certificates are used.
+       * configure.ac: corrected configure test
 
-2002-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex3.tex, doc/tex/serv1.tex: Corrected
-       bugs in examples.
+       * src/crywrap/crywrap.c: dhparams have now the 'r' option.
 
-2002-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_priority.c: Priority cannot be set if not using the
-       OPENCDK library.
+       * src/crywrap/crywrap.c: use audit_log
 
-2002-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphersuites.tex, doc/tex/cover.tex.in,
-       doc/tex/gnutls.tex: Updated documentation.
+       * src/crywrap/crywrap.c, src/crywrap/crywrap.h: removed unneeded
+       defintions.
 
-2002-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/openpgp/cli_pub.asc, src/openpgp/cli_sec.asc: Added
-       new client pgp keys and a keyring
+       * src/cli.c: unload_file was modified to accept a pointer.
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .cvsusers, ChangeLog: [no log message]
+       * NEWS, src/crywrap/Makefile.am, src/crywrap/crywrap.c: corrected
+       child process cleanup and added option to specify diffie hellman
+       parameters file.
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * .gitignore: more files to ignore
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp_passwd.c: [no log message]
+       * doc/manpages/crywrap.8, src/crywrap/crywrap.c,
+       src/crywrap/crywrap.h: Corrected crywrap's verification procedure.
 
-2002-02-10  Timo Schulz <twoaday@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: High level support for
-       OpenPGP keyrings.
+       * src/serv.c: use gnutls_sec_param_to_pk_bits() for DH parameter
+       generation.
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * ChangeLog: Added ChangeLog [generated by CVS log]
+       * .gitignore, configure.ac, doc/manpages/Makefile.am,
+       doc/manpages/crywrap.8, gl/Makefile.am, gl/alphasort.c,
+       gl/argp-ba.c, gl/argp-eexst.c, gl/argp-fmtstream.c,
+       gl/argp-fmtstream.h, gl/argp-fs-xinl.c, gl/argp-help.c,
+       gl/argp-namefrob.h, gl/argp-parse.c, gl/argp-pin.c, gl/argp-pv.c,
+       gl/argp-pvh.c, gl/argp-xinl.c, gl/argp.h, gl/basename-lgpl.c,
+       gl/dirent.in.h, gl/dirname-lgpl.c, gl/dirname.h, gl/dosname.h,
+       gl/fpucw.h, gl/frexp.c, gl/frexpl.c, gl/fseeko.c, gl/fseterr.c,
+       gl/fseterr.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c,
+       gl/getopt_int.h, gl/getsubopt.c, gl/isnan.c, gl/isnand-nolibm.h,
+       gl/isnand.c, gl/isnanf-nolibm.h, gl/isnanf.c, gl/isnanl-nolibm.h,
+       gl/isnanl.c, gl/m4/alphasort.m4, gl/m4/argp.m4, gl/m4/dirent_h.m4,
+       gl/m4/dirname.m4, gl/m4/double-slash-root.m4, gl/m4/dup2.m4,
+       gl/m4/eealloc.m4, gl/m4/environ.m4, gl/m4/exponentd.m4,
+       gl/m4/exponentf.m4, gl/m4/exponentl.m4, gl/m4/frexp.m4,
+       gl/m4/frexpl.m4, gl/m4/getcwd.m4, gl/m4/getopt.m4,
+       gl/m4/getsubopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4,
+       gl/m4/isnand.m4, gl/m4/isnanf.m4, gl/m4/isnanl.m4, gl/m4/ldexpl.m4,
+       gl/m4/lstat.m4, gl/m4/malloca.m4, gl/m4/math_h.m4,
+       gl/m4/mempcpy.m4, gl/m4/mode_t.m4, gl/m4/nocrash.m4, gl/m4/open.m4,
+       gl/m4/printf-frexp.m4, gl/m4/printf-frexpl.m4, gl/m4/putenv.m4,
+       gl/m4/rawmemchr.m4, gl/m4/scandir.m4, gl/m4/setenv.m4,
+       gl/m4/signbit.m4, gl/m4/sleep.m4, gl/m4/stat.m4,
+       gl/m4/strchrnul.m4, gl/m4/strndup.m4, gl/m4/strnlen.m4,
+       gl/m4/symlink.m4, gl/m4/sysexits.m4, gl/m4/vfprintf-posix.m4,
+       gl/m4/vprintf-posix.m4, gl/math.in.h, gl/mempcpy.c,
+       gl/printf-frexp.c, gl/printf-frexp.h, gl/printf-frexpl.c,
+       gl/printf-frexpl.h, gl/rawmemchr.c, gl/rawmemchr.valgrind,
+       gl/scandir.c, gl/signbitd.c, gl/signbitf.c, gl/signbitl.c,
+       gl/sleep.c, gl/strchrnul.c, gl/strchrnul.valgrind, gl/stripslash.c,
+       gl/strndup.c, gl/strnlen.c, gl/sysexits.in.h, gl/tests/Makefile.am,
+       gl/tests/dummy.c, gl/tests/dup2.c, gl/tests/fpucw.h,
+       gl/tests/getcwd-lgpl.c, gl/tests/ignore-value.h, gl/tests/lstat.c,
+       gl/tests/malloca.c, gl/tests/malloca.h, gl/tests/malloca.valgrind,
+       gl/tests/minus-zero.h, gl/tests/nan.h, gl/tests/open.c,
+       gl/tests/putenv.c, gl/tests/same-inode.h, gl/tests/setenv.c,
+       gl/tests/stat.c, gl/tests/symlink.c, gl/tests/test-argp-2.sh,
+       gl/tests/test-argp.c, gl/tests/test-dirent.c, gl/tests/test-dup2.c,
+       gl/tests/test-environ.c, gl/tests/test-fprintf-posix.h,
+       gl/tests/test-frexp.c, gl/tests/test-frexpl.c,
+       gl/tests/test-fseeko3.c, gl/tests/test-fseeko3.sh,
+       gl/tests/test-fseterr.c, gl/tests/test-getcwd-lgpl.c,
+       gl/tests/test-getopt.c, gl/tests/test-getopt.h,
+       gl/tests/test-getopt_long.h, gl/tests/test-ignore-value.c,
+       gl/tests/test-isnand-nolibm.c, gl/tests/test-isnand.h,
+       gl/tests/test-isnanf-nolibm.c, gl/tests/test-isnanf.h,
+       gl/tests/test-isnanl-nolibm.c, gl/tests/test-isnanl.h,
+       gl/tests/test-lstat.c, gl/tests/test-lstat.h,
+       gl/tests/test-malloc-gnu.c, gl/tests/test-malloca.c,
+       gl/tests/test-math.c, gl/tests/test-open.c, gl/tests/test-open.h,
+       gl/tests/test-printf-frexp.c, gl/tests/test-printf-frexpl.c,
+       gl/tests/test-printf-posix.h, gl/tests/test-printf-posix.output,
+       gl/tests/test-rawmemchr.c, gl/tests/test-setenv.c,
+       gl/tests/test-signbit.c, gl/tests/test-sleep.c,
+       gl/tests/test-stat.c, gl/tests/test-stat.h,
+       gl/tests/test-strchrnul.c, gl/tests/test-strnlen.c,
+       gl/tests/test-symlink.c, gl/tests/test-symlink.h,
+       gl/tests/test-sysexits.c, gl/tests/test-unsetenv.c,
+       gl/tests/test-vfprintf-posix.c, gl/tests/test-vfprintf-posix.sh,
+       gl/tests/test-vprintf-posix.c, gl/tests/test-vprintf-posix.sh,
+       gl/tests/unsetenv.c, gl/vfprintf.c, gl/vprintf.c, m4/hooks.m4,
+       src/Makefile.am, src/crywrap/Makefile.am, src/crywrap/README,
+       src/crywrap/crywrap.c, src/crywrap/crywrap.h, src/crywrap/primes.h: 
+       Added crywrap to the distributed programs.
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_verify.c: [no log message]
+       * lib/accelerated/intel/.gitignore: files to ignore
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.c: [no log message]
+       * doc/cha-internals.texi: doc updates
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * doc/cha-auth.texi, doc/cha-cert-auth.texi,
+       doc/cha-ciphersuites.texi, doc/cha-errors.texi,
+       doc/cha-functions.texi, doc/cha-gtls-app.texi,
+       doc/cha-internals.texi, doc/cha-intro-tls.texi,
+       doc/cha-library.texi, doc/cha-support.texi: do not use capitals in
+       index names.
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in: [no log message]
+       * .gitignore, doc/latex/.gitignore: more files to ignore.
 
-2002-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c: [no log message]
+       * NEWS, lib/pkcs11.c: If a module is dlopened twice, then
+       deinitialize the second load.
 
-2002-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/common.c, src/serv.c: [no log message]
+       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
+       doc/cha-library.texi, lib/gnutls_buffers.c, lib/gnutls_record.c: 
+       documentation updates
 
-2002-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_algorithms.c: [no log message]
+       * doc/cha-library.texi: memory handling section is no longer
+       applicable
 
-2002-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_algorithms.c: Added
-       gnutls_certificate_type_get_name() function.
+       * doc/cha-gtls-app.texi: Added discussion on DTLS functionality
 
-2002-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt,
-       lib/gnutls.h.in.in, lib/gnutls_cert.c, lib/gnutls_ui.h: [no log
-       message]
+       * doc/cha-programs.texi, doc/cha-support.texi, doc/cha-tls-app.texi: 
+       corrected typos
 
-2002-02-09  Timo Schulz <twoaday@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: * Applied the fixed for the memory leaks.
+       * doc/cha-gtls-app.texi: updated openssl text
 
-2002-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/serv.c: [no log message]
+       * doc/cha-gtls-app.texi: correct typos
 
-2002-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp.c, lib/auth_srp.h, lib/auth_srp_passwd.c,
-       lib/auth_srp_passwd.h, lib/gnutls_cert.c, lib/gnutls_int.h,
-       lib/gnutls_srp.c, lib/gnutls_srp.h, lib/gnutls_ui.h,
-       lib/gnutls_x509.c: Added ability for an SRP server to use multiple
-       password files. The password file is selected on the fly (handshake)
-       using a callback function.
+       * doc/manpages/gnutls-cli.1: do not escape \#
 
-2002-02-09  Timo Schulz <twoaday@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.h, lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: * auth_cert.h: Added OpenPGP keyring item.  * gnutls_openpgp.c: Improved support for keyring handling.
+       * doc/cha-cert-auth.texi, doc/cha-intro-tls.texi: more updates
 
-2002-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c: Some fixes in ciphertext2compressed handling
+       * doc/cha-bib.texi, doc/cha-preface.texi, doc/latex/gnutls.bib: 
+       Added reference to anderson's book
 
-2002-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_alert.c, lib/gnutls_cipher.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h: Removed the GNUTLS_E_MAC_FAILED error. Now
-       only GNUTLS_E_DECRYPTION_FAILED error is used. That we don't leak
-       any information about the result of a possible attack.
+       * doc/Makefile.am, doc/cha-cert-auth.texi, doc/cha-internals.texi,
+       doc/gnutls-certificate-user-use-case.eps,
+       doc/gnutls-extensions.eps, doc/gnutls.texi,
+       doc/scripts/mytexi2latex, lib/x509/crl_write.c, lib/x509/crq.c,
+       lib/x509/pkcs12.c, lib/x509/privkey_pkcs8.c, lib/x509/x509.c: 
+       Internals section updated.
 
-2002-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/gnutls_cert.c, lib/gnutls_openpgp.h: Added LIBOPENCDK ifdefs
-       (suggested by Andrew McDonald)
+       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/examples/ex-crq.c,
+       lib/gnutls_pubkey.c, lib/includes/gnutls/compat.h,
+       lib/includes/gnutls/x509.h, lib/pkcs11.c, lib/pkcs11_write.c,
+       lib/x509/crq.c: Documentation updates. gnutls_x509_crq_sign2() and
+       gnutls_x509_crl_sign2() were removed from the deprecate list to ease
+       generation of crl and crq structures.
 
-2002-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_ASN.c: Added bison generated file
+       * doc/alert-printlist.c, doc/cha-intro-tls.texi,
+       doc/cha-library.texi, doc/cha-programs.texi, doc/errcodes.c,
+       doc/printlist.c: updates
 
-2002-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt: [no log message]
+       * doc/latex/gnutls.tex: changed paper size.
 
-2002-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt: changed the
-       introduction (again)
+       * lib/gnutls_global.c: doc update
 
-2002-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_priority.c: [no log message]
+       * doc/alert-printlist.c, doc/errcodes.c, doc/printlist.c: reduced
+       space taken by descriptions.
 
-2002-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, src/cli.c, src/openpgp/cli_pub.asc,
-       src/openpgp/cli_sec.asc: Corrected behaviour of client openpgp
-       certificate selection.
+       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi: more updates.
 
-2002-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.c: [no log message]
+       * NEWS: documented fixes
 
-2002-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.c, lib/gnutls_ui.h: removed
-       gnutls_certificate_get_ours_index()
+       * lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h: 
+       Force alignment for AES-NI to the runtime rather than on the
+       structures.  Corrects issue on some systems (reported by Andreas
+       Radke).
 
-2002-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_asn1_tab.c, lib/pkcs1_asn1_tab.c: Added asn1 file
+       * doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
+       doc/cha-library.texi, lib/system_override.c: Added session
+       initialization discussion
 
-2002-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_ui.h, lib/gnutls_x509.c: Modified
-       gnutls_x509_extract_subject_alt_name() to return the type, instead
-       of storing it to a pointer.
+       * doc/cha-cert-auth.texi: more updates
 
-2002-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, lib/x509_extensions.c: Added function which
-       returns the subjectAltName (subject_dns_name was obsoleted).
+       * doc/cha-auth.texi, doc/cha-gtls-app.texi, lib/gnutls_psk.c,
+       lib/gnutls_x509.c, lib/openpgp/gnutls_openpgp.c: updated
+       documentation
 
-2002-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS: added Timo
+       * lib/pkcs11.c: document flags
 
-2002-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt: [no log message]
+       * NEWS: corrected typo
 
-2002-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/crypt_bcrypt.c, lib/gnutls_cert.c, lib/gnutls_num.c,
-       lib/gnutls_num.h, lib/x509_extensions.c, src/common.c: [no log
-       message]
+       * lib/README: removed reference to pakchois
 
-2002-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_verify.c: Changed the X.509 certificate verification
-       algorithm. Now if any of the certificates in the certificate path is
-       expired (except the first one), we return GNUTLS_CERT_NOT_TRUSTED.
+       * lib/pkcs11.c: Prevent from loading twice the same module.
 
-2002-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.h: [no log message]
+       * lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-x86.s: Added note.GNU-stack to
+       prevent marking the library as using an executable stack. Reported
+       by Andreas Metzler.
 
-2002-02-05  Timo Schulz <twoaday@gnutls.org>
+2011-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: Changes the function
-       name to make clear OpenPGP uses keys and not certificates like
-       X.509.
+       * configure.ac: bumped version
 
-2002-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c, lib/gnutls_ui.h, src/common.c: Changes for
-       gnutls_openpgp_name structure
+       * lib/accelerated/intel/asm/appro-aes-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-x86.s: Included appro's updates
+       to AES-NI.
 
-2002-02-04  Timo Schulz <twoaday@gnutls.org>
+2011-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h, lib/gnutls_ui.h: Now
-       OpenPGP uses its own context for DN.
+       * lib/auth/cert.c: better placement of ifdefs.
 
-2002-02-03  Timo Schulz <twoaday@gnutls.org>
+2011-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: More fixes for the GnuTLS OpenPGP code.
+       * doc/Makefile.am, doc/cha-gtls-app.texi, doc/cha-internals.texi,
+       doc/gnutls-extensions.eps, doc/gnutls-extensions_st.eps,
+       doc/gnutls-mod_auth_st.eps, doc/gnutls-modauth.eps,
+       doc/latex/Makefile.am, doc/latex/gnutls.tex,
+       doc/scripts/mytexi2latex: Added discussion of the provided
+       cryptographic functions. Internals is now included in the latex
+       document (needs rewrite though)
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-03  Simon Josefsson <simon@josefsson.org>
 
-       * doc/tex/ex3.tex, lib/gnutls.h.in.in, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, src/common.c: renamed the gnutls_dn structure to
-       gnutls_x509_dn
+       * lib/Makefile.am, lib/accelerated/Makefile.am,
+       lib/accelerated/accelerated.c, lib/accelerated/cryptodev.c,
+       lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-gcm-x86.c,
+       lib/accelerated/intel/aes-x86.c, lib/algorithms.h,
+       lib/algorithms/Makefile.am, lib/algorithms/cert_types.c,
+       lib/algorithms/ciphers.c, lib/algorithms/ciphersuites.c,
+       lib/algorithms/ecc.c, lib/algorithms/kx.c, lib/algorithms/mac.c,
+       lib/algorithms/protocols.c, lib/algorithms/publickey.c,
+       lib/algorithms/secparams.c, lib/algorithms/sign.c,
+       lib/auth/Makefile.am, lib/auth/anon.c, lib/auth/anon.h,
+       lib/auth/anon_ecdh.c, lib/auth/cert.c, lib/auth/cert.h,
+       lib/auth/dh_common.c, lib/auth/dh_common.h, lib/auth/dhe.c,
+       lib/auth/dhe_psk.c, lib/auth/ecdh_common.c, lib/auth/ecdh_common.h,
+       lib/auth/psk.c, lib/auth/psk.h, lib/auth/psk_passwd.c,
+       lib/auth/psk_passwd.h, lib/auth/rsa.c, lib/auth/rsa_export.c,
+       lib/auth/srp.c, lib/auth/srp.h, lib/auth/srp_passwd.c,
+       lib/auth/srp_passwd.h, lib/auth/srp_rsa.c, lib/auth/srp_sb64.c,
+       lib/crypto-api.c, lib/crypto-backend.c, lib/crypto-backend.h,
+       lib/crypto.h, lib/debug.c, lib/debug.h, lib/ext/Makefile.am,
+       lib/ext/cert_type.c, lib/ext/cert_type.h, lib/ext/ecc.c,
+       lib/ext/ecc.h, lib/ext/max_record.c, lib/ext/max_record.h,
+       lib/ext/safe_renegotiation.c, lib/ext/safe_renegotiation.h,
+       lib/ext/server_name.c, lib/ext/server_name.h,
+       lib/ext/session_ticket.c, lib/ext/session_ticket.h,
+       lib/ext/signature.c, lib/ext/signature.h, lib/ext/srp.c,
+       lib/ext/srp.h, lib/gcrypt/Makefile.am, lib/gcrypt/cipher.c,
+       lib/gcrypt/init.c, lib/gcrypt/mac.c, lib/gcrypt/mpi.c,
+       lib/gcrypt/pk.c, lib/gcrypt/rnd.c, lib/gnutls_alert.c,
+       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth.h,
+       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cert.c,
+       lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
+       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
+       lib/gnutls_compress.h, lib/gnutls_constate.c,
+       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
+       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
+       lib/gnutls_dh_primes.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
+       lib/gnutls_ecc.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
+       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
+       lib/gnutls_global.c, lib/gnutls_global.h, lib/gnutls_handshake.c,
+       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
+       lib/gnutls_hash_int.h, lib/gnutls_helper.c, lib/gnutls_int.h,
+       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_mbuffers.c,
+       lib/gnutls_mbuffers.h, lib/gnutls_mem.c, lib/gnutls_mem.h,
+       lib/gnutls_mpi.c, lib/gnutls_mpi.h, lib/gnutls_num.c,
+       lib/gnutls_num.h, lib/gnutls_pcert.c, lib/gnutls_pk.c,
+       lib/gnutls_pk.h, lib/gnutls_priority.c, lib/gnutls_privkey.c,
+       lib/gnutls_psk.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
+       lib/gnutls_record.h, lib/gnutls_rsa_export.c,
+       lib/gnutls_rsa_export.h, lib/gnutls_session.c,
+       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
+       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_srp.c,
+       lib/gnutls_srp.h, lib/gnutls_state.c, lib/gnutls_state.h,
+       lib/gnutls_str.c, lib/gnutls_str.h, lib/gnutls_supplemental.c,
+       lib/gnutls_supplemental.h, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
+       lib/gnutls_v2_compat.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
+       lib/hash.c, lib/includes/Makefile.am,
+       lib/includes/gnutls/abstract.h, lib/includes/gnutls/compat.h,
+       lib/includes/gnutls/crypto.h, lib/includes/gnutls/dtls.h,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/gnutlsxx.h,
+       lib/includes/gnutls/openpgp.h, lib/includes/gnutls/pkcs11.h,
+       lib/includes/gnutls/pkcs12.h, lib/includes/gnutls/x509.h,
+       lib/libgnutls.map, lib/libgnutlsxx.map, lib/locks.c,
+       lib/nettle/Makefile.am, lib/nettle/cipher.c, lib/nettle/ecc_free.c,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
+       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_points.c,
+       lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_dbl_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/ecc_verify_hash.c, lib/nettle/egd.c, lib/nettle/init.c,
+       lib/nettle/mac.c, lib/nettle/mpi.c, lib/nettle/pk.c,
+       lib/nettle/rnd.c, lib/opencdk/Makefile.am, lib/opencdk/armor.c,
+       lib/opencdk/context.h, lib/opencdk/filters.h, lib/opencdk/hash.c,
+       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
+       lib/opencdk/main.c, lib/opencdk/main.h, lib/opencdk/misc.c,
+       lib/opencdk/new-packet.c, lib/opencdk/opencdk.h,
+       lib/opencdk/packet.h, lib/opencdk/pubkey.c,
+       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
+       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
+       lib/opencdk/stream.h, lib/opencdk/types.h,
+       lib/opencdk/write-packet.c, lib/openpgp/Makefile.am,
+       lib/openpgp/compat.c, lib/openpgp/extras.c,
+       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
+       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
+       lib/pkcs11.c, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
+       lib/pkcs11_write.c, lib/random.c, lib/random.h, lib/system.c,
+       lib/system_override.c, lib/x509/Makefile.am, lib/x509/common.c,
+       lib/x509/common.h, lib/x509/crl.c, lib/x509/crl_write.c,
+       lib/x509/crq.c, lib/x509/dn.c, lib/x509/extensions.c,
+       lib/x509/key_decode.c, lib/x509/key_encode.c, lib/x509/mpi.c,
+       lib/x509/output.c, lib/x509/pbkdf2-sha1.c, lib/x509/pkcs12.c,
+       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
+       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
+       lib/x509/rfc2818_hostname.c, lib/x509/sign.c,
+       lib/x509/verify-high.c, lib/x509/verify.c, lib/x509/x509.c,
+       lib/x509/x509_int.h, lib/x509/x509_write.c, lib/x509_b64.c,
+       lib/x509_b64.h: Clarify license and copyright.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-03  Simon Josefsson <simon@josefsson.org>
 
-       * src/Makefile.am, src/common.c, src/common.h: made the print_info
-       stuff much cleaner.
+       * README: Clarify licensing.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-03  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_openpgp.c: some changes in gnutls_cert handling
+       * lib/AUTHORS, lib/ChangeLog, lib/NEWS, lib/autogen.sh,
+       lib/build-aux/arg-nonnull.h, lib/build-aux/c++defs.h,
+       lib/build-aux/config.rpath, lib/build-aux/warn-on-use.h,
+       libextra/AUTHORS, libextra/COPYING, libextra/ChangeLog,
+       libextra/NEWS, libextra/README, libextra/build-aux/config.rpath: 
+       Remove unused files.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-03  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_cert.h: keyUsage is now 16 bits
+       * libextra/includes/gnutls/extra.h: Finish removal of inner
+       application extension support.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-03  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_int.h, src/common.h: [no log message]
+       * lib/includes/gnutls/abstract.h, lib/includes/gnutls/dtls.h: More
+       GTK-DOC fixes.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-03  Simon Josefsson <simon@josefsson.org>
 
-       * src/common.h: [no log message]
+       * .x-sc_GPL_version, .x-sc_avoid_if_before_free,
+       .x-sc_bindtextdomain, .x-sc_cast_of_alloca_return_value,
+       .x-sc_cast_of_argument_to_free, .x-sc_file_system,
+       .x-sc_m4_quote_check, .x-sc_makefile_check, .x-sc_program_name,
+       .x-sc_prohibit_HAVE_MBRTOWC, .x-sc_prohibit_S_IS_definition,
+       .x-sc_prohibit_empty_lines_at_EOF,
+       .x-sc_prohibit_strings_without_use, .x-sc_space_tab, .x-sc_the_the,
+       .x-sc_two_space_separator_in_usage, .x-sc_useless_cpp_parens,
+       GNUmakefile, THANKS, build-aux/arg-nonnull.h, build-aux/c++defs.h,
+       build-aux/config.rpath, build-aux/snippet/_Noreturn.h,
+       build-aux/snippet/arg-nonnull.h, build-aux/snippet/c++defs.h,
+       build-aux/snippet/warn-on-use.h, build-aux/useless-if-before-free,
+       build-aux/vc-list-files, build-aux/warn-on-use.h, cfg.mk,
+       configure.ac, doc/Makefile.am, gl/Makefile.am, gl/alignof.h,
+       gl/alloca.c, gl/errno.in.h, gl/error.c, gl/float.c, gl/float.in.h,
+       gl/fseek.c, gl/fseeko.c, gl/ftell.c, gl/intprops.h,
+       gl/m4/alloca.m4, gl/m4/errno_h.m4, gl/m4/error.m4,
+       gl/m4/extensions.m4, gl/m4/float_h.m4, gl/m4/fpieee.m4,
+       gl/m4/fseek.m4, gl/m4/fseeko.m4, gl/m4/ftell.m4, gl/m4/ftello.m4,
+       gl/m4/getdelim.m4, gl/m4/getline.m4, gl/m4/getpagesize.m4,
+       gl/m4/getpass.m4, gl/m4/gettime.m4, gl/m4/gettimeofday.m4,
+       gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/hmac-md5.m4, gl/m4/include_next.m4,
+       gl/m4/largefile.m4, gl/m4/lseek.m4, gl/m4/malloc.m4, gl/m4/md5.m4,
+       gl/m4/memchr.m4, gl/m4/memmem.m4, gl/m4/memxor.m4,
+       gl/m4/mmap-anon.m4, gl/m4/po.m4, gl/m4/printf.m4,
+       gl/m4/read-file.m4, gl/m4/realloc.m4, gl/m4/snprintf.m4,
+       gl/m4/strcase.m4, gl/m4/strdup.m4, gl/m4/strerror.m4,
+       gl/m4/string_h.m4, gl/m4/strings_h.m4, gl/m4/strverscmp.m4,
+       gl/m4/time_r.m4, gl/m4/vsnprintf.m4, gl/m4/warn-on-use.m4,
+       gl/m4/warnings.m4, gl/netdb.in.h, gl/netinet_in.in.h,
+       gl/stdarg.in.h, gl/stddef.in.h, gl/stdint.in.h, gl/stdio.in.h,
+       gl/stdlib.in.h, gl/strerror-override.c, gl/strerror-override.h,
+       gl/strerror.c, gl/string.in.h, gl/strings.in.h, gl/sys_socket.in.h,
+       gl/sys_stat.in.h, gl/sys_time.in.h, gl/sys_uio.in.h,
+       gl/tests/Makefile.am, gl/tests/fcntl.in.h, gl/tests/fpucw.h,
+       gl/tests/init.sh, gl/tests/macros.h, gl/tests/test-float.c,
+       gl/tests/test-fseek.c, gl/tests/test-fseek.sh,
+       gl/tests/test-fseek2.sh, gl/tests/test-ftell.c,
+       gl/tests/test-ftell.sh, gl/tests/test-ftell2.sh,
+       gl/tests/test-ftell3.c, gl/tests/test-intprops.c,
+       gl/tests/test-snprintf.c, gl/tests/test-strerror.c,
+       gl/tests/test-vc-list-files-cvs.sh,
+       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
+       gl/tests/test-vsnprintf.c, gl/time.in.h, gl/timespec.h,
+       gl/unistd.in.h, gl/verify.h, gl/wchar.in.h, lib/Makefile.am,
+       lib/hash.c, lib/pkcs11_privkey.c, maint.mk, src/benchmark-cipher.c,
+       src/certtool.c, src/cli.c, src/serv.c, tests/Makefile.am,
+       tests/scripts/common.sh: Update gnulib files.  Fix syntax-check
+       usage.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-03  Simon Josefsson <simon@josefsson.org>
 
-       * doc/tex/ex3.tex, lib/Makefile.am, lib/auth_cert.c,
-       lib/auth_cert.h, lib/auth_dhe.c, lib/auth_rsa.c,
-       lib/gnutls_alert.c, lib/gnutls_algorithms.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_privkey.c, lib/gnutls_x509.c, lib/x509_verify.c,
-       lib/x509_verify.h, src/cli.c, src/common.h, src/serv.c: Added
-       OpenPGP certificate support in gnutls.  Several changes.
+       * NEWS, README: Add NEWS entries.  Use copyright ranges (now
+       permitted).
 
-2002-02-03  Timo Schulz <twoaday@gnutls.org>
+2011-08-03  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: * gnutls_openpgp.c (_gnutls_openpgp_cert2gnutls_cert): New.  Set the
-       keyUsage flag to indicate what the key is useful for.
+       * po/LINGUAS, po/cs.po.in, po/fi.po.in, po/nl.po.in, po/pl.po.in,
+       po/sv.po.in, po/uk.po.in: Sync with TP.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-02  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_openpgp.h: [no log message]
+       * doc/manpages/Makefile.am, doc/reference/Makefile.am,
+       doc/reference/gnutls-docs.sgml, lib/algorithms/secparams.c,
+       lib/crypto-api.c, lib/gnutls_cert.c, lib/gnutls_db.c,
+       lib/gnutls_global.c, lib/gnutls_privkey.c, lib/gnutls_pubkey.c,
+       lib/includes/gnutls/abstract.h, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/pkcs11.h, lib/locks.c, lib/openpgp/privkey.c,
+       lib/pkcs11.c, lib/pkcs11_secret.c, lib/pkcs11_write.c,
+       lib/random.c, lib/system_override.c, lib/x509/crl_write.c,
+       lib/x509/crq.c, lib/x509/privkey.c, lib/x509/x509.c: More GTK-DOC
+       improvements.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-02  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_ui.h: Exported openpgp keys'
-       related functions.
+       * doc/reference/Makefile.am: Simplify GTK-DOC makefile
+       IGNORE_HFILES.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_state.c,
-       lib/gnutls_state.h: Moved functions unrelated to record layer to
-       gnutls_state.c
+       * lib/includes/gnutls/gnutls.h.in: updated
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-02  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_int.h: several modifications for cert_type extension
-       etc
+       * lib/algorithms/sign.c, lib/gnutls_dtls.c, lib/gnutls_pubkey.c,
+       lib/gnutls_record.c, lib/includes/gnutls/abstract.h,
+       lib/includes/gnutls/crypto.h, lib/includes/gnutls/dtls.h,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/openpgp.h,
+       lib/includes/gnutls/pkcs11.h, lib/nettle/ecc_free.c,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
+       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_points.c,
+       lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_dbl_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/ecc_verify_hash.c, lib/pkcs11.c: Fix GTK-DOC manual.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_priority.c, lib/gnutls_priority.h: 
-       Added option to set the cert_type priority.
+       * lib/gnutls_record.c: detect premature termination of connection
 
-2002-02-03  Timo Schulz <twoaday@gnutls.org>
+2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: * Applied the patch and minor changes.  * Now it's also possible to use binary certificates.
+       * NEWS, lib/includes/gnutls/pkcs11.h, lib/pkcs11.c: the
+       deprecated_config_file from 2.12.x was incorporated.
 
-2002-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/ext_cert_type.c, lib/ext_cert_type.h: Added stuff for parsing
-       the CertType extension type.
+       * lib/pkcs11.c: documentation update
 
-2002-02-03  Timo Schulz <twoaday@gnutls.org>
+2011-08-02  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_openpgp.c: * gnutls_openpgp.c: Fixed some memory leaks.
+       * doc/manpages/Makefile.am, doc/reference/gnutls-docs.sgml,
+       lib/algorithms/ecc.c, lib/crypto-api.c, lib/gnutls_alert.c,
+       lib/gnutls_cert.c, lib/gnutls_dtls.c, lib/gnutls_global.c,
+       lib/gnutls_pcert.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
+       lib/gnutls_state.c, lib/system_override.c, lib/x509/crl.c,
+       lib/x509/privkey.c, lib/x509/verify-high.c, lib/x509/x509.c: Add
+       GTK-DOC Since: tags for 3.0.0 additions.
 
-2002-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_ui.c: renamed gnutls_fingerprint()
-       to gnutls_x509_fingerprint().
+       * lib/pkcs11_privkey.c: added asserts.
 
-2002-02-02  Timo Schulz <twoaday@gnutls.org>
+2011-08-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: * gnutls_openpgp.c: Now all functions use gnutls_datum.  Change the
-       function headers of internal functions.
+       * README, README-alpha: Refer to nettle alone and p11-kit.
 
-2002-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-08-01  Stef Walter <stefw@collabora.co.uk>
 
-       * configure.in, lib/Makefile.am, lib/gnutls_openpgp.c,
-       src/Makefile.am: Added gnutls_openpgp in the makefiles.  Added some
-       kind of opencdk library detection.
+       * lib/pkcs11.c: Don't try to do PKCS#11 login if session is already
+       logged in.   * It is possible for new PKCS#11 sessions to be logged in if    another logged in session already exists.   * In these cases, don't log in, but detect the condition and    return success.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-02-01  Timo Schulz <twoaday@gnutls.org>
+2011-08-01  Stef Walter <stefw@collabora.co.uk>
 
-       * src/openpgp/pub.asc, src/openpgp/sec.asc: New files for OpenPGP
-       tests.
+       * lib/pkcs11_privkey.c: When finding private keys fail, return error
+       code.   * Previously this would result in an endless loop.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-02-01  Timo Schulz <twoaday@gnutls.org>
+2011-08-01  Stef Walter <stefw@collabora.co.uk>
 
-       * lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: * gnutls_openpgp.c: Added gdoc compatible function descriptions.  (gnutls_openpgp_add_fingerprint): New function to register keyrings.
+       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c: Mark the config
+       argument of gnutls_pkcs11_init() as unused  * Since its no longer used.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_x509.h: added new header file
+       * NEWS, lib/gnutls_str.h, lib/gnutls_x509.c,
+       lib/includes/gnutls/x509.h, lib/x509/x509.c, tests/x509cert.c: Added
+       GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED flag for
+       gnutls_x509_crt_list_import.  It checks whether the list to be
+       imported is properly sorted.
 
-2002-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/protocol/draft-ietf-tls-openpgp-keys-01.txt,
-       doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/serv1.tex, lib/Makefile.am, lib/auth_cert.c,
-       lib/auth_cert.h, lib/gnutls.h.in.in, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_int_compat.c,
-       lib/gnutls_session_pack.c, lib/gnutls_ui.h, lib/gnutls_x509.c,
-       lib/x509_extensions.c, src/cli.c, src/common.h, src/serv.c: Several
-        changes in certificate and key handling.  * gnutls_certificate_allocate_sc() does not require the ncerts
-       argument
+       * NEWS, lib/gnutls_errors.c, lib/gnutls_x509.c,
+       lib/includes/gnutls/gnutls.h.in: Added
+       GNUTLS_E_CERTIFICATE_LIST_UNSORTED.  If a certificate list is loaded
+       then verify that it is sorted with order to starts with the subject
+       and finished with the trusted root. That way we make sure we don't
+       send data that violate the TLS protocol.
 
-2002-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, doc/protocol/draft-ietf-tls-openpgp-keys-01.txt,
-       doc/tex/ex3.tex, lib/Makefile.am, lib/auth_cert.c, lib/debug.c,
-       lib/gnutls.h.in.in, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_state.h, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       lib/gnutls_x509.c, src/cli.c, src/common.h: Renamed
-       gnutls_x509pki_extract_* to gnutls_x509_extract_*.  Separated
-       gnutls_x509_extract_* functions. Now are in gnutls_x509.c.
+       * doc/cha-cert-auth.texi, doc/latex/macros.tex: documentation
+       updates.
 
-2002-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_asn1.c, lib/x509_der.c: corrected _gnutls_str_cpy()
-       usage.
+       * ChangeLog: updated changelog
 
-2002-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt: [no log message]
+       * NEWS: released 3.0.0
 
-2002-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt: updated
+       * configure.ac: updated version
 
-2002-01-30  Timo Schulz <twoaday@gnutls.org>
+2011-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Fixed some memory leaks.
+       * src/certtool-gaa.c, src/certtool.gaa: Corrected typo.
 
-2002-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt: updated candidate
-       draft
+       * NEWS: documented updates.
 
-2002-01-29  Timo Schulz <twoaday@gnutls.org>
+2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_openpgp.c: Fixed a typo.
+       * THANKS: Added Petr.
 
-2002-01-29  Timo Schulz <twoaday@gnutls.org>
+2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.h, lib/gnutls_openpgp.c, lib/gnutls_openpgp.h: 
-       Basic GnuTLS OpenPGP support.
+       * lib/gnutls_pcert.c, lib/gnutls_privkey.c,
+       lib/includes/gnutls/abstract.h, lib/libgnutls.map: Added
+       gnutls_pcert_list_import_x509_raw() and few doc fixes.
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/tex/ex3.tex, src/common.h: updated for
-       gnutls_certificate_get_peers()
+       * lib/gnutls.pc.in: corrected for libnettle.
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-24  Andreas Metzler <ametzler@downhill.at.eu.org>
 
-       * lib/gnutls_ui.c, lib/gnutls_ui.h: Added
-       gnutls_certificate_get_peers() Added gnutls_certificate_get_ours()
-       Added gnutls_certificate_get_ours_index()
+       * configure.ac: fix zlib handling in gnutls.pc Only add zlib to gnutls.pc's Requies.private if zlib ships a
+       pkg-config file. Ancient (<< 1.2.3.1) versions don't. Otherwise add
+       -lz to Libs.private.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_cert.c, lib/gnutls.h.in.in, lib/gnutls_cert.h,
-       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_record.h,
-       lib/gnutls_state.c, lib/gnutls_state.h: CertificateType is now
-       accesible from the API.
+       * doc/examples/ex-client-srp.c, doc/examples/ex-serv-srp.c: 
+       gnutls_global_init_extra() is not needed for SRP.
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: corrected bug in certificate selection.
+       * NEWS: documented changes.
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-25  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
 
-       * lib/gnutls_state.c, lib/gnutls_state.h: Added this
-       gnutls_state.c/h files. Are added in order to access some of the
-       GNUTLS_STATE structures members, indirectly. It's not possible to
-       move all the members of this structure here, yet, but it is
-       desirable.
+       * lib/gnutls_buffers.c: writev_emu: stop on the first incomplete
+       write Just like standard writev, we should only move on to the next block
+       if all the previous ones have been successfully written out.
+       Otherwise there is a potential for data loss and/or confusing push
+       functions.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am: [no log message]
+       * doc/latex/fdl.tex: increased size of fdl.
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_cert.c, lib/gnutls_cert.c,
-       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_ui.h: Modified the
-       state's parameters to hold the negotiated certificate type. Modified
-       the certificate selection procedure to take the certificate type in
-       account, when choosing the most appropriate certificate.
+       * lib/pkcs11.c: Added debug message to indicate usage of
+       compatibility mode for /etc/gnutls/pkcs11.conf
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/serv1.tex, lib/auth_cert.c, lib/gnutls.h.in.in,
-       lib/gnutls_int.h, lib/x509_sig_check.c, src/cli.c, src/common.h,
-       src/serv.c: Added in CertificateStatus:         GNUTLS_CERT_CORRUPTED (replaces GNUTLS_CERT_INVALID)    GNUTLS_CERT_REVOKED
+       * AUTHORS: removed pgp key from authors file.
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_cert.c: 
-       gnutls_x509pki_allocate_sc() renamed to
-       gnutls_certificate_allocate_sc() and similar functions too. They
-       share too common properties with OpenPGP certificates, that it is
-       not needed a separate function.
+       * ChangeLog: updated changelog.
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.c, lib/gnutls_ui.h: Updated function names.
+       * NEWS, configure.ac, doc/announce.txt, m4/hooks.m4: released 2.99.4
 
-2002-01-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-29  Petr Písař <petr.pisar@atlas.cz>
 
-       * lib/auth_cert.c, lib/auth_cert.h: Separated X509 specific stuff in
-       the CERTIFICATE_CREDENTIALS structure.
+       * lib/gnutls_privkey.c: Honor uninitialized private key in
+       destructor Fixes bug #107730.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.asn: Removed fake OID.
+       * src/certtool.c: Corrected initialization of key when generating
+       request. Reported by Petr Pisar.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am: better ChangeLog output
+       * NEWS: updated.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c, src/cli.c, src/serv.c: Identified a race
-       condition in the example client.  If application data is sent after
-       a rehandshake request, the server thinks we ignored his request, and
-       breaks the connection. This is a bad design of this client.
+       * lib/gnutls_rsa_export.c, lib/x509/privkey.c,
+       lib/x509/privkey_pkcs8.c, lib/x509/x509_int.h: The crippled status
+       of an gnutls_x509_privkey_t was removed.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_datum.c: minor fixes
+       * doc/examples/ex-pkcs11-list.c: Example compilation fix.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-07  Stef Walter <stefw@collabora.co.uk>
 
-       * lib/gnutls_buffers.c: changed some buffering code, to use the
-       cleaner gnutls_datum_append().  Leads to a much cleaner code.
+       * configure.ac, lib/includes/gnutls/pkcs11.h, lib/pkcs11.c,
+       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_write.c: pkcs11:
+       Use p11_kit_pin_xxx() functionality when 'pinfile' is in uris.   * This allows other apps to register a handler for a specific
+          pinfile and then that application will be able to provide the PIN
+          for those URIs.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-28  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-07-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_ASN.y: Modules without OID
+       * lib/pkcs11.c: Added compatibility mode with
+       /etc/gnutls/pkcs11.conf
 
-2002-01-28  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_der.c: gnutls_str_... functions substitution
+       * doc/cha-tls-app.texi: Updates in upward negotiation section.
 
-2002-01-28  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_asn1.c: _gnutls_str_... functions substitution
+       * doc/latex/gnutls.bib: Corrected bibliography
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_datum.c, lib/gnutls_datum.h: added
-       gnutls_datum_append()
+       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/cha-intro-tls.texi, doc/cha-library.texi,
+       doc/cha-programs.texi, doc/cha-tls-app.texi: corrected section
+       names.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c, lib/gnutls_cert.h, lib/x509_sig_check.c: 
-       signature is now a gnutls_datum
+       * doc/cha-library.texi, doc/cha-support.texi, lib/gnutls_errors.c,
+       lib/gnutls_srp.c: Updated information on required libraries.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex, lib/Makefile.am,
-       lib/auth_anon.c, lib/auth_cert.c, lib/auth_cert.h, lib/auth_dhe.c,
-       lib/auth_rsa.c, lib/auth_srp.c, lib/auth_srp_passwd.c,
-       lib/auth_x509.c, lib/auth_x509.h, lib/debug.c, lib/ext_srp.c,
-       lib/gnutls.h.in.in, lib/gnutls_algorithms.c, lib/gnutls_auth.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_privkey.c,
-       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/gnutls_ui.c, lib/gnutls_ui.h, lib/x509_sig_check.c, src/cli.c,
-       src/common.h, src/serv.c: GNUTLS_X509PKI -> GNUTLS_CRD_X509PKI
-       GNUTLS_SRP -> GNUTLS_CRD_SRP GNUTLS_ANON -> GNUTLS_CRD_ANON
+       * doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/cha-intro-tls.texi, doc/cha-library.texi, doc/cha-preface.texi: 
+       Corrected typos.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/auth_x509.c, lib/gnutls_int.h, src/cli.c: [no log
-       message]
+       * doc/.gitignore, doc/Makefile.am, doc/alert-printlist.c,
+       doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/cha-intro-tls.texi, doc/cha-library.texi, doc/gnutls.texi,
+       doc/latex/Makefile.am, doc/latex/gnutls.tex, doc/latex/macros.tex,
+       doc/scripts/gdoc, doc/scripts/mytexi2latex, doc/scripts/sort1.pl,
+       doc/scripts/split.pl, lib/gnutls_x509.c: updated function listing.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c: corrected and optimized handshake.
+       * lib/gnutls_alert.c, lib/includes/gnutls/gnutls.h.in,
+       lib/libgnutls.map: Added gnutls_alert_get_strname().
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int_compat.c: not used by default
+       * lib/algorithms/cert_types.c, lib/algorithms/ciphers.c,
+       lib/algorithms/ecc.c, lib/algorithms/kx.c, lib/algorithms/mac.c,
+       lib/algorithms/protocols.c, lib/algorithms/publickey.c,
+       lib/algorithms/secparams.c, lib/algorithms/sign.c, lib/auth/cert.c,
+       lib/auth/psk.c, lib/auth/rsa_export.c, lib/crypto-api.c,
+       lib/crypto-backend.c, lib/ext/max_record.c,
+       lib/ext/safe_renegotiation.c, lib/ext/server_name.c,
+       lib/ext/session_ticket.c, lib/gcrypt/mpi.c, lib/gnutls_alert.c,
+       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
+       lib/gnutls_cert.c, lib/gnutls_dh_primes.c, lib/gnutls_dtls.c,
+       lib/gnutls_errors.c, lib/gnutls_global.c, lib/gnutls_handshake.c,
+       lib/gnutls_mpi.c, lib/gnutls_pcert.c, lib/gnutls_priority.c,
+       lib/gnutls_privkey.c, lib/gnutls_psk.c, lib/gnutls_pubkey.c,
+       lib/gnutls_record.c, lib/gnutls_sig.c, lib/gnutls_state.c,
+       lib/gnutls_str.c, lib/gnutls_ui.c, lib/gnutls_x509.c,
+       lib/minitasn1/decoding.c, lib/minitasn1/errors.c,
+       lib/nettle/ecc_verify_hash.c, lib/opencdk/kbnode.c,
+       lib/opencdk/sig-check.c, lib/openpgp/extras.c,
+       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
+       lib/openpgp/pgp.c, lib/openpgp/privkey.c, lib/pkcs11.c,
+       lib/pkcs11_privkey.c, lib/pkcs11_secret.c, lib/pkcs11_write.c,
+       lib/random.c, lib/x509/common.c, lib/x509/crl.c,
+       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
+       lib/x509/extensions.c, lib/x509/output.c, lib/x509/pkcs12.c,
+       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
+       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
+       lib/x509/rfc2818_hostname.c, lib/x509/sign.c,
+       lib/x509/verify-high.c, lib/x509/verify.c, lib/x509/x509.c,
+       lib/x509/x509_write.c: documentation fixes
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_dhe.c, lib/auth_x509.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_int.h, lib/gnutls_record.c: Added
-       ability of the client to choose a certificate depending on the
-       server's sign algorithm preference. Added CertType in gnutls_cert
-       structure (which identified X509, OPENPGP certificates)
+       * NEWS, lib/COPYING, lib/accelerated/accelerated.c,
+       lib/accelerated/cryptodev.c, lib/auth/anon.c, lib/auth/anon_ecdh.c,
+       lib/auth/cert.c, lib/auth/dh_common.c, lib/auth/dhe.c,
+       lib/auth/dhe_psk.c, lib/auth/ecdh_common.c, lib/auth/psk.c,
+       lib/auth/psk_passwd.c, lib/auth/rsa.c, lib/auth/rsa_export.c,
+       lib/auth/srp.c, lib/auth/srp_passwd.c, lib/auth/srp_rsa.c,
+       lib/auth/srp_sb64.c, lib/crypto-api.c, lib/crypto-backend.c,
+       lib/debug.c, lib/ext/cert_type.c, lib/ext/ecc.c,
+       lib/ext/max_record.c, lib/ext/safe_renegotiation.c,
+       lib/ext/server_name.c, lib/ext/session_ticket.c,
+       lib/ext/signature.c, lib/ext/srp.c, lib/gnutls_alert.c,
+       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
+       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
+       lib/gnutls_compress.c, lib/gnutls_constate.c, lib/gnutls_datum.c,
+       lib/gnutls_db.c, lib/gnutls_dh.c, lib/gnutls_dh_primes.c,
+       lib/gnutls_dtls.c, lib/gnutls_ecc.c, lib/gnutls_errors.c,
+       lib/gnutls_extensions.c, lib/gnutls_global.c,
+       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_helper.c,
+       lib/gnutls_kx.c, lib/gnutls_mbuffers.c, lib/gnutls_mem.c,
+       lib/gnutls_mpi.c, lib/gnutls_num.c, lib/gnutls_pcert.c,
+       lib/gnutls_pk.c, lib/gnutls_priority.c, lib/gnutls_privkey.c,
+       lib/gnutls_psk.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
+       lib/gnutls_rsa_export.c, lib/gnutls_session.c,
+       lib/gnutls_session_pack.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
+       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_supplemental.c,
+       lib/gnutls_ui.c, lib/gnutls_v2_compat.c, lib/gnutls_x509.c,
+       lib/hash.c, lib/locks.c, lib/nettle/cipher.c,
+       lib/nettle/ecc_free.c, lib/nettle/ecc_make_key.c,
+       lib/nettle/ecc_map.c, lib/nettle/ecc_mulmod.c,
+       lib/nettle/ecc_points.c, lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_dbl_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/ecc_verify_hash.c, lib/nettle/egd.c, lib/nettle/init.c,
+       lib/nettle/mac.c, lib/nettle/mpi.c, lib/nettle/pk.c,
+       lib/nettle/rnd.c, lib/opencdk/armor.c, lib/opencdk/hash.c,
+       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
+       lib/opencdk/main.c, lib/opencdk/misc.c, lib/opencdk/new-packet.c,
+       lib/opencdk/pubkey.c, lib/opencdk/read-packet.c,
+       lib/opencdk/seskey.c, lib/opencdk/sig-check.c,
+       lib/opencdk/stream.c, lib/opencdk/write-packet.c,
+       lib/openpgp/compat.c, lib/openpgp/extras.c,
+       lib/openpgp/gnutls_openpgp.c, lib/openpgp/output.c,
+       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
+       lib/pkcs11.c, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
+       lib/pkcs11_write.c, lib/random.c, lib/system.c,
+       lib/system_override.c, lib/x509/common.c, lib/x509/crl.c,
+       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
+       lib/x509/extensions.c, lib/x509/key_decode.c,
+       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/output.c,
+       lib/x509/pbkdf2-sha1.c, lib/x509/pkcs12.c, lib/x509/pkcs12_bag.c,
+       lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c, lib/x509/privkey.c,
+       lib/x509/privkey_pkcs8.c, lib/x509/rfc2818_hostname.c,
+       lib/x509/sign.c, lib/x509/verify-high.c, lib/x509/verify.c,
+       lib/x509/x509.c, lib/x509/x509_write.c, lib/x509_b64.c: Upgraded to
+       LGPLv3.
 
-2002-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c: Optimizations in the handshake messages
-       hashing.  (no more mallocs)
+       * doc/latex/cover.tex.in: updated cover.
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_int.h,
-       lib/x509_b64.c, lib/x509_extensions.c, lib/x509_sig_check.c,
-       src/cli.c, src/serv.c: cleanups
+       * doc/latex/fdl.tex: improvements on fdl.
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_gcry.c, lib/gnutls_gcry.h, lib/gnutls_pk.c: corrected
-       bug in DSA signing.
+       * AUTHORS: Added LRN.
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c: corrected bug in file read
+       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/cha-intro-tls.texi, doc/cha-library.texi,
+       doc/cha-programs.texi, doc/scripts/mytexi2latex: documentation
+       updates.
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_x509.c, lib/auth_x509.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_v2_compat.c: Added support to select a certificate based
-       on the peer's cipher suite list. (ie if DSS cipher suites are
-       requested and a DSA certificate is available, then this will be
-       used)
+       * NEWS, lib/gnutls_srp.c, lib/gnutls_srp.h: gnutls_srp_verifier()
+       returns data allocated with gnutls_malloc() for consistency.
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-keys-01.txt: Added an updated
-       version of the submited draft
+       * lib/gnutls_errors.c: reduced error message.
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/x509/Makefile.am: [no log message]
+       * doc/cha-intro-tls.texi: simplified text.
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_dhe.c, lib/auth_dhe_dss.c, lib/auth_dhe_dss.h,
-       lib/auth_dhe_rsa.c, src/x509/cert-dsa.pem, src/x509/key-dsa.pem: 
-       added missing files
+       * doc/latex/fdl.tex, doc/latex/gnutls.tex: FDL is now included using
+       a tiny font.
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/Makefile.am, lib/gnutls_algorithms.c,
-       lib/gnutls_cert.c, lib/gnutls_int.h, lib/gnutls_sig.c, src/cli.c,
-       src/serv.c: added support for DHE_DSS cipher suites.
+       * doc/cha-auth.texi, doc/cha-intro-tls.texi,
+       doc/examples/ex-client1.c, doc/scripts/mytexi2latex: Tables were
+       also made floating
 
-2002-01-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/asn1.tex, lib/auth_dhe_rsa.c, lib/auth_rsa.c,
-       lib/auth_x509.c, lib/gnutls.asn, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_gcry.c, lib/gnutls_gcry.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_privkey.c,
-       lib/gnutls_sig.c, lib/x509_sig_check.c, src/cli.c: added support for
-       DSS certificates.
+       * doc/cha-cert-auth.texi, doc/cha-internals.texi,
+       doc/cha-intro-tls.texi, doc/cha-library.texi,
+       doc/scripts/mytexi2latex: figures were made floating.
 
-2002-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_x509.c, lib/ext_max_record.c,
-       lib/gnutls.asn, lib/gnutls_buffers.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_extensions.c, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_privkey.c, lib/gnutls_privkey.h,
-       lib/gnutls_sig.c, lib/pkcs1.asn, lib/pkix.asn, lib/x509_sig_check.c: 
-       Added stuff for DSS certificates (not ready yet)
+       * doc/latex/cover.tex.in, doc/scripts/mytexi2latex: Added
+       high-quality pdf images.
 
-2002-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/x509/Makefile.am, src/x509/ca.pem, src/x509/cert.pem,
-       src/x509/clicert-dsa.pem, src/x509/clicert.pem,
-       src/x509/clikey-dsa.pem, src/x509/clikey.pem, src/x509/key.pem: 
-       added new DSA certificates..
+       * .gitignore, doc/latex/.gitignore: more files to ignore
 
-2002-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acinclude.m4, lib/auth_srp_passwd.c, lib/gnutls.h.in.in,
-       lib/gnutls_buffers.c, lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_record.c: [no log message]
+       * configure.ac, doc/Makefile.am, doc/cha-auth.texi,
+       doc/cha-bib.texi, doc/cha-cert-auth.texi,
+       doc/cha-ciphersuites.texi, doc/cha-errors.texi,
+       doc/cha-functions.texi, doc/cha-gtls-app.texi,
+       doc/cha-internals.texi, doc/cha-intro-tls.texi,
+       doc/cha-library.texi, doc/cha-preface.texi, doc/cha-programs.texi,
+       doc/cha-support.texi, doc/cha-tls-app.texi, doc/errcodes.c,
+       doc/examples/ex-client1.c, doc/examples/ex-pkcs11-list.c,
+       doc/examples/ex-serv-anon.c, doc/gnutls.texi,
+       doc/latex/Makefile.am, doc/latex/cover.tex.in, doc/latex/fdl.tex,
+       doc/latex/gnutls.bib, doc/latex/gnutls.tex, doc/latex/macros.tex,
+       doc/printlist.c, doc/scripts/mytexi2latex, doc/scripts/sort1.pl,
+       doc/signatures.texi: updated documentation to allow latex output.
 
-2002-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_str.c, lib/gnutls_str.h: added _gnutls_mem_cpy()
+       * lib/gnutls_record.c, lib/x509/crq.c, lib/x509/x509.c,
+       lib/x509/x509_write.c: corrected typos
 
-2002-01-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_asn1.c, lib/x509_der.c: Added checks after malloc for
-       null.
+       * doc/cha-cert-auth.texi, doc/examples/Makefile.am,
+       doc/examples/ex-cert-select.c, doc/examples/ex-client-udp.c,
+       doc/examples/ex-crq.c, doc/examples/ex-pkcs11-list.c,
+       doc/examples/ex-session-info.c, doc/examples/ex-verify.c: indented
+       code.  Corrected PKCS #11 example.
 
-2002-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/ex3.tex, doc/tex/serv1.tex, lib/auth_x509.c,
-       lib/gnutls.h.in.in, lib/gnutls_int_compat.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, src/common.h, src/serv.c: gnutls_*_get_algo()
-       renamed to gnutls_*_get() (suggested by Simon Josefsson)
+       * doc/Makefile.am: added missing file.
 
-2002-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_extensions.c, lib/gnutls_int.h: [no log message]
+       * AUTHORS, NEWS, lib/includes/gnutls/gnutls.h.in, m4/hooks.m4: 
+       bumped version.
 
-2002-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * NEWS, lib/gnutls_errors.c, lib/includes/gnutls/pkcs11.h,
+       lib/pkcs11.c, lib/pkcs11_write.c, src/p11tool-gaa.c,
+       src/p11tool-gaa.h, src/p11tool.c, src/p11tool.gaa, src/p11tool.h,
+       src/pkcs11.c: Added new PKCS #11 flags to force an object being
+       private or not.  Those are GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE and
+       GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE.  p11tool supports now the
+       --no-private and --private options.
 
-2002-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_extensions.c, lib/gnutls_int.h, lib/gnutls_int_compat.c,
-       src/cli.c: added check for requested TLS extensions
+       * src/p11common.c: Limit the number of attempts with the same PIN,
+       to avoid attempting again and again with a wrong PIN.
 
-2002-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_int_compat.c: [no log message]
+       * lib/pkcs11_write.c: When writing an object with CKA_TRUSTED set
+       CKA_PRIVATE explicitly to FALSE, to allow the SO to write it.
+       Reported by Rickard Bellgrim.
 
-2002-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, lib/gnutls.h.in.in, lib/gnutls_buffers.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_sig.c, lib/gnutls_sig.h: Handshake
-       messages are not kept in memory any more. Now we use less memory
-       during a handshake.
+       * THANKS: updated
 
-2002-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c: [no log message]
+       * src/pkcs11.c: removed unneeded test.
 
-2002-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_random.c: added an #error
+       * lib/pkcs11.c: Enforce the GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO even if
+       GNUTLS_PKCS11_OBJ_FLAG_LOGIN is specified.
 
-2002-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_int.h, lib/gnutls_kx.c: 
-       GNUTLS_A_NETSCAPE_NO_CLIENT_CERTIFICATE ->
-       GNUTLS_A_SSL3_NO_CERTIFICATE
+       * src/Makefile.am, src/p11common.c, src/pkcs11.c: Use common code
+       for PKCS #11 callbacks across clients.  Require SO login to write a
+       trusted object.
 
-2002-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-openpgp-01.txt,
-       doc/protocol/draft-ietf-tls-openpgp-keys-00.txt: added our openpgp
-       draft
+       * lib/algorithms/ciphersuites.c, lib/ext/safe_renegotiation.h: bit
+       fields changed to unsigned.
 
-2002-01-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.c, lib/gnutls_alert.c, lib/gnutls_buffers.c,
-       lib/gnutls_constate.c, lib/gnutls_errors.h,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c, lib/gnutls_kx.c,
-       lib/gnutls_record.c, lib/gnutls_ui.h, lib/gnutls_v2_compat.c: added
-       _gnutls_record_log(), gnutls_handshake_log(), to avoid that #ifdef
-       XXX stuff. Done some cleanups in record layer.
+       * lib/gnutls_pubkey.c, lib/x509/privkey.c: Moved null check before
+       initialization.
 
-2002-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_str.c: [no log message]
+       * lib/opencdk/keydb.c: removed unreachable code warning
 
-2002-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, lib/Makefile.am, lib/auth_srp.c,
-       lib/auth_srp_passwd.c, lib/crypt_srpsha1.c, lib/gnutls_cert.c,
-       lib/gnutls_str.c, lib/gnutls_str.h, lib/x509_extensions.c,
-       lib/x509_sig_check.c, lib/x509_verify.c: Added a minimal string
-       library to assist in safer ASN.1 parsing
+       * lib/opencdk/hash.c, lib/opencdk/main.h, lib/opencdk/stream.c,
+       lib/opencdk/write-packet.c: eliminated wipemem().
 
-2002-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/common.h: in server side now prints srp username
+       * lib/gnutls_pk.c: corrected uninitialized variable warning.
 
-2002-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-16  Rickard Bellgrim <rickard@opendnssec.org>
 
-       * lib/auth_x509.c, lib/crypt_bcrypt.c, lib/crypt_srpsha1.c,
-       lib/debug.c, lib/gnutls_cert.c, lib/gnutls_errors.c,
-       lib/gnutls_global.c, lib/x509_b64.c, lib/x509_extensions.c,
-       lib/x509_sig_check.c, lib/x509_verify.c: Some corrections done (
-       found by using flawfinder).  Added several tags for flawfinder to
-       ignore.
+       * lib/pkcs11_write.c: The CKA_SUBJECT must be specified for a
+       certificate.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: added string library
+       * lib/includes/gnutls/pkcs11.h, lib/pkcs11.c, src/pkcs11.c: When
+       setting the TRUSTED flag login as security officer.
 
-2002-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/scripts/gdoc, lib/auth_x509.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/x509_extensions.c, lib/x509_sig_check.c: cleanups
+       * lib/pkcs11_write.c: write label in PKCS #11 privkey.
 
-2002-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: more cleanups in the recv_int() function
+       * lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/pkcs11.c,
+       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
+       lib/pkcs11_write.c: define ck_bool_t to be compatible with PKCS #11
+       bool type.
 
-2002-01-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c: corrected behaviour against PKCS-1 attacks. (it
-       seems that debugging code has made it to release)
+       * configure.ac: ignore more warnings.
 
-2002-01-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-09  Stef Walter <stefw@collabora.co.uk>
 
-       * lib/gnutls_record.c: Made recv_int() cleaner (needs a lot of
-       improvement)
+       * lib/Makefile.am, lib/pkcs11_int.h, lib/pkcs11_spec.h: Use pkcs11.h
+       specification file from p11-kit.   * Remove one included briefly in gnutls.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-09  Stef Walter <stefw@collabora.co.uk>
 
-       * doc/tex/errors.tex, lib/gnutls_handshake.c, lib/gnutls_record.c,
-       src/cli.c, src/serv.c: Now a server in a case of rehandshake can
-       continue normaly if the handshake request is ignored by the client.
+       * lib/pkcs11.c, src/cli.c, src/p11common.c, src/pkcs11.c,
+       tests/suite/mini-eagain2.c: Fix up compiler warnings.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in: corrected gnutls_alert_send() prototype.
+       * lib/pkcs11_spec.h: Added missing file
 
-2002-01-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * doc/cha-cert-auth.texi: document new config file format and path.
 
-2002-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-07  Stef Walter <stefw@collabora.co.uk>
 
-       * lib/gnutls_int.h: [no log message]
+       * configure.ac, doc/examples/Makefile.am, lib/Makefile.am,
+       lib/auth/cert.c, lib/gnutls_global.c, lib/gnutls_privkey.c,
+       lib/gnutls_pubkey.c, lib/gnutls_x509.c, lib/pakchois/README,
+       lib/pakchois/dlopen.c, lib/pakchois/dlopen.h,
+       lib/pakchois/errors.c, lib/pakchois/pakchois.c,
+       lib/pakchois/pakchois.h, lib/pakchois/pakchois11.h, lib/pkcs11.c,
+       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
+       lib/pkcs11_write.c, src/Makefile.am, src/certtool-common.c,
+       src/certtool.c, src/cli.c, src/p11tool.c, src/serv.c: The attached
+       patch ports gnutls to p11-kit.  p11-kit is added as a dependency.
+       p11-kit itself has no dependencies outside of basic libc stuff. The
+       source code for p11-kit is available both in git and tarball form.
+       [3] If the gnutls dependency on p11-kit is disabled (via a configure
+       option) then the PKCS#11 support is disabled. This is useful in bare
+       bones embedded systems or places where very minimal dependencies are
+       limited.
 
-2002-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_anon.h, lib/auth_dhe_rsa.c,
-       lib/auth_srp.c, lib/auth_x509.c, lib/gnutls_algorithms.c,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_auth_int.h,
-       lib/gnutls_int.h: updated auth info structures handling.  Corrected
-       bug in DHE_RSA.
+       * doc/manpages/Makefile.am: updated
 
-2002-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: corrected bug introduced in the buffering
-       code update
+       * lib/pkcs11.c, lib/pkcs11_privkey.c: Return error code when an
+       object is not found.  Only request for token insertion if the
+       expected data is not found.  Based on patch by Stef Walter.
 
-2002-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_dh.c: [no log message]
+       * configure.ac: Depend on automake 1.11.
 
-2002-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-06  Stef Walter <stefw@collabora.co.uk>
 
-       * NEWS, configure.in, doc/tex/ex3.tex, lib/auth_anon.c,
-       lib/auth_dhe_rsa.c, lib/gnutls.h.in.in, lib/gnutls_anon_cred.c,
-       lib/gnutls_dh.c, lib/gnutls_dh.h, lib/gnutls_int.h,
-       lib/gnutls_int_compat.c, lib/gnutls_record.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h, src/common.h, src/serv.c: Combined
-       gnutls_x509pki_(set/get)_dh_bits() and gnutls_anon_server/client_get
-       to gnutls_dh_(set/get)_bits().  gnutls_anon_set_server_cred() was
-       deprecated by gnutls_dh_set_bits().
+       * tests/suite/Makefile.am: tests: Build eagain-cli with correct
+       libraries  * Add -ldl -lpthread to linker flags Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-30  Stef Walter <stefw@collabora.co.uk>
 
-       * lib/gnutls_cert.c: gnutls_x509pki_set_trust_(file/mem) can now be
-       called multiple times
+       * src/cli.c: gnutls-cli: Fix uninitialized variable when PKCS#11
+       uris in use.   * When PKCS#11 URIs are in use previously tried to free
+          uninitialized memory. Initialize to zero.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-30  Stef Walter <stefw@collabora.co.uk>
 
-       * lib/.cvsignore: [no log message]
+       * lib/pkcs11.c: pkcs11: Accept CKR_USER_ALREADY_LOGGED_IN as
+       successful result for PAP Login  * When doing CKF_PROTECTED_AUTHENTICATION_PATH login, accept    CKR_USER_ALREADY_LOGGED_IN as a successful result.   * Another code path, or another consumer of the same PKCS#11 module    may have already logged in.   * This is what the non PAP code path already does.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-06  Stef Walter <stefw@collabora.co.uk>
 
-       * doc/protocol/draft-freier-ssl-version3-02.txt,
-       doc/protocol/ssl-2.txt, doc/protocol/ssl-draft302.txt,
-       doc/protocol/ssl-version2.txt: [no log message]
+       * lib/auth/srp.c, lib/auth/srp_rsa.c, lib/ext/session_ticket.c,
+       lib/gnutls_compress.c, lib/hash.c, lib/nettle/ecc_mulmod.c,
+       lib/x509/common.c: Remove unused variables  * GCC 4.6.0 prints a warning, and build failes with -Wunused Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2002-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/rfc2440.txt: added openpgp rfc
+       * lib/nettle/rnd.c: use gnutls_assert_val() in EGD errors.
 
-2002-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/tex/ex3.tex, doc/tex/serv1.tex,
-       lib/Makefile.am, lib/auth_srp_passwd.h, lib/auth_x509.c,
-       lib/debug.c, lib/gnutls.h.in.in, lib/gnutls_alert.c,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_auth.c, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_db.c,
-       lib/gnutls_db.h, lib/gnutls_dh.h, lib/gnutls_dh_primes.c,
-       lib/gnutls_errors.c, lib/gnutls_global.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       lib/x509_ASN.y, src/cli.c, src/common.h, src/serv.c: several
-       cleanups in order to move to gnutls 0.4.0
+       * tests/dsa/testdsa, tests/openpgp-certs/testcerts,
+       tests/scripts/common.sh, tests/suite/testcompat-main,
+       tests/suite/testsrn: Corrected fail() shell function. Reported by
+       Andreas Metzler.
 
-2002-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int_compat.c: added file to hold functions for
-       backwards binary compatibility.
+       * tests/dsa/testdsa: Corrected typo. Reported by Andreas Metzler.
 
-2002-01-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_ui.h, lib/x509_b64.c: cleanups
+       * doc/manpages/Makefile.am: regenerated makefile.
 
-2002-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/ex3.tex, lib/auth_dhe_rsa.c,
-       lib/gnutls_algorithms.c, lib/gnutls_cert.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_ui.c, lib/gnutls_ui.h, src/common.h,
-       src/serv.c: Renamed gnutls_x509pki_s/get_dh_bits() to
-       gnutls_dh_s/get_dhe_bits().  Renamed
-       gnutls_anon_server/client_get_dh_bits() to gnutls_dh_get_dha_bits().
+       * lib/x509/common.c: documentation fix.
 
-2002-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-x86.c,
+       lib/accelerated/intel/asm/appro-aes-gcm-x86.s: pclmul is not used on
+       intel 32-bit systems.
 
-2002-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/auth.tex, doc/tex/ex1.tex, doc/tex/ex2.tex,
-       doc/tex/ex3.tex, lib/gnutls_algorithms.c, lib/gnutls_int.h: Key
-       exchange methods changed so they do not depend on the Certificate
-       type (GNUTLS_KX_X509PKI_* renamed to GNUTLS_KX_*).
+       * lib/accelerated/intel/aes-x86.c, lib/gnutls_global.h,
+       lib/gnutls_priority.c: When AES and GCM acceleration is available
+       increase the priority of AES-GCM ciphersuites in performance and
+       normal cases.
 
-2002-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp_sb64.c, lib/gnutls.h.in.in, lib/gnutls_algorithms.c,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_cipher_int.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_sig.c: changes in buffering code
-       (actually variables' names are more rational now).
+       * lib/gcrypt/cipher.c, lib/gcrypt/pk.c: prevent compilation of
+       gcrypt support since it is incomplete.
 
-2002-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphers.tex, doc/tex/gnutls.tex,
-       doc/tex/macros.tex, doc/tex/resumedb.tex, doc/tex/translayer.tex: 
-       [no log message]
+       * lib/Makefile.am, lib/algorithms/ciphers.c,
+       lib/algorithms/ciphersuites.c, lib/gcrypt/cipher.c,
+       lib/nettle/cipher.c, m4/hooks.m4: do not use NETTLE_LIBS to include
+       hogweed and gmp.  removed ENABLE_CAMELLIA and NETTLE_GCM.
 
-2002-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: corrected library interface numbers
+       * src/benchmark-tls.c: improved benchmark.
 
-2002-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, THANKS, doc/tex/Makefile.am, doc/tex/ciphersuites.tex,
-       doc/tex/cover.tex.in, doc/tex/gnutls-logo.ps, doc/tex/gnutls.tex: 
-       updated documentation
+       * doc/Makefile.am, doc/cha-cert-auth.texi, doc/cha-internals.texi,
+       doc/cha-intro-tls.texi, doc/cha-library.texi,
+       doc/cha-programs.texi, doc/examples/ex-session-info.c,
+       doc/gnutls-certificate-user-use-case.pdf,
+       doc/gnutls-client-server-use-case.pdf,
+       doc/gnutls-extensions_st.pdf, doc/gnutls-handshake-sequence.pdf,
+       doc/gnutls-handshake-state.pdf, doc/gnutls-internals.pdf,
+       doc/gnutls-layers.pdf, doc/gnutls-logo.pdf,
+       doc/gnutls-mod_auth_st.pdf, doc/gnutls-objects.pdf,
+       doc/gnutls-pgp.pdf, doc/gnutls-x509.pdf, doc/gnutls.texi: Updated
+       documentation.  Removed all .pdf files. They were not needed.
 
-2002-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp_sb64.c, lib/gnutls_handshake.c, lib/gnutls_random.c,
-       src/crypt.c: fixed bugs reported (with patches) by Marc Huber and
-       Guillaume Morin.
+       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
+       lib/gnutls_handshake.c: Avoid memory allocations when requesting the
+       supported ciphersuites.
 
-2002-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, THANKS, lib/gnutls.h.in.in, lib/gnutls_cert.c,
-       lib/x509_b64.c, lib/x509_b64.h: Added gnutls_x509pki_set_trust_mem()
-       and gnutls_x509pki_set_key_mem()
+       * lib/accelerated/intel/aes-x86.c: more verbose if the PCLMUL
+       instruction is detected.
 
-2002-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * tests/cipher-test.c: Added debugging ability to cipher-test.
 
-2002-01-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_alert.h, lib/gnutls_int.h, lib/gnutls_record.c: better
-       length checking in the record layer.
+       * doc/TODO: more cleanup.
 
-2002-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-extensions-01.txt,
-       doc/protocol/draft-ietf-tls-extensions-02.txt: new extensions draft
+       * doc/TODO: Added new TODO items.
 
-2002-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/gnutls.tex: [no log message]
+       * doc/TODO: removed completed items from todo list
 
-2002-01-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/gnutls.tex, lib/auth_x509.c: added
-       gnutls_x509pki_verify_certificate()
+       * lib/gnutls_priority.c: reinstated MAC-ALL semantics.
 
-2002-01-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.c: renamed DigestAlgorithm to GNUTLS_DigestAlgorithm
-       (in order to be consistent with gnutls.h)
+       * .gitignore: more files to ignore.
 
-2002-01-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/libgnutls.m4: corrected the temp file name
+       * lib/gnutls_session_pack.c: store the ECC curve in the session
+       resumption parameters.
 
-2002-01-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/cover.tex.in, doc/tex/errors.tex, lib/Makefile.am,
-       lib/gnutls_errors.c: last minute changes for 0.3.2 release
+       * NEWS, doc/cha-cert-auth.texi, doc/examples/ex-verify.c,
+       lib/gnutls_cert.c, lib/includes/gnutls/x509.h, lib/libgnutls.map,
+       lib/x509/verify-high.c, tests/Makefile.am, tests/x509cert-tl.c: 
+       Added gnutls_x509_trust_list_add_named_crt() and
+       gnutls_x509_trust_list_verify_named_crt() that allow having a list
+       of certificates in the trusted list that will be associated with a
+       name (e.g. server name) and will not be used as CAs.
 
-2002-01-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_ui.h, lib/x509_b64.c: renamed gnutls_b64_encode()
-       to gnutls_b64_encode_fmt()
+       * NEWS, doc/cha-intro-tls.texi,
+       lib/accelerated/intel/aes-gcm-x86.c,
+       lib/accelerated/intel/aes-x86.c, lib/algorithms/ciphersuites.c,
+       lib/gnutls_priority.c, lib/includes/gnutls/gnutls.h.in,
+       lib/nettle/cipher.c: Added SuiteB ciphersuites. Added SUITEB128 and
+       SUITEB192 priority strings.  SECURE256 was renamed to SECURE192
+       (because TLS ciphersuite's security level was not enough to justify
+       256-bits).
 
-2002-01-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_ui.h, lib/x509_b64.c: Added gnutls_b64_encode()
-       and gnutls_b64_decode()
+       * NEWS, lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: 
+       gnutls_ecc_curve_get() was added.
 
-2002-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/.cvsignore, doc/tex/.cvsignore: [no log message]
+       * lib/gnutls_state.c: The PRF is now read from the ciphersuite
+       table.
 
-2002-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/translayer.tex: updated documentation
+       * src/common.c: Print information on elliptic curve sessions.
 
-2002-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/ex3.tex, src/common.h: updated documentation
+       * lib/abstract_int.h, lib/gnutls_pubkey.c, lib/gnutls_sig.c,
+       lib/gnutls_sig.h, lib/includes/gnutls/abstract.h,
+       lib/includes/gnutls/compat.h, lib/libgnutls.map, lib/x509/common.c,
+       lib/x509/common.h, lib/x509/crq.c, lib/x509/privkey.c,
+       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h: Split
+       pubkey_verify_sig() to pubkey_verify_hashed_data() and
+       pubkey_verify_data().  Added gnutls_pubkey_verify_data2() to allow
+       verification of a signature when the signature algorithm cannot be
+       determined by the signature and the public key only.
 
-2002-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/auth_rsa.c, lib/gnutls_auth.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_priority.c, lib/gnutls_record.c, lib/gnutls_record.h: 
-       Cleanups
+       * lib/gnutls_hash_int.h, lib/gnutls_sig.c: Allow all SHA algorithms
+       for DSA signatures.
 
-2002-01-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls_alert.c, lib/gnutls_alert.h: separated
-       alert protocol functions
+       * lib/x509/verify.c: fixes for
+       http://tools.ietf.org/html/draft-mavrogiannopoulos-tls-dss-00
 
-2002-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth_rsa.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/gnutls_record.c: corrected behaviour in version advertizing
+       * lib/auth/cert.h, lib/gnutls_cert.c, lib/gnutls_handshake.c: 
+       simplified _gnutls_selected_cert_supported_kx().
 
-2002-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/libgnutls.m4: now removes the temp file
+       * lib/gnutls_pubkey.c, lib/nettle/pk.c, lib/x509/verify.c: 
+       Truncation of ECDSA and DSA signatures moved to
+       _wrap_nettle_pk_sign() and _wrap_nettle_pk_verify().
 
-2002-01-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in: check_version() updated
+       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
+       lib/algorithms/sign.c, lib/ext/signature.c, lib/gnutls_buffers.c,
+       lib/gnutls_buffers.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_sig.c, lib/nettle/pk.c: Simplified the handling of
+       handshake messages to be hashed.  Instead of doing a hash during the
+       handshake process we now keep the data until handshake is over and
+       hash them on demand. This uses more memory but eliminates issues
+       with TLS 1.2 and makes the handling simpler.
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/gnutls_int.h: [no log message]
+       * lib/ext/signature.c, lib/gnutls_pubkey.c, lib/nettle/pk.c,
+       lib/x509/common.h, lib/x509/verify.c: Hash algorithms used for DSA
+       and ECDSA correspond to draft-mavrogiannopoulos-tls-dss-00.txt.
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/crypt_srpsha1.c, lib/gnutls.h.in.in, lib/gnutls_auth.c,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_int.h, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_ui.c, lib/x509_sig_check.c: cleanups
+       * lib/ext/ecc.c: updated
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth_x509.c, lib/gnutls.h.in.in,
-       lib/gnutls_algorithms.h, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       src/cli.c, src/common.h, src/serv.c: Added
-       gnutls_x509pki_extract_certificate_serial() and some cleanups.
+       * doc/cha-internals.texi, doc/gnutls.texi: Added refint macro to
+       refer to internal -non exported- functions. Used it to reference to
+       the gnutls_*_register() functions.
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.c: more error checking
+       * NEWS, lib/Makefile.am, lib/auth/psk_passwd.c, lib/auth/rsa.c,
+       lib/auth/rsa_export.c, lib/auth/srp_passwd.c, lib/crypto-api.c,
+       lib/crypto-backend.c, lib/crypto-backend.h, lib/crypto.c,
+       lib/ext/session_ticket.c, lib/gnutls_cipher.c,
+       lib/gnutls_cipher_int.h, lib/gnutls_handshake.c,
+       lib/gnutls_hash_int.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
+       lib/gnutls_pk.c, lib/includes/gnutls/crypto.h, lib/libgnutls.map,
+       lib/nettle/mpi.c, lib/nettle/pk.c, lib/opencdk/misc.c,
+       lib/pkcs11_secret.c, lib/random.h, lib/x509/pkcs12.c,
+       lib/x509/privkey_pkcs8.c, libextra/gnutls_openssl.c, src/psk.c,
+       src/srptool.c, tests/Makefile.am, tests/crypto_rng.c,
+       tests/rng-fork.c: gnutls/crypto.h no longer includes functions to
+       register ciphers.  Thus the following functions -    gnutls_crypto_bigint_register -    gnutls_crypto_cipher_register -    gnutls_crypto_digest_register -    gnutls_crypto_mac_register -    gnutls_crypto_pk_register -    gnutls_crypto_rnd_register -    gnutls_crypto_single_cipher_register -    gnutls_crypto_single_digest_register -    gnutls_crypto_single_mac_register are only available internally
+       via crypto-backend.h.
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_ui.c: [no log message]
+       * build-aux/config.rpath: updated
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in: prefixed all variable with GNUTLS_
+       * lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-gcm-x86.s,
+       lib/accelerated/intel/asm/appro-aes-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-x86.s: typos and date fix in
+       license.
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_global.c: added support for calling global_init()
-       several times.
+       * src/benchmark-tls.c: Added benchmark on GCM ciphersuites and
+       arcfour for comparison.
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_global.c: added static variable to check if
-       global_init() is called for a second time.
+       * lib/gnutls_int.h: corrected typo.
 
-2002-01-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, README, lib/crypt_srpsha1.c, lib/gnutls.h.in.in,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_int.h,
-       lib/gnutls_sig.c, lib/gnutls_srp.c, lib/gnutls_ui.c,
-       lib/x509_sig_check.c, src/cli.c: Cleanups in the digest code
-       (separated from HMAC).  Added gnutls_fingerprint_calc(), which
-       calculates a fingerprint.
+       * lib/accelerated/intel/aes-gcm-x86.c,
+       lib/accelerated/intel/aes-x86.c: indented code
 
-2001-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am: added PGPKEYS
+       * src/benchmark.c: properly initialize benchmarks.
 
-2001-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.CVS: updated
+       * configure.ac, m4/hooks.m4: bumped version.
 
-2001-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth_x509.c: corrected bug which did not allow a client
-       to accept multiple CA distinguished names.
+       * lib/accelerated/intel/aes-gcm-x86.c: Corrections in encryption and
+       decryption of incomplete blocks.
 
-2001-12-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/README.srpcrypt: updated
+       * lib/accelerated/intel/aes-gcm-x86.c, lib/gnutls_int.h,
+       lib/gnutls_state.c: Use nettle's memxor or gnulib's if it doesn't
+       exist.
 
-2001-12-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls_buffers.c: [no log message]
+       * NEWS, lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-gcm-x86.c,
+       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h,
+       lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-gcm-x86.s, lib/gnutls_num.c,
+       lib/gnutls_num.h, tests/cipher-test.c: Added AES-GCM optimizations
+       using the PCLMULQDQ instruction. Uses Andy Polyakov's assembly code.
 
-2001-12-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c: some corrections in documentation
+       * lib/crypto-api.c: documented usage of gnutls_cipher_add_auth().
 
-2001-12-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: releasing 0.3.0
+       * doc/cha-intro-tls.texi: updates.
 
-2001-12-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-31  Roman Bogorodskiy <bogorodskiy@gmail.com>
 
-       * lib/x509_ASN.y, lib/x509_asn1.c, lib/x509_der.c: cleaned up and
-       fixed ASN.1 documentation.
+       * lib/Makefile.am: Prevent including installed gnutls' headers.
 
-2001-12-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-31  Roman Bogorodskiy <bogorodskiy@gmail.com>
 
-       * doc/scripts/gdoc: corrected in order not to complain if func(void)
-       is used.
+       * src/udp-serv.c: Add missing <netinet/in.h> to get sockaddr_in.
 
-2001-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, lib/gnutls.h.in.in: cleanups
+       * doc/cha-intro-tls.texi: Compatibility text updated.
 
-2001-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/serv1.tex,
-       doc/tex/srp1.tex, lib/auth_anon.h, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_x509.c, lib/auth_x509.h,
-       lib/ext_srp.c, lib/gnutls.h.in.in, lib/gnutls_anon_cred.c,
-       lib/gnutls_cert.c, lib/gnutls_global.c, lib/gnutls_global.h,
-       lib/gnutls_handshake.c, lib/gnutls_sig.c, lib/gnutls_srp.c,
-       lib/gnutls_ui.h, src/cli.c, src/serv.c: some cleanups. *_CREDENTIALS
-       renamed to GNUTLS_*_CREDENTIALS.  Added defines to keep source
-       compatibility.
+       * lib/accelerated/intel/asm/appro-aes-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-x86.s: Added new AES code by
+       Andy.
 
-2001-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c: corrected bugs in AUTH_INFO allocation
+       * doc/credentials/x509/ca-key.pem: Added missing file.
 
-2001-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in.in, lib/gnutls_algorithms.c, lib/gnutls_int.h: 
-       cleanups
+       * .gitignore: more files to ignore
 
-2001-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, THANKS, configure.in, lib/Makefile.am, lib/gnutls.h.in,
-       lib/gnutls.h.in.in, lib/gnutls_buffers.c, lib/gnutls_int.h: 
-       corrections in the configuration files.
+       * lib/nettle/Makefile.am, lib/nettle/ecc_free.c,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
+       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_points.c,
+       lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/ecc_test.c, lib/nettle/ecc_verify_hash.c: Added FSF
+       copyright to public domain files.
 
-2001-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: some corrections in assembler detection. Also chmod
-       -w gnutls.h was removed.
+       * configure.ac, lib/accelerated/x86.h: Use cpuid.h if it exists, to
+       use the x86 CPUID instruction.
 
-2001-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp.c, lib/gnutls_extensions.c, lib/gnutls_handshake.c,
-       lib/gnutls_record.c: Corrections for big endian machines. Pointed
-       out by Mike Siers <mikes@poliac.com>
+       * THANKS: Added Dash.
 
-2001-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/ciphersuites.tex, doc/tex/ex1.tex, doc/tex/ex2.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex, lib/gnutls.h.in,
-       lib/gnutls_buffers.c, lib/gnutls_cert.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_record.c, lib/gnutls_session.c, src/cli.c, src/serv.c: 
-       cleanups and documentation updates
+       * lib/gnutls_compress.c, lib/gnutls_compress.h,
+       lib/gnutls_handshake.c: simplified
+       _gnutls_supported_compression_methods().
 
-2001-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * lib/gnutls_constate.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_session_pack.c, lib/gnutls_v2_compat.c: Correctly set
+       compression method when resuming sessions.  Reported by Dash Shendy.
 
-2001-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_srp.c, lib/gnutls_record.c,
-       lib/gnutls_session_pack.c, src/cli.c: corrections in SRP and ANON
-       authentication.  Also corrections in the session packing for
-       anonymous auth info.
+       * lib/gnutls_hash_int.c: digest_length() uses int as input.
 
-2001-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Stef Walter <stefw@collabora.co.uk>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/serv1.tex,
-       doc/tex/srp1.tex, lib/gnutls.h.in, lib/gnutls_kx.c,
-       lib/gnutls_record.c, lib/gnutls_record.h, src/cli.c, src/serv.c: 
-       *_alert -> alert_*
+       * lib/nettle/cipher.c: Fix warnings with GCC 4.5.2
 
-2001-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex, lib/auth_anon.c,
-       lib/auth_dhe_rsa.c, lib/auth_srp.c, lib/auth_x509.c,
-       lib/gnutls.h.in, lib/gnutls_auth.c, lib/gnutls_auth_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_session_pack.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h, src/cli.c, src/serv.c: gnutls_set_max_record_size
-       -> gnutls_record_set_max_size gnutls_get_max_record_size ->
-       gnutls_record_get_max_size gnutls_set_cred      -> gnutls_cred_set
-       gnutls_get_auth_type -> gnutls_auth_get_type
+       * doc/credentials/Makefile.am, doc/credentials/x509/Makefile.am: 
+       Corrected EXTRA_DIST
 
-2001-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphers.tex, doc/tex/ciphersuites.tex,
-       doc/tex/errors.tex, doc/tex/gnutls.tex, doc/tex/macros.tex,
-       doc/tex/resumedb.tex, doc/tex/translayer.tex,
-       lib/gnutls_handshake.c: documentation updated
+       * tests/suite/testcompat-main: updated keys.
 
-2001-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in, lib/gnutls_db.c, lib/gnutls_record.c: changed
-       function names
+       * lib/auth/cert.c, lib/auth/cert.h, lib/gnutls_handshake.c,
+       lib/gnutls_handshake.h: Take into account each and every advertized
+       public key algorithm when selecting a certificate. Previously we
+       were assuming only RSA or DSA, or ANY.
 
-2001-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/gnutls.tex, doc/tex/macros.tex, doc/tex/resumedb.tex,
-       doc/tex/translayer.tex: fixes in documentation
+       * doc/credentials/gnutls-http-serv, src/serv-gaa.c, src/serv-gaa.h,
+       src/serv.c, src/serv.gaa: Added feature to specify ecc private keys
+       and certificates.
 
-2001-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/ASN1.readme.txt, doc/Makefile.am: removed ASN1.readme.txt
+       * lib/algorithms.h, lib/gnutls_handshake.c, lib/gnutls_state.c: 
+       Corrected ECC ciphersuite detection.
 
-2001-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * doc/credentials/x509-ca-key.pem, doc/credentials/x509-ca.pem,
+       doc/credentials/x509-client-key.pem,
+       doc/credentials/x509-client.pem, doc/credentials/x509-other-ca.pem,
+       doc/credentials/x509-proxy-key.pem, doc/credentials/x509-proxy.pem,
+       doc/credentials/x509-server-dsa.pem,
+       doc/credentials/x509-server-key-dsa.pem,
+       doc/credentials/x509-server-key.pem,
+       doc/credentials/x509-server.pem, doc/credentials/x509-trust.pem,
+       doc/credentials/x509/ca.pem, doc/credentials/x509/cert-dsa.pem,
+       doc/credentials/x509/cert-ecc.pem,
+       doc/credentials/x509/cert-rsa.pem, doc/credentials/x509/cert.pem,
+       doc/credentials/x509/clicert-dsa.pem,
+       doc/credentials/x509/clicert.pem, doc/credentials/x509/key-dsa.pem,
+       doc/credentials/x509/key-ecc.pem, doc/credentials/x509/key-rsa.pem,
+       doc/credentials/x509/key.pem, lib/nettle/pk.c, lib/x509/verify.c: 
+       Laxed verification checks for DSA to allow SHA256 in place of
+       SHA224.  Added new certificate sets in doc/credentials/x509/.
 
-2001-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .cvsusers, lib/gnutls.h.in, lib/gnutls_srp.c, src/serv.c: [no log
-       message]
+       * lib/gnutls_priority.c: ECDHE and ECDSA were added to deafult
+       priorities.
 
-2001-12-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, buildconf, doc/README.autoconf, doc/tex/ex1.tex,
-       doc/tex/ex2.tex, doc/tex/gnutls.tex, doc/tex/serv1.tex,
-       lib/gnutls.h.in, lib/gnutls_cert.c, lib/gnutls_int.h, src/cli.c,
-       src/serv.c: renamed  gnutls_x509pki_set_trust/key to
-       gnutls_x509pki_set_trust_file/key_file
+       * lib/auth/rsa.c, lib/x509/key_encode.c, lib/x509/privkey_pkcs8.c: 
+       gnutls_secure_malloc() is no longer used.
 
-2001-12-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_x509.c, lib/gnutls.h.in, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_int.h: some corrections in the
-       DECR_LEN stuff added recently.
+       * lib/auth/dhe_psk.c, lib/auth/psk.c: deinitialize PSK key memory.
 
-2001-12-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/README.autoconf, doc/tex/Makefile.am,
-       doc/tex/errors.tex, doc/tex/gnutls.tex, lib/auth_x509.c: updated
-       documentation
+       * lib/auth/psk.c: explicitly request for client key in server side.
 
-2001-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_dhe_rsa.c, lib/auth_srp.c,
-       lib/auth_x509.c, lib/gnutls_extensions.c, lib/gnutls_handshake.c: 
-       More carefull parsing of incoming packets.
+       * NEWS, lib/algorithms/ciphersuites.c, lib/algorithms/kx.c,
+       lib/auth/anon.c, lib/auth/anon_ecdh.c, lib/auth/dh_common.c,
+       lib/auth/dh_common.h, lib/auth/dhe.c, lib/auth/dhe_psk.c,
+       lib/auth/ecdh_common.c, lib/auth/ecdh_common.h, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in: Added ECDHE-PSK ciphersuites for
+       TLS (RFC 5489).
 
-2001-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/tex/translayer.tex: [no log message]
+       * doc/gnutls-guile.texi: Corrections.
 
-2001-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, THANKS, lib/gnutls_int.h, lib/gnutls_pk.c: [no log message]
+       * doc/.gitignore: ignore tex files.
 
-2001-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: several cleanups
+       * doc/cha-copying.texi: Do not list all licenses in the manual of
+       gnutls. Just the license of the manual is enough.
 
-2001-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_gcry.c, lib/gnutls_gcry.h: corrected bugs in STD
-       formating (back to USG).
+       * doc/Makefile.am, doc/cha-ciphersuites.texi,
+       doc/cha-functions.texi, doc/cha-preface.texi,
+       doc/gnutls-guile.texi, doc/guile.texi, guile/src/core.c: guile
+       bindings added as a separate document.
 
-2001-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * COPYING: [no log message]
+       * doc/gnutls.texi: reorganization. Removed guile bindings.
 
-2001-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * doc/cha-auth.texi, doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/gnutls.texi: reorganization and added section on parameter
+       generation.
 
-2001-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_int.h: last commits for 0.2.91
+       * lib/Makefile.am, lib/auth/Makefile.am, lib/ext/Makefile.am,
+       lib/nettle/Makefile.am: Added new headers.
 
-2001-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/auth_anon.c, lib/auth_rsa.c, lib/gnutls_constate.c,
-       lib/gnutls_datum.c, lib/gnutls_datum.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_mem.c, lib/gnutls_mem.h, lib/gnutls_record.c: 
-       optimizations and fixes in the TLS PRF calculation (and the SSL3
-       equivalent)
+       * NEWS: document elliptic curves addition.
 
-2001-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * m4/hooks.m4: libgcrypt support was removed.
 
-2001-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex: [no log message]
+       * NEWS: listed newly added functions.
 
-2001-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ciphers.tex: updated documentation
+       * lib/nettle/Makefile.am, lib/nettle/ecc.h,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_shared_secret.c,
+       lib/nettle/ecc_sign_hash.c, lib/nettle/ecc_verify_hash.c,
+       lib/nettle/mp_unsigned_bin.c: Use nettle's functions for integer
+       import/export.
 
-2001-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_anon_cred.c: fixed gnutls_anon_free_client_sc()
+       * lib/algorithms/publickey.c, lib/gnutls_sig.c: more updates for
+       ECDSA ciphersuites.
 
-2001-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/auth.tex, lib/auth_anon.h, lib/gnutls.h.in,
-       lib/gnutls_anon_cred.c, lib/gnutls_auth.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, src/cli.c: Fixes in anonymous authentication.
-       Fixes in client ciphersuite selection.
+       * lib/ext/ecc.c: reduced debugging.
 
-2001-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.c, lib/gnutls_cert.c: GET_CN() now works. (affects debug
-       mode only)
+       * lib/gnutls_pubkey.c, lib/gnutls_sig.c: Changes to allow ECDH-DSA
+       with client mode certificates.
 
-2001-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/.cvsignore, src/Makefile.am, src/README.crypt,
-       src/README.srpcrypt: crypt -> srpcrypt
+       * tests/certs/ca-cert-ecc.pem, tests/certs/ca-ecc.pem,
+       tests/certs/cert-ecc.pem, tests/certs/ecc.pem,
+       tests/suite/testcompat-main: Added server and client mode tests for
+       ECDH-ECDSA.
 
-2001-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth_x509.c, lib/auth_x509.h, lib/gnutls_cert.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c, lib/gnutls_int.h: 
-       Optimizations in server certificate callback.
+       * lib/ext/session_ticket.c, lib/gnutls_db.c, lib/gnutls_dtls.c,
+       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_session_pack.c, lib/gnutls_v2_compat.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map,
+       lib/nettle/rnd.c, lib/opencdk/keydb.c, lib/opencdk/literal.c,
+       lib/opencdk/read-packet.c, lib/opencdk/sig-check.c,
+       lib/openpgp/gnutls_openpgp.c, lib/system.c, lib/system.h,
+       lib/x509/common.c, lib/x509/verify.c, tests/chainverify.c: Added
+       gnutls_global_set_time_function() to allow overriding the default
+       system time() function.
 
-2001-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-25  Giuseppe Scrivano <gscrivano@gnu.org>
 
-       * NEWS, lib/gnutls.h.in, lib/gnutls_db.c, lib/gnutls_int.h,
-       lib/gnutls_record.c: added gnutls_transport_get_ptr() and
-       gnutls_db_get_ptr() functions.
+       * doc/cha-programs.texi: Fix example in the documentation.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_x509.c, lib/ext_dnsname.c,
-       lib/ext_dnsname.h, lib/gnutls.h.in, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, src/cli.c, src/serv.c: remove dnsname
-       (name_ind) extension
+       * doc/cha-programs.texi: updated documentation on PSK.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_dhe_dss.c, lib/auth_dhe_rsa.c,
-       lib/auth_srp.c, lib/auth_srp_passwd.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_dh_primes.c, lib/gnutls_gcry.c,
-       lib/gnutls_gcry.h, lib/gnutls_int.h, lib/gnutls_pk.c,
-       lib/gnutls_privkey.c, lib/gnutls_srp.c, lib/x509_extensions.c: 
-       Cleanups. Now use GCRYMPI_FMT_STD instead of USG.
+       * lib/nettle/ecc_projective_add_point.c: If Q=-P return the point at
+       infinity.
 
-2001-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: [no log message]
+       * tests/chainverify.c: Added elliptic curves chain certificate.
 
-2001-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/.cvsignore: [no log message]
+       * lib/gnutls_buffers.c: do not try to write to a socket when no
+       data.
 
-2001-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/auth.tex, doc/tex/ciphers.tex: added missing files
+       * tests/openpgpself.c: increased log level
 
-2001-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/Makefile.am, doc/tex/ciphersuites.tex,
-       doc/tex/gnutls.tex, doc/tex/resumedb.tex, doc/tex/translayer.tex,
-       lib/.cvsignore: updated documentation
+       * lib/gnutls_buffers.h, lib/gnutls_handshake.c: 
+       _gnutls_handshake_hash_buffer_clear was replaced by
+       _gnutls_buffer_clear();
 
-2001-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_x509.c, lib/gnutls_int.h, lib/gnutls_ui.h: callbacks now
-       get a GNUTLS_STATE argument.
+       * lib/nettle/pk.c: Only warn on invalid security level hashes.
 
-2001-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ciphersuites.tex, doc/tex/ex1.tex, doc/tex/ex2.tex,
-       doc/tex/ex3.tex, doc/tex/serv1.tex, doc/tex/srp1.tex,
-       lib/auth_x509.c, lib/gnutls.h.in, lib/gnutls_algorithms.c,
-       lib/gnutls_cert.c, lib/gnutls_int.h, src/cli.c, src/serv.c: 
-       GNUTLS_KX_RSA renamed to GNUTLS_KX_X509PKI_RSA (and the other X509
-       key exchange methods). This will allow GNUTLS_KX_PGP_RSA etc.
+       * src/certtool.c: SHA256 is the default hash algorithm in certtool.
 
-2001-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/tex/ex1.tex, doc/tex/ex2.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex, lib/defines.h,
-       lib/gnutls.h.in, lib/gnutls_algorithms.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c, lib/gnutls_record.c, src/cli.c, src/serv.c: 
-       GNUTLS_LIST is now int*
+       * lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_privkey.c,
+       lib/gnutls_sig.c, lib/x509/verify.c: Several updates to allow
+       generation and signing of an ECC certificate.
 
-2001-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/serv1.tex,
-       doc/tex/srp1.tex, lib/debug.c, lib/gnutls.h.in,
-       lib/gnutls_algorithms.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_compress_int.c,
-       lib/gnutls_constate.c, lib/gnutls_errors_int.h,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_record.c, lib/gnutls_v2_compat.c, src/cli.c, src/serv.c: 
-       cleanups again
+       * doc/manpages/certtool.1: updated certtool info.
 
-2001-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_ASN.y, lib/x509_asn1.c, lib/x509_asn1.h, lib/x509_der.c,
-       lib/x509_der.h: some changes to keep gcc -Wall happy
+       * lib/algorithms/ciphersuites.c: corrected bug in ciphersuite name
+       searching.
 
-2001-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex, lib/auth_rsa.c,
-       lib/auth_x509.c, lib/auth_x509.h, lib/gnutls.h.in,
-       lib/gnutls_algorithms.c, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_errors_int.h, lib/gnutls_global.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c, lib/gnutls_priority.h, lib/gnutls_record.c,
-       lib/gnutls_record.h, src/cli.c, src/serv.c: Several cleanups.
+       * doc/cha-auth.texi: Discussed the newly added ciphersuites.
 
-2001-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, doc/tex/ex1.tex, doc/tex/serv1.tex,
-       lib/gnutls.h.in, lib/gnutls_db.c, lib/gnutls_db.h,
-       lib/gnutls_session.c, lib/gnutls_session.h, src/cli.c, src/serv.c: 
-       Changes in function names concerning _db_ handling and _session_
-       handling.
+       * doc/Makefile.am: Added algorithms/ to function index.
 
-2001-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, doc/tex/ex1.tex, doc/tex/ex2.tex,
-       doc/tex/ex3.tex, doc/tex/serv1.tex, lib/auth_dhe_rsa.c,
-       lib/auth_x509.c, lib/auth_x509.h, lib/gnutls.h.in,
-       lib/gnutls_anon_cred.c, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_srp.c,
-       lib/gnutls_ui.h, src/cli.c, src/serv.c: Added callback to select the
-       server certificate.
+       * lib/algorithms/ciphersuites.c: Added ECC ciphersuites from
+       rfc5289.
 
-2001-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       lib/auth_x509.c, lib/gnutls_record.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h, src/cli.c, src/common.h, src/serv.c: optimized
-       certificate handling API
+       * src/certtool.c: Print the private key after generation. Print ECC
+       keys.
 
-2001-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_dhe_rsa.c, lib/auth_x509.c, lib/auth_x509.h,
-       lib/gnutls_cert.h, lib/gnutls_ui.h, src/serv.c: several cleanups.
-       Removed old unneeded functions.  certificate verification was moved
-       out of the handshake procedure.
+       * lib/algorithms/ecc.c, lib/gnutls_ecc.c,
+       lib/includes/gnutls/abstract.h, lib/includes/gnutls/x509.h,
+       lib/libgnutls.map, lib/x509/privkey.c: Added
+       gnutls_x509_privkey_import_ecc_raw() and
+       gnutls_x509_privkey_export_ecc_raw().
 
-2001-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in, lib/gnutls_buffers.c, lib/gnutls_global.c,
-       lib/gnutls_int.h, lib/gnutls_record.c: some cleanups
+       * lib/x509/privkey.c: Decode PEM ECC private keys.
 
-2001-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/auth_dhe_rsa.c, lib/auth_x509.c,
-       lib/auth_x509.h, lib/gnutls.h.in, lib/gnutls_auth.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_record.c, lib/gnutls_session_pack.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h, lib/x509_extensions.c, lib/x509_extensions.h,
-       src/Makefile.am, src/cli.c, src/common.h, src/port.h, src/serv.c: 
-       now the peer's certificate list is stored into auth info structure
-       (instead of the certificate).  several other cleanups.
+       * lib/algorithms.h, lib/algorithms/ecc.c, lib/x509/key_encode.c,
+       lib/x509/privkey.c, src/certtool-gaa.c, src/certtool-gaa.h,
+       src/certtool.c, src/certtool.gaa: updates to allow the generation of
+       an ECC private key.
 
-2001-12-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_x509.c, lib/auth_x509.h, lib/debug.c, lib/debug.h,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_ui.c,
-       lib/gnutls_ui.h, lib/x509_extensions.c, src/cli.c, src/serv.c: 
-       moving gnutls_DN structures out of gnutls_cert and auth_info
-       structures.  Now they are generated upon request.
+       * lib/x509_b64.c: do not crash on null message.
 
-2001-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acconfig.h, configure.in, lib/defines.h, lib/gnutls.h.in: fixes in
-       autoconf scripts
+       * .gitignore: updated
 
-2001-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS, Makefile.am, NEWS, acconfig.h, configure.in,
-       lib/auth_x509.c, lib/defines.h, lib/gnutls_random.c: updated
-       detection of library settings
+       * lib/algorithms/ciphersuites.c, lib/algorithms/kx.c,
+       lib/auth/cert.c, lib/auth/dhe.c, lib/gnutls_pk.c, lib/gnutls_pk.h,
+       lib/gnutls_pubkey.c, lib/gnutls_sig.c, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/pk.c, lib/nettle/rnd.c, lib/nettle/rnd.h,
+       lib/x509/common.h, lib/x509/verify.c: Added support for verifying
+       server certificates with ECDSA.
 
-2001-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS, lib/auth_x509.c, lib/auth_x509.h, lib/gnutls_cert.c,
-       lib/gnutls_int.h, lib/x509_extensions.c, src/cli.c: The RDN sequence
-       needed in the certificate request message is now generated and
-       cached into a x509pki_credentials structure.  This would save a lot
-       of time in the server side.
+       * lib/ext/ecc.c: Only reply with ECC Packet format extension if we
+       have negotiated ECC.
 
-2001-11-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * tests/pathlen/ca-no-pathlen.pem,
+       tests/pathlen/no-ca-or-pathlen.pem, tests/pkcs12_s2k_pem.c: leak fix
+       and updates for new formats.
 
-2001-11-29  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/ASN1.readme.txt: overflow buffers check
+       * tests/suite/testcompat-main: Added ECDHE-RSA tests.
 
-2001-11-29  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/ASN1.readme.txt, lib/x509_ASN.y, lib/x509_asn1.c,
-       lib/x509_asn1.h: ""
+       * lib/algorithms/secparams.c, lib/gnutls_pubkey.c: always put
+       leading zero to output keys
 
-2001-11-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/Makefile.am, lib/auth_anon.c, lib/auth_dhe_rsa.c,
-       lib/auth_rsa.c, lib/auth_srp.c, lib/auth_x509.c, lib/auth_x509.h,
-       lib/gnutls_algorithms.c, lib/gnutls_auth.c, lib/gnutls_db.c,
-       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_session.c,
-       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
-       lib/gnutls_ui.c, lib/gnutls_ui.h, src/cli.c: introduced
-       gnutls_x509pki_get_certificate(). This function returns the peer's
-       certificate DER encoded. This certificate is also stored in the
-       resume db.
+       * lib/x509/output.c: print the bits together with the security
+       level.
 
-2001-11-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_db.h: [no log message]
+       * lib/x509/privkey.c, lib/x509/privkey_pkcs8.c: leaks fixes.
 
-2001-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * THANKS, configure.in, doc/README.autoconf, doc/TODO,
-       lib/gnutls.h.in, lib/gnutls_db.c, lib/libgnutls.m4: cleanups and
-       some corrections.
+       * lib/pkcs11.c: corrected file descriptor leak.
 
-2001-11-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/srp1.tex,
-       lib/gnutls.h.in, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_db.c, lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_record.c, lib/gnutls_record.h, src/cli.c, src/serv.c: 
-       gnutls_handshake(), gnutls_read() etc. functions no longer require
-       the 'SOCKET cd' argument. This argument is set using the function
-       gnutls_set_transport_ptr().
+       * libextra/gnutls_extra.c: gnutls_algorithms.h -> algorithms.h
 
-2001-11-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.autoconf: [no log message]
+       * lib/x509/key_decode.c, lib/x509/key_encode.c: corrected ECC public
+       key encoding/decoding.
 
-2001-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.autoconf: gnutls.m4 -> libgnutls.m4
+       * src/certtool-common.c, src/certtool.c: Corrected bug in public key
+       import.  print information on ECC public keys.
 
-2001-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am: added new pictures
+       * lib/includes/gnutls/crypto.h, lib/nettle/pk.c,
+       lib/x509/key_encode.c, lib/x509/x509_int.h: No need to keep Z in
+       parameters since the pubkey can always be converted to an affine
+       point.
 
-2001-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ciphersuites.tex: updated
+       * lib/algorithms/secparams.c, lib/gnutls_pubkey.c,
+       lib/includes/gnutls/abstract.h, lib/libgnutls.map,
+       lib/x509/common.c, lib/x509/key_decode.c, lib/x509/mpi.c,
+       lib/x509/output.c: print information on ECC certificates.
 
-2001-11-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: [no log message]
+       * lib/abstract_int.h, lib/algorithms.h, lib/algorithms/ecc.c,
+       lib/auth/anon.h, lib/auth/ecdh_common.c, lib/auth/ecdh_common.h,
+       lib/auth/rsa.c, lib/auth/rsa_export.c, lib/ext/ecc.c,
+       lib/gnutls.asn, lib/gnutls_asn1_tab.c, lib/gnutls_ecc.c,
+       lib/gnutls_ecc.h, lib/gnutls_errors.c, lib/gnutls_int.h,
+       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_privkey.c,
+       lib/gnutls_pubkey.c, lib/gnutls_rsa_export.c,
+       lib/gnutls_rsa_export.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
+       lib/gnutls_state.c, lib/gnutls_state.h,
+       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
+       lib/libgnutls.map, lib/nettle/ecc_test.c, lib/nettle/pk.c,
+       lib/openpgp/openpgp_int.h, lib/openpgp/pgp.c,
+       lib/openpgp/privkey.c, lib/x509/Makefile.am, lib/x509/common.c,
+       lib/x509/common.h, lib/x509/crq.c, lib/x509/key_decode.c,
+       lib/x509/key_encode.c, lib/x509/mpi.c, lib/x509/privkey.c,
+       lib/x509/privkey_pkcs8.c, lib/x509/verify.c, lib/x509/x509.c,
+       lib/x509/x509_int.h, lib/x509/x509_write.c: gnutls_pk_params_st is
+       used internally to transfer public key parameters. This replaces the
+       raw bigint_t arrays.
 
-2001-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc: [no log message]
+       * lib/algorithms.h, lib/algorithms/ciphersuites.c,
+       lib/algorithms/ecc.c, lib/auth/ecdh_common.c, lib/ext/ecc.c,
+       lib/ext/ecc.h: Curve TLS ID is being stored in algorithms/ecc.c.
 
-2001-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc: produces better tex output
+       * configure.ac, lib/Makefile.am, lib/algorithms.h,
+       lib/algorithms/Makefile.am, lib/algorithms/cert_types.c,
+       lib/algorithms/ciphers.c, lib/algorithms/ciphersuites.c,
+       lib/algorithms/ecc.c, lib/algorithms/kx.c, lib/algorithms/mac.c,
+       lib/algorithms/protocols.c, lib/algorithms/publickey.c,
+       lib/algorithms/secparams.c, lib/algorithms/sign.c, lib/auth/cert.c,
+       lib/auth/dh_common.c, lib/auth/dhe.c, lib/auth/ecdh_common.c,
+       lib/auth/rsa.c, lib/auth/rsa_export.c, lib/ext/session_ticket.c,
+       lib/ext/signature.c, lib/ext/srp.c, lib/gnutls_algorithms.c,
+       lib/gnutls_algorithms.h, lib/gnutls_auth.c, lib/gnutls_cert.c,
+       lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
+       lib/gnutls_compress.c, lib/gnutls_constate.c, lib/gnutls_ecc.c,
+       lib/gnutls_handshake.c, lib/gnutls_kx.c, lib/gnutls_priority.c,
+       lib/gnutls_record.c, lib/gnutls_sig.c, lib/gnutls_state.c,
+       lib/gnutls_v2_compat.c, lib/gnutls_x509.c, lib/nettle/ecc_test.c,
+       lib/nettle/mpi.c, lib/opencdk/read-packet.c, lib/x509/common.h,
+       lib/x509/privkey_pkcs8.c: gnutls_algorithms.c was split into
+       manageable files in algorithms/.
 
-2001-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc, lib/gnutls_ui.c: updated documentation (and
-       generation of tex)
+       * lib/gnutls_handshake.c: use the _gnutls_session_is_ecc() to check
+       for ECDH.
 
-2001-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS: updated
+       * lib/auth/ecdh_common.c, lib/gnutls_algorithms.c,
+       lib/includes/gnutls/gnutls.h.in, lib/nettle/pk.c, lib/x509/x509.c: 
+       Added OIDs and definitions for ECDSA signature algorithm.
 
-2001-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: fixed gnutls_kx_get_name()
+       * src/benchmark-tls.c: Print purpose of testing.
 
-2001-11-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c, lib/gnutls_ui.h: cleanups
+       * src/benchmark-tls.c: compare ECDH and DH on the same security
+       level.
 
-2001-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc, lib/gnutls_record.c, lib/x509_asn1.c: Gdoc
-       updated. Now handles powers and '->' symbol automatically for tex.
+       * doc/cha-intro-tls.texi, lib/gnutls_algorithms.c,
+       lib/gnutls_algorithms.h, lib/gnutls_priority.c: Added ability to
+       specify curves as priority strings.
 
-2001-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO: [no log message]
+       * lib/nettle/ecc.h: removed ecc_is_valid_idx() prototype
 
-2001-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/x509_der.c: corrected typo
+       * lib/nettle/ecc.h, lib/nettle/ecc_make_key.c,
+       lib/nettle/ecc_map.c, lib/nettle/ecc_mulmod.c,
+       lib/nettle/ecc_points.c, lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_dbl_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_test.c,
+       lib/nettle/ecc_verify_hash.c, lib/nettle/pk.c: Dropped ltc_ from
+       function and type names.
 
-2001-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/ASN1.readme.txt, doc/scripts/gdoc, doc/tex/Makefile.am,
-       doc/tex/asn1.tex, doc/tex/gnutls.tex, lib/Makefile.am,
-       lib/x509_ASN.y, lib/x509_asn1.c, lib/x509_der.c: Documentation for
-       ASN.1 has been moved to inline comments and to the tex
-       documentation.
+       * tests/x509cert.c: corrected memory leak.
 
-2001-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h: removed E_TIMEOUT
+       * lib/nettle/cipher.c: use new nettle's name for gcm_aes_auth().
 
-2001-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in, lib/auth_dhe_rsa.c, lib/auth_srp.c,
-       lib/auth_x509.c, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h, lib/gnutls_record.c,
-       src/serv.c: corrected some obscure bugs in the handshake and record
-       send buffering code.
+       * gl/hmac-md5.c, gl/m4/valgrind-tests.m4, gl/memxor.c, gl/memxor.h,
+       gl/override/lib/hmac-md5.c.diff, gl/override/lib/memxor.c.diff,
+       gl/override/lib/memxor.h.diff,
+       gl/override/m4/valgrind-tests.m4.diff: Override gnulib code with fix
+       for memxor and valgrind.
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: removed debugging stuff
+       * lib/auth/anon_ecdh.c, lib/auth/dh_common.c, lib/auth/dhe.c,
+       lib/auth/ecdh_common.c, lib/gnutls_algorithms.c,
+       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_state.c,
+       lib/gnutls_state.h, lib/includes/gnutls/gnutls.h.in: Added support
+       for ECDHE-RSA ciphersuites.
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * tests/eagain-common.h: inlined function to avoid gcc warnings
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/nettle/Makefile.am, lib/nettle/ecc.h, lib/nettle/ecc_free.c,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_map.c,
+       lib/nettle/ecc_mulmod.c, lib/nettle/ecc_points.c,
+       lib/nettle/ecc_projective_add_point.c,
+       lib/nettle/ecc_projective_dbl_point.c,
+       lib/nettle/ecc_projective_dbl_point_3.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/ecc_test.c, lib/nettle/ecc_verify_hash.c,
+       lib/nettle/ltc_ecc_map.c, lib/nettle/ltc_ecc_mulmod.c,
+       lib/nettle/ltc_ecc_points.c,
+       lib/nettle/ltc_ecc_projective_add_point.c,
+       lib/nettle/ltc_ecc_projective_dbl_point.c: Added previous code that
+       was fixed for y^2 = x^3 - 3x + b, because all secg curves have a
+       fixed to -3.  Simplified file naming scheme.
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/gnutls_algorithms.c, lib/gnutls_int.h: Added SECP224R1.
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * src/Makefile.am, src/benchmark-cipher.c, src/benchmark-tls.c,
+       src/benchmark.c, src/benchmark.h: updates to benchmarks.
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/gnutls_algorithms.c, lib/gnutls_int.h, lib/gnutls_priority.c,
+       lib/nettle/ecc_test.c: Added curve SECP512R1.
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, THANKS: [no log message]
+       * src/benchmark-cipher.c, src/benchmark-common.c, src/benchmark.c: 
+       benchmark ECDH and DH.
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_handshake.c: more fixes
+       * build-aux/config.rpath, gl/Makefile.am, gl/alignof.h,
+       gl/glthread/lock.c, gl/glthread/lock.h, gl/glthread/threadlib.c,
+       gl/hmac-md5.c, gl/intprops.h, gl/m4/gnulib-cache.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/strerror.m4, gl/m4/strerror_r.m4,
+       gl/m4/thread.m4, gl/m4/valgrind-tests.m4, gl/m4/yield.m4,
+       gl/memxor.c, gl/memxor.h, gl/stdint.in.h, gl/strerror-impl.h,
+       gl/strerror.c, gl/strerror_r.c, gl/tests/Makefile.am,
+       gl/tests/dummy.c, gl/tests/glthread/thread.c,
+       gl/tests/glthread/thread.h, gl/tests/glthread/yield.h,
+       gl/tests/test-intprops.c, gl/tests/test-lock.c,
+       gl/tests/test-strerror.c, gl/tests/test-strerror_r.c: Update gnulib
+       files.
 
-2001-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/gnutls_algorithms.c, lib/gnutls_buffers.c,
-       lib/gnutls_cipher.c, lib/gnutls_constate.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_priority.c, lib/gnutls_record.c, lib/io_debug.h,
-       src/serv.c: more non blocking IO fixes
+       * lib/auth/ecdh_common.c, lib/gnutls_handshake.c, src/common.c: 
+       client side ECC fixes.
 
-2001-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: now resolves hostnames.
+       * src/cli.c: corrected debugging.
 
-2001-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/defines.h, lib/gnutls_priority.c: va_copy macro renamed to
-       VA_COPY
+       * lib/auth/ecdh_common.c, lib/gnutls_algorithms.c,
+       lib/gnutls_algorithms.h, lib/gnutls_global.c,
+       lib/includes/gnutls/crypto.h, lib/nettle/ecc.h,
+       lib/nettle/ecc_free.c, lib/nettle/ecc_make_key.c,
+       lib/nettle/ecc_shared_secret.c, lib/nettle/ecc_sign_hash.c,
+       lib/nettle/ecc_test.c, lib/nettle/ecc_verify_hash.c,
+       lib/nettle/ltc_ecc_map.c, lib/nettle/ltc_ecc_mulmod.c,
+       lib/nettle/ltc_ecc_points.c,
+       lib/nettle/ltc_ecc_projective_add_point.c,
+       lib/nettle/ltc_ecc_projective_dbl_point.c, lib/nettle/pk.c,
+       lib/x509/x509_int.h: Account 'A' in calculations for point doubling.
 
-2001-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: now requires autoconf 2.50
+       * gl/Makefile.am, gl/alignof.h, gl/close-hook.c, gl/close-hook.h,
+       gl/error.c, gl/error.h, gl/fd-hook.c, gl/fd-hook.h,
+       gl/glthread/lock.c, gl/glthread/lock.h, gl/glthread/threadlib.c,
+       gl/intprops.h, gl/m4/error.m4, gl/m4/fcntl_h.m4, gl/m4/fseeko.m4,
+       gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/inttypes.m4,
+       gl/m4/manywarnings.m4, gl/m4/memchr.m4, gl/m4/netdb_h.m4,
+       gl/m4/stdint.m4, gl/m4/stdio_h.m4, gl/m4/strerror.m4,
+       gl/m4/strerror_r.m4, gl/m4/string_h.m4, gl/m4/sys_uio_h.m4,
+       gl/m4/thread.m4, gl/m4/unistd_h.m4, gl/m4/warnings.m4,
+       gl/m4/wchar_h.m4, gl/m4/yield.m4, gl/malloc.c, gl/netdb.in.h,
+       gl/realloc.c, gl/sockets.c, gl/stdint.in.h, gl/stdio.in.h,
+       gl/stdlib.in.h, gl/strerror-impl.h, gl/strerror.c, gl/strerror_r.c,
+       gl/string.in.h, gl/sys_socket.in.h, gl/sys_uio.in.h,
+       gl/tests/Makefile.am, gl/tests/dummy.c, gl/tests/fcntl.in.h,
+       gl/tests/glthread/thread.c, gl/tests/glthread/thread.h,
+       gl/tests/glthread/yield.h, gl/tests/intprops.h,
+       gl/tests/inttypes.in.h, gl/tests/test-fcntl-h.c,
+       gl/tests/test-intprops.c, gl/tests/test-inttypes.c,
+       gl/tests/test-lock.c, gl/tests/test-strerror.c,
+       gl/tests/test-strerror_r.c, gl/tests/test-sys_socket.c,
+       gl/tests/test-sys_uio.c, gl/unistd.in.h, gl/verify.h, gl/wchar.in.h: 
+       Added new gnulib and error.h.
 
-2001-11-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, lib/ext_max_record.c, lib/gnutls.h.in,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_compress_int.c, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_mem.c,
-       lib/gnutls_mem.h, lib/gnutls_privkey.c, lib/gnutls_record.c,
-       lib/io_debug.h, src/cli.c, src/serv.c: several fixes.  Including: - max_record_header extension.  - resume handshake sending wrong ssl version - Non blocking IO (not ready yet)
+       * lib/gnutls_global.c: removed debugging.
 
-2001-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_int.h: [no log message]
+       * cfg.mk: added error.h
 
-2001-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/Makefile.am, doc/tex/resumedb.tex,
-       doc/tex/translayer.tex, lib/auth_x509.c, lib/gnutls.h.in,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/cli.c: cleanups and documentation updates
+       * lib/Makefile.am, lib/auth/Makefile.am, lib/auth/anon.h,
+       lib/auth/anon_ecdh.c, lib/auth/ecdh_common.c,
+       lib/auth/ecdh_common.h, lib/ext/Makefile.am, lib/ext/ecc.c,
+       lib/ext/ecc.h, lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
+       lib/gnutls_dh.c, lib/gnutls_ecc.c, lib/gnutls_ecc.h,
+       lib/gnutls_errors.c, lib/gnutls_extensions.c, lib/gnutls_global.c,
+       lib/gnutls_int.h, lib/gnutls_pk.c, lib/gnutls_pk.h,
+       lib/gnutls_priority.c, lib/gnutls_state.c, lib/gnutls_state.h,
+       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
+       lib/nettle/Makefile.am, lib/nettle/ecc.h, lib/nettle/ecc_free.c,
+       lib/nettle/ecc_make_key.c, lib/nettle/ecc_shared_secret.c,
+       lib/nettle/ecc_sign_hash.c, lib/nettle/ecc_test.c,
+       lib/nettle/ecc_verify_hash.c, lib/nettle/gnettle.h,
+       lib/nettle/ltc_ecc_map.c, lib/nettle/ltc_ecc_mulmod.c,
+       lib/nettle/ltc_ecc_points.c,
+       lib/nettle/ltc_ecc_projective_add_point.c,
+       lib/nettle/ltc_ecc_projective_dbl_point.c,
+       lib/nettle/mp_unsigned_bin.c, lib/nettle/mpi.c, lib/nettle/multi.c,
+       lib/nettle/pk.c, lib/nettle/rnd.c, lib/nettle/rnd.h,
+       lib/x509/x509_int.h: Initial ecc support. Adds support for anonymous
+       ECDH ciphersuites.
 
-2001-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_x509.c: rolled back previous change...
+       * src/benchmark-common.c, src/benchmark.h: more win32 fixes.
 
-2001-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_x509.c: made empty certificate message consistent with
-       other implementations.
+       * src/benchmark-common.c: corrections in win32 version.
 
-2001-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_dhe_rsa.c, lib/auth_srp.c,
-       lib/auth_srp_passwd.c, lib/auth_x509.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_dh.c, lib/gnutls_dh_primes.c,
-       lib/gnutls_gcry.c, lib/gnutls_gcry.h, lib/gnutls_pk.c,
-       lib/gnutls_privkey.c, lib/gnutls_record.c, lib/gnutls_session.c,
-       lib/gnutls_sig.c, lib/gnutls_srp.c, lib/x509_sig_check.c: corrected
-       memory leaks and other bugs
+       * lib/ext/signature.c, lib/gnutls_extensions.c: Some debugging moved
+       to a higher level.
 
-2001-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c: added warning
+       * src/Makefile.am, src/benchmark-common.c, src/benchmark-tls.c,
+       src/benchmark.c, src/benchmark.h, tests/eagain-common.h: Added
+       benchmark utility that tests the encryption time in TLS packets.
 
-2001-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, lib/Makefile.am, lib/ext_dnsname.c,
-       lib/ext_max_record.c, lib/ext_max_record.h, lib/ext_srp.c,
-       lib/gnutls.h.in, lib/gnutls_constate.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/cli.c: added max_record_size extension
+       * src/p11common.c: corrected message reporting.
 
-2001-11-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_session.c: corrected bug which made
-       get_current_session, not to return the right size of the session.
+       * src/p11common.c: Corrected PIN caching.
 
-2001-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth_dhe_rsa.c, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_int.h, lib/gnutls_mem.c,
-       lib/gnutls_record.c: receive buffer is now dynamic.
+       * lib/gnutls_record.c: assign value
 
-2001-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_handshake.c, lib/gnutls_record.c, src/cli.c: 
-       changed semantics of the GNUTLS_E_REHANDSHAKE error code.
+       * lib/nettle/mpi.c: reduce the repetitions for rabin-miller to a
+       sensible value.
 
-2001-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acconfig.h, configure.in, lib/defines.h, lib/gnutls_priority.c: 
-       added support for va_copy
+       * doc/cha-intro-tls.texi: discuss missing algorithms.
 
-2001-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * NEWS: updated
 
-2001-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/translayer.tex, lib/gnutls_db.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/serv.c: cleanups
+       * lib/gnutls_str.c, lib/gnutls_str.h, lib/pkcs11.c: Correctly import
+       and export pkcs11-urls with ID field set.
 
-2001-11-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_priority.h: list -> gnutls_list
+       * lib/nettle/egd.c, lib/opencdk/literal.c, lib/opencdk/misc.c,
+       lib/opencdk/read-packet.c, lib/pkcs11.c, lib/x509/common.c,
+       lib/x509_b64.c, lib/x509_b64.h: eliminated last instances of
+       strcpy() and strcat() to keep pendantics happy.
 
-2001-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in, lib/gnutls_anon_cred.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c: changed LIST to GNUTLS_LIST
+       * doc/cha-intro-tls.texi: update on compatibility issues text.
 
-2001-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in, lib/gnutls_db.c: added new function to check for
-       expired sessions.
+       * lib/pkcs11.c: doc update in gnutls_pkcs11_init()
 
-2001-11-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: cleanups
+       * doc/cha-preface.texi: removed references that produced nothing in
+       pdf.
 
-2001-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c, lib/gnutls_record.c, lib/gnutls_sig.c: 
-       cleanups in function names
+       * doc/cha-intro-tls.texi: Added missing nodes.
 
-2001-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_db.c: cleanups in the resuming code
+       * doc/cha-intro-tls.texi: Added discussion on compatibility issues.
 
-2001-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, THANKS, configure.in, lib/gnutls.h.in, lib/gnutls_db.c,
-       lib/gnutls_db.h, lib/gnutls_int.h, lib/gnutls_record.c: added hooks
-       in order to use external database to store session to be resumed.
-       Works but it is not finished.
+       * libextra/gnutls_openssl.c: undef X509_NAME before including
+       openssl.h.
 
-2001-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_global.c, lib/gnutls_int.h: 
-       set_push() & set_pull() functions moved to state (instead of being
-       global)
+       * NEWS, doc/cha-gtls-app.texi, lib/accelerated/intel/aes-x86.c,
+       lib/auth/rsa.c, lib/auth/rsa_export.c, lib/auth/srp.c,
+       lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_errors.c,
+       lib/gnutls_errors.h, lib/gnutls_global.c, lib/gnutls_global.h,
+       lib/gnutls_handshake.c, lib/gnutls_record.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/cli.c,
+       src/serv.c: Added gnutls_global_set_audit_log_function() that allows
+       associating TLS session with several important issues.
 
-2001-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README.CVS, doc/Makefile.am, doc/README.CVS: moved README.CVS to
-       doc/
+       * NEWS, lib/x509/crq.c: updates
 
-2001-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README.CVS: added documentation of the steps required to built the
-       cvs tree
+       * NEWS, lib/includes/gnutls/x509.h, lib/libgnutls.map,
+       lib/x509/crq.c, lib/x509/x509_write.c, tests/crq_key_id.c: Added
+       gnutls_x509_crq_verify().
 
-2001-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp.c, lib/auth_srp_passwd.c, lib/auth_x509.c,
-       lib/gnutls_auth.c, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_mem.c, lib/gnutls_record.c,
-       lib/gnutls_record.h, lib/io_debug.h, src/cli.c, src/serv.c: Adopted
-       some of the patches of Jon Nelson. Fixes the non blocking behaviour.
+       * doc/manpages/certtool.1, src/Makefile.am, src/certtool-common.c,
+       src/certtool-common.h, src/certtool.c, src/common.c,
+       src/p11common.c, src/p11common.h, src/pkcs11.c: certtool can now
+       load private keys and public keys from PKCS #11 tokens (via URLs).
 
-2001-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * lib/pkcs11_privkey.c: gnutls_pkcs11_privkey_import_url() will
+       correctly set algorithm of private key.
 
-2001-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_record.c: corrected and fixed
-       several things in send_int() etc.
+       * src/Makefile.am, src/certtool.c, src/p11tool.c: No libgnutls-extra
+       is required for certtool or p11tool.
 
-2001-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/translayer.tex: Added missing file.
+       * tests/rng-fork.c: Do not use /tmp for temporary file. Just use the
+       local (test) directory.
 
-2001-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * tests/hostname-check.c: Added a check to verify that we don't try
+       forever trying to verify too many wildcards.
 
-2001-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/TODO, doc/scripts/Makefile.am: added scripts
-       into distribution
+       * THANKS, lib/gnutls_str.c, lib/gnutls_str.h, lib/openpgp/pgp.c,
+       lib/x509/rfc2818_hostname.c: _gnutls_hostname_compare() was
+       incredibly slow when over ten wildcards were present. Set a limit on
+       6 wildcards to avoid any denial of service attack. Reported by Kalle
+       Olavi Niemitalo.
 
-2001-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: [no log message]
+       * lib/gnutls_str.c, lib/opencdk/misc.c: Use c_toupper to avoid
+       converting characters non in the english ASCII set. Reported by
+       Kalle Olavi Niemitalo.
 
-2001-10-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_db.c, lib/gnutls_session.c: corrected bugs in session
-       resuming.
+       * lib/x509/verify-high.c: use > 0 instead of == 1.
 
-2001-10-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, lib/gnutls_db.c, lib/gnutls_int.h,
-       lib/gnutls_mem.c, lib/gnutls_session.c: [no log message]
+       * .gitignore, NEWS, lib/gnutls_cert.c,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/x509.h,
+       lib/libgnutls.map, lib/x509/verify-high.c, tests/Makefile.am,
+       tests/x509cert.c: Added gnutls_certificate_get_issuer() to allow
+       getting the issuer a certificate from the certificate credentials
+       structure.
 
-2001-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-30  Andreas Metzler <ametzler@downhill.at.eu.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_int.h, lib/io_debug.h: cleanups
+       * doc/manpages/p11tool.1: escape dashes in manpage Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/io_debug.h: added IO debugging code
+       * .gitignore, gl/m4/.gitignore, gl/m4/byteswap.m4,
+       gl/m4/codeset.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4,
+       gl/m4/func.m4, gl/m4/gettext.m4, gl/m4/glibc2.m4, gl/m4/glibc21.m4,
+       gl/m4/hmac-md5.m4, gl/m4/iconv.m4, gl/m4/intdiv0.m4, gl/m4/intl.m4,
+       gl/m4/intldir.m4, gl/m4/intlmacosx.m4, gl/m4/intmax.m4,
+       gl/m4/inttypes-pri.m4, gl/m4/lcmessage.m4, gl/m4/ld-output-def.m4,
+       gl/m4/ld-version-script.m4, gl/m4/lock.m4, gl/m4/md5.m4,
+       gl/m4/memmem.m4, gl/m4/memxor.m4, gl/m4/nls.m4, gl/m4/po.m4,
+       gl/m4/printf-posix.m4, gl/m4/progtest.m4, gl/m4/strcase.m4,
+       gl/m4/strdup.m4, gl/m4/strings_h.m4, gl/m4/strverscmp.m4,
+       gl/m4/threadlib.m4, gl/m4/time_r.m4, gl/m4/uintmax_t.m4,
+       gl/m4/valgrind-tests.m4, gl/m4/vasprintf.m4, gl/m4/visibility.m4,
+       gl/m4/vsnprintf.m4, gl/tests/.gitignore, gl/tests/intprops.h,
+       gl/tests/test-byteswap.c, gl/tests/test-func.c,
+       gl/tests/test-hmac-md5.c, gl/tests/test-md5.c,
+       gl/tests/test-strings.c, gl/tests/test-strverscmp.c,
+       gl/tests/test-u64.c, gl/tests/test-vasprintf.c,
+       gl/tests/test-vsnprintf.c: Added missing m4 gl files.
 
-2001-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-05-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in: [no log message]
+       * NEWS: documented previous updates.
 
-2001-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls_buffers.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_kx.h, lib/gnutls_record.c: added some checks for memory
-       allocation.  Fixes in write interrupts.
+       * tests/suite/testcompat-main: Check for openssl 1.0.x to test DTLS.
 
-2001-10-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-28  Ludovic Courtès <ludo@gnu.org>
 
-       * lib/gnutls_buffers.c: corrected bugs which could break non
-       blocking IO
+       * guile/modules/Makefile.am, guile/modules/gnutls/build/tests.scm,
+       guile/tests/anonymous-auth.scm, guile/tests/errors.scm,
+       guile/tests/openpgp-auth.scm, guile/tests/openpgp-keyring.scm,
+       guile/tests/openpgp-keys.scm, guile/tests/pkcs-import-export.scm,
+       guile/tests/session-record-port.scm, guile/tests/srp-base64.scm,
+       guile/tests/x509-auth.scm, guile/tests/x509-certificates.scm: guile:
+       Fix tests to match the `exit' behavior introduced in Guile 2.0.1.  This fix makes tests behave correctly wrt. to the Guile bug fix at
 
-2001-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       <http://git.sv.gnu.org/cgit/guile.git/commit/?id=e309f3bf9ee910c4772353ca3ff95f6f4ef466b5>.
 
-       * PGPKEYS: added file. Holds pgp keys
+2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls.pc.in: removed pakchois dependency
 
-       * lib/gnutls_buffers.c, lib/gnutls_record.c: corrections for the
-       gnutls_read_buffered() function.
+2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac: updated for release
 
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_int.h,
-       lib/gnutls_record.c, src/serv.c: updated/fixed the handling of
-       interrupted writes
+2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/x509dn.c: added missing header.
 
-       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_int.h, lib/gnutls_record.c: 
-       changed  gnutls_write() semantics in order to cope with interrupted
-       system calls and non blocking IO
+2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/accelerated/intel/Makefile.am: pass tag=CC to libtool. It
+       seems automake cannot really work with assembler sources.
 
-       * lib/gnutls_buffers.c: [no log message]
+2011-04-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_pcert.c, lib/openpgp/gnutls_openpgp.c: documentation
+       fixes.
 
-       * lib/gnutls.h.in, lib/gnutls_int.h: [no log message]
+2011-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * cfg.mk: start counting from 2009 for ChangeLog.
 
-       * NEWS, doc/tex/Makefile.am, doc/tex/gnutls.tex, lib/gnutls.h.in,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_record.c: 
-       changes in order to be independent of the berkeley style sockets
-       (but it is still difficult to use gnutls with any other api)
+2011-04-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/hostname-check.c: Removed incorrect test on IPAddresses (was
+       relying on IPaddresses encoded as text)
 
-       * lib/gnutls_buffers.c: made gnutls_write() unaware of interrupted
-       system calls and eagain errors.
+2011-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/rfc2818_hostname.c: gnutls_x509_crt_check_hostname() will
+       never compare against IPaddress.  (previous comparison was flawed)
 
-       * THANKS, doc/tex/resumedb.tex, lib/gnutls_buffers.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_record.c,
-       lib/gnutls_ui.c, lib/gnutls_ui.h, src/serv.c: several cleanups
+2011-04-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/examples/ex-cert-select.c, lib/auth/cert.c, lib/auth/cert.h,
+       lib/gnutls_cert.c, lib/includes/gnutls/abstract.h,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/certtool.c,
+       src/cli.c, tests/x509dn.c: Added
+       gnutls_certificate_set_retrieve_function2() to replace
+       gnutls_certificate_set_retrieve_function(). The new one is a
+       efficient for busy servers because it eliminates the need for the
+       server to encode the certificate to DER format.
 
-       * lib/gnutls_buffers.c, lib/gnutls_int.h: Corrected short read bug
+2011-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_alert.c, lib/gnutls_errors.c,
+       lib/includes/gnutls/gnutls.h.in: Added GNUTLS_E_USER_ERROR
 
-       * lib/gnutls_buffers.c: corrected _gnutls_write()
+2011-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/auth/cert.c, lib/ext/signature.c, lib/ext/signature.h,
+       lib/gnutls_pcert.c, lib/includes/gnutls/abstract.h,
+       lib/libgnutls.map: Eliminated the need for sign_algo in
+       gnutls_pcert_st. This means that we don't follow RFC5246 by letter,
+       but there wasn't any other implementation using the sign_algorithm
+       part of the certificate selection, and this helps reduce complexity.
 
-       * lib/gnutls_buffers.c: peeked data now stays also in handshake
+2011-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/cfg/Makefile.am, src/cfg/README: Added readme for libcfg.
 
-       * lib/gnutls_kx.c: corrected bug which caused a fatal alert to be
-       sent even if it wasn't required
+2011-04-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: No need to check for -maes and -mpclmul with the
+       current AES-NI code.
 
-       * lib/auth_x509.c, lib/gnutls_record.c, lib/gnutls_sig.c, src/cli.c: 
-       [no log message]
+2011-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * .gitignore: updated
 
-       * NEWS, lib/gnutls_buffers.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c,
-       lib/gnutls_record.c: introduced GNUTLS_E_INTERRUPTED, fixes in error
-       handling
+2011-04-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/Makefile.am, lib/abstract_int.h, lib/auth/cert.c,
+       lib/auth/cert.h, lib/auth/dhe.c, lib/auth/rsa.c,
+       lib/auth/rsa_export.c, lib/auth/srp_rsa.c, lib/ext/signature.c,
+       lib/ext/signature.h, lib/gnutls_algorithms.c, lib/gnutls_cert.c,
+       lib/gnutls_cert.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_mpi.c, lib/gnutls_pcert.c, lib/gnutls_privkey.c,
+       lib/gnutls_pubkey.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
+       lib/gnutls_state.c, lib/gnutls_ui.c, lib/gnutls_x509.c,
+       lib/gnutls_x509.h, lib/includes/gnutls/abstract.h,
+       lib/opencdk/pubkey.c, lib/openpgp/gnutls_openpgp.c,
+       lib/openpgp/gnutls_openpgp.h, lib/openpgp/openpgp_int.h,
+       lib/openpgp/pgp.c, lib/openpgp/pgpverify.c, lib/openpgp/privkey.c,
+       lib/pkcs11_int.h, lib/x509/common.h, lib/x509/pkcs12_encr.c,
+       lib/x509/sign.c, lib/x509/verify-high.c, lib/x509/verify.c,
+       lib/x509/x509.c, lib/x509/x509_int.h: Combined external abstract API
+       with internal usage of gnutls_cert.  This results to a
+       gnutls_pcert_st struct exported in abstract.h.  This change will allow a certificate retrieval callback that does
+       not require gnutls to decode or encode the provided certificate.
 
-       * lib/gnutls_buffers.c, lib/gnutls_handshake.c, lib/gnutls_int.h: 
-       the gnutls handshake protocol can now hold it's state. Thus it may
-       be used in some kind of non blocking mode. Not tested at all
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/gnutls_priority.c: Restored HMAC-MD5 for compatibility.
+       Although considered weak, several sites require it for connection.
+       It is enabled for "NORMAL" and "PERFORMANCE" priority strings.
 
-       * NEWS, doc/TODO, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_record.c: clean ups in the handshake protocol
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/accelerated/intel/aes-x86.c: Try to detect AES-NI on Intel and
+       AMD machines only.
 
-       * doc/tex/Makefile.am, doc/tex/ex1.tex, doc/tex/gnutls.tex,
-       doc/tex/resumedb.tex: [no log message]
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/README, lib/accelerated/intel/aes-x86.c,
+       lib/accelerated/intel/asm/appro-aes-x86-64.s,
+       lib/accelerated/intel/asm/appro-aes-x86.s,
+       lib/accelerated/intel/asm/x64_iaesx64.s,
+       lib/accelerated/intel/asm/x86_iaesx86.s,
+       lib/accelerated/intel/iaes_asm_interface.h,
+       lib/accelerated/intel/iaesni.h, lib/accelerated/intel/license.txt: 
+       Added Andy Polyakov's version of AES-NI optimizations.
 
-       * NEWS, configure.in, doc/TODO, doc/tex/ex3.tex, doc/tex/serv1.tex,
-       lib/auth_dhe_rsa.c, lib/auth_rsa.c, lib/auth_x509.c,
-       lib/auth_x509.h, lib/gnutls.h.in, lib/gnutls_auth.c,
-       lib/gnutls_auth_int.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       src/cli.c, src/serv.c: auth_info types and structures were moved to
-       the internals of the library.  This makes the library incompatible
-       (source & binary) with the previous versions.
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * .gitignore: more files to ignore
 
-       * lib/ext_srp.c, lib/gnutls.h.in, lib/gnutls_cert.c,
-       lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_ui.h: added option to regenerate
-       primes and generators for EDH
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/tests.c: COMP-ZLIB -> COMP-DEFLATE
 
-       * doc/TODO: [no log message]
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/Makefile.am, m4/hooks.m4: Link with pthreads.
 
-       * NEWS, lib/auth_x509.c, lib/ext_dnsname.c, lib/ext_dnsname.h,
-       lib/gnutls.h.in, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       src/cli.c, src/crypt.c, src/serv.c: updated name indication
-       extension (dnsname)
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/Makefile.am: read API from new directories as well.
 
-       * src/Makefile.am, src/crypt-gaa.c, src/crypt.gaa: renamed crypt to
-       srpcrypt.
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/accelerated/Makefile.am: corrected filename
 
-       * NEWS, doc/TODO, lib/auth_anon.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_global.c, lib/gnutls_int.h,
-       src/crypt.c: better prime handling
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/ext/session_ticket.c: removed conditional compilation
 
-       * doc/tex/ciphersuites.tex: [no log message]
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/ext/session_ticket.h: removed conditional compilation.
 
-       * lib/.cvsignore: [no log message]
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/accelerated/cryptodev.c: use correct header.
 
-       * lib/Makefile.am, lib/auth_dhe_rsa.c, lib/auth_srp_passwd.c,
-       lib/auth_x509.c, lib/gnutls.h.in, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_dh_primes.c, lib/gnutls_record.h, lib/gnutls_srp.c: 
-       Updated the handling of prime numbers.
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/README: documented directories.
 
-       * lib/auth_dhe_rsa.c, lib/auth_x509.c, lib/gnutls.h.in,
-       lib/gnutls_buffers.c, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_sig.c, lib/gnutls_sig.h: several
-       cleanups
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/Makefile.am, lib/accelerated/Makefile.am,
+       lib/accelerated/cryptodev.c, lib/accelerated/cryptodev.h,
+       lib/cryptodev.c, lib/gnutls_cryptodev.h, lib/gnutls_global.c: Moved
+       cryptodev to accelerated/
 
-       * lib/gnutls_sig.c: [no log message]
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_extensions.c, lib/gnutls_handshake.c: Session tickets
+       are included unconditionally.
 
-       * NEWS, THANKS, configure.in, doc/tex/ex3.tex, lib/auth_anon.c,
-       lib/auth_dhe_rsa.c, lib/auth_x509.c, lib/auth_x509.h,
-       lib/gnutls_algorithms.c, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_datum.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/x509_extensions.c,
-       src/cli.c, src/serv.c: added DHE_RSA ciphersuites
+2011-04-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac, lib/Makefile.am, lib/auth/Makefile.am,
+       lib/auth/anon.c, lib/auth/anon.h, lib/auth/cert.c, lib/auth/cert.h,
+       lib/auth/dh_common.c, lib/auth/dh_common.h, lib/auth/dhe.c,
+       lib/auth/dhe_psk.c, lib/auth/psk.c, lib/auth/psk.h,
+       lib/auth/psk_passwd.c, lib/auth/psk_passwd.h, lib/auth/rsa.c,
+       lib/auth/rsa_export.c, lib/auth/srp.c, lib/auth/srp.h,
+       lib/auth/srp_passwd.c, lib/auth/srp_passwd.h, lib/auth/srp_rsa.c,
+       lib/auth/srp_sb64.c, lib/auth_anon.c, lib/auth_anon.h,
+       lib/auth_cert.c, lib/auth_cert.h, lib/auth_dh_common.c,
+       lib/auth_dh_common.h, lib/auth_dhe.c, lib/auth_dhe_psk.c,
+       lib/auth_psk.c, lib/auth_psk.h, lib/auth_psk_passwd.c,
+       lib/auth_psk_passwd.h, lib/auth_rsa.c, lib/auth_rsa_export.c,
+       lib/auth_srp.c, lib/auth_srp.h, lib/auth_srp_passwd.c,
+       lib/auth_srp_passwd.h, lib/auth_srp_rsa.c, lib/auth_srp_sb64.c,
+       lib/ext/Makefile.am, lib/ext/cert_type.c, lib/ext/cert_type.h,
+       lib/ext/max_record.c, lib/ext/max_record.h,
+       lib/ext/safe_renegotiation.c, lib/ext/safe_renegotiation.h,
+       lib/ext/server_name.c, lib/ext/server_name.h,
+       lib/ext/session_ticket.c, lib/ext/session_ticket.h,
+       lib/ext/signature.c, lib/ext/signature.h, lib/ext/srp.c,
+       lib/ext/srp.h, lib/ext_cert_type.c, lib/ext_cert_type.h,
+       lib/ext_max_record.c, lib/ext_max_record.h,
+       lib/ext_safe_renegotiation.c, lib/ext_safe_renegotiation.h,
+       lib/ext_server_name.c, lib/ext_server_name.h,
+       lib/ext_session_ticket.c, lib/ext_session_ticket.h,
+       lib/ext_signature.c, lib/ext_signature.h, lib/ext_srp.c,
+       lib/ext_srp.h, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
+       lib/gnutls_cert.c, lib/gnutls_extensions.c, lib/gnutls_handshake.c,
+       lib/gnutls_psk.c, lib/gnutls_record.c, lib/gnutls_session_pack.c,
+       lib/gnutls_sig.c, lib/gnutls_srp.c, lib/gnutls_state.c,
+       lib/gnutls_ui.c, lib/gnutls_x509.c, lib/openpgp/gnutls_openpgp.h,
+       m4/hooks.m4: The auth_ and ext_ files were moved to respective
+       directories.
 
-       * doc/protocol/draft-ietf-tls-ciphersuite-03.txt,
-       doc/protocol/draft-ietf-tls-ciphersuite-05.txt,
-       doc/protocol/draft-ietf-tls-extensions-00.txt,
-       doc/protocol/draft-ietf-tls-extensions-01.txt,
-       doc/protocol/draft-ietf-tls-kerb-00.txt, doc/protocol/rfc2712.txt: 
-       updated documents
+2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/cha-intro-tls.texi: Reorganized sections in documentation.
 
-       * lib/gnutls_errors.c, lib/x509_extensions.c: [no log message]
+2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/examples/ex-cxx.cpp: removed unneeded comment.
 
-       * lib/x509_asn1.c, lib/x509_extensions.c: fixes in the certificate
-       extensions handling code.  Bugs reported by Neil Spring
-       <nspring@saavie.org>
+2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/cve-2009-1416.c, tests/pkcs12_s2k_pem.c: Added missing
+       headers.
 
-       * doc/tex/gnutls.tex: [no log message]
+2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/suite/Makefile.am, tests/suite/chain, tests/suite/testbig,
+       tests/suite/testbig-main, tests/suite/testcompat,
+       tests/suite/testcompat-main, tests/suite/x509paths/.gitignore,
+       tests/suite/x509paths/README, tests/x509paths/README,
+       tests/x509paths/chain: x509paths tests moved to suite/.
 
-       * doc/tex/ciphersuites.tex: [no log message]
+2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/certs/cert-rsa-2432.pem, tests/certs/rsa-2432.pem,
+       tests/scripts/common.sh, tests/suite/Makefile.am,
+       tests/suite/testbig, tests/suite/testbig-main: Added
+       interoperability tests with openssl.
 
-       * buildconf, doc/tex/macros.tex: [no log message]
+2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_buffers.c: Corrected SSLv2 header parsing.
 
-       * doc/tex/Makefile.am, doc/tex/ciphersuites.tex, doc/tex/gnutls.tex: 
-       more documentation
+2011-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/credentials/x509-server-dsa.pem,
+       doc/credentials/x509-server-key-dsa.pem: corrected illegal DSA key.
 
-       * doc/TODO: [no log message]
+2011-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/suite/Makefile.am, tests/suite/testsrn: Enabled the extra
+       safe renegotiation tests.
 
-       * lib/Makefile.am, lib/auth_anon.c, lib/auth_rsa.c,
-       lib/auth_x509.c, lib/auth_x509.h, lib/gnutls_cert.c,
-       lib/gnutls_dh.h, lib/gnutls_ui.c, lib/gnutls_ui.h: several cleanups
-       in order to support DHE_RSA
+2011-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * m4/hooks.m4: removed opaque PRF from m4.
 
-       * lib/auth_dhe_rsa.c: Preliminary support for DHE_RSA
+2011-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_buffers.c: removed text about select().
 
-       * doc/TODO: [no log message]
+2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac, lib/Makefile.am: check for libdl that pakchois
+       needs.
 
-       * lib/auth_dhe_dss.c, lib/gnutls_compress_int.h, lib/gnutls_num.c: 
-       [no log message]
+2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/Makefile.am, lib/pakchois/README: Added readme about pakchois
+       and removed checks for pakchois in Makefile.am.
 
-       * doc/tex/Makefile.am: [no log message]
+2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac, m4/hooks.m4: Reorganization in configure file.
+       Pakchois is not longer checked for being present. The included
+       version is always used.
 
-       * NEWS: [no log message]
+2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/.gitignore, gl/asprintf.c, gl/byteswap.in.h, gl/hmac-md5.c,
+       gl/hmac.h, gl/md5.c, gl/md5.h, gl/memmem.c, gl/memxor.c,
+       gl/memxor.h, gl/str-two-way.h, gl/strcasecmp.c, gl/strdup.c,
+       gl/strings.in.h, gl/strncasecmp.c, gl/strverscmp.c, gl/time_r.c,
+       gl/u64.h, gl/unistd.h, gl/vasprintf.c, gl/vsnprintf.c,
+       gl/warn-on-use.h, gl/wchar.h: Added missing gnulib files
 
-       * lib/gnutls_cert.c: updated documentation
+2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/crypto-api.c: Added missing const.
 
-       * README, doc/TODO: [no log message]
+2011-04-12  Ludovic Courtès <ludo@gnu.org>
 
-2001-09-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, src/certtool-common.c, src/certtool.c, src/p11tool.c,
+       tests/crq_key_id.c, tests/cve-2009-1416.c, tests/pkcs12_s2k_pem.c: 
+       Don't include <gcrypt.h> when it's not needed.
 
-       * NEWS, doc/tex/ex3.tex, lib/Makefile.am, lib/auth_rsa.c,
-       lib/auth_x509.c, lib/auth_x509.h, lib/gnutls.h.in,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_errors.c,
-       lib/gnutls_int.h, lib/gnutls_ui.c, lib/gnutls_ui.h,
-       lib/x509_extensions.c, src/cli.c, src/serv.c: Client certificate
-       callback has been improved
+2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/cha-internals.texi: fixed and updates in documentation
 
-       * doc/TODO: [no log message]
+2011-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/gnutls-crypto-layers.eps: Updated crypto layers documentation.
 
-       * doc/TODO: [no log message]
+2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-x86.c,
+       lib/accelerated/intel/asm/x64_do_rdtsc.s,
+       lib/accelerated/intel/asm/x86_do_rdtsc.s, tests/cipher-test.c: 
+       Updates in the AES-NI accelerator.
 
-       * doc/README.autoconf, doc/TODO: [no log message]
+2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/crypto-api.c, lib/includes/gnutls/crypto.h, lib/libgnutls.map: 
+       Added gnutls_cipher_set_iv().
 
-       * NEWS, configure.in, doc/tex/Makefile.am, lib/Makefile.am: updated
-       documentation generation
+2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/Makefile.am, tests/cipher-test.c: Added test vectors for
+       AES,SHAxxx and MD5.
 
-       * doc/TODO: [no log message]
+2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-09-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/accelerated/intel/aes-x86.c, lib/crypto.c,
+       lib/includes/gnutls/crypto.h: Increased priority of CPU assisted
+       ciphers.
 
-       * lib/gnutls_algorithms.c: updated documentation
+2011-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/cli.c: Do not rely on lowat being set.
 
-       * src/cli.c: [no log message]
+2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/accelerated/Makefile.am, lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/README: Added README explaining the usage of
+       Intel AES library.
 
-       * lib/gnutls_global.c, lib/gnutls_int.h, lib/gnutls_num.h: minor
-       bugfixes
+2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_buffers.c: Corrected parsing error in TLS, when many
+       handshake messages were packed in a single record message.
 
-       * acconfig.h, configure.in, lib/gnutls_global.c: use of sigaction
-       instead of signal(), to ignore SIGPIPE
+2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * .gitignore, configure.ac, lib/accelerated/Makefile.am,
+       lib/accelerated/accelerated.c, lib/accelerated/aes-x86.c,
+       lib/accelerated/aes-x86.h, lib/accelerated/intel/Makefile.am,
+       lib/accelerated/intel/aes-x86.c, lib/accelerated/intel/aes-x86.h,
+       lib/accelerated/intel/asm/x64_do_rdtsc.s,
+       lib/accelerated/intel/asm/x64_iaesx64.s,
+       lib/accelerated/intel/asm/x86_do_rdtsc.s,
+       lib/accelerated/intel/asm/x86_iaesx86.s,
+       lib/accelerated/intel/iaes_asm_interface.h,
+       lib/accelerated/intel/iaesni.h, lib/accelerated/intel/license.txt,
+       m4/gcc.m4: fixes in acceleration detection.  Added Intel's library
+       code for AES-NI acceleration.
 
-       * buildconf: [no log message]
+2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * guile/modules/gnutls/build/enums.scm, lib/libgnutls.map,
+       libextra/Makefile.am: Purged all references of LZO.
 
-       * NEWS, configure.in, doc/tex/Makefile.am, doc/tex/cover.tex,
-       doc/tex/cover.tex.in, doc/tex/serv1.tex, lib/auth_rsa.c,
-       lib/auth_x509.h, lib/gnutls.h.in, lib/gnutls_cert.c,
-       lib/gnutls_int.h, lib/gnutls_ui.c, lib/gnutls_ui.h, src/serv.c: 
-       gnutls_set_certificate_request() renamed to
-       gnutls_x509pki_set_cert_request().  Added
-       gnutls_x509pki_set_cert_callback().
+2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac: removed duplicate test
 
-       * NEWS, doc/TODO, lib/gnutls.h.in, lib/gnutls_anon_cred.c,
-       lib/gnutls_cipher.c, lib/gnutls_record.c, lib/x509_asn1.c,
-       lib/x509_asn1.h, lib/x509_b64.c, lib/x509_der.c, src/serv.c: fixed
-       memory leaks
+2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/examples/ex-cxx.cpp, gl/time.in.h: No need to under restrict
+       for C++. Only use config.h.
 
-       * configure.in, lib/gnutls.h.in: updated gnutls.h file
+2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, lib/includes/gnutls/gnutls.h.in, lib/system_override.c: 
+       gnutls_transport_set_global_errno() is no more.
 
-       * doc/tex/cover.tex: [no log message]
+2011-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/eagain-common.h, tests/safe-renegotiation/Makefile.am,
+       tests/safe-renegotiation/srn0.c, tests/safe-renegotiation/srn1.c,
+       tests/safe-renegotiation/srn2.c, tests/safe-renegotiation/srn3.c,
+       tests/safe-renegotiation/srn4.c, tests/safe-renegotiation/srn5.c: 
+       Combined the safe renegotiation tests with the again-common lib.
 
-       * doc/tex/cover.tex, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_record.c, lib/gnutls_ui.c, src/serv.c: some memory
-       optimization while receiving packets
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac, doc/cha-intro-tls.texi, doc/cha-preface.texi,
+       doc/cha-programs.texi, lib/gnutls_compress.c, lib/gnutls_errors.c,
+       lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
+       lib/libgnutls.map, libextra/gnutls_extra.c, m4/hooks.m4: Support for
+       liblzo was dropped.
 
-       * lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_record.c: 
-       header size is now written in gnutls_cipher.c
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS, configure.ac: bumped version
 
-       * NEWS: [no log message]
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * .gitignore, gl/time.h, gl/time.in.h: updated time.h.in
 
-       * lib/auth_rsa.c, lib/gnutls.h.in, lib/gnutls_int.h,
-       lib/gnutls_record.c, src/cli.c, src/serv.c: bugfixes and minor
-       updates
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_algorithms.c, lib/gnutls_dtls.c, lib/gnutls_mem.c,
+       lib/gnutls_psk.c, lib/gnutls_record.c,
+       lib/includes/gnutls/gnutls.h.in, lib/pkcs11.c,
+       lib/pkcs11_privkey.c, lib/x509/verify-high.c, lib/x509/verify.c: 
+       Corrected documentation of several API functions.
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/serv1.tex, doc/tex/srp1.tex: corrected and updated
-       documentation
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/cha-gtls-app.texi, doc/cha-library.texi: documentation
+       updates.
 
-       * lib/gnutls.h.in, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/cli.c, src/serv.c: changed gnutls_bye() behaviour
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/scripts/gdoc, doc/scripts/sort2.pl: remove perl warnings from
+       scripts.
 
-       * doc/TODO: [no log message]
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * configure.ac, lib/Makefile.am, lib/accelerated/Makefile.am,
+       lib/accelerated/accelerated.c, lib/accelerated/accelerated.h,
+       lib/accelerated/aes-x86.c, lib/accelerated/aes-x86.h,
+       lib/accelerated/x86.h, lib/gnutls_global.c, m4/gcc.m4: Added support
+       for x86 intel AES instruction acceleration if detected.
 
-       * lib/gnutls.h.in, lib/gnutls_buffers.c, lib/gnutls_int.h,
-       lib/gnutls_record.c: several fixes in gnutls_bye() function, and in
-       gnutls_recv_int()
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * gl/time.h, gl/unistd.h, gl/warn-on-use.h, gl/wchar.h: Added gl/
+       files.
 
-       * lib/gnutls_cert.c: corrected bugs in version handling and in
-       certificate initialization
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * cfg.mk: corrected po directory and build-aux paths.
 
-       * NEWS, configure.in, lib/auth_srp.c, lib/ext_srp.c,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/cli.c: better support for buffered read and several cleanups
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/examples/Makefile.am: include gnulib files.
 
-       * lib/gnutls_cipher.c, lib/gnutls_kx.c, lib/gnutls_record.c: gnutls
-       now sends (again) record packets using one write.
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/TODO: updated TODO
 
-       * lib/gnutls_srp.c: corrected free for data not belonging to the
-       heap
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/openpgp-certs/testselfsigs: Use --infile in certtool to
+       avoid issues with streams in windows.  Patch by LRN.
 
-       * lib/auth_anon.c, lib/auth_srp.c, lib/auth_srp_passwd.c,
-       lib/crypt_bcrypt.c, lib/gnutls_buffers.c, lib/gnutls_dh.c,
-       lib/gnutls_handshake.c, lib/gnutls_mem.c, lib/gnutls_mem.h,
-       lib/gnutls_srp.c: several checks for failed allocations and other
-       fixes
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/opencdk/armor.c: Changes armor.c to be able to handle both LF
+       and CRLF inputs (output is still either LF-only or CRLF-only
+       depending on the platform). Patch by LRN.  Optimizations in the usage of strlen().
 
-       * src/cli.c: [no log message]
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * src/cli.c, src/psk.c, src/serv.c, src/srptool.c, src/tests.c: 
+       Define variables within the intended scope (not windows). Based on
+       patch by LRN.
 
-       * lib/auth_anon.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/ext_srp.c, lib/gnutls_dh.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_privkey.c, src/cli.c: fixes in SRP key exchange and
-       several others.
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * doc/examples/ex-cert-select-pkcs11.c, src/common.c, src/pkcs11.c: 
+       Use getpass.h (from gnulib). Patch by LRN.
 
-       * NEWS, configure.in, doc/tex/ex3.tex, doc/tex/serv1.tex,
-       lib/auth_rsa.c, lib/ext_srp.c, lib/gnutls_auth_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_ui.h,
-       lib/x509_sig_check.c, lib/x509_verify.c, src/cli.c, src/serv.c: 
-       server side client authentication works
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/pakchois/dlopen.c: Return correct value for dlclose() in
+       windows. Patch by LRN.
 
-       * doc/TODO, lib/auth_anon.c, lib/auth_rsa.c, lib/auth_srp.c,
-       lib/auth_x509.h, lib/gnutls.h.in, lib/gnutls_auth.h,
-       lib/gnutls_cert.c, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_kx.h, src/serv.c: additions in order for gnutls server to
-       support client authentication
+2011-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/openpgp-auth.c: Disable openpgp-auth run in windows due to
+       lack of socketpair(). Patch by LRN.
 
-       * lib/auth_rsa.c, lib/gnutls_buffers.c, lib/gnutls_cipher.c,
-       lib/gnutls_constate.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_pk.c: ssl3 fixes and several others.
+2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * Makefile.am: gl before lib or libextra
 
-       * lib/gnutls_mem.c: realloc does not realloc memory if less size is
-       requested.
+2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * ChangeLog: generated
 
-       * lib/auth_rsa.c, lib/gnutls_cert.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c, lib/gnutls_int.h: 
-       updated in key usage fields
+2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * NEWS: updated
 
-       * lib/gnutls_int.h, lib/gnutls_sig.c, lib/gnutls_sig.h,
-       lib/x509_sig_check.c: cleanups in the signature generating functions
+2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * .gitignore, doc/cha-gtls-app.texi, doc/cha-intro-tls.texi,
+       doc/examples/Makefile.am, doc/examples/ex-client-udp.c,
+       doc/examples/udp.c, lib/gnutls_state.c: Added documentation for
+       Datagram TLS.
 
-       * lib/gnutls_kx.c: [no log message]
+2011-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * cfg.mk: updated
 
-       * NEWS, lib/auth_anon.c, lib/auth_anon.h, lib/auth_rsa.c,
-       lib/auth_srp.c, lib/auth_srp.h, lib/auth_x509.c, lib/auth_x509.h,
-       lib/ext_srp.c, lib/gnutls.h.in, lib/gnutls_auth.c,
-       lib/gnutls_buffers.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_ui.c, lib/gnutls_ui.h, lib/gnutls_v2_compat.c,
-       src/cli.c, src/serv.c: several fixes. Added client authentication
-       with x509PKI
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/chainverify.c: disable test in windows.
 
-       * lib/Makefile.am, lib/auth_rsa.c, lib/gnutls_buffers.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_sig.c, lib/gnutls_sig_check.c, lib/x509_sig_check.c: more
-       x509 client certificate stuff
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * tests/mini-x509-rehandshake.c, tests/openpgp-auth.c,
+       tests/openpgp-auth2.c: corrected leaks in tests.
 
-       * src/x509/clicert.pem, src/x509/clikey.pem: added client
-       certificates
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/auth_cert.c, lib/gnutls_pk.c: corrected memory leak on RSA
+       signatures.
 
-       * lib/Makefile.am, lib/auth_rsa.c, lib/gnutls_cert.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_pk.c, lib/gnutls_sig.c, lib/gnutls_sig.h, src/cli.c,
-       src/x509/Makefile.am: several additions for x509 client
-       authentication
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/x509/common.c: more leaks fixed in common.c
 
-       * lib/auth_rsa.c, lib/gnutls_buffers.c, lib/gnutls_cert.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_mem.c, lib/gnutls_mem.h,
-       lib/gnutls_record.c: added the concept of optional handshake packets
-       (like CERTIFICATE_REQUEST).  several other fixes.
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+       * lib/gnutls_pubkey.c: Corrected leaks in gnutls_pubkey_t
+       deinitialization.
 
-       * lib/auth_anon.c, lib/auth_anon.h, lib/auth_rsa.c, lib/auth_srp.c,
-       lib/auth_srp.h, lib/auth_x509.h, lib/ext_srp.c,
-       lib/gnutls_algorithms.c, lib/gnutls_auth.h, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_record.c,
-       lib/gnutls_ui.c: several cleanups and updates in the handshake
-       protocol implementation iolaiiiiiCVS:
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       ----------------------------------------------------------------------
+       * lib/x509/verify-high.c: fix in trusted_list certificate
+       deinitialization.
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/tex/ex3.tex, doc/tex/serv1.tex,
-       lib/Makefile.am, lib/auth_x509.c, lib/auth_x509.h, lib/gnutls.h.in,
-       lib/gnutls_cert.h, lib/gnutls_errors_int.h, lib/gnutls_int.h,
-       lib/gnutls_ui.c, lib/gnutls_ui.h, src/cli.c, src/serv.c: several
-       cleanups. No longer export structures to the API, but a bunch of
-       functions in order to access them.
+       * lib/gnutls_privkey.c: correction in deinitialization of privkey.
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex: 
-       gnutls_x509_set_cn() was removed
+       * tests/mini-x509-rehandshake.c, tests/mini-x509.c: combined more
+       tests with eagain-common.h.
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.autoconf, doc/TODO: [no log message]
+       * lib/auth_dh_common.c, lib/gnutls_privkey.c, lib/gnutls_x509.c,
+       lib/nettle/pk.c, lib/pakchois/pakchois.c, lib/pakchois/pakchois.h,
+       lib/pkcs11.c, lib/x509/verify-high.c, tests/mini-x509.c: Corrected
+       memory leaks.
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/.cvsignore, lib/x509_asn1.h, lib/x509_der.h: [no log message]
+       * build-aux/arg-nonnull.h, build-aux/c++defs.h,
+       build-aux/config.rpath, build-aux/warn-on-use.h, cfg.mk,
+       gl/Makefile.am, gl/m4/.gitignore, gl/m4/gnulib-cache.m4,
+       gl/m4/gnulib-comp.m4: added valgrind from gnulib.
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls.h.in, lib/gnutls_global.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/.cvsignore: added new function gnutls_send_alert() to the api
+       * tests/dsa/testdsa, tests/openpgp-certs/testcerts: Do not run the
+       test scripts in win32 environment.
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_rsa.c, lib/auth_x509.c,
-       lib/auth_x509.h, lib/gnutls.h.in, lib/gnutls_cert.c,
-       lib/gnutls_cert.h: cleanups in certificate copying
+       * cfg.mk: use the system wide gnulib-tool.
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/CertificateExample.c, src/CrlExample.c, src/Makefile.am,
-       src/asn1c.c, src/prime.c: fixes for the new files
+       * .gitignore: updated
 
-2001-08-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_rsa.c, lib/auth_srp_passwd.c,
-       lib/cert_ASN.y, lib/cert_asn1.c, lib/cert_asn1.h, lib/cert_b64.c,
-       lib/cert_b64.h, lib/cert_der.c, lib/cert_der.h, lib/cert_verify.c,
-       lib/cert_verify.h, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_global.c, lib/gnutls_global.h, lib/gnutls_privkey.c,
-       lib/gnutls_sig_check.c, lib/pkcs1_asn1_tab.c, lib/pkix_asn1_tab.c,
-       lib/x509_ASN.y, lib/x509_asn1.c, lib/x509_asn1.h, lib/x509_b64.c,
-       lib/x509_b64.h, lib/x509_der.c, lib/x509_der.h,
-       lib/x509_extensions.c, lib/x509_extensions.h, lib/x509_verify.c,
-       lib/x509_verify.h: renamed cert_* to x509_*
+       * NEWS: updated
 
-2001-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_asn1.c, lib/cert_asn1.h, lib/cert_der.c, lib/cert_der.h,
-       lib/gnutls_cert.c: asn1_read_value() will no longer overflow the
-       given buffer.  (this assumes that the caller provided the size of
-       the buffer)
+       * tests/suite/ecore/src/lib/ecore_exe.c: include priority headers
+       unconditionally.
 
-2001-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_x509.h, lib/gnutls.h.in,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_sig_check.c: fixes in x509 cert
-       extensions handling
+       * configure.ac, tests/Makefile.am, tests/suite/Makefile.am,
+       tests/suite/Makefile.in: Better way of not including the tests/suite
+       directory. Based on discussion with LRN and Vincent Torri.
 
-2001-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_errors.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: minor fixes
+       * .gitignore, Makefile.am, cfg.mk, configure.ac,
+       doc/examples/Makefile.am, doc/gendocs_template, gl/.gitignore,
+       gl/Makefile.am, gl/accept.c, gl/alignof.h, gl/alloca.c,
+       gl/alloca.in.h, gl/arpa_inet.in.h, gl/asnprintf.c, gl/bind.c,
+       gl/c-ctype.c, gl/c-ctype.h, gl/close-hook.c, gl/close-hook.h,
+       gl/close.c, gl/connect.c, gl/errno.in.h, gl/error.c, gl/error.h,
+       gl/fclose.c, gl/float+.h, gl/float.in.h, gl/fseeko.c, gl/ftello.c,
+       gl/gai_strerror.c, gl/getaddrinfo.c, gl/getdelim.c, gl/getline.c,
+       gl/getpass.c, gl/getpass.h, gl/gettext.h, gl/gettime.c,
+       gl/gettimeofday.c, gl/inet_ntop.c, gl/inet_pton.c, gl/intprops.h,
+       gl/listen.c, gl/lseek.c, gl/m4/.gitignore, gl/m4/00gnulib.m4,
+       gl/m4/alloca.m4, gl/m4/arpa_inet_h.m4, gl/m4/asm-underscore.m4,
+       gl/m4/autobuild.m4, gl/m4/clock_time.m4, gl/m4/close.m4,
+       gl/m4/errno_h.m4, gl/m4/error.m4, gl/m4/extensions.m4,
+       gl/m4/fclose.m4, gl/m4/float_h.m4, gl/m4/fseeko.m4,
+       gl/m4/ftello.m4, gl/m4/getaddrinfo.m4, gl/m4/getdelim.m4,
+       gl/m4/getline.m4, gl/m4/getpagesize.m4, gl/m4/getpass.m4,
+       gl/m4/gettime.m4, gl/m4/gettimeofday.m4, gl/m4/gnulib-cache.m4,
+       gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4,
+       gl/m4/hostent.m4, gl/m4/include_next.m4, gl/m4/inet_ntop.m4,
+       gl/m4/inet_pton.m4, gl/m4/intmax_t.m4, gl/m4/inttypes_h.m4,
+       gl/m4/ioctl.m4, gl/m4/lib-ld.m4, gl/m4/lib-link.m4,
+       gl/m4/lib-prefix.m4, gl/m4/longlong.m4, gl/m4/lseek.m4,
+       gl/m4/malloc.m4, gl/m4/manywarnings.m4, gl/m4/memchr.m4,
+       gl/m4/minmax.m4, gl/m4/mmap-anon.m4, gl/m4/multiarch.m4,
+       gl/m4/netdb_h.m4, gl/m4/netinet_in_h.m4, gl/m4/perror.m4,
+       gl/m4/printf.m4, gl/m4/read-file.m4, gl/m4/readline.m4,
+       gl/m4/realloc.m4, gl/m4/select.m4, gl/m4/servent.m4,
+       gl/m4/size_max.m4, gl/m4/snprintf.m4, gl/m4/socketlib.m4,
+       gl/m4/sockets.m4, gl/m4/socklen.m4, gl/m4/sockpfaf.m4,
+       gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4,
+       gl/m4/stdint.m4, gl/m4/stdint_h.m4, gl/m4/stdio_h.m4,
+       gl/m4/stdlib_h.m4, gl/m4/strerror.m4, gl/m4/string_h.m4,
+       gl/m4/sys_ioctl_h.m4, gl/m4/sys_select_h.m4, gl/m4/sys_socket_h.m4,
+       gl/m4/sys_stat_h.m4, gl/m4/sys_time_h.m4, gl/m4/time_h.m4,
+       gl/m4/timespec.m4, gl/m4/ungetc.m4, gl/m4/unistd_h.m4,
+       gl/m4/valgrind-tests.m4, gl/m4/vasnprintf.m4, gl/m4/version-etc.m4,
+       gl/m4/warn-on-use.m4, gl/m4/warnings.m4, gl/m4/wchar_h.m4,
+       gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/malloc.c,
+       gl/memchr.c, gl/minmax.h, gl/netdb.in.h, gl/netinet_in.in.h,
+       gl/perror.c, gl/printf-args.c, gl/printf-args.h, gl/printf-parse.c,
+       gl/printf-parse.h, gl/progname.c, gl/progname.h, gl/read-file.c,
+       gl/read-file.h, gl/readline.c, gl/readline.h, gl/realloc.c,
+       gl/recv.c, gl/select.c, gl/send.c, gl/setsockopt.c, gl/shutdown.c,
+       gl/size_max.h, gl/snprintf.c, gl/socket.c, gl/sockets.c,
+       gl/sockets.h, gl/stdarg.in.h, gl/stdbool.in.h, gl/stddef.in.h,
+       gl/stdint.in.h, gl/stdio-impl.h, gl/stdio-write.c, gl/stdio.in.h,
+       gl/stdlib.in.h, gl/strerror.c, gl/string.in.h, gl/sys_select.in.h,
+       gl/sys_socket.in.h, gl/sys_stat.in.h, gl/sys_time.in.h,
+       gl/tests/.gitignore, gl/tests/Makefile.am, gl/tests/binary-io.h,
+       gl/tests/dummy.c, gl/tests/fcntl.in.h, gl/tests/getpagesize.c,
+       gl/tests/init.sh, gl/tests/ioctl.c, gl/tests/macros.h,
+       gl/tests/signature.h, gl/tests/sys_ioctl.in.h,
+       gl/tests/test-alignof.c, gl/tests/test-alloca-opt.c,
+       gl/tests/test-arpa_inet.c, gl/tests/test-binary-io.c,
+       gl/tests/test-c-ctype.c, gl/tests/test-errno.c,
+       gl/tests/test-fcntl-h.c, gl/tests/test-fseeko.c,
+       gl/tests/test-ftello.c, gl/tests/test-ftello3.c,
+       gl/tests/test-getaddrinfo.c, gl/tests/test-getdelim.c,
+       gl/tests/test-getline.c, gl/tests/test-gettimeofday.c,
+       gl/tests/test-inet_ntop.c, gl/tests/test-inet_pton.c,
+       gl/tests/test-lseek.c, gl/tests/test-lseek.sh,
+       gl/tests/test-memchr.c, gl/tests/test-netdb.c,
+       gl/tests/test-netinet_in.c, gl/tests/test-perror.c,
+       gl/tests/test-perror.sh, gl/tests/test-read-file.c,
+       gl/tests/test-select-fd.c, gl/tests/test-select-in.sh,
+       gl/tests/test-select-out.sh, gl/tests/test-select-stdin.c,
+       gl/tests/test-select.c, gl/tests/test-snprintf.c,
+       gl/tests/test-sockets.c, gl/tests/test-stdbool.c,
+       gl/tests/test-stddef.c, gl/tests/test-stdint.c,
+       gl/tests/test-stdio.c, gl/tests/test-stdlib.c,
+       gl/tests/test-strerror.c, gl/tests/test-string.c,
+       gl/tests/test-sys_ioctl.c, gl/tests/test-sys_select.c,
+       gl/tests/test-sys_socket.c, gl/tests/test-sys_stat.c,
+       gl/tests/test-sys_time.c, gl/tests/test-sys_wait.h,
+       gl/tests/test-time.c, gl/tests/test-unistd.c,
+       gl/tests/test-update-copyright.sh, gl/tests/test-vasnprintf.c,
+       gl/tests/test-vc-list-files-cvs.sh,
+       gl/tests/test-vc-list-files-git.sh, gl/tests/test-verify.c,
+       gl/tests/test-version-etc.c, gl/tests/test-version-etc.sh,
+       gl/tests/test-wchar.c, gl/tests/w32sock.h, gl/tests/zerosize-ptr.h,
+       gl/time.in.h, gl/timespec.h, gl/unistd.in.h, gl/vasnprintf.c,
+       gl/vasnprintf.h, gl/verify.h, gl/version-etc-fsf.c,
+       gl/version-etc.c, gl/version-etc.h, gl/w32sock.h, gl/wchar.in.h,
+       gl/xsize.h, guile/src/Makefile.am, lib/Makefile.am,
+       lib/configure.ac, lib/gcrypt/Makefile.am, lib/gl/Makefile.am,
+       lib/gl/alignof.h, lib/gl/alloca.in.h, lib/gl/asnprintf.c,
+       lib/gl/asprintf.c, lib/gl/byteswap.in.h, lib/gl/c-ctype.c,
+       lib/gl/c-ctype.h, lib/gl/close-hook.c, lib/gl/close-hook.h,
+       lib/gl/errno.in.h, lib/gl/float+.h, lib/gl/float.in.h,
+       lib/gl/fseeko.c, lib/gl/ftello.c, lib/gl/gettext.h, lib/gl/lseek.c,
+       lib/gl/m4/00gnulib.m4, lib/gl/m4/alloca.m4,
+       lib/gl/m4/asm-underscore.m4, lib/gl/m4/byteswap.m4,
+       lib/gl/m4/codeset.m4, lib/gl/m4/errno_h.m4,
+       lib/gl/m4/extensions.m4, lib/gl/m4/fcntl-o.m4,
+       lib/gl/m4/float_h.m4, lib/gl/m4/fseeko.m4, lib/gl/m4/ftello.m4,
+       lib/gl/m4/func.m4, lib/gl/m4/getpagesize.m4, lib/gl/m4/gettext.m4,
+       lib/gl/m4/glibc2.m4, lib/gl/m4/glibc21.m4,
+       lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-common.m4,
+       lib/gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-tool.m4,
+       lib/gl/m4/iconv.m4, lib/gl/m4/include_next.m4,
+       lib/gl/m4/intdiv0.m4, lib/gl/m4/intl.m4, lib/gl/m4/intldir.m4,
+       lib/gl/m4/intlmacosx.m4, lib/gl/m4/intmax.m4,
+       lib/gl/m4/intmax_t.m4, lib/gl/m4/inttypes-pri.m4,
+       lib/gl/m4/inttypes_h.m4, lib/gl/m4/lcmessage.m4,
+       lib/gl/m4/ld-output-def.m4, lib/gl/m4/ld-version-script.m4,
+       lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4,
+       lib/gl/m4/lib-prefix.m4, lib/gl/m4/lock.m4, lib/gl/m4/longlong.m4,
+       lib/gl/m4/lseek.m4, lib/gl/m4/malloc.m4, lib/gl/m4/memchr.m4,
+       lib/gl/m4/memmem.m4, lib/gl/m4/minmax.m4, lib/gl/m4/mmap-anon.m4,
+       lib/gl/m4/multiarch.m4, lib/gl/m4/netdb_h.m4, lib/gl/m4/nls.m4,
+       lib/gl/m4/po.m4, lib/gl/m4/printf-posix.m4, lib/gl/m4/printf.m4,
+       lib/gl/m4/progtest.m4, lib/gl/m4/read-file.m4,
+       lib/gl/m4/realloc.m4, lib/gl/m4/size_max.m4, lib/gl/m4/snprintf.m4,
+       lib/gl/m4/socketlib.m4, lib/gl/m4/sockets.m4, lib/gl/m4/socklen.m4,
+       lib/gl/m4/sockpfaf.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stddef_h.m4,
+       lib/gl/m4/stdint.m4, lib/gl/m4/stdint_h.m4, lib/gl/m4/stdio_h.m4,
+       lib/gl/m4/stdlib_h.m4, lib/gl/m4/strcase.m4, lib/gl/m4/string_h.m4,
+       lib/gl/m4/strings_h.m4, lib/gl/m4/strverscmp.m4,
+       lib/gl/m4/sys_socket_h.m4, lib/gl/m4/sys_stat_h.m4,
+       lib/gl/m4/threadlib.m4, lib/gl/m4/time_h.m4, lib/gl/m4/time_r.m4,
+       lib/gl/m4/uintmax_t.m4, lib/gl/m4/ungetc.m4, lib/gl/m4/unistd_h.m4,
+       lib/gl/m4/vasnprintf.m4, lib/gl/m4/vasprintf.m4,
+       lib/gl/m4/visibility.m4, lib/gl/m4/vsnprintf.m4,
+       lib/gl/m4/warn-on-use.m4, lib/gl/m4/wchar_h.m4,
+       lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/m4/xsize.m4,
+       lib/gl/malloc.c, lib/gl/memchr.c, lib/gl/memchr.valgrind,
+       lib/gl/memmem.c, lib/gl/minmax.h, lib/gl/netdb.in.h,
+       lib/gl/override/lib/gc-libgcrypt.c.diff,
+       lib/gl/override/lib/gettext.h.diff, lib/gl/printf-args.c,
+       lib/gl/printf-args.h, lib/gl/printf-parse.c, lib/gl/printf-parse.h,
+       lib/gl/read-file.c, lib/gl/read-file.h, lib/gl/realloc.c,
+       lib/gl/size_max.h, lib/gl/snprintf.c, lib/gl/sockets.c,
+       lib/gl/sockets.h, lib/gl/stdbool.in.h, lib/gl/stddef.in.h,
+       lib/gl/stdint.in.h, lib/gl/stdio-impl.h, lib/gl/stdio-write.c,
+       lib/gl/stdio.in.h, lib/gl/stdlib.in.h, lib/gl/str-two-way.h,
+       lib/gl/strcasecmp.c, lib/gl/string.in.h, lib/gl/strings.in.h,
+       lib/gl/strncasecmp.c, lib/gl/strverscmp.c, lib/gl/sys_socket.in.h,
+       lib/gl/sys_stat.in.h, lib/gl/tests/Makefile.am,
+       lib/gl/tests/binary-io.h, lib/gl/tests/dummy.c,
+       lib/gl/tests/getpagesize.c, lib/gl/tests/init.sh,
+       lib/gl/tests/intprops.h, lib/gl/tests/macros.h,
+       lib/gl/tests/signature.h, lib/gl/tests/test-alloca-opt.c,
+       lib/gl/tests/test-binary-io.c, lib/gl/tests/test-binary-io.sh,
+       lib/gl/tests/test-byteswap.c, lib/gl/tests/test-c-ctype.c,
+       lib/gl/tests/test-errno.c, lib/gl/tests/test-fseeko.c,
+       lib/gl/tests/test-fseeko.sh, lib/gl/tests/test-fseeko2.sh,
+       lib/gl/tests/test-ftello.c, lib/gl/tests/test-ftello.sh,
+       lib/gl/tests/test-ftello2.sh, lib/gl/tests/test-ftello3.c,
+       lib/gl/tests/test-func.c, lib/gl/tests/test-memchr.c,
+       lib/gl/tests/test-netdb.c, lib/gl/tests/test-read-file.c,
+       lib/gl/tests/test-snprintf.c, lib/gl/tests/test-sockets.c,
+       lib/gl/tests/test-stdbool.c, lib/gl/tests/test-stddef.c,
+       lib/gl/tests/test-stdint.c, lib/gl/tests/test-stdio.c,
+       lib/gl/tests/test-stdlib.c, lib/gl/tests/test-string.c,
+       lib/gl/tests/test-strings.c, lib/gl/tests/test-strverscmp.c,
+       lib/gl/tests/test-sys_socket.c, lib/gl/tests/test-sys_stat.c,
+       lib/gl/tests/test-sys_wait.h, lib/gl/tests/test-time.c,
+       lib/gl/tests/test-unistd.c, lib/gl/tests/test-vasnprintf.c,
+       lib/gl/tests/test-vasprintf.c, lib/gl/tests/test-verify.c,
+       lib/gl/tests/test-verify.sh, lib/gl/tests/test-vsnprintf.c,
+       lib/gl/tests/test-wchar.c, lib/gl/tests/zerosize-ptr.h,
+       lib/gl/time.in.h, lib/gl/time_r.c, lib/gl/unistd.in.h,
+       lib/gl/vasnprintf.c, lib/gl/vasnprintf.h, lib/gl/vasprintf.c,
+       lib/gl/verify.h, lib/gl/vsnprintf.c, lib/gl/w32sock.h,
+       lib/gl/wchar.in.h, lib/gl/xsize.h, lib/gnutls_int.h,
+       lib/m4/hooks.m4, lib/minitasn1/Makefile.am, lib/nettle/Makefile.am,
+       lib/opencdk/Makefile.am, lib/openpgp/Makefile.am, lib/po/LINGUAS,
+       lib/po/Makevars, lib/po/POTFILES.in, lib/po/cs.po.in,
+       lib/po/de.po.in, lib/po/fr.po.in, lib/po/it.po.in, lib/po/ms.po.in,
+       lib/po/nl.po.in, lib/po/pl.po.in, lib/po/sv.po.in, lib/po/vi.po.in,
+       lib/po/zh_CN.po.in, lib/x509/Makefile.am, libextra/Makefile.am,
+       libextra/configure.ac, libextra/gl/Makefile.am,
+       libextra/gl/gnulib.mk, libextra/gl/hmac-md5.c, libextra/gl/hmac.h,
+       libextra/gl/m4/00gnulib.m4, libextra/gl/m4/extensions.m4,
+       libextra/gl/m4/gnulib-cache.m4, libextra/gl/m4/gnulib-common.m4,
+       libextra/gl/m4/gnulib-comp.m4, libextra/gl/m4/gnulib-tool.m4,
+       libextra/gl/m4/hmac-md5.m4, libextra/gl/m4/ld-output-def.m4,
+       libextra/gl/m4/ld-version-script.m4, libextra/gl/m4/lib-ld.m4,
+       libextra/gl/m4/lib-link.m4, libextra/gl/m4/lib-prefix.m4,
+       libextra/gl/m4/md5.m4, libextra/gl/m4/memxor.m4, libextra/gl/md5.c,
+       libextra/gl/md5.h, libextra/gl/memxor.c, libextra/gl/memxor.h,
+       libextra/gl/override/lib/md5.c.diff, libextra/m4/hooks.m4,
+       m4/hooks.m4, po/LINGUAS, po/Makevars, po/POTFILES.in, po/cs.po.in,
+       po/de.po.in, po/fr.po.in, po/it.po.in, po/ms.po.in, po/nl.po.in,
+       po/pl.po.in, po/sv.po.in, po/vi.po.in, po/zh_CN.po.in,
+       src/Makefile.am, tests/suite/Makefile.in: Use a single configure.ac.
+       This speed ups compilation and reduces duplication of code (multiple
+       gl/ libraries etc.).  This saves about 2mb in distributed size
+       (compressed).
 
-2001-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_mem.c, lib/gnutls_mem.h: added internal memory handlers
+       * src/certtool-cfg.c: Avoid using readline.
 
-2001-08-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/Makefile.am, lib/auth_rsa.c, lib/cert_b64.c,
-       lib/crypt_bcrypt.c, lib/crypt_srpsha1.c, lib/gnutls_algorithms.c,
-       lib/gnutls_datum.h, lib/gnutls_global.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_pk.c,
-       src/serv.c: added internal memory handlers
+       * lib/gnutls_buffers.c: initialized ret in _gnutls_writev_emu().
 
-2001-08-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/gnutls.tex: [no log message]
+       * lib/includes/gnutls/x509.h: doc fix
 
-2001-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c: [no log message]
+       * lib/system.c: removed unneeded variable.
 
-2001-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.c, src/cli.c: subjectAltName related fixes
+       * lib/auth_cert.c: Corrected check for an unknown sign algorithm.
+       Patch by LRN.
 
-2001-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_x509.h, lib/cert_verify.c,
-       lib/cert_verify.h, lib/gnutls.h.in, lib/gnutls_auth.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/cli.c: added some kind of support for X509 Extensions
+       * lib/openpgp/output.c: Do not use %e in strftime. Use %d instead
+       which is identically available in windows as well.  Based on patch
+       by LRN.
 
-2001-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/cover.tex, doc/tex/ex3.tex, doc/tex/gnutls.tex,
-       doc/tex/macros.tex: [no log message]
+       * lib/x509/output.c, tests/certuniqueid.c: Fixed mismatch in size_t
+       size. Patch by LRN.
 
-2001-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/cover.tex, doc/tex/fdl.tex,
-       doc/tex/gnutls.tex, doc/tex/macros.tex: documentation updates
+       * lib/system.c, lib/system_override.c: Correctly set errno in win32
+       using gnutls_transport_set_global_errno(). Based on patch by LRN.
 
-2001-08-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/ex1.tex, doc/tex/ex2.tex, doc/tex/ex3.tex,
-       doc/tex/gnutls.tex, doc/tex/serv1.tex, doc/tex/srp1.tex,
-       lib/gnutls_auth.c, lib/gnutls_record.c: documentation fixes
+       * tests/eagain-common.h, tests/mini-eagain-dtls.c,
+       tests/mini-eagain.c, tests/mini.c: Avoid using
+       gnutls_transport_set_global_errno() and use
+       gnutls_transport_set_errno() instead.
 
-2001-07-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc, doc/tex/Makefile.am, doc/tex/gnutls.tex,
-       lib/auth_anon.c, lib/auth_anon.h, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/ext_srp.c, lib/gnutls_anon_cred.c,
-       lib/gnutls_srp.c: fixed api documentation (for srp and anon cred
-       allocation)
+       * lib/system_override.c: win32 fixes for set_global_errno().
+       Suggested by LRN.
 
-2001-07-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/tex/Makefile.am, doc/tex/serv1.tex,
-       lib/gnutls_global.c, lib/gnutls_int.h: [no log message]
+       * src/benchmark.c: Win32 changes for benchmark. Patch by LRN.
 
-2001-07-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: added profiler option
+       * tests/anonself.c, tests/dhepskself.c, tests/openpgpself.c,
+       tests/pskself.c, tests/resume.c, tests/rng-fork.c, tests/x509dn.c,
+       tests/x509self.c: win32 fixes. Patch by LRN.
 
-2001-07-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp_sb64.c, lib/cert_b64.c, lib/debug.c,
-       lib/gnutls.h.in, lib/gnutls_algorithms.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_constate.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_record.c,
-       lib/gnutls_sig_check.c, lib/gnutls_v2_compat.c: added log function
-       (no longer use fprintf).
+       * lib/gnutls_buffers.c: minor modification in write_emu().
 
-2001-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c, lib/gnutls_record.c: fixes in EOF handling
-       in handshake.
+       * lib/opencdk/literal.c, lib/opencdk/main.h, lib/opencdk/misc.c: 
+       simplified cdk_trim_string() to make it safer to use.
 
-2001-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: detect EOF
+       * lib/x509/privkey_pkcs8.c: correctly reset params.
 
-2001-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc, doc/tex/.cvsignore, doc/tex/Makefile.am: [no log
-       message]
+       * lib/x509/crl.c, lib/x509/x509.c: use correct pointer size.
 
-2001-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc, doc/tex/.cvsignore, doc/tex/gnutls.tex: [no log
-       message]
+       * lib/gnutls_algorithms.c: correctly compare sign algorithm_st.
 
-2001-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/opencdk/Makefile.am, lib/opencdk/context.h,
+       lib/opencdk/main.c, lib/opencdk/main.h, lib/opencdk/opencdk.h,
+       lib/opencdk/verify.c: removed unused code
 
-2001-07-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am, doc/tex/gnutls.tex, doc/tex/serv1.tex,
-       doc/tex/srp1.tex: documentation updates
+       * lib/opencdk/armor.c: null terminate the armored string
 
-2001-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/gnutls.tex: [no log message]
+       * src/cli.c: properly null terminate string.
 
-2001-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/scripts/gdoc, doc/tex/Makefile.am: fixes in tex production
-       (gdoc)
+       * src/common.c, src/pkcs11.c: check PIN size.
 
-2001-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am: [no log message]
+       * src/srptool.c: check salt size.
 
-2001-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/tex/Makefile.am: [no log message]
+       * lib/opencdk/read-packet.c: more clear bounds checking
 
-2001-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/API-template.html, doc/Makefile.am,
-       doc/scripts/gdoc, doc/tex/Makefile.am, doc/tex/ex1.tex,
-       doc/tex/ex2.tex, doc/tex/ex3.tex, doc/tex/gnutls.tex,
-       lib/gnutls_record.c: Added documentation in TEX
+       * lib/x509/privkey.c: initialize e and d.
 
-2001-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API-template.html: [no log message]
+       * lib/pkcs11_write.c: deinitialize pks variable only when needed.
 
-2001-07-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API-template.html, doc/Makefile.am, doc/scripts/gdoc,
-       lib/gnutls.h.in, lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_global.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_sig_check.c: added some
-       documentation. Bug fixes in CHANGECIPHER_SPEC packet.
+       * lib/openpgp/pgpverify.c: Initialize verify.
 
-2001-07-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/gnutls.h.in, lib/gnutls_buffers.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_global.c, lib/gnutls_record.c,
-       src/cli.c, src/serv.c: changed gnutls_read() semantics
+       * src/cli.c: initialize session_id_size.
 
-2001-07-26  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: Tools for Certificate
+       * lib/opencdk/misc.c, lib/opencdk/opencdk.h: removed unneeded
+       function.
 
-2001-07-26  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-04-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_der.c: get time bug fixed
+       * lib/pakchois/pakchois.c: correctly traverse slots
 
-2001-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/srp/.cvsignore, src/x509/.cvsignore: [no log message]
+       * guile/src/core.c: avoid using a freed pointer.
 
-2001-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in: moving to 0.1.9
+       * lib/pkcs11.c: Initialize tinfo using the initially available
+       information.
 
-2001-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_verify.c: fixed/updated compare_dn() function.
+       * lib/gnutls_dtls.c: corrected debugging info.
 
-2001-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls_cert.c, src/serv.c: [no log message]
+       * tests/eagain-common.h, tests/mini-eagain-dtls.c,
+       tests/mini-eagain.c, tests/mini.c: The mini-* programs were
+       combined.
 
-2001-07-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls_sig_check.c: updated sig_check()
+       * lib/gnutls_record.c: Do not cleanup bufel after it has been
+       inserted into buffer.
 
-2001-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * lib/gnutls_mbuffers.c: Combined dequeue with remove_front() and
+       pop_first().
 
-2001-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/auth_rsa.c, lib/cert_verify.c, lib/cert_verify.h,
-       lib/gnutls.h.in, lib/gnutls_auth.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_int.h, lib/gnutls_sig_check.c,
-       src/cli.c: gnutls now checks the certificate's CN to see if it
-       matches the peer's name.
+       * doc/examples/Makefile.am: Compile ex-cert-select-pkcs11 as a
+       separate program.
 
-2001-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls_pk.c, lib/gnutls_record.c: bugfixes
+       * .gitignore, lib/gnutls_buffers.c, lib/gnutls_dtls.c,
+       lib/gnutls_int.h, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in, lib/system.h, tests/Makefile.am,
+       tests/eagain-common.h, tests/mini-eagain-dtls.c,
+       tests/mini-eagain.c, tests/utils.c: Added support for non-blocking
+       DTLS.  Added mini-eagain-dtls to test its operation.  Improved
+       mini-eagain.
 
-2001-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: support for multiple protocol versions.
+       * lib/nettle/init.c: gcrypt.h is not really needed. Reported by
+       David Reiser.
 
-2001-07-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/cert_b64.c, lib/gnutls.h.in, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_constate.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c,
-       lib/gnutls_priority.h, lib/gnutls_record.c, lib/gnutls_v2_compat.c,
-       src/serv.c: corrected bug in b64 decoding. Added support for
-       multiple TLS protocol versions.
+       * src/srptool.c: corrected header inclusion.
 
-2001-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am: ignores some errors
+       * src/Makefile.am, src/crypt-gaa.c, src/crypt-gaa.h, src/crypt.c,
+       src/crypt.gaa, src/srptool-gaa.c, src/srptool-gaa.h, src/srptool.c,
+       src/srptool.gaa: crypt.* renamed to srptool.*.
 
-2001-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README, lib/auth_rsa.c, lib/cert_verify.c, lib/gnutls_cert.c,
-       lib/gnutls_int.h, lib/gnutls_pk.c, lib/gnutls_pk.h,
-       lib/gnutls_sig_check.c: [no log message]
+       * lib/gnutls_srp.c: Corrected bug in gnutls_srp_verifier() that
+       prevented the allocation of a verifier. Reported by Andrew Wiseman.
 
-2001-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/cert_ASN.y, lib/cert_asn1.c, lib/cert_der.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_compress_int.c,
-       lib/gnutls_handshake.c, lib/gnutls_privkey.c, lib/gnutls_record.c,
-       src/serv.c: corrected memory leaks
+       * src/crypt-gaa.c, src/crypt-gaa.h, src/crypt.c, src/crypt.gaa: 
+       Added debug option to srptool.
 
-2001-07-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/Makefile.am, lib/cert_asn1.h, lib/cert_verify.c,
-       lib/ext_srp.c, lib/gnutls.h.in, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_int.h, lib/gnutls_privkey.c,
-       lib/gnutls_record.c, lib/gnutls_sig_check.c, src/.cvsignore,
-       src/asn1c.c, src/ca.pem, src/cli.c, src/pkcs1.asn, src/serv.c: 
-       several fixes cleanups etc.
+       * doc/cha-cert-auth.texi: Documented p11-kit.
 
-2001-07-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-04-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_global.c: [no log message]
+       * doc/cha-library.texi: corrected typo
 
-2001-07-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/Makefile.am, lib/cert_asn1.c, lib/cert_asn1.h,
-       lib/gnutls.h.in, lib/gnutls_global.c, lib/pkcs1.asn,
-       lib/pkcs1_asn1_tab.c, lib/pkix.asn, src/Makefile.am,
-       src/PkixTabExample.c, src/asn1c.c, src/cli.c, src/pkix.asn,
-       src/serv.c, src/srp/Makefile.am, src/x509/Makefile.am: updated file
-       structure
+       * tests/scripts/common.sh: Added copyright.
 
-2001-07-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cert.pem, src/key.pem, src/serv.c,
-       src/srp/tpasswd, src/srp/tpasswd.conf, src/tpasswd,
-       src/tpasswd.conf, src/x509/ca.pem, src/x509/cert.pem,
-       src/x509/key.pem: updated directory structure
+       * configure.ac, tests/Makefile.am, tests/dsa/testdsa,
+       tests/openpgp-certs/testcerts, tests/scripts/Makefile.am,
+       tests/scripts/common.sh: Reorganized scripts that use test servers,
+       based on patch by Cedric Arbogast.
 
-2001-07-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/protocol/draft-ietf-tls-srp-00.txt,
-       doc/protocol/draft-ietf-tls-srp-01.txt, doc/protocol/rfc2313.txt,
-       lib/Makefile.am, lib/auth_rsa.c, lib/cert_verify.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_pk.c, lib/gnutls_pk.h, lib/gnutls_sig.h,
-       lib/gnutls_sig_check.c, src/ca.pem, src/cert.pem, src/key.pem,
-       src/pkcs1.asn: added some kind of certificate checking
+       * src/certtool-gaa.c, src/certtool.gaa: Create certificate request
+       with stricter permissions. Reported by Luca Capello.
 
-2001-07-19  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/ASN1.readme.txt, lib/cert_ASN.y, lib/cert_asn1.c,
-       lib/cert_asn1.h, src/CertificateExample.c, src/CrlExample.c: ""
+       * tests/openpgp-certs/Makefile.am: enabled testcerts.
 
-2001-07-19  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/pkcs1_asn1_tab.c, lib/pkix_asn1_tab.c: C structure management
+       * tests/openpgp-certs/testcerts: made more silent.
 
-2001-07-19  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/PkixTabExample.c: C structure management
+       * tests/dsa/testdsa, tests/openpgp-certs/testcerts: Made scripts
+       bourne shell compliant and not bash.
 
-2001-07-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_hash_int.c: added mhash 0.8.10 support
+       * THANKS: e-mail addresses are not directly recognizable.
 
-2001-07-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_x509.h, lib/gnutls.h.in,
-       lib/gnutls_auth.c, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_constate.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       src/cli.c: more certificate fields parsed. Cleanups
+       * lib/opencdk/stream.c: Corrected access to freed memory location.
+       Reported by Vitaly Kruglikov.
 
-2001-07-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/cert_verify.c, lib/cert_verify.h, lib/gnutls.h.in,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_auth.c, lib/gnutls_cert.c, lib/gnutls_cert.h,
-       lib/gnutls_constate.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h, lib/gnutls_int.h,
-       src/cli.c, src/serv.c: several cleanups. Added check for
-       certificate's expiration time.
+       * THANKS: added Mark and Vitaly to THANKS.
 
-2001-07-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_rsa.c, lib/cert_verify.c,
-       lib/cert_verify.h, lib/gnutls.h.in, lib/gnutls_cert.c,
-       lib/gnutls_int.h, src/cli.c: updated cert_verify
+       * lib/system.c: Corrected windows system_errno() function. Reported
+       and patch by Mark Brand.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/CertificateExample.c: corrected copyright notice
+       * lib/includes/gnutls/compat.h: C++ compatibility fix for compat.h.
+       Suggested by Mark Brand.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, lib/gnutls_anon_cred.c, lib/gnutls_srp.c: minor
-       cleanups
+       * lib/opencdk/verify.c: Corrected uninitialized var deinitiation.
+       Reported by Vitaly Kruglikov.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_x509.h, lib/gnutls.h.in,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, src/cli.c: updated API
+       * lib/gnutls_sig.c: eliminate compiler warning. Reported by Andreas
+       Metzler.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls_anon_cred.c: added missing file
+       * lib/includes/gnutls/openpgp.h, lib/openpgp/gnutls_openpgp.c,
+       lib/openpgp/pgp.c, lib/openpgp/privkey.c: Fix size of
+       gnutls_openpgp_keyid_t by using the GNUTLS_OPENPGP_KEYID_SIZE
+       definition.  Reported by Andreas Metzler.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_x509.h, lib/cert_verify.c,
-       lib/gnutls.h.in, lib/gnutls_cert.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_priority.c, lib/gnutls_srp.c,
-       src/cli.c, src/serv.c: several bug fixes in ASN handling.
-       Fixes/additions in X509 structures handling.
+       * NEWS: included news of 2.12.0
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/Makefile.am, lib/auth_anon.c, lib/auth_anon.h,
-       lib/auth_rsa.c, lib/auth_srp.c, lib/auth_srp.h, lib/auth_x509.h,
-       lib/ext_srp.c, lib/gnutls.h.in, lib/gnutls_auth.c,
-       lib/gnutls_cert.c, lib/gnutls_global.c, lib/gnutls_privkey.c,
-       lib/gnutls_srp.c, src/cli.c, src/serv.c: several cleanups
+       * guile/tests/Makefile.am: added missing files.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * lib/includes/gnutls/abstract.h, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/pkcs11.h, lib/includes/gnutls/x509.h,
+       lib/pkcs11.c, lib/x509/crl.c: documentation fixes.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_ASN.y: corrected copyright statement
+       * tests/dsa/testdsa: Added DSA tests for client certificates as
+       well.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/README.autoconf: [no log message]
+       * lib/ext_signature.c, lib/ext_signature.h, lib/gnutls_handshake.c,
+       lib/gnutls_sig.c, lib/includes/gnutls/abstract.h, lib/x509/verify.c: 
+       Simplified signature algorithm selection.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_x509.h, lib/cert_verify.c,
-       lib/gnutls.h.in, lib/gnutls_cert.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h: improved certificate handling
+       * src/cli.c: The processed messages go to stdout.
 
-2001-07-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: updated
+       * lib/gnutls_privkey.c: updated documentation
 
-2001-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * buildconf: added autoconf2.50 (for debian)
+       * lib/gnutls_algorithms.c, lib/gnutls_int.h,
+       lib/includes/gnutls/gnutls.h.in: Increased GNUTLS_MAX_ALGORITHM_NUM
+       to 32. The gnutls_*_list() functions generate the list of algorithm
+       on the spot and no longer require a static duplicate list of
+       algorithms. This comes at a cost of not being thread safe (which is
+       not significant since those functions are only used for special
+       purposes).
 
-2001-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acinclude.m4: added required .m4s
+       * lib/gnutls_privkey.c: corrected parameter.
 
-2001-07-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .cvsusers: corrected fabio's entry
+       * lib/gnutls_pubkey.c, lib/includes/gnutls/pkcs11.h, lib/pkcs11.c,
+       lib/pkcs11_privkey.c, lib/pkcs11_secret.c, lib/x509/privkey.c: 
+       Documentation fixes and cleanups.
 
-2001-07-12  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_ASN.y, lib/cert_asn1.h, lib/cert_der.c, lib/cert_der.h,
-       src/CertificateExample.c, src/CrlExample.c, src/pkix.asn: [no log
-       message]
+       * src/cli.c: define variable locally
 
-2001-07-12  Fabio Fiorina <fiorinaf@gnutls.org>
+2011-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/ASN1.readme.txt, lib/cert_asn1.c: [no log message]
+       * src/cli.c, src/serv.c: use IP_DONTFRAG if it is defined.
 
-2001-07-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_record.c: bug fixes
+       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
+       lib/gnutls_dtls.h, lib/gnutls_handshake.c, lib/gnutls_handshake.h,
+       lib/gnutls_int.h, lib/gnutls_record.c,
+       lib/includes/gnutls/gnutls.h.in, lib/system.c, lib/system.h,
+       src/cli.c, src/common.h, src/serv.c, src/udp-serv.c: Avoided waiting
+       for peer's retransmission to ensure receipt of finished messages,
+       and used a 'timer'-like to retransmit packets.
 
-2001-07-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/auth_srp.c, lib/crypt_bcrypt.c, lib/crypt_bcrypt.h,
-       lib/crypt_srpsha1.c, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_srp.c, lib/gnutls_srp.h: 
-       optimizations in hash functions (removed a lot of mallocs)
+       * lib/gnutls_dtls.c, lib/includes/gnutls/dtls.h, lib/libgnutls.map: 
+       added gnutls_dtls_get_data_mtu().
 
-2001-07-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_global.h, src/cert.pem, src/key.pem: [no log message]
+       * tests/dsa/testdsa: make gnutls-cli more quiet.
 
-2001-07-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/ASN1.readme.txt, lib/Makefile.am, lib/auth_rsa.c,
-       lib/cert_ASN.y, lib/cert_asn1.c, lib/cert_asn1.h, lib/cert_der.c,
-       lib/cert_der.h, lib/gnutls_cert.c, lib/gnutls_global.c,
-       lib/gnutls_int.h, lib/gnutls_privkey.c, src/CertificateExample.c,
-       src/Makefile.am, src/pkix.asn, src/serv.c: Updated ASN.1 Parser
-       (Fabio - commited by me).
+       * configure.ac, tests/Makefile.am, tests/dsa/Makefile.am,
+       tests/dsa/cert.dsa.1024.pem, tests/dsa/cert.dsa.2048.pem,
+       tests/dsa/cert.dsa.3072.pem, tests/dsa/dsa.1024.pem,
+       tests/dsa/dsa.2048.pem, tests/dsa/dsa.3072.pem, tests/dsa/testdsa,
+       tests/suite/Makefile.in: Added test to verify connections with DSA
+       keys of various sizes.
 
-2001-07-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/gnutls_algorithms.c, lib/gnutls_cert.c,
-       lib/gnutls_privkey.c: cleanups
+       * src/certtool.c: warn on generation of DSA keys of over 1024 bits.
 
-2001-06-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_srp_passwd.c, lib/ext_srp.c,
-       lib/gnutls.h.in, lib/gnutls_algorithms.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_db.c, lib/gnutls_errors.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, src/.cvsignore, src/cli.c,
-       src/serv.c: Cleanups. Mostly while sending client certificate (and
-       client certificate verify)
+       * lib/gnutls_alert.c, lib/gnutls_errors.c, lib/gnutls_sig.c,
+       lib/includes/gnutls/gnutls.h.in: Return a special error code if DSA
+       keys with over 1024 are being used with TLS 1.x, x<2.
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/README.der: removed
+       * lib/nettle/pk.c: truncate hash size when asking to sign or verify
+       DSA with a longer hash.
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * lib/gnutls_buffers.c, lib/system.c: Check for rejected connections
+       in system_recv_timeout().
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/ext_dnsname.c, lib/gnutls.h.in, lib/gnutls_constate.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       src/cli.c, src/serv.c: added support for DNSNAME extension
-       (draft-ietf-tls-extensions)
+       * lib/system_override.c: quickly discuss callback format.
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-ecc-01.txt,
-       doc/protocol/draft-ietf-tn3270e-telnet-tls-05.txt: [no log message]
+       * lib/gnutls_dtls.c: When sending multiple cookies due to
+       verification errors do not increase the handshake sequence number
+       only the record sequence.
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-pkix-ac509prof-05.txt,
-       doc/protocol/draft-ietf-tls-camellia-00.txt,
-       doc/protocol/draft-ietf-tls-extensions-00.txt,
-       doc/protocol/draft-ietf-tls-https-04.txt,
-       doc/protocol/draft-ietf-tls-misty1-00.txt,
-       doc/protocol/draft-ietf-tls-openpgp-00.txt,
-       doc/protocol/draft-ietf-tls-openpgp-01.txt,
-       doc/protocol/draft-ietf-tls-seedhas-00.txt,
-       doc/protocol/draft-ietf-tls-wireless-00.txt,
-       doc/protocol/rfc2817.txt: added more up to date documentation
+       * AUTHORS: updated Jonathan
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/x509guide.txt: added gutman's x509guide
+       * tests/openpgp-auth.c: Added check for RSA ciphersuite in openpgp
+       keys.
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO: [no log message]
+       * lib/openpgp/privkey.c: read correct algorithm when decrypting data
+       and use correct number of private parameters.
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c, lib/gnutls_priority.c: some portability
-       fixes
+       * libextra/gnutls_extra.c: added missing ret.
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, lib/Makefile.am, lib/auth_anon.c,
-       lib/auth_dhe_dss.c, lib/auth_rsa.c, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/auth_srp_sb64.c, lib/cert_ASN.y,
-       lib/cert_asn1.c, lib/cert_b64.c, lib/cert_der.c, lib/crypt.c,
-       lib/crypt_bcrypt.c, lib/crypt_srpsha1.c, lib/debug.c,
-       lib/ext_dnsname.c, lib/ext_srp.c, lib/gnutls.h.in,
-       lib/gnutls_algorithms.c, lib/gnutls_auth.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
-       lib/gnutls_cipher_int.c, lib/gnutls_compress.c,
-       lib/gnutls_compress_int.c, lib/gnutls_constate.c,
-       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_db.c,
-       lib/gnutls_dh.c, lib/gnutls_errors.c, lib/gnutls_extensions.c,
-       lib/gnutls_gcry.c, lib/gnutls_global.c, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_num.c, lib/gnutls_pk.c, lib/gnutls_priority.c,
-       lib/gnutls_privkey.c, lib/gnutls_privkey.h, lib/gnutls_random.c,
-       lib/gnutls_record.c, lib/gnutls_session.c, lib/gnutls_srp.c,
-       lib/gnutls_v2_compat.c, src/cli.c, src/serv.c: fixes in
-       ChangeCipherSpec handling (this also fixes rehandshake).  Several
-       cleanups.
+       * lib/auth_cert.c: Set type when sending empty openpgp key.
 
-2001-06-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/debug.c, lib/gnutls_buffers.c,
-       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_compress_int.c, lib/gnutls_datum.c, lib/gnutls_datum.h,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_record.c, lib/gnutls_v2_compat.c: 
-       several cleanups
+       * lib/nettle/rnd.c, tests/Makefile.am, tests/rng-fork.c: Corrected
+       nettle's RNG behavior on fork and added a test case.
 
-2001-06-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls_global.c: added checks for signals
+       * guile/tests/openpgp-auth.scm: enabled RSA and removed debugging.
 
-2001-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c, src/serv.c: corrected bug in stream
-       decryption..
+       * lib/gnutls_privkey.c, lib/gnutls_pubkey.c,
+       lib/includes/gnutls/abstract.h, lib/openpgp/gnutls_openpgp.c,
+       tests/openpgp-auth.c, tests/openpgp-auth2.c: gnutls_pubkey_t and
+       gnutls_privkey_t can import either an openpgp subkey or a master
+       key.
 
-2001-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * guile/tests/openpgp-auth.scm, guile/tests/openpgp-elg-pub.asc,
+       guile/tests/openpgp-elg-sec.asc, guile/tests/openpgp-keys.scm,
+       guile/tests/openpgp-pub.asc, guile/tests/openpgp-sec.asc: split the
+       pgp keys to elgamal and dsa.
 
-2001-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_rsa.c, lib/auth_x509.h, lib/gnutls.h.in,
-       lib/gnutls_cert.c, lib/gnutls_cert.h: added internal representation
-       of pkcs1 rsa private keys.
+       * lib/gnutls_errors.c, lib/includes/gnutls/gnutls.h.in,
+       lib/openpgp/pgp.c, lib/openpgp/privkey.c: introduced
+       GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR
 
-2001-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, src/Makefile.am, src/serv.c: [no log message]
+       * lib/gnutls_algorithms.c: On unknown public key algorithms return
+       Unknown name.
 
-2001-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * lib/gnutls_privkey.c: Read the public key algorithm from the
+       selected subkey and not the master key when importing to a
+       gnutls_privkey.
 
-2001-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, README, configure.in, doc/Makefile.am, doc/TODO,
-       lib/Makefile.am, lib/gnutls.h.in, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cert.c, lib/gnutls_global.c,
-       lib/gnutls_record.c, src/cli.c, src/pk.h, src/serv.c: added global
-       state.
+       * lib/openpgp/gnutls_openpgp.c, tests/openpgpself.c: Documentation
+       fixed. Added fresh keys to test.
 
-2001-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in, lib/gnutls_algorithms.c, lib/gnutls_cert.c,
-       lib/gnutls_cert.h, lib/gnutls_int.h, src/cli.c, src/serv.c: minor
-       cleanups
+       * tests/openpgpself.c: Test openpgp authentication with DSA-2048 bit
+       keys as well.
 
-2001-06-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in: gnutls_cert is not defined here
+       * lib/openpgp/pgp.c: gnutls_openpgp_crt_get_auth_subkey() will no
+       longer return an unsupported subkey.
 
-2001-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cert.h, src/pk.h: added missing files
+       * lib/x509/verify.c: Corrected verification of DSA-2048 keys.
+       Reported by teddy@fukt.bsnet.se.
 
-2001-06-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, doc/TODO, lib/Makefile.am, lib/auth_rsa.c,
-       lib/auth_x509.h, lib/gnutls.h.in, lib/gnutls_algorithms.c,
-       lib/gnutls_auth.c, lib/gnutls_cert.c, lib/gnutls_datum.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_priority.c, lib/gnutls_v2_compat.c, src/serv.c: Updated
-       Ciphersuite selection algorithm.  Added internal representation of
-       x509 structures.
+       * doc/cha-intro-tls.texi: Added
+       gnutls_transport_set_vec_push_function().
 
-2001-06-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, lib/auth_rsa.c, lib/cert_asn1.c, lib/cert_der.c,
-       lib/gnutls_datum.c, lib/gnutls_datum.h, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_pk.c, src/pkix.asn: client side RSA works (no certificate
-       checking)
+       * lib/gnutls_dtls.c, lib/includes/gnutls/dtls.h, lib/libgnutls.map,
+       src/udp-serv.c: updated cookie negotiation to use only a prestate
+       structure and avoids setting data to cookie.
 
-2001-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/auth_anon.c, lib/auth_rsa.c, lib/auth_srp.c,
-       lib/auth_x509.h, lib/gnutls.h.in, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_auth.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_kx.h, lib/gnutls_v2_compat.c, src/cli.c, src/serv.c: 
-       removed unneeded code and added some kind of client support for RSA
-       ciphersuites
+       * lib/gnutls_handshake.c: Use DTLS 1.0 instead of SSL 3.0 headers on
+       client hello in DTLS.
 
-2001-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * lib/gnutls_dtls.c, lib/gnutls_errors.c,
+       lib/includes/gnutls/dtls.h, lib/libgnutls.map, src/udp-serv.c: Added
+       photuris-like resource protection on the server. Added
+       gnutls_dtls_cookie_send(), gnutls_dtls_cookie_verify() and
+       gnutls_dtls_cookie_set() to avoid initializing a session before
+       cookie is verified.
 
-2001-06-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, lib/auth_rsa.c, lib/debug.c, lib/debug.h,
-       lib/gnutls.h.in, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_kx.h,
-       lib/gnutls_record.c, lib/gnutls_session.c, lib/gnutls_v2_compat.c,
-       src/serv.c: fixes in session resuming..
+       * lib/crypto-api.c, lib/ext_session_ticket.c,
+       lib/includes/gnutls/gnutls.h.in: added gnutls_key_generate() to API.
 
-2001-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_record.c,
-       lib/gnutls_v2_compat.c: fixes in session resuming
+       * lib/ext_session_ticket.c: Avoid the usage of structures where the
+       attribute packed is assumed.
 
-2001-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_gcry.c, lib/gnutls_gcry.h: added missing files
+       * lib/gnutls_buffers.c, lib/gnutls_buffers.h,
+       lib/gnutls_handshake.c: renamed gnutls_handshake_buffer_* functions
+       to gnutls_handshake_hash_buffer_* to separate from new API functions
+       and corrected its usage.
 
-2001-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/debug.c, lib/gnutls.h.in,
-       lib/gnutls_algorithms.c, lib/gnutls_buffers.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_plaintext.c, lib/gnutls_plaintext.h,
-       lib/gnutls_record.c, lib/gnutls_v2_compat.c, src/serv.c: several
-       cleanups in the low level record layer (the old code was a mess).
-       several other fixes.
+       * lib/gnutls_algorithms.c: Added DSA-SHA256, DSA-SHA224 and
+       RSA-SHA224 to the supported signature algorithms list. Suggested by
+       teddy@fukt.bsnet.se
 
-2001-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_x509.h, lib/ext_dnsname.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_v2_compat.c: 
-       cleanups. No longer checks for alerts between messages.
+       * lib/gnutls_constate.c, lib/gnutls_constate.h,
+       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_v2_compat.c: 
+       session->internals.compression_method was removed. It was no longer
+       required since the new compression algorithm was stored to next
+       epoch as well.
 
-2001-06-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acconfig.h, doc/TODO, doc/protocol/draft-ietf-tls-https-04.txt,
-       lib/Makefile.am, lib/defines.h, lib/gnutls.h.in,
-       lib/gnutls_algorithms.c, lib/gnutls_buffers.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_int.h, lib/gnutls_record.c,
-       src/cli.c, src/serv.c: cleanups and addition of a test http server
-       (serv.c)
+       * lib/gnutls_buffers.c, lib/gnutls_cipher.c, lib/gnutls_constate.c,
+       lib/gnutls_handshake.c, lib/gnutls_record.c, lib/gnutls_state.h: 
+       _gnutls_is_dtls() is no more. IS_DTLS() is being used instead.
 
-2001-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/TODO, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_record.c, lib/gnutls_v2_compat.c, src/serv.c: fixes in V2
-       client hello.
+       * lib/ext_session_ticket.c: do not print debugging output on
+       non-fatal errors.
 
-2001-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/auth_rsa.c, lib/gnutls_algorithms.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_pk.c,
-       lib/gnutls_v2_compat.c, src/pkcs1.asn, src/serv.c: several fixes for
-       RSA. gnutls server can now work with rsa certificates.
+       * lib/ext_session_ticket.c, lib/gnutls_cipher.c,
+       lib/gnutls_cipher_int.c, lib/gnutls_constate.c,
+       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_record.c: 
+       Properly reset the SSL 3.0 MAC algorithm.
 
-2001-06-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_rsa.c, lib/auth_srp.c,
-       lib/auth_srp_passwd.c, lib/auth_x509.h, lib/cert_asn1.h,
-       lib/cert_b64.c, lib/cert_b64.h, lib/crypt_bcrypt.c,
-       lib/crypt_srpsha1.c, lib/gnutls.c, lib/gnutls.h.in,
-       lib/gnutls_algorithms.c, lib/gnutls_cert.c, lib/gnutls_cipher.c,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_num.h, lib/gnutls_pk.c,
-       lib/gnutls_pk.h, lib/gnutls_random.c, lib/gnutls_random.h,
-       lib/gnutls_record.c, lib/gnutls_srp.c, lib/gnutls_v2_compat.c: 
-       several additions for RSA (mostly unstable)
+       * lib/gnutls_buffers.c, lib/gnutls_errors.h,
+       lib/gnutls_handshake.c, lib/x509/verify-high.c: cleanups. Introduced
+       gnutls_assert_val_fatal() that only prints debugging messages on
+       non-fatal errors.
 
-2001-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_pk.c, lib/gnutls_pk.h: some support for public key
-       encryption (rsa)
+       * lib/gnutls_alert.c: Added string for GNUTLS_A_SSL3_NO_CERTIFICATE.
 
-2001-06-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_anon.c, lib/auth_dhe_dss.c,
-       lib/auth_rsa.c, lib/auth_srp.c, lib/auth_x509.h, lib/defines.h,
-       lib/ext_dnsname.c, lib/ext_dnsname.h, lib/gnutls.c,
-       lib/gnutls.h.in, lib/gnutls_auth_int.h, lib/gnutls_dh.c,
-       lib/gnutls_extensions.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, lib/gnutls_srp.c: more rsa fixes.
-       Added dnsname extension.
+       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h: 
+       gnutls_version_has_variable_padding is not really needed. A check
+       for SSL3.0 is more clear.
 
-2001-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_anon.c, lib/auth_rsa.c, lib/auth_srp.c, lib/auth_x509.h,
-       lib/gnutls.h.in, lib/gnutls_algorithms.c, lib/gnutls_auth.h,
-       lib/gnutls_datum.c, lib/gnutls_datum.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, src/serv.c: more rsa stuff -- and cleanups
+       * lib/debug.c, lib/gnutls_buffers.c, lib/gnutls_constate.c,
+       lib/gnutls_handshake.c, lib/gnutls_record.c, lib/gnutls_v2_compat.c: 
+       Corrected SSL2 client hello handling.
 
-2001-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/pkcs1.asn: removed <CR>
+       * lib/gnutls_record.c: do not set default record version (i.e. SSL
+       3.0) during a re-handshake.
 
-2001-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Certificate.txt, src/CertificateExample.c, src/pkcs1.asn,
-       src/pkix.asn: updated ASN.1 files.
+       * lib/gnutls_priority.c: default behavior is to send SSL3.0 client
+       hellos.
 
-2001-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Certificate.txt: [no log message]
+       * lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c: 
+       corrected ssl3 record version sending in client hello.
 
-2001-06-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, lib/Makefile.am, lib/auth_rsa.c,
-       lib/auth_x509.h, lib/cert_asn1.h, lib/gnutls.h.in,
-       lib/gnutls_datum.c, lib/gnutls_datum.h, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.c: several
-       additions in order to support KX_RSA and X509PKI.
+       * NEWS, doc/cha-intro-tls.texi, lib/gnutls_buffers.c,
+       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c,
+       lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in,
+       lib/libgnutls.map: gnutls_transport_set_lowat() is no more.
 
-2001-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_auth.c: updated get_auth_info()
+       * lib/gnutls_buffers.c, lib/gnutls_record.c: some cleanups
 
-2001-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, buildconf, src/cli.c, src/serv.c: changed the setting
-       of credentials
+       * lib/x509/common.h, lib/x509/verify-high.c, lib/x509/verify.c: 
+       gnutls_x509_trust_list_verify_crt shortens the provided certificate
+       list based on the existing trusted CAs.
 
-2001-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/.cvsignore, lib/auth_anon.c, lib/auth_anon.h, lib/auth_srp.c,
-       lib/auth_srp_passwd.c, lib/ext_srp.c, lib/gnutls.h.in,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_auth.c, lib/gnutls_auth_int.h, lib/gnutls_int.h: better
-       handling of set/get credentials.
+       * lib/gnutls_int.h, lib/gnutls_state.c, lib/gnutlsxx.cpp,
+       lib/includes/gnutls/compat.h, lib/includes/gnutls/dtls.h,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/gnutlsxx.h,
+       lib/libgnutls.map, libextra/includes/gnutls/openssl.h, src/cli.c,
+       src/serv.c: gnutls_init_dtls() was made redundant. The same for
+       gnutls_end_connection_t which was replaced by a flags integer..
 
-2001-06-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_auth_int.h, lib/gnutls_buffers.c,
-       lib/gnutls_int.h: added gnutls_datum structure.
+       * lib/auth_psk.c, lib/auth_psk.h, lib/ext_session_ticket.c,
+       lib/ext_srp.c, lib/gnutls_sig.c, lib/gnutls_x509.c,
+       lib/pkcs11_int.h, lib/system.c, lib/system.h, lib/x509/mpi.c,
+       lib/x509/verify.c, src/certtool-common.h, src/certtool.c,
+       src/common.c, src/pkcs11.c, src/udp-serv.c: Corrected types.
 
-2001-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * THANKS: [no log message]
+       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
+       src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa,
+       src/udp-serv.c, src/udp-serv.h: Added --mtu option.
 
-2001-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/.cvsignore: [no log message]
+       * lib/gnutls_buffers.c: properly re-generate headers of fragmented
+       packets.
 
-2001-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .cvsignore, .cvsusers, AUTHORS, Makefile.am, changelog-update.sh: 
-       added Fabio in AUTHORS, fixed the way ChangeLog is created.
+       * lib/gnutls_state.c: increased initial retransmission time to 1
+       sec.
 
-2001-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: added a warning for the addition of new
-       algorithms
+       * lib/gnutls_handshake.c: In DTLS do not hash messages that
+       shouldn't be hashed (i.e. hello verify request).
 
-2001-06-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/rfc2631.txt: added rfc on DH key exchange
+       * lib/gnutls_cipher.c: Corrected size check in block encrypted
+       records.
 
-2001-06-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * buildconf, lib/cert_der.asn1: [no log message]
+       * lib/gnutls_buffers.c, lib/gnutls_handshake.c: Corrected behavior
+       in normal TLS handshake.
 
-2001-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/ASN1.readme.txt: [no log message]
+       * libextra/Makefile.am: link libgnutls-extra against libgcrypt if
+       required. Based on patch by Andreas Metzler
+       <ametzler@downhill.at.eu.org>
 
-2001-06-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/Makefile.am, lib/cert_ASN.y, lib/cert_asn1.c,
-       lib/cert_asn1.h, lib/cert_der.c, lib/cert_der.h, lib/gnutls_der.c,
-       lib/gnutls_der.h, src/CertificateExample.c, src/Makefile.am: Added
-       Fabio's ASN1/DER parser.
+       * NEWS, lib/m4/hooks.m4, libextra/Makefile.am: increased the so
+       version of libgnutls-openssl.
 
-2001-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_db.c: more descriptive comments
+       * lib/ext_session_ticket.c, lib/gnutls_buffers.c,
+       lib/gnutls_buffers.h, lib/gnutls_cipher.c, lib/gnutls_dtls.c,
+       lib/gnutls_errors.c, lib/gnutls_handshake.c,
+       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
+       lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h, lib/gnutls_record.c,
+       lib/gnutls_state.c, lib/gnutls_str.c, lib/gnutls_v2_compat.c,
+       lib/includes/gnutls/gnutls.h.in: Added intermediate handshake layer
+       that will order handshake packets and drop duplicates.
 
-2001-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in: [no log message]
+       * lib/gnutls_record.c: handle non fatal errors when receiving record
+       headers.
 
-2001-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp_sb64.c, lib/crypt.c, lib/crypt_bcrypt.c,
-       lib/crypt_bcrypt.h, lib/crypt_srpsha1.c, lib/gnutls_srp.c,
-       src/crypt.c: bugfixes in sbase64 decoding/encoding.  Changes in the
-       included bcrypt algorithm.
+       * lib/gnutls_cipher.c: memcpy -> memmove.
 
-2001-06-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_srp_passwd.h, lib/auth_srp_sb64.c,
-       lib/cert_b64.h, lib/cert_sb64.c, lib/crypt_bcrypt.c,
-       lib/crypt_srpsha1.c: renamed cert_sb64.c to auth_srp_sb64.c (since
-       it is only used in SRP KX)
+       * lib/gnutls_buffers.c, lib/gnutls_int.h: removed GMAX
 
-2001-06-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acconfig.h, acinclude.m4, configure.in: [no log message]
+       * src/certtool.c: Allow providing no password for PKCS #12 structure
+       generation. Reported by Daniel Kahn Gillmor.
 
-2001-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h.in: updated
+       * src/certtool-cfg.c: consistently print all interactive questions
+       to stderr. Reported by Daniel Kahn Gillmor.
 
-2001-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/defines.h, lib/gnutls.c, lib/gnutls_cipher.c,
-       lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_num.c,
-       lib/gnutls_num.h: better handling of 64bit integers
+       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
+       lib/gnutls_int.h, lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h,
+       lib/gnutls_record.c, lib/gnutls_state.c: combined all the record
+       buffers in one.
 
-2001-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/crypt_bcrypt.c, lib/crypt_srpsha1.c: better checking of return
-       value of rindex
+       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
+       lib/gnutls_int.h, lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h,
+       lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_state.c: 
+       internal buffering for record and handshake data changed from
+       gnutls_buffers to gnutls_mbuffers.
 
-2001-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/serv.c: updated to new api
+       * lib/debug.c, lib/gnutls_buffers.c, lib/gnutls_int.h,
+       lib/gnutls_record.c, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in: Removed last pieces of inner
+       application.
 
-2001-06-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls.h.in, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_priority.c, lib/gnutls_priority.h,
-       src/Makefile.am: updated documentation and functions
+       * lib/gnutls_record.c: some cleanups
 
-2001-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-01  Ludovic Courtès <ludo@gnu.org>
 
-       * NEWS, configure.in, lib/crypt.c, lib/defines.h, lib/ext_srp.c,
-       lib/gnutls.c, lib/gnutls.h.in, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_num.c, lib/gnutls_num.h,
-       lib/gnutls_srp.c, src/prime.c, src/tpasswd: gnutls now handles
-       uint64 even in systems without a native one.  several bug fixes.
+       * guile/tests/anonymous-auth.scm, guile/tests/openpgp-auth.scm,
+       guile/tests/x509-auth.scm: guile: Change tests to use priority
+       strings.
 
-2001-06-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-03-01  Ludovic Courtès <ludo@gnu.org>
 
-       * lib/crypt_bcrypt.c, lib/crypt_srpsha1.c: corrected bug in verify
+       * src/Makefile.am: Add `udp-serv.h' to the distribution.
 
-2001-05-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-28  Andreas Metzler <ametzler@downhill.at.eu.org>
 
-       * buildconf, configure.in, lib/gnutls.h.in: updated configuration
-       scripts to comply to autoconf 2.50
+       * lib/libgnutls.map: fix duplicate symbols in version script These three symbols are listed both in the GNUTLS_2_8 and the
+       GNUTLS_2_10 section. binutils uses the first occurence, drop the
+       second one.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: [no log message]
+       * doc/cha-intro-tls.texi: updates on -ALL priorities.
 
-2001-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/scripts/gdoc: gdoc is now included in the cvs
+       * lib/ext_signature.c: Restrict the signature algorithms we
+       advertize to SHA1 and SHA256.
 
-2001-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-28  Ludovic Courtès <ludo@gnu.org>
 
-       * NEWS, doc/Makefile.am: [no log message]
+       * lib/includes/Makefile.am: Add `gnutls/dtls.h' to the distribution.
 
-2001-05-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-27  Ludovic Courtès <ludo@gnu.org>
 
-       * doc/API, doc/Makefile.am, doc/TODO, lib/gnutls.c,
-       lib/gnutls.h.in, lib/gnutls_algorithms.c, lib/gnutls_auth.c,
-       lib/gnutls_auth_int.h, lib/gnutls_buffers.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_db.c, lib/gnutls_errors.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_plaintext.c,
-       lib/gnutls_plaintext.h, lib/gnutls_priority.c,
-       lib/gnutls_session.c, src/cli.c, src/serv.c: updated API and
-       documentation. Now we use the gnome way for creating API docs.
+       * guile/modules/system/documentation/c-snarf.scm: guile: Fix
+       docstring extraction with CPP 4.5+.
 
-2001-05-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-27  Ludovic Courtès <ludo@gnu.org>
 
-       * doc/TODO: [no log message]
+       * doc/Makefile.am: Pass the right CPPFLAGS when building Guile doc.
 
-2001-05-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-27  Ludovic Courtès <ludo@gnu.org>
 
-       * src/README.crypt: [no log message]
+       * doc/cha-intro-tls.texi, guile/src/core.c: Add nodes for the
+       subsections of "The TLS Handshake Protocol".
 
-2001-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-27  Ludovic Courtès <ludo@gnu.org>
 
-       * configure.in, lib/gnutls.h.in: [no log message]
+       * lib/Makefile.am: Add `lib/gnutls_dtls.h' to the distribution.
 
-2001-05-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-27  Ludovic Courtès <ludo@gnu.org>
 
-       * src/Makefile.am, src/README: [no log message]
+       * guile/modules/gnutls.scm, guile/modules/gnutls/build/enums.scm,
+       guile/modules/gnutls/build/priorities.scm, guile/src/core.c,
+       guile/src/errors.c, guile/src/errors.h, guile/tests/Makefile.am,
+       guile/tests/priorities.scm: guile: Wrap
+       `gnutls_priority_set_direct'; deprecate the old method.
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-27  Ludovic Courtès <ludo@gnu.org>
 
-       * lib/gnutls_dh.c: some cleanups in Diffie Hellman key exchange
+       * doc/scripts/gdoc, doc/scripts/sort2.pl: Avoid hard-coded
+       /usr/bin/perl (trick taken from Gnulib.)
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-27  Ludovic Courtès <ludo@gnu.org>
 
-       * doc/API, lib/auth_anon.c, lib/auth_anon.h, lib/auth_dhe_dss.c,
-       lib/auth_dhe_dss.h, lib/cert_b64.c, lib/cert_sb64.c,
-       lib/gnutls_algorithms.c, lib/gnutls_auth.c, lib/gnutls_dh.c,
-       lib/gnutls_dh.h, lib/gnutls_int.h, lib/gnutls_srp.c: removed
-       DHE_DSS.  Added parameters to DH_ANON (size of prime).  cleanups.
+       * libextra/gnutls_extra.c: Fix LZO-enabled builds.
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/prime.c, src/serv.c: several updates
+       * lib/nettle/rnd.c: Detect fork() in the random number generator and
+       reseed.
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * lib/gnutls_dtls.c, lib/gnutls_state.c: use timeouts closer to DTLS
+       RFC.
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp_passwd.c, lib/cert_sb64.c, lib/crypt_bcrypt.c,
-       lib/crypt_srpsha1.c, lib/gnutls_int.h, src/crypt.c: Added decoding
-       function for the base64 encoding used in SRP.  (this function is
-       more strict in characters than the previous one)
+       * lib/gnutls_state.c, lib/includes/gnutls/gnutls.h.in,
+       lib/libgnutls.map, lib/system_override.c: Renamed
+       gnutls_transport_set_push_function2() to
+       gnutls_transport_set_vec_push_function().
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/cert_b64.c: corrected memory leaks
+       * NEWS, doc/manpages/Makefile.am, lib/includes/gnutls/compat.h,
+       lib/libgnutls.map, lib/x509/crq.c: Remove
+       gnutls_x509_crq_get_preferred_hash_algorithm.
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/auth_anon.c, lib/auth_dhe_dss.c, lib/auth_srp.c,
-       lib/gnutls.c, lib/gnutls_extensions.c, lib/gnutls_handshake.c,
-       lib/gnutls_num.c, lib/gnutls_num.h, lib/gnutls_v2_compat.c: several
-       cleanups in numbers' handling
+       * lib/libgnutls.map: Remove dropped functions.
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * src/Makefile.am: [no log message]
+       * lib/x509/crl_write.c: Add deprecated docstring.
 
-2001-05-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/.cvsignore, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_num.c, lib/gnutls_num.h, src/.cvsignore: updated uint24
-       functions.
+       * lib/x509/crq.c: Fix deprecated docstring.
 
-2001-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/auth_anon.c, lib/auth_dhe_dss.c, lib/auth_srp.c,
-       lib/gnutls.c, lib/gnutls_cipher.c, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_num.c, lib/gnutls_num.h, lib/gnutls_v2_compat.c: Cleanups
-       in endian handling (convertions).
+       * lib/x509/privkey.c: Fix docstring.
 
-2001-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c: several bug fixes
+       * lib/gnutls_pubkey.c: Fix docstring of new function.
 
-2001-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * doc/API: updated documentation
+       * lib/gnutls_cert.c: Fix docstring for deprecated functions.
 
-2001-05-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * src/serv.c: updated
+       * lib/gnutls_sig.c: Make it build.
 
-2001-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * doc/API: updated
+       * lib/openpgp/privkey.c: Fix docstring of deprecated function.
 
-2001-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * README: [no log message]
+       * lib/gnutls_pubkey.c: Fix docstrinf of new function.
 
-2001-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * README, configure.in, doc/API, lib/gnutls.c, lib/gnutls_errors.c,
-       lib/gnutls_errors_int.h, lib/gnutls_handshake.c, src/cli.c: [no log
-       message]
+       * doc/reference/gnutls-docs.sgml: Fix typo.
 
-2001-05-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_cipher.c: sets the resumed_security_parameters to null
-       after initialization
+       * doc/reference/gnutls-docs.sgml: Improve text.
 
-2001-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * NEWS, configure.in, doc/API: [no log message]
+       * lib/x509/crl.c: Doc fix of new function.
 
-2001-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * src/cli.c, src/serv.c: updated to new api
+       * lib/gnutls_cert.c, lib/gnutls_privkey.c, lib/x509/privkey.c: Fix
+       docstring of deprecated functions.
 
-2001-05-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls.c, lib/gnutls.h.in, lib/gnutls_db.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h: 
-       Updated API (gnutls_deinit()) gnutls_db: does not store anything if
-       db has not been opened for reading.  Added some kind of support for
-       renegotiation of parameters.
+       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/abstract.h,
+       lib/includes/gnutls/compat.h, lib/libgnutls.map, lib/x509/crq.c,
+       lib/x509/sign.c, tests/x509sign-verify.c: Rename
+       gnutls_privkey_sign_data2 to gnutls_privkey_sign_data and
+       gnutls_privkey_sign_hash2 to gnutls_privkey_sign_hash.  These were added during the 2.11 cycle where we don't promise ABI
+       compatibility.
 
-2001-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls.h.in, lib/gnutls_algorithms.c, lib/gnutls_handshake.h: 
-       cleanups
+       * doc/gnutls-crypto-layers.eps: Add doc/gnutls-crypto-layers.eps.
 
-2001-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/defines.h, lib/gnutls.c, lib/gnutls_db.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_session.c: 
-       cleanups and several fixes(and speedups) in the resume DB
+       * doc/Makefile.am: Dist gnutls-crypto-layers.*.
 
-2001-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * src/cli.c, src/serv.c: updated client and servers
+       * lib/Makefile.am: Add abstract_int.h.
 
-2001-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_algorithms.c: cleanups
+       * .gitignore: Ignore more.
 
-2001-05-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * lib/Makefile.am: Link with -lnettle too.
 
-2001-05-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Simon Josefsson <simon@josefsson.org>
 
-       * doc/API, lib/gnutls.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_dh.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_priority.c, lib/gnutls_priority.h,
-       src/cli.c, src/serv.c: Changed gnutls_set_*_priority functions.
+       * doc/Makefile.am, doc/cha-programs.texi, lib/gnutls_privkey.c,
+       lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
+       lib/openpgp/pgp.c: Fix syntax-check warnings.
 
-2001-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-22  Ludovic Courtès <ludo@gnu.org>
 
-       * src/Makefile.am, src/crypt-gaa.c, src/crypt-gaa.h, src/crypt.c,
-       src/gaa.h, src/gaaout.c, src/prime-gaa.c, src/prime-gaa.h,
-       src/prime.c, src/prime.gaa, src/tpasswd, src/tpasswd.conf: [no log
-       message]
+       * guile/modules/gnutls/build/enums.scm: guile: Remove
+       GNUTLS_A_INNER_APPLICATION_FAILURE and
+       GNUTLS_A_INNER_APPLICATION_VERIFICATION.
 
-2001-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/crypt.c: updated
+       * lib/gnutls_session_pack.c: store entities as numbers to avoid
+       issues in big-little endian machines.
 
-2001-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_errors.c, lib/gnutls_errors_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_srp.c, lib/gnutls_srp.h: [no log
-       message]
+       * lib/gnutls_record.c: documented the DTLS sequence particularities.
 
-2001-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_sb64.c: bugfixes
+       * lib/gnutls_buffers.c, lib/gnutls_handshake.c,
+       lib/gnutls_record.c, lib/gnutls_record.h,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/udp-serv.c: 
+       Added gnutls_record_recv_seq() that can return the sequence number
+       of the record packet, in addition to data.
 
-2001-05-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/crypt.c, src/crypt.gaa, src/gaa.h, src/gaaout.c,
-       src/tpasswd, src/tpasswd.conf: added option to generate random
-       primes (instead of using a default).  Added option to specify a
-       specific prime to use (index)
+       * lib/gnutls_record.c: reorganized and simplified gnutls_recv_int().
+       It will discard invalid DTLS packets.
 
-2001-05-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * lib/gnutls_constate.h, lib/gnutls_record.c: Discard messages that
+       contain a different epoch than the current one.
 
-2001-05-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/README.autoconf, lib/libgnutls-config.in: [no
-       log message]
+       * lib/gnutls_record.c: renamed internal function to reflect
+       functionality.
 
-2001-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/libgnutls.m4: updated
+       * lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
+       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c: 
+       Implemented a sliding window-like thing to discard replayed packets.
 
-2001-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls.c, lib/libgnutls.m4: corrected scripts
+       * src/cli.c: gnutls-cli shouldn't print errors on EAGAIN and
+       INTERRUPTED.
 
-2001-05-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acconfig.h, acinclude.m4, changelog-update.sh, configure.in,
-       lib/Makefile.am, lib/gnutls.c, lib/gnutls.h, lib/gnutls.h.in,
-       lib/gnutls_auth.c, lib/gnutls_errors.h, lib/gnutls_errors_int.h,
-       lib/libgnutls-config.in, lib/libgnutls.m4, src/Makefile.am,
-       src/serv.c: Added libgnutls-config script gnutls.h is automaticaly
-       generated by configure script Added libgnutls.m4
+       * lib/gnutls_num.c: corrected uint48pp.
 
-2001-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * changelog-update.sh: [no log message]
+       * lib/gnutls_constate.c, lib/gnutls_mbuffers.c, lib/gnutls_state.c: 
+       Epoch garbage collector is being run when handshake is being cleaned
+       up.
 
-2001-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS: [no log message]
+       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
+       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_num.c,
+       lib/gnutls_state.c: skip replays in handshake packets.
 
-2001-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/ext_srp.c: Added missing length in username.
+       * lib/gnutls_record.c: Forbid SSL v.2 client hello in DTLS.
 
-2001-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/API, lib/auth_anon.c, lib/auth_dhe_dss.c,
-       lib/auth_srp.c, lib/auth_srp.h, lib/ext_srp.c, lib/gnutls.c,
-       lib/gnutls.h, lib/gnutls_auth.c, lib/gnutls_auth_int.h,
-       lib/gnutls_cipher.c, lib/gnutls_db.c, lib/gnutls_int.h,
-       lib/gnutls_session.c, lib/gnutls_session.h, src/cli.c, src/serv.c: 
-       added functions to access authentication data (like username), and
-       the key exchange algorithm used.
+       * lib/gnutls_buffers.c, lib/gnutls_int.h: removed unneeded
+       variables.
 
-2001-05-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/API, lib/gnutls_db.c: [no log message]
+       * lib/gnutls_buffers.c, lib/gnutls_constate.h, lib/gnutls_dtls.c,
+       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_mbuffers.c: 
+       Cleanups in combination of DTLS and TLS buffers.
 
-2001-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_sb64.c: cleanups
+       * lib/auth_dhe.c, lib/auth_rsa.c, lib/auth_rsa_export.c,
+       lib/auth_srp.c, lib/gnutls_algorithms.c, lib/gnutls_dh_primes.c,
+       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_sig.c,
+       lib/opencdk/main.h, lib/openpgp/pgp.c, lib/openpgp/pgpverify.c,
+       lib/openpgp/privkey.c, lib/x509/common.c, lib/x509/dn.c,
+       lib/x509/pkcs12.c, lib/x509/pkcs7.c, lib/x509/privkey_pkcs8.c,
+       lib/x509/verify.c, lib/x509/x509_write.c, lib/x509_b64.c: 
+       gnutls_x509_log replaced with gnutls_audit_log.
 
-2001-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls_db.c: clean_db() now clears expired entries
-       only
+       * lib/gnutls_algorithms.h, lib/gnutls_cipher.c, lib/gnutls_dtls.c,
+       lib/gnutls_int.h, lib/gnutls_state.c, lib/gnutls_state.h: Return a
+       more precise mtu unit to applications.
 
-2001-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/tpasswd, src/tpasswd.conf: example tpasswd files.
+       * src/udp-serv.c: restart handshake on signals.
 
-2001-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/auth_srp_passwd.c, lib/cert_sb64.c, lib/gnutls_int.h,
-       src/crypt.c: minor updates and fixes
+       * lib/gnutls_buffers.c, lib/gnutls_constate.h, lib/gnutls_dtls.c: 
+       reference counting in epochs is being done using functions.
 
-2001-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, doc/TODO: [no log message]
+       * lib/gnutls_cipher.c, lib/gnutls_compress.c, lib/gnutls_dtls.c,
+       lib/gnutls_int.h, lib/gnutls_record.c, lib/gnutls_state.c,
+       lib/includes/gnutls/dtls.h, lib/libgnutls.map: Added
+       gnutls_dtls_g/set_mtu() to allow setting and getting the DTLS mtu
+       from application.
 
-2001-05-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-20  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_srp.c, lib/auth_srp_passwd.c,
-       lib/auth_srp_passwd.h, lib/crypt.c, lib/crypt.h,
-       lib/crypt_bcrypt.c, lib/crypt_bcrypt.h, lib/crypt_srpsha1.c,
-       lib/crypt_srpsha1.h, lib/gnutls.h, lib/gnutls_srp.c,
-       lib/gnutls_srp.h, src/Makefile.am, src/README.crypt, src/cli.c,
-       src/crypt.c, src/crypt.gaa, src/gaa.h, src/gaaout.c, src/serv.c: 
-       Added compatibility with Tom Wu's libsrp's password files.
+       * lib/gnutls_buffers.c, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
+       lib/gnutls_int.h, lib/gnutls_state.c: Combined DTLS buffers and
+       normal TLS buffers.
 
-2001-05-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_sb64.c: [no log message]
+       * lib/Makefile.am, lib/ext_session_ticket.c, lib/gnutls_buffers.c,
+       lib/gnutls_buffers.h, lib/gnutls_constate.c, lib/gnutls_dtls.c,
+       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, lib/system.c,
+       lib/system.h, lib/system_override.c, src/Makefile.am,
+       src/serv-gaa.c, src/serv-gaa.h, src/serv.c, src/serv.gaa,
+       src/udp-serv.c, src/udp-serv.h: Changes to allow DTLS server side to
+       operate. Added a simple UDP server on gnutls-serv.  Server other
+       cleanups.
 
-2001-05-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/Makefile.am, lib/auth_srp.c, lib/auth_srp.h,
-       lib/auth_srp_passwd.c, lib/cert_b64.c, lib/cert_b64.h, lib/debug.c,
-       lib/gnutls.h, lib/gnutls_int.h, lib/gnutls_srp.c, src/port.h,
-       src/serv.c: added support for Tom Wu's srp library tpasswd and
-       tpasswd.conf files.
+       * lib/gnutls_dtls.c, lib/gnutls_errors.c, lib/gnutls_int.h,
+       lib/gnutls_state.c, lib/includes/gnutls/dtls.h,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map, src/cli.c: Allow
+       setting the DTLS timeouts explicitly.
 
-2001-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * doc/TODO: updated.
 
-2001-05-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * lib/auth_cert.c, lib/debug.c, lib/gnutls_algorithms.c,
+       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cipher.c,
+       lib/gnutls_cipher.h, lib/gnutls_dtls.c, lib/gnutls_dtls.h,
+       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_mbuffers.h, lib/gnutls_num.c, lib/gnutls_num.h,
+       lib/gnutls_record.c, lib/gnutls_record.h, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in, lib/system.c, lib/system.h,
+       src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: Several
+       updates for DTLS (client side only) to work.
 
-2001-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls.c, lib/gnutls_int.h: fixes in memory
-       allocation
+       * lib/opencdk/main.h: Increased level of opencdk debug messages.
 
-2001-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_buffers.c, lib/gnutls_db.c,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h: corrected memory leaks
+       * lib/gnutls_sig.c: DSA keys in TLS 1.x, x<2 and SSL 3.0 use SHA-1
+       as hash. That is we reverted to previous gnutls behavior. That
+       violates DSS but all implementations handle it like that.
 
-2001-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, doc/Makefile.am: [no log message]
+       * lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_dtls.c,
+       lib/gnutls_dtls.h, lib/gnutls_handshake.c, lib/gnutls_int.h: use
+       similar API when caching messages in DTLS or TLS.
 
-2001-05-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API, lib/gnutls.h, lib/gnutls_auth.c, lib/gnutls_auth_int.h,
-       src/cli.c, src/serv.c: credentials are now kept globaly (in order to
-       minimize memory usage).  This makes no harm since these are never
-       modified by gnutls.
+       * lib/gnutls_algorithms.c: corrected is_version_supported().
 
-2001-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API, lib/gnutls.h: [no log message]
+       * lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_kx.c: 
+       Simplified _gnutls_recv_handshake().
 
-2001-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: [no log message]
+       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
+       lib/gnutls_dtls.c, lib/gnutls_handshake.c: ciphersuites have a bit
+       that indicates whether they are usable with DTLS or not.
 
-2001-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: updated TODO list
+       * lib/auth_dhe.c, lib/gnutls_algorithms.c, lib/gnutls_cipher.c: fix
+       for dtls.
 
-2001-05-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-10-02  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_srp.c, lib/auth_srp_passwd.c, lib/cert_b64.c,
-       lib/crypt_bcrypt.c, lib/crypt_srpsha1.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_srp.c, lib/gnutls_srp.h, src/cli.c,
-       src/serv.c: several fixes for srp. Seems to work now!
+       * lib/gnutls_dtls.c, lib/gnutls_dtls.h, lib/gnutls_num.c,
+       lib/gnutls_num.h: dtls: Add uint48 handling functions.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-10-02  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/gnutls_v2_compat.c: better version handling
+       * lib/gnutls_record.c: dtls: Bring epoch choice on receive closer to
+       the first usage.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-24  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * NEWS, doc/TODO, lib/Makefile.am, lib/gnutls.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_v2_compat.c,
-       lib/gnutls_v2_compat.h, src/cli.c: added support for SSL 2.0 client
-       hello
+       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa: Add DTLS
+       support to command-line client.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-17  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * configure.in, lib/auth_srp.c, lib/auth_srp_passwd.c,
-       lib/ext_srp.c, lib/gnutls.c, lib/gnutls.h, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_srp.c, src/cli.c, src/serv.c: several fixes for srp
+       * lib/gnutls_constate.c: dtls: Write epoch to sequence number.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-06  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * doc/API, lib/auth_srp.c, lib/auth_srp_passwd.c, lib/ext_srp.c,
-       lib/gnutls_auth.c, lib/gnutls_auth_int.h, lib/gnutls_handshake.c: 
-       gnutls_get_kx_cred() now returns err value. set_kx_cred() now
-       accepts size.
+       * lib/gnutls_handshake.c: dtls: Send consistent a client_random.  This is necessary when challenged by HelloVerifiyRequest as we MUST
+       send the same client parameters.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * src/Makefile.am: added missing gaa.h
+       * lib/gnutls_handshake.c, lib/gnutls_int.h: dtls: Limit the number
+       of HelloVerifyRequest round trips.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/gnutls_srp.c: some modulo fixes
+       * lib/gnutls_dtls.c, lib/gnutls_handshake.c: dtls: TEMP: Sprinkle
+       transmits.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_srp.c, lib/auth_srp_passwd.c, lib/auth_srp_passwd.h,
-       lib/ext_srp.c, lib/gnutls_srp.c, lib/gnutls_srp.h: more srp related
-       fixes. No longer fails authentication if wrong username is provided.
+       * lib/gnutls_handshake.c, lib/gnutls_int.h: dtls: Do
+       HANDSHAKE_HELLO_VERIFY_REQUEST processing.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_srp.c, lib/crypt.c, lib/crypt_bcrypt.c,
-       lib/crypt_bcrypt.h, lib/crypt_srpsha1.c, lib/gnutls.h,
-       lib/gnutls_dh.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_int.h, lib/gnutls_srp.c, lib/gnutls_srp.h: some hacks in
-       order to exchange the algorithm used to hash the password...
+       * lib/gnutls_handshake.c: dtls: Add
+       _gnutls_recv_hello_verify_request.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_srp.c, lib/gnutls_srp.c, lib/gnutls_srp.h: cleanups for
-       srp. Most mpi code has moved to gnutls_srp.c
+       * lib/gnutls_record.c: Decrypt using the proper sequence number.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * src/.cvsignore: [no log message]
+       * lib/gnutls_cipher.c, lib/gnutls_cipher.h: dtls: Use proper record
+       sequence for DTLS decrypt.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/ext_srp.c, lib/gnutls_int.h: more srp related
-       fixes
+       * lib/gnutls_handshake.c: corrected extdatalen
 
-2001-05-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-05  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_srp.c, lib/gnutls.h, lib/gnutls_algorithms.c,
-       lib/gnutls_auth_int.h, lib/gnutls_extensions.c,
-       lib/gnutls_handshake.c: some fixes - srp related
+       * lib/gnutls_buffers.c: dtls: Read whole datagrams.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_srp.c: [no log message]
+       * lib/gnutls_handshake.c: dtls: Queue outgoing handshake messages in
+       the retransmission layer.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_srp.c, lib/auth_srp.h, lib/auth_srp_passwd.c,
-       lib/auth_srp_passwd.h: more srp stuff
+       * lib/gnutls_dtls.c, lib/gnutls_dtls.h: Add outgoing flight buffer
+       handling code.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/Makefile.am, lib/crypt_bcrypt.c, lib/crypt_srpsha1.c,
-       lib/ext_srp.c, lib/gnutls.c, lib/gnutls.h, lib/gnutls_algorithms.c,
-       lib/gnutls_auth.c, lib/gnutls_auth.h, lib/gnutls_auth_int.h,
-       lib/gnutls_dh.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_int.h, lib/gnutls_kx.c, lib/gnutls_srp.c,
-       lib/gnutls_srp.h, src/crypt.c: more additions for SRP
+       * lib/gnutls_errors.h: Define _gnutls_dtls_log for DTLS.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * src/crypt.c: fixed default case when no -s was specified
+       * lib/gnutls_int.h, lib/gnutls_state.c: Add structures for the
+       buffered outgoing flight.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/Makefile.am, lib/cert_b64.h, lib/crypt.c, lib/crypt_bcrypt.c,
-       lib/crypt_srpsha1.c, lib/crypt_srpsha1.h, lib/gnutls.h,
-       lib/gnutls_dh.c, lib/gnutls_srp.c, lib/gnutls_srp.h, src/crypt.c,
-       src/crypt.gaa, src/gaa.h, src/gaaout.c: More adds for SRP - SRPSHA1
-       and bcrypt
+       * lib/gnutls_int.h, lib/gnutls_state.c: Add state for handshake mtu.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/cert_b64.c: corrected bug in decoding function
+       * lib/gnutls_handshake.c: dtls: Fixup outgoing ClientHello hashing.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/crypt_bcrypt.h: for bcrypt support
+       * lib/gnutls_handshake.c, lib/gnutls_int.h: Add proper handshake
+       outgoing sequence number.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * acconfig.h, configure.in, lib/Makefile.am, lib/cert_b64.c,
-       lib/crypt.c, lib/crypt_bcrypt.c, lib/defines.h, lib/gnutls.h,
-       lib/gnutls_cipher.c, lib/gnutls_cipher_int.h,
-       lib/gnutls_handshake.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_random.c, lib/gnutls_random.h, src/Makefile.am,
-       src/crypt.c, src/crypt.gaa, src/gaa.h, src/gaaout.c: Changes in
-       random number handling. Added bcrypt (for use with SRP).  Added test
-       program crypt for creating bcrypt passwd files.
+       * lib/Makefile.am, lib/gnutls_dtls.c, lib/gnutls_dtls.h: Add
+       gnutls_dtls.{c,h}.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-02  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * doc/API, lib/Makefile.am, lib/gnutls.c, lib/gnutls.h,
-       lib/gnutls_auth.c, lib/gnutls_auth.h, lib/gnutls_auth_int.h,
-       lib/gnutls_int.h: added support for setting authentication
-       algorithms' credentials
+       * lib/gnutls_handshake.c: dtls: Remove unsuitable ciphers.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-07-28  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_anon.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_kx.c: cleanups... and more
-       modular design.
+       * lib/debug.c, lib/gnutls_handshake.c,
+       lib/includes/gnutls/gnutls.h.in: dtls: Add hanshake fragment headers
+       when sending handshake.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-07-28  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * .cvsignore: [no log message]
+       * lib/gnutls_cipher.c, lib/gnutls_int.h, lib/gnutls_record.c: dtls:
+       Add epoch and sequence number to DTLS packets.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-07-28  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/auth_anon.c, lib/auth_dhe_dss.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_auth.h, lib/gnutls_handshake.c,
-       lib/gnutls_kx.c, lib/gnutls_kx.h: Added client kx0 and server kx2 in
-       order to be used with SRP
+       * lib/gnutls_record.c: Use increment functions for sequence number.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-05-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-07-27  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * buildconf: updated
+       * lib/gnutls_int.h, lib/gnutls_num.c, lib/gnutls_num.h,
+       lib/gnutls_record.c: dtls: Add types and operations required for the
+       DTLS epoch and sequence.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-07-29  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * doc/protocol/ssl-2.txt: added SSL v2 spec
+       * lib/gnutls_algorithms.c, lib/gnutls_priority.c: Make version
+       lookup transport dependent.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-08-03  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/gnutls_extensions.c: in case there are no extensions ext_gen()
-       does not return anything (NULL);
+       * lib/gnutls_state.h: dtls: Add _gnutls_is_dtls to check if a
+       session uses DTLS.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-07-25  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/debug.h, lib/gnutls.c, lib/gnutls_algorithms.c,
-       lib/gnutls_handshake.c: more cleanups
+       * lib/gnutls_int.h, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in, lib/libgnutls.map: Add
+       gnutls_init_dtls function.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-07-25  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/ext_srp.c, lib/gnutls_extensions.c: send extensions feature
-       was added.
+       * lib/gnutls_int.h: Add DTLS state.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2009-07-15  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * NEWS, lib/auth_anon.c, lib/auth_dhe_dss.c, lib/debug.c,
-       lib/gnutls_buffers.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, src/serv.c: several bugfixes and cleanups
+       * lib/gnutls_algorithms.c, lib/includes/gnutls/gnutls.h.in: Add
+       DTLS1.0 protocol entry.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-17  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/Makefile.am, lib/ext_srp.c, lib/ext_srp.h,
-       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: Added some preliminary
-       support for TLS extensions;
+       * lib/ext_session_ticket.c, lib/gnutls_handshake.c,
+       lib/gnutls_kx.c, lib/gnutls_mbuffers.h: Allocate session buffers of
+       size, depending on type of session.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-25  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * doc/TODO: updated todo list
+       * lib/gnutls_constate.c: Harmonize "d" argument between constate.c
+       and compress.c.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-24  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * doc/protocol/rfc2945.txt: added RFC for srp protocol
+       * src/cli-gaa.c, src/cli.gaa: Fix typo.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-09-21  Jonathan Bastien-Filiatrault <joe@x2a.org>
 
-       * lib/gnutls_algorithms.c: updated with new files
+       * lib/gnutls_num.h: Parenthesize UINT64DATA again.  Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-2001-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/auth_anon.c, lib/auth_anon.h,
-       lib/auth_dhe_dss.c, lib/auth_dhe_dss.h, lib/gnutls_anon.c,
-       lib/gnutls_anon.h, lib/gnutls_dhe_dss.c, lib/gnutls_dhe_dss.h: moved
-       gnutls_anon and gnutls_dhe_dss to auth_*
+       * doc/cha-intro-tls.texi: reorganization of ciphersuite discussion.
 
-2001-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-srp-00.txt: added srp draft
+       * lib/gnutls_priority.c: Allow using the minus "-" in the -ALL
+       priority strings.
 
-2001-03-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_anon.c, lib/gnutls_anon.h,
-       lib/gnutls_auth.h, lib/gnutls_dhe_dss.c, lib/gnutls_dhe_dss.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c: Key
-       exchange (authentication) algorithms were reorganized, and now are
-       more modular. Most changes however are not much tested and only
-       anonymous authentication is currently used.
+       * lib/gnutls_algorithms.c: Added fixme note on TLS 1.2 PRF per
+       ciphersuite.
 
-2001-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_der.c: updated some functionality - no longer uses
-       stdin
+       * lib/gnutls_algorithms.c: The safe renegotiation ciphersuite is not
+       required to be registered.
 
-2001-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * THANKS: added Tarun
+       * lib/auth_dhe_psk.c: Corrected bug in DHE-PSK in freeing
+       username/key.
 
-2001-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: corrected bug with dmalloc mode
+       * lib/gnutls_algorithms.c: Added ciphersuites (from RFC5487):
+       TLS_PSK_WITH_AES_128_GCM_SHA256 TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
+       TLS_PSK_WITH_AES_128_CBC_SHA256 TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
+       TLS_PSK_WITH_NULL_SHA256 TLS_DHE_PSK_WITH_NULL_SHA256
 
-2001-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: [no log message]
+       * NEWS, lib/gnutls_extensions.c, lib/gnutls_sig.c: Corrected
+       signature generation and verification in the Certificate Verify
+       message when in TLS 1.2. Reported by Todd A. Ouska.
 
-2001-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/protocol/draft-ietf-tls-kerb-00.txt: added kerberos
-       ciphersuites
+       * lib/gnutls_state.c: removed duplicate assignments.
 
-2001-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls.h, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_plaintext.c: 
-       TLS version handling is now more simple (no structures)
+       * lib/nettle/cipher.c: upgraded to nettle's new GCM API.
 
-2001-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_cipher_int.c: corrected
-       rijndael256
+       * lib/m4/hooks.m4: increased the C++ library current version.
 
-2001-02-03  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h, lib/gnutls_algorithms.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_db.c, lib/gnutls_int.h: added rijndael-256 as described
-       in draft-ietf-tls-ciphersuite-03
+       * NEWS, lib/gnutlsxx.cpp: The C++ interface returns exception on
+       every error and not only on fatal ones. This allows easier handling
+       of errors.
 
-2001-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c: comments are now more clear
+       * lib/gnutlsxx.cpp, lib/includes/gnutls/gnutlsxx.h: removed the old
+       set_priority functions.
 
-2001-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c: gnutls_send_int() no longer
-       sends the packets with 2 Write() calls.  One Write() call is enough
-       for everybody!
+       * src/cli.c, src/serv.c: removed more deprecated stuff.
 
-2001-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/draft-ietf-tls-camellia-00.txt,
-       doc/draft-ietf-tls-ciphersuite-02.txt,
-       doc/draft-ietf-tls-https-04.txt, doc/draft-ietf-tls-misty1-00.txt,
-       doc/draft-ietf-tls-openpgp-00.txt,
-       doc/draft-ietf-tls-seedhas-00.txt,
-       doc/draft-ietf-tls-wireless-00.txt,
-       doc/draft-ietf-tn3270e-telnet-tls-05.txt,
-       doc/protocol/draft-ietf-pkix-ac509prof-05.txt,
-       doc/protocol/draft-ietf-tls-camellia-00.txt,
-       doc/protocol/draft-ietf-tls-ciphersuite-03.txt,
-       doc/protocol/draft-ietf-tls-https-04.txt,
-       doc/protocol/draft-ietf-tls-misty1-00.txt,
-       doc/protocol/draft-ietf-tls-openpgp-00.txt,
-       doc/protocol/draft-ietf-tls-seedhas-00.txt,
-       doc/protocol/draft-ietf-tls-wireless-00.txt,
-       doc/protocol/draft-ietf-tn3270e-telnet-tls-05.txt,
-       doc/protocol/rfc1422.txt, doc/protocol/rfc1423.txt,
-       doc/protocol/rfc2246.txt, doc/protocol/rfc2279.txt,
-       doc/protocol/rfc2459.txt, doc/protocol/rfc2818.txt,
-       doc/protocol/ssl-draft302.txt, doc/rfc1422.txt, doc/rfc1423.txt,
-       doc/rfc2246.txt, doc/rfc2459.txt, doc/rfc2818.txt,
-       doc/ssl-draft302.txt: drafts and rfcs were moved to protocol/
-       directory
+       * libextra/gnutls_openssl.c, libextra/includes/gnutls/openssl.h: 
+       updated openssl layer to new priority functions (untested).
 
-2001-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README: updated
+       * lib/gnutls_sig.c: removed unused variable.
 
-2001-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.h, lib/defines.h, lib/gnutls_algorithms.h,
-       lib/gnutls_buffers.h, lib/gnutls_cipher.h, lib/gnutls_cipher_int.h,
-       lib/gnutls_compress.h, lib/gnutls_compress_int.h, lib/gnutls_db.h,
-       lib/gnutls_dh.h, lib/gnutls_errors.h, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.h,
-       lib/gnutls_num.h, lib/gnutls_plaintext.h, lib/gnutls_priority.h,
-       lib/gnutls_session.h: added copyright notice
+       * NEWS, lib/gnutls_sig.c: Allow DSA2 even in protocols before TLS
+       1.2.
 
-2001-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c, lib/gnutls_cipher.h: removed
-       large buffer
+       * src/cli.c: set the psk callback only if username/key were not
+       supplied at command line.
 
-2001-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, README, configure.in, src/cli.c, src/port.h: [no log
-       message]
+       * lib/ext_signature.c, lib/ext_signature.h, lib/gnutls_pk.c,
+       lib/gnutls_sig.c: In TLS 1.2 under DSS use the hash algorithm
+       required by DSS.
 
-2001-01-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/cert_der.asn1, lib/gnutls_cert.lex: removed
-       unneeded files
+       * tests/Makefile.am, tests/openpgp-auth.c, tests/openpgp-auth2.c: 
+       Added new test openpgp-auth2.c that tests openpgp under TLS1.2 and
+       DSS as well.
 
-2001-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: corrected wrong buffer size
+       * tests/anonself.c, tests/dhepskself.c, tests/mini-eagain.c,
+       tests/mini.c, tests/openpgp-auth.c, tests/pskself.c, tests/resume.c: 
+       Modernized the test applications that now use the
+       gnutls_priority_set_direct().
 
-2001-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am: [no log message]
+       * lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in: 
+       deprecated gnutls_*_set_priority().
 
-2001-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c, lib/gnutls_cipher.h: changes in
-       gnutls_encrypt()
+       * lib/auth_cert.c, lib/ext_cert_type.c, lib/ext_max_record.c,
+       lib/ext_safe_renegotiation.c, lib/ext_server_name.c,
+       lib/ext_session_ticket.c, lib/ext_signature.c, lib/ext_srp.c,
+       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
+       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_pk.c,
+       lib/gnutls_sig.c, lib/gnutls_state.c,
+       lib/includes/gnutls/gnutls.h.in, lib/nettle/pk.c: The extensions
+       code is now using the gnutls_buffer_st.
 
-2001-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_int.h: tls packets are now send using one
-       write(that way ssldump understands us)
+       * lib/gnutls_algorithms.c, lib/x509/x509_int.h: Added sha224 to the
+       list of MACs.
 
-2001-01-25  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: updated todo list
+       * lib/gnutls_priority.c: The PSK and SRP key exchange algorithms are
+       not included in the preset priority strings.
 
-2001-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_b64.c: corrected license
+       * lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe_psk.c,
+       lib/auth_psk.c, lib/auth_psk.h: Callback function is being called in
+       both PSK-DHE and PSK.  Using the callback function will not
+       overwrite the credentials, which were wrongly being overwritten
+       using the retrieved username/key.  The credentials structure is now
+       accessed for reading only, as it should have been.
 
-2001-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_der.asn1: added asn1 rules for snacc (DER extended)
-       compiler
+       * configure.ac: bumped version.
 
-2001-01-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/draft-ietf-tls-wireless-00.txt: added draft-ietf-tls-wireless
+       * doc/cha-programs.texi: Added documentation on p11tool.
 
-2001-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS: updated authors - tarun left
+       * doc/cha-intro-tls.texi, doc/cha-library.texi,
+       doc/manpages/gnutls-cli.1, doc/manpages/gnutls-serv.1,
+       lib/gnutls_priority.c, src/common.c: Moved documentation of priority
+       strings to manual and removed information from manpages and function
+       pages that now reference the manual section.
 
-2001-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: updated todo list
+       * lib/auth_anon.c, lib/auth_cert.c, lib/auth_cert.h,
+       lib/auth_dh_common.c, lib/auth_dh_common.h, lib/auth_dhe.c,
+       lib/auth_dhe_psk.c, lib/auth_psk.c, lib/auth_rsa.c,
+       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
+       lib/auth_srp_rsa.c, lib/gnutls_auth.h, lib/gnutls_kx.c,
+       lib/gnutls_str.c, lib/gnutls_str.h: Simplified code in
+       authentication methods by using gnutls_buffer_st instead of
+       malloc/realloc.
 
-2001-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: removed time_t declarations. We need
-       exactly 32 bits.
+       * lib/gnutls_algorithms.c, lib/includes/gnutls/gnutls.h.in: Combined
+       same functions.
 
-2001-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_der.h: corrected typo
+       * lib/auth_cert.c, lib/auth_dhe.c, lib/ext_signature.c,
+       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h: Several updates in
+       signature algorithms parsing and sending to avoid sending invalid
+       signature algorithms.
 
-2001-01-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/cert_b64.c: added some support for pem encoded x509
-       certificates
+       * lib/gnutls_algorithms.c: Removed unused debugging code.
 
-2001-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: session gets deleted from the db if it is not
-       resumable
+       * lib/nettle/cipher.c: Removed unneeded initialization.
 
-2001-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_db.c, lib/gnutls_db.h: added db files
+       * NEWS, doc/cha-auth.texi, doc/cha-programs.texi, lib/Makefile.am,
+       lib/gnutls_psk_netconf.c, lib/includes/gnutls/compat.h: Removed
+       gnutls_psk_netconf_derive_key.
 
-2001-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: more fixes
+       * NEWS, lib/gnutls_cert.c, lib/includes/gnutls/compat.h: Removed
+       gnutls_certificate_verify_peers.
 
-2001-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, src/cli.c: fixes for release
+       * NEWS, lib/gnutls_handshake.c, lib/gnutls_int.h,
+       lib/gnutls_state.c, lib/includes/gnutls/compat.h: Removed
+       gnutls_session_set_finished_function().
 
-2001-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acinclude.m4: added hooks for new libgcrypt
+       * lib/gnutls_alert.c, lib/includes/gnutls/gnutls.h.in: Removed
+       remaining TLS/IA stuff.
 
-2001-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, doc/API, lib/Makefile.am, lib/gnutls.c,
-       lib/gnutls.h, lib/gnutls_algorithms.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_session.c,
-       src/Makefile.am, src/cli.c, src/port.h, src/serv.c: added server
-       side session resuming (using gdbm)
+       * src/cli-gaa.c, src/cli-gaa.h, src/cli.gaa, src/serv-gaa.c,
+       src/serv-gaa.h, src/serv.gaa: Removed more leftovers from opaque PRF
+       output.
 
-2001-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * acconfig.h, configure.in, lib/gnutls_dh.c, lib/gnutls_int.h,
-       src/Makefile.am: added hooks for dmalloc
+       * lib/gnutls_record.c: Corrected return message from
+       check_recv_type().
 
-2001-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli.c, src/serv.c: corrected client/server
+       * lib/nettle/mac.c: Removed upper limit on MAC algorithm key.
 
-2001-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls.c, lib/gnutls.h,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: corrected buffer overruns
+       * lib/gnutls_errors.c: improved premature_termination error message
 
-2001-01-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/rfc1423.txt: [no log message]
+       * doc/reference/Makefile.am, lib/libgnutls.map: Removed leftovers
+       from OPRFI extension.
 
-2001-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/rfc1422.txt: added PEM rfc
+       * NEWS, lib/gnutls_errors.c, lib/gnutls_record.c,
+       lib/includes/gnutls/gnutls.h.in: gnutls_recv() returns
+       GNUTLS_E_PREMATURE_TERMINATION on EOF.
 
-2001-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: corrected return value
+       * src/cli-gaa.c, src/cli-gaa.h, src/cli.c, src/cli.gaa,
+       src/common.c, src/common.h, src/serv-gaa.c, src/serv-gaa.h,
+       src/serv.c, src/serv.gaa: Removed deprecated option such as
+       --protocols, ciphers etc.
 
-2001-01-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: added a check in read return value
+       * NEWS: not untested.
 
-2000-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_compress_int.c: more checks for zlib
+       * src/benchmark.c: Set correct iv in GCM.
 
-2000-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API: [no log message]
+       * lib/gnutls_cipher.c, lib/gnutls_int.h: Cleanups and moved
+       definitions to gnutls_int.h. AEAD modes now use the record packet
+       counter as nonce.
 
-2000-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API, lib/gnutls.c, lib/gnutls.h, lib/gnutls_int.h: added a
-       function to control the lowat size (the RCVLOWAT in socket)
+       * lib/nettle/cipher.c: Reset GCM mode when setting IV.
 
-2000-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: removed file
+       * lib/gnutls_algorithms.c: Added more GCM ciphersuites (DHE-* and
+       anonymous).
 
-2000-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, configure.in, doc/API, doc/TODO, lib/gnutls.c,
-       lib/gnutls.h, lib/gnutls_algorithms.c, lib/gnutls_buffers.c,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, src/cli.c, src/port.h, src/serv.c: added some
-       support for non blocking IO and socket flags. Some function names
-       have been changed.
+       * lib/gnutls_priority.c: updated priorities. Removed ARCFOUR from
+       the secure ciphersuites and moved GCM to bottom of the ciphers in
+       performance.
 
-2000-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: qsort seems to work now
+       * NEWS, lib/crypto-api.c, lib/gnutls_algorithms.c,
+       lib/gnutls_algorithms.h, lib/gnutls_cipher_int.c,
+       lib/gnutls_cipher_int.h, lib/includes/gnutls/crypto.h,
+       lib/libgnutls.map, src/benchmark.c: Added gnutls_cipher_add_auth()
+       gnutls_cipher_tag() to export the GCM interface. Updated the
+       benchmark.
 
-2000-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_compress_int.c: added check for zlib.h
+       * lib/gnutls_cert.c: removed
+       gnutls_certificate_get_openpgp_keyring().
 
-2000-12-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c: updated sorting algorithm - it was a mess
-       - it is more than a mess now
+       * lib/gnutls_hash_int.c: minor optimizations.
 
-2000-12-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/API, doc/TODO, lib/gnutls.c, lib/gnutls.h,
-       lib/gnutls_algorithms.c, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_compress_int.c,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, src/cli.c, src/port.h,
-       src/serv.c: some minor updates
+       * lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
+       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: inlined several small
+       functions.
 
-2000-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: added a better(?) - not sure - xor function.
+       * lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
+       lib/gnutls_cipher_int.h, lib/gnutls_handshake.c,
+       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_sig.c: 
+       Better error checking on SSL3.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_priority.h: added missing file
+       * lib/gnutls_cipher.c: calculation for c_length occurs in a single
+       place.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: added option for profiling
+       * NEWS: unstable -> untested.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_handshake.c, lib/gnutls_kx.c: improved some things found
-       from gcov
+       * lib/nettle/mac.c: Increase the maximum HMAC key to account for
+       anonymous ciphersuites.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_int.h: improved peek data handling - now
-       keeps only 1 byte in kernel buffer
+       * lib/gnutls_hash_int.c: check the error of hash set_key.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/.cvsignore, lib/gnutls.c: more changes
+       * lib/gnutls_kx.c: do not use strlen for fixed string.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: removed debug definitions
+       * NEWS: updated NEWS on GCM mode.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * NEWS, lib/Makefile.am, lib/debug.h, lib/gnutls.c,
-       lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_errors.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       src/cli.c, src/serv.c: cleanups for gcc -Wall
+       * lib/nettle/cipher.c: Use nettle's new API for GCM.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/HACKING: removed file. replaced by API
+       * src/cli.c: removed old comment
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API, lib/gnutls.c, lib/gnutls.h, lib/gnutls_buffers.c,
-       lib/gnutls_int.h, lib/gnutls_session.c, src/cli.c: added some new
-       functions in the API. documentation updated.
+       * NEWS, doc/Makefile.am, doc/cha-functions.texi,
+       doc/cha-gtls-app.texi, doc/examples/Makefile.am,
+       doc/examples/ex-client-tlsia.c, lib/gnutls_kx.c,
+       libextra/Makefile.am, libextra/ext_inner_application.c,
+       libextra/ext_inner_application.h, libextra/gnutls_extra.c,
+       libextra/gnutls_ia.c, libextra/libgnutls-extra.map,
+       tests/Makefile.am, tests/tlsia.c: Removed inner application
+       extension.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API, doc/TODO: updated documentation
+       * lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in: 
+       gnutls_certificate_verify_peers is deprecated.
 
-2000-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-04  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: corrected peek data handling
+       * lib/gcrypt/mac.c, lib/gnutls_algorithms.c,
+       lib/gnutls_algorithms.h, lib/gnutls_cipher.c, lib/gnutls_cipher.h,
+       lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h,
+       lib/gnutls_constate.c, lib/gnutls_hash_int.c,
+       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_priority.c,
+       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
+       lib/m4/hooks.m4, lib/nettle/cipher.c, lib/nettle/mac.c: Added
+       support for GCM ciphersuites (not tested with other implementation).
 
-2000-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/TODO, lib/defines.h, lib/gnutls.c,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_int.h,
-       src/cli.c: used MSG_PEEK flag in recv in order to used gnutls_recv()
-       with select(). This change will order select to treat the socket as
-       read even if we have read and localy buffered all data - but the
-       user hasn't call gnutls_recv() to get that data.
+       * lib/gnutls_int.h: Added missing definitions (GNUTLS_MASTER_SIZE
+       etc).
 
-2000-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c: [no log message]
+       * NEWS, lib/gnutls_state.c, lib/includes/gnutls/compat.h: Removed:
+       gnutls_session_get_server_random, gnutls_session_get_client_random,
+       gnutls_session_get_master_secret
 
-2000-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/cli.c, src/serv.c: updated client
+       * lib/build-aux/config.rpath, tests/suite/Makefile.in: updated.
 
-2000-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.c, lib/gnutls.c, lib/gnutls_buffers.c,
-       lib/gnutls_cipher.c, lib/gnutls_handshake.c, lib/gnutls_int.h: 
-       changes in close notify- alert handling
+       * lib/Makefile.am, lib/gnutls.pc.in, lib/m4/hooks.m4: Add the nettle
+       libs into gnutls.pc.
 
-2000-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_compress_int.c: changes in compression handling
+       * NEWS, lib/gnutls_cert.c, lib/gnutls_extensions.c,
+       lib/includes/gnutls/compat.h, lib/m4/hooks.m4: Removed functions:
+       gnutls_ext_register, gnutls_certificate_get_x509_crls,
+       gnutls_certificate_get_x509_cas and bumped library version number.
 
-2000-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-05  Andreas Metzler <ametzler@downhill.at.eu.org>
 
-       * NEWS: [no log message]
+       * lib/configure.ac, lib/gnutls.pc.in, lib/m4/hooks.m4: [PATCH 1/4]
+       adapt pkg-config file for switch from AM_PATH_LIBGCRYPT to
+       AC_LIB_HAVE_LINKFLAGS [PATCH 2/4] pkg-config: Move libtasn1 from
+       Libs.private to Requires.private since libtasn1 provides a .pc file.
+       [PATCH 3/4] pkg-config: drop @LIBGNUTLS_LIBS@ from Libs.private.
+       This library only contains gnutls itself nowadays, which is in Libs
+       already.  [PATCH 4/4] pkg-config: If gnutls is built with zlib
+       support list zlib in Requires.private.
 
-2000-12-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-04  Simon Josefsson <simon@josefsson.org>
 
-       * : moved to r2
+       * doc/cha-ciphersuites.texi, doc/signatures.texi: Fix MD2
+       documentation.  Suggested by "brian m. carlson" <sandals@crustytoothpaste.net> in
+       debian bug #464625.
 
-2000-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_session.c, lib/gnutls_session.h: added support for
-       session resuming
+       * doc/README.CODING_STYLE: updated coding style.
 
-2000-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls.c, lib/gnutls.h, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h: 
-       added some support for session resuming (in client) It does not seem
-       to work yet
+       * NEWS: documented gnutls_session_get_* deprecated functions.
 
-2000-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.c, lib/gnutls.h, lib/gnutls_cipher.c, lib/gnutls_int.h: 
-       removed all things about exportable algorithms
+       * tests/x509paths/README: updated README on certificate
+       verifications that fail.
 
-2000-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: gnutls_handshake was broken to
-       gnutls_handshake_begin and gnutls_handshake_finish. This will help
-       the use of certificate API to check received certificates
+       * NEWS, src/certtool-common.h, src/certtool-gaa.c,
+       src/certtool-gaa.h, src/certtool.c, src/certtool.gaa: Added new
+       functionality to certtool, and can verify certificates against a
+       list of CAs using the --verify option.
 
-2000-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: added a warning if zlib was not found
+       * lib/x509/verify.c, tests/chainverify.c: Time checks were moved to
+       _gnutls_verify_certificate2().  This allows for straightforward
+       chain verification, and thus better printing of the chain output,
+       although some checks might be performed in duplicate. As a
+       side-effect better errors are returned (or precisely more
+       combinations of verification errors), thus chainverify test was
+       affected.
 
-2000-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: Added default algorithm priorities so it can work
-       even if the user hasn't specified any
+       * lib/x509/verify-high.c: Set memory to zero on allocation.
 
-2000-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_compress_int.c, lib/gnutls_compress_int.h: added
-       compression (ZLIB)
+       * doc/cha-gtls-app.texi: fix in contents.
 
-2000-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * .cvsignore, configure.in, lib/Makefile.am, lib/gnutls.c,
-       lib/gnutls.h, lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cipher.c, lib/gnutls_compress.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_priority.c, src/cli.c, src/port.h, src/serv.c: Added
-       compression support (ZLIB)
+       * doc/examples/examples.h: prototype fix.
 
-2000-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, src/cli.c, src/port.h: SSL3 support was added
+       * doc/examples/ex-verify.c, lib/gnutls_cert.c,
+       lib/includes/gnutls/x509.h, lib/x509/verify-high.c, src/certtool.c: 
+       gnutls_x509_trust_list_init() has an extra argument that allows
+       fine-tuning of the used memory.
 
-2000-12-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: major cleanups
+       * doc/cha-bib.texi: Updated references of rfc5081 to rfc6091.
 
-2000-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-02-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
-       lib/gnutls_cipher.c, lib/gnutls_handshake.c, lib/gnutls_hash_int.c,
-       lib/gnutls_hash_int.h, lib/gnutls_int.h: more ssl3 fixes
+       * doc/cha-cert-auth.texi, doc/cha-gtls-app.texi,
+       doc/examples/ex-verify.c: Documented the new verification functions.
 
-2000-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls.h, lib/gnutls_algorithms.c,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher_int.c, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c: A lot of fixes for SSL3
+       * src/certtool.c, tests/sha2/sha2: Modified output to not confuse
+       earlier scripts.
 
-2000-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: added API
+       * lib/x509/verify.c: Better output when removing certificates from
+       list.
 
-2000-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/API, doc/TODO: documentation update
+       * tests/pkcs1-padding/pkcs1-pad: Modified to work on new certtool -e
+       output.
 
-2000-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_priority.c, src/cli.c, src/serv.c: 
-       Bugfixes mainly for the priority (which was moved to the state)
+       * NEWS, doc/examples/ex-verify.c, lib/auth_cert.h,
+       lib/gnutls_cert.c, lib/gnutls_x509.c, lib/includes/gnutls/compat.h,
+       lib/includes/gnutls/gnutls.h.in, lib/includes/gnutls/x509.h,
+       lib/libgnutls.map, lib/x509/crl.c, lib/x509/x509.c, src/certtool.c,
+       tests/certificate_set_x509_crl.c: The internal subsystem uses the
+       new certificate verification functions.  This has the side effect of
+       deprecating gnutls_certificate_get_x509_crls() and
+       gnutls_certificate_get_x509_cas() that can no longer operation since
+       they relied on internal structures.
 
-2000-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls.h, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c, lib/gnutls_priority.c: Priorities were moved to the
-       state (were global)
+       * NEWS, doc/cha-gtls-app.texi, doc/examples/ex-verify.c,
+       lib/Makefile.am, lib/hash.c, lib/hash.h,
+       lib/includes/gnutls/x509.h, lib/libgnutls.map,
+       lib/x509/Makefile.am, lib/x509/crl.c, lib/x509/verify-high.c,
+       lib/x509/verify.c, lib/x509/x509.c, lib/x509/x509_int.h,
+       src/certtool.c: Added a new API to verify certificates. It is more
+       efficient and can be used to get details about the verification
+       procedure.
 
-2000-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.c, lib/gnutls_cipher.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h: 
-       added ssl3 key generation function - more fixes in ssl3 mac
+       * tests/x509paths/chain: better output in chain output.
 
-2000-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: more bugfixes
+       * NEWS, lib/includes/gnutls/x509.h, lib/x509/crl.c,
+       lib/x509/verify.c, lib/x509/x509.c: exported
+       gnutls_x509_crl_get_raw_issuer_dn()
 
-2000-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_hash_int.c: corrected nasty bugs
+       * lib/x509/x509.c: corrected typos
 
-2000-11-22  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: added support for
-       the MAC used in SSLv3
+       * lib/pakchois/pakchois.c: CKR_CRYPTOKI_ALREADY_INITIALIZED is not
+       treated as an error, and Finalize is not called in that case.
 
-2000-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README: updated readme
+       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/compat.h,
+       lib/openpgp/privkey.c: Reverted removal of
+       gnutls_openpgp_privkey_sign_hash() to retain compatibility with
+       2.10.x. That function is now deprecated instead.
 
-2000-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: removed unneeded check
+       * lib/gnutls_privkey.c: Added checks before importing keys and
+       updated documentation.
 
-2000-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/ssl3-vs-tls: cleanups
+       * tests/suite/Makefile.in: updated Makefile.in
 
-2000-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: updated todo
+       * doc/examples/ex-crq.c, lib/configure.ac,
+       lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/x509.h, src/certtool.c, tests/crq_key_id.c: 
+       fixes in internal build with the new deprecated functions. We allow
+       them to be used since they are inter-dependent.
 
-2000-11-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher_int.c: added ARCFOUR support when using gcrypt
+       * lib/x509/x509_int.h: replaced old gnutls_pk_algorithm.
 
-2000-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/draft-ietf-tls-ciphersuite-01.txt: removed old draft
+       * lib/includes/gnutls/compat.h: depends on gnutls/x509.h to compile.
 
-2000-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/draft-ietf-tls-ciphersuite-02.txt, lib/gnutls_algorithms.c: 
-       added the new tls-ciphersuite draft, and the ciphersuite
-       TLS_DH_anon_RIJNDAEL_CBC_SHA
+       * NEWS, lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
+       lib/x509/crl_write.c: deprecated gnutls_x509_crl_sign(),
+       gnutls_x509_crl_sign2() and
+       gnutls_x509_crq_get_preferred_hash_algorithm().
 
-2000-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/gnutls.c, lib/gnutls.h,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cipher.c, lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h: several cleanups in order to support ssl3
+       * NEWS, lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
+       lib/x509/crq.c: Deprecated gnutls_x509_crq_sign2() and
+       gnutls_x509_crq_sign() in favor for gnutls_x509_crq_privkey_sign().
 
-2000-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * : Moving to release 2
+       * NEWS, lib/libgnutls.map: minor fixes.
 
-2000-11-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/ssl3-vs-tls: added
+       * NEWS, lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
+       lib/libgnutls.map, lib/x509/privkey.c, lib/x509/x509.c,
+       src/certtool.c, tests/cve-2009-1415.c, tests/x509sign-verify.c: 
+       gnutls_x509_crt_verify_hash: DEPRECATED gnutls_x509_crt_verify_data:
+       DEPRECATED gnutls_x509_crt_get_verify_algorithm: DEPRECATED
+       gnutls_x509_crt_get_preferred_hash_algorithm: DEPRECATED Removed the
+       new gnutls_x509_privkey_sign_data2() and
+       gnutls_x509_privkey_sign_hash2().  That functionality will be only in the abstract.h pubkey and privkey
+       structures, to avoid duplication for every certificate type.
 
-2000-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: updated for mhash
+       * src/serv.c: Simplified macro to snprintf() in order to prevent
+       issues caused when snprintf() is a macro itself. Reported and
+       initial patch by Camillo Lugaresi.
 
-2000-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: updated todo
+       * tests/suite/Makefile.in: Revert "Remove, it is generated." This reverts commit de3a601e502b24f047412a161085f7fbd898b3f3 because
+       this file is not automatically generated (not included in top
+       Makefile.am).
 
-2000-11-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2011-01-02  Simon Josefsson <simon@josefsson.org>
 
-       * lib/debug.c, lib/debug.h, lib/gnutls.c, lib/gnutls.h,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cipher.c, lib/gnutls_dh.c, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c: added some support for ssl3 (with mhash only)
+       * lib/m4/hooks.m4: Specify minimum libgcrypt version.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/rfc2818.txt, doc/ssl-draft302.txt: more drafs added
+       * doc/cha-internals.texi: Added discussion on crypto backend for
+       crypto libraries and /dev/crypto.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-21  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/draft-ietf-tls-camellia-00.txt,
-       doc/draft-ietf-tls-https-04.txt, doc/draft-ietf-tls-misty1-00.txt,
-       doc/draft-ietf-tls-seedhas-00.txt,
-       doc/draft-ietf-tn3270e-telnet-tls-05.txt: added more draft's
+       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/abstract.h,
+       lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
+       lib/x509/crq.c, lib/x509/privkey.c, lib/x509/sign.c: Renamed
+       gnutls_privkey_sign_data() to  gnutls_privkey_sign_data2() to match
+       the similar function gnutls_x509_privkey_sign_data2().
+       gnutls_x509_privkey_sign_data() was deprecated.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_der.c: removed main()
+       * lib/gnutls_str.c: Extra sanity check.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: updated todo list
+       * lib/auth_srp_passwd.c: Use snprintf() to print an integer.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.h, lib/gnutls_algorithms.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_int.h: added preliminary support for AES (rijndael)
+       * lib/x509/output.c: Use snprintf() to print IPs. There was a check
+       just before that, but be safe, just in case.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/draft-ietf-tls-openpgp-00.txt: added
-       draft-ietf-tls-openpgp-00.txt
+       * doc/cha-auth.texi: Use SRP for password authentication.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am, doc/draft-ietf-tls-ciphersuite-01.txt: added
-       draft-ietf-tls-ciphersuite-01.txt
+       * doc/cha-auth.texi, lib/gnutls_cert.c, lib/gnutls_extensions.c,
+       lib/gnutls_psk_netconf.c, lib/gnutls_state.c,
+       lib/includes/gnutls/compat.h, lib/x509/privkey.c: Do not include
+       deprecated functions to library documentation.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher_int.c: fix for DES in mcrypt
+       * NEWS, lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h,
+       lib/x509/privkey.c: gnutls_x509_privkey_verify_data() was
+       deprecated.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c: fixes for the server... and
-       change_cipher_spec type packet.
+       * lib/gnutls_pubkey.c: Documented key usage of pubkey.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.c, lib/gnutls.c, lib/gnutls.h, lib/gnutls_algorithms.c,
-       lib/gnutls_cipher.c, lib/gnutls_int.h: Changes in the client in
-       order to interoperate with an openssl server.
+       * lib/gnutls_pubkey.c: Set public key bits on all import functions.
+       Issue reported by Murray Kucheawy.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, acconfig.h, configure.in, lib/gnutls_algorithms.c,
-       lib/gnutls_cipher.c, lib/gnutls_cipher_int.c,
-       lib/gnutls_cipher_int.h, lib/gnutls_hash_int.c, lib/gnutls_int.h: 
-       added hooks for both mhash and mcrypt
+       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/pkcs11.h,
+       lib/pkcs11_int.h, lib/pkcs11_privkey.c: 
+       gnutls_pkcs11_privkey_sign_data(),
+       gnutls_pkcs11_privkey_sign_hash2() and
+       gnutls_pkcs11_privkey_decrypt_data() were removed. The abstract.h
+       functions should be used instead.
 
-2000-11-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_hash_int.c, lib/gnutls_hash_int.h, lib/gnutls_int.h: 
-       clean-ups
+       * NEWS, lib/gnutls_privkey.c, lib/includes/gnutls/openpgp.h,
+       lib/openpgp/gnutls_openpgp.h, lib/openpgp/pgp.c,
+       lib/openpgp/privkey.c: Removed the newly added functions:
+       gnutls_openpgp_privkey_sign_hash2(),
+       gnutls_openpgp_privkey_sign_data2(),
+       gnutls_openpgp_crt_verify_hash() That way the operations in
+       abstract.h should be used to get the same functionality, and API
+       will be kept simple and easier to maintain. The corresponding
+       gnutls_x509_* are kept for backwards compatibility.
 
-2000-11-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_buffers.c, lib/gnutls_cipher.c, lib/gnutls_int.h: 
-       corrected bugs in hmac and more.
+       * lib/gnutls_sig.c: Do not be strict on RSA hash algorithm selection
+       for signatures.
 
-2000-11-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: corrected problem in our PRF function
+       * lib/gnutls_cert.h, lib/gnutls_sig.c, lib/gnutls_x509.c: Removed
+       unneeded definitions, and more careful deinitializations in
+       parse_der_cert_mem().
 
-2000-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_int.h: removed mhash definitions
+       * tests/pathlen/ca-no-pathlen.pem,
+       tests/pathlen/no-ca-or-pathlen.pem: updated certificates to account
+       for extra null byte added in negative numbers.
 
-2000-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_hash_int.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c: more fixes
+       * tests/cve-2009-1415.c: Account for GNUTLS_E_PK_SIG_VERIFY_FAILED.
 
-2000-11-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls.c, lib/gnutls_cipher.c,
-       lib/gnutls_hash_int.c, lib/gnutls_kx.c: minor fixes and cleanups
+       * lib/gnutls_privkey.c: Corrected bug in gnutls_privkey_sign_data().
 
-2000-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c: more fixes...
+       * lib/gnutls_sig.c: some fixes in pk_prepare_hash().
 
-2000-11-02  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO, lib/gnutls.c, lib/gnutls_cipher.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c: more fixes and bugs introduced
+       * NEWS, lib/gnutls_pubkey.c, lib/openpgp/pgp.c, lib/x509/privkey.c,
+       lib/x509/verify.c, lib/x509/x509.c, tests/x509sign-verify.c: The
+       verification functions now return a GNUTLS_E_PK_SIG_VERIFY_FAILED on
+       signature verification error.
 
-2000-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_kx.c: cvs should stop messing with MY files
+       * src/p11tool-gaa.c, src/p11tool.gaa: The default input format for
+       p11tool is PEM.
 
-2000-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_kx.c: [no log message]
+       * lib/gnutls_pubkey.c: importing a pubkey from raw params will set
+       the bits field correctly.
 
-2000-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls_algorithms.c, lib/gnutls_dh.c,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_handshake.c,
-       lib/gnutls_kx.c, lib/gnutls_kx.h, src/cli.c, src/port.h: Some more
-       fixes and additions in order to interoperate with openssl
+       * NEWS: Documented the addtion of gnutls_pubkey_import_privkey() and
+       gnutls_pubkey_verify_data()
 
-2000-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/TODO: added a small todo list
+       * lib/gnutls_pubkey.c, lib/includes/gnutls/abstract.h,
+       lib/libgnutls.map, lib/x509/verify.c, tests/x509sign-verify.c: Added
+       gnutls_pubkey_verify_data and test vectors.
 
-2000-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: memory leaks and overruns eliminated
+       * doc/errcodes.c, doc/examples/ex-alert.c,
+       doc/examples/ex-cert-select-pkcs11.c,
+       doc/examples/ex-cert-select.c, doc/examples/ex-client-psk.c,
+       doc/examples/ex-client-resume.c, doc/examples/ex-client-srp.c,
+       doc/examples/ex-client-tlsia.c, doc/examples/ex-client1.c,
+       doc/examples/ex-client2.c, doc/examples/ex-crq.c,
+       doc/examples/ex-pkcs12.c, doc/examples/ex-rfc2818.c,
+       doc/examples/ex-serv-anon.c, doc/examples/ex-serv-pgp.c,
+       doc/examples/ex-serv-psk.c, doc/examples/ex-serv-srp.c,
+       doc/examples/ex-serv1.c, doc/examples/ex-session-info.c,
+       doc/examples/ex-verify.c, doc/examples/ex-x509-info.c,
+       doc/examples/examples.h, doc/examples/tcp.c, doc/printlist.c,
+       guile/src/core.c, guile/src/extra.c, guile/src/utils.h,
+       lib/abstract_int.h, lib/auth_anon.c, lib/auth_cert.c,
+       lib/auth_cert.h, lib/auth_dh_common.c, lib/auth_dh_common.h,
+       lib/auth_dhe.c, lib/auth_dhe_psk.c, lib/auth_psk.c,
+       lib/auth_psk_passwd.c, lib/auth_psk_passwd.h, lib/auth_rsa.c,
+       lib/auth_rsa_export.c, lib/auth_srp.c, lib/auth_srp.h,
+       lib/auth_srp_passwd.c, lib/auth_srp_passwd.h, lib/auth_srp_rsa.c,
+       lib/auth_srp_sb64.c, lib/crypto-api.c, lib/crypto.c, lib/crypto.h,
+       lib/cryptodev.c, lib/debug.c, lib/ext_cert_type.c,
+       lib/ext_max_record.c, lib/ext_safe_renegotiation.c,
+       lib/ext_safe_renegotiation.h, lib/ext_server_name.c,
+       lib/ext_session_ticket.c, lib/ext_signature.c, lib/ext_signature.h,
+       lib/ext_srp.c, lib/gcrypt/cipher.c, lib/gcrypt/init.c,
+       lib/gcrypt/mac.c, lib/gcrypt/mpi.c, lib/gcrypt/pk.c,
+       lib/gnutls_alert.c, lib/gnutls_algorithms.c,
+       lib/gnutls_algorithms.h, lib/gnutls_anon_cred.c, lib/gnutls_auth.c,
+       lib/gnutls_auth.h, lib/gnutls_buffers.c, lib/gnutls_buffers.h,
+       lib/gnutls_cert.c, lib/gnutls_cert.h, lib/gnutls_cipher.c,
+       lib/gnutls_cipher.h, lib/gnutls_cipher_int.c,
+       lib/gnutls_cipher_int.h, lib/gnutls_compress.c,
+       lib/gnutls_compress.h, lib/gnutls_constate.c,
+       lib/gnutls_constate.h, lib/gnutls_datum.c, lib/gnutls_datum.h,
+       lib/gnutls_db.c, lib/gnutls_db.h, lib/gnutls_dh.c, lib/gnutls_dh.h,
+       lib/gnutls_dh_primes.c, lib/gnutls_errors.c,
+       lib/gnutls_extensions.c, lib/gnutls_extensions.h,
+       lib/gnutls_global.c, lib/gnutls_handshake.c,
+       lib/gnutls_handshake.h, lib/gnutls_hash_int.c,
+       lib/gnutls_hash_int.h, lib/gnutls_int.h, lib/gnutls_kx.c,
+       lib/gnutls_kx.h, lib/gnutls_mbuffers.c, lib/gnutls_mbuffers.h,
+       lib/gnutls_mem.h, lib/gnutls_mpi.c, lib/gnutls_mpi.h,
+       lib/gnutls_num.c, lib/gnutls_pk.c, lib/gnutls_pk.h,
+       lib/gnutls_priority.c, lib/gnutls_privkey.c, lib/gnutls_psk.c,
+       lib/gnutls_psk_netconf.c, lib/gnutls_pubkey.c, lib/gnutls_record.c,
+       lib/gnutls_record.h, lib/gnutls_rsa_export.c, lib/gnutls_session.c,
+       lib/gnutls_session_pack.c, lib/gnutls_session_pack.h,
+       lib/gnutls_sig.c, lib/gnutls_sig.h, lib/gnutls_srp.c,
+       lib/gnutls_srp.h, lib/gnutls_state.c, lib/gnutls_state.h,
+       lib/gnutls_str.c, lib/gnutls_str.h, lib/gnutls_supplemental.c,
+       lib/gnutls_supplemental.h, lib/gnutls_ui.c, lib/gnutls_v2_compat.c,
+       lib/gnutls_v2_compat.h, lib/gnutls_x509.c, lib/gnutls_x509.h,
+       lib/includes/gnutls/abstract.h, lib/includes/gnutls/compat.h,
+       lib/includes/gnutls/crypto.h, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/gnutlsxx.h, lib/includes/gnutls/openpgp.h,
+       lib/includes/gnutls/pkcs11.h, lib/includes/gnutls/pkcs12.h,
+       lib/includes/gnutls/x509.h, lib/locks.c, lib/nettle/cipher.c,
+       lib/nettle/egd.c, lib/nettle/mpi.c, lib/nettle/pk.c,
+       lib/nettle/rnd.c, lib/opencdk/armor.c, lib/opencdk/context.h,
+       lib/opencdk/dummy.c, lib/opencdk/filters.h, lib/opencdk/hash.c,
+       lib/opencdk/kbnode.c, lib/opencdk/keydb.c, lib/opencdk/keydb.h,
+       lib/opencdk/literal.c, lib/opencdk/main.c, lib/opencdk/main.h,
+       lib/opencdk/misc.c, lib/opencdk/new-packet.c,
+       lib/opencdk/opencdk.h, lib/opencdk/packet.h, lib/opencdk/pubkey.c,
+       lib/opencdk/read-packet.c, lib/opencdk/seskey.c,
+       lib/opencdk/sig-check.c, lib/opencdk/stream.c,
+       lib/opencdk/stream.h, lib/opencdk/verify.c,
+       lib/opencdk/write-packet.c, lib/openpgp/compat.c,
+       lib/openpgp/extras.c, lib/openpgp/gnutls_openpgp.c,
+       lib/openpgp/gnutls_openpgp.h, lib/openpgp/openpgp_int.h,
+       lib/openpgp/output.c, lib/openpgp/pgp.c, lib/openpgp/pgpverify.c,
+       lib/openpgp/privkey.c, lib/pakchois/pakchois.c,
+       lib/pakchois/pakchois.h, lib/pakchois/pakchois11.h, lib/pkcs11.c,
+       lib/pkcs11_int.h, lib/pkcs11_privkey.c, lib/pkcs11_secret.c,
+       lib/pkcs11_write.c, lib/random.c, lib/system.c, lib/system.h,
+       lib/x509/common.c, lib/x509/common.h, lib/x509/crl.c,
+       lib/x509/crl_write.c, lib/x509/crq.c, lib/x509/dn.c,
+       lib/x509/extensions.c, lib/x509/mpi.c, lib/x509/output.c,
+       lib/x509/pbkdf2-sha1.c, lib/x509/pbkdf2-sha1.h, lib/x509/pkcs12.c,
+       lib/x509/pkcs12_bag.c, lib/x509/pkcs12_encr.c, lib/x509/pkcs7.c,
+       lib/x509/privkey.c, lib/x509/privkey_pkcs8.c,
+       lib/x509/rfc2818_hostname.c, lib/x509/sign.c, lib/x509/verify.c,
+       lib/x509/x509.c, lib/x509/x509_int.h, lib/x509/x509_write.c,
+       lib/x509_b64.c, lib/x509_b64.h, libextra/ext_inner_application.c,
+       libextra/ext_inner_application.h, libextra/gnutls_extra.c,
+       libextra/gnutls_ia.c, libextra/gnutls_openssl.c,
+       libextra/includes/gnutls/extra.h,
+       libextra/includes/gnutls/openssl.h, libextra/openssl_compat.c,
+       libextra/openssl_compat.h, maint.mk, src/benchmark.c,
+       src/certtool-cfg.c, src/certtool-cfg.h, src/certtool-common.c,
+       src/certtool-common.h, src/certtool.c, src/cli.c, src/common.c,
+       src/common.h, src/crypt.c, src/p11tool.c, src/p11tool.h,
+       src/pkcs11.c, src/prime.c, src/psk.c, src/serv.c, src/tests.c,
+       src/tests.h, src/tls_test.c, tests/anonself.c,
+       tests/certificate_set_x509_crl.c, tests/chainverify.c,
+       tests/crq_apis.c, tests/crq_key_id.c, tests/cve-2008-4989.c,
+       tests/dhepskself.c, tests/dn.c, tests/dn2.c, tests/gc.c,
+       tests/mini-eagain.c, tests/mini-x509-rehandshake.c,
+       tests/mini-x509.c, tests/mini.c, tests/mpi.c,
+       tests/nul-in-x509-names.c, tests/openpgp-auth.c,
+       tests/openpgp-keyring.c, tests/openpgp_test.c, tests/openpgpself.c,
+       tests/openssl.c, tests/pgps2kgnu.c, tests/pkcs12_encode.c,
+       tests/pkcs12_s2k.c, tests/pkcs12_s2k_pem.c, tests/pskself.c,
+       tests/resume.c, tests/safe-renegotiation/srn0.c,
+       tests/safe-renegotiation/srn1.c, tests/safe-renegotiation/srn2.c,
+       tests/safe-renegotiation/srn3.c, tests/safe-renegotiation/srn4.c,
+       tests/safe-renegotiation/srn5.c, tests/set_pkcs12_cred.c,
+       tests/simple.c, tests/tlsia.c, tests/utils.c, tests/utils.h,
+       tests/x509_altname.c, tests/x509_test.c, tests/x509dn.c,
+       tests/x509self.c, tests/x509sign-verify.c: Indented code. Use same
+       indentation but with -nut to avoid usage of tabs. In several editors
+       tabs can be configured not to be 8 spaces and this produces
+       artifacts with the current indentation that is a mixture of tabs and
+       spaces.
 
-2000-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_handshake.c: corrected bug which made us to send the
-       double bytes of ciphersuites we had.
+       * lib/gnutls_privkey.c: _gnutls_privkey_get_public_mpis() handles
+       openpgp keys.
 
-2000-11-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/defines.h, lib/gnutls.c, lib/gnutls_algorithms.c,
-       lib/gnutls_buffers.c, lib/gnutls_cipher.c, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c: added some preliminary support for DHE_DSS and
-       DHE_RSA algorithms... of course not certificates are used
+       * lib/abstract_int.h, lib/gnutls_privkey.c, lib/gnutls_pubkey.c,
+       lib/includes/gnutls/abstract.h, lib/libgnutls.map: Added
+       gnutls_pubkey_import_privkey(), that will copy the public key from a
+       gnutls_privkey_t structure.
 
-2000-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: some need gcry_ functions added. (for malloc etc)
+       * NEWS, lib/libgnutls.map: Do not export the non-existant symbols
+       gnutls_pkcs11_privkey_sign_hash and gnutls_privkey_sign_hash.
 
-2000-10-31  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/HACKING, lib/defines.h, lib/gnutls.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, src/port.h, src/serv.c: 
-       added assert() and some bug fixes
+       * NEWS: documented new functions
 
-2000-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/HACKING: some kind of updates
+       * NEWS: Added new functions.
 
-2000-10-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_algorithms.h, lib/gnutls_handshake.c,
-       lib/gnutls_hash_int.c, lib/gnutls_int.h, lib/gnutls_kx.c: added
-       ability to receive certificates...
+       * lib/libgnutls.map: Added new functions.
 
-2000-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, doc/HACKING: [no log message]
+       * lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h: 
+       de-deprecated gnutls_x509_crt_verify_hash()
 
-2000-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/README.der: added Tarun's README.der
+       * lib/includes/gnutls/openpgp.h, lib/libgnutls.map,
+       lib/openpgp/pgp.c, tests/x509sign-verify.c: Added
+       gnutls_openpgp_crt_verify_hash().
 
-2000-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher_int.c, lib/gnutls_cipher_int.h: added missing
-       files. They are to handle foreign encryption functions
+       * lib/includes/gnutls/pkcs11.h, lib/pkcs11_privkey.c: added
+       gnutls_privkey_sign_hash2()
 
-2000-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls_der.c, lib/gnutls_der.h: Added Tarun's
-       files
+       * lib/gnutls_privkey.c, lib/gnutls_sig.c, lib/gnutls_sig.h,
+       lib/openpgp/privkey.c, lib/pkcs11_privkey.c, lib/x509/privkey.c: 
+       Simplified preparation of signing code.
 
-2000-10-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS, configure.in, lib/gnutls_cert.lex, src/Makefile.am,
-       src/cli.c: added a DER parser from Tarun and updated authors
+       * lib/gnutls_privkey.c, lib/gnutls_pubkey.c, lib/gnutls_sig.c,
+       lib/gnutls_sig.h, lib/openpgp/gnutls_openpgp.h,
+       lib/openpgp/privkey.c, lib/pkcs11_int.h, lib/pkcs11_privkey.c,
+       lib/x509/Makefile.am, lib/x509/privkey.c, lib/x509/sign.c,
+       lib/x509/sign.h: deprecated x509/sign.h and moved functionality of
+       it in gnutls_sig.h.
 
-2000-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/Makefile.am: changed in order for rfc's to be included in the
-       distribution
+       * lib/x509/sign.c: pk_hash_data() will fail unless DSA or RSA are
+       specified.
 
-2000-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, acinclude.m4, configure.in: added checks for gcrypt
+       * lib/x509/privkey.c: better comments
 
-2000-10-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/rfc2246.txt, doc/rfc2459.txt: Added rfc's which refer to what
-       we are implementing
+       * lib/openpgp/gnutls_openpgp.c, lib/openpgp/privkey.c: 
+       reorganization of the privkey_ functions().
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c: corrected bug which made gnutls to wait for a second
-       closure alert after having received the first.
+       * lib/gnutls_privkey.c, lib/includes/gnutls/abstract.h,
+       lib/includes/gnutls/compat.h, lib/includes/gnutls/openpgp.h,
+       lib/includes/gnutls/x509.h, lib/libgnutls.map,
+       lib/openpgp/gnutls_openpgp.c, lib/x509/privkey.c: Introduced
+       gnutls_*_privkey_sign_hash2() that is a high level function to
+       produce signatures.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/serv.c: [no log message]
+       * lib/gnutls_privkey.c, lib/pkcs11_privkey.c, lib/x509/privkey.c,
+       lib/x509/sign.c, lib/x509/sign.h: Separated the sign_data functions
+       to a hashing phase, a preparing phase, and the actual signing.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/.cvsignore, lib/Makefile.am, lib/gnutls.c,
-       lib/gnutls_cipher.c, lib/gnutls_dh.c, lib/gnutls_handshake.c,
-       lib/gnutls_hash.c, lib/gnutls_hash.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c: The encryption api was fixed and gnutls_cipher.c
-       was cleaned up a bit.
+       * NEWS: documented deprecated functions.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_hash_int.c, lib/gnutls_hash_int.h: there files were
-       renamed
+       * lib/includes/gnutls/compat.h, lib/includes/gnutls/openpgp.h,
+       lib/includes/gnutls/pkcs11.h: All the sign hash functions were
+       deprecated.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/.cvsignore, src/.cvsignore: corrected cvsignore files
+       * lib/includes/gnutls/compat.h, lib/includes/gnutls/x509.h: 
+       gnutls_x509_privkey_sign_hash() is dangerous and was deprecated.
+       Added some text explaining why some functions were deprecated.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/.cvsignore: [no log message]
+       * NEWS: documented previous update.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README, configure.in, src/Makefile.am: removed mhash support and
-       some changes in the docs
+       * lib/x509/privkey.c, lib/x509/x509.c: export_raw() functions now
+       add leading zero in mpis.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-07  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_hash.c: bugfixes in gcrypt md functions handling
+       * NEWS: Add.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-07  Simon Josefsson <simon@josefsson.org>
 
-       * lib/Makefile.am, lib/gnutls.c, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_hash.c, lib/gnutls_hash.h,
-       lib/gnutls_int.h: Added support for the gcrypt hash and hmac
-       functions. Mhash support is almost removed.
+       * lib/includes/gnutls/crypto.h: C++ fixes, tiny patch from "Brendan
+       Doherty" <brendand@gentrack.com>.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-07  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_dh.c, lib/gnutls_dh.h, lib/gnutls_kx.c: corrected the
-       problem with the double underscore
+       * gl/m4/getdelim.m4, gl/m4/getline.m4, gl/m4/memchr.m4,
+       gl/m4/printf.m4, gl/m4/stdint.m4, lib/gl/m4/fcntl-o.m4,
+       lib/gl/m4/iconv.m4, lib/gl/m4/intdiv0.m4, lib/gl/m4/memchr.m4,
+       lib/gl/m4/memmem.m4, lib/gl/m4/printf.m4, lib/gl/m4/stdint.m4: 
+       Update gnulib files.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-07  Simon Josefsson <simon@josefsson.org>
 
-       * .cvsignore, doc/.cvsignore, lib/.cvsignore, src/.cvsignore: added
-       .cvsignore files
+       * NEWS, configure.ac, lib/configure.ac, lib/m4/hooks.m4,
+       libextra/configure.ac: Bump versions.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-07  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in: updated version number
+       * ChangeLog: Generated.
 
-2000-10-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-07  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_dh.c, lib/gnutls_kx.c: removed double underscores
+       * configure.ac, lib/configure.ac, lib/m4/hooks.m4,
+       libextra/configure.ac: Bump versions.
 
-2000-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * README: added some needed stuff
+       * ChangeLog: Generated.
 
-2000-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * doc/HACKING: outdated
+       * tests/Makefile.am: Don't fail on 'make distcheck'.
 
-2000-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_priority.c: the file that handles some of the priority
-       stuff (most of the API things)
+       * NEWS: Version 2.11.6.
 
-2000-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in, lib/Makefile.am, lib/defines.h, lib/gnutls.h,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cipher.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, src/cli.c, src/port.h, src/serv.c: Added support
-       for priorities. Some function names were renamed to be more
-       rational.
+       * lib/gnutls_str.c: Indent.
 
-2000-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_algorithms.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_kx.c: some fixes in the comments, and
-       replaced KX_* with GNUTLS_KX_*
+       * NEWS: documented SSL 3.0 record version change.
 
-2000-10-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_kx.c: more inline documentation
+       * lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_priority.c: 
+       SSL3_RECORD_VERSION priority option is now the default. That is in
+       order to not confuse non TLS 1.2 compliant implementations that
+       don't like a TLS 1.2 record.
 
-2000-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS: added my name
+       * lib/gnutls_str.c: simplified escape and unescape.
 
-2000-10-07  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cipher.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_kx.c: Added some kind of priorities for algorithms. Still
-       experimental.
+       * THANKS: Added Michael.
 
-2000-05-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_int.h, src/cli.c, src/port.h, src/serv.c: Improved
-       client/server examples.
+       * cfg.mk, lib/gnutls_priority.c, lib/gnutls_state.c,
+       lib/includes/gnutls/compat.h, lib/includes/gnutls/gnutls.h.in,
+       lib/includes/gnutls/pkcs11.h, lib/nettle/rnd.c, lib/pkcs11.c,
+       lib/pkcs11_int.h, lib/pkcs11_secret.c, lib/pkcs11_write.c,
+       lib/x509/verify.c, src/certtool-common.c, src/certtool-common.h,
+       src/certtool.c, src/cli.c, src/common.c, src/p11tool.c,
+       src/p11tool.h, src/pkcs11.c, src/serv.c, tests/chainverify.c,
+       tests/openpgp-auth.c: Indent code.
 
-2000-04-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_int.h: removed an unneeded variable.
+       * maint.mk: Update gnulib files.
 
-2000-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/debug.c, lib/gnutls.c, lib/gnutls.h, lib/gnutls_algorithms.c,
-       lib/gnutls_buffers.c, lib/gnutls_cipher.c, lib/gnutls_compress.c,
-       lib/gnutls_dh.c, lib/gnutls_errors.c, lib/gnutls_handshake.c,
-       lib/gnutls_kx.c, lib/gnutls_num.c, lib/gnutls_plaintext.c,
-       src/cli.c, src/serv.c: Added copyright notices.
+       * gl/override/top/maint.mk.diff: Remove.
 
-2000-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/defines.h, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       src/Makefile.am, src/port.h: [no log message]
+       * .gitignore: Update.
 
-2000-04-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/defines.h, lib/gnutls.c, lib/gnutls_algorithms.c,
-       lib/gnutls_algorithms.h, lib/gnutls_cipher.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, src/Makefile.am: Better
-       mac algorithms handling.
+       * lib/gnutls_priority.c, lib/pkcs11_secret.c, src/p11tool.c,
+       src/p11tool.gaa: Fix syntax-check nits.
 
-2000-04-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * doc/HACKING, lib/defines.h, lib/gnutls.c,
-       lib/gnutls_algorithms.h, lib/gnutls_buffers.c,
-       lib/gnutls_buffers.h, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_handshake.h, lib/gnutls_int.h, lib/gnutls_kx.c,
-       src/Makefile.am, src/port.h: Changes in handshake messages handling.
+       * .x-sc_bindtextdomain: Ignore more.
 
-2000-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-06  Simon Josefsson <simon@josefsson.org>
 
-       * lib/gnutls_cipher.c, lib/gnutls_int.h: [no log message]
+       * GNUmakefile, build-aux/gendocs.sh, build-aux/pmccabe.css,
+       build-aux/pmccabe2html, gl/Makefile.am, gl/arpa_inet.in.h,
+       gl/float+.h, gl/gettext.h, gl/inet_ntop.c, gl/intprops.h,
+       gl/m4/alloca.m4, gl/m4/arpa_inet_h.m4, gl/m4/getdelim.m4,
+       gl/m4/getline.m4, gl/m4/getpass.m4, gl/m4/gnulib-common.m4,
+       gl/m4/gnulib-comp.m4, gl/m4/mmap-anon.m4, gl/m4/printf.m4,
+       gl/m4/readline.m4, gl/m4/string_h.m4, gl/m4/sys_ioctl_h.m4,
+       gl/m4/sys_select_h.m4, gl/m4/sys_socket_h.m4, gl/m4/unistd_h.m4,
+       gl/m4/vasnprintf.m4, gl/m4/wchar_h.m4, gl/printf-parse.c,
+       gl/printf-parse.h, gl/stdint.in.h, gl/stdio.in.h, gl/stdlib.in.h,
+       gl/string.in.h, gl/sys_select.in.h, gl/sys_socket.in.h,
+       gl/tests/Makefile.am, gl/tests/init.sh,
+       gl/tests/test-select-stdin.c, gl/tests/test-select.c,
+       gl/tests/test-update-copyright.sh, gl/tests/verify.h, gl/time.in.h,
+       gl/unistd.in.h, gl/vasnprintf.c, gl/verify.h, gl/wchar.in.h,
+       lib/gl/Makefile.am, lib/gl/float+.h, lib/gl/gettext.h,
+       lib/gl/m4/alloca.m4, lib/gl/m4/glibc2.m4, lib/gl/m4/glibc21.m4,
+       lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4,
+       lib/gl/m4/iconv.m4, lib/gl/m4/memmem.m4, lib/gl/m4/mmap-anon.m4,
+       lib/gl/m4/printf.m4, lib/gl/m4/string_h.m4,
+       lib/gl/m4/sys_socket_h.m4, lib/gl/m4/unistd_h.m4,
+       lib/gl/m4/vasnprintf.m4, lib/gl/m4/wchar_h.m4,
+       lib/gl/printf-parse.c, lib/gl/printf-parse.h, lib/gl/stdint.in.h,
+       lib/gl/stdio.in.h, lib/gl/stdlib.in.h, lib/gl/string.in.h,
+       lib/gl/sys_socket.in.h, lib/gl/tests/Makefile.am,
+       lib/gl/tests/init.sh, lib/gl/tests/intprops.h,
+       lib/gl/tests/verify.h, lib/gl/time.in.h, lib/gl/unistd.in.h,
+       lib/gl/vasnprintf.c, lib/gl/verify.h, lib/gl/wchar.in.h,
+       libextra/gl/m4/gnulib-common.m4, maint.mk: Update gnulib files.
 
-2000-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c: [no log message]
+       * tests/Makefile.am: Temporarily remove gendh test. It takes
+       extremely long time under valgrind.
 
-2000-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c, lib/gnutls_dh.c,
-       lib/gnutls_handshake.c, lib/gnutls_int.h, lib/gnutls_kx.c,
-       lib/gnutls_plaintext.c, lib/gnutls_plaintext.h, src/Makefile.am,
-       src/port.h: Corrected bug in gnutls_cipher.c that caused the library
-       to fail in certain (random) situations.
+       * NEWS, lib/gnutls_sig.c, lib/x509/common.c, lib/x509/common.h,
+       lib/x509/mpi.c, lib/x509/sign.c, lib/x509/verify.c: Use ASN1_NULL
+       when writing parameters for RSA signatures. This makes us comply
+       with RFC3279. Reported by Michael Rommel.
 
-2000-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-05  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_kx.c, src/serv.c: Better memory allocation in key
-       exchange.
+       * NEWS, src/serv.c: Corrected buffer overflow in gnutls-serv by
+       Tomas Mraz.  The gnutls-serv uses fixed allocated buffer for the response which
+       can be pretty long if a client certificate is presented to it and
+       the http header is large. This causes buffer overflow and heap
+       corruption which then leads to random segfaults or aborts.  It was reported originally here:
+       https://bugzilla.redhat.com/show_bug.cgi?id=659259 The attached patch changes sprintf calls in peer_print_info() to
+       snprintf so the buffer is never overflowed.
 
-2000-04-12  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_handshake.c, lib/gnutls_int.h,
-       lib/gnutls_kx.c, src/cli.c, src/port.h: Some changes in peer's
-       version checks.
+       * lib/m4/hooks.m4: increased revision
 
-2000-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_cipher.c, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, src/port.h: Corrected bugs in MAC calculation.
+       * src/Makefile.am: Added p11tool.h
 
-2000-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls_cipher.c, lib/gnutls_errors.h, lib/gnutls_handshake.c: 
-       Corrected bugs when setting cipher and mac.
+       * NEWS: released 2.11.5
 
-2000-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/Makefile.am, lib/gnutls.c, lib/gnutls.h, lib/gnutls_errors.c,
-       lib/gnutls_errors.h, lib/gnutls_handshake.c, lib/gnutls_kx.c,
-       lib/gnutls_kx.h, src/serv.c: Better error control. Moved key
-       exchange functions to gnutls_kx.c/h
+       * doc/cha-internals.texi: escaped chars.
 
-2000-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README: [no log message]
+       * doc/cha-internals.texi: Updated extension writing code. Still not
+       clear enough.
 
-2000-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_handshake.c, src/port.h: [no log message]
+       * doc/cha-cert-auth.texi: PKCS #11 fixes
 
-2000-04-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-12-01  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/gnutls.c, lib/gnutls_handshake.c, src/port.h: [no log message]
+       * doc/examples/ex-cert-select-pkcs11.c: Corrected pkcs11 example
+       URLs
 
-2000-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.c, lib/debug.h, lib/gnutls_dh.c,
-       lib/gnutls_handshake.c, src/port.h: Bugfixes in the diffie hellman.
+       * src/pkcs11.c: Prefix mechanism number with 0x.
 
-2000-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * lib/debug.c, lib/defines.h, lib/gnutls.c,
-       lib/gnutls_algorithms.c, lib/gnutls_buffers.c, lib/gnutls_cipher.c,
-       lib/gnutls_compress.c, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_errors.c, lib/gnutls_errors.h, lib/gnutls_handshake.c,
-       lib/gnutls_int.h, lib/gnutls_num.c, lib/gnutls_plaintext.c,
-       src/port.h: Added anonymous diffie-hellman key exchange. It does not
-       work yet, and the whole code is mess.
+       * lib/pakchois/pakchois11.h, src/pkcs11.c: Added camellia and
+       SHA224.
 
-2000-04-10  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, lib/Makefile.am, lib/gnutls.c,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_cipher.c, lib/gnutls_dh.c, lib/gnutls_dh.h,
-       lib/gnutls_handshake.c, lib/gnutls_int.h: Added the basics for key
-       exchange.
+       * configure.ac, lib/configure.ac, lib/nettle/rnd.c: Use rusage if
+       present.  Moved check to correct config and included resource.h
+       header.
 
-2000-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * COPYING: Added ChangeLog and COPYING.
+       * lib/nettle/rnd.c: More details on the text
 
-2000-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, src/cli.c, src/serv.c: [no log message]
+       * lib/pkcs11.c: Corrected copyright statement
 
-2000-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-27  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Makefile.am, doc/Makefile.am, lib/Makefile.am, lib/debug.c,
-       lib/debug.h, lib/defines.h, lib/gnutls.c, lib/gnutls.h,
-       lib/gnutls_algorithms.c, lib/gnutls_algorithms.h,
-       lib/gnutls_buffers.c, lib/gnutls_buffers.h, lib/gnutls_cipher.c,
-       lib/gnutls_cipher.h, lib/gnutls_compress.c, lib/gnutls_compress.h,
-       lib/gnutls_dh.c, lib/gnutls_errors.c, lib/gnutls_errors.h,
-       lib/gnutls_handshake.c, lib/gnutls_handshake.h, lib/gnutls_int.h,
-       lib/gnutls_num.c, lib/gnutls_num.h, lib/gnutls_plaintext.c,
-       lib/gnutls_plaintext.h, src/Makefile.am, src/debug.c, src/debug.h,
-       src/defines.h, src/gnutls.c, src/gnutls.h, src/gnutls_algorithms.c,
-       src/gnutls_algorithms.h, src/gnutls_buffers.c,
-       src/gnutls_buffers.h, src/gnutls_cipher.c, src/gnutls_cipher.h,
-       src/gnutls_compress.c, src/gnutls_compress.h, src/gnutls_dh.c,
-       src/gnutls_errors.c, src/gnutls_errors.h, src/gnutls_handshake.c,
-       src/gnutls_handshake.h, src/gnutls_int.h, src/gnutls_num.c,
-       src/gnutls_num.h, src/gnutls_plaintext.c, src/gnutls_plaintext.h: 
-       Changed directory structure.
+       * lib/nettle/rnd.c: Corrected copyright header. Added Niels.
 
-2000-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in: corrected configure script
+       * NEWS, lib/gnutls_cert.c, lib/includes/gnutls/x509.h,
+       lib/x509/verify.c, src/certtool.c, src/cli.c, tests/chainverify.c: 
+       Reverted default behavior for verification and introduced
+       GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT.  Thus by default V1
+       trusted CAs are allowed, unless the new flag is specified.
 
-2000-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-25  Simon Josefsson <simon@josefsson.org>
 
-       * configure.in: [no log message]
+       * NEWS: Typo.
 
-2000-04-09  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-25  Simon Josefsson <simon@josefsson.org>
 
-       * src/gnutls.c, src/gnutls_handshake.c, src/gnutls_handshake.h,
-       src/gnutls_int.h, src/port.h: corrected bugs in handshake.
+       * tests/suite/Makefile.in: Remove, it is generated.
 
-2000-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-25  Simon Josefsson <simon@josefsson.org>
 
-       * src/gnutls.c, src/gnutls_algorithms.c, src/gnutls_algorithms.h,
-       src/gnutls_cipher.c, src/gnutls_handshake.c,
-       src/gnutls_handshake.h, src/gnutls_int.h: Added some basics for key
-       exchange.
+       * README: No space at eol.
 
-2000-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-25  Simon Josefsson <simon@josefsson.org>
 
-       * src/gnutls_dh.c: I've add gnutls_dh.c but is not ready yet, I have
-       to eat something first:) It is taken from gsti.
+       * tests/safe-renegotiation/Makefile.am: Fix syntax-check warning.
 
-2000-04-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-25  Simon Josefsson <simon@josefsson.org>
 
-       * src/cli.c, src/debug.c, src/gnutls.c, src/gnutls_algorithms.c,
-       src/gnutls_buffers.c, src/gnutls_cipher.c, src/gnutls_compress.c,
-       src/gnutls_errors.c, src/gnutls_errors.h, src/gnutls_handshake.c,
-       src/gnutls_handshake.h, src/gnutls_int.h, src/gnutls_num.c,
-       src/gnutls_plaintext.c, src/port.h, src/serv.c: Handshake
-       implementation was improved. Still no key exchange algorithm.
+       * cfg.mk: Ignore tests/suite for syntax-checks, not our code.
 
-2000-03-30  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-25  Simon Josefsson <simon@josefsson.org>
 
-       * src/gnutls.c, src/gnutls_algorithms.c, src/gnutls_algorithms.h,
-       src/gnutls_cipher.c: Corrected bugs in gnutls_algorithms and added
-       _gnutls_get_iv_size().
+       * README: Recommend git format-patch rather than git diff.
 
-2000-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-24  Jeffrey Walton <noloader@gmail.com>
 
-       * src/Makefile.am, src/gnutls_algorithms.c,
-       src/gnutls_algorithms.h, src/gnutls_cipher.c: Algorithms/Ciphers
-       interface has changes.
+       * README: Attached is a proposed modification to the README file,
+       including recent comments by Simon.
 
-2000-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-23  Simon Josefsson <simon@josefsson.org>
 
-       * src/cli.c, src/gnutls.c, src/gnutls_buffers.c,
-       src/gnutls_errors.c, src/serv.c: The gnutls_recv() semantics were
-       changed. It may return less data than the specified. It operates
-       similar to read().
+       * guile/src/Makefile.am: Fix dependencies, fixes parallel builds.  Tiny patch from Graham Gower <graham.gower@gmail.com>.
 
-2000-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-19  Simon Josefsson <simon@josefsson.org>
 
-       * src/gnutls.c, src/gnutls_handshake.c, src/gnutls_handshake.h,
-       src/port.h: Server now generates a session_id.
+       * doc/Makefile.am: Remove file.
 
-2000-03-29  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-19  Simon Josefsson <simon@josefsson.org>
 
-       * src/Makefile.am, src/cli.c, src/gnutls.c, src/gnutls.h,
-       src/gnutls_errors.c, src/gnutls_errors.h, src/gnutls_num.c,
-       src/gnutls_num.h, src/port.h, src/serv.c: [no log message]
+       * doc/manpages/Makefile.am: Generated.
 
-2000-03-28  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli.c, src/gnutls.c, src/gnutls.h,
-       src/gnutls_buffers.c, src/gnutls_errors.h, src/gnutls_handshake.c,
-       src/gnutls_handshake.h, src/gnutls_int.h, src/serv.c: Corrected a
-       lot of bugs. Handshake protocol is ready to be coded.
+       * configure.ac, tests/suite/Makefile.in: Create Makefile in
+       tests/suite/
 
-2000-03-26  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/gnutls.c, src/gnutls.h, src/gnutls_buffers.c,
-       src/gnutls_buffers.h: Included a reliable version of read/write
-       (that read/write will return exactly the bytes specified).
+       * src/cli.c, src/psk-gaa.c, src/psk-gaa.h, src/psk.c, src/psk.gaa,
+       tests/Makefile.am, tests/netconf-psk.c: Deprecate the netconf
+       password and use a key only.
 
-2000-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-19  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/cli.c, src/gnutls.c, src/gnutls.h,
-       src/gnutls_handshake.c, src/gnutls_handshake.h, src/serv.c,
-       src/test.c: [no log message]
+       * doc/credentials/gnutls-http-serv: correctly set psk params.
 
-2000-03-24  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/gnutls.c, src/gnutls_buffers.c, src/gnutls_buffers.h,
-       src/gnutls_handshake.c: [no log message]
+       * NEWS: added info
 
-2000-03-23  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/gnutls.c, src/gnutls_cipher.c, src/gnutls_handshake.c,
-       src/gnutls_int.h: Changes in the handshake.
+       * lib/x509/privkey_pkcs8.c: Correctly write DSA public key in ASN.1
+       (add leading zero). Reported by Jeffrey Walton.
 
-2000-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/gnutls.c: Some memory leaks were fixed.
+       * lib/x509/mpi.c: cleanups
 
-2000-03-18  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/gnutls.c, src/gnutls_cipher.c, src/gnutls_handshake.c,
-       src/gnutls_int.h: Corrected bug in the record protocol. Now it holds
-       2 states, 1 for encryption and 1 for decryption
-       (mac/cipher/iv/compression).
+       * doc/cha-auth.texi, lib/includes/gnutls/compat.h,
+       lib/includes/gnutls/gnutls.h.in: Deprecated the key derivation
+       method from netconf. The published RFC does not include this method
+       and it is not known whether it has been used at all in practice. No
+       need to support it.
 
-2000-03-17  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-16  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/defines.h, src/gnutls.c,
-       src/gnutls_handshake.c, src/gnutls_handshake.h, src/gnutls_int.h: 
-       Added the client hello handshake message.
+       * NEWS, lib/gnutls_priority.c: Added SIGN-ALL, CTYPE-ALL, COMP-ALL,
+       and VERS-TLS-ALL priority strings.
 
-2000-03-15  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * doc/HACKING: documentation.
+       * lib/gnutls_x509.c: Removed redundant error check. Reported by
+       Nicolas Kaiser.
 
-2000-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/gnutls_handshake.h, src/gnutls_record.h: Incorporated in
-       gnutls_int.h
+       * lib/includes/gnutls/pkcs11.h, lib/libgnutls.map, lib/pkcs11.c,
+       src/p11tool-gaa.c, src/p11tool-gaa.h, src/p11tool.c,
+       src/p11tool.gaa, src/p11tool.h, src/pkcs11.c: Added
+       --list-mechanisms option to p11tool. Lists all mechanisms supported
+       by a token.
 
-2000-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * src/Makefile.am, src/debug.c, src/gnutls.c, src/gnutls_buffers.c,
-       src/gnutls_buffers.h, src/gnutls_cipher.c, src/gnutls_compress.c,
-       src/gnutls_errors.h, src/gnutls_int.h, src/gnutls_plaintext.c: 
-       gnutls_recv() can now receive fatal alerts and closure alerts.
+       * doc/manpages/Makefile.am, doc/manpages/p11tool.1: Added manpage
+       for p11tool.
 
-2000-03-14  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * README, src/Makefile.am, src/debug.c, src/gnutls.c, src/gnutls.h,
-       src/gnutls_buffers.c, src/gnutls_buffers.h, src/gnutls_cipher.c,
-       src/gnutls_compress.c, src/gnutls_errors.h, src/gnutls_handshake.h,
-       src/gnutls_int.h, src/gnutls_plaintext.c, src/gnutls_record.h,
-       src/test.c: In case of failure gnutls_recv, sends an alert message.
-       but, it still cannot receive any.
+       * doc/manpages/certtool.1, doc/manpages/gnutls-cli.1,
+       doc/manpages/gnutls-serv.1, doc/manpages/srptool.1: Corrected my
+       name.
 
-2000-03-13  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * configure.in, src/Makefile.am, src/gnutls.c, src/gnutls.h,
-       src/gnutls_cipher.c, src/test.c: Added gnutls_recv... Works only for
-       application data, and it is not tested.
+       * src/p11tool-gaa.c, src/p11tool.gaa: In p11tool --url was renamed
+       to --export.
 
-2000-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * AUTHORS, Makefile.am, acconfig.h, buildconf, configure.in,
-       src/Makefile.am, src/debug.c, src/debug.h, src/defines.h,
-       src/gnutls.c, src/gnutls.h, src/gnutls_cipher.c,
-       src/gnutls_cipher.h, src/gnutls_compress.c, src/gnutls_compress.h,
-       src/gnutls_plaintext.c, src/gnutls_plaintext.h, src/test.c: [no log
-       message]
+       * src/p11tool-gaa.c, src/p11tool-gaa.h, src/p11tool.gaa,
+       src/pkcs11.c: Corrected bug in secret key copy. Rationalized the
+       --help of p11tool.
 
-2000-03-08  Nikos Mavrogiannopoulos <nmav@gnutls.org>
+2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * buildconf: [no log message]
+       * lib/pkcs11.c, lib/pkcs11_secret.c: * Corrected flag conversion to internal representation.  * When generating secret keys include a generic key type and a
+       random ID.
 
-2000-03-07  Werner Koch <wk@gnupg.org>
+2010-11-11  Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
-       * Initialized repository for GNU TLS
+       * Added option --no-detailed-url to p11tool. More detailed url is the
+       default now.
 
        -----
 
index 58f2ead..8759034 100644 (file)
@@ -5,7 +5,7 @@
 # It is necessary if you want to build targets usually of interest
 # only to the maintainer.
 
-# Copyright (C) 2001, 2003, 2006-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2006-2013 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 0afe4bd..c935106 100644 (file)
@@ -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/\@VERSION\@/$(VERSION)/g' -i $(distdir)/src/args-std.def
        sed 's/\@\@VERSION\@\@/$(VERSION)/g' -i $(distdir)/doc/invoke-*.texi
index f59c615..7a209ca 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -80,14 +97,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -211,6 +231,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -576,6 +601,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -861,7 +887,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -935,6 +960,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1070,8 +1096,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1090,7 +1116,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1321,6 +1346,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1728,13 +1754,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -1822,7 +1845,7 @@ distcheck: dist
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
-       chmod -R a-w $(distdir); chmod a+w $(distdir)
+       chmod -R a-w $(distdir); chmod u+w $(distdir)
        mkdir $(distdir)/_build
        mkdir $(distdir)/_inst
        chmod a-w $(distdir)
@@ -2015,6 +2038,7 @@ uninstall-am:
 dist-hook: 
        rm -f ChangeLog
        make ChangeLog
+       make -C doc/ compare-makefile
        cp -f ChangeLog $(distdir)/
        sed 's/\@VERSION\@/$(VERSION)/g' -i $(distdir)/src/args-std.def
        sed 's/\@\@VERSION\@\@/$(VERSION)/g' -i $(distdir)/doc/invoke-*.texi
diff --git a/NEWS b/NEWS
index 33a0563..bec1a1a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,174 @@ GnuTLS NEWS -- History of user-visible changes.                -*- outline -*-
 Copyright (C) 2000-2012 Free Software Foundation, Inc.
 See the end for copying conditions.
 
+* Version 3.0.30 (released 2013-06-01)
+
+** libgnutls: Allow ECC when in SSL 3.0 to work-around a bug in certain
+openssl versions.
+
+** libgnutls: When in compatibility mode allow for a wrong version in the
+RSA PMS.
+
+** libgnutls: gnutls_handshake_get_last_in() was fixed. Reported
+by Mann Ern Kang.
+
+** API and ABI modifications:
+No changes since last version.
+
+
+* Version 3.0.29 (released 2013-03-22)
+
+** certtool: When generating PKCS #12 files use by default the 
+ARCFOUR (RC4) cipher to be compatible with devices that don't
+support AES with PKCS #12.
+
+** libgnutls: Corrected issue in gnutls_pubkey_verify_data().
+
+** libgnutls: gnutls_pkcs11_reinit() will reinitialize all PKCS #11
+modules, and not only the ones loaded via p11-kit.
+
+** libgnutls: Load CA certificates in android 4.x systems.
+
+** libgnutls: Corrected issue in the (deprecated) external key
+signing interface, when used with TLS 1.2. Reported by Bjorn H. Christensen.
+
+** libgnutls: PKCS #11 slots are scanned only when needed, not
+on initialization. This speeds up gnutls initialization when smart
+cards are present.
+
+** libgnutls: Fixes in openpgp handshake with fingerprints. Reported by 
+Joke de Buhr.
+
+** configure: Trust store file must be explicitly set or unset when 
+cross compiling.
+
+** API and ABI modifications:
+No changes since last version.
+
+
+* Version 3.0.28 (2012-02-04)
+
+** libgnutls: Fixes in server side of DTLS-0.9.
+
+** libgnutls: Corrected gnutls_cipher_decrypt2() when used with AEAD  
+ciphers (i.e., AES-GCM).
+
+** libgnutls: Fixes in record padding parsing to prevent a timing attack. 
+Issue reported by Kenny Patterson and Nadhem Alfardan.
+
+** libgnutls: DN variable 'T' was expanded to 'title'.
+
+** API and ABI modifications:
+No changes since last version.
+
+
+* Version 3.0.27 (released 2013-01-03)
+
+** libgnutls: Fixed record padding parsing issue. Reported by Kenny
+Patterson and Nadhem Alfardan.
+
+** libgnutls: Stricter RSA PKCS #1 1.5 encoding. Reported
+by Kikuchi Masashi.
+
+** libgnutls-guile: Fixed parallel compilation issue.
+
+** API and ABI modifications:
+No changes since last version.
+
+
+* Version 3.0.26 (released 2012-11-09)
+
+** libgnutls: Always tolerate key usage violation errors from the side
+of the peer, but also notify via an audit message.
+
+** libgnutls: gnutls_x509_crl_verify() includes time checks.
+
+** libgnutls: Increased maximum password length in the PKCS #12
+functions.
+
+** API and ABI modifications:
+GNUTLS_CERT_REVOCATION_DATA_TOO_OLD: Added
+GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE: Added
+
+
+* Version 3.0.25 (released 2012-10-12)
+
+** libgnutls: Fixed the receipt of session tickets during session resumption.
+Reported by danblack at http://savannah.gnu.org/support/?108146
+
+** libgnutls: Added gnutls_ocsp_resp_check_crt() to check whether the OCSP
+response corresponds to the given certificate.
+
+** libgnutls: Several updates in the OpenPGP code. The generating code
+is fully RFC6091 compliant and RFC5081 support is only supported in client
+mode.
+
+** API and ABI modifications:
+gnutls_ocsp_resp_check_crt: Added
+
+
+* Version 3.0.24 (released 2012-09-26)
+
+** libgnutls: The %COMPAT keyword, if specified, will tolerate
+key usage violation errors (they are far too common to ignore).
+
+** libgnutls: Corrected bug in OpenPGP subpacket encoding.
+
+** 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: Correctly restore gnutls_record_recv() in DTLS mode
+if interrupted during the retrasmition of handshake data.
+
+** 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 _and_ are placed in
+separate records (use with care - do not use compression if not sure).
+
+** libgnutls: Depends on libtasn1 2.14 or later.
+
+** API and ABI modifications:
+No changes since last version.
+
+
+* Version 3.0.23 (released 2012-09-02)
+
+** gnutls-serv: Listens on IPv6. Patch by Bernhard R. Link.
+
+** libgnutls: Be tolerant in ECDSA signature violations (e.g. using
+SHA256 with a SECP384 curve instead of SHA-384), to interoperate with
+openssl.
+
+** libgnutls: Fixed DSA and ECDSA signature generation in
+smart cards.
+
+** API and ABI modifications:
+No changes since last version.
+
+
+* Version 3.0.22 (released 2012-08-04)
+
+** libgnutls: gnutls_certificate_set_x509_system_trust()
+is now supported on OpenBSD.
+
+** libgnutls: When verifying a certificate chain make sure it is chain.
+If the chain is wronly interrupted at some point then truncate it,
+and only try to verify the correct part. Patch by David Woodhouse
+
+** libgnutls: Restored the behavior of gnutls_x509_privkey_import_pkcs8()
+which now may (again) accept a NULL password.
+
+** certtool: Allow the user to choose the hash algorithm
+when signing certificate request or certificate revocation list.
+Patch by Petr Písař.
+
+** API and ABI modifications:
+No changes since last version.
+
+
 * Version 3.0.21 (released 2012-07-02)
 
 ** libgnutls: fixed bug in gnutls_x509_privkey_import() 
index f82002e..d78102a 100644 (file)
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
@@ -38,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.3], [],
+m4_if([$1], [1.11.6], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -54,7 +54,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.3])dnl
+[AM_AUTOMAKE_VERSION([1.11.6])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -438,18 +438,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-
 # Do all the work for Automake.                             -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -1118,6 +1106,7 @@ m4_include([gl/m4/exponentd.m4])
 m4_include([gl/m4/exponentf.m4])
 m4_include([gl/m4/exponentl.m4])
 m4_include([gl/m4/extensions.m4])
+m4_include([gl/m4/extern-inline.m4])
 m4_include([gl/m4/fcntl_h.m4])
 m4_include([gl/m4/fdopen.m4])
 m4_include([gl/m4/float_h.m4])
@@ -1126,6 +1115,7 @@ m4_include([gl/m4/frexp.m4])
 m4_include([gl/m4/frexpl.m4])
 m4_include([gl/m4/fseek.m4])
 m4_include([gl/m4/fseeko.m4])
+m4_include([gl/m4/fseterr.m4])
 m4_include([gl/m4/fstat.m4])
 m4_include([gl/m4/ftell.m4])
 m4_include([gl/m4/ftello.m4])
@@ -1134,6 +1124,7 @@ m4_include([gl/m4/func.m4])
 m4_include([gl/m4/getaddrinfo.m4])
 m4_include([gl/m4/getcwd.m4])
 m4_include([gl/m4/getdelim.m4])
+m4_include([gl/m4/getdtablesize.m4])
 m4_include([gl/m4/getline.m4])
 m4_include([gl/m4/getopt.m4])
 m4_include([gl/m4/getpagesize.m4])
index b1f4749..862a14e 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-01-04.17; # UTC
+scriptversion=2012-03-05.13; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
 # Software Foundation, Inc.
@@ -79,6 +79,48 @@ func_file_conv ()
   esac
 }
 
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
 # func_cl_wrapper cl arg...
 # Adjust compile command to suit cl
 func_cl_wrapper ()
@@ -109,43 +151,34 @@ func_cl_wrapper ()
              ;;
          esac
          ;;
+       -I)
+         eat=1
+         func_file_conv "$2" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
        -I*)
          func_file_conv "${1#-I}" mingw
          set x "$@" -I"$file"
          shift
          ;;
+       -l)
+         eat=1
+         func_cl_dashl "$2"
+         set x "$@" "$lib"
+         shift
+         ;;
        -l*)
-         lib=${1#-l}
-         found=no
-         save_IFS=$IFS
-         IFS=';'
-         for dir in $lib_path $LIB
-         do
-           IFS=$save_IFS
-           if $shared && test -f "$dir/$lib.dll.lib"; then
-             found=yes
-             set x "$@" "$dir/$lib.dll.lib"
-             break
-           fi
-           if test -f "$dir/$lib.lib"; then
-             found=yes
-             set x "$@" "$dir/$lib.lib"
-             break
-           fi
-         done
-         IFS=$save_IFS
-
-         test "$found" != yes && set x "$@" "$lib.lib"
+         func_cl_dashl "${1#-l}"
+         set x "$@" "$lib"
          shift
          ;;
+       -L)
+         eat=1
+         func_cl_dashL "$2"
+         ;;
        -L*)
-         func_file_conv "${1#-L}"
-         if test -z "$lib_path"; then
-           lib_path=$file
-         else
-           lib_path="$lib_path;$file"
-         fi
-         linker_opts="$linker_opts -LIBPATH:$file"
+         func_cl_dashL "${1#-L}"
          ;;
        -static)
          shared=false
index 1a07018..c38b914 100755 (executable)
@@ -2,7 +2,7 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2012 Free Software Foundation, Inc.
+#   Copyright 1996-2013 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
index c894da4..6205f84 100755 (executable)
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2012-04-18'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -225,6 +225,12 @@ case $os in
        -isc*)
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
+       -lynx*178)
+               os=-lynxos178
+               ;;
+       -lynx*5)
+               os=-lynxos5
+               ;;
        -lynx*)
                os=-lynxos
                ;;
@@ -1537,6 +1543,9 @@ case $basic_machine in
        c4x-* | tic4x-*)
                os=-coff
                ;;
+       hexagon-*)
+               os=-elf
+               ;;
        tic54x-*)
                os=-coff
                ;;
index bd0ac08..25a39e6 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2011-12-04.11; # UTC
+scriptversion=2012-03-27.16; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011 Free Software Foundation, Inc.
+# 2011, 2012 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@ scriptversion=2011-12-04.11; # UTC
 
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
@@ -40,8 +40,8 @@ as side-effects.
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by `PROGRAMS ARGS'.
-  object      Object file output by `PROGRAMS ARGS'.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
   tmpdepfile  Temporary file to use when outputting dependencies.
@@ -57,6 +57,12 @@ EOF
     ;;
 esac
 
+# A tabulation character.
+tab='  '
+# A newline character.
+nl='
+'
+
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -102,6 +108,12 @@ if test "$depmode" = msvc7msys; then
    depmode=msvc7
 fi
 
+if test "$depmode" = xlc; then
+   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
+   gccflag=-qmakedep=gcc,-MF
+   depmode=gcc
+fi
+
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -156,15 +168,14 @@ gcc)
 ## The second -e expression handles DOS-style file names with drive letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
+## This next piece of magic avoids the "deleted header file" problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'.  On the theory
+  tr ' ' "$nl" < "$tmpdepfile" |
+## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
 ## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
@@ -203,18 +214,15 @@ sgi)
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like `#:fec' to the end of the
+    # the IRIX cc adds comments like '#:fec' to the end of the
     # dependency line.
-    tr ' ' '
-' < "$tmpdepfile" \
+    tr ' ' "$nl" < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr '
-' ' ' >> "$depfile"
+    tr "$nl" ' ' >> "$depfile"
     echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
-    tr ' ' '
-' < "$tmpdepfile" \
+    tr ' ' "$nl" < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    >> "$depfile"
   else
@@ -226,10 +234,17 @@ sgi)
   rm -f "$tmpdepfile"
   ;;
 
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
@@ -259,12 +274,11 @@ aix)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    # Each line is of the form `foo.o: dependent.h'.
+    # Each line is of the form 'foo.o: dependent.h'.
     # Do two passes, one to just change these to
-    # `$object: dependent.h' and one to simply `dependent.h:'.
+    # '$object: dependent.h' and one to simply 'dependent.h:'.
     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    # That's a tab and a space in the [].
-    sed -e 's,^.*\.[a-z]*:[     ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -275,23 +289,26 @@ aix)
   ;;
 
 icc)
-  # Intel's C compiler understands `-MD -MF file'.  However on
-  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
+  # However on
+  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   # ICC 7.0 will fill foo.d with something like
   #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h
-  # which is wrong.  We want:
+  # which is wrong.  We want
   #    sub/foo.o: sub/foo.c
   #    sub/foo.o: sub/foo.h
   #    sub/foo.c:
   #    sub/foo.h:
   # ICC 7.1 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using :
+  # and will wrap long lines using '\':
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-
+  # tcc 0.9.26 (FIXME still under development at the moment of writing)
+  # will emit a similar output, but also prepend the continuation lines
+  # with horizontal tabulation characters.
   "$@" -MD -MF "$tmpdepfile"
   stat=$?
   if test $stat -eq 0; then :
@@ -300,15 +317,21 @@ icc)
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form `foo.o: dependent.h',
-  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Each line is of the form 'foo.o: dependent.h',
+  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # `$object: dependent.h' and one to simply `dependent.h:'.
-  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
-  # Some versions of the HPUX 10.20 sed can't process this invocation
-  # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-    sed -e 's/$/ :/' >> "$depfile"
+  # '$object: dependent.h' and one to simply 'dependent.h:'.
+  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
+    < "$tmpdepfile" > "$depfile"
+  sed '
+    s/[ '"$tab"'][ '"$tab"']*/ /g
+    s/^ *//
+    s/ *\\*$//
+    s/^[^:]*: *//
+    /^$/d
+    /:$/d
+    s/$/ :/
+  ' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -344,7 +367,7 @@ hp2)
   done
   if test -f "$tmpdepfile"; then
     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add `dependent.h:' lines.
+    # Add 'dependent.h:' lines.
     sed -ne '2,${
               s/^ *//
               s/ \\*$//
@@ -359,9 +382,9 @@ hp2)
 
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in `foo.d' instead, so we check for that too.
+   # dependencies in 'foo.d' instead, so we check for that too.
    # Subdirectories are respected.
    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    test "x$dir" = "x$object" && dir=
@@ -407,8 +430,7 @@ tru64)
    done
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      # That's a tab and a space in the [].
-      sed -e 's,^.*\.[a-z]*:[   ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    else
       echo "#dummy" > "$depfile"
    fi
@@ -443,11 +465,11 @@ msvc7)
   p
 }' | $cygpath_u | sort -u | sed -n '
 s/ /\\ /g
-s/\(.*\)/      \1 \\/p
+s/\(.*\)/'"$tab"'\1 \\/p
 s/.\(.*\) \\/\1:/
 H
 $ {
-  s/.*/        /
+  s/.*/'"$tab"'/
   G
   p
 }' >> "$depfile"
@@ -478,7 +500,7 @@ dashmstdout)
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -498,15 +520,14 @@ dashmstdout)
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for `:'
+  # Require at least two characters before searching for ':'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' '
-' < "$tmpdepfile" | \
+  tr ' ' "$nl" < "$tmpdepfile" | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -562,8 +583,7 @@ makedepend)
   # makedepend may prepend the VPATH from the source file name to the object.
   # No need to regex-escape $object, excess matching of '.' is harmless.
   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
+  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -583,7 +603,7 @@ cpp)
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -652,8 +672,8 @@ msvisualcpp)
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::     \1 \\:p' >> "$depfile"
-  echo "       " >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
index c8abd55..e4bfc9f 100755 (executable)
@@ -2,10 +2,10 @@
 # gendocs.sh -- generate a GNU manual in many formats.  This script is
 #   mentioned in maintain.texi.  See the help message below for usage details.
 
-scriptversion=2011-04-08.14
+scriptversion=2013-02-03.15
 
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
+# Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -30,6 +30,12 @@ scriptversion=2011-04-08.14
 #
 # An up-to-date copy is also maintained in Gnulib (gnu.org/software/gnulib).
 
+# TODO:
+# - image importation was only implemented for HTML generated by
+#   makeinfo.  But it should be simple enough to adjust.
+# - images are not imported in the source tarball.  All the needed
+#   formats (PDF, PNG, etc.) should be included.
+
 prog=`basename "$0"`
 srcdir=`pwd`
 
@@ -39,38 +45,47 @@ templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/
 : ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
 : ${MAKEINFO="makeinfo"}
 : ${TEXI2DVI="texi2dvi -t @finalout"}
-: ${DVIPS="dvips"}
 : ${DOCBOOK2HTML="docbook2html"}
 : ${DOCBOOK2PDF="docbook2pdf"}
-: ${DOCBOOK2PS="docbook2ps"}
 : ${DOCBOOK2TXT="docbook2txt"}
 : ${GENDOCS_TEMPLATE_DIR="."}
+: ${PERL='perl'}
 : ${TEXI2HTML="texi2html"}
 unset CDPATH
 unset use_texi2html
 
 version="gendocs.sh $scriptversion
 
-Copyright 2010 Free Software Foundation, Inc.
+Copyright 2013 Free Software Foundation, Inc.
 There is NO warranty.  You may redistribute this software
 under the terms of the GNU General Public License.
 For more information about these matters, see the files named COPYING."
 
 usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
 
-Generate various output formats from PACKAGE.texinfo (or .texi or .txi) source.
-See the GNU Maintainers document for a more extensive discussion:
+Generate output in various formats from PACKAGE.texinfo (or .texi or
+.txi) source.  See the GNU Maintainers document for a more extensive
+discussion:
   http://www.gnu.org/prep/maintain_toc.html
 
 Options:
-  -s SRCFILE  read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
-  -o OUTDIR   write files into OUTDIR, instead of manual/.
-  --email ADR use ADR as contact in generated web pages.
-  --docbook   convert to DocBook too (xml, txt, html, pdf and ps).
-  --html ARG  pass indicated ARG to makeinfo or texi2html for HTML targets.
-  --texi2html use texi2html to generate HTML targets.
-  --help      display this help and exit successfully.
-  --version   display version information and exit successfully.
+  --email ADR use ADR as contact in generated web pages; always give this.
+
+  -s SRCFILE   read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
+  -o OUTDIR    write files into OUTDIR, instead of manual/.
+  -I DIR       append DIR to the Texinfo search path.
+  --common ARG pass ARG in all invocations.
+  --html ARG   pass ARG to makeinfo or texi2html for HTML targets.
+  --info ARG   pass ARG to makeinfo for Info, instead of --no-split.
+  --no-ascii   skip generating the plain text output.
+  --source ARG include ARG in tar archive of sources.
+  --split HOW  make split HTML by node, section, chapter; default node.
+
+  --texi2html  use texi2html to make HTML target, with all split versions.
+  --docbook    convert through DocBook too (xml, txt, html, pdf).
+
+  --help       display this help and exit successfully.
+  --version    display version information and exit successfully.
 
 Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\"
 
@@ -80,12 +95,12 @@ Typical sequence:
   wget \"$templateurl\"
   $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
 
-Output will be in a new subdirectory \"manual\" (by default, use -o OUTDIR
-to override).  Move all the new files into your web CVS tree, as
-explained in the Web Pages node of maintain.texi.
+Output will be in a new subdirectory \"manual\" (by default;
+use -o OUTDIR to override).  Move all the new files into your web CVS
+tree, as explained in the Web Pages node of maintain.texi.
 
-Please use the --email ADDRESS option to specify your bug-reporting
-address in the generated HTML pages.
+Please use the --email ADDRESS option so your own bug-reporting
+address will be used in the generated HTML pages.
 
 MANUAL-TITLE is included as part of the HTML <title> of the overall
 manual/index.html file.  It should include the name of the package being
@@ -102,11 +117,14 @@ If a manual's Texinfo sources are spread across several directories,
 first copy or symlink all Texinfo sources into a single directory.
 (Part of the script's work is to make a tar.gz of the sources.)
 
-You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML, and
-DVIPS to control the programs that get executed, and
+As implied above, by default monolithic Info files are generated.
+If you want split Info, or other Info options, use --info to override.
+
+You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML,
+and PERL to control the programs that get executed, and
 GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is
 looked for.  With --docbook, the environment variables DOCBOOK2HTML,
-DOCBOOK2PDF, DOCBOOK2PS, and DOCBOOK2TXT are also respected.
+DOCBOOK2PDF, and DOCBOOK2TXT are also consulted.
 
 By default, makeinfo and texi2dvi are run in the default (English)
 locale, since that's the language of most Texinfo manuals.  If you
@@ -116,29 +134,37 @@ SETLANG setting in the source.
 Email bug reports or enhancement requests to bug-texinfo@gnu.org.
 "
 
-calcsize()
-{
-  size=`ls -ksl $1 | awk '{print $1}'`
-  echo $size
-}
-
 MANUAL_TITLE=
 PACKAGE=
 EMAIL=webmasters@gnu.org  # please override with --email
+commonarg= # passed to all makeinfo/texi2html invcations.
+dirargs=   # passed to all tools (-I dir).
+dirs=      # -I's directories.
 htmlarg=
+infoarg=--no-split
+generate_ascii=true
 outdir=manual
+source_extra=
+split=node
 srcfile=
 
 while test $# -gt 0; do
   case $1 in
-    --email) shift; EMAIL=$1;;
-    --help) echo "$usage"; exit 0;;
-    --version) echo "$version"; exit 0;;
-    -s) shift; srcfile=$1;;
-    -o) shift; outdir=$1;;
-    --docbook) docbook=yes;;
-    --html) shift; htmlarg=$1;;
+    -s)          shift; srcfile=$1;;
+    -o)          shift; outdir=$1;;
+    -I)          shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";;
+    --common)    shift; commonarg=$1;;
+    --docbook)   docbook=yes;;
+    --email)     shift; EMAIL=$1;;
+    --html)      shift; htmlarg=$1;;
+    --info)      shift; infoarg=$1;;
+    --no-ascii)  generate_ascii=false;;
+    --source)    shift; source_extra=$1;;
+    --split)     shift; split=$1;;
     --texi2html) use_texi2html=1;;
+
+    --help)      echo "$usage"; exit 0;;
+    --version)   echo "$version"; exit 0;;
     -*)
       echo "$0: Unknown option \`$1'." >&2
       echo "$0: Try \`--help' for more information." >&2
@@ -156,6 +182,9 @@ while test $# -gt 0; do
   shift
 done
 
+# makeinfo uses the dirargs, but texi2dvi doesn't.
+commonarg=" $dirargs $commonarg"
+
 # For most of the following, the base name is just $PACKAGE
 base=$PACKAGE
 
@@ -183,57 +212,106 @@ if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
   exit 1
 fi
 
+# Function to return size of $1 in something resembling kilobytes.
+calcsize()
+{
+  size=`ls -ksl $1 | awk '{print $1}'`
+  echo $size
+}
+
+# copy_images OUTDIR HTML-FILE...
+# -------------------------------
+# Copy all the images needed by the HTML-FILEs into OUTDIR.  Look
+# for them in the -I directories.
+copy_images()
+{
+  local odir
+  odir=$1
+  shift
+  $PERL -n -e "
+BEGIN {
+  \$me = '$prog';
+  \$odir = '$odir';
+  @dirs = qw($dirs);
+}
+" -e '
+/<img src="(.*?)"/g && ++$need{$1};
+
+END {
+  #print "$me: @{[keys %need]}\n";  # for debugging, show images found.
+  FILE: for my $f (keys %need) {
+    for my $d (@dirs) {
+      if (-f "$d/$f") {
+        use File::Basename;
+        my $dest = dirname ("$odir/$f");
+        #
+        use File::Path;
+        -d $dest || mkpath ($dest)
+          || die "$me: cannot mkdir $dest: $!\n";
+        #
+        use File::Copy;
+        copy ("$d/$f", $dest)
+          || die "$me: cannot copy $d/$f to $dest: $!\n";
+        next FILE;
+      }
+    }
+    die "$me: $ARGV: cannot find image $f\n";
+  }
+}
+' -- "$@" || exit 1
+}
+
 case $outdir in
   /*) abs_outdir=$outdir;;
   *)  abs_outdir=$srcdir/$outdir;;
 esac
 
-echo Generating output formats for $srcfile
+echo "Making output for $srcfile"
+echo " in `pwd`"
+mkdir -p "$outdir/"
 
-cmd="$SETLANG $MAKEINFO -o $PACKAGE.info \"$srcfile\""
-echo "Generating info files... ($cmd)"
+cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
+echo "Generating info... ($cmd)"
 eval "$cmd"
-mkdir -p "$outdir/"
 tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
+ls -l "$outdir/$PACKAGE.info.tar.gz"
 info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
 # do not mv the info files, there's no point in having them available
 # separately on the web.
 
-cmd="$SETLANG ${TEXI2DVI} \"$srcfile\""
-echo "Generating dvi ... ($cmd)"
+cmd="$SETLANG $TEXI2DVI $dirargs \"$srcfile\""
+printf "\nGenerating dvi... ($cmd)\n"
 eval "$cmd"
-
-# now, before we compress dvi:
-echo Generating postscript...
-${DVIPS} $PACKAGE -o
-gzip -f -9 $PACKAGE.ps
-ps_gz_size=`calcsize $PACKAGE.ps.gz`
-mv $PACKAGE.ps.gz "$outdir/"
-
 # compress/finish dvi:
 gzip -f -9 $PACKAGE.dvi
 dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
 mv $PACKAGE.dvi.gz "$outdir/"
+ls -l "$outdir/$PACKAGE.dvi.gz"
 
-cmd="$SETLANG ${TEXI2DVI} --pdf \"$srcfile\""
-echo "Generating pdf ... ($cmd)"
+cmd="$SETLANG $TEXI2DVI --pdf $dirargs \"$srcfile\""
+printf "\nGenerating pdf... ($cmd)\n"
 eval "$cmd"
 pdf_size=`calcsize $PACKAGE.pdf`
 mv $PACKAGE.pdf "$outdir/"
+ls -l "$outdir/$PACKAGE.pdf"
 
-cmd="$SETLANG $MAKEINFO -o $PACKAGE.txt --no-split --no-headers \"$srcfile\""
-echo "Generating ASCII... ($cmd)"
-eval "$cmd"
-ascii_size=`calcsize $PACKAGE.txt`
-gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
-ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
-mv $PACKAGE.txt "$outdir/"
+if $generate_ascii; then
+  opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
+  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
+  printf "\nGenerating ascii... ($cmd)\n"
+  eval "$cmd"
+  ascii_size=`calcsize $PACKAGE.txt`
+  gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
+  ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
+  mv $PACKAGE.txt "$outdir/"
+  ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz"
+fi
 
 html_split()
 {
-  opt="--split=$1 $htmlarg --node-files"
+  opt="--split=$1 --node-files $commonarg $htmlarg"
   cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
-  echo "Generating html by $1... ($cmd)"
+  printf "\nGenerating html by $1... ($cmd)\n"
   eval "$cmd"
   split_html_dir=$PACKAGE.html
   (
@@ -249,32 +327,39 @@ html_split()
 }
 
 if test -z "$use_texi2html"; then
-  opt="--no-split --html -o $PACKAGE.html $htmlarg"
+  opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
-  echo "Generating monolithic html... ($cmd)"
+  printf "\nGenerating monolithic html... ($cmd)\n"
   rm -rf $PACKAGE.html  # in case a directory is left over
   eval "$cmd"
   html_mono_size=`calcsize $PACKAGE.html`
   gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
   html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
+  copy_images "$outdir/" $PACKAGE.html
   mv $PACKAGE.html "$outdir/"
+  ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz"
 
-  cmd="$SETLANG $MAKEINFO --html -o $PACKAGE.html $htmlarg \"$srcfile\""
-  echo "Generating html by node... ($cmd)"
+  opt="--html -o $PACKAGE.html --split=$split $commonarg $htmlarg"
+  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
+  printf "\nGenerating html by $split... ($cmd)\n"
   eval "$cmd"
   split_html_dir=$PACKAGE.html
+  copy_images $split_html_dir/ $split_html_dir/*.html
   (
-   cd ${split_html_dir} || exit 1
-   tar -czf "$abs_outdir/${PACKAGE}.html_node.tar.gz" -- *.html
+    cd $split_html_dir || exit 1
+    tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- *
   )
-  html_node_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node.tar.gz"`
-  rm -f "$outdir"/html_node/*.html
-  mkdir -p "$outdir/html_node/"
-  mv ${split_html_dir}/*.html "$outdir/html_node/"
-  rmdir ${split_html_dir}
-else
-  cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $htmlarg \"$srcfile\""
-  echo "Generating monolithic html... ($cmd)"
+  eval \
+    html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"`
+  rm -rf "$outdir/html_$split/"
+  mv $split_html_dir "$outdir/html_$split/"
+  du -s "$outdir/html_$split/"
+  ls -l "$outdir/$PACKAGE.html_$split.tar.gz"
+
+else # use texi2html:
+  opt="--output $PACKAGE.html $commonarg $htmlarg"
+  cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\""
+  printf "\nGenerating monolithic html with texi2html... ($cmd)\n"
   rm -rf $PACKAGE.html  # in case a directory is left over
   eval "$cmd"
   html_mono_size=`calcsize $PACKAGE.html`
@@ -287,18 +372,20 @@ else
   html_split section
 fi
 
-echo Making .tar.gz for sources...
+printf "\nMaking .tar.gz for sources...\n"
 d=`dirname $srcfile`
 (
   cd "$d"
-  srcfiles=`ls *.texinfo *.texi *.txi *.eps 2>/dev/null` || true
-  tar cvzfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
+  srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true
+  tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
+  ls -l "$abs_outdir/$PACKAGE.texi.tar.gz"
 )
 texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
 
 if test -n "$docbook"; then
-  cmd="$SETLANG $MAKEINFO -o - --docbook \"$srcfile\" > ${srcdir}/$PACKAGE-db.xml"
-  echo "Generating docbook XML... ($cmd)"
+  opt="-o - --docbook $commonarg"
+  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
+  printf "\nGenerating docbook XML... ($cmd)\n"
   eval "$cmd"
   docbook_xml_size=`calcsize $PACKAGE-db.xml`
   gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz"
@@ -306,8 +393,9 @@ if test -n "$docbook"; then
   mv $PACKAGE-db.xml "$outdir/"
 
   split_html_db_dir=html_node_db
-  cmd="${DOCBOOK2HTML} -o $split_html_db_dir \"${outdir}/$PACKAGE-db.xml\""
-  echo "Generating docbook HTML... ($cmd)"
+  opt="$commonarg -o $split_html_db_dir"
+  cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\""
+  printf "\nGenerating docbook HTML... ($cmd)\n"
   eval "$cmd"
   (
     cd ${split_html_db_dir} || exit 1
@@ -319,33 +407,28 @@ if test -n "$docbook"; then
   mv ${split_html_db_dir}/*.html "$outdir/html_node_db/"
   rmdir ${split_html_db_dir}
 
-  cmd="${DOCBOOK2TXT} \"${outdir}/$PACKAGE-db.xml\""
-  echo "Generating docbook ASCII... ($cmd)"
+  cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\""
+  printf "\nGenerating docbook ASCII... ($cmd)\n"
   eval "$cmd"
   docbook_ascii_size=`calcsize $PACKAGE-db.txt`
   mv $PACKAGE-db.txt "$outdir/"
 
-  cmd="${DOCBOOK2PS} \"${outdir}/$PACKAGE-db.xml\""
-  echo "Generating docbook PS... ($cmd)"
-  eval "$cmd"
-  gzip -f -9 -c $PACKAGE-db.ps >"$outdir/$PACKAGE-db.ps.gz"
-  docbook_ps_gz_size=`calcsize "$outdir/$PACKAGE-db.ps.gz"`
-  mv $PACKAGE-db.ps "$outdir/"
-
-  cmd="${DOCBOOK2PDF} \"${outdir}/$PACKAGE-db.xml\""
-  echo "Generating docbook PDF... ($cmd)"
+  cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\""
+  printf "\nGenerating docbook PDF... ($cmd)\n"
   eval "$cmd"
   docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
   mv $PACKAGE-db.pdf "$outdir/"
 fi
 
-echo "Writing index file..."
+printf "\nMaking index file...\n"
 if test -z "$use_texi2html"; then
-   CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
-          /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
+  CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
+         /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
 else
-   CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
+  # should take account of --split here.
+  CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
 fi
+
 curdate=`$SETLANG date '+%B %d, %Y'`
 sed \
    -e "s!%%TITLE%%!$MANUAL_TITLE!g" \
@@ -360,13 +443,11 @@ sed \
    -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
    -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
    -e "s!%%PDF_SIZE%%!$pdf_size!g" \
-   -e "s!%%PS_GZ_SIZE%%!$ps_gz_size!g" \
    -e "s!%%ASCII_SIZE%%!$ascii_size!g" \
    -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
    -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
    -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
    -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
-   -e "s!%%DOCBOOK_PS_GZ_SIZE%%!$docbook_ps_gz_size!g" \
    -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
    -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
    -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
index c7d06c3..499e473 100644 (file)
@@ -70,7 +70,7 @@
 #         compiler:            $LTCC
 #         compiler flags:              $LTCFLAGS
 #         linker:              $LD (gnu? $with_gnu_ld)
-#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1
+#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1.2
 #         automake:    $automake_version
 #         autoconf:    $autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1"
+VERSION="2.4.2 Debian-2.4.2-1.2"
 TIMESTAMP=""
 package_revision=1.3337
 
index 7cf8df7..863c73e 100644 (file)
@@ -1,6 +1,6 @@
 # pmccabe2html - AWK script to convert pmccabe output to html       -*- awk -*-
 
-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 3a9dd26..8ea2a47 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that specific arguments must not be NULL.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index 96da94b..b35b933 100644 (file)
@@ -1,5 +1,5 @@
 /* C++ compatible function declaration macros.
-   Copyright (C) 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index d4cb94f..1736a1b 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for emitting warnings if a function is used.
-   Copyright (C) 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
@@ -55,7 +55,7 @@
    rather than issue the nice warning, but the end result of informing
    the developer about their portability problem is still achieved):
    #if HAVE_RAW_DECL_ENVIRON
-   static inline char ***rpl_environ (void) { return &environ; }
+   static char ***rpl_environ (void) { return &environ; }
    _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
    # undef environ
    # define environ (*rpl_environ ())
index 2abda0f..85b68e7 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2012-01-03.09}
+\def\texinfoversion{2012-03-11.15}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -887,7 +887,7 @@ where each line of input produces a line of output.}
 \def\popthisfilestack{\errthisfilestackempty}
 \def\errthisfilestackempty{\errmessage{Internal error:
   the stack of filenames is empty.}}
-
+%
 \def\thisfile{}
 
 % @center line
@@ -895,36 +895,46 @@ where each line of input produces a line of output.}
 %
 \parseargdef\center{%
   \ifhmode
-    \let\next\centerH
+    \let\centersub\centerH
   \else
-    \let\next\centerV
+    \let\centersub\centerV
   \fi
-  \next{\hfil \ignorespaces#1\unskip \hfil}%
+  \centersub{\hfil \ignorespaces#1\unskip \hfil}%
+  \let\centersub\relax % don't let the definition persist, just in case
 }
-\def\centerH#1{%
-  {%
-    \hfil\break
-    \advance\hsize by -\leftskip
-    \advance\hsize by -\rightskip
-    \line{#1}%
-    \break
-  }%
+\def\centerH#1{{%
+  \hfil\break
+  \advance\hsize by -\leftskip
+  \advance\hsize by -\rightskip
+  \line{#1}%
+  \break
+}}
+%
+\newcount\centerpenalty
+\def\centerV#1{%
+  % The idea here is the same as in \startdefun, \cartouche, etc.: if
+  % @center is the first thing after a section heading, we need to wipe
+  % out the negative parskip inserted by \sectionheading, but still
+  % prevent a page break here.
+  \centerpenalty = \lastpenalty
+  \ifnum\centerpenalty>10000 \vskip\parskip \fi
+  \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi
+  \line{\kern\leftskip #1\kern\rightskip}%
 }
-\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
 
 % @sp n   outputs n lines of vertical space
-
+%
 \parseargdef\sp{\vskip #1\baselineskip}
 
 % @comment ...line which is ignored...
 % @c is the same as @comment
 % @ignore ... @end ignore  is another way to write a comment
-
+%
 \def\comment{\begingroup \catcode`\^^M=\other%
 \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
 \commentxxx}
 {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
+%
 \let\c=\comment
 
 % @paragraphindent NCHARS
@@ -1173,8 +1183,8 @@ output) for that.)}
   %
   % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
   \def\dopdfimage#1#2#3{%
-    \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
-    \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+    \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
     %
     % pdftex (and the PDF format) support .pdf, .png, .jpg (among
     % others).  Let's try in that order, PDF first since if
@@ -1212,8 +1222,8 @@ output) for that.)}
     \else
       \immediate\pdfximage
     \fi
-      \ifdim \wd0 >0pt width \imagewidth \fi
-      \ifdim \wd2 >0pt height \imageheight \fi
+      \ifdim \wd0 >0pt width \pdfimagewidth \fi
+      \ifdim \wd2 >0pt height \pdfimageheight \fi
       \ifnum\pdftexversion<13
          #1.\pdfimgext
        \else
@@ -1362,7 +1372,13 @@ output) for that.)}
       \fi
     \fi
     \nextsp}
-  \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+  \def\getfilename#1{%
+    \filenamelength=0
+    % If we don't expand the argument now, \skipspaces will get
+    % snagged on things like "@value{foo}".
+    \edef\temp{#1}%
+    \expandafter\skipspaces\temp|\relax
+  }
   \ifnum\pdftexversion < 14
     \let \startlink \pdfannotlink
   \else
@@ -2842,8 +2858,8 @@ end
 % 
 \def\outfmtnametex{tex}
 %
-\def\inlinefmt#1{\doinlinefmt #1,\finish}
-\def\doinlinefmt#1,#2,\finish{%
+\long\def\inlinefmt#1{\doinlinefmt #1,\finish}
+\long\def\doinlinefmt#1,#2,\finish{%
   \def\inlinefmtname{#1}%
   \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
 }
@@ -2855,8 +2871,8 @@ end
 % well use a command to get a left brace too.  We could re-use the
 % delimiter character idea from \verb, but it seems like overkill.
 % 
-\def\inlineraw{\tex \doinlineraw}
-\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
+\long\def\inlineraw{\tex \doinlineraw}
+\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
 \def\doinlinerawtwo#1,#2,\finish{%
   \def\inlinerawname{#1}%
   \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi
@@ -4732,10 +4748,9 @@ end
 %
 % ..., ready, GO:
 %
-\def\safewhatsit#1{%
-\ifhmode
+\def\safewhatsit#1{\ifhmode
   #1%
-\else
+ \else
   % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
   \whatsitskip = \lastskip
   \edef\lastskipmacro{\the\lastskip}%
@@ -4759,7 +4774,6 @@ end
     % to re-insert the same penalty (values >10000 are used for various
     % signals); since we just inserted a non-discardable item, any
     % following glue (such as a \parskip) would be a breakpoint.  For example:
-    %
     %   @deffn deffn-whatever
     %   @vindex index-whatever
     %   Description.
@@ -4772,8 +4786,7 @@ end
     % (the whatsit from the \write), so we must insert a \nobreak.
     \nobreak\vskip\whatsitskip
   \fi
-\fi
-}
+\fi}
 
 % The index entry written in the file actually looks like
 %  \entry {sortstring}{page}{topic}
@@ -5876,14 +5889,15 @@ end
   %
   % We'll almost certainly start a paragraph next, so don't let that
   % glue accumulate.  (Not a breakpoint because it's preceded by a
-  % discardable item.)
+  % discardable item.)  However, when a paragraph is not started next
+  % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out
+  % or the negative glue will cause weirdly wrong output, typically
+  % obscuring the section heading with something else.
   \vskip-\parskip
   %
-  % This is purely so the last item on the list is a known \penalty >
-  % 10000.  This is so \startdefun can avoid allowing breakpoints after
-  % section headings.  Otherwise, it would insert a valid breakpoint between:
-  %   @section sec-whatever
-  %   @deffn def-whatever
+  % This is so the last item on the main vertical list is a known
+  % \penalty > 10000, so \startdefun, etc., can recognize the situation
+  % and do the needful.
   \penalty 10001
 }
 
@@ -6303,7 +6317,7 @@ end
   % If this cartouche directly follows a sectioning command, we need the
   % \parskip glue (backspaced over by default) or the cartouche can
   % collide with the section heading.
-  \ifnum\lastpenalty>10000 \vskip\parskip \fi
+  \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi
   %
   \vbox\bgroup
       \baselineskip=0pt\parskip=0pt\lineskip=0pt
@@ -7802,26 +7816,36 @@ end
 \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
 \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
 \def\ref#1{\xrefX[#1,,,,,,,]}
+%
+\newbox\topbox
+\newbox\printedrefnamebox
+\newbox\printedmanualbox
+%
 \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
   \unsepspaces
-  \def\printedmanual{\ignorespaces #5}%
+  %
   \def\printedrefname{\ignorespaces #3}%
-  \setbox1=\hbox{\printedmanual\unskip}%
-  \setbox0=\hbox{\printedrefname\unskip}%
-  \ifdim \wd0 = 0pt
+  \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
+  %
+  \def\printedmanual{\ignorespaces #5}%
+  \setbox\printedmanualbox  = \hbox{\printedmanual\unskip}%
+  %
+  % If the printed reference name (arg #3) was not explicitly given in
+  % the @xref, figure out what we want to use.
+  \ifdim \wd\printedrefnamebox = 0pt
     % No printed node name was explicitly given.
     \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
-      % Use the node name inside the square brackets.
+      % Not auto section-title: use node name inside the square brackets.
       \def\printedrefname{\ignorespaces #1}%
     \else
-      % Use the actual chapter/section title appear inside
-      % the square brackets.  Use the real section title if we have it.
-      \ifdim \wd1 > 0pt
-        % It is in another manual, so we don't have it.
+      % Auto section-title: use chapter/section title inside
+      % the square brackets if we have it.
+      \ifdim \wd\printedmanualbox > 0pt
+        % It is in another manual, so we don't have it; use node name.
         \def\printedrefname{\ignorespaces #1}%
       \else
         \ifhavexrefs
-          % We know the real title if we have the xref values.
+          % We (should) know the real title if we have the xref values.
           \def\printedrefname{\refx{#1-title}{}}%
         \else
           % Otherwise just copy the Info node name.
@@ -7835,6 +7859,7 @@ end
   \ifpdf
     {\indexnofonts
      \turnoffactive
+     \makevalueexpandable
      % This expands tokens, so do it after making catcode changes, so _
      % etc. don't get their TeX definitions.
      \getfilename{#4}%
@@ -7867,7 +7892,7 @@ end
   \iffloat\Xthisreftitle
     % If the user specified the print name (third arg) to the ref,
     % print it instead of our usual "Figure 1.2".
-    \ifdim\wd0 = 0pt
+    \ifdim\wd\printedrefnamebox = 0pt
       \refx{#1-snt}{}%
     \else
       \printedrefname
@@ -7875,21 +7900,46 @@ end
     %
     % if the user also gave the printed manual name (fifth arg), append
     % "in MANUALNAME".
-    \ifdim \wd1 > 0pt
+    \ifdim \wd\printedmanualbox > 0pt
       \space \putwordin{} \cite{\printedmanual}%
     \fi
   \else
     % node/anchor (non-float) references.
-    %
-    % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
-    % insert empty discretionaries after hyphens, which means that it will
-    % not find a line break at a hyphen in a node names.  Since some manuals
-    % are best written with fairly long node names, containing hyphens, this
-    % is a loss.  Therefore, we give the text of the node name again, so it
-    % is as if TeX is seeing it for the first time.
-    \ifdim \wd1 > 0pt
-      \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+    % 
+    % If we use \unhbox to print the node names, TeX does not insert
+    % empty discretionaries after hyphens, which means that it will not
+    % find a line break at a hyphen in a node names.  Since some manuals
+    % are best written with fairly long node names, containing hyphens,
+    % this is a loss.  Therefore, we give the text of the node name
+    % again, so it is as if TeX is seeing it for the first time.
+    % 
+    % Cross-manual reference.  Only include the "Section ``foo'' in" if
+    % the foo is neither missing or Top.  Thus, @xref{,,,foo,The Foo Manual}
+    % outputs simply "see The Foo Manual".
+    \ifdim \wd\printedmanualbox > 0pt
+      % What is the 7sp about?  The idea is that we also want to omit
+      % the Section part if we would be printing "Top", since they are
+      % clearly trying to refer to the whole manual.  But, this being
+      % TeX, we can't easily compare strings while ignoring the possible
+      % spaces before and after in the input.  By adding the arbitrary
+      % 7sp, we make it much less likely that a real node name would
+      % happen to have the same width as "Top" (e.g., in a monospaced font).
+      % I hope it will never happen in practice.
+      % 
+      % For the same basic reason, we retypeset the "Top" at every
+      % reference, since the current font is indeterminate.
+      % 
+      \setbox\topbox = \hbox{Top\kern7sp}%
+      \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
+      \ifdim \wd2 > 7sp
+        \ifdim \wd2 = \wd\topbox \else
+          \putwordSection{} ``\printedrefname'' \putwordin{}\space
+        \fi
+      \fi
+      \cite{\printedmanual}%
     \else
+      % Reference in this manual.
+      %
       % _ (for example) has to be the character _ for the purposes of the
       % control sequence corresponding to the node, but it has to expand
       % into the usual \leavevmode...\vrule stuff for purposes of
@@ -7901,7 +7951,7 @@ end
        \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
        \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
       }%
-      % output the `[mynode]' via a macro so it can be overridden.
+      % output the `[mynode]' via the macro below so it can be overridden.
       \xrefprintnodename\printedrefname
       %
       % But we always want a comma and a space:
@@ -8281,7 +8331,7 @@ end
   it from ftp://tug.org/tex/epsf.tex.}
 %
 \def\image#1{%
-  \ifx\epsfbox\thisiundefined
+  \ifx\epsfbox\thisisundefined
     \ifwarnednoepsf \else
       \errhelp = \noepsfhelp
       \errmessage{epsf.tex not found, images will be ignored}%
@@ -8305,6 +8355,13 @@ end
   % If the image is by itself, center it.
   \ifvmode
     \imagevmodetrue
+  \else \ifx\centersub\centerV
+    % for @center @image, we need a vbox so we can have our vertical space
+    \imagevmodetrue
+    \vbox\bgroup % vbox has better behavior than vtop herev
+  \fi\fi
+  %
+  \ifimagevmode
     \nobreak\medskip
     % Usually we'll have text after the image which will insert
     % \parskip glue, so insert it here too to equalize the space
@@ -8314,9 +8371,13 @@ end
   \fi
   %
   % Leave vertical mode so that indentation from an enclosing
-  % environment such as @quotation is respected.  On the other hand, if
-  % it's at the top level, we don't want the normal paragraph indentation.
-  \noindent
+  %  environment such as @quotation is respected.
+  % However, if we're at the top level, we don't want the
+  %  normal paragraph indentation.
+  % On the other hand, if we are in the case of @center @image, we don't
+  %  want to start a paragraph, which will create a hsize-width box and
+  %  eradicate the centering.
+  \ifx\centersub\centerV\else \noindent \fi
   %
   % Output the image.
   \ifpdf
@@ -8328,7 +8389,10 @@ end
     \epsfbox{#1.eps}%
   \fi
   %
-  \ifimagevmode \medskip \fi  % space after the standalone image
+  \ifimagevmode
+    \medskip  % space after a standalone image
+  \fi  
+  \ifx\centersub\centerV \egroup \fi
 \endgroup}
 
 
index 2b64630..663347a 100755 (executable)
@@ -10,7 +10,7 @@ my $VERSION = '2012-01-06 07:23'; # UTC
 # If you change this file with Emacs, please let the write hook
 # do its job.  Otherwise, update this string manually.
 
-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index d477da8..7ec335f 100755 (executable)
@@ -4,7 +4,7 @@
 # Print a version string.
 scriptversion=2011-05-16.22; # UTC
 
-# Copyright (C) 2006-2012 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/cfg.mk b/cfg.mk
index 9e71e3f..a84f772 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -143,7 +143,7 @@ upload:
 web:
        echo generating documentation for $(PACKAGE)
        cd doc && $(SHELL) ../build-aux/gendocs.sh \
-               --html "--css-include=texinfo.css" \
+               --html "--css-include=./texinfo.css" \
                -o ../$(htmldir)/manual/ $(PACKAGE) "$(PACKAGE_NAME)"
        -cd doc && make gnutls.epub && cp gnutls.epub ../$(htmldir)/manual/
        cd doc && cp *.png ../$(htmldir)/manual/html_node/
index a3f43eb..1f664cd 100644 (file)
 #undef GETTIMEOFDAY_TIMEZONE
 
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fscanf shall be considered present. */
+#undef GNULIB_FSCANF
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module lock shall be considered present. */
+#undef GNULIB_LOCK
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module malloc-gnu shall be considered present. */
 #undef GNULIB_MALLOC_GNU
 
 #undef GNULIB_PROGRAM_INVOCATION_SHORT_NAME
 
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module scanf shall be considered present. */
+#undef GNULIB_SCANF
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module snprintf shall be considered present. */
 #undef GNULIB_SNPRINTF
 
 /* Define to 1 when the gnulib module getdelim should be tested. */
 #undef GNULIB_TEST_GETDELIM
 
+/* Define to 1 when the gnulib module getdtablesize should be tested. */
+#undef GNULIB_TEST_GETDTABLESIZE
+
 /* Define to 1 when the gnulib module getline should be tested. */
 #undef GNULIB_TEST_GETLINE
 
    don't. */
 #undef HAVE_DECL_VSNPRINTF
 
+/* Define to 1 if you have the declaration of `_putenv', and to 0 if you
+   don't. */
+#undef HAVE_DECL__PUTENV
+
 /* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
    don't. */
 #undef HAVE_DECL__SNPRINTF
 /* Define to 1 if you have the `getdelim' function. */
 #undef HAVE_GETDELIM
 
+/* Define to 1 if you have the `getdtablesize' function. */
+#undef HAVE_GETDTABLESIZE
+
 /* Define to 1 if you have the `gethostbyname' function. */
 #undef HAVE_GETHOSTBYNAME
 
 /* Define if you have the libpthread library. */
 #undef HAVE_LIBPTHREAD
 
-/* Define if you have the libtasn1 library. */
-#undef HAVE_LIBTASN1
-
 /* Define if you have the libz library. */
 #undef HAVE_LIBZ
 
 /* Define to 1 if scandir is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SCANDIR
 
+/* Define to 1 if secure_getenv is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SECURE_GETENV
+
 /* Define to 1 if select is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SELECT
 
 /* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
 #undef HAVE__SET_INVALID_PARAMETER_HANDLER
 
+/* Define to 1 if you have the `__fseterr' function. */
+#undef HAVE___FSETERR
+
 /* Define to 1 if you have the `__fsetlocking' function. */
 #undef HAVE___FSETLOCKING
 
    made weak. */
 #undef USE_SOLARIS_THREADS_WEAK
 
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable general extensions on OS X.  */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
+   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
 /* Define if the Win32 multithreading API can be used. */
 #undef USE_WIN32_THREADS
 
 # endif
 #endif
 
-/* Enable large inode numbers on Mac OS X 10.5.  */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
+/* Enable large inode numbers on Mac OS X 10.5. */
+#undef _DARWIN_USE_64_BIT_INODE
 
 /* Number of bits in a file offset, on hosts where this is settable. */
 #undef _FILE_OFFSET_BITS
 /* Define to 1 if on MINIX. */
 #undef _MINIX
 
+/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */
+#undef _NETBSD_SOURCE
+
 /* The _Noreturn keyword of C11.  */
 #if ! (defined _Noreturn \
        || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
 /* Define to 1 if you need to in order for 'stat' and other things to work. */
 #undef _POSIX_SOURCE
 
-/* Define to 500 only on HP-UX. */
-#undef _XOPEN_SOURCE
-
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable general extensions on MacOS X.  */
-#ifndef _DARWIN_C_SOURCE
-# undef _DARWIN_C_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
 /* Define to rpl_ if the getopt replacement functions and variables should be
    used. */
 #undef __GETOPT_PREFIX
 /* Define as a replacement for the ISO C99 __func__ variable. */
 #undef __func__
 
+/* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'.
+   _GL_EXTERN_INLINE is a portable alternative to 'extern inline'.
+   _GL_INLINE_HEADER_BEGIN contains useful stuff to put
+     in an include file, before uses of _GL_INLINE.
+     It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic,
+     when FOO is an inline function in the header; see
+     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.
+   _GL_INLINE_HEADER_END contains useful stuff to put
+     in the same include file, after uses of _GL_INLINE.
+
+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
+   <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+   Suppress the use of extern inline on Apple's platforms, as Libc at least
+   through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g.,
+   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+   Perhaps Apple will fix this some day.  */
+#if ((__GNUC__ \
+      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined __APPLE__)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__
+# if __GNUC_GNU_INLINE__
+   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
+#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+#  define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+#else
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
+#endif
+
+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif
+
 /* static lib rename */
 #undef fread_file
 
 /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
-   __APPLE__ && __MACH__ test for MacOS X.
+   __APPLE__ && __MACH__ test for Mac OS X.
    __APPLE_CC__ tests for the Apple compiler and its version.
    __STDC_VERSION__ tests for the C99 mode.  */
 #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
index a5ade0a..c3c82d5 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GnuTLS 3.0.21.
+# Generated by GNU Autoconf 2.69 for GnuTLS 3.0.30.
 #
 # Report bugs to <bug-gnutls@gnu.org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GnuTLS'
 PACKAGE_TARNAME='gnutls'
-PACKAGE_VERSION='3.0.21'
-PACKAGE_STRING='GnuTLS 3.0.21'
+PACKAGE_VERSION='3.0.30'
+PACKAGE_STRING='GnuTLS 3.0.30'
 PACKAGE_BUGREPORT='bug-gnutls@gnu.org'
 PACKAGE_URL=''
 
@@ -680,9 +680,9 @@ OBJDUMP
 DLLTOOL
 AS
 LN_S
+WERROR_CFLAGS
 WARN_CFLAGS
 WSTACK_CFLAGS
-WERROR_CFLAGS
 LIBTESTS_LIBDEPS
 abs_aux_dir
 NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H
@@ -1040,6 +1040,7 @@ REPLACE_REALLOC
 REPLACE_RANDOM_R
 REPLACE_PUTENV
 REPLACE_PTSNAME_R
+REPLACE_PTSNAME
 REPLACE_MKSTEMP
 REPLACE_MBTOWC
 REPLACE_MALLOC
@@ -1054,6 +1055,7 @@ HAVE_STRTOLL
 HAVE_STRTOD
 HAVE_DECL_SETENV
 HAVE_SETENV
+HAVE_SECURE_GETENV
 HAVE_RPMATCH
 HAVE_REALPATH
 HAVE_RANDOM_R
@@ -1081,6 +1083,7 @@ GNULIB_STRTOULL
 GNULIB_STRTOLL
 GNULIB_STRTOD
 GNULIB_SETENV
+GNULIB_SECURE_GETENV
 GNULIB_RPMATCH
 GNULIB_REALPATH
 GNULIB_REALLOC_POSIX
@@ -1661,7 +1664,6 @@ GTK_DOC_BUILD_HTML_FALSE
 GTK_DOC_BUILD_HTML_TRUE
 ENABLE_GTK_DOC_FALSE
 ENABLE_GTK_DOC_TRUE
-PKG_CONFIG
 HTML_DIR
 GTKDOC_MKPDF
 GTKDOC_REBASE
@@ -1806,10 +1808,9 @@ ENABLE_SRP_FALSE
 ENABLE_SRP_TRUE
 ENABLE_MINITASN1_FALSE
 ENABLE_MINITASN1_TRUE
-LIBTASN1_PREFIX
-LTLIBTASN1
-LIBTASN1
-HAVE_LIBTASN1
+LIBTASN1_LIBS
+LIBTASN1_CFLAGS
+PKG_CONFIG
 ENABLE_NETTLE_FALSE
 ENABLE_NETTLE_TRUE
 LIBNETTLE_PREFIX
@@ -1851,20 +1852,6 @@ NUMBER_VERSION
 PATCH_VERSION
 MINOR_VERSION
 MAJOR_VERSION
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-RANLIB
-ARFLAGS
-AR
-EGREP
-GREP
-CPP
 am__fastdepCXX_FALSE
 am__fastdepCXX_TRUE
 CXXDEPMODE
@@ -1876,6 +1863,12 @@ am__fastdepCCAS_TRUE
 CCASDEPMODE
 CCASFLAGS
 CCAS
+RANLIB
+ARFLAGS
+AR
+EGREP
+GREP
+CPP
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
@@ -1920,6 +1913,14 @@ am__isrc
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
 target_alias
 host_alias
 build_alias
@@ -1971,7 +1972,6 @@ with_gnu_ld
 enable_rpath
 with_libnettle_prefix
 with_included_libtasn1
-with_libtasn1_prefix
 enable_srp_authentication
 enable_psk_authentication
 enable_anon_authentication
@@ -2012,8 +2012,8 @@ enable_fast_install
 with_sysroot
 enable_libtool_lock
 with_default_trust_store_pkcs11
-with_default_trust_store_file
 with_default_crl_file
+with_default_trust_store_file
 enable_guile
 with___with_guile_site_dir
 enable_crywrap
@@ -2026,13 +2026,15 @@ CFLAGS
 LDFLAGS
 LIBS
 CPPFLAGS
+CPP
 CCAS
 CCASFLAGS
 CXX
 CXXFLAGS
 CCC
-CPP
 PKG_CONFIG
+LIBTASN1_CFLAGS
+LIBTASN1_LIBS
 P11_KIT_CFLAGS
 P11_KIT_LIBS
 CXXCPP
@@ -2578,7 +2580,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GnuTLS 3.0.21 to adapt to many kinds of systems.
+\`configure' configures GnuTLS 3.0.30 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2648,7 +2650,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GnuTLS 3.0.21:";;
+     short | recursive ) echo "Configuration of GnuTLS 3.0.30:";;
    esac
   cat <<\_ACEOF
 
@@ -2710,8 +2712,6 @@ Optional Packages:
   --without-libnettle-prefix     don't search for libnettle in includedir and libdir
   --with-included-libtasn1
                           use the included libtasn1
-  --with-libtasn1-prefix[=DIR]  search for libtasn1 in DIR/include and DIR/lib
-  --without-libtasn1-prefix     don't search for libtasn1 in includedir and libdir
   --with-html-dir=PATH    path to installed docs
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
@@ -2741,10 +2741,10 @@ Optional Packages:
                         (or the compiler's sysroot if not specified).
   --with-default-trust-store-pkcs11=URI
                           use the given pkcs11 uri as default trust store
-  --with-default-trust-store-file=FILE
-                          use the given file default trust store
   --with-default-crl-file=FILE
                           use the given CRL file as default
+  --with-default-trust-store-file=FILE
+                          use the given file default trust store
   --with-guile-site-dir   use the given directory as the Guile site (use with
                           care)
 
@@ -2756,12 +2756,16 @@ Some influential environment variables:
   LIBS        libraries to pass to the linker, e.g. -l<library>
   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
   CCAS        assembler compiler command (defaults to CC)
   CCASFLAGS   assembler compiler flags (defaults to CFLAGS)
   CXX         C++ compiler command
   CXXFLAGS    C++ compiler flags
-  CPP         C preprocessor
   PKG_CONFIG  path to pkg-config utility
+  LIBTASN1_CFLAGS
+              C compiler flags for LIBTASN1, overriding pkg-config
+  LIBTASN1_LIBS
+              linker flags for LIBTASN1, overriding pkg-config
   P11_KIT_CFLAGS
               C compiler flags for P11_KIT, overriding pkg-config
   P11_KIT_LIBS
@@ -2837,7 +2841,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GnuTLS configure 3.0.21
+GnuTLS configure 3.0.30
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2889,6 +2893,253 @@ fi
 
 } # ac_fn_c_try_compile
 
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## --------------------------------- ##
+## Report this to bug-gnutls@gnu.org ##
+## --------------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
 # ac_fn_cxx_try_compile LINENO
 # ----------------------------
 # Try to compile conftest.$ac_ext, and return whether this succeeded.
@@ -2927,253 +3178,6 @@ fi
 
 } # ac_fn_cxx_try_compile
 
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## --------------------------------- ##
-## Report this to bug-gnutls@gnu.org ##
-## --------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
 # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
 # --------------------------------------------
 # Tries to find the compile-time value of EXPR in a program that includes
@@ -3667,7 +3671,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GnuTLS $as_me 3.0.21, which was
+It was created by GnuTLS $as_me 3.0.30, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3956,7 +3960,7 @@ gl_header_list="$gl_header_list linewrap.h"
 gl_header_list="$gl_header_list arpa/inet.h"
 gl_func_list="$gl_func_list _set_invalid_parameter_handler"
 gl_header_list="$gl_header_list dirent.h"
-gl_func_list="$gl_func_list alarm"
+gl_func_list="$gl_func_list __fseterr"
 gl_header_list="$gl_header_list sys/stat.h"
 gl_header_list="$gl_header_list netdb.h"
 gl_header_list="$gl_header_list netinet/in.h"
@@ -3992,6 +3996,7 @@ gl_header_list="$gl_header_list sysexits.h"
 gl_func_list="$gl_func_list localtime_r"
 gl_func_list="$gl_func_list vasnprintf"
 gl_func_list="$gl_func_list ftruncate"
+gl_func_list="$gl_func_list getdtablesize"
 gl_header_list="$gl_header_list inttypes.h"
 gl_func_list="$gl_func_list lstat"
 gl_header_list="$gl_header_list sys/param.h"
@@ -4100,6 +4105,77 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
 
 am__api_version='1.11'
 
@@ -4429,7 +4505,6 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-
 mkdir_p="$MKDIR_P"
 case $mkdir_p in
   [\\/$]* | ?:[\\/]*) ;;
@@ -4540,7 +4615,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gnutls'
- VERSION='3.0.21'
+ VERSION='3.0.30'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5609,160 +5684,320 @@ else
 fi
 
 
-# By default we simply use the C compiler to build assembly code.
 
-test "${CCAS+set}" = set || CCAS=$CC
-test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
-depcc="$CCAS"   am_compiler_list=
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
 
-  am_cv_CCAS_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
-  am__universal=false
+else
+  ac_cv_path_GREP=$GREP
+fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
 
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-       continue
-      else
-       break
-      fi
-      ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CCAS_dependencies_compiler_type=$depmode
-        break
-      fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
     fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
   done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
 
-  cd ..
-  rm -rf conftest.dir
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
 else
-  am_cv_CCAS_dependencies_compiler_type=none
+  ac_cv_path_EGREP=$EGREP
 fi
 
+   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
-CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
 
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then
-  am__fastdepCCAS_TRUE=
-  am__fastdepCCAS_FALSE='#'
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
+$as_echo_n "checking for Minix Amsterdam compiler... " >&6; }
+if ${gl_cv_c_amsterdam_compiler+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  am__fastdepCCAS_TRUE='#'
-  am__fastdepCCAS_FALSE=
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef __ACK__
+Amsterdam
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Amsterdam" >/dev/null 2>&1; then :
+  gl_cv_c_amsterdam_compiler=yes
+else
+  gl_cv_c_amsterdam_compiler=no
 fi
+rm -f conftest*
 
 
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
+$as_echo "$gl_cv_c_amsterdam_compiler" >&6; }
+  if test -z "$AR"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      AR='cc -c.a'
+      if test -z "$ARFLAGS"; then
+        ARFLAGS='-o'
+      fi
+    else
+                  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
+if ${ac_cv_prog_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -5771,7 +6006,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -5781,32 +6016,28 @@ IFS=$as_save_IFS
 
 fi
 fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-    test -n "$CXX" && break
-  done
 fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -5815,7 +6046,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    ac_cv_prog_ac_ct_AR="ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -5825,21 +6056,17 @@ IFS=$as_save_IFS
 
 fi
 fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
+  if test "x$ac_ct_AR" = x; then
+    AR="ar"
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
@@ -5847,84 +6074,136 @@ yes:)
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
-    CXX=$ac_ct_CXX
+    AR=$ac_ct_AR
   fi
+else
+  AR="$ac_cv_prog_AR"
 fi
 
+      if test -z "$ARFLAGS"; then
+        ARFLAGS='cru'
+      fi
+    fi
+  else
+    if test -z "$ARFLAGS"; then
+      ARFLAGS='cru'
+    fi
   fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
+
+  if test -z "$RANLIB"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      RANLIB=':'
+    else
+            if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  ac_compiler_gnu=no
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
+
+    fi
+  fi
+
+
+if test "x$CC" != xcc; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
+$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
 else
-  GXX=
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
+$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
 fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
+set dummy $CC; ac_cc=`$as_echo "$2" |
+                     sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5935,28 +6214,120 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+   test -f conftest2.$ac_objext && { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
+then
+  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+  if test "x$CC" != xcc; then
+    # Test first that cc exists at all.
+    if { ac_try='cc -c conftest.$ac_ext >&5'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+      rm -f conftest2.*
+      if { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+        test -f conftest2.$ac_objext && { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
+      then
+       # cc works too.
+       :
+      else
+       # cc exists but doesn't like -o.
+       eval ac_cv_prog_cc_${ac_cc}_c_o=no
+      fi
+    fi
+  fi
 else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
 
-int
-main ()
-{
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-        CXXFLAGS="-g"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
 
 int
 main ()
@@ -5966,1123 +6337,279 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
 else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
+  ac_cv_header_stdc=no
 fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-       continue
-      else
-       break
-      fi
-      ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
 
-  cd ..
-  rm -rf conftest.dir
 else
-  am_cv_CXX_dependencies_compiler_type=none
+  ac_cv_header_stdc=no
 fi
+rm -f conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
 
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
 fi
-if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
 else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 #else
-# include <assert.h>
+# define ISLOWER(c) \
+                  (('a' <= (c) && (c) <= 'i') \
+                    || ('j' <= (c) && (c) <= 'r') \
+                    || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
 #endif
-                    Syntax error
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"; then :
 
 else
-  # Broken: fails on valid input.
-continue
+  ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
 
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
 fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
 
-    done
-    ac_cv_prog_CPP=$CPP
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
 fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
 
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                 inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
+
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
 
+
+
+  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+  MINIX=yes
 else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+  MINIX=
 fi
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
+  if test "$MINIX" = yes; then
 
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
 
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
 
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
+$as_echo "#define _MINIX 1" >>confdefs.h
 
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
 
+$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h
 
+  fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
-$as_echo_n "checking for Minix Amsterdam compiler... " >&6; }
-if ${gl_cv_c_amsterdam_compiler+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#ifdef __ACK__
-Amsterdam
-#endif
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
+int
+main ()
+{
 
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Amsterdam" >/dev/null 2>&1; then :
-  gl_cv_c_amsterdam_compiler=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_safe_to_define___extensions__=yes
 else
-  gl_cv_c_amsterdam_compiler=no
+  ac_cv_safe_to_define___extensions__=no
 fi
-rm -f conftest*
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
 
+  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
-$as_echo "$gl_cv_c_amsterdam_compiler" >&6; }
-  if test -z "$AR"; then
-    if test $gl_cv_c_amsterdam_compiler = yes; then
-      AR='cc -c.a'
-      if test -z "$ARFLAGS"; then
-        ARFLAGS='-o'
-      fi
-    else
-                  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h
 
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
 
+  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
 
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+$as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; }
+if ${ac_cv_should_define__xopen_source+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+  ac_cv_should_define__xopen_source=no
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+          #include <wchar.h>
+          mbstate_t x;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+             #define _XOPEN_SOURCE 500
+             #include <wchar.h>
+             mbstate_t x;
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_should_define__xopen_source=yes
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
+$as_echo "$ac_cv_should_define__xopen_source" >&6; }
+  test $ac_cv_should_define__xopen_source = yes &&
+    $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
 
-  if test "x$ac_ct_AR" = x; then
-    AR="ar"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
 
-      if test -z "$ARFLAGS"; then
-        ARFLAGS='cru'
-      fi
-    fi
-  else
-    if test -z "$ARFLAGS"; then
-      ARFLAGS='cru'
-    fi
-  fi
 
 
-  if test -z "$RANLIB"; then
-    if test $gl_cv_c_amsterdam_compiler = yes; then
-      RANLIB=':'
-    else
-            if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
 
 
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
 
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
 
-    fi
-  fi
 
+  # IEEE behaviour is the default on all CPUs except Alpha and SH
+  # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4
+  # and the GCC 4.1.2 manual).
+  case "$host_cpu" in
+    alpha*)
+      # On Alpha systems, a compiler option provides the behaviour.
+      # See the ieee(3) manual page, also available at
+      # <http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/0600____.HTM>
+      if test -n "$GCC"; then
+        # GCC has the option -mieee.
+        # For full IEEE compliance (rarely needed), use option -mieee-with-inexact.
+        CPPFLAGS="$CPPFLAGS -mieee"
+      else
+        # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact.
+        # For full IEEE compliance (rarely needed), use option -ieee_with_inexact.
+        CPPFLAGS="$CPPFLAGS -ieee"
+      fi
+      ;;
+    sh*)
+      if test -n "$GCC"; then
+        # GCC has the option -mieee.
+        CPPFLAGS="$CPPFLAGS -mieee"
+      fi
+      ;;
+  esac
 
-if test "x$CC" != xcc; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
-                     sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_source+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+  while :; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+#include <sys/types.h> /* for off_t */
+     #include <stdio.h>
 int
 main ()
 {
-
-  ;
-  return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-   test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-then
-  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
-  if test "x$CC" != xcc; then
-    # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.$ac_ext >&5'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-      rm -f conftest2.*
-      if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-        test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-      then
-       # cc works too.
-       :
-      else
-       # cc exists but doesn't like -o.
-       eval ac_cv_prog_cc_${ac_cc}_c_o=no
-      fi
-    fi
-  fi
-else
-  eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
-
-fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
-
-fi
-
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                 inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
-  MINIX=yes
-else
-  MINIX=
-fi
-
-
-  if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
-  fi
-
-        case "$host_os" in
-    hpux*)
-
-$as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
-
-      ;;
-  esac
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#         define __EXTENSIONS__ 1
-          $ac_includes_default
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_safe_to_define___extensions__=yes
-else
-  ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-  test $ac_cv_safe_to_define___extensions__ = yes &&
-    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
-  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
-  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-
-
-
-
-
-
-
-
-
-
-  # IEEE behaviour is the default on all CPUs except Alpha and SH
-  # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4
-  # and the GCC 4.1.2 manual).
-  case "$host_cpu" in
-    alpha*)
-      # On Alpha systems, a compiler option provides the behaviour.
-      # See the ieee(3) manual page, also available at
-      # <http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/0600____.HTM>
-      if test -n "$GCC"; then
-        # GCC has the option -mieee.
-        # For full IEEE compliance (rarely needed), use option -mieee-with-inexact.
-        CPPFLAGS="$CPPFLAGS -mieee"
-      else
-        # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact.
-        # For full IEEE compliance (rarely needed), use option -ieee_with_inexact.
-        CPPFLAGS="$CPPFLAGS -ieee"
-      fi
-      ;;
-    sh*)
-      if test -n "$GCC"; then
-        # GCC has the option -mieee.
-        CPPFLAGS="$CPPFLAGS -mieee"
-      fi
-      ;;
-  esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_source+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  while :; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h> /* for off_t */
-     #include <stdio.h>
-int
-main ()
-{
-int (*fp) (FILE *, off_t, int) = fseeko;
-     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+int (*fp) (FILE *, off_t, int) = fseeko;
+     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
   ;
   return 0;
 }
@@ -7152,9 +6679,9 @@ else
      if test "$GCC" != yes; then
        ac_save_CC=$CC
        while :; do
-        # IRIX 6.2 and later do not support large files by default,
-        # so use the C compiler's -n32 option if that helps.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+         # IRIX 6.2 and later do not support large files by default,
+         # so use the C compiler's -n32 option if that helps.
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -7163,8 +6690,8 @@ else
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -7173,16 +6700,16 @@ main ()
   return 0;
 }
 _ACEOF
-        if ac_fn_c_try_compile "$LINENO"; then :
+         if ac_fn_c_try_compile "$LINENO"; then :
   break
 fi
 rm -f core conftest.err conftest.$ac_objext
-        CC="$CC -n32"
-        if ac_fn_c_try_compile "$LINENO"; then :
+         CC="$CC -n32"
+         if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_largefile_CC=' -n32'; break
 fi
 rm -f core conftest.err conftest.$ac_objext
-        break
+         break
        done
        CC=$ac_save_CC
        rm -f conftest.$ac_ext
@@ -7209,8 +6736,8 @@ else
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -7233,8 +6760,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -7278,8 +6805,8 @@ else
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -7302,8 +6829,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -7334,6 +6861,8 @@ rm -rf conftest*
   fi
 
 
+$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h
+
 fi
 
    case $ac_cv_prog_cc_stdc in #(
@@ -7719,6 +7248,7 @@ fi
   # Code from module error:
   # Code from module extensions:
 
+  # Code from module extern-inline:
   # Code from module fcntl-h:
   # Code from module fcntl-h-tests:
   # Code from module fd-hook:
   # Code from module fseek-tests:
   # Code from module fseeko:
 
-  # Code from module fseeko-tests:
-  # Code from module fseterr:
-  # Code from module fseterr-tests:
-  # Code from module fstat:
-  # Code from module fstat-tests:
-  # Code from module ftell:
-  # Code from module ftell-tests:
-  # Code from module ftello:
+  # Code from module fseeko-tests:
+  # Code from module fseterr:
+  # Code from module fseterr-tests:
+  # Code from module fstat:
+  # Code from module fstat-tests:
+  # Code from module ftell:
+  # Code from module ftell-tests:
+  # Code from module ftello:
+
+  # Code from module ftello-tests:
+  # Code from module ftruncate:
+  # Code from module ftruncate-tests:
+  # Code from module func:
+  # Code from module func-tests:
+  # Code from module fwrite-tests:
+  # Code from module gendocs:
+  # Code from module getaddrinfo:
+  # Code from module getaddrinfo-tests:
+  # Code from module getcwd-lgpl:
+  # Code from module getcwd-lgpl-tests:
+  # Code from module getdelim:
+  # Code from module getdelim-tests:
+  # Code from module getdtablesize:
+  # Code from module getdtablesize-tests:
+  # Code from module getline:
+  # Code from module getline-tests:
+  # Code from module getopt-gnu:
+  # Code from module getopt-posix:
+  # Code from module getopt-posix-tests:
+  # Code from module getpagesize:
+  # Code from module getpass:
+  # Code from module getpeername:
+  # Code from module getpeername-tests:
+  # Code from module getsubopt:
+  # Code from module gettext:
+  # Code from module gettext-h:
+  # Code from module gettime:
+  # Code from module gettimeofday:
+  # Code from module gettimeofday-tests:
+  # Code from module gnumakefile:
+  # Code from module hash-pjw-bare:
+  # Code from module havelib:
+  # Code from module hostent:
+  # Code from module ignore-value:
+  # Code from module ignore-value-tests:
+  # Code from module include_next:
+  # Code from module inet_ntop:
+  # Code from module inet_ntop-tests:
+  # Code from module inet_pton:
+  # Code from module inet_pton-tests:
+  # Code from module intprops:
+  # Code from module intprops-tests:
+  # Code from module inttypes:
+  # Code from module inttypes-incomplete:
+  # Code from module inttypes-tests:
+  # Code from module ioctl:
+  # Code from module ioctl-tests:
+  # Code from module isnand-nolibm:
+  # Code from module isnand-nolibm-tests:
+  # Code from module isnanf-nolibm:
+  # Code from module isnanf-nolibm-tests:
+  # Code from module isnanl-nolibm:
+  # Code from module isnanl-nolibm-tests:
+  # Code from module largefile:
+
+  # Code from module lib-msvc-compat:
+  # Code from module lib-symbol-versions:
+  # Code from module listen:
+  # Code from module listen-tests:
+  # Code from module lock:
+  # Code from module lseek:
+  # Code from module lstat:
+  # Code from module lstat-tests:
+  # Code from module maintainer-makefile:
+  # Code from module malloc-gnu:
+  # Code from module malloc-gnu-tests:
+  # Code from module malloc-posix:
+  # Code from module malloca:
+  # Code from module malloca-tests:
+  # Code from module manywarnings:
+  # Code from module math:
+  # Code from module math-tests:
+  # Code from module memchr:
+  # Code from module memchr-tests:
+  # Code from module memmem-simple:
+  # Code from module mempcpy:
+  # Code from module minmax:
+  # Code from module msvc-inval:
+  # Code from module msvc-nothrow:
+  # Code from module multiarch:
+  # Code from module netdb:
+  # Code from module netdb-tests:
+  # Code from module netinet_in:
+  # Code from module netinet_in-tests:
+  # Code from module nocrash:
+  # Code from module open:
+  # Code from module open-tests:
+  # Code from module opendir:
+  # Code from module pathmax:
+  # Code from module pathmax-tests:
+  # Code from module perror:
+  # Code from module perror-tests:
+  # Code from module pipe-posix:
+  # Code from module pipe-posix-tests:
+  # Code from module pmccabe2html:
+  # Code from module printf-frexp:
+  # Code from module printf-frexp-tests:
+  # Code from module printf-frexpl:
+  # Code from module printf-frexpl-tests:
+  # Code from module printf-safe:
+  # Code from module progname:
+  # Code from module putenv:
+  # Code from module rawmemchr:
+  # Code from module rawmemchr-tests:
+  # Code from module read-file:
+  # Code from module read-file-tests:
+  # Code from module readdir:
+  # Code from module realloc-posix:
+  # Code from module recv:
+  # Code from module recv-tests:
+  # Code from module recvfrom:
+  # Code from module recvfrom-tests:
+  # Code from module same-inode:
+  # Code from module scandir:
+  # Code from module select:
+  # Code from module select-tests:
+  # Code from module send:
+  # Code from module send-tests:
+  # Code from module sendto:
+  # Code from module sendto-tests:
+  # Code from module servent:
+  # Code from module setenv:
+  # Code from module setenv-tests:
+  # Code from module setsockopt:
+  # Code from module setsockopt-tests:
+  # Code from module shutdown:
+  # Code from module shutdown-tests:
+  # Code from module signal-h:
+  # Code from module signal-h-tests:
+  # Code from module signbit:
+  # Code from module signbit-tests:
+  # Code from module size_max:
+  # Code from module sleep:
+  # Code from module sleep-tests:
+  # Code from module snippet/_Noreturn:
+  # Code from module snippet/arg-nonnull:
+  # Code from module snippet/c++defs:
+  # Code from module snippet/warn-on-use:
+  # Code from module snprintf:
+  # Code from module snprintf-tests:
+  # Code from module socket:
+  # Code from module socketlib:
+  # Code from module sockets:
+  # Code from module sockets-tests:
+  # Code from module socklen:
+  # Code from module ssize_t:
+  # Code from module stat:
+  # Code from module stat-tests:
+  # Code from module stdalign:
+  # Code from module stdalign-tests:
+  # Code from module stdarg:
+
+
+
+  # Code from module stdbool:
+  # Code from module stdbool-tests:
+  # Code from module stddef:
+  # Code from module stddef-tests:
+  # Code from module stdint:
+  # Code from module stdint-tests:
+  # Code from module stdio:
+  # Code from module stdio-tests:
+  # Code from module stdlib:
+  # Code from module stdlib-tests:
+  # Code from module strcase:
+  # Code from module strchrnul:
+  # Code from module strchrnul-tests:
+  # Code from module strdup-posix:
+  # Code from module strerror:
+  # Code from module strerror-override:
+  # Code from module strerror-tests:
+  # Code from module strerror_r-posix:
+  # Code from module strerror_r-posix-tests:
+  # Code from module string:
+  # Code from module string-tests:
+  # Code from module strings:
+  # Code from module strings-tests:
+  # Code from module strndup:
+  # Code from module strnlen:
+  # Code from module strnlen-tests:
+  # Code from module strtok_r:
+  # Code from module strverscmp:
+  # Code from module strverscmp-tests:
+  # Code from module symlink:
+  # Code from module symlink-tests:
+  # Code from module sys_ioctl:
+  # Code from module sys_ioctl-tests:
+  # Code from module sys_select:
+  # Code from module sys_select-tests:
+  # Code from module sys_socket:
+  # Code from module sys_socket-tests:
+  # Code from module sys_stat:
+  # Code from module sys_stat-tests:
+  # Code from module sys_time:
+  # Code from module sys_time-tests:
+  # Code from module sys_types:
+  # Code from module sys_types-tests:
+  # Code from module sys_uio:
+  # Code from module sys_uio-tests:
+  # Code from module sysexits:
+  # Code from module sysexits-tests:
+  # Code from module test-framework-sh:
+  # Code from module test-framework-sh-tests:
+  # Code from module threadlib:
+
+
+
+  # Code from module time:
+  # Code from module time-tests:
+  # Code from module time_r:
+  # Code from module timer-time:
+  # Code from module timespec:
+  # Code from module u64:
+  # Code from module u64-tests:
+  # Code from module unistd:
+  # Code from module unistd-tests:
+  # Code from module unsetenv:
+  # Code from module unsetenv-tests:
+  # Code from module useless-if-before-free:
+  # Code from module valgrind-tests:
+  # Code from module vasnprintf:
+  # Code from module vasnprintf-tests:
+  # Code from module vasprintf:
+  # Code from module vasprintf-tests:
+  # Code from module vc-list-files:
+  # Code from module vc-list-files-tests:
+  # Code from module verify:
+  # Code from module verify-tests:
+  # Code from module version-etc:
+  # Code from module version-etc-fsf:
+  # Code from module version-etc-tests:
+  # Code from module vfprintf-posix:
+  # Code from module vfprintf-posix-tests:
+  # Code from module vprintf-posix:
+  # Code from module vprintf-posix-tests:
+  # Code from module vsnprintf:
+  # Code from module vsnprintf-tests:
+  # Code from module warnings:
+  # Code from module wchar:
+  # Code from module wchar-tests:
+  # Code from module xsize:
+
+
+# By default we simply use the C compiler to build assembly code.
+
+test "${CCAS+set}" = set || CCAS=$CC
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+
+
+
+depcc="$CCAS"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CCAS_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CCAS_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CCAS_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
+CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then
+  am__fastdepCCAS_TRUE=
+  am__fastdepCCAS_FALSE='#'
+else
+  am__fastdepCCAS_TRUE='#'
+  am__fastdepCCAS_FALSE=
+fi
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CXX" && break
+done
+
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
+fi
+
+  fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+else
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+        CXXFLAGS="-g"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-  # Code from module ftello-tests:
-  # Code from module ftruncate:
-  # Code from module ftruncate-tests:
-  # Code from module func:
-  # Code from module func-tests:
-  # Code from module fwrite-tests:
-  # Code from module gendocs:
-  # Code from module getaddrinfo:
-  # Code from module getaddrinfo-tests:
-  # Code from module getcwd-lgpl:
-  # Code from module getcwd-lgpl-tests:
-  # Code from module getdelim:
-  # Code from module getdelim-tests:
-  # Code from module getline:
-  # Code from module getline-tests:
-  # Code from module getopt-gnu:
-  # Code from module getopt-posix:
-  # Code from module getopt-posix-tests:
-  # Code from module getpagesize:
-  # Code from module getpass:
-  # Code from module getpeername:
-  # Code from module getpeername-tests:
-  # Code from module getsubopt:
-  # Code from module gettext:
-  # Code from module gettext-h:
-  # Code from module gettime:
-  # Code from module gettimeofday:
-  # Code from module gettimeofday-tests:
-  # Code from module gnumakefile:
-  # Code from module havelib:
-  # Code from module hostent:
-  # Code from module ignore-value:
-  # Code from module ignore-value-tests:
-  # Code from module include_next:
-  # Code from module inet_ntop:
-  # Code from module inet_ntop-tests:
-  # Code from module inet_pton:
-  # Code from module inet_pton-tests:
-  # Code from module intprops:
-  # Code from module intprops-tests:
-  # Code from module inttypes:
-  # Code from module inttypes-incomplete:
-  # Code from module inttypes-tests:
-  # Code from module ioctl:
-  # Code from module ioctl-tests:
-  # Code from module isnand-nolibm:
-  # Code from module isnand-nolibm-tests:
-  # Code from module isnanf-nolibm:
-  # Code from module isnanf-nolibm-tests:
-  # Code from module isnanl-nolibm:
-  # Code from module isnanl-nolibm-tests:
-  # Code from module largefile:
+depcc="$CXX"  am_compiler_list=
 
-  # Code from module lib-msvc-compat:
-  # Code from module lib-symbol-versions:
-  # Code from module listen:
-  # Code from module listen-tests:
-  # Code from module lock:
-  # Code from module lseek:
-  # Code from module lstat:
-  # Code from module lstat-tests:
-  # Code from module maintainer-makefile:
-  # Code from module malloc-gnu:
-  # Code from module malloc-gnu-tests:
-  # Code from module malloc-posix:
-  # Code from module malloca:
-  # Code from module malloca-tests:
-  # Code from module manywarnings:
-  # Code from module math:
-  # Code from module math-tests:
-  # Code from module memchr:
-  # Code from module memchr-tests:
-  # Code from module memmem-simple:
-  # Code from module mempcpy:
-  # Code from module minmax:
-  # Code from module msvc-inval:
-  # Code from module msvc-nothrow:
-  # Code from module multiarch:
-  # Code from module netdb:
-  # Code from module netdb-tests:
-  # Code from module netinet_in:
-  # Code from module netinet_in-tests:
-  # Code from module nocrash:
-  # Code from module open:
-  # Code from module open-tests:
-  # Code from module opendir:
-  # Code from module pathmax:
-  # Code from module pathmax-tests:
-  # Code from module perror:
-  # Code from module perror-tests:
-  # Code from module pipe-posix:
-  # Code from module pipe-posix-tests:
-  # Code from module pmccabe2html:
-  # Code from module printf-frexp:
-  # Code from module printf-frexp-tests:
-  # Code from module printf-frexpl:
-  # Code from module printf-frexpl-tests:
-  # Code from module printf-safe:
-  # Code from module progname:
-  # Code from module putenv:
-  # Code from module rawmemchr:
-  # Code from module rawmemchr-tests:
-  # Code from module read-file:
-  # Code from module read-file-tests:
-  # Code from module readdir:
-  # Code from module realloc-posix:
-  # Code from module recv:
-  # Code from module recv-tests:
-  # Code from module recvfrom:
-  # Code from module recvfrom-tests:
-  # Code from module same-inode:
-  # Code from module scandir:
-  # Code from module select:
-  # Code from module select-tests:
-  # Code from module send:
-  # Code from module send-tests:
-  # Code from module sendto:
-  # Code from module sendto-tests:
-  # Code from module servent:
-  # Code from module setenv:
-  # Code from module setenv-tests:
-  # Code from module setsockopt:
-  # Code from module setsockopt-tests:
-  # Code from module shutdown:
-  # Code from module shutdown-tests:
-  # Code from module signal-h:
-  # Code from module signal-h-tests:
-  # Code from module signbit:
-  # Code from module signbit-tests:
-  # Code from module size_max:
-  # Code from module sleep:
-  # Code from module sleep-tests:
-  # Code from module snippet/_Noreturn:
-  # Code from module snippet/arg-nonnull:
-  # Code from module snippet/c++defs:
-  # Code from module snippet/warn-on-use:
-  # Code from module snprintf:
-  # Code from module snprintf-tests:
-  # Code from module socket:
-  # Code from module socketlib:
-  # Code from module sockets:
-  # Code from module sockets-tests:
-  # Code from module socklen:
-  # Code from module ssize_t:
-  # Code from module stat:
-  # Code from module stat-tests:
-  # Code from module stdalign:
-  # Code from module stdalign-tests:
-  # Code from module stdarg:
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
 
+  am_cv_CXX_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
 
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-  # Code from module stdbool:
-  # Code from module stdbool-tests:
-  # Code from module stddef:
-  # Code from module stddef-tests:
-  # Code from module stdint:
-  # Code from module stdint-tests:
-  # Code from module stdio:
-  # Code from module stdio-tests:
-  # Code from module stdlib:
-  # Code from module stdlib-tests:
-  # Code from module strcase:
-  # Code from module strchrnul:
-  # Code from module strchrnul-tests:
-  # Code from module strdup-posix:
-  # Code from module strerror:
-  # Code from module strerror-override:
-  # Code from module strerror-tests:
-  # Code from module strerror_r-posix:
-  # Code from module strerror_r-posix-tests:
-  # Code from module string:
-  # Code from module string-tests:
-  # Code from module strings:
-  # Code from module strings-tests:
-  # Code from module strndup:
-  # Code from module strnlen:
-  # Code from module strnlen-tests:
-  # Code from module strtok_r:
-  # Code from module strverscmp:
-  # Code from module strverscmp-tests:
-  # Code from module symlink:
-  # Code from module symlink-tests:
-  # Code from module sys_ioctl:
-  # Code from module sys_ioctl-tests:
-  # Code from module sys_select:
-  # Code from module sys_select-tests:
-  # Code from module sys_socket:
-  # Code from module sys_socket-tests:
-  # Code from module sys_stat:
-  # Code from module sys_stat-tests:
-  # Code from module sys_time:
-  # Code from module sys_time-tests:
-  # Code from module sys_types:
-  # Code from module sys_types-tests:
-  # Code from module sys_uio:
-  # Code from module sys_uio-tests:
-  # Code from module sysexits:
-  # Code from module sysexits-tests:
-  # Code from module test-framework-sh:
-  # Code from module test-framework-sh-tests:
-  # Code from module threadlib:
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
 
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CXX_dependencies_compiler_type=none
+fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
+else
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
+fi
 
-  # Code from module time:
-  # Code from module time-tests:
-  # Code from module time_r:
-  # Code from module timer-time:
-  # Code from module timespec:
-  # Code from module u64:
-  # Code from module u64-tests:
-  # Code from module unistd:
-  # Code from module unistd-tests:
-  # Code from module unsetenv:
-  # Code from module unsetenv-tests:
-  # Code from module useless-if-before-free:
-  # Code from module valgrind-tests:
-  # Code from module vasnprintf:
-  # Code from module vasnprintf-tests:
-  # Code from module vasprintf:
-  # Code from module vasprintf-tests:
-  # Code from module vc-list-files:
-  # Code from module vc-list-files-tests:
-  # Code from module verify:
-  # Code from module verify-tests:
-  # Code from module version-etc:
-  # Code from module version-etc-fsf:
-  # Code from module version-etc-tests:
-  # Code from module vfprintf-posix:
-  # Code from module vfprintf-posix-tests:
-  # Code from module vprintf-posix:
-  # Code from module vprintf-posix-tests:
-  # Code from module vsnprintf:
-  # Code from module vsnprintf-tests:
-  # Code from module warnings:
-  # Code from module wchar:
-  # Code from module wchar-tests:
-  # Code from module xsize:
 
 
 # For includes/gnutls/gnutls.h.in.
@@ -8556,15 +8608,131 @@ $as_echo "$gl_cv_solaris_64bit" >&6; }
   test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
 
 
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=0.9.0
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       else
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+               PKG_CONFIG=""
+       fi
+
+fi
+
   # Library code modified:                              REVISION++
   # Interfaces changed/added/removed:   CURRENT++       REVISION=0
   # Interfaces added:                             AGE++
   # Interfaces removed:                           AGE=0
-  LT_CURRENT=38
+  LT_CURRENT=39
 
-  LT_REVISION=0
+  LT_REVISION=5
 
-  LT_AGE=10
+  LT_AGE=11
 
 
   LT_SSL_CURRENT=27
 
   if test "$included_libtasn1" = "no"; then
 
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBTASN1" >&5
+$as_echo_n "checking for LIBTASN1... " >&6; }
 
-
-
-
-
-
-
-
-
-
-
-
-    use_additional=yes
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-
-# Check whether --with-libtasn1-prefix was given.
-if test "${with_libtasn1_prefix+set}" = set; then :
-  withval=$with_libtasn1_prefix;
-    if test "X$withval" = "Xno"; then
-      use_additional=no
+if test -n "$PKG_CONFIG"; then
+    if test -n "$LIBTASN1_CFLAGS"; then
+        pkg_cv_LIBTASN1_CFLAGS="$LIBTASN1_CFLAGS"
     else
-      if test "X$withval" = "X"; then
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/$acl_libdirstem"
-        if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
-          additional_libdir="$withval/$acl_libdirstem2"
-        fi
-      fi
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtasn1 >= 2.14\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libtasn1 >= 2.14") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBTASN1_CFLAGS=`$PKG_CONFIG --cflags "libtasn1 >= 2.14" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
     fi
-
+else
+       pkg_failed=untried
 fi
-
-      LIBTASN1=
-  LTLIBTASN1=
-  INCTASN1=
-  LIBTASN1_PREFIX=
-      HAVE_LIBTASN1=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='tasn1 '
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIBTASN1="${LTLIBTASN1}${LTLIBTASN1:+ }$value"
-          else
-                                    :
-          fi
-        else
-                              found_dir=
-          found_la=
-          found_so=
-          found_a=
-          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
-          if test -n "$acl_shlibext"; then
-            shrext=".$acl_shlibext"             # typically: shrext=.so
-          else
-            shrext=
-          fi
-          if test $use_additional = yes; then
-            dir="$additional_libdir"
-                                    if test -n "$acl_shlibext"; then
-              if test -f "$dir/$libname$shrext"; then
-                found_dir="$dir"
-                found_so="$dir/$libname$shrext"
-              else
-                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                  ver=`(cd "$dir" && \
-                        for f in "$libname$shrext".*; do echo "$f"; done \
-                        | sed -e "s,^$libname$shrext\\\\.,," \
-                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                        | sed 1q ) 2>/dev/null`
-                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                    found_dir="$dir"
-                    found_so="$dir/$libname$shrext.$ver"
-                  fi
-                else
-                  eval library_names=\"$acl_library_names_spec\"
-                  for f in $library_names; do
-                    if test -f "$dir/$f"; then
-                      found_dir="$dir"
-                      found_so="$dir/$f"
-                      break
-                    fi
-                  done
-                fi
-              fi
-            fi
-                        if test "X$found_dir" = "X"; then
-              if test -f "$dir/$libname.$acl_libext"; then
-                found_dir="$dir"
-                found_a="$dir/$libname.$acl_libext"
-              fi
-            fi
-            if test "X$found_dir" != "X"; then
-              if test -f "$dir/$libname.la"; then
-                found_la="$dir/$libname.la"
-              fi
-            fi
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIBTASN1; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-              case "$x" in
-                -L*)
-                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-                                    if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext"; then
-                      found_dir="$dir"
-                      found_so="$dir/$libname$shrext"
-                    else
-                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                        ver=`(cd "$dir" && \
-                              for f in "$libname$shrext".*; do echo "$f"; done \
-                              | sed -e "s,^$libname$shrext\\\\.,," \
-                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                              | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                          found_dir="$dir"
-                          found_so="$dir/$libname$shrext.$ver"
-                        fi
-                      else
-                        eval library_names=\"$acl_library_names_spec\"
-                        for f in $library_names; do
-                          if test -f "$dir/$f"; then
-                            found_dir="$dir"
-                            found_so="$dir/$f"
-                            break
-                          fi
-                        done
-                      fi
-                    fi
-                  fi
-                                    if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext"; then
-                      found_dir="$dir"
-                      found_a="$dir/$libname.$acl_libext"
-                    fi
-                  fi
-                  if test "X$found_dir" != "X"; then
-                    if test -f "$dir/$libname.la"; then
-                      found_la="$dir/$libname.la"
-                    fi
-                  fi
-                  ;;
-              esac
-              if test "X$found_dir" != "X"; then
-                break
-              fi
-            done
-          fi
-          if test "X$found_dir" != "X"; then
-                        LTLIBTASN1="${LTLIBTASN1}${LTLIBTASN1:+ }-L$found_dir -l$name"
-            if test "X$found_so" != "X"; then
-                                                        if test "$enable_rpath" = no \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
-                                LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$found_so"
-              else
-                                                                                haveit=
-                for x in $ltrpathdirs; do
-                  if test "X$x" = "X$found_dir"; then
-                    haveit=yes
-                    break
-                  fi
-                done
-                if test -z "$haveit"; then
-                  ltrpathdirs="$ltrpathdirs $found_dir"
-                fi
-                                if test "$acl_hardcode_direct" = yes; then
-                                                      LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$found_so"
-                else
-                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
-                                                            LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$found_so"
-                                                            haveit=
-                    for x in $rpathdirs; do
-                      if test "X$x" = "X$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      rpathdirs="$rpathdirs $found_dir"
-                    fi
-                  else
-                                                                                haveit=
-                    for x in $LDFLAGS $LIBTASN1; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIBTASN1="${LIBTASN1}${LIBTASN1:+ }-L$found_dir"
-                    fi
-                    if test "$acl_hardcode_minus_L" != no; then
-                                                                                        LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$found_so"
-                    else
-                                                                                                                                                                                LIBTASN1="${LIBTASN1}${LIBTASN1:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                                LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$found_a"
-              else
-                                                LIBTASN1="${LIBTASN1}${LIBTASN1:+ }-L$found_dir -l$name"
-              fi
-            fi
-                        additional_includedir=
-            case "$found_dir" in
-              */$acl_libdirstem | */$acl_libdirstem/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                if test "$name" = 'tasn1'; then
-                  LIBTASN1_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-              */$acl_libdirstem2 | */$acl_libdirstem2/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
-                if test "$name" = 'tasn1'; then
-                  LIBTASN1_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INCTASN1; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                                            INCTASN1="${INCTASN1}${INCTASN1:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-                        if test -n "$found_la"; then
-                                                        save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-                            for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
-                      haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIBTASN1; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LIBTASN1="${LIBTASN1}${LIBTASN1:+ }-L$additional_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIBTASN1; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LTLIBTASN1="${LTLIBTASN1}${LTLIBTASN1:+ }-L$additional_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                                                                  haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                                                                  haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-                    ;;
-                  *.la)
-                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                                        LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$dep"
-                    LTLIBTASN1="${LTLIBTASN1}${LTLIBTASN1:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-                                                            LIBTASN1="${LIBTASN1}${LIBTASN1:+ }-l$name"
-            LTLIBTASN1="${LTLIBTASN1}${LTLIBTASN1:+ }-l$name"
-          fi
-        fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$acl_hardcode_libdir_separator"; then
-                        alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
-      done
-            acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$acl_hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$flag"
+if test -n "$PKG_CONFIG"; then
+    if test -n "$LIBTASN1_LIBS"; then
+        pkg_cv_LIBTASN1_LIBS="$LIBTASN1_LIBS"
     else
-            for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$acl_hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIBTASN1="${LIBTASN1}${LIBTASN1:+ }$flag"
-      done
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtasn1 >= 2.14\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libtasn1 >= 2.14") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBTASN1_LIBS=`$PKG_CONFIG --libs "libtasn1 >= 2.14" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
     fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-            for found_dir in $ltrpathdirs; do
-      LTLIBTASN1="${LTLIBTASN1}${LTLIBTASN1:+ }-R$found_dir"
-    done
-  fi
-
-
-
-
-
-
-
-        ac_save_CPPFLAGS="$CPPFLAGS"
-
-  for element in $INCTASN1; do
-    haveit=
-    for x in $CPPFLAGS; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
+else
+       pkg_failed=untried
+fi
 
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
-    fi
-  done
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libtasn1" >&5
-$as_echo_n "checking for libtasn1... " >&6; }
-if ${ac_cv_libtasn1+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+if test $pkg_failed = yes; then
 
-    ac_save_LIBS="$LIBS"
-                                case " $LIBTASN1" in
-      *" -l"*) LIBS="$LIBS $LIBTASN1" ;;
-      *)       LIBS="$LIBTASN1 $LIBS" ;;
-    esac
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <libtasn1.h>
-int
-main ()
-{
-asn1_check_version (NULL)
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_libtasn1=yes
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
 else
-  ac_cv_libtasn1='no'
+        _pkg_short_errors_supported=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    LIBS="$ac_save_LIBS"
+        if test $_pkg_short_errors_supported = yes; then
+               LIBTASN1_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libtasn1 >= 2.14"`
+        else
+               LIBTASN1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libtasn1 >= 2.14"`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LIBTASN1_PKG_ERRORS" >&5
 
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                included_libtasn1=yes
+elif test $pkg_failed = untried; then
+       included_libtasn1=yes
+else
+       LIBTASN1_CFLAGS=$pkg_cv_LIBTASN1_CFLAGS
+       LIBTASN1_LIBS=$pkg_cv_LIBTASN1_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       :
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libtasn1" >&5
-$as_echo "$ac_cv_libtasn1" >&6; }
-  if test "$ac_cv_libtasn1" = yes; then
-    HAVE_LIBTASN1=yes
-
-$as_echo "#define HAVE_LIBTASN1 1" >>confdefs.h
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libtasn1" >&5
-$as_echo_n "checking how to link with libtasn1... " >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBTASN1" >&5
-$as_echo "$LIBTASN1" >&6; }
-  else
-    HAVE_LIBTASN1=no
-            CPPFLAGS="$ac_save_CPPFLAGS"
-    LIBTASN1=
-    LTLIBTASN1=
-    LIBTASN1_PREFIX=
-  fi
-
-
-
-
-
-
-
-    if test "$ac_cv_libtasn1" != yes; then
-      included_libtasn1=yes
+    if test "$included_libtasn1" = yes; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
   ***
   *** Libtasn1 was not found. Will use the included one.
 
 
 
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
-       if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
-  ac_pt_PKG_CONFIG=$PKG_CONFIG
-  # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $ac_pt_PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_pt_PKG_CONFIG" = x; then
-    PKG_CONFIG=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    PKG_CONFIG=$ac_pt_PKG_CONFIG
-  fi
-else
-  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-fi
-
-fi
-if test -n "$PKG_CONFIG"; then
-       _pkg_min_version=0.9.0
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
-       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-       else
-               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-               PKG_CONFIG=""
-       fi
-
-fi
-
-
     # Extract the first word of "gtkdoc-check", so it can be a program name with args.
 set dummy gtkdoc-check; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -15935,7 +15507,6 @@ $as_echo "$gl_cv_pragma_columns" >&6; }
 
 
 
-
         case "$host_os" in
     osf*)
 
@@ -16898,6 +16469,9 @@ booboo
 #if !defined ENOTRECOVERABLE
 booboo
 #endif
+#if !defined EILSEQ
+booboo
+#endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
@@ -17300,6 +16874,9 @@ $as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h
 fi
 
 
+
+
+
   GNULIB_ACOSF=0;
   GNULIB_ACOSL=0;
   GNULIB_ASINF=0;
 $as_echo "$gl_cv_func_frexp_no_libm" >&6; }
 
 
+      ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default"
+if test "x$ac_cv_have_decl_alarm" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ALARM $ac_have_decl
+_ACEOF
 
 
 
@@ -17987,6 +17572,11 @@ $as_echo "$gl_cv_func_fseeko" >&6; }
   fi
 
 
+
+
+
+
+
      GNULIB_FCHMODAT=0;
   GNULIB_FSTAT=0;
   GNULIB_FSTATAT=0;
@@ -18079,8 +17669,6 @@ fi
 
 
 
-
-
   :
 
 
@@ -19206,57 +18794,124 @@ done
 
   fi
 
-                    if test -z "$gl_replace_getopt"; then
+          if test -z "$gl_replace_getopt"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5
 $as_echo_n "checking whether getopt is POSIX compatible... " >&6; }
 if ${gl_cv_func_getopt_posix+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-                                                                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                                                if test $cross_compiling = no; then
+                              if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+
 #include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
 int
 main ()
 {
-int *p = &optreset; return optreset;
-  ;
+  static char program[] = "program";
+  static char a[] = "-a";
+  static char foo[] = "foo";
+  static char bar[] = "bar";
+  char *argv[] = { program, a, foo, bar, NULL };
+  int c;
+
+  c = getopt (4, argv, "ab");
+  if (!(c == 'a'))
+    return 1;
+  c = getopt (4, argv, "ab");
+  if (!(c == -1))
+    return 2;
+  if (!(optind == 2))
+    return 3;
   return 0;
 }
+
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_optind_min=1
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getopt_posix=maybe
+else
+  gl_cv_func_getopt_posix=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+          if test $gl_cv_func_getopt_posix = maybe; then
+                                    if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <getopt.h>
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
 int
 main ()
 {
-return !getopt_clip;
-  ;
+  static char program[] = "program";
+  static char donald[] = "donald";
+  static char p[] = "-p";
+  static char billy[] = "billy";
+  static char duck[] = "duck";
+  static char a[] = "-a";
+  static char bar[] = "bar";
+  char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+  int c;
+
+  c = getopt (7, argv, "+abp:q:");
+  if (!(c == -1))
+    return 4;
+  if (!(strcmp (argv[0], "program") == 0))
+    return 5;
+  if (!(strcmp (argv[1], "donald") == 0))
+    return 6;
+  if (!(strcmp (argv[2], "-p") == 0))
+    return 7;
+  if (!(strcmp (argv[3], "billy") == 0))
+    return 8;
+  if (!(strcmp (argv[4], "duck") == 0))
+    return 9;
+  if (!(strcmp (argv[5], "-a") == 0))
+    return 10;
+  if (!(strcmp (argv[6], "bar") == 0))
+    return 11;
+  if (!(optind == 1))
+    return 12;
   return 0;
 }
+
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_optind_min=1
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getopt_posix=maybe
 else
-  gl_optind_min=0
+  gl_cv_func_getopt_posix=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-                gl_save_CPPFLAGS=$CPPFLAGS
-        CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
-        if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-             mingw*)         gl_cv_func_getopt_posix="guessing no";;
-             darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
-             *)              gl_cv_func_getopt_posix="guessing yes";;
-           esac
 
+          fi
+          if test $gl_cv_func_getopt_posix = maybe; then
+                        if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -19268,78 +18923,17 @@ else
 int
 main ()
 {
-  {
-    static char program[] = "program";
-    static char a[] = "-a";
-    static char foo[] = "foo";
-    static char bar[] = "bar";
-    char *argv[] = { program, a, foo, bar, NULL };
-    int c;
-
-    optind = OPTIND_MIN;
-    opterr = 0;
-
-    c = getopt (4, argv, "ab");
-    if (!(c == 'a'))
-      return 1;
-    c = getopt (4, argv, "ab");
-    if (!(c == -1))
-      return 2;
-    if (!(optind == 2))
-      return 3;
-  }
-  /* Some internal state exists at this point.  */
-  {
-    static char program[] = "program";
-    static char donald[] = "donald";
-    static char p[] = "-p";
-    static char billy[] = "billy";
-    static char duck[] = "duck";
-    static char a[] = "-a";
-    static char bar[] = "bar";
-    char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
-    int c;
-
-    optind = OPTIND_MIN;
-    opterr = 0;
-
-    c = getopt (7, argv, "+abp:q:");
-    if (!(c == -1))
-      return 4;
-    if (!(strcmp (argv[0], "program") == 0))
-      return 5;
-    if (!(strcmp (argv[1], "donald") == 0))
-      return 6;
-    if (!(strcmp (argv[2], "-p") == 0))
-      return 7;
-    if (!(strcmp (argv[3], "billy") == 0))
-      return 8;
-    if (!(strcmp (argv[4], "duck") == 0))
-      return 9;
-    if (!(strcmp (argv[5], "-a") == 0))
-      return 10;
-    if (!(strcmp (argv[6], "bar") == 0))
-      return 11;
-    if (!(optind == 1))
-      return 12;
-  }
-  /* Detect MacOS 10.5, AIX 7.1 bug.  */
-  {
-    static char program[] = "program";
-    static char ab[] = "-ab";
-    char *argv[3] = { program, ab, NULL };
-    optind = OPTIND_MIN;
-    opterr = 0;
-    if (getopt (2, argv, "ab:") != 'a')
-      return 13;
-    if (getopt (2, argv, "ab:") != '?')
-      return 14;
-    if (optopt != 'b')
-      return 15;
-    if (optind != 2)
-      return 16;
-  }
-
+  static char program[] = "program";
+  static char ab[] = "-ab";
+  char *argv[3] = { program, ab, NULL };
+  if (getopt (2, argv, "ab:") != 'a')
+    return 13;
+  if (getopt (2, argv, "ab:") != '?')
+    return 14;
+  if (optopt != 'b')
+    return 15;
+  if (optind != 2)
+    return 16;
   return 0;
 }
 
@@ -19353,7 +18947,13 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-        CPPFLAGS=$gl_save_CPPFLAGS
+          fi
+        else
+          case "$host_os" in
+            darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";;
+            *)                       gl_cv_func_getopt_posix="guessing yes";;
+          esac
+        fi
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5
@@ -19384,11 +18984,7 @@ else
        POSIXLY_CORRECT=1
        export POSIXLY_CORRECT
        if test "$cross_compiling" = yes; then :
-           case $host_os:$ac_cv_have_decl_optreset in
-           *-gnu*:* | mingw*:*) gl_cv_func_getopt_gnu=no;;
-           *:yes)               gl_cv_func_getopt_gnu=no;;
-           *)                   gl_cv_func_getopt_gnu=yes;;
-         esac
+           gl_cv_func_getopt_gnu="guessing no"
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19399,7 +18995,7 @@ else
 
 #include <stdlib.h>
 #if defined __MACH__ && defined __APPLE__
-/* Avoid a crash on MacOS X.  */
+/* Avoid a crash on Mac OS X.  */
 #include <mach/mach.h>
 #include <mach/mach_error.h>
 #include <mach/thread_status.h>
@@ -19519,7 +19115,7 @@ main ()
              nocrash_init();
 
              /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw,
-                and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
+                and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
                 OSF/1 5.1, Solaris 10.  */
              {
                static char conftest[] = "conftest";
@@ -19530,7 +19126,7 @@ main ()
                  result |= 1;
              }
              /* This code succeeds on glibc 2.8, mingw,
-                and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+                and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
                 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x.  */
              {
                static char program[] = "program";
@@ -19559,7 +19155,7 @@ main ()
                if (getopt (3, argv, "-p") != 1)
                  result |= 16;
                else if (getopt (3, argv, "-p") != 'p')
-                 result |= 32;
+                 result |= 16;
              }
              /* This code fails on glibc 2.11.  */
              {
@@ -19569,9 +19165,9 @@ main ()
                char *argv[] = { program, b, a, NULL };
                optind = opterr = 0;
                if (getopt (3, argv, "+:a:b") != 'b')
-                 result |= 64;
+                 result |= 32;
                else if (getopt (3, argv, "+:a:b") != ':')
-                 result |= 64;
+                 result |= 32;
              }
              /* This code dumps core on glibc 2.14.  */
              {
@@ -19581,7 +19177,7 @@ main ()
                char *argv[] = { program, w, dummy, NULL };
                optind = opterr = 1;
                if (getopt (3, argv, "W;") != 'W')
-                 result |= 128;
+                 result |= 64;
              }
              return result;
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5
 $as_echo "$gl_cv_func_getopt_gnu" >&6; }
-    if test "$gl_cv_func_getopt_gnu" = "no"; then
+    if test "$gl_cv_func_getopt_gnu" != yes; then
       gl_replace_getopt=yes
-    fi
-  fi
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt_long function" >&5
+$as_echo_n "checking for working GNU getopt_long function... " >&6; }
+if ${gl_cv_func_getopt_long_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+              case "$host_os" in
+              openbsd*) gl_cv_func_getopt_long_gnu="guessing no";;
+              *)        gl_cv_func_getopt_long_gnu="guessing yes";;
+            esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <getopt.h>
+                #include <stddef.h>
+                #include <string.h>
+
+int
+main ()
+{
+static const struct option long_options[] =
+                  {
+                    { "xtremely-",no_argument,       NULL, 1003 },
+                    { "xtra",     no_argument,       NULL, 1001 },
+                    { "xtreme",   no_argument,       NULL, 1002 },
+                    { "xtremely", no_argument,       NULL, 1003 },
+                    { NULL,       0,                 NULL, 0 }
+                  };
+                /* This code fails on OpenBSD 5.0.  */
+                {
+                  static char program[] = "program";
+                  static char xtremel[] = "--xtremel";
+                  char *argv[] = { program, xtremel, NULL };
+                  int option_index;
+                  optind = 1; opterr = 0;
+                  if (getopt_long (2, argv, "", long_options, &option_index) != 1003)
+                    return 1;
+                }
+                return 0;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getopt_long_gnu=yes
+else
+  gl_cv_func_getopt_long_gnu=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_long_gnu" >&5
+$as_echo "$gl_cv_func_getopt_long_gnu" >&6; }
+      case "$gl_cv_func_getopt_long_gnu" in
+        *yes) ;;
+        *) gl_replace_getopt=yes ;;
+      esac
+    fi
+  fi
 
 
 
 
-  if test -n "$gl_replace_getopt"; then :
 
-fi
 
     REPLACE_GETOPT=1
 
@@ -19735,6 +19389,7 @@ _ACEOF
   GNULIB_REALLOC_POSIX=0;
   GNULIB_REALPATH=0;
   GNULIB_RPMATCH=0;
+  GNULIB_SECURE_GETENV=0;
   GNULIB_SETENV=0;
   GNULIB_STRTOD=0;
   GNULIB_STRTOLL=0;
@@ -19762,6 +19417,7 @@ _ACEOF
   HAVE_RANDOM_R=1;
   HAVE_REALPATH=1;
   HAVE_RPMATCH=1;
+  HAVE_SECURE_GETENV=1;
   HAVE_SETENV=1;
   HAVE_DECL_SETENV=1;
   HAVE_STRTOD=1;
@@ -19776,6 +19432,7 @@ _ACEOF
   REPLACE_MALLOC=0;
   REPLACE_MBTOWC=0;
   REPLACE_MKSTEMP=0;
+  REPLACE_PTSNAME=0;
   REPLACE_PTSNAME_R=0;
   REPLACE_PUTENV=0;
   REPLACE_RANDOM_R=0;
@@ -19791,9 +19448,7 @@ _ACEOF
 
 
 
-
-
-
+:
 
 
 
@@ -19981,8 +19636,8 @@ $as_echo "$gl_cv_sys_struct_timeval" >&6; }
   if test $gl_cv_sys_struct_timeval != yes; then
     HAVE_STRUCT_TIMEVAL=0
   else
-                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for correct struct timeval.tv_sec member" >&5
-$as_echo_n "checking for correct struct timeval.tv_sec member... " >&6; }
+                            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5
+$as_echo_n "checking for wide-enough struct timeval.tv_sec member... " >&6; }
 if ${gl_cv_sys_struct_timeval_tv_sec+:} false; then :
   $as_echo_n "(cached) " >&6
 else
@@ -20000,7 +19655,9 @@ int
 main ()
 {
 static struct timeval x;
-              typedef int verify_tv_sec_type[sizeof (x.tv_sec) == sizeof (time_t) ? 1 : -1];
+              typedef int verify_tv_sec_type[
+                sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1
+              ];
 
   ;
   return 0;
@@ -21548,7 +21205,7 @@ else
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_snprintf_retval_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
            darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on OpenBSD >= 3.9.
@@ -24316,19 +23973,6 @@ $as_echo "$gl_cv_next_time_h" >&6; }
 
 
 
-      ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "$ac_includes_default"
-if test "x$ac_cv_have_decl_localtime_r" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_LOCALTIME_R $ac_have_decl
-_ACEOF
-
-
-
 
 
 
@@ -24507,7 +24151,6 @@ _ACEOF
 
 
 
-
   for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -24560,7 +24203,7 @@ else
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_printf_sizes_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_sizes_c99="guessing no";;
            darwin*)              gl_cv_func_printf_sizes_c99="guessing yes";;
                                  # Guess yes on OpenBSD >= 3.9.
@@ -24702,7 +24345,7 @@ else
                                  # Guess yes on FreeBSD >= 6.
            freebsd[1-5]*)        gl_cv_func_printf_infinite="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_infinite="guessing no";;
            darwin*)              gl_cv_func_printf_infinite="guessing yes";;
                                  # Guess yes on HP-UX >= 11.
@@ -24849,7 +24492,7 @@ else
 
 #include <stdlib.h>
 #if defined __MACH__ && defined __APPLE__
-/* Avoid a crash on MacOS X.  */
+/* Avoid a crash on Mac OS X.  */
 #include <mach/mach.h>
 #include <mach/mach_error.h>
 #include <mach/thread_status.h>
@@ -25213,14 +24856,14 @@ int main ()
   if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
       || buf[0] == '0')
     result |= 8;
-  /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug.  */
+  /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug.  */
   if (sprintf (buf, "%.1a", 1.999) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
           && strcmp (buf, "0x2.0p+0") != 0
           && strcmp (buf, "0x4.0p-1") != 0
           && strcmp (buf, "0x8.0p-2") != 0))
     result |= 16;
-  /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
+  /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a
      glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>.  */
   if (sprintf (buf, "%.1La", 1.999L) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
@@ -25261,7 +24904,7 @@ else
                                  # Guess yes on FreeBSD >= 6.
            freebsd[1-5]*)        gl_cv_func_printf_directive_f="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_directive_f="guessing no";;
            darwin*)              gl_cv_func_printf_directive_f="guessing yes";;
                                  # Guess yes on Solaris >= 2.10.
@@ -25684,7 +25327,7 @@ else
 
 #include <stdlib.h>
 #if defined __MACH__ && defined __APPLE__
-/* Avoid a crash on MacOS X.  */
+/* Avoid a crash on Mac OS X.  */
 #include <mach/mach.h>
 #include <mach/mach_error.h>
 #include <mach/thread_status.h>
@@ -25845,8 +25488,9 @@ _ACEOF
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s conftest$ac_exeext; then
-            (./conftest
+            (./conftest 2>&5
              result=$?
+             $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $result" >&5
              if test $result != 0 && test $result != 77; then result=1; fi
              exit $result
             ) >/dev/null 2>/dev/null
@@ -26437,6 +26081,11 @@ $as_echo "$gl_cv_func_getcwd_posix_signature" >&6; }
 
 
 
+
+
+
+
+
   GNULIB_IMAXABS=0;
   GNULIB_IMAXDIV=0;
   GNULIB_STRTOIMAX=0;
@@ -26953,19 +26602,6 @@ done
 
 
 
-      ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default"
-if test "x$ac_cv_have_decl_alarm" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ALARM $ac_have_decl
-_ACEOF
-
-
-
 
 
 
@@ -27020,7 +26656,7 @@ fi
 
   gl_source_base='gl'
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -27031,7 +26667,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS accept.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -27124,7 +26760,7 @@ done
     HAVE_ALPHASORT=0
   fi
 
-if test $HAVE_ALPHASORT = 0; then
+  if test $HAVE_ALPHASORT = 0; then
 
 
 
@@ -27135,8 +26771,8 @@ if test $HAVE_ALPHASORT = 0; then
 
   gl_LIBOBJS="$gl_LIBOBJS alphasort.$ac_objext"
 
-  :
-fi
+    :
+  fi
 
 
 
@@ -27160,8 +26796,15 @@ $as_echo "#define GNULIB_TEST_ALPHASORT 1" >>confdefs.h
   ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
 "
 if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-$as_echo "#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
 
 else
 
   ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
 "
 if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-$as_echo "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
 
 else
 
@@ -27513,8 +27163,7 @@ fi
 
 
 
-
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -27525,7 +27174,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS bind.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -27699,7 +27348,7 @@ done
 
 
 
-if test $REPLACE_CLOSE = 1; then
+  if test $REPLACE_CLOSE = 1; then
 
 
 
@@ -27710,7 +27359,7 @@ if test $REPLACE_CLOSE = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -27745,7 +27394,7 @@ done
   fi
 
 
-if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+  if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
 
 
 
@@ -27756,7 +27405,7 @@ if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS closedir.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -27773,7 +27422,7 @@ $as_echo "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -27784,7 +27433,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS connect.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -27976,6 +27625,122 @@ $as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
 
 
 
+
+
+
+$as_echo "#define HAVE_DUP2 1" >>confdefs.h
+
+
+  if test $HAVE_DUP2 = 1; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
+$as_echo_n "checking whether dup2 works... " >&6; }
+if ${gl_cv_func_dup2_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+           mingw*) # on this platform, dup2 always returns 0 for success
+             gl_cv_func_dup2_works="guessing no" ;;
+           cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
+             gl_cv_func_dup2_works="guessing no" ;;
+           linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a
+                   # closed fd may yield -EBADF instead of -1 / errno=EBADF.
+             gl_cv_func_dup2_works="guessing no" ;;
+           freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF.
+             gl_cv_func_dup2_works="guessing no" ;;
+           haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+             gl_cv_func_dup2_works="guessing no" ;;
+           *) gl_cv_func_dup2_works="guessing yes" ;;
+         esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+         #include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+int
+main ()
+{
+int result = 0;
+#ifdef FD_CLOEXEC
+            if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+              result |= 1;
+#endif
+            if (dup2 (1, 1) == 0)
+              result |= 2;
+#ifdef FD_CLOEXEC
+            if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+              result |= 4;
+#endif
+            close (0);
+            if (dup2 (0, 0) != -1)
+              result |= 8;
+            /* Many gnulib modules require POSIX conformance of EBADF.  */
+            if (dup2 (2, 1000000) == -1 && errno != EBADF)
+              result |= 16;
+            /* Flush out a cygwin core dump.  */
+            if (dup2 (2, -1) != -1 || errno != EBADF)
+              result |= 32;
+            return result;
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_dup2_works=yes
+else
+  gl_cv_func_dup2_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5
+$as_echo "$gl_cv_func_dup2_works" >&6; }
+    case "$gl_cv_func_dup2_works" in
+      *yes) ;;
+      *)
+        REPLACE_DUP2=1
+        ;;
+    esac
+  fi
+
+
+  if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
+
+
+  fi
+
+
+
+
+
+          GNULIB_DUP2=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h
+
+
+
+
+
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
 $as_echo_n "checking for error_at_line... " >&6; }
 if ${ac_cv_lib_error_at_line+:} false; then :
@@ -28003,7 +27768,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
 $as_echo "$ac_cv_lib_error_at_line" >&6; }
 
-if test $ac_cv_lib_error_at_line = no; then
+  if test $ac_cv_lib_error_at_line = no; then
 
 
 
@@ -28016,10 +27781,9 @@ if test $ac_cv_lib_error_at_line = no; then
 
 
 
-
   :
 
-fi
+  fi
 
 
   XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
@@ -28031,6 +27795,7 @@ fi
 
 
 
+
   FLOAT_H=
   REPLACE_FLOAT_LDBL=0
   case "$host_os" in
@@ -28220,7 +27985,7 @@ fi
 
 
 
-if test $REPLACE_FLOAT_LDBL = 1; then
+  if test $REPLACE_FLOAT_LDBL = 1; then
 
 
 
@@ -28231,8 +27996,8 @@ if test $REPLACE_FLOAT_LDBL = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
 
-fi
-if test $REPLACE_ITOLD = 1; then
+  fi
+  if test $REPLACE_ITOLD = 1; then
 
 
 
@@ -28243,7 +28008,7 @@ if test $REPLACE_ITOLD = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -28276,13 +28041,14 @@ else
 #include <float.h>
 #include <math.h>
 #include <string.h>
-#if HAVE_ALARM
+#if HAVE_DECL_ALARM
+# include <signal.h>
 # include <unistd.h>
 #endif
 /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
    ICC 10.0 has a bug when optimizing the expression -zero.
    The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
-   to PowerPC on MacOS X 10.5.  */
+   to PowerPC on Mac OS X 10.5.  */
 #if defined __hpux || defined __sgi || defined __ICC
 static double
 compute_minus_zero (void)
@@ -28299,9 +28065,10 @@ int main()
   int i;
   volatile double x;
   double zero = 0.0;
-#if HAVE_ALARM
+#if HAVE_DECL_ALARM
   /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite
      number.  Let the test fail in this case.  */
+  signal (SIGALRM, SIG_DFL);
   alarm (5);
 #endif
   /* Test on denormalized numbers.  */
@@ -28363,7 +28130,7 @@ $as_echo "#define HAVE_FREXP_IN_LIBC 1" >>confdefs.h
 
   fi
 
-if test $gl_func_frexp_no_libm != yes; then
+  if test $gl_func_frexp_no_libm != yes; then
 
 
 
@@ -28374,7 +28141,7 @@ if test $gl_func_frexp_no_libm != yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS frexp.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -28492,7 +28259,7 @@ int main()
     if (exp != 5)
       result |= 1;
   }
-  /* Test on finite numbers that fails on MacOS X 10.4, because its frexpl
+  /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl
      function returns an invalid (incorrectly normalized) value: it returns
                y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
      but the correct result is
@@ -28531,7 +28298,7 @@ int main()
         int exp;
         long double y = frexpl (x, &exp);
         /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
-           exp = -16382, y = 0.5.  On MacOS X 10.5: exp = -16384, y = 0.5.  */
+           exp = -16382, y = 0.5.  On Mac OS X 10.5: exp = -16384, y = 0.5.  */
         if (exp != LDBL_MIN_EXP - 1)
           result |= 8;
       }
@@ -28576,7 +28343,7 @@ $as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h
     fi
   fi
 
-if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
+  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
 
 
 
@@ -28587,7 +28354,7 @@ if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
 
   gl_LIBOBJS="$gl_LIBOBJS frexpl.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -28610,7 +28377,7 @@ $as_echo "#define GNULIB_TEST_FREXPL 1" >>confdefs.h
     REPLACE_FSEEK=1
   fi
 
-if test $REPLACE_FSEEK = 1; then
+  if test $REPLACE_FSEEK = 1; then
 
 
 
@@ -28621,7 +28388,7 @@ if test $REPLACE_FSEEK = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS fseek.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -28698,7 +28465,7 @@ $as_echo "$gl_cv_func_fseeko" >&6; }
 
   fi
 
-if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+  if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
 
 
 
@@ -28722,7 +28489,7 @@ fi
 done
 
 
-fi
+  fi
 
 
 
@@ -28740,6 +28507,27 @@ $as_echo "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h
 
 
 
+  :
+
+
+
+
+
+
+  if test $ac_cv_func___fseterr = no; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fseterr.$ac_objext"
+
+  fi
+
+
 
 
   if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
@@ -28753,7 +28541,7 @@ $as_echo "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h
 
 
 
-if test $REPLACE_FSTAT = 1; then
+  if test $REPLACE_FSTAT = 1; then
 
 
 
@@ -28764,10 +28552,8 @@ if test $REPLACE_FSTAT = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext"
 
-
-
-
-fi
+    :
+  fi
 
 
 
@@ -28790,7 +28576,7 @@ $as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h
     REPLACE_FTELL=1
   fi
 
-if test $REPLACE_FTELL = 1; then
+  if test $REPLACE_FTELL = 1; then
 
 
 
@@ -28801,7 +28587,7 @@ if test $REPLACE_FTELL = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS ftell.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -28976,7 +28762,7 @@ $as_echo "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs
     fi
   fi
 
-if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then
+  if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then
 
 
 
@@ -29000,7 +28786,7 @@ fi
 done
 
 
-fi
+  fi
 
 
 
@@ -29296,7 +29082,6 @@ $as_echo "$gl_cv_func_gai_strerror_posix_signature" >&6; }
 
 
 
-
       ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -29453,7 +29238,7 @@ fi
 
 
 
-if test $HAVE_GETADDRINFO = 0; then
+  if test $HAVE_GETADDRINFO = 0; then
 
 
 
@@ -29464,8 +29249,8 @@ if test $HAVE_GETADDRINFO = 0; then
 
   gl_LIBOBJS="$gl_LIBOBJS getaddrinfo.$ac_objext"
 
-fi
-if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then
+  fi
+  if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then
 
 
 
@@ -29476,7 +29261,7 @@ if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS gai_strerror.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -29599,7 +29384,7 @@ $as_echo "$gl_cv_func_working_getdelim" >&6; }
     HAVE_DECL_GETDELIM=0
   fi
 
-if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+  if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
 
 
 
@@ -29635,7 +29420,7 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-fi
+  fi
 
 
 
@@ -29757,7 +29542,7 @@ $as_echo "$am_cv_func_working_getline" >&6; }
       ;;
   esac
 
-if test $REPLACE_GETLINE = 1; then
+  if test $REPLACE_GETLINE = 1; then
 
 
 
@@ -29771,7 +29556,7 @@ if test $REPLACE_GETLINE = 1; then
 
   :
 
-fi
+  fi
 
 
 
@@ -29792,7 +29577,7 @@ $as_echo "#define GNULIB_TEST_GETLINE 1" >>confdefs.h
 
 
 
-if test $REPLACE_GETOPT = 1; then
+  if test $REPLACE_GETOPT = 1; then
 
 
 
@@ -29822,8 +29607,8 @@ if test $REPLACE_GETOPT = 1; then
 
 
 
-    GNULIB_GL_UNISTD_H_GETOPT=1
-fi
+        GNULIB_GL_UNISTD_H_GETOPT=1
+  fi
 
 
 
@@ -29835,11 +29620,6 @@ $as_echo "#define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h
 
 
 
-
-  if test -n "$gl_replace_getopt"; then :
-
-fi
-
     REPLACE_GETOPT=1
 
   if test $REPLACE_GETOPT = 1; then
@@ -29852,7 +29632,7 @@ $as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
 
   fi
 
-if test $REPLACE_GETOPT = 1; then
+  if test $REPLACE_GETOPT = 1; then
 
 
 
@@ -29882,8 +29662,8 @@ if test $REPLACE_GETOPT = 1; then
 
 
 
-    GNULIB_GL_UNISTD_H_GETOPT=1
-fi
+        GNULIB_GL_UNISTD_H_GETOPT=1
+  fi
 
 
 
@@ -29912,7 +29692,7 @@ done
     HAVE_GETPASS=0
   fi
 
-if test $HAVE_GETPASS = 0; then
+  if test $HAVE_GETPASS = 0; then
 
 
 
@@ -29999,9 +29779,9 @@ _ACEOF
 
   :
 
-fi
+  fi
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -30012,7 +29792,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS getpeername.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -30043,7 +29823,7 @@ $as_echo "#define GNULIB_TEST_GETPEERNAME 1" >>confdefs.h
     HAVE_GETSUBOPT=0
   fi
 
-if test $HAVE_GETSUBOPT = 0; then
+  if test $HAVE_GETSUBOPT = 0; then
 
 
 
@@ -30054,8 +29834,8 @@ if test $HAVE_GETSUBOPT = 0; then
 
   gl_LIBOBJS="$gl_LIBOBJS getsubopt.$ac_objext"
 
-  :
-fi
+    :
+  fi
 
 
 
@@ -30247,7 +30027,7 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+  if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
 
 
 
@@ -30283,7 +30063,7 @@ fi
 done
 
 
-fi
+  fi
 
 
 
@@ -30299,13 +30079,13 @@ $as_echo "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h
 
 
 
-# Autoconf 2.61a.99 and earlier don't support linking a file only
-# in VPATH builds.  But since GNUmakefile is for maintainer use
-# only, it does not matter if we skip the link with older autoconf.
-# Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
-# builds, so use a shell variable to bypass this.
-GNUmakefile=GNUmakefile
-ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
+  # Autoconf 2.61a.99 and earlier don't support linking a file only
+  # in VPATH builds.  But since GNUmakefile is for maintainer use
+  # only, it does not matter if we skip the link with older autoconf.
+  # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
+  # builds, so use a shell variable to bypass this.
+  GNUmakefile=GNUmakefile
+  ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
 
 
                   HOSTENT_LIB=
@@ -30596,7 +30376,7 @@ _ACEOF
   fi
 
 
-if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then
+  if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then
 
 
 
@@ -30610,7 +30390,7 @@ if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then
 
 
 
-fi
+  fi
 
 
 
@@ -30793,7 +30573,7 @@ _ACEOF
   fi
 
 
-if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then
+  if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then
 
 
 
@@ -30807,7 +30587,7 @@ if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then
 
 
 
-fi
+  fi
 
 
 
@@ -30864,7 +30644,7 @@ $as_echo "#define HAVE_ISNAND_IN_LIBC 1" >>confdefs.h
 
   fi
 
-if test $gl_func_isnand_no_libm != yes; then
+  if test $gl_func_isnand_no_libm != yes; then
 
 
 
@@ -30878,7 +30658,7 @@ if test $gl_func_isnand_no_libm != yes; then
 
 
 
-fi
+  fi
 
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) can be used without linking with libm" >&5
@@ -31019,7 +30799,7 @@ $as_echo "#define HAVE_ISNANF_IN_LIBC 1" >>confdefs.h
     gl_func_isnanf_no_libm=no
   fi
 
-if test $gl_func_isnanf_no_libm != yes; then
+  if test $gl_func_isnanf_no_libm != yes; then
 
 
 
@@ -31141,7 +30921,7 @@ _ACEOF
   esac
 
 
-fi
+  fi
 
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(long double) can be used without linking with libm" >&5
@@ -31350,7 +31130,7 @@ $as_echo "#define HAVE_ISNANL_IN_LIBC 1" >>confdefs.h
 
   fi
 
-if test $gl_func_isnanl_no_libm != yes; then
+  if test $gl_func_isnanl_no_libm != yes; then
 
 
 
@@ -31477,7 +31257,7 @@ _ACEOF
 
 
 
-fi
+  fi
 
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc/ld supports -Wl,--output-def" >&5
@@ -31601,7 +31381,7 @@ fi
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -31612,7 +31392,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS listen.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -31722,7 +31502,7 @@ $as_echo "#define LSEEK_PIPE_BROKEN 1" >>confdefs.h
     REPLACE_LSEEK=1
   fi
 
-if test $REPLACE_LSEEK = 1; then
+  if test $REPLACE_LSEEK = 1; then
 
 
 
@@ -31733,7 +31513,7 @@ if test $REPLACE_LSEEK = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -31823,7 +31603,7 @@ else
 fi
 
 
-if test $REPLACE_MALLOC = 1; then
+  if test $REPLACE_MALLOC = 1; then
 
 
 
@@ -31834,7 +31614,7 @@ if test $REPLACE_MALLOC = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
 
-fi
+  fi
 
 
 cat >>confdefs.h <<_ACEOF
@@ -31853,7 +31633,7 @@ $as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
     REPLACE_MALLOC=1
   fi
 
-if test $REPLACE_MALLOC = 1; then
+  if test $REPLACE_MALLOC = 1; then
 
 
 
@@ -31864,7 +31644,7 @@ if test $REPLACE_MALLOC = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -31963,7 +31743,6 @@ $as_echo "$gl_cv_next_math_h" >&6; }
 
 
 
-
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5
 $as_echo_n "checking whether NAN macro works... " >&6; }
 if ${gl_cv_header_math_nan_works+:} false; then :
@@ -32071,7 +31850,7 @@ fi
 
 
 
-if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
 
 
 
@@ -32096,7 +31875,7 @@ fi
 done
 
 
-fi
+  fi
 
 
 
@@ -32228,7 +32007,7 @@ $as_echo "$gl_cv_func_memmem_works_always" >&6; }
   fi
   :
 
-if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
+  if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
 
 
 
@@ -32239,7 +32018,7 @@ if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -32276,7 +32055,7 @@ done
     HAVE_MEMPCPY=0
   fi
 
-if test $HAVE_MEMPCPY = 0; then
+  if test $HAVE_MEMPCPY = 0; then
 
 
 
@@ -32290,7 +32069,7 @@ if test $HAVE_MEMPCPY = 0; then
 
   :
 
-fi
+  fi
 
 
 
@@ -32327,7 +32106,7 @@ $as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
   fi
 
 
-if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
 
 
@@ -32338,11 +32117,11 @@ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext"
 
-fi
+  fi
 
 
 
-if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
 
 
@@ -32353,7 +32132,7 @@ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -32645,7 +32424,7 @@ done
   fi
 
 
-if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+  if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
 
 
 
@@ -32656,7 +32435,7 @@ if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS opendir.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -32672,7 +32451,7 @@ $as_echo "#define GNULIB_TEST_OPENDIR 1" >>confdefs.h
 
 
 
-# Extract the first word of "pmccabe", so it can be a program name with args.
+  # Extract the first word of "pmccabe", so it can be a program name with args.
 set dummy pmccabe; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
@@ -32744,13 +32523,14 @@ else
 #include <float.h>
 #include <math.h>
 #include <string.h>
-#if HAVE_ALARM
+#if HAVE_DECL_ALARM
+# include <signal.h>
 # include <unistd.h>
 #endif
 /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
    ICC 10.0 has a bug when optimizing the expression -zero.
    The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
-   to PowerPC on MacOS X 10.5.  */
+   to PowerPC on Mac OS X 10.5.  */
 #if defined __hpux || defined __sgi || defined __ICC
 static double
 compute_minus_zero (void)
@@ -32767,9 +32547,10 @@ int main()
   int i;
   volatile double x;
   double zero = 0.0;
-#if HAVE_ALARM
+#if HAVE_DECL_ALARM
   /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite
      number.  Let the test fail in this case.  */
+  signal (SIGALRM, SIG_DFL);
   alarm (5);
 #endif
   /* Test on denormalized numbers.  */
@@ -32956,7 +32737,7 @@ int main()
     if (exp != 5)
       result |= 1;
   }
-  /* Test on finite numbers that fails on MacOS X 10.4, because its frexpl
+  /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl
      function returns an invalid (incorrectly normalized) value: it returns
                y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
      but the correct result is
@@ -32995,7 +32776,7 @@ int main()
         int exp;
         long double y = frexpl (x, &exp);
         /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
-           exp = -16382, y = 0.5.  On MacOS X 10.5: exp = -16384, y = 0.5.  */
+           exp = -16382, y = 0.5.  On Mac OS X 10.5: exp = -16384, y = 0.5.  */
         if (exp != LDBL_MIN_EXP - 1)
           result |= 8;
       }
@@ -33154,7 +32935,7 @@ fi
   fi
 
 
-ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+  ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
 "
 if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
   ac_have_decl=1
@@ -33166,7 +32947,7 @@ cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
 _ACEOF
 
-ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+  ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
 "
 if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
   ac_have_decl=1
@@ -33197,7 +32978,7 @@ done
     HAVE_RAWMEMCHR=0
   fi
 
-if test $HAVE_RAWMEMCHR = 0; then
+  if test $HAVE_RAWMEMCHR = 0; then
 
 
 
@@ -33208,8 +32989,8 @@ if test $HAVE_RAWMEMCHR = 0; then
 
   gl_LIBOBJS="$gl_LIBOBJS rawmemchr.$ac_objext"
 
-  :
-fi
+    :
+  fi
 
 
 
@@ -33225,7 +33006,7 @@ $as_echo "#define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h
 
 
 
-:
+  :
 
 
 
@@ -33244,7 +33025,7 @@ done
     HAVE_READDIR=0
   fi
 
-if test $HAVE_READDIR = 0; then
+  if test $HAVE_READDIR = 0; then
 
 
 
@@ -33255,7 +33036,7 @@ if test $HAVE_READDIR = 0; then
 
   gl_LIBOBJS="$gl_LIBOBJS readdir.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33282,7 +33063,7 @@ $as_echo "#define HAVE_REALLOC_POSIX 1" >>confdefs.h
     REPLACE_REALLOC=1
   fi
 
-if test $REPLACE_REALLOC = 1; then
+  if test $REPLACE_REALLOC = 1; then
 
 
 
@@ -33293,7 +33074,7 @@ if test $REPLACE_REALLOC = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33310,7 +33091,7 @@ $as_echo "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -33321,7 +33102,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS recv.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33338,7 +33119,7 @@ $as_echo "#define GNULIB_TEST_RECV 1" >>confdefs.h
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -33349,7 +33130,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS recvfrom.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33385,7 +33166,7 @@ done
     HAVE_SCANDIR=0
   fi
 
-if test $HAVE_SCANDIR = 0; then
+  if test $HAVE_SCANDIR = 0; then
 
 
 
@@ -33396,8 +33177,8 @@ if test $HAVE_SCANDIR = 0; then
 
   gl_LIBOBJS="$gl_LIBOBJS scandir.$ac_objext"
 
-  :
-fi
+    :
+  fi
 
 
 
@@ -33475,6 +33256,69 @@ $as_echo "$gl_cv_func_select_supports0" >&6; }
       *yes) ;;
       *) REPLACE_SELECT=1 ;;
     esac
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether select detects invalid fds" >&5
+$as_echo_n "checking whether select detects invalid fds... " >&6; }
+if ${gl_cv_func_select_detects_ebadf+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        if test "$cross_compiling" = yes; then :
+
+           case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_select_detects_ebadf="guessing no" ;;
+           esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <sys/time.h>
+#if HAVE_SYS_SELECT_H
+# include <sys/select.h>
+#endif
+#include <unistd.h>
+#include <errno.h>
+
+int
+main ()
+{
+
+  fd_set set;
+  dup2(0, 16);
+  FD_ZERO(&set);
+  FD_SET(16, &set);
+  close(16);
+  struct timeval timeout;
+  timeout.tv_sec = 0;
+  timeout.tv_usec = 5;
+  return select (17, &set, NULL, NULL, &timeout) != -1 || errno != EBADF;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_select_detects_ebadf=yes
+else
+  gl_cv_func_select_detects_ebadf=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_detects_ebadf" >&5
+$as_echo "$gl_cv_func_select_detects_ebadf" >&6; }
+    case $gl_cv_func_select_detects_ebadf in
+      *yes) ;;
+      *) REPLACE_SELECT=1 ;;
+    esac
   fi
 
     LIB_SELECT="$LIBSOCKET"
@@ -33505,7 +33349,7 @@ rm -f core conftest.err conftest.$ac_objext \
   fi
 
 
-if test $REPLACE_SELECT = 1; then
+  if test $REPLACE_SELECT = 1; then
 
 
 
@@ -33516,7 +33360,7 @@ if test $REPLACE_SELECT = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS select.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33533,7 +33377,7 @@ $as_echo "#define GNULIB_TEST_SELECT 1" >>confdefs.h
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -33544,7 +33388,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS send.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33561,7 +33405,7 @@ $as_echo "#define GNULIB_TEST_SEND 1" >>confdefs.h
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -33572,7 +33416,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS sendto.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33706,7 +33550,7 @@ done
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -33717,7 +33561,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS setsockopt.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33734,7 +33578,7 @@ $as_echo "#define GNULIB_TEST_SETSOCKOPT 1" >>confdefs.h
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -33745,7 +33589,7 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS shutdown.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -33952,7 +33796,7 @@ double m0d = -p0d;
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use another constant expression instead.
    But that expression does not work on other platforms, such as when
-   cross-compiling to PowerPC on MacOS X 10.5.  */
+   cross-compiling to PowerPC on Mac OS X 10.5.  */
 long double p0l = 0.0L;
 #if defined __hpux || defined __sgi
 long double m0l = -LDBL_MIN * LDBL_MIN;
@@ -34067,7 +33911,7 @@ double m0d = -p0d;
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use another constant expression instead.
    But that expression does not work on other platforms, such as when
-   cross-compiling to PowerPC on MacOS X 10.5.  */
+   cross-compiling to PowerPC on Mac OS X 10.5.  */
 long double p0l = 0.0L;
 #if defined __hpux || defined __sgi
 long double m0l = -LDBL_MIN * LDBL_MIN;
@@ -34613,7 +34457,7 @@ $as_echo "#define HAVE_COPYSIGNL_IN_LIBC 1" >>confdefs.h
       ;;
   esac
 
-if test $REPLACE_SIGNBIT = 1; then
+  if test $REPLACE_SIGNBIT = 1; then
 
 
 
@@ -34644,7 +34488,7 @@ if test $REPLACE_SIGNBIT = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS signbitl.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -34847,7 +34691,7 @@ $as_echo "$gl_cv_func_sleep_works" >&6; }
     esac
   fi
 
-if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+  if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
 
 
 
@@ -34858,7 +34702,7 @@ if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -35056,7 +34900,7 @@ _ACEOF
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
@@ -35067,16 +34911,16 @@ if test "$ac_cv_header_winsock2_h" = yes; then
 
   gl_LIBOBJS="$gl_LIBOBJS socket.$ac_objext"
 
-fi
-# When this module is used, sockets may actually occur as file descriptors,
-# hence it is worth warning if the modules 'close' and 'ioctl' are not used.
+  fi
+  # When this module is used, sockets may actually occur as file descriptors,
+  # hence it is worth warning if the modules 'close' and 'ioctl' are not used.
 
 
 
-if test "$ac_cv_header_winsock2_h" = yes; then
-  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
-  SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
-fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
+  fi
 
 
 
@@ -35290,7 +35134,7 @@ $as_echo "$gl_cv_lib_socket" >&6; }
   :
 
 
-   ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "
+     ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "
 /* <sys/types.h> is not needed according to POSIX, but the
    <sys/socket.h> in i386-unknown-freebsd4.10 and
    powerpc-apple-darwin5.5 required it. */
@@ -35414,8 +35258,9 @@ else
             #if \
                 (__GNUC__ || __IBMC__ || __IBMCPP__ \
                  || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
-              int alignas (8) alignas_int = 1;
-              char test_alignas[_Alignof (alignas_int) == 8 ? 1 : -1];
+              struct alignas_test { char c; char alignas (8) alignas_8; };
+              char test_alignas[offsetof (struct alignas_test, alignas_8) == 8
+                                ? 1 : -1];
             #endif
 
 int
@@ -35787,7 +35632,6 @@ $as_echo "$gl_cv_next_stddef_h" >&6; }
 
 
 
-
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_stdio_h='<'stdio.h'>'
      else
@@ -35849,7 +35693,21 @@ $as_echo "$gl_cv_next_stdio_h" >&6; }
 
 
       GNULIB_FSCANF=1
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FSCANF 1
+_ACEOF
+
+
   GNULIB_SCANF=1
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_SCANF 1
+_ACEOF
+
+
   GNULIB_FGETC=1
   GNULIB_GETC=1
   GNULIB_GETCHAR=1
@@ -35982,7 +35840,7 @@ $as_echo "$gl_cv_next_stdlib_h" >&6; }
 
 
 
-    for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt     initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps     posix_openpt ptsname ptsname_r random random_r realpath rpmatch     setenv setstate setstate_r srandom srandom_r     strtod strtoll strtoull unlockpt unsetenv; do
+    for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt     initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps     posix_openpt ptsname ptsname_r random random_r realpath rpmatch     secure_getenv setenv setstate setstate_r srandom srandom_r     strtod strtoll strtoull unlockpt unsetenv; do
     as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
@@ -36080,7 +35938,7 @@ _ACEOF
   fi
 
 
-if test $HAVE_STRCASECMP = 0; then
+  if test $HAVE_STRCASECMP = 0; then
 
 
 
@@ -36094,8 +35952,8 @@ if test $HAVE_STRCASECMP = 0; then
 
   :
 
-fi
-if test $HAVE_STRNCASECMP = 0; then
+  fi
+  if test $HAVE_STRNCASECMP = 0; then
 
 
 
@@ -36109,7 +35967,7 @@ if test $HAVE_STRNCASECMP = 0; then
 
   :
 
-fi
+  fi
 
 
 
@@ -36191,7 +36049,7 @@ $as_echo "$gl_cv_func_strchrnul_works" >&6; }
     esac
   fi
 
-if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+  if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
 
 
 
@@ -36202,8 +36060,8 @@ if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS strchrnul.$ac_objext"
 
-  :
-fi
+    :
+  fi
 
 
 
@@ -36245,7 +36103,7 @@ $as_echo "#define GNULIB_TEST_STRCHRNUL 1" >>confdefs.h
     HAVE_DECL_STRDUP=0
   fi
 
-if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+  if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
 
 
 
@@ -36256,8 +36114,8 @@ if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext"
 
-  :
-fi
+    :
+  fi
 
 
 
@@ -36335,7 +36193,7 @@ $as_echo "$gl_cv_func_working_strerror" >&6; }
             REPLACE_STRERROR=1
   fi
 
-if test $REPLACE_STRERROR = 1; then
+  if test $REPLACE_STRERROR = 1; then
 
 
 
@@ -36346,7 +36204,7 @@ if test $REPLACE_STRERROR = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
 
-fi
+  fi
 
 
 cat >>confdefs.h <<_ACEOF
@@ -36371,7 +36229,7 @@ $as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h
 
 
 
-if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
 
 
 
@@ -36415,7 +36273,7 @@ done
   fi
 
 
-fi
+  fi
 
 
 
@@ -36469,7 +36327,7 @@ int
 main ()
 {
 
-#ifndef HAVE_DECL_STRNDUP
+#if !HAVE_DECL_STRNDUP
   extern
   #ifdef __cplusplus
   "C"
@@ -36504,7 +36362,7 @@ $as_echo "$gl_cv_func_strndup_works" >&6; }
     HAVE_STRNDUP=0
   fi
 
-if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+  if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
 
 
 
@@ -36515,7 +36373,7 @@ if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -36605,7 +36463,7 @@ test $ac_cv_func_strnlen_working = no && :
     fi
   fi
 
-if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
 
 
 
@@ -36616,8 +36474,8 @@ if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
 
   gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
 
-  :
-fi
+    :
+  fi
 
 
 
@@ -36722,7 +36580,7 @@ $as_echo "$gl_cv_func_strtok_r_works" >&6; }
     HAVE_DECL_STRTOK_R=0
   fi
 
-if test $HAVE_STRTOK_R = 0 || test $REPLACE_STRTOK_R = 1; then
+  if test $HAVE_STRTOK_R = 0 || test $REPLACE_STRTOK_R = 1; then
 
 
 
@@ -36736,7 +36594,7 @@ if test $HAVE_STRTOK_R = 0 || test $REPLACE_STRTOK_R = 1; then
 
   :
 
-fi
+  fi
 
 
 
@@ -36771,7 +36629,7 @@ done
     HAVE_STRVERSCMP=0
   fi
 
-if test $HAVE_STRVERSCMP = 0; then
+  if test $HAVE_STRVERSCMP = 0; then
 
 
 
@@ -36785,7 +36643,7 @@ if test $HAVE_STRVERSCMP = 0; then
 
   :
 
-fi
+  fi
 
 
 
@@ -37057,7 +36915,6 @@ fi
 
 
 
-
         case "$host_os" in
     osf*)
 
@@ -37400,8 +37257,6 @@ fi
 
 
 
-
-
   :
 
 
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_sys_types_h='<'sys/types.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
-$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
-if ${gl_cv_next_sys_types_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'sys/types.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
-$as_echo "$gl_cv_next_sys_types_h" >&6; }
-     fi
-     NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'sys/types.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_sys_types_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
   :
 
 
 
 
 
+      ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_localtime_r" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-  :
-
-
-
-
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_LOCALTIME_R $ac_have_decl
+_ACEOF
 
   if test $ac_cv_have_decl_localtime_r = no; then
     HAVE_DECL_LOCALTIME_R=0
@@ -37932,7 +37717,7 @@ $as_echo "$gl_cv_time_r_posix" >&6; }
     HAVE_LOCALTIME_R=0
   fi
 
-if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+  if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
 
 
 
@@ -37946,7 +37731,7 @@ if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
 
   :
 
-fi
+  fi
 
 
 
@@ -38041,7 +37826,7 @@ fi
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "Thread" >/dev/null 2>&1; then :
-  LIB_TIMER_TIME="$LIBMULTITHREAD $LIB_TIMER_TIME"
+  LIB_TIMER_TIME="$LIB_TIMER_TIME $LIBMULTITHREAD"
 fi
 rm -f conftest*
 
@@ -38058,11 +37843,7 @@ done
 
   LIBS=$gl_saved_libs
 
-
-
-
-
-
+  :
 
 
 
@@ -39247,126 +39028,6 @@ done
 
 
 
-$as_echo "#define HAVE_DUP2 1" >>confdefs.h
-
-
-  if test $HAVE_DUP2 = 1; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
-$as_echo_n "checking whether dup2 works... " >&6; }
-if ${gl_cv_func_dup2_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-           mingw*) # on this platform, dup2 always returns 0 for success
-             gl_cv_func_dup2_works="guessing no" ;;
-           cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
-             gl_cv_func_dup2_works="guessing no" ;;
-           linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a
-                   # closed fd may yield -EBADF instead of -1 / errno=EBADF.
-             gl_cv_func_dup2_works="guessing no" ;;
-           freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF.
-             gl_cv_func_dup2_works="guessing no" ;;
-           haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
-             gl_cv_func_dup2_works="guessing no" ;;
-           *) gl_cv_func_dup2_works="guessing yes" ;;
-         esac
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-         #include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-int
-main ()
-{
-int result = 0;
-#ifdef FD_CLOEXEC
-            if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
-              result |= 1;
-#endif
-            if (dup2 (1, 1) == 0)
-              result |= 2;
-#ifdef FD_CLOEXEC
-            if (fcntl (1, F_GETFD) != FD_CLOEXEC)
-              result |= 4;
-#endif
-            close (0);
-            if (dup2 (0, 0) != -1)
-              result |= 8;
-            /* Many gnulib modules require POSIX conformance of EBADF.  */
-            if (dup2 (2, 1000000) == -1 && errno != EBADF)
-              result |= 16;
-            return result;
-
-  ;
-  return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_dup2_works=yes
-else
-  gl_cv_func_dup2_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5
-$as_echo "$gl_cv_func_dup2_works" >&6; }
-    case "$gl_cv_func_dup2_works" in
-      *yes) ;;
-      *)
-        REPLACE_DUP2=1
-        ;;
-    esac
-  fi
-
-
-if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS dup2.$ac_objext"
-
-
-fi
-
-
-
-
-
-    if test "$GNULIB_DUP2" != 1; then
-        if test "$GNULIB_DUP2" = 0; then
-      GNULIB_DUP2=$gl_module_indicator_condition
-    else
-      GNULIB_DUP2="($GNULIB_DUP2 || $gl_module_indicator_condition)"
-    fi
-  fi
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h
-
-
-
-
-
-
-
-
-
     if test "$GNULIB_ENVIRON" != 1; then
         if test "$GNULIB_ENVIRON" = 0; then
       GNULIB_ENVIRON=$gl_module_indicator_condition
@@ -39529,10 +39190,8 @@ main (void)
   FILE *fp;
   errno = 0;
   fp = fdopen (-1, "r");
-  if (fp != NULL)
+  if (fp == NULL && errno == 0)
     return 1;
-  if (errno == 0)
-    return 2;
   return 0;
 }
 _ACEOF
@@ -39554,7 +39213,7 @@ $as_echo "$gl_cv_func_fdopen_works" >&6; }
     esac
   fi
 
-if test $REPLACE_FDOPEN = 1; then
+  if test $REPLACE_FDOPEN = 1; then
 
 
 
@@ -39566,7 +39225,7 @@ if test $REPLACE_FDOPEN = 1; then
   gltests_LIBOBJS="$gltests_LIBOBJS fdopen.$ac_objext"
 
 
-fi
+  fi
 
 
 
@@ -39614,7 +39273,7 @@ $as_echo "#define GNULIB_TEST_FDOPEN 1" >>confdefs.h
     HAVE_FTRUNCATE=0
   fi
 
-if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
+  if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
 
 
 
@@ -39626,7 +39285,6 @@ if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
   gltests_LIBOBJS="$gltests_LIBOBJS ftruncate.$ac_objext"
 
 
-
   for ac_func in chsize
 do :
   ac_fn_c_check_func "$LINENO" "chsize" "ac_cv_func_chsize"
@@ -39639,7 +39297,7 @@ fi
 done
 
 
-fi
+  fi
 
 
 
@@ -39673,7 +39331,7 @@ $as_echo "#define GNULIB_TEST_FTRUNCATE 1" >>confdefs.h
     ;;
   esac
 
-if test $REPLACE_GETCWD = 1; then
+  if test $REPLACE_GETCWD = 1; then
 
 
 
@@ -39684,7 +39342,7 @@ if test $REPLACE_GETCWD = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS getcwd-lgpl.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -39709,6 +39367,53 @@ $as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
 
 
 
+  :
+
+
+
+
+
+  if test $ac_cv_func_getdtablesize != yes; then
+    HAVE_GETDTABLESIZE=0
+  fi
+
+  if test $HAVE_GETDTABLESIZE = 0; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS getdtablesize.$ac_objext"
+
+    :
+  fi
+
+
+
+
+
+    if test "$GNULIB_GETDTABLESIZE" != 1; then
+        if test "$GNULIB_GETDTABLESIZE" = 0; then
+      GNULIB_GETDTABLESIZE=$gl_module_indicator_condition
+    else
+      GNULIB_GETDTABLESIZE="($GNULIB_GETDTABLESIZE || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
+
+
+
+
+
+
   for ac_func in getpagesize
 do :
   ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
@@ -39766,7 +39471,7 @@ else
 fi
 
 
-if test $REPLACE_GETPAGESIZE = 1; then
+  if test $REPLACE_GETPAGESIZE = 1; then
 
 
 
@@ -39777,7 +39482,7 @@ if test $REPLACE_GETPAGESIZE = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS getpagesize.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -39799,8 +39504,7 @@ $as_echo "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
 
 
 
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
 if ${ac_cv_c_bigendian+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -40024,7 +39728,7 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
  presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
  esac
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
 if ${ac_cv_c_bigendian+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -40556,7 +40260,7 @@ $as_echo "$gl_cv_func_ioctl_posix_signature" >&6; }
     fi
   fi
 
-if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
+  if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
 
 
 
@@ -40567,7 +40271,7 @@ if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS ioctl.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -41201,6 +40905,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
 
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_LOCK $gl_module_indicator_condition
+_ACEOF
+
+
+
+
 
   :
 
@@ -41219,7 +40930,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     HAVE_LSTAT=0
   fi
 
-if test $REPLACE_LSTAT = 1; then
+  if test $REPLACE_LSTAT = 1; then
 
 
 
@@ -41230,11 +40941,8 @@ if test $REPLACE_LSTAT = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS lstat.$ac_objext"
 
-
-
-  :
-
-fi
+    :
+  fi
 
 
 
@@ -41417,7 +41125,7 @@ $as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
 
 
 
-if test $REPLACE_OPEN = 1; then
+  if test $REPLACE_OPEN = 1; then
 
 
 
@@ -41430,10 +41138,9 @@ if test $REPLACE_OPEN = 1; then
 
 
 
-
   :
 
-fi
+  fi
 
 
 
@@ -41533,7 +41240,7 @@ $as_echo "$gl_cv_func_perror_works" >&6; }
       ;;
   esac
 
-if test $REPLACE_PERROR = 1; then
+  if test $REPLACE_PERROR = 1; then
 
 
 
@@ -41544,7 +41251,7 @@ if test $REPLACE_PERROR = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS perror.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -41580,7 +41287,7 @@ $as_echo "#define GNULIB_TEST_PERROR 1" >>confdefs.h
     HAVE_PIPE=0
   fi
 
-if test $HAVE_PIPE = 0; then
+  if test $HAVE_PIPE = 0; then
 
 
 
@@ -41591,7 +41298,7 @@ if test $HAVE_PIPE = 0; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS pipe.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -41674,7 +41381,7 @@ $as_echo "$gl_cv_func_svid_putenv" >&6; }
       ;;
   esac
 
-if test $REPLACE_PUTENV = 1; then
+  if test $REPLACE_PUTENV = 1; then
 
 
 
@@ -41685,8 +41392,21 @@ if test $REPLACE_PUTENV = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS putenv.$ac_objext"
 
+
+  ac_fn_c_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl__putenv" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__PUTENV $ac_have_decl
+_ACEOF
+
+
+  fi
+
 
 
 
@@ -41860,7 +41580,7 @@ $as_echo "$gl_cv_func_setenv_works" >&6; }
     esac
   fi
 
-if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
 
 
 
@@ -41871,7 +41591,7 @@ if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS setenv.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -42013,7 +41733,7 @@ $as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h
 ;;
   esac
 
-if test $REPLACE_STAT = 1; then
+  if test $REPLACE_STAT = 1; then
 
 
 
@@ -42024,11 +41744,8 @@ if test $REPLACE_STAT = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS stat.$ac_objext"
 
-
-
-  :
-
-fi
+    :
+  fi
 
 
 
@@ -42051,78 +41768,6 @@ $as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
-$as_echo_n "checking for wchar_t... " >&6; }
-if ${gt_cv_c_wchar_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-       wchar_t foo = (wchar_t)'\0';
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wchar_t=yes
-else
-  gt_cv_c_wchar_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
-$as_echo "$gt_cv_c_wchar_t" >&6; }
-  if test $gt_cv_c_wchar_t = yes; then
-
-$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
-
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
-$as_echo_n "checking for wint_t... " >&6; }
-if ${gt_cv_c_wint_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-       wint_t foo = (wchar_t)'\0';
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wint_t=yes
-else
-  gt_cv_c_wint_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
-$as_echo "$gt_cv_c_wint_t" >&6; }
-  if test $gt_cv_c_wint_t = yes; then
-
-$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
-
-  fi
 
 
 
@@ -42155,7 +41800,7 @@ $as_echo "#define HAVE_WINT_T 1" >>confdefs.h
     fi
   fi
 
-if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+  if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
 
 
 
@@ -42189,7 +41834,7 @@ if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
 
 
 
-fi
+  fi
 
 
 
@@ -42355,7 +42000,7 @@ $as_echo "$gl_cv_func_symlink_works" >&6; }
     esac
   fi
 
-if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+  if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
 
 
 
@@ -42366,7 +42011,7 @@ if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
 
   gltests_LIBOBJS="$gltests_LIBOBJS symlink.$ac_objext"
 
-fi
+  fi
 
 
 
@@ -42698,7 +42343,7 @@ $as_echo "$gl_cv_func_unsetenv_works" >&6; }
     esac
   fi
 
-if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
 
 
 
@@ -42719,7 +42364,7 @@ if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
 
 
 
-fi
+  fi
 
 
 
@@ -42812,7 +42457,7 @@ $as_echo_n "checking whether self tests are run under valgrind... " >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opt_valgrind_tests" >&5
 $as_echo "$opt_valgrind_tests" >&6; }
 
-abs_aux_dir=`cd "$ac_aux_dir"; pwd`
+  abs_aux_dir=`cd "$ac_aux_dir"; pwd`
 
 
 
 
 
 if test "$gl_gcc_warnings" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror" >&5
-$as_echo_n "checking whether C compiler handles -Werror... " >&6; }
-if ${gl_cv_warn_c__Werror+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether C compiler handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_c__Werror__Wunknown_warning_option+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Werror"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -42863,29 +42508,31 @@ main ()
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_warn_c__Werror=yes
+  gl_cv_warn_c__Werror__Wunknown_warning_option=yes
 else
-  gl_cv_warn_c__Werror=no
+  gl_cv_warn_c__Werror__Wunknown_warning_option=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror" >&5
-$as_echo "$gl_cv_warn_c__Werror" >&6; }
-if test "x$gl_cv_warn_c__Werror" = xyes; then :
-  as_fn_append WERROR_CFLAGS " -Werror"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_c__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_c__Werror__Wunknown_warning_option" = xyes; then :
+  gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+  gl_unknown_warnings_are_errors=
 fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wframe-larger-than=5120" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wframe-larger-than=5120" >&5
 $as_echo_n "checking whether C compiler handles -Wframe-larger-than=5120... " >&6; }
 if ${gl_cv_warn_c__Wframe_larger_than_5120+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wframe-larger-than=5120"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wframe-larger-than=5120"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -42931,6 +42578,7 @@ fi
   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"
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5
 $as_echo "$gl_cv_cc_nomfi_needed" >&6; }
     fi
+
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5
+$as_echo_n "checking whether -Wuninitialized is supported... " >&6; }
+    if ${gl_cv_cc_uninitialized_supported+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      gl_save_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -Werror -Wuninitialized"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_cc_uninitialized_supported=yes
+else
+  gl_cv_cc_uninitialized_supported=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      CFLAGS="$gl_save_CFLAGS"
+fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5
+$as_echo "$gl_cv_cc_uninitialized_supported" >&6; }
+
   fi
 
+  # List all gcc warning categories.
   gl_manywarn_set=
   for gl_manywarn_item in \
-    -Wall \
     -W \
-    -Wformat-y2k \
-    -Wformat-nonliteral \
-    -Wformat-security \
-    -Winit-self \
-    -Wmissing-include-dirs \
-    -Wswitch-default \
-    -Wswitch-enum \
-    -Wunused \
-    -Wunknown-pragmas \
-    -Wstrict-aliasing \
-    -Wstrict-overflow \
-    -Wsystem-headers \
-    -Wfloat-equal \
-    -Wtraditional \
-    -Wtraditional-conversion \
-    -Wdeclaration-after-statement \
-    -Wundef \
-    -Wshadow \
-    -Wunsafe-loop-optimizations \
-    -Wpointer-arith \
+    -Wabi \
+    -Waddress \
+    -Waggressive-loop-optimizations \
+    -Wall \
+    -Warray-bounds \
+    -Wattributes \
     -Wbad-function-cast \
-    -Wc++-compat \
-    -Wcast-qual \
-    -Wcast-align \
-    -Wwrite-strings \
-    -Wconversion \
-    -Wsign-conversion \
-    -Wlogical-op \
-    -Waggregate-return \
-    -Wstrict-prototypes \
-    -Wold-style-definition \
-    -Wmissing-prototypes \
-    -Wmissing-declarations \
-    -Wmissing-noreturn \
-    -Wmissing-format-attribute \
-    -Wpacked \
-    -Wpadded \
-    -Wredundant-decls \
-    -Wnested-externs \
-    -Wunreachable-code \
-    -Winline \
-    -Winvalid-pch \
-    -Wlong-long \
-    -Wvla \
-    -Wvolatile-register-var \
-    -Wdisabled-optimization \
-    -Wstack-protector \
-    -Woverlength-strings \
     -Wbuiltin-macro-redefined \
-    -Wmudflap \
-    -Wpacked-bitfield-compat \
-    -Wsync-nand \
-    ; do
-    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
-  done
-  # The following are not documented in the manual but are included in
-  # output from gcc --help=warnings.
-  for gl_manywarn_item in \
-    -Wattributes \
+    -Wcast-align \
+    -Wchar-subscripts \
+    -Wclobbered \
+    -Wcomment \
+    -Wcomments \
     -Wcoverage-mismatch \
-    -Wunused-macros \
-    ; do
-    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
-  done
-  # More warnings from gcc 4.6.2 --help=warnings.
-  for gl_manywarn_item in \
-    -Wabi \
     -Wcpp \
     -Wdeprecated \
     -Wdeprecated-declarations \
+    -Wdisabled-optimization \
     -Wdiv-by-zero \
     -Wdouble-promotion \
+    -Wempty-body \
     -Wendif-labels \
+    -Wenum-compare \
     -Wextra \
     -Wformat-contains-nul \
     -Wformat-extra-args \
+    -Wformat-nonliteral \
+    -Wformat-security \
+    -Wformat-y2k \
     -Wformat-zero-length \
-    -Wformat=2 \
+    -Wfree-nonheap-object \
+    -Wignored-qualifiers \
+    -Wimplicit \
+    -Wimplicit-function-declaration \
+    -Wimplicit-int \
+    -Winit-self \
+    -Winline \
+    -Wint-to-pointer-cast \
+    -Winvalid-memory-model \
+    -Winvalid-pch \
+    -Wjump-misses-init \
+    -Wlogical-op \
+    -Wmain \
+    -Wmaybe-uninitialized \
+    -Wmissing-braces \
+    -Wmissing-declarations \
+    -Wmissing-field-initializers \
+    -Wmissing-include-dirs \
+    -Wmissing-parameter-type \
+    -Wmissing-prototypes \
+    -Wmudflap \
     -Wmultichar \
+    -Wnarrowing \
+    -Wnested-externs \
+    -Wnonnull \
     -Wnormalized=nfc \
+    -Wold-style-declaration \
+    -Wold-style-definition \
     -Woverflow \
+    -Woverlength-strings \
+    -Woverride-init \
+    -Wpacked \
+    -Wpacked-bitfield-compat \
+    -Wparentheses \
+    -Wpointer-arith \
+    -Wpointer-sign \
     -Wpointer-to-int-cast \
     -Wpragmas \
+    -Wreturn-local-addr \
+    -Wreturn-type \
+    -Wsequence-point \
+    -Wshadow \
+    -Wsizeof-pointer-memaccess \
+    -Wstack-protector \
+    -Wstrict-aliasing \
+    -Wstrict-overflow \
+    -Wstrict-prototypes \
     -Wsuggest-attribute=const \
+    -Wsuggest-attribute=format \
     -Wsuggest-attribute=noreturn \
     -Wsuggest-attribute=pure \
+    -Wswitch \
+    -Wswitch-default \
+    -Wsync-nand \
+    -Wsystem-headers \
     -Wtrampolines \
+    -Wtrigraphs \
+    -Wtype-limits \
+    -Wuninitialized \
+    -Wunknown-pragmas \
+    -Wunsafe-loop-optimizations \
+    -Wunused \
+    -Wunused-but-set-parameter \
+    -Wunused-but-set-variable \
+    -Wunused-function \
+    -Wunused-label \
+    -Wunused-local-typedefs \
+    -Wunused-macros \
+    -Wunused-parameter \
+    -Wunused-result \
+    -Wunused-value \
+    -Wunused-variable \
+    -Wvarargs \
+    -Wvariadic-macros \
+    -Wvector-operation-performance \
+    -Wvla \
+    -Wvolatile-register-var \
+    -Wwrite-strings \
+    \
     ; do
     gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
   done
 
-  # Disable the missing-field-initializers warning if needed
+  # Disable specific options as needed.
   if test "$gl_cv_cc_nomfi_needed" = yes; then
     gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
   fi
 
+  if test "$gl_cv_cc_uninitialized_supported" = no; then
+    gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized"
+  fi
+
   ws=$gl_manywarn_set
 
 
@@ -43130,7 +42836,8 @@ $as_echo "$gl_cv_cc_nomfi_needed" >&6; }
   ws=$gl_warn_set
 
   for w in $ws; do
-    as_gl_Warn=`$as_echo "gl_cv_warn_c_$w" | $as_tr_sh`
+
+as_gl_Warn=`$as_echo "gl_cv_warn_c_$w" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles $w" >&5
 $as_echo_n "checking whether C compiler handles $w... " >&6; }
 if eval \${$as_gl_Warn+:} false; then :
@@ -43138,7 +42845,7 @@ if eval \${$as_gl_Warn+:} false; then :
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " $w"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors $w"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
   done
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5
 $as_echo_n "checking whether C compiler handles -Wno-missing-field-initializers... " >&6; }
 if ${gl_cv_warn_c__Wno_missing_field_initializers+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-missing-field-initializers"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-missing-field-initializers"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43204,14 +42912,15 @@ if test "x$gl_cv_warn_c__Wno_missing_field_initializers" = xyes; then :
 fi
 
  # We need this one
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-format-y2k" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-format-y2k" >&5
 $as_echo_n "checking whether C compiler handles -Wno-format-y2k... " >&6; }
 if ${gl_cv_warn_c__Wno_format_y2k+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-format-y2k"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-format-y2k"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43239,14 +42948,15 @@ if test "x$gl_cv_warn_c__Wno_format_y2k" = xyes; then :
 fi
 
      # Too many warnings for now
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-suggest-attribute=pure" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-suggest-attribute=pure" >&5
 $as_echo_n "checking whether C compiler handles -Wno-suggest-attribute=pure... " >&6; }
 if ${gl_cv_warn_c__Wno_suggest_attribute_pure+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-suggest-attribute=pure"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-suggest-attribute=pure"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43274,14 +42984,15 @@ if test "x$gl_cv_warn_c__Wno_suggest_attribute_pure" = xyes; then :
 fi
 
      # Too many warnings for now
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-suggest-attribute=const" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-suggest-attribute=const" >&5
 $as_echo_n "checking whether C compiler handles -Wno-suggest-attribute=const... " >&6; }
 if ${gl_cv_warn_c__Wno_suggest_attribute_const+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-suggest-attribute=const"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-suggest-attribute=const"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43309,14 +43020,15 @@ if test "x$gl_cv_warn_c__Wno_suggest_attribute_const" = xyes; then :
 fi
 
      # Too many warnings for now
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-suggest-attribute=noreturn" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-suggest-attribute=noreturn" >&5
 $as_echo_n "checking whether C compiler handles -Wno-suggest-attribute=noreturn... " >&6; }
 if ${gl_cv_warn_c__Wno_suggest_attribute_noreturn+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-suggest-attribute=noreturn"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-suggest-attribute=noreturn"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43344,14 +43056,15 @@ if test "x$gl_cv_warn_c__Wno_suggest_attribute_noreturn" = xyes; then :
 fi
 
      # Too many warnings for now
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-value" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-value" >&5
 $as_echo_n "checking whether C compiler handles -Wno-unused-value... " >&6; }
 if ${gl_cv_warn_c__Wno_unused_value+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-unused-value"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-unused-value"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43379,14 +43092,15 @@ if test "x$gl_cv_warn_c__Wno_unused_value" = xyes; then :
 fi
 
  # warnings for things we don't want to get
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-result" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-result" >&5
 $as_echo_n "checking whether C compiler handles -Wno-unused-result... " >&6; }
 if ${gl_cv_warn_c__Wno_unused_result+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-unused-result"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-unused-result"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43414,14 +43128,15 @@ if test "x$gl_cv_warn_c__Wno_unused_result" = xyes; then :
 fi
 
  # warnings for things we don't want to get
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-parameter" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-parameter" >&5
 $as_echo_n "checking whether C compiler handles -Wno-unused-parameter... " >&6; }
 if ${gl_cv_warn_c__Wno_unused_parameter+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-unused-parameter"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-unused-parameter"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43449,14 +43164,15 @@ if test "x$gl_cv_warn_c__Wno_unused_parameter" = xyes; then :
 fi
 
  # Too many warnings for now
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-parameter" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-parameter" >&5
 $as_echo_n "checking whether C compiler handles -Wno-unused-parameter... " >&6; }
 if ${gl_cv_warn_c__Wno_unused_parameter+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-unused-parameter"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-unused-parameter"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43484,14 +43200,15 @@ if test "x$gl_cv_warn_c__Wno_unused_parameter" = xyes; then :
 fi
 
  # Too many warnings for now
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-stack-protector" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-stack-protector" >&5
 $as_echo_n "checking whether C compiler handles -Wno-stack-protector... " >&6; }
 if ${gl_cv_warn_c__Wno_stack_protector+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-stack-protector"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-stack-protector"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43519,14 +43236,15 @@ if test "x$gl_cv_warn_c__Wno_stack_protector" = xyes; then :
 fi
 
   # Some functions cannot be protected
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-int-to-pointer-cast" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-int-to-pointer-cast" >&5
 $as_echo_n "checking whether C compiler handles -Wno-int-to-pointer-cast... " >&6; }
 if ${gl_cv_warn_c__Wno_int_to_pointer_cast+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-int-to-pointer-cast"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-int-to-pointer-cast"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43554,14 +43272,15 @@ if test "x$gl_cv_warn_c__Wno_int_to_pointer_cast" = xyes; then :
 fi
 
   # Some files cannot be compiled with that (gl_fd_to_handle)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-redundant-decls" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-redundant-decls" >&5
 $as_echo_n "checking whether C compiler handles -Wno-redundant-decls... " >&6; }
 if ${gl_cv_warn_c__Wno_redundant_decls+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-redundant-decls"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-redundant-decls"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -43589,14 +43308,15 @@ if test "x$gl_cv_warn_c__Wno_redundant_decls" = xyes; then :
 fi
 
   # Some files cannot be compiled with that (gl_fd_to_handle)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -fdiagnostics-show-option" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -fdiagnostics-show-option" >&5
 $as_echo_n "checking whether C compiler handles -fdiagnostics-show-option... " >&6; }
 if ${gl_cv_warn_c__fdiagnostics_show_option+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -fdiagnostics-show-option"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fdiagnostics-show-option"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -44617,7 +44337,8 @@ else
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
@@ -45015,10 +44736,6 @@ freebsd* | dragonfly*)
   fi
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -45057,7 +44774,7 @@ irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -46151,7 +45868,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
            LD="${LD-ld} -m elf_i386_fbsd"
            ;;
          x86_64-*linux*)
-           LD="${LD-ld} -m elf_i386"
+           case `/usr/bin/file conftest.o` in
+             *x86-64*)
+               LD="${LD-ld} -m elf32_x86_64"
+               ;;
+             *)
+               LD="${LD-ld} -m elf_i386"
+               ;;
+           esac
            ;;
          ppc64-*linux*|powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
@@ -47721,7 +47445,7 @@ lt_prog_compiler_static=
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -49891,17 +49615,6 @@ freebsd* | dragonfly*)
   esac
   ;;
 
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
@@ -50018,7 +49731,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
@@ -51841,9 +51554,6 @@ fi
         ld_shlibs_CXX=yes
         ;;
 
-      gnu*)
-        ;;
-
       haiku*)
         archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
         link_all_deplibs_CXX=yes
@@ -52005,7 +51715,7 @@ fi
         inherit_rpath_CXX=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
         case $cc_basename in
           KCC*)
            # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -52865,7 +52575,7 @@ lt_prog_compiler_static_CXX=
            ;;
        esac
        ;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
        case $cc_basename in
          KCC*)
            # KAI C++ Compiler
@@ -53737,17 +53447,6 @@ freebsd* | dragonfly*)
   esac
   ;;
 
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
@@ -53864,7 +53563,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
@@ -54287,31 +53986,37 @@ _ACEOF
 fi
 
 
-# Check whether --with-default-trust-store-file was given.
-if test "${with_default_trust_store_file+set}" = set; then :
-  withval=$with_default_trust_store_file;
-fi
-
-
-
 # Check whether --with-default-crl-file was given.
 if test "${with_default_crl_file+set}" = set; then :
   withval=$with_default_crl_file;
 fi
 
 
-if test "x$with_default_trust_store_pkcs11" = x -a "x$with_default_trust_store_file" = x; then
-  # auto detect http://lists.gnu.org/archive/html/help-gnutls/2012-05/msg00004.html
+
+# Check whether --with-default-trust-store-file was given.
+if test "${with_default_trust_store_file+set}" = set; then :
+  withval=$with_default_trust_store_file; with_default_trust_store_file="$withval"
+else
+  if test "$build" = "$host";then
   for i in \
+    /etc/ssl/ca-bundle.pem \
     /etc/ssl/certs/ca-certificates.crt \
     /etc/pki/tls/cert.pem \
-    /usr/local/share/certs/ca-root-nss.crt
+    /usr/local/share/certs/ca-root-nss.crt \
+    /etc/ssl/cert.pem
     do
     if test -e $i; then
       with_default_trust_store_file="$i"
       break
     fi
   done
+  fi
+
+fi
+
+
+if test "$with_default_trust_store_file" = "no";then
+  with_default_trust_store_file=""
 fi
 
 if test "x$with_default_trust_store_file" != x; then
@@ -55692,7 +55397,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GnuTLS $as_me 3.0.21, which was
+This file was extended by GnuTLS $as_me 3.0.30, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -55762,7 +55467,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GnuTLS config.status 3.0.21
+GnuTLS config.status 3.0.30
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index 53d263a..6d58145 100644 (file)
@@ -21,13 +21,14 @@ dnl Process this file with autoconf to produce a configure script.
 # USA
 
 AC_PREREQ(2.61)
-AC_INIT([GnuTLS], [3.0.21], [bug-gnutls@gnu.org])
+AC_INIT([GnuTLS], [3.0.30], [bug-gnutls@gnu.org])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_MACRO_DIR([m4])
+AC_CANONICAL_HOST
 
-AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz dist-lzip -Wall -Werror -Wno-override])
+AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz dist-lzip -Wall -Wno-override])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS([config.h])
 
 AC_MSG_RESULT([***
 *** Checking for compilation programs...
@@ -35,9 +36,10 @@ AC_MSG_RESULT([***
 
 dnl Checks for programs.
 AC_PROG_CC
+gl_EARLY
+
 AM_PROG_AS
 AC_PROG_CXX
-gl_EARLY
 
 # For includes/gnutls/gnutls.h.in.
 AC_SUBST(MAJOR_VERSION, `echo $PACKAGE_VERSION | sed 's/\(.*\)\..*\..*/\1/g'`)
@@ -89,15 +91,12 @@ hw_accel=none
 if test "$use_accel" != "no"; then
 case $host_cpu in
   i?86 | x86_64 | amd64)
-dnl    GCC_FLAG_ADD([-maes -mpclmul],[X86])
-dnl    if test "x$X86" = "xyes";then
       AC_CHECK_HEADERS(cpuid.h)
       if test "$host_cpu" = "x86_64" || test "$host_cpu" = "amd64"; then
         hw_accel="x86-64"
       else
         hw_accel="x86"
       fi
-dnl    fi
   ;;
   *)
   ;;
@@ -224,7 +223,6 @@ AC_ARG_ENABLE([gcc-warnings],
 )
 
 if test "$gl_gcc_warnings" = yes; then
-  gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
   gl_WARN_ADD([-Wframe-larger-than=5120], [WSTACK_CFLAGS])
 
   nw="$nw -Wsystem-headers"         # Don't let system headers trigger warnings
@@ -244,6 +242,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"
@@ -292,26 +291,32 @@ if test "x$with_default_trust_store_pkcs11" != x; then
     ["$with_default_trust_store_pkcs11"], [use the given pkcs11 uri as default trust store])
 fi
 
-AC_ARG_WITH([default-trust-store-file],
-  [AS_HELP_STRING([--with-default-trust-store-file=FILE],
-    [use the given file default trust store])])
-
 AC_ARG_WITH([default-crl-file],
   [AS_HELP_STRING([--with-default-crl-file=FILE],
     [use the given CRL file as default])])
 
-if test "x$with_default_trust_store_pkcs11" = x -a "x$with_default_trust_store_file" = x; then
-  # auto detect http://lists.gnu.org/archive/html/help-gnutls/2012-05/msg00004.html
+dnl auto detect http://lists.gnu.org/archive/html/help-gnutls/2012-05/msg00004.html
+AC_ARG_WITH([default-trust-store-file],
+  [AS_HELP_STRING([--with-default-trust-store-file=FILE],
+    [use the given file default trust store])], with_default_trust_store_file="$withval",
+  [if test "$build" = "$host";then
   for i in \
+    /etc/ssl/ca-bundle.pem \
     /etc/ssl/certs/ca-certificates.crt \
     /etc/pki/tls/cert.pem \
-    /usr/local/share/certs/ca-root-nss.crt
+    /usr/local/share/certs/ca-root-nss.crt \
+    /etc/ssl/cert.pem
     do
     if test -e $i; then
       with_default_trust_store_file="$i"
       break
     fi
   done
+  fi]
+)
+
+if test "$with_default_trust_store_file" = "no";then
+  with_default_trust_store_file=""
 fi
 
 if test "x$with_default_trust_store_file" != x; then
index 33e982e..b63e497 100644 (file)
@@ -358,21 +358,20 @@ stamp_functions: gnutls-api.texi x509-api.texi pgp-api.texi pkcs12-api.texi pkcs
        done
        sed -i 's/\@anchor{.*//g' functions/*
        sed -i 's/\@subheading.*//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 < enums.texi
+       $(srcdir)/scripts/split-texi.pl enums enum < $(srcdir)/enums.texi
        echo $@ > $@
-       $(MAKE) compare-makefile
 
 $(ENUMS): stamp_enums
 
 $(FUNCS): stamp_functions
 
 compare-makefile: enums.texi
-       ENUMS=`grep '^@c ' enums.texi | sed 's/@c //g' | sort`; \
+       ENUMS=`grep '^@c ' $(srcdir)/enums.texi | sed 's/@c //g' | sort`; \
        STR=""; \
        for i in $$ENUMS; do \
                STR="$$STR\nENUMS += enums/$$i"; \
@@ -381,13 +380,13 @@ 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_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"; \
+               MANS="$$MANS\nFUNCS += functions/$$i\nFUNCS += functions/$$i.short"; \
        done; \
-       grep -v -e '^FUNCS += ' Makefile.am | \
-               perl -p -e "s,^FUNCS =,FUNCS =$$MANS," > 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-$@
 
@@ -476,722 +475,1443 @@ 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_deinit
-FUNCS += functions/gnutls_pubkey_get_pk_algorithm
-FUNCS += functions/gnutls_pubkey_import_x509
-FUNCS += functions/gnutls_pubkey_import_pkcs11
-FUNCS += functions/gnutls_pubkey_import_openpgp
-FUNCS += functions/gnutls_pubkey_import_privkey
-FUNCS += functions/gnutls_pubkey_get_preferred_hash_algorithm
-FUNCS += functions/gnutls_pubkey_get_pk_rsa_raw
-FUNCS += functions/gnutls_pubkey_get_pk_dsa_raw
-FUNCS += functions/gnutls_pubkey_get_pk_ecc_raw
-FUNCS += functions/gnutls_pubkey_get_pk_ecc_x962
-FUNCS += functions/gnutls_pubkey_export
-FUNCS += functions/gnutls_pubkey_get_key_id
-FUNCS += functions/gnutls_pubkey_get_openpgp_key_id
-FUNCS += functions/gnutls_pubkey_get_key_usage
-FUNCS += functions/gnutls_pubkey_set_key_usage
-FUNCS += functions/gnutls_pubkey_import
-FUNCS += functions/gnutls_pubkey_import_pkcs11_url
-FUNCS += functions/gnutls_pubkey_import_dsa_raw
-FUNCS += functions/gnutls_pubkey_import_rsa_raw
-FUNCS += functions/gnutls_pubkey_import_ecc_x962
-FUNCS += functions/gnutls_pubkey_import_ecc_raw
-FUNCS += functions/gnutls_pubkey_encrypt_data
-FUNCS += functions/gnutls_x509_crt_set_pubkey
-FUNCS += functions/gnutls_x509_crq_set_pubkey
-FUNCS += functions/gnutls_pubkey_verify_hash
-FUNCS += functions/gnutls_pubkey_verify_hash2
-FUNCS += functions/gnutls_pubkey_get_verify_algorithm
-FUNCS += functions/gnutls_pubkey_verify_data
-FUNCS += functions/gnutls_pubkey_verify_data2
-FUNCS += functions/gnutls_privkey_init
-FUNCS += functions/gnutls_privkey_deinit
-FUNCS += functions/gnutls_privkey_get_pk_algorithm
-FUNCS += functions/gnutls_privkey_get_type
-FUNCS += functions/gnutls_privkey_import_pkcs11
-FUNCS += functions/gnutls_privkey_import_x509
-FUNCS += functions/gnutls_privkey_import_openpgp
-FUNCS += functions/gnutls_privkey_import_ext
-FUNCS += functions/gnutls_privkey_sign_data
-FUNCS += functions/gnutls_privkey_sign_hash
-FUNCS += functions/gnutls_privkey_decrypt_data
-FUNCS += functions/gnutls_x509_crt_privkey_sign
-FUNCS += functions/gnutls_x509_crl_privkey_sign
-FUNCS += functions/gnutls_x509_crq_privkey_sign
-FUNCS += functions/gnutls_pcert_import_x509
-FUNCS += functions/gnutls_pcert_list_import_x509_raw
-FUNCS += functions/gnutls_pcert_import_x509_raw
-FUNCS += functions/gnutls_pcert_import_openpgp_raw
-FUNCS += functions/gnutls_pcert_import_openpgp
-FUNCS += functions/gnutls_pcert_deinit
-FUNCS += functions/gnutls_certificate_set_retrieve_function2
+FUNCS += functions/gnutls_alert_get
+FUNCS += functions/gnutls_alert_get.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_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_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_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_key
-FUNCS += functions/gnutls_sign_callback_set
-FUNCS += functions/gnutls_sign_callback_get
-FUNCS += functions/gnutls_x509_privkey_sign_hash
-FUNCS += functions/gnutls_openpgp_privkey_sign_hash
-FUNCS += functions/gnutls_x509_privkey_sign_data
-FUNCS += functions/gnutls_x509_crt_verify_data
-FUNCS += functions/gnutls_x509_crt_verify_hash
-FUNCS += functions/gnutls_x509_crt_get_verify_algorithm
-FUNCS += functions/gnutls_x509_crt_get_preferred_hash_algorithm
-FUNCS += functions/gnutls_x509_crq_sign
-FUNCS += functions/gnutls_x509_crl_sign
-FUNCS += functions/gnutls_cipher_set_priority
-FUNCS += functions/gnutls_mac_set_priority
-FUNCS += functions/gnutls_compression_set_priority
-FUNCS += functions/gnutls_kx_set_priority
-FUNCS += functions/gnutls_protocol_set_priority
-FUNCS += functions/gnutls_certificate_type_set_priority
-FUNCS += functions/gnutls_rsa_params_init
-FUNCS += functions/gnutls_rsa_params_deinit
-FUNCS += functions/gnutls_rsa_params_cpy
-FUNCS += functions/gnutls_rsa_params_import_raw
-FUNCS += functions/gnutls_rsa_params_generate2
-FUNCS += functions/gnutls_rsa_params_export_raw
-FUNCS += functions/gnutls_rsa_params_export_pkcs1
-FUNCS += functions/gnutls_rsa_params_import_pkcs1
-FUNCS += functions/gnutls_rsa_export_get_pubkey
-FUNCS += functions/gnutls_rsa_export_get_modulus_bits
-FUNCS += functions/gnutls_set_default_export_priority
+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_cipher_init
-FUNCS += functions/gnutls_cipher_encrypt
+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_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_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_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_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_add_auth
-FUNCS += functions/gnutls_cipher_deinit
-FUNCS += functions/gnutls_cipher_get_block_size
-FUNCS += functions/gnutls_hmac_init
-FUNCS += functions/gnutls_hmac
-FUNCS += functions/gnutls_hmac_output
-FUNCS += functions/gnutls_hmac_deinit
-FUNCS += functions/gnutls_hmac_get_len
-FUNCS += functions/gnutls_hmac_fast
-FUNCS += functions/gnutls_hash_init
-FUNCS += functions/gnutls_hash
-FUNCS += functions/gnutls_hash_output
-FUNCS += functions/gnutls_hash_deinit
-FUNCS += functions/gnutls_hash_get_len
-FUNCS += functions/gnutls_hash_fast
-FUNCS += functions/gnutls_rnd
-FUNCS += functions/gnutls_dtls_set_timeouts
-FUNCS += functions/gnutls_dtls_get_mtu
-FUNCS += functions/gnutls_dtls_get_data_mtu
-FUNCS += functions/gnutls_dtls_set_mtu
-FUNCS += functions/gnutls_dtls_set_data_mtu
-FUNCS += functions/gnutls_dtls_get_timeout
+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_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_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_record_get_discarded
-FUNCS += functions/gnutls_pk_algorithm_get_name
-FUNCS += functions/gnutls_init
-FUNCS += functions/gnutls_deinit
-FUNCS += functions/gnutls_bye
-FUNCS += functions/gnutls_handshake
-FUNCS += functions/gnutls_rehandshake
-FUNCS += functions/gnutls_alert_get
-FUNCS += functions/gnutls_alert_send
-FUNCS += functions/gnutls_alert_send_appropriate
-FUNCS += functions/gnutls_alert_get_name
-FUNCS += functions/gnutls_alert_get_strname
-FUNCS += functions/gnutls_pk_bits_to_sec_param
-FUNCS += functions/gnutls_sec_param_get_name
-FUNCS += functions/gnutls_sec_param_to_pk_bits
+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
-FUNCS += functions/gnutls_cipher_get
-FUNCS += functions/gnutls_kx_get
-FUNCS += functions/gnutls_mac_get
-FUNCS += functions/gnutls_compression_get
-FUNCS += functions/gnutls_certificate_type_get
-FUNCS += functions/gnutls_sign_algorithm_get_requested
-FUNCS += functions/gnutls_cipher_get_key_size
-FUNCS += functions/gnutls_mac_get_key_size
-FUNCS += functions/gnutls_cipher_get_name
-FUNCS += functions/gnutls_mac_get_name
-FUNCS += functions/gnutls_compression_get_name
-FUNCS += functions/gnutls_kx_get_name
-FUNCS += functions/gnutls_certificate_type_get_name
-FUNCS += functions/gnutls_pk_get_name
-FUNCS += functions/gnutls_sign_get_name
-FUNCS += functions/gnutls_pk_to_sign
-FUNCS += functions/gnutls_mac_get_id
-FUNCS += functions/gnutls_compression_get_id
-FUNCS += functions/gnutls_cipher_get_id
-FUNCS += functions/gnutls_kx_get_id
-FUNCS += functions/gnutls_protocol_get_id
-FUNCS += functions/gnutls_certificate_type_get_id
-FUNCS += functions/gnutls_pk_get_id
-FUNCS += functions/gnutls_sign_get_id
+FUNCS += functions/gnutls_ecc_curve_get_size.short
 FUNCS += functions/gnutls_ecc_curve_list
-FUNCS += functions/gnutls_cipher_list
-FUNCS += functions/gnutls_mac_list
-FUNCS += functions/gnutls_compression_list
-FUNCS += functions/gnutls_protocol_list
-FUNCS += functions/gnutls_certificate_type_list
-FUNCS += functions/gnutls_kx_list
-FUNCS += functions/gnutls_pk_list
-FUNCS += functions/gnutls_sign_list
-FUNCS += functions/gnutls_cipher_suite_info
+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_perror
-FUNCS += functions/gnutls_strerror
-FUNCS += functions/gnutls_strerror_name
-FUNCS += functions/gnutls_handshake_set_private_extensions
-FUNCS += functions/gnutls_handshake_get_last_out
-FUNCS += functions/gnutls_handshake_get_last_in
-FUNCS += functions/gnutls_record_send
-FUNCS += functions/gnutls_record_recv
-FUNCS += functions/gnutls_record_recv_seq
-FUNCS += functions/gnutls_session_enable_compatibility_mode
-FUNCS += functions/gnutls_record_disable_padding
-FUNCS += functions/gnutls_record_get_direction
-FUNCS += functions/gnutls_record_get_max_size
-FUNCS += functions/gnutls_record_set_max_size
-FUNCS += functions/gnutls_record_check_pending
-FUNCS += functions/gnutls_prf
-FUNCS += functions/gnutls_prf_raw
-FUNCS += functions/gnutls_server_name_set
-FUNCS += functions/gnutls_server_name_get
-FUNCS += functions/gnutls_safe_renegotiation_status
-FUNCS += functions/gnutls_supplemental_get_name
-FUNCS += functions/gnutls_session_ticket_key_generate
-FUNCS += functions/gnutls_session_ticket_enable_client
-FUNCS += functions/gnutls_session_ticket_enable_server
-FUNCS += functions/gnutls_key_generate
-FUNCS += functions/gnutls_priority_init
-FUNCS += functions/gnutls_priority_deinit
-FUNCS += functions/gnutls_priority_get_cipher_suite_index
-FUNCS += functions/gnutls_priority_set
-FUNCS += functions/gnutls_priority_set_direct
-FUNCS += functions/gnutls_priority_certificate_type_list
-FUNCS += functions/gnutls_priority_sign_list
-FUNCS += functions/gnutls_priority_protocol_list
-FUNCS += functions/gnutls_priority_compression_list
-FUNCS += functions/gnutls_priority_ecc_curve_list
-FUNCS += functions/gnutls_set_default_priority
-FUNCS += functions/gnutls_cipher_suite_get_name
-FUNCS += functions/gnutls_protocol_get_version
-FUNCS += functions/gnutls_protocol_get_name
-FUNCS += functions/gnutls_session_set_data
-FUNCS += functions/gnutls_session_get_data
-FUNCS += functions/gnutls_session_get_data2
-FUNCS += functions/gnutls_session_get_random
-FUNCS += functions/gnutls_session_set_premaster
-FUNCS += functions/gnutls_session_get_id
-FUNCS += functions/gnutls_session_channel_binding
-FUNCS += functions/gnutls_session_is_resumed
-FUNCS += functions/gnutls_session_resumption_requested
-FUNCS += functions/gnutls_db_set_cache_expiration
-FUNCS += functions/gnutls_db_remove_session
-FUNCS += functions/gnutls_db_set_retrieve_function
-FUNCS += functions/gnutls_db_set_remove_function
-FUNCS += functions/gnutls_db_set_store_function
-FUNCS += functions/gnutls_db_set_ptr
-FUNCS += functions/gnutls_db_get_ptr
-FUNCS += functions/gnutls_db_check_entry
-FUNCS += functions/gnutls_handshake_set_post_client_hello_function
-FUNCS += functions/gnutls_handshake_set_max_packet_length
-FUNCS += functions/gnutls_check_version
-FUNCS += functions/gnutls_credentials_clear
-FUNCS += functions/gnutls_credentials_set
-FUNCS += functions/gnutls_anon_free_server_credentials
-FUNCS += functions/gnutls_anon_allocate_server_credentials
-FUNCS += functions/gnutls_anon_set_server_dh_params
-FUNCS += functions/gnutls_anon_set_server_params_function
-FUNCS += functions/gnutls_anon_free_client_credentials
-FUNCS += functions/gnutls_anon_allocate_client_credentials
-FUNCS += functions/gnutls_certificate_free_credentials
-FUNCS += functions/gnutls_certificate_allocate_credentials
-FUNCS += functions/gnutls_certificate_get_issuer
-FUNCS += functions/gnutls_certificate_free_keys
-FUNCS += functions/gnutls_certificate_free_cas
-FUNCS += functions/gnutls_certificate_free_ca_names
-FUNCS += functions/gnutls_certificate_free_crls
-FUNCS += functions/gnutls_certificate_set_dh_params
-FUNCS += functions/gnutls_certificate_set_verify_flags
-FUNCS += functions/gnutls_certificate_set_verify_limits
-FUNCS += functions/gnutls_certificate_set_x509_system_trust
-FUNCS += functions/gnutls_certificate_set_x509_trust_file
-FUNCS += functions/gnutls_certificate_set_x509_trust_mem
-FUNCS += functions/gnutls_certificate_set_x509_crl_file
-FUNCS += functions/gnutls_certificate_set_x509_crl_mem
-FUNCS += functions/gnutls_certificate_set_x509_key_file
-FUNCS += functions/gnutls_certificate_set_x509_key_mem
-FUNCS += functions/gnutls_certificate_send_x509_rdn_sequence
-FUNCS += functions/gnutls_certificate_set_x509_simple_pkcs12_file
-FUNCS += functions/gnutls_certificate_set_x509_simple_pkcs12_mem
-FUNCS += functions/gnutls_certificate_set_x509_key
-FUNCS += functions/gnutls_certificate_set_x509_trust
-FUNCS += functions/gnutls_certificate_set_x509_crl
-FUNCS += functions/gnutls_global_init
+FUNCS += functions/gnutls_error_to_alert.short
+FUNCS += functions/gnutls_fingerprint
+FUNCS += functions/gnutls_fingerprint.short
 FUNCS += functions/gnutls_global_deinit
-FUNCS += functions/gnutls_global_set_mutex
-FUNCS += functions/gnutls_global_set_mem_functions
-FUNCS += functions/gnutls_global_set_time_function
-FUNCS += functions/gnutls_global_set_log_function
+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_dh_params_init
-FUNCS += functions/gnutls_dh_params_deinit
-FUNCS += functions/gnutls_dh_params_import_raw
-FUNCS += functions/gnutls_dh_params_import_pkcs3
-FUNCS += functions/gnutls_dh_params_generate2
-FUNCS += functions/gnutls_dh_params_export_pkcs3
-FUNCS += functions/gnutls_dh_params_export_raw
-FUNCS += functions/gnutls_dh_params_cpy
-FUNCS += functions/gnutls_transport_set_ptr
-FUNCS += functions/gnutls_transport_set_ptr2
-FUNCS += functions/gnutls_transport_get_ptr
-FUNCS += functions/gnutls_transport_get_ptr2
-FUNCS += functions/gnutls_transport_set_vec_push_function
-FUNCS += functions/gnutls_transport_set_push_function
-FUNCS += functions/gnutls_transport_set_pull_function
-FUNCS += functions/gnutls_transport_set_pull_timeout_function
-FUNCS += functions/gnutls_transport_set_errno_function
-FUNCS += functions/gnutls_transport_set_errno
-FUNCS += functions/gnutls_session_set_ptr
-FUNCS += functions/gnutls_session_get_ptr
-FUNCS += functions/gnutls_openpgp_send_cert
-FUNCS += functions/gnutls_fingerprint
-FUNCS += functions/gnutls_random_art
-FUNCS += functions/gnutls_srp_free_client_credentials
-FUNCS += functions/gnutls_srp_allocate_client_credentials
-FUNCS += functions/gnutls_srp_set_client_credentials
-FUNCS += functions/gnutls_srp_free_server_credentials
-FUNCS += functions/gnutls_srp_allocate_server_credentials
-FUNCS += functions/gnutls_srp_set_server_credentials_file
-FUNCS += functions/gnutls_srp_server_get_username
-FUNCS += functions/gnutls_srp_set_prime_bits
-FUNCS += functions/gnutls_srp_verifier
-FUNCS += functions/gnutls_srp_set_server_credentials_function
-FUNCS += functions/gnutls_srp_set_client_credentials_function
-FUNCS += functions/gnutls_srp_base64_encode
-FUNCS += functions/gnutls_srp_base64_encode_alloc
-FUNCS += functions/gnutls_srp_base64_decode
-FUNCS += functions/gnutls_srp_base64_decode_alloc
-FUNCS += functions/gnutls_psk_free_client_credentials
-FUNCS += functions/gnutls_psk_allocate_client_credentials
-FUNCS += functions/gnutls_psk_set_client_credentials
-FUNCS += functions/gnutls_psk_free_server_credentials
-FUNCS += functions/gnutls_psk_allocate_server_credentials
-FUNCS += functions/gnutls_psk_set_server_credentials_file
-FUNCS += functions/gnutls_psk_set_server_credentials_hint
-FUNCS += functions/gnutls_psk_server_get_username
-FUNCS += functions/gnutls_psk_client_get_hint
-FUNCS += functions/gnutls_psk_set_server_credentials_function
-FUNCS += functions/gnutls_psk_set_client_credentials_function
-FUNCS += functions/gnutls_hex_encode
-FUNCS += functions/gnutls_hex_decode
-FUNCS += functions/gnutls_psk_set_server_dh_params
-FUNCS += functions/gnutls_psk_set_server_params_function
-FUNCS += functions/gnutls_auth_get_type
-FUNCS += functions/gnutls_auth_server_get_type
-FUNCS += functions/gnutls_auth_client_get_type
-FUNCS += functions/gnutls_dh_set_prime_bits
-FUNCS += functions/gnutls_dh_get_secret_bits
-FUNCS += functions/gnutls_dh_get_peers_public_bits
-FUNCS += functions/gnutls_dh_get_prime_bits
-FUNCS += functions/gnutls_dh_get_group
-FUNCS += functions/gnutls_dh_get_pubkey
-FUNCS += functions/gnutls_certificate_set_retrieve_function
-FUNCS += functions/gnutls_certificate_set_verify_function
-FUNCS += functions/gnutls_certificate_server_set_request
-FUNCS += functions/gnutls_certificate_get_peers
-FUNCS += functions/gnutls_certificate_get_ours
-FUNCS += functions/gnutls_certificate_activation_time_peers
-FUNCS += functions/gnutls_certificate_expiration_time_peers
-FUNCS += functions/gnutls_certificate_client_get_request_status
-FUNCS += functions/gnutls_certificate_verify_peers2
-FUNCS += functions/gnutls_pem_base64_encode
-FUNCS += functions/gnutls_pem_base64_decode
-FUNCS += functions/gnutls_pem_base64_encode_alloc
-FUNCS += functions/gnutls_pem_base64_decode_alloc
-FUNCS += functions/gnutls_certificate_set_params_function
-FUNCS += functions/gnutls_anon_set_params_function
-FUNCS += functions/gnutls_psk_set_params_function
+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_tdb_init
-FUNCS += functions/gnutls_tdb_set_store_func
-FUNCS += functions/gnutls_tdb_set_store_commitment_func
-FUNCS += functions/gnutls_tdb_set_verify_func
-FUNCS += functions/gnutls_tdb_deinit
-FUNCS += functions/gnutls_verify_stored_pubkey
-FUNCS += functions/gnutls_store_commitment
-FUNCS += functions/gnutls_store_pubkey
-FUNCS += functions/gnutls_ocsp_req_init
+FUNCS += functions/gnutls_hex2bin.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_import
+FUNCS += functions/gnutls_ocsp_req_deinit.short
 FUNCS += functions/gnutls_ocsp_req_export
-FUNCS += functions/gnutls_ocsp_req_print
-FUNCS += functions/gnutls_ocsp_req_get_version
+FUNCS += functions/gnutls_ocsp_req_export.short
 FUNCS += functions/gnutls_ocsp_req_get_cert_id
-FUNCS += functions/gnutls_ocsp_req_add_cert_id
-FUNCS += functions/gnutls_ocsp_req_add_cert
+FUNCS += functions/gnutls_ocsp_req_get_cert_id.short
 FUNCS += functions/gnutls_ocsp_req_get_extension
-FUNCS += functions/gnutls_ocsp_req_set_extension
+FUNCS += functions/gnutls_ocsp_req_get_extension.short
 FUNCS += functions/gnutls_ocsp_req_get_nonce
-FUNCS += functions/gnutls_ocsp_req_set_nonce
+FUNCS += functions/gnutls_ocsp_req_get_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_resp_init
+FUNCS += functions/gnutls_ocsp_req_randomize_nonce.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_check_crt
+FUNCS += functions/gnutls_ocsp_resp_check_crt.short
 FUNCS += functions/gnutls_ocsp_resp_deinit
-FUNCS += functions/gnutls_ocsp_resp_import
+FUNCS += functions/gnutls_ocsp_resp_deinit.short
 FUNCS += functions/gnutls_ocsp_resp_export
-FUNCS += functions/gnutls_ocsp_resp_print
-FUNCS += functions/gnutls_ocsp_resp_get_status
-FUNCS += functions/gnutls_ocsp_resp_get_response
-FUNCS += functions/gnutls_ocsp_resp_get_version
-FUNCS += functions/gnutls_ocsp_resp_get_responder
-FUNCS += functions/gnutls_ocsp_resp_get_produced
-FUNCS += functions/gnutls_ocsp_resp_get_single
+FUNCS += functions/gnutls_ocsp_resp_export.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_signature_algorithm
+FUNCS += functions/gnutls_ocsp_resp_get_nonce.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_certs
-FUNCS += functions/gnutls_ocsp_resp_verify_direct
+FUNCS += functions/gnutls_ocsp_resp_get_signature.short
+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_openpgp_crt_init
+FUNCS += functions/gnutls_ocsp_resp_verify.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_import
+FUNCS += functions/gnutls_openpgp_crt_deinit.short
 FUNCS += functions/gnutls_openpgp_crt_export
-FUNCS += functions/gnutls_openpgp_crt_print
-FUNCS += functions/gnutls_openpgp_crt_get_key_usage
-FUNCS += functions/gnutls_openpgp_crt_get_fingerprint
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_fingerprint
-FUNCS += functions/gnutls_openpgp_crt_get_name
-FUNCS += functions/gnutls_openpgp_crt_get_pk_algorithm
-FUNCS += functions/gnutls_openpgp_crt_get_version
+FUNCS += functions/gnutls_openpgp_crt_export.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_check_hostname
+FUNCS += functions/gnutls_openpgp_crt_get_key_id.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_idx
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_revoked_status
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_algorithm
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_count.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_usage
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_id.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_pk_dsa_raw
-FUNCS += functions/gnutls_openpgp_crt_get_pk_rsa_raw
-FUNCS += functions/gnutls_openpgp_crt_get_preferred_key_id
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.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_privkey_init
+FUNCS += functions/gnutls_openpgp_crt_set_preferred_key_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_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_get_pk_algorithm
-FUNCS += functions/gnutls_openpgp_privkey_sec_param
-FUNCS += functions/gnutls_openpgp_privkey_import
+FUNCS += functions/gnutls_openpgp_privkey_deinit.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_subkey_fingerprint
+FUNCS += functions/gnutls_openpgp_privkey_get_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_revoked_status
-FUNCS += functions/gnutls_openpgp_privkey_get_revoked_status
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_idx.short
 FUNCS += functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_id
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_creation_time
-FUNCS += functions/gnutls_openpgp_privkey_export_subkey_dsa_raw
-FUNCS += functions/gnutls_openpgp_privkey_export_subkey_rsa_raw
-FUNCS += functions/gnutls_openpgp_privkey_export_dsa_raw
-FUNCS += functions/gnutls_openpgp_privkey_export_rsa_raw
-FUNCS += functions/gnutls_openpgp_privkey_export
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm.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_get_preferred_key_id
-FUNCS += functions/gnutls_openpgp_crt_get_auth_subkey
-FUNCS += functions/gnutls_openpgp_keyring_init
-FUNCS += functions/gnutls_openpgp_keyring_deinit
-FUNCS += functions/gnutls_openpgp_keyring_import
-FUNCS += functions/gnutls_openpgp_keyring_check_id
-FUNCS += functions/gnutls_openpgp_crt_verify_ring
-FUNCS += functions/gnutls_openpgp_crt_verify_self
-FUNCS += functions/gnutls_openpgp_keyring_get_crt
-FUNCS += functions/gnutls_openpgp_keyring_get_crt_count
+FUNCS += functions/gnutls_openpgp_privkey_set_preferred_key_id.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_certificate_set_openpgp_key
-FUNCS += functions/gnutls_certificate_set_openpgp_key_file
-FUNCS += functions/gnutls_certificate_set_openpgp_key_mem
-FUNCS += functions/gnutls_certificate_set_openpgp_key_file2
-FUNCS += functions/gnutls_certificate_set_openpgp_key_mem2
-FUNCS += functions/gnutls_certificate_set_openpgp_keyring_mem
-FUNCS += functions/gnutls_certificate_set_openpgp_keyring_file
-FUNCS += functions/gnutls_pkcs11_init
-FUNCS += functions/gnutls_pkcs11_reinit
-FUNCS += functions/gnutls_pkcs11_deinit
-FUNCS += functions/gnutls_pkcs11_set_token_function
-FUNCS += functions/gnutls_pkcs11_set_pin_function
+FUNCS += functions/gnutls_openpgp_set_recv_key_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_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_pkcs11_add_provider
-FUNCS += functions/gnutls_pkcs11_obj_init
-FUNCS += functions/gnutls_pkcs11_obj_import_url
-FUNCS += functions/gnutls_pkcs11_obj_export_url
-FUNCS += functions/gnutls_pkcs11_obj_deinit
-FUNCS += functions/gnutls_pkcs11_obj_export
+FUNCS += functions/gnutls_pkcs11_add_provider.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_copy_secret_key
+FUNCS += functions/gnutls_pkcs11_delete_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_token_init
-FUNCS += functions/gnutls_pkcs11_token_get_mechanism
-FUNCS += functions/gnutls_pkcs11_token_set_pin
-FUNCS += functions/gnutls_pkcs11_token_get_url
-FUNCS += functions/gnutls_pkcs11_token_get_info
-FUNCS += functions/gnutls_pkcs11_token_get_flags
-FUNCS += functions/gnutls_pkcs11_obj_list_import_url
-FUNCS += functions/gnutls_x509_crt_import_pkcs11
-FUNCS += functions/gnutls_x509_crt_import_pkcs11_url
+FUNCS += functions/gnutls_pkcs11_obj_get_info.short
 FUNCS += functions/gnutls_pkcs11_obj_get_type
-FUNCS += functions/gnutls_pkcs11_type_get_name
-FUNCS += functions/gnutls_x509_crt_list_import_pkcs11
-FUNCS += functions/gnutls_pkcs11_privkey_init
+FUNCS += functions/gnutls_pkcs11_obj_get_type.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_get_pk_algorithm
-FUNCS += functions/gnutls_pkcs11_privkey_get_info
-FUNCS += functions/gnutls_pkcs11_privkey_import_url
+FUNCS += functions/gnutls_pkcs11_privkey_deinit.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_pkcs12_init
-FUNCS += functions/gnutls_pkcs12_deinit
-FUNCS += functions/gnutls_pkcs12_import
-FUNCS += functions/gnutls_pkcs12_export
-FUNCS += functions/gnutls_pkcs12_get_bag
-FUNCS += functions/gnutls_pkcs12_set_bag
-FUNCS += functions/gnutls_pkcs12_generate_mac
-FUNCS += functions/gnutls_pkcs12_verify_mac
+FUNCS += functions/gnutls_pkcs11_privkey_generate.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_get_type
+FUNCS += functions/gnutls_pkcs12_bag_encrypt.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_set_data
+FUNCS += functions/gnutls_pkcs12_bag_get_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_init
-FUNCS += functions/gnutls_pkcs12_bag_deinit
-FUNCS += functions/gnutls_pkcs12_bag_get_count
-FUNCS += functions/gnutls_pkcs12_bag_get_key_id
-FUNCS += functions/gnutls_pkcs12_bag_set_key_id
-FUNCS += functions/gnutls_pkcs12_bag_get_friendly_name
+FUNCS += functions/gnutls_pkcs12_bag_set_crt.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_x509_crt_init
+FUNCS += functions/gnutls_pkcs12_bag_set_friendly_name.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_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_import
-FUNCS += functions/gnutls_x509_crt_list_import2
-FUNCS += functions/gnutls_x509_crt_list_import
+FUNCS += functions/gnutls_x509_crt_deinit.short
 FUNCS += functions/gnutls_x509_crt_export
-FUNCS += functions/gnutls_x509_crt_get_private_key_usage_period
+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_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_issuer_dn
-FUNCS += functions/gnutls_x509_crt_get_issuer_dn_oid
+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_dn
-FUNCS += functions/gnutls_x509_crt_get_dn_oid
-FUNCS += functions/gnutls_x509_crt_get_dn_by_oid
-FUNCS += functions/gnutls_x509_crt_check_hostname
-FUNCS += functions/gnutls_x509_crt_get_signature_algorithm
-FUNCS += functions/gnutls_x509_crt_get_signature
-FUNCS += functions/gnutls_x509_crt_get_version
-FUNCS += functions/gnutls_x509_crt_get_key_id
-FUNCS += functions/gnutls_x509_crt_set_private_key_usage_period
-FUNCS += functions/gnutls_x509_crt_set_authority_key_id
-FUNCS += functions/gnutls_x509_crt_get_authority_key_id
-FUNCS += functions/gnutls_x509_crt_get_authority_key_gn_serial
-FUNCS += functions/gnutls_x509_crt_get_subject_key_id
-FUNCS += functions/gnutls_x509_crt_get_subject_unique_id
+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_authority_info_access
-FUNCS += functions/gnutls_x509_crt_get_crl_dist_points
-FUNCS += functions/gnutls_x509_crt_set_crl_dist_points2
-FUNCS += functions/gnutls_x509_crt_set_crl_dist_points
-FUNCS += functions/gnutls_x509_crt_cpy_crl_dist_points
-FUNCS += functions/gnutls_x509_crl_sign2
-FUNCS += functions/gnutls_x509_crt_get_activation_time
-FUNCS += functions/gnutls_x509_crt_get_expiration_time
-FUNCS += functions/gnutls_x509_crt_get_serial
+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_get_pk_algorithm
-FUNCS += functions/gnutls_x509_crt_get_pk_rsa_raw
+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_crt_get_raw_dn
+FUNCS += functions/gnutls_x509_crt_get_raw_dn.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_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_issuer_alt_name
-FUNCS += functions/gnutls_x509_crt_get_issuer_alt_name2
-FUNCS += functions/gnutls_x509_crt_get_issuer_alt_othername_oid
-FUNCS += functions/gnutls_x509_crt_get_ca_status
-FUNCS += functions/gnutls_x509_crt_get_basic_constraints
-FUNCS += functions/gnutls_x509_crt_get_key_usage
-FUNCS += functions/gnutls_x509_crt_set_key_usage
+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_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_get_proxy
-FUNCS += functions/gnutls_x509_dn_oid_known
-FUNCS += functions/gnutls_x509_dn_oid_name
-FUNCS += functions/gnutls_x509_crt_get_extension_oid
-FUNCS += functions/gnutls_x509_crt_get_extension_by_oid
-FUNCS += functions/gnutls_x509_crt_get_extension_info
-FUNCS += functions/gnutls_x509_crt_get_extension_data
-FUNCS += functions/gnutls_x509_crt_set_extension_by_oid
+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_version
+FUNCS += functions/gnutls_x509_crt_set_issuer_dn_by_oid.short
 FUNCS += functions/gnutls_x509_crt_set_key
-FUNCS += functions/gnutls_x509_crt_set_ca_status
-FUNCS += functions/gnutls_x509_crt_set_basic_constraints
-FUNCS += functions/gnutls_x509_crt_set_subject_alternative_name
+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_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_alt_name
+FUNCS += functions/gnutls_x509_crt_set_subject_alt_name.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_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_set_activation_time
-FUNCS += functions/gnutls_x509_crt_set_expiration_time
-FUNCS += functions/gnutls_x509_crt_set_serial
-FUNCS += functions/gnutls_x509_crt_set_subject_key_id
-FUNCS += functions/gnutls_x509_crt_set_proxy_dn
-FUNCS += functions/gnutls_x509_crt_set_proxy
-FUNCS += functions/gnutls_x509_crt_print
-FUNCS += functions/gnutls_x509_crl_print
-FUNCS += functions/gnutls_x509_crt_get_raw_issuer_dn
-FUNCS += functions/gnutls_x509_crt_get_raw_dn
-FUNCS += functions/gnutls_x509_rdn_get
-FUNCS += functions/gnutls_x509_rdn_get_oid
-FUNCS += functions/gnutls_x509_rdn_get_by_oid
-FUNCS += functions/gnutls_x509_crt_get_subject
-FUNCS += functions/gnutls_x509_crt_get_issuer
+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_init
+FUNCS += functions/gnutls_x509_dn_get_rdn_ava.short
 FUNCS += functions/gnutls_x509_dn_import
-FUNCS += functions/gnutls_x509_dn_export
-FUNCS += functions/gnutls_x509_dn_deinit
-FUNCS += functions/gnutls_x509_crl_init
-FUNCS += functions/gnutls_x509_crl_deinit
-FUNCS += functions/gnutls_x509_crl_import
-FUNCS += functions/gnutls_x509_crl_export
-FUNCS += functions/gnutls_x509_crl_get_raw_issuer_dn
-FUNCS += functions/gnutls_x509_crl_get_issuer_dn
-FUNCS += functions/gnutls_x509_crl_get_issuer_dn_by_oid
-FUNCS += functions/gnutls_x509_crl_get_dn_oid
-FUNCS += functions/gnutls_x509_crl_get_signature_algorithm
-FUNCS += functions/gnutls_x509_crl_get_signature
-FUNCS += functions/gnutls_x509_crl_get_version
-FUNCS += functions/gnutls_x509_crl_get_this_update
-FUNCS += functions/gnutls_x509_crl_get_next_update
-FUNCS += functions/gnutls_x509_crl_get_crt_count
-FUNCS += functions/gnutls_x509_crl_get_crt_serial
-FUNCS += functions/gnutls_x509_crl_check_issuer
-FUNCS += functions/gnutls_x509_crl_list_import2
-FUNCS += functions/gnutls_x509_crl_list_import
-FUNCS += functions/gnutls_x509_crl_set_version
-FUNCS += functions/gnutls_x509_crl_set_this_update
-FUNCS += functions/gnutls_x509_crl_set_next_update
-FUNCS += functions/gnutls_x509_crl_set_crt_serial
-FUNCS += functions/gnutls_x509_crl_set_crt
-FUNCS += functions/gnutls_x509_crl_get_authority_key_id
-FUNCS += functions/gnutls_x509_crl_get_authority_key_gn_serial
-FUNCS += functions/gnutls_x509_crl_get_number
-FUNCS += functions/gnutls_x509_crl_get_extension_oid
-FUNCS += functions/gnutls_x509_crl_get_extension_info
-FUNCS += functions/gnutls_x509_crl_get_extension_data
-FUNCS += functions/gnutls_x509_crl_set_authority_key_id
-FUNCS += functions/gnutls_x509_crl_set_number
-FUNCS += functions/gnutls_pkcs7_init
-FUNCS += functions/gnutls_pkcs7_deinit
-FUNCS += functions/gnutls_pkcs7_import
-FUNCS += functions/gnutls_pkcs7_export
-FUNCS += functions/gnutls_pkcs7_get_crt_count
-FUNCS += functions/gnutls_pkcs7_get_crt_raw
-FUNCS += functions/gnutls_pkcs7_set_crt_raw
-FUNCS += functions/gnutls_pkcs7_set_crt
-FUNCS += functions/gnutls_pkcs7_delete_crt
-FUNCS += functions/gnutls_pkcs7_get_crl_raw
-FUNCS += functions/gnutls_pkcs7_get_crl_count
-FUNCS += functions/gnutls_pkcs7_set_crl_raw
-FUNCS += functions/gnutls_pkcs7_set_crl
-FUNCS += functions/gnutls_pkcs7_delete_crl
-FUNCS += functions/gnutls_x509_crt_check_issuer
-FUNCS += functions/gnutls_x509_crt_list_verify
-FUNCS += functions/gnutls_x509_crt_verify
-FUNCS += functions/gnutls_x509_crl_verify
-FUNCS += functions/gnutls_x509_crt_check_revocation
-FUNCS += functions/gnutls_x509_crt_get_fingerprint
-FUNCS += functions/gnutls_x509_crt_get_key_purpose_oid
-FUNCS += functions/gnutls_x509_crt_set_key_purpose_oid
-FUNCS += functions/gnutls_x509_privkey_init
-FUNCS += functions/gnutls_x509_privkey_deinit
-FUNCS += functions/gnutls_x509_privkey_sec_param
+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_ecc_raw
-FUNCS += functions/gnutls_x509_privkey_fix
-FUNCS += functions/gnutls_x509_privkey_export_dsa_raw
-FUNCS += functions/gnutls_x509_privkey_import_dsa_raw
-FUNCS += functions/gnutls_x509_privkey_get_pk_algorithm
-FUNCS += functions/gnutls_x509_privkey_get_key_id
-FUNCS += functions/gnutls_x509_privkey_generate
+FUNCS += functions/gnutls_x509_privkey_import_rsa_raw2.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_export
-FUNCS += functions/gnutls_x509_privkey_export_pkcs8
-FUNCS += functions/gnutls_x509_privkey_export_rsa_raw2
-FUNCS += functions/gnutls_x509_privkey_export_rsa_raw
-FUNCS += functions/gnutls_x509_privkey_export_ecc_raw
-FUNCS += functions/gnutls_x509_crq_sign2
-FUNCS += functions/gnutls_x509_crq_print
-FUNCS += functions/gnutls_x509_crq_verify
-FUNCS += functions/gnutls_x509_crq_init
-FUNCS += functions/gnutls_x509_crq_deinit
-FUNCS += functions/gnutls_x509_crq_import
-FUNCS += functions/gnutls_x509_crq_get_private_key_usage_period
-FUNCS += functions/gnutls_x509_crq_get_dn
-FUNCS += functions/gnutls_x509_crq_get_dn_oid
-FUNCS += functions/gnutls_x509_crq_get_dn_by_oid
-FUNCS += functions/gnutls_x509_crq_set_dn_by_oid
-FUNCS += functions/gnutls_x509_crq_set_version
-FUNCS += functions/gnutls_x509_crq_get_version
-FUNCS += functions/gnutls_x509_crq_set_key
-FUNCS += functions/gnutls_x509_crq_set_challenge_password
-FUNCS += functions/gnutls_x509_crq_get_challenge_password
-FUNCS += functions/gnutls_x509_crq_set_attribute_by_oid
-FUNCS += functions/gnutls_x509_crq_get_attribute_by_oid
-FUNCS += functions/gnutls_x509_crq_export
-FUNCS += functions/gnutls_x509_crt_set_crq
-FUNCS += functions/gnutls_x509_crt_set_crq_extensions
-FUNCS += functions/gnutls_x509_crq_set_private_key_usage_period
-FUNCS += functions/gnutls_x509_crq_set_key_rsa_raw
-FUNCS += functions/gnutls_x509_crq_set_subject_alt_name
-FUNCS += functions/gnutls_x509_crq_set_key_usage
-FUNCS += functions/gnutls_x509_crq_set_basic_constraints
-FUNCS += functions/gnutls_x509_crq_set_key_purpose_oid
-FUNCS += functions/gnutls_x509_crq_get_key_purpose_oid
-FUNCS += functions/gnutls_x509_crq_get_extension_data
-FUNCS += functions/gnutls_x509_crq_get_extension_info
-FUNCS += functions/gnutls_x509_crq_get_attribute_data
-FUNCS += functions/gnutls_x509_crq_get_attribute_info
-FUNCS += functions/gnutls_x509_crq_get_pk_algorithm
-FUNCS += functions/gnutls_x509_crq_get_key_id
-FUNCS += functions/gnutls_x509_crq_get_key_rsa_raw
-FUNCS += functions/gnutls_x509_crq_get_key_usage
-FUNCS += functions/gnutls_x509_crq_get_basic_constraints
-FUNCS += functions/gnutls_x509_crq_get_subject_alt_name
-FUNCS += functions/gnutls_x509_crq_get_subject_alt_othername_oid
-FUNCS += functions/gnutls_x509_crq_get_extension_by_oid
-FUNCS += functions/gnutls_x509_trust_list_init
-FUNCS += functions/gnutls_x509_trust_list_deinit
-FUNCS += functions/gnutls_x509_trust_list_get_issuer
+FUNCS += functions/gnutls_x509_privkey_verify_params.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_named_crt
+FUNCS += functions/gnutls_x509_trust_list_add_cas.short
 FUNCS += functions/gnutls_x509_trust_list_add_crls
-FUNCS += functions/gnutls_x509_trust_list_verify_named_crt
+FUNCS += functions/gnutls_x509_trust_list_add_crls.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
index f3fdf67..0ecc3bd 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -89,14 +106,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -264,6 +284,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(imagesdir)"
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -645,6 +670,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -930,7 +956,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -1004,6 +1029,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1139,8 +1165,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1159,7 +1185,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1390,6 +1415,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1693,677 +1719,1400 @@ ENUMS = enums/gnutls_alert_description_t enums/gnutls_alert_level_t \
        enums/gnutls_supplemental_data_format_type_t \
        enums/gnutls_x509_crt_fmt_t \
        enums/gnutls_x509_subject_alt_name_t
-FUNCS = functions/gnutls_pubkey_init functions/gnutls_pubkey_deinit \
-       functions/gnutls_pubkey_get_pk_algorithm \
-       functions/gnutls_pubkey_import_x509 \
-       functions/gnutls_pubkey_import_pkcs11 \
-       functions/gnutls_pubkey_import_openpgp \
-       functions/gnutls_pubkey_import_privkey \
-       functions/gnutls_pubkey_get_preferred_hash_algorithm \
-       functions/gnutls_pubkey_get_pk_rsa_raw \
-       functions/gnutls_pubkey_get_pk_dsa_raw \
-       functions/gnutls_pubkey_get_pk_ecc_raw \
-       functions/gnutls_pubkey_get_pk_ecc_x962 \
-       functions/gnutls_pubkey_export \
-       functions/gnutls_pubkey_get_key_id \
-       functions/gnutls_pubkey_get_openpgp_key_id \
-       functions/gnutls_pubkey_get_key_usage \
-       functions/gnutls_pubkey_set_key_usage \
-       functions/gnutls_pubkey_import \
-       functions/gnutls_pubkey_import_pkcs11_url \
-       functions/gnutls_pubkey_import_dsa_raw \
-       functions/gnutls_pubkey_import_rsa_raw \
-       functions/gnutls_pubkey_import_ecc_x962 \
-       functions/gnutls_pubkey_import_ecc_raw \
-       functions/gnutls_pubkey_encrypt_data \
-       functions/gnutls_x509_crt_set_pubkey \
-       functions/gnutls_x509_crq_set_pubkey \
-       functions/gnutls_pubkey_verify_hash \
-       functions/gnutls_pubkey_verify_hash2 \
-       functions/gnutls_pubkey_get_verify_algorithm \
-       functions/gnutls_pubkey_verify_data \
-       functions/gnutls_pubkey_verify_data2 \
-       functions/gnutls_privkey_init functions/gnutls_privkey_deinit \
-       functions/gnutls_privkey_get_pk_algorithm \
-       functions/gnutls_privkey_get_type \
-       functions/gnutls_privkey_import_pkcs11 \
-       functions/gnutls_privkey_import_x509 \
-       functions/gnutls_privkey_import_openpgp \
-       functions/gnutls_privkey_import_ext \
-       functions/gnutls_privkey_sign_data \
-       functions/gnutls_privkey_sign_hash \
-       functions/gnutls_privkey_decrypt_data \
-       functions/gnutls_x509_crt_privkey_sign \
-       functions/gnutls_x509_crl_privkey_sign \
-       functions/gnutls_x509_crq_privkey_sign \
-       functions/gnutls_pcert_import_x509 \
-       functions/gnutls_pcert_list_import_x509_raw \
-       functions/gnutls_pcert_import_x509_raw \
-       functions/gnutls_pcert_import_openpgp_raw \
-       functions/gnutls_pcert_import_openpgp \
-       functions/gnutls_pcert_deinit \
-       functions/gnutls_certificate_set_retrieve_function2 \
-       functions/gnutls_certificate_set_key \
-       functions/gnutls_sign_callback_set \
-       functions/gnutls_sign_callback_get \
-       functions/gnutls_x509_privkey_sign_hash \
-       functions/gnutls_openpgp_privkey_sign_hash \
-       functions/gnutls_x509_privkey_sign_data \
-       functions/gnutls_x509_crt_verify_data \
-       functions/gnutls_x509_crt_verify_hash \
-       functions/gnutls_x509_crt_get_verify_algorithm \
-       functions/gnutls_x509_crt_get_preferred_hash_algorithm \
-       functions/gnutls_x509_crq_sign functions/gnutls_x509_crl_sign \
-       functions/gnutls_cipher_set_priority \
-       functions/gnutls_mac_set_priority \
-       functions/gnutls_compression_set_priority \
-       functions/gnutls_kx_set_priority \
-       functions/gnutls_protocol_set_priority \
-       functions/gnutls_certificate_type_set_priority \
-       functions/gnutls_rsa_params_init \
-       functions/gnutls_rsa_params_deinit \
-       functions/gnutls_rsa_params_cpy \
-       functions/gnutls_rsa_params_import_raw \
-       functions/gnutls_rsa_params_generate2 \
-       functions/gnutls_rsa_params_export_raw \
-       functions/gnutls_rsa_params_export_pkcs1 \
-       functions/gnutls_rsa_params_import_pkcs1 \
-       functions/gnutls_rsa_export_get_pubkey \
-       functions/gnutls_rsa_export_get_modulus_bits \
-       functions/gnutls_set_default_export_priority \
-       functions/gnutls_certificate_set_rsa_export_params \
-       functions/gnutls_cipher_init functions/gnutls_cipher_encrypt \
-       functions/gnutls_cipher_decrypt \
-       functions/gnutls_cipher_decrypt2 \
-       functions/gnutls_cipher_encrypt2 \
-       functions/gnutls_cipher_set_iv functions/gnutls_cipher_tag \
-       functions/gnutls_cipher_add_auth \
-       functions/gnutls_cipher_deinit \
-       functions/gnutls_cipher_get_block_size \
-       functions/gnutls_hmac_init functions/gnutls_hmac \
-       functions/gnutls_hmac_output functions/gnutls_hmac_deinit \
-       functions/gnutls_hmac_get_len functions/gnutls_hmac_fast \
-       functions/gnutls_hash_init functions/gnutls_hash \
-       functions/gnutls_hash_output functions/gnutls_hash_deinit \
-       functions/gnutls_hash_get_len functions/gnutls_hash_fast \
-       functions/gnutls_rnd functions/gnutls_dtls_set_timeouts \
-       functions/gnutls_dtls_get_mtu \
-       functions/gnutls_dtls_get_data_mtu \
-       functions/gnutls_dtls_set_mtu \
-       functions/gnutls_dtls_set_data_mtu \
-       functions/gnutls_dtls_get_timeout \
-       functions/gnutls_dtls_cookie_send \
-       functions/gnutls_dtls_cookie_verify \
-       functions/gnutls_dtls_prestate_set \
-       functions/gnutls_record_get_discarded \
-       functions/gnutls_pk_algorithm_get_name functions/gnutls_init \
-       functions/gnutls_deinit functions/gnutls_bye \
-       functions/gnutls_handshake functions/gnutls_rehandshake \
-       functions/gnutls_alert_get functions/gnutls_alert_send \
-       functions/gnutls_alert_send_appropriate \
+FUNCS = functions/gnutls_alert_get functions/gnutls_alert_get.short \
        functions/gnutls_alert_get_name \
+       functions/gnutls_alert_get_name.short \
        functions/gnutls_alert_get_strname \
-       functions/gnutls_pk_bits_to_sec_param \
-       functions/gnutls_sec_param_get_name \
-       functions/gnutls_sec_param_to_pk_bits \
-       functions/gnutls_ecc_curve_get_name \
-       functions/gnutls_ecc_curve_get_size \
-       functions/gnutls_ecc_curve_get functions/gnutls_cipher_get \
-       functions/gnutls_kx_get functions/gnutls_mac_get \
-       functions/gnutls_compression_get \
-       functions/gnutls_certificate_type_get \
-       functions/gnutls_sign_algorithm_get_requested \
-       functions/gnutls_cipher_get_key_size \
-       functions/gnutls_mac_get_key_size \
-       functions/gnutls_cipher_get_name functions/gnutls_mac_get_name \
-       functions/gnutls_compression_get_name \
-       functions/gnutls_kx_get_name \
-       functions/gnutls_certificate_type_get_name \
-       functions/gnutls_pk_get_name functions/gnutls_sign_get_name \
-       functions/gnutls_pk_to_sign functions/gnutls_mac_get_id \
-       functions/gnutls_compression_get_id \
-       functions/gnutls_cipher_get_id functions/gnutls_kx_get_id \
-       functions/gnutls_protocol_get_id \
-       functions/gnutls_certificate_type_get_id \
-       functions/gnutls_pk_get_id functions/gnutls_sign_get_id \
-       functions/gnutls_ecc_curve_list functions/gnutls_cipher_list \
-       functions/gnutls_mac_list functions/gnutls_compression_list \
-       functions/gnutls_protocol_list \
-       functions/gnutls_certificate_type_list \
-       functions/gnutls_kx_list functions/gnutls_pk_list \
-       functions/gnutls_sign_list functions/gnutls_cipher_suite_info \
-       functions/gnutls_error_is_fatal \
-       functions/gnutls_error_to_alert functions/gnutls_perror \
-       functions/gnutls_strerror functions/gnutls_strerror_name \
-       functions/gnutls_handshake_set_private_extensions \
-       functions/gnutls_handshake_get_last_out \
-       functions/gnutls_handshake_get_last_in \
-       functions/gnutls_record_send functions/gnutls_record_recv \
-       functions/gnutls_record_recv_seq \
-       functions/gnutls_session_enable_compatibility_mode \
-       functions/gnutls_record_disable_padding \
-       functions/gnutls_record_get_direction \
-       functions/gnutls_record_get_max_size \
-       functions/gnutls_record_set_max_size \
-       functions/gnutls_record_check_pending functions/gnutls_prf \
-       functions/gnutls_prf_raw functions/gnutls_server_name_set \
-       functions/gnutls_server_name_get \
-       functions/gnutls_safe_renegotiation_status \
-       functions/gnutls_supplemental_get_name \
-       functions/gnutls_session_ticket_key_generate \
-       functions/gnutls_session_ticket_enable_client \
-       functions/gnutls_session_ticket_enable_server \
-       functions/gnutls_key_generate functions/gnutls_priority_init \
-       functions/gnutls_priority_deinit \
-       functions/gnutls_priority_get_cipher_suite_index \
-       functions/gnutls_priority_set \
-       functions/gnutls_priority_set_direct \
-       functions/gnutls_priority_certificate_type_list \
-       functions/gnutls_priority_sign_list \
-       functions/gnutls_priority_protocol_list \
-       functions/gnutls_priority_compression_list \
-       functions/gnutls_priority_ecc_curve_list \
-       functions/gnutls_set_default_priority \
-       functions/gnutls_cipher_suite_get_name \
-       functions/gnutls_protocol_get_version \
-       functions/gnutls_protocol_get_name \
-       functions/gnutls_session_set_data \
-       functions/gnutls_session_get_data \
-       functions/gnutls_session_get_data2 \
-       functions/gnutls_session_get_random \
-       functions/gnutls_session_set_premaster \
-       functions/gnutls_session_get_id \
-       functions/gnutls_session_channel_binding \
-       functions/gnutls_session_is_resumed \
-       functions/gnutls_session_resumption_requested \
-       functions/gnutls_db_set_cache_expiration \
-       functions/gnutls_db_remove_session \
-       functions/gnutls_db_set_retrieve_function \
-       functions/gnutls_db_set_remove_function \
-       functions/gnutls_db_set_store_function \
-       functions/gnutls_db_set_ptr functions/gnutls_db_get_ptr \
-       functions/gnutls_db_check_entry \
-       functions/gnutls_handshake_set_post_client_hello_function \
-       functions/gnutls_handshake_set_max_packet_length \
-       functions/gnutls_check_version \
-       functions/gnutls_credentials_clear \
-       functions/gnutls_credentials_set \
-       functions/gnutls_anon_free_server_credentials \
+       functions/gnutls_alert_get_strname.short \
+       functions/gnutls_alert_send functions/gnutls_alert_send.short \
+       functions/gnutls_alert_send_appropriate \
+       functions/gnutls_alert_send_appropriate.short \
+       functions/gnutls_anon_allocate_client_credentials \
+       functions/gnutls_anon_allocate_client_credentials.short \
        functions/gnutls_anon_allocate_server_credentials \
+       functions/gnutls_anon_allocate_server_credentials.short \
+       functions/gnutls_anon_free_client_credentials \
+       functions/gnutls_anon_free_client_credentials.short \
+       functions/gnutls_anon_free_server_credentials \
+       functions/gnutls_anon_free_server_credentials.short \
+       functions/gnutls_anon_set_params_function \
+       functions/gnutls_anon_set_params_function.short \
        functions/gnutls_anon_set_server_dh_params \
+       functions/gnutls_anon_set_server_dh_params.short \
        functions/gnutls_anon_set_server_params_function \
-       functions/gnutls_anon_free_client_credentials \
-       functions/gnutls_anon_allocate_client_credentials \
-       functions/gnutls_certificate_free_credentials \
+       functions/gnutls_anon_set_server_params_function.short \
+       functions/gnutls_auth_client_get_type \
+       functions/gnutls_auth_client_get_type.short \
+       functions/gnutls_auth_get_type \
+       functions/gnutls_auth_get_type.short \
+       functions/gnutls_auth_server_get_type \
+       functions/gnutls_auth_server_get_type.short \
+       functions/gnutls_bye functions/gnutls_bye.short \
+       functions/gnutls_certificate_activation_time_peers \
+       functions/gnutls_certificate_activation_time_peers.short \
        functions/gnutls_certificate_allocate_credentials \
-       functions/gnutls_certificate_get_issuer \
-       functions/gnutls_certificate_free_keys \
-       functions/gnutls_certificate_free_cas \
+       functions/gnutls_certificate_allocate_credentials.short \
+       functions/gnutls_certificate_client_get_request_status \
+       functions/gnutls_certificate_client_get_request_status.short \
+       functions/gnutls_certificate_expiration_time_peers \
+       functions/gnutls_certificate_expiration_time_peers.short \
        functions/gnutls_certificate_free_ca_names \
+       functions/gnutls_certificate_free_ca_names.short \
+       functions/gnutls_certificate_free_cas \
+       functions/gnutls_certificate_free_cas.short \
+       functions/gnutls_certificate_free_credentials \
+       functions/gnutls_certificate_free_credentials.short \
        functions/gnutls_certificate_free_crls \
+       functions/gnutls_certificate_free_crls.short \
+       functions/gnutls_certificate_free_keys \
+       functions/gnutls_certificate_free_keys.short \
+       functions/gnutls_certificate_get_issuer \
+       functions/gnutls_certificate_get_issuer.short \
+       functions/gnutls_certificate_get_ours \
+       functions/gnutls_certificate_get_ours.short \
+       functions/gnutls_certificate_get_peers \
+       functions/gnutls_certificate_get_peers.short \
+       functions/gnutls_certificate_send_x509_rdn_sequence \
+       functions/gnutls_certificate_send_x509_rdn_sequence.short \
+       functions/gnutls_certificate_server_set_request \
+       functions/gnutls_certificate_server_set_request.short \
        functions/gnutls_certificate_set_dh_params \
+       functions/gnutls_certificate_set_dh_params.short \
+       functions/gnutls_certificate_set_key \
+       functions/gnutls_certificate_set_key.short \
+       functions/gnutls_certificate_set_openpgp_key \
+       functions/gnutls_certificate_set_openpgp_key.short \
+       functions/gnutls_certificate_set_openpgp_key_file \
+       functions/gnutls_certificate_set_openpgp_key_file.short \
+       functions/gnutls_certificate_set_openpgp_key_file2 \
+       functions/gnutls_certificate_set_openpgp_key_file2.short \
+       functions/gnutls_certificate_set_openpgp_key_mem \
+       functions/gnutls_certificate_set_openpgp_key_mem.short \
+       functions/gnutls_certificate_set_openpgp_key_mem2 \
+       functions/gnutls_certificate_set_openpgp_key_mem2.short \
+       functions/gnutls_certificate_set_openpgp_keyring_file \
+       functions/gnutls_certificate_set_openpgp_keyring_file.short \
+       functions/gnutls_certificate_set_openpgp_keyring_mem \
+       functions/gnutls_certificate_set_openpgp_keyring_mem.short \
+       functions/gnutls_certificate_set_params_function \
+       functions/gnutls_certificate_set_params_function.short \
+       functions/gnutls_certificate_set_retrieve_function \
+       functions/gnutls_certificate_set_retrieve_function.short \
+       functions/gnutls_certificate_set_retrieve_function2 \
+       functions/gnutls_certificate_set_retrieve_function2.short \
+       functions/gnutls_certificate_set_rsa_export_params \
+       functions/gnutls_certificate_set_rsa_export_params.short \
        functions/gnutls_certificate_set_verify_flags \
+       functions/gnutls_certificate_set_verify_flags.short \
+       functions/gnutls_certificate_set_verify_function \
+       functions/gnutls_certificate_set_verify_function.short \
        functions/gnutls_certificate_set_verify_limits \
-       functions/gnutls_certificate_set_x509_system_trust \
-       functions/gnutls_certificate_set_x509_trust_file \
-       functions/gnutls_certificate_set_x509_trust_mem \
+       functions/gnutls_certificate_set_verify_limits.short \
+       functions/gnutls_certificate_set_x509_crl \
+       functions/gnutls_certificate_set_x509_crl.short \
        functions/gnutls_certificate_set_x509_crl_file \
+       functions/gnutls_certificate_set_x509_crl_file.short \
        functions/gnutls_certificate_set_x509_crl_mem \
+       functions/gnutls_certificate_set_x509_crl_mem.short \
+       functions/gnutls_certificate_set_x509_key \
+       functions/gnutls_certificate_set_x509_key.short \
        functions/gnutls_certificate_set_x509_key_file \
+       functions/gnutls_certificate_set_x509_key_file.short \
        functions/gnutls_certificate_set_x509_key_mem \
-       functions/gnutls_certificate_send_x509_rdn_sequence \
+       functions/gnutls_certificate_set_x509_key_mem.short \
        functions/gnutls_certificate_set_x509_simple_pkcs12_file \
+       functions/gnutls_certificate_set_x509_simple_pkcs12_file.short \
        functions/gnutls_certificate_set_x509_simple_pkcs12_mem \
-       functions/gnutls_certificate_set_x509_key \
+       functions/gnutls_certificate_set_x509_simple_pkcs12_mem.short \
+       functions/gnutls_certificate_set_x509_system_trust \
+       functions/gnutls_certificate_set_x509_system_trust.short \
        functions/gnutls_certificate_set_x509_trust \
-       functions/gnutls_certificate_set_x509_crl \
-       functions/gnutls_global_init functions/gnutls_global_deinit \
-       functions/gnutls_global_set_mutex \
-       functions/gnutls_global_set_mem_functions \
-       functions/gnutls_global_set_time_function \
-       functions/gnutls_global_set_log_function \
-       functions/gnutls_global_set_audit_log_function \
-       functions/gnutls_global_set_log_level \
-       functions/gnutls_dh_params_init \
+       functions/gnutls_certificate_set_x509_trust.short \
+       functions/gnutls_certificate_set_x509_trust_file \
+       functions/gnutls_certificate_set_x509_trust_file.short \
+       functions/gnutls_certificate_set_x509_trust_mem \
+       functions/gnutls_certificate_set_x509_trust_mem.short \
+       functions/gnutls_certificate_type_get \
+       functions/gnutls_certificate_type_get.short \
+       functions/gnutls_certificate_type_get_id \
+       functions/gnutls_certificate_type_get_id.short \
+       functions/gnutls_certificate_type_get_name \
+       functions/gnutls_certificate_type_get_name.short \
+       functions/gnutls_certificate_type_list \
+       functions/gnutls_certificate_type_list.short \
+       functions/gnutls_certificate_type_set_priority \
+       functions/gnutls_certificate_type_set_priority.short \
+       functions/gnutls_certificate_verify_peers2 \
+       functions/gnutls_certificate_verify_peers2.short \
+       functions/gnutls_check_version \
+       functions/gnutls_check_version.short \
+       functions/gnutls_cipher_add_auth \
+       functions/gnutls_cipher_add_auth.short \
+       functions/gnutls_cipher_decrypt \
+       functions/gnutls_cipher_decrypt.short \
+       functions/gnutls_cipher_decrypt2 \
+       functions/gnutls_cipher_decrypt2.short \
+       functions/gnutls_cipher_deinit \
+       functions/gnutls_cipher_deinit.short \
+       functions/gnutls_cipher_encrypt \
+       functions/gnutls_cipher_encrypt.short \
+       functions/gnutls_cipher_encrypt2 \
+       functions/gnutls_cipher_encrypt2.short \
+       functions/gnutls_cipher_get functions/gnutls_cipher_get.short \
+       functions/gnutls_cipher_get_block_size \
+       functions/gnutls_cipher_get_block_size.short \
+       functions/gnutls_cipher_get_id \
+       functions/gnutls_cipher_get_id.short \
+       functions/gnutls_cipher_get_key_size \
+       functions/gnutls_cipher_get_key_size.short \
+       functions/gnutls_cipher_get_name \
+       functions/gnutls_cipher_get_name.short \
+       functions/gnutls_cipher_init \
+       functions/gnutls_cipher_init.short \
+       functions/gnutls_cipher_list \
+       functions/gnutls_cipher_list.short \
+       functions/gnutls_cipher_set_iv \
+       functions/gnutls_cipher_set_iv.short \
+       functions/gnutls_cipher_set_priority \
+       functions/gnutls_cipher_set_priority.short \
+       functions/gnutls_cipher_suite_get_name \
+       functions/gnutls_cipher_suite_get_name.short \
+       functions/gnutls_cipher_suite_info \
+       functions/gnutls_cipher_suite_info.short \
+       functions/gnutls_cipher_tag functions/gnutls_cipher_tag.short \
+       functions/gnutls_compression_get \
+       functions/gnutls_compression_get.short \
+       functions/gnutls_compression_get_id \
+       functions/gnutls_compression_get_id.short \
+       functions/gnutls_compression_get_name \
+       functions/gnutls_compression_get_name.short \
+       functions/gnutls_compression_list \
+       functions/gnutls_compression_list.short \
+       functions/gnutls_compression_set_priority \
+       functions/gnutls_compression_set_priority.short \
+       functions/gnutls_credentials_clear \
+       functions/gnutls_credentials_clear.short \
+       functions/gnutls_credentials_set \
+       functions/gnutls_credentials_set.short \
+       functions/gnutls_db_check_entry \
+       functions/gnutls_db_check_entry.short \
+       functions/gnutls_db_get_ptr functions/gnutls_db_get_ptr.short \
+       functions/gnutls_db_remove_session \
+       functions/gnutls_db_remove_session.short \
+       functions/gnutls_db_set_cache_expiration \
+       functions/gnutls_db_set_cache_expiration.short \
+       functions/gnutls_db_set_ptr functions/gnutls_db_set_ptr.short \
+       functions/gnutls_db_set_remove_function \
+       functions/gnutls_db_set_remove_function.short \
+       functions/gnutls_db_set_retrieve_function \
+       functions/gnutls_db_set_retrieve_function.short \
+       functions/gnutls_db_set_store_function \
+       functions/gnutls_db_set_store_function.short \
+       functions/gnutls_deinit functions/gnutls_deinit.short \
+       functions/gnutls_dh_get_group \
+       functions/gnutls_dh_get_group.short \
+       functions/gnutls_dh_get_peers_public_bits \
+       functions/gnutls_dh_get_peers_public_bits.short \
+       functions/gnutls_dh_get_prime_bits \
+       functions/gnutls_dh_get_prime_bits.short \
+       functions/gnutls_dh_get_pubkey \
+       functions/gnutls_dh_get_pubkey.short \
+       functions/gnutls_dh_get_secret_bits \
+       functions/gnutls_dh_get_secret_bits.short \
+       functions/gnutls_dh_params_cpy \
+       functions/gnutls_dh_params_cpy.short \
        functions/gnutls_dh_params_deinit \
-       functions/gnutls_dh_params_import_raw \
-       functions/gnutls_dh_params_import_pkcs3 \
-       functions/gnutls_dh_params_generate2 \
+       functions/gnutls_dh_params_deinit.short \
        functions/gnutls_dh_params_export_pkcs3 \
+       functions/gnutls_dh_params_export_pkcs3.short \
        functions/gnutls_dh_params_export_raw \
-       functions/gnutls_dh_params_cpy \
-       functions/gnutls_transport_set_ptr \
-       functions/gnutls_transport_set_ptr2 \
-       functions/gnutls_transport_get_ptr \
-       functions/gnutls_transport_get_ptr2 \
-       functions/gnutls_transport_set_vec_push_function \
-       functions/gnutls_transport_set_push_function \
-       functions/gnutls_transport_set_pull_function \
-       functions/gnutls_transport_set_pull_timeout_function \
-       functions/gnutls_transport_set_errno_function \
-       functions/gnutls_transport_set_errno \
-       functions/gnutls_session_set_ptr \
-       functions/gnutls_session_get_ptr \
-       functions/gnutls_openpgp_send_cert \
-       functions/gnutls_fingerprint functions/gnutls_random_art \
-       functions/gnutls_srp_free_client_credentials \
-       functions/gnutls_srp_allocate_client_credentials \
-       functions/gnutls_srp_set_client_credentials \
-       functions/gnutls_srp_free_server_credentials \
-       functions/gnutls_srp_allocate_server_credentials \
-       functions/gnutls_srp_set_server_credentials_file \
-       functions/gnutls_srp_server_get_username \
-       functions/gnutls_srp_set_prime_bits \
-       functions/gnutls_srp_verifier \
-       functions/gnutls_srp_set_server_credentials_function \
-       functions/gnutls_srp_set_client_credentials_function \
-       functions/gnutls_srp_base64_encode \
-       functions/gnutls_srp_base64_encode_alloc \
-       functions/gnutls_srp_base64_decode \
-       functions/gnutls_srp_base64_decode_alloc \
-       functions/gnutls_psk_free_client_credentials \
-       functions/gnutls_psk_allocate_client_credentials \
-       functions/gnutls_psk_set_client_credentials \
-       functions/gnutls_psk_free_server_credentials \
-       functions/gnutls_psk_allocate_server_credentials \
-       functions/gnutls_psk_set_server_credentials_file \
-       functions/gnutls_psk_set_server_credentials_hint \
-       functions/gnutls_psk_server_get_username \
-       functions/gnutls_psk_client_get_hint \
-       functions/gnutls_psk_set_server_credentials_function \
-       functions/gnutls_psk_set_client_credentials_function \
-       functions/gnutls_hex_encode functions/gnutls_hex_decode \
-       functions/gnutls_psk_set_server_dh_params \
-       functions/gnutls_psk_set_server_params_function \
-       functions/gnutls_auth_get_type \
-       functions/gnutls_auth_server_get_type \
-       functions/gnutls_auth_client_get_type \
+       functions/gnutls_dh_params_export_raw.short \
+       functions/gnutls_dh_params_generate2 \
+       functions/gnutls_dh_params_generate2.short \
+       functions/gnutls_dh_params_import_pkcs3 \
+       functions/gnutls_dh_params_import_pkcs3.short \
+       functions/gnutls_dh_params_import_raw \
+       functions/gnutls_dh_params_import_raw.short \
+       functions/gnutls_dh_params_init \
+       functions/gnutls_dh_params_init.short \
        functions/gnutls_dh_set_prime_bits \
-       functions/gnutls_dh_get_secret_bits \
-       functions/gnutls_dh_get_peers_public_bits \
-       functions/gnutls_dh_get_prime_bits \
-       functions/gnutls_dh_get_group functions/gnutls_dh_get_pubkey \
-       functions/gnutls_certificate_set_retrieve_function \
-       functions/gnutls_certificate_set_verify_function \
-       functions/gnutls_certificate_server_set_request \
-       functions/gnutls_certificate_get_peers \
-       functions/gnutls_certificate_get_ours \
-       functions/gnutls_certificate_activation_time_peers \
-       functions/gnutls_certificate_expiration_time_peers \
-       functions/gnutls_certificate_client_get_request_status \
-       functions/gnutls_certificate_verify_peers2 \
-       functions/gnutls_pem_base64_encode \
-       functions/gnutls_pem_base64_decode \
-       functions/gnutls_pem_base64_encode_alloc \
-       functions/gnutls_pem_base64_decode_alloc \
-       functions/gnutls_certificate_set_params_function \
-       functions/gnutls_anon_set_params_function \
-       functions/gnutls_psk_set_params_function \
-       functions/gnutls_hex2bin functions/gnutls_tdb_init \
-       functions/gnutls_tdb_set_store_func \
-       functions/gnutls_tdb_set_store_commitment_func \
-       functions/gnutls_tdb_set_verify_func \
-       functions/gnutls_tdb_deinit \
-       functions/gnutls_verify_stored_pubkey \
-       functions/gnutls_store_commitment \
-       functions/gnutls_store_pubkey functions/gnutls_ocsp_req_init \
+       functions/gnutls_dh_set_prime_bits.short \
+       functions/gnutls_dtls_cookie_send \
+       functions/gnutls_dtls_cookie_send.short \
+       functions/gnutls_dtls_cookie_verify \
+       functions/gnutls_dtls_cookie_verify.short \
+       functions/gnutls_dtls_get_data_mtu \
+       functions/gnutls_dtls_get_data_mtu.short \
+       functions/gnutls_dtls_get_mtu \
+       functions/gnutls_dtls_get_mtu.short \
+       functions/gnutls_dtls_get_timeout \
+       functions/gnutls_dtls_get_timeout.short \
+       functions/gnutls_dtls_prestate_set \
+       functions/gnutls_dtls_prestate_set.short \
+       functions/gnutls_dtls_set_data_mtu \
+       functions/gnutls_dtls_set_data_mtu.short \
+       functions/gnutls_dtls_set_mtu \
+       functions/gnutls_dtls_set_mtu.short \
+       functions/gnutls_dtls_set_timeouts \
+       functions/gnutls_dtls_set_timeouts.short \
+       functions/gnutls_ecc_curve_get \
+       functions/gnutls_ecc_curve_get.short \
+       functions/gnutls_ecc_curve_get_name \
+       functions/gnutls_ecc_curve_get_name.short \
+       functions/gnutls_ecc_curve_get_size \
+       functions/gnutls_ecc_curve_get_size.short \
+       functions/gnutls_ecc_curve_list \
+       functions/gnutls_ecc_curve_list.short \
+       functions/gnutls_error_is_fatal \
+       functions/gnutls_error_is_fatal.short \
+       functions/gnutls_error_to_alert \
+       functions/gnutls_error_to_alert.short \
+       functions/gnutls_fingerprint \
+       functions/gnutls_fingerprint.short \
+       functions/gnutls_global_deinit \
+       functions/gnutls_global_deinit.short \
+       functions/gnutls_global_init \
+       functions/gnutls_global_init.short \
+       functions/gnutls_global_set_audit_log_function \
+       functions/gnutls_global_set_audit_log_function.short \
+       functions/gnutls_global_set_log_function \
+       functions/gnutls_global_set_log_function.short \
+       functions/gnutls_global_set_log_level \
+       functions/gnutls_global_set_log_level.short \
+       functions/gnutls_global_set_mem_functions \
+       functions/gnutls_global_set_mem_functions.short \
+       functions/gnutls_global_set_mutex \
+       functions/gnutls_global_set_mutex.short \
+       functions/gnutls_global_set_time_function \
+       functions/gnutls_global_set_time_function.short \
+       functions/gnutls_handshake functions/gnutls_handshake.short \
+       functions/gnutls_handshake_get_last_in \
+       functions/gnutls_handshake_get_last_in.short \
+       functions/gnutls_handshake_get_last_out \
+       functions/gnutls_handshake_get_last_out.short \
+       functions/gnutls_handshake_set_max_packet_length \
+       functions/gnutls_handshake_set_max_packet_length.short \
+       functions/gnutls_handshake_set_post_client_hello_function \
+       functions/gnutls_handshake_set_post_client_hello_function.short \
+       functions/gnutls_handshake_set_private_extensions \
+       functions/gnutls_handshake_set_private_extensions.short \
+       functions/gnutls_hash functions/gnutls_hash.short \
+       functions/gnutls_hash_deinit \
+       functions/gnutls_hash_deinit.short functions/gnutls_hash_fast \
+       functions/gnutls_hash_fast.short functions/gnutls_hash_get_len \
+       functions/gnutls_hash_get_len.short functions/gnutls_hash_init \
+       functions/gnutls_hash_init.short functions/gnutls_hash_output \
+       functions/gnutls_hash_output.short functions/gnutls_hex2bin \
+       functions/gnutls_hex2bin.short functions/gnutls_hex_decode \
+       functions/gnutls_hex_decode.short functions/gnutls_hex_encode \
+       functions/gnutls_hex_encode.short functions/gnutls_hmac \
+       functions/gnutls_hmac.short functions/gnutls_hmac_deinit \
+       functions/gnutls_hmac_deinit.short functions/gnutls_hmac_fast \
+       functions/gnutls_hmac_fast.short functions/gnutls_hmac_get_len \
+       functions/gnutls_hmac_get_len.short functions/gnutls_hmac_init \
+       functions/gnutls_hmac_init.short functions/gnutls_hmac_output \
+       functions/gnutls_hmac_output.short functions/gnutls_init \
+       functions/gnutls_init.short functions/gnutls_key_generate \
+       functions/gnutls_key_generate.short functions/gnutls_kx_get \
+       functions/gnutls_kx_get.short functions/gnutls_kx_get_id \
+       functions/gnutls_kx_get_id.short functions/gnutls_kx_get_name \
+       functions/gnutls_kx_get_name.short functions/gnutls_kx_list \
+       functions/gnutls_kx_list.short \
+       functions/gnutls_kx_set_priority \
+       functions/gnutls_kx_set_priority.short \
+       functions/gnutls_mac_get functions/gnutls_mac_get.short \
+       functions/gnutls_mac_get_id functions/gnutls_mac_get_id.short \
+       functions/gnutls_mac_get_key_size \
+       functions/gnutls_mac_get_key_size.short \
+       functions/gnutls_mac_get_name \
+       functions/gnutls_mac_get_name.short functions/gnutls_mac_list \
+       functions/gnutls_mac_list.short \
+       functions/gnutls_mac_set_priority \
+       functions/gnutls_mac_set_priority.short \
+       functions/gnutls_ocsp_req_add_cert \
+       functions/gnutls_ocsp_req_add_cert.short \
+       functions/gnutls_ocsp_req_add_cert_id \
+       functions/gnutls_ocsp_req_add_cert_id.short \
        functions/gnutls_ocsp_req_deinit \
-       functions/gnutls_ocsp_req_import \
+       functions/gnutls_ocsp_req_deinit.short \
        functions/gnutls_ocsp_req_export \
-       functions/gnutls_ocsp_req_print \
-       functions/gnutls_ocsp_req_get_version \
+       functions/gnutls_ocsp_req_export.short \
        functions/gnutls_ocsp_req_get_cert_id \
-       functions/gnutls_ocsp_req_add_cert_id \
-       functions/gnutls_ocsp_req_add_cert \
+       functions/gnutls_ocsp_req_get_cert_id.short \
        functions/gnutls_ocsp_req_get_extension \
-       functions/gnutls_ocsp_req_set_extension \
+       functions/gnutls_ocsp_req_get_extension.short \
        functions/gnutls_ocsp_req_get_nonce \
-       functions/gnutls_ocsp_req_set_nonce \
+       functions/gnutls_ocsp_req_get_nonce.short \
+       functions/gnutls_ocsp_req_get_version \
+       functions/gnutls_ocsp_req_get_version.short \
+       functions/gnutls_ocsp_req_import \
+       functions/gnutls_ocsp_req_import.short \
+       functions/gnutls_ocsp_req_init \
+       functions/gnutls_ocsp_req_init.short \
+       functions/gnutls_ocsp_req_print \
+       functions/gnutls_ocsp_req_print.short \
        functions/gnutls_ocsp_req_randomize_nonce \
-       functions/gnutls_ocsp_resp_init \
+       functions/gnutls_ocsp_req_randomize_nonce.short \
+       functions/gnutls_ocsp_req_set_extension \
+       functions/gnutls_ocsp_req_set_extension.short \
+       functions/gnutls_ocsp_req_set_nonce \
+       functions/gnutls_ocsp_req_set_nonce.short \
+       functions/gnutls_ocsp_resp_check_crt \
+       functions/gnutls_ocsp_resp_check_crt.short \
        functions/gnutls_ocsp_resp_deinit \
-       functions/gnutls_ocsp_resp_import \
+       functions/gnutls_ocsp_resp_deinit.short \
        functions/gnutls_ocsp_resp_export \
-       functions/gnutls_ocsp_resp_print \
-       functions/gnutls_ocsp_resp_get_status \
-       functions/gnutls_ocsp_resp_get_response \
-       functions/gnutls_ocsp_resp_get_version \
-       functions/gnutls_ocsp_resp_get_responder \
-       functions/gnutls_ocsp_resp_get_produced \
-       functions/gnutls_ocsp_resp_get_single \
+       functions/gnutls_ocsp_resp_export.short \
+       functions/gnutls_ocsp_resp_get_certs \
+       functions/gnutls_ocsp_resp_get_certs.short \
        functions/gnutls_ocsp_resp_get_extension \
+       functions/gnutls_ocsp_resp_get_extension.short \
        functions/gnutls_ocsp_resp_get_nonce \
-       functions/gnutls_ocsp_resp_get_signature_algorithm \
+       functions/gnutls_ocsp_resp_get_nonce.short \
+       functions/gnutls_ocsp_resp_get_produced \
+       functions/gnutls_ocsp_resp_get_produced.short \
+       functions/gnutls_ocsp_resp_get_responder \
+       functions/gnutls_ocsp_resp_get_responder.short \
+       functions/gnutls_ocsp_resp_get_response \
+       functions/gnutls_ocsp_resp_get_response.short \
        functions/gnutls_ocsp_resp_get_signature \
-       functions/gnutls_ocsp_resp_get_certs \
-       functions/gnutls_ocsp_resp_verify_direct \
+       functions/gnutls_ocsp_resp_get_signature.short \
+       functions/gnutls_ocsp_resp_get_signature_algorithm \
+       functions/gnutls_ocsp_resp_get_signature_algorithm.short \
+       functions/gnutls_ocsp_resp_get_single \
+       functions/gnutls_ocsp_resp_get_single.short \
+       functions/gnutls_ocsp_resp_get_status \
+       functions/gnutls_ocsp_resp_get_status.short \
+       functions/gnutls_ocsp_resp_get_version \
+       functions/gnutls_ocsp_resp_get_version.short \
+       functions/gnutls_ocsp_resp_import \
+       functions/gnutls_ocsp_resp_import.short \
+       functions/gnutls_ocsp_resp_init \
+       functions/gnutls_ocsp_resp_init.short \
+       functions/gnutls_ocsp_resp_print \
+       functions/gnutls_ocsp_resp_print.short \
        functions/gnutls_ocsp_resp_verify \
-       functions/gnutls_openpgp_crt_init \
+       functions/gnutls_ocsp_resp_verify.short \
+       functions/gnutls_ocsp_resp_verify_direct \
+       functions/gnutls_ocsp_resp_verify_direct.short \
+       functions/gnutls_openpgp_crt_check_hostname \
+       functions/gnutls_openpgp_crt_check_hostname.short \
        functions/gnutls_openpgp_crt_deinit \
-       functions/gnutls_openpgp_crt_import \
+       functions/gnutls_openpgp_crt_deinit.short \
        functions/gnutls_openpgp_crt_export \
-       functions/gnutls_openpgp_crt_print \
-       functions/gnutls_openpgp_crt_get_key_usage \
-       functions/gnutls_openpgp_crt_get_fingerprint \
-       functions/gnutls_openpgp_crt_get_subkey_fingerprint \
-       functions/gnutls_openpgp_crt_get_name \
-       functions/gnutls_openpgp_crt_get_pk_algorithm \
-       functions/gnutls_openpgp_crt_get_version \
+       functions/gnutls_openpgp_crt_export.short \
+       functions/gnutls_openpgp_crt_get_auth_subkey \
+       functions/gnutls_openpgp_crt_get_auth_subkey.short \
        functions/gnutls_openpgp_crt_get_creation_time \
+       functions/gnutls_openpgp_crt_get_creation_time.short \
        functions/gnutls_openpgp_crt_get_expiration_time \
+       functions/gnutls_openpgp_crt_get_expiration_time.short \
+       functions/gnutls_openpgp_crt_get_fingerprint \
+       functions/gnutls_openpgp_crt_get_fingerprint.short \
        functions/gnutls_openpgp_crt_get_key_id \
-       functions/gnutls_openpgp_crt_check_hostname \
+       functions/gnutls_openpgp_crt_get_key_id.short \
+       functions/gnutls_openpgp_crt_get_key_usage \
+       functions/gnutls_openpgp_crt_get_key_usage.short \
+       functions/gnutls_openpgp_crt_get_name \
+       functions/gnutls_openpgp_crt_get_name.short \
+       functions/gnutls_openpgp_crt_get_pk_algorithm \
+       functions/gnutls_openpgp_crt_get_pk_algorithm.short \
+       functions/gnutls_openpgp_crt_get_pk_dsa_raw \
+       functions/gnutls_openpgp_crt_get_pk_dsa_raw.short \
+       functions/gnutls_openpgp_crt_get_pk_rsa_raw \
+       functions/gnutls_openpgp_crt_get_pk_rsa_raw.short \
+       functions/gnutls_openpgp_crt_get_preferred_key_id \
+       functions/gnutls_openpgp_crt_get_preferred_key_id.short \
        functions/gnutls_openpgp_crt_get_revoked_status \
+       functions/gnutls_openpgp_crt_get_revoked_status.short \
        functions/gnutls_openpgp_crt_get_subkey_count \
-       functions/gnutls_openpgp_crt_get_subkey_idx \
-       functions/gnutls_openpgp_crt_get_subkey_revoked_status \
-       functions/gnutls_openpgp_crt_get_subkey_pk_algorithm \
+       functions/gnutls_openpgp_crt_get_subkey_count.short \
        functions/gnutls_openpgp_crt_get_subkey_creation_time \
+       functions/gnutls_openpgp_crt_get_subkey_creation_time.short \
        functions/gnutls_openpgp_crt_get_subkey_expiration_time \
+       functions/gnutls_openpgp_crt_get_subkey_expiration_time.short \
+       functions/gnutls_openpgp_crt_get_subkey_fingerprint \
+       functions/gnutls_openpgp_crt_get_subkey_fingerprint.short \
        functions/gnutls_openpgp_crt_get_subkey_id \
-       functions/gnutls_openpgp_crt_get_subkey_usage \
+       functions/gnutls_openpgp_crt_get_subkey_id.short \
+       functions/gnutls_openpgp_crt_get_subkey_idx \
+       functions/gnutls_openpgp_crt_get_subkey_idx.short \
+       functions/gnutls_openpgp_crt_get_subkey_pk_algorithm \
+       functions/gnutls_openpgp_crt_get_subkey_pk_algorithm.short \
        functions/gnutls_openpgp_crt_get_subkey_pk_dsa_raw \
+       functions/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.short \
        functions/gnutls_openpgp_crt_get_subkey_pk_rsa_raw \
-       functions/gnutls_openpgp_crt_get_pk_dsa_raw \
-       functions/gnutls_openpgp_crt_get_pk_rsa_raw \
-       functions/gnutls_openpgp_crt_get_preferred_key_id \
+       functions/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.short \
+       functions/gnutls_openpgp_crt_get_subkey_revoked_status \
+       functions/gnutls_openpgp_crt_get_subkey_revoked_status.short \
+       functions/gnutls_openpgp_crt_get_subkey_usage \
+       functions/gnutls_openpgp_crt_get_subkey_usage.short \
+       functions/gnutls_openpgp_crt_get_version \
+       functions/gnutls_openpgp_crt_get_version.short \
+       functions/gnutls_openpgp_crt_import \
+       functions/gnutls_openpgp_crt_import.short \
+       functions/gnutls_openpgp_crt_init \
+       functions/gnutls_openpgp_crt_init.short \
+       functions/gnutls_openpgp_crt_print \
+       functions/gnutls_openpgp_crt_print.short \
        functions/gnutls_openpgp_crt_set_preferred_key_id \
-       functions/gnutls_openpgp_privkey_init \
+       functions/gnutls_openpgp_crt_set_preferred_key_id.short \
+       functions/gnutls_openpgp_crt_verify_ring \
+       functions/gnutls_openpgp_crt_verify_ring.short \
+       functions/gnutls_openpgp_crt_verify_self \
+       functions/gnutls_openpgp_crt_verify_self.short \
+       functions/gnutls_openpgp_keyring_check_id \
+       functions/gnutls_openpgp_keyring_check_id.short \
+       functions/gnutls_openpgp_keyring_deinit \
+       functions/gnutls_openpgp_keyring_deinit.short \
+       functions/gnutls_openpgp_keyring_get_crt \
+       functions/gnutls_openpgp_keyring_get_crt.short \
+       functions/gnutls_openpgp_keyring_get_crt_count \
+       functions/gnutls_openpgp_keyring_get_crt_count.short \
+       functions/gnutls_openpgp_keyring_import \
+       functions/gnutls_openpgp_keyring_import.short \
+       functions/gnutls_openpgp_keyring_init \
+       functions/gnutls_openpgp_keyring_init.short \
        functions/gnutls_openpgp_privkey_deinit \
-       functions/gnutls_openpgp_privkey_get_pk_algorithm \
-       functions/gnutls_openpgp_privkey_sec_param \
-       functions/gnutls_openpgp_privkey_import \
+       functions/gnutls_openpgp_privkey_deinit.short \
+       functions/gnutls_openpgp_privkey_export \
+       functions/gnutls_openpgp_privkey_export.short \
+       functions/gnutls_openpgp_privkey_export_dsa_raw \
+       functions/gnutls_openpgp_privkey_export_dsa_raw.short \
+       functions/gnutls_openpgp_privkey_export_rsa_raw \
+       functions/gnutls_openpgp_privkey_export_rsa_raw.short \
+       functions/gnutls_openpgp_privkey_export_subkey_dsa_raw \
+       functions/gnutls_openpgp_privkey_export_subkey_dsa_raw.short \
+       functions/gnutls_openpgp_privkey_export_subkey_rsa_raw \
+       functions/gnutls_openpgp_privkey_export_subkey_rsa_raw.short \
        functions/gnutls_openpgp_privkey_get_fingerprint \
-       functions/gnutls_openpgp_privkey_get_subkey_fingerprint \
+       functions/gnutls_openpgp_privkey_get_fingerprint.short \
        functions/gnutls_openpgp_privkey_get_key_id \
+       functions/gnutls_openpgp_privkey_get_key_id.short \
+       functions/gnutls_openpgp_privkey_get_pk_algorithm \
+       functions/gnutls_openpgp_privkey_get_pk_algorithm.short \
+       functions/gnutls_openpgp_privkey_get_preferred_key_id \
+       functions/gnutls_openpgp_privkey_get_preferred_key_id.short \
+       functions/gnutls_openpgp_privkey_get_revoked_status \
+       functions/gnutls_openpgp_privkey_get_revoked_status.short \
        functions/gnutls_openpgp_privkey_get_subkey_count \
+       functions/gnutls_openpgp_privkey_get_subkey_count.short \
+       functions/gnutls_openpgp_privkey_get_subkey_creation_time \
+       functions/gnutls_openpgp_privkey_get_subkey_creation_time.short \
+       functions/gnutls_openpgp_privkey_get_subkey_fingerprint \
+       functions/gnutls_openpgp_privkey_get_subkey_fingerprint.short \
+       functions/gnutls_openpgp_privkey_get_subkey_id \
+       functions/gnutls_openpgp_privkey_get_subkey_id.short \
        functions/gnutls_openpgp_privkey_get_subkey_idx \
-       functions/gnutls_openpgp_privkey_get_subkey_revoked_status \
-       functions/gnutls_openpgp_privkey_get_revoked_status \
+       functions/gnutls_openpgp_privkey_get_subkey_idx.short \
        functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm \
-       functions/gnutls_openpgp_privkey_get_subkey_id \
-       functions/gnutls_openpgp_privkey_get_subkey_creation_time \
-       functions/gnutls_openpgp_privkey_export_subkey_dsa_raw \
-       functions/gnutls_openpgp_privkey_export_subkey_rsa_raw \
-       functions/gnutls_openpgp_privkey_export_dsa_raw \
-       functions/gnutls_openpgp_privkey_export_rsa_raw \
-       functions/gnutls_openpgp_privkey_export \
+       functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm.short \
+       functions/gnutls_openpgp_privkey_get_subkey_revoked_status \
+       functions/gnutls_openpgp_privkey_get_subkey_revoked_status.short \
+       functions/gnutls_openpgp_privkey_import \
+       functions/gnutls_openpgp_privkey_import.short \
+       functions/gnutls_openpgp_privkey_init \
+       functions/gnutls_openpgp_privkey_init.short \
+       functions/gnutls_openpgp_privkey_sec_param \
+       functions/gnutls_openpgp_privkey_sec_param.short \
        functions/gnutls_openpgp_privkey_set_preferred_key_id \
-       functions/gnutls_openpgp_privkey_get_preferred_key_id \
-       functions/gnutls_openpgp_crt_get_auth_subkey \
-       functions/gnutls_openpgp_keyring_init \
-       functions/gnutls_openpgp_keyring_deinit \
-       functions/gnutls_openpgp_keyring_import \
-       functions/gnutls_openpgp_keyring_check_id \
-       functions/gnutls_openpgp_crt_verify_ring \
-       functions/gnutls_openpgp_crt_verify_self \
-       functions/gnutls_openpgp_keyring_get_crt \
-       functions/gnutls_openpgp_keyring_get_crt_count \
+       functions/gnutls_openpgp_privkey_set_preferred_key_id.short \
+       functions/gnutls_openpgp_privkey_sign_hash \
+       functions/gnutls_openpgp_privkey_sign_hash.short \
+       functions/gnutls_openpgp_send_cert \
+       functions/gnutls_openpgp_send_cert.short \
        functions/gnutls_openpgp_set_recv_key_function \
-       functions/gnutls_certificate_set_openpgp_key \
-       functions/gnutls_certificate_set_openpgp_key_file \
-       functions/gnutls_certificate_set_openpgp_key_mem \
-       functions/gnutls_certificate_set_openpgp_key_file2 \
-       functions/gnutls_certificate_set_openpgp_key_mem2 \
-       functions/gnutls_certificate_set_openpgp_keyring_mem \
-       functions/gnutls_certificate_set_openpgp_keyring_file \
-       functions/gnutls_pkcs11_init functions/gnutls_pkcs11_reinit \
-       functions/gnutls_pkcs11_deinit \
-       functions/gnutls_pkcs11_set_token_function \
-       functions/gnutls_pkcs11_set_pin_function \
+       functions/gnutls_openpgp_set_recv_key_function.short \
+       functions/gnutls_pcert_deinit \
+       functions/gnutls_pcert_deinit.short \
+       functions/gnutls_pcert_import_openpgp \
+       functions/gnutls_pcert_import_openpgp.short \
+       functions/gnutls_pcert_import_openpgp_raw \
+       functions/gnutls_pcert_import_openpgp_raw.short \
+       functions/gnutls_pcert_import_x509 \
+       functions/gnutls_pcert_import_x509.short \
+       functions/gnutls_pcert_import_x509_raw \
+       functions/gnutls_pcert_import_x509_raw.short \
+       functions/gnutls_pcert_list_import_x509_raw \
+       functions/gnutls_pcert_list_import_x509_raw.short \
+       functions/gnutls_pem_base64_decode \
+       functions/gnutls_pem_base64_decode.short \
+       functions/gnutls_pem_base64_decode_alloc \
+       functions/gnutls_pem_base64_decode_alloc.short \
+       functions/gnutls_pem_base64_encode \
+       functions/gnutls_pem_base64_encode.short \
+       functions/gnutls_pem_base64_encode_alloc \
+       functions/gnutls_pem_base64_encode_alloc.short \
+       functions/gnutls_perror functions/gnutls_perror.short \
+       functions/gnutls_pk_algorithm_get_name \
+       functions/gnutls_pk_algorithm_get_name.short \
+       functions/gnutls_pk_bits_to_sec_param \
+       functions/gnutls_pk_bits_to_sec_param.short \
+       functions/gnutls_pk_get_id functions/gnutls_pk_get_id.short \
+       functions/gnutls_pk_get_name \
+       functions/gnutls_pk_get_name.short functions/gnutls_pk_list \
+       functions/gnutls_pk_list.short functions/gnutls_pk_to_sign \
+       functions/gnutls_pk_to_sign.short \
        functions/gnutls_pkcs11_add_provider \
-       functions/gnutls_pkcs11_obj_init \
-       functions/gnutls_pkcs11_obj_import_url \
-       functions/gnutls_pkcs11_obj_export_url \
-       functions/gnutls_pkcs11_obj_deinit \
-       functions/gnutls_pkcs11_obj_export \
+       functions/gnutls_pkcs11_add_provider.short \
+       functions/gnutls_pkcs11_copy_secret_key \
+       functions/gnutls_pkcs11_copy_secret_key.short \
        functions/gnutls_pkcs11_copy_x509_crt \
+       functions/gnutls_pkcs11_copy_x509_crt.short \
        functions/gnutls_pkcs11_copy_x509_privkey \
+       functions/gnutls_pkcs11_copy_x509_privkey.short \
+       functions/gnutls_pkcs11_deinit \
+       functions/gnutls_pkcs11_deinit.short \
        functions/gnutls_pkcs11_delete_url \
-       functions/gnutls_pkcs11_copy_secret_key \
+       functions/gnutls_pkcs11_delete_url.short \
+       functions/gnutls_pkcs11_init \
+       functions/gnutls_pkcs11_init.short \
+       functions/gnutls_pkcs11_obj_deinit \
+       functions/gnutls_pkcs11_obj_deinit.short \
+       functions/gnutls_pkcs11_obj_export \
+       functions/gnutls_pkcs11_obj_export.short \
+       functions/gnutls_pkcs11_obj_export_url \
+       functions/gnutls_pkcs11_obj_export_url.short \
        functions/gnutls_pkcs11_obj_get_info \
-       functions/gnutls_pkcs11_token_init \
-       functions/gnutls_pkcs11_token_get_mechanism \
-       functions/gnutls_pkcs11_token_set_pin \
-       functions/gnutls_pkcs11_token_get_url \
-       functions/gnutls_pkcs11_token_get_info \
-       functions/gnutls_pkcs11_token_get_flags \
-       functions/gnutls_pkcs11_obj_list_import_url \
-       functions/gnutls_x509_crt_import_pkcs11 \
-       functions/gnutls_x509_crt_import_pkcs11_url \
+       functions/gnutls_pkcs11_obj_get_info.short \
        functions/gnutls_pkcs11_obj_get_type \
-       functions/gnutls_pkcs11_type_get_name \
-       functions/gnutls_x509_crt_list_import_pkcs11 \
-       functions/gnutls_pkcs11_privkey_init \
+       functions/gnutls_pkcs11_obj_get_type.short \
+       functions/gnutls_pkcs11_obj_import_url \
+       functions/gnutls_pkcs11_obj_import_url.short \
+       functions/gnutls_pkcs11_obj_init \
+       functions/gnutls_pkcs11_obj_init.short \
+       functions/gnutls_pkcs11_obj_list_import_url \
+       functions/gnutls_pkcs11_obj_list_import_url.short \
        functions/gnutls_pkcs11_privkey_deinit \
-       functions/gnutls_pkcs11_privkey_get_pk_algorithm \
-       functions/gnutls_pkcs11_privkey_get_info \
-       functions/gnutls_pkcs11_privkey_import_url \
+       functions/gnutls_pkcs11_privkey_deinit.short \
        functions/gnutls_pkcs11_privkey_export_url \
+       functions/gnutls_pkcs11_privkey_export_url.short \
        functions/gnutls_pkcs11_privkey_generate \
-       functions/gnutls_pkcs12_init functions/gnutls_pkcs12_deinit \
-       functions/gnutls_pkcs12_import functions/gnutls_pkcs12_export \
-       functions/gnutls_pkcs12_get_bag \
-       functions/gnutls_pkcs12_set_bag \
-       functions/gnutls_pkcs12_generate_mac \
-       functions/gnutls_pkcs12_verify_mac \
+       functions/gnutls_pkcs11_privkey_generate.short \
+       functions/gnutls_pkcs11_privkey_get_info \
+       functions/gnutls_pkcs11_privkey_get_info.short \
+       functions/gnutls_pkcs11_privkey_get_pk_algorithm \
+       functions/gnutls_pkcs11_privkey_get_pk_algorithm.short \
+       functions/gnutls_pkcs11_privkey_import_url \
+       functions/gnutls_pkcs11_privkey_import_url.short \
+       functions/gnutls_pkcs11_privkey_init \
+       functions/gnutls_pkcs11_privkey_init.short \
+       functions/gnutls_pkcs11_reinit \
+       functions/gnutls_pkcs11_reinit.short \
+       functions/gnutls_pkcs11_set_pin_function \
+       functions/gnutls_pkcs11_set_pin_function.short \
+       functions/gnutls_pkcs11_set_token_function \
+       functions/gnutls_pkcs11_set_token_function.short \
+       functions/gnutls_pkcs11_token_get_flags \
+       functions/gnutls_pkcs11_token_get_flags.short \
+       functions/gnutls_pkcs11_token_get_info \
+       functions/gnutls_pkcs11_token_get_info.short \
+       functions/gnutls_pkcs11_token_get_mechanism \
+       functions/gnutls_pkcs11_token_get_mechanism.short \
+       functions/gnutls_pkcs11_token_get_url \
+       functions/gnutls_pkcs11_token_get_url.short \
+       functions/gnutls_pkcs11_token_init \
+       functions/gnutls_pkcs11_token_init.short \
+       functions/gnutls_pkcs11_token_set_pin \
+       functions/gnutls_pkcs11_token_set_pin.short \
+       functions/gnutls_pkcs11_type_get_name \
+       functions/gnutls_pkcs11_type_get_name.short \
        functions/gnutls_pkcs12_bag_decrypt \
+       functions/gnutls_pkcs12_bag_decrypt.short \
+       functions/gnutls_pkcs12_bag_deinit \
+       functions/gnutls_pkcs12_bag_deinit.short \
        functions/gnutls_pkcs12_bag_encrypt \
-       functions/gnutls_pkcs12_bag_get_type \
+       functions/gnutls_pkcs12_bag_encrypt.short \
+       functions/gnutls_pkcs12_bag_get_count \
+       functions/gnutls_pkcs12_bag_get_count.short \
        functions/gnutls_pkcs12_bag_get_data \
-       functions/gnutls_pkcs12_bag_set_data \
+       functions/gnutls_pkcs12_bag_get_data.short \
+       functions/gnutls_pkcs12_bag_get_friendly_name \
+       functions/gnutls_pkcs12_bag_get_friendly_name.short \
+       functions/gnutls_pkcs12_bag_get_key_id \
+       functions/gnutls_pkcs12_bag_get_key_id.short \
+       functions/gnutls_pkcs12_bag_get_type \
+       functions/gnutls_pkcs12_bag_get_type.short \
+       functions/gnutls_pkcs12_bag_init \
+       functions/gnutls_pkcs12_bag_init.short \
        functions/gnutls_pkcs12_bag_set_crl \
+       functions/gnutls_pkcs12_bag_set_crl.short \
        functions/gnutls_pkcs12_bag_set_crt \
-       functions/gnutls_pkcs12_bag_init \
-       functions/gnutls_pkcs12_bag_deinit \
-       functions/gnutls_pkcs12_bag_get_count \
-       functions/gnutls_pkcs12_bag_get_key_id \
-       functions/gnutls_pkcs12_bag_set_key_id \
-       functions/gnutls_pkcs12_bag_get_friendly_name \
+       functions/gnutls_pkcs12_bag_set_crt.short \
+       functions/gnutls_pkcs12_bag_set_data \
+       functions/gnutls_pkcs12_bag_set_data.short \
        functions/gnutls_pkcs12_bag_set_friendly_name \
-       functions/gnutls_x509_crt_init \
+       functions/gnutls_pkcs12_bag_set_friendly_name.short \
+       functions/gnutls_pkcs12_bag_set_key_id \
+       functions/gnutls_pkcs12_bag_set_key_id.short \
+       functions/gnutls_pkcs12_deinit \
+       functions/gnutls_pkcs12_deinit.short \
+       functions/gnutls_pkcs12_export \
+       functions/gnutls_pkcs12_export.short \
+       functions/gnutls_pkcs12_generate_mac \
+       functions/gnutls_pkcs12_generate_mac.short \
+       functions/gnutls_pkcs12_get_bag \
+       functions/gnutls_pkcs12_get_bag.short \
+       functions/gnutls_pkcs12_import \
+       functions/gnutls_pkcs12_import.short \
+       functions/gnutls_pkcs12_init \
+       functions/gnutls_pkcs12_init.short \
+       functions/gnutls_pkcs12_set_bag \
+       functions/gnutls_pkcs12_set_bag.short \
+       functions/gnutls_pkcs12_verify_mac \
+       functions/gnutls_pkcs12_verify_mac.short \
+       functions/gnutls_pkcs7_deinit \
+       functions/gnutls_pkcs7_deinit.short \
+       functions/gnutls_pkcs7_delete_crl \
+       functions/gnutls_pkcs7_delete_crl.short \
+       functions/gnutls_pkcs7_delete_crt \
+       functions/gnutls_pkcs7_delete_crt.short \
+       functions/gnutls_pkcs7_export \
+       functions/gnutls_pkcs7_export.short \
+       functions/gnutls_pkcs7_get_crl_count \
+       functions/gnutls_pkcs7_get_crl_count.short \
+       functions/gnutls_pkcs7_get_crl_raw \
+       functions/gnutls_pkcs7_get_crl_raw.short \
+       functions/gnutls_pkcs7_get_crt_count \
+       functions/gnutls_pkcs7_get_crt_count.short \
+       functions/gnutls_pkcs7_get_crt_raw \
+       functions/gnutls_pkcs7_get_crt_raw.short \
+       functions/gnutls_pkcs7_import \
+       functions/gnutls_pkcs7_import.short \
+       functions/gnutls_pkcs7_init functions/gnutls_pkcs7_init.short \
+       functions/gnutls_pkcs7_set_crl \
+       functions/gnutls_pkcs7_set_crl.short \
+       functions/gnutls_pkcs7_set_crl_raw \
+       functions/gnutls_pkcs7_set_crl_raw.short \
+       functions/gnutls_pkcs7_set_crt \
+       functions/gnutls_pkcs7_set_crt.short \
+       functions/gnutls_pkcs7_set_crt_raw \
+       functions/gnutls_pkcs7_set_crt_raw.short functions/gnutls_prf \
+       functions/gnutls_prf.short functions/gnutls_prf_raw \
+       functions/gnutls_prf_raw.short \
+       functions/gnutls_priority_certificate_type_list \
+       functions/gnutls_priority_certificate_type_list.short \
+       functions/gnutls_priority_compression_list \
+       functions/gnutls_priority_compression_list.short \
+       functions/gnutls_priority_deinit \
+       functions/gnutls_priority_deinit.short \
+       functions/gnutls_priority_ecc_curve_list \
+       functions/gnutls_priority_ecc_curve_list.short \
+       functions/gnutls_priority_get_cipher_suite_index \
+       functions/gnutls_priority_get_cipher_suite_index.short \
+       functions/gnutls_priority_init \
+       functions/gnutls_priority_init.short \
+       functions/gnutls_priority_protocol_list \
+       functions/gnutls_priority_protocol_list.short \
+       functions/gnutls_priority_set \
+       functions/gnutls_priority_set.short \
+       functions/gnutls_priority_set_direct \
+       functions/gnutls_priority_set_direct.short \
+       functions/gnutls_priority_sign_list \
+       functions/gnutls_priority_sign_list.short \
+       functions/gnutls_privkey_decrypt_data \
+       functions/gnutls_privkey_decrypt_data.short \
+       functions/gnutls_privkey_deinit \
+       functions/gnutls_privkey_deinit.short \
+       functions/gnutls_privkey_get_pk_algorithm \
+       functions/gnutls_privkey_get_pk_algorithm.short \
+       functions/gnutls_privkey_get_type \
+       functions/gnutls_privkey_get_type.short \
+       functions/gnutls_privkey_import_ext \
+       functions/gnutls_privkey_import_ext.short \
+       functions/gnutls_privkey_import_openpgp \
+       functions/gnutls_privkey_import_openpgp.short \
+       functions/gnutls_privkey_import_pkcs11 \
+       functions/gnutls_privkey_import_pkcs11.short \
+       functions/gnutls_privkey_import_x509 \
+       functions/gnutls_privkey_import_x509.short \
+       functions/gnutls_privkey_init \
+       functions/gnutls_privkey_init.short \
+       functions/gnutls_privkey_sign_data \
+       functions/gnutls_privkey_sign_data.short \
+       functions/gnutls_privkey_sign_hash \
+       functions/gnutls_privkey_sign_hash.short \
+       functions/gnutls_protocol_get_id \
+       functions/gnutls_protocol_get_id.short \
+       functions/gnutls_protocol_get_name \
+       functions/gnutls_protocol_get_name.short \
+       functions/gnutls_protocol_get_version \
+       functions/gnutls_protocol_get_version.short \
+       functions/gnutls_protocol_list \
+       functions/gnutls_protocol_list.short \
+       functions/gnutls_protocol_set_priority \
+       functions/gnutls_protocol_set_priority.short \
+       functions/gnutls_psk_allocate_client_credentials \
+       functions/gnutls_psk_allocate_client_credentials.short \
+       functions/gnutls_psk_allocate_server_credentials \
+       functions/gnutls_psk_allocate_server_credentials.short \
+       functions/gnutls_psk_client_get_hint \
+       functions/gnutls_psk_client_get_hint.short \
+       functions/gnutls_psk_free_client_credentials \
+       functions/gnutls_psk_free_client_credentials.short \
+       functions/gnutls_psk_free_server_credentials \
+       functions/gnutls_psk_free_server_credentials.short \
+       functions/gnutls_psk_server_get_username \
+       functions/gnutls_psk_server_get_username.short \
+       functions/gnutls_psk_set_client_credentials \
+       functions/gnutls_psk_set_client_credentials.short \
+       functions/gnutls_psk_set_client_credentials_function \
+       functions/gnutls_psk_set_client_credentials_function.short \
+       functions/gnutls_psk_set_params_function \
+       functions/gnutls_psk_set_params_function.short \
+       functions/gnutls_psk_set_server_credentials_file \
+       functions/gnutls_psk_set_server_credentials_file.short \
+       functions/gnutls_psk_set_server_credentials_function \
+       functions/gnutls_psk_set_server_credentials_function.short \
+       functions/gnutls_psk_set_server_credentials_hint \
+       functions/gnutls_psk_set_server_credentials_hint.short \
+       functions/gnutls_psk_set_server_dh_params \
+       functions/gnutls_psk_set_server_dh_params.short \
+       functions/gnutls_psk_set_server_params_function \
+       functions/gnutls_psk_set_server_params_function.short \
+       functions/gnutls_pubkey_deinit \
+       functions/gnutls_pubkey_deinit.short \
+       functions/gnutls_pubkey_encrypt_data \
+       functions/gnutls_pubkey_encrypt_data.short \
+       functions/gnutls_pubkey_export \
+       functions/gnutls_pubkey_export.short \
+       functions/gnutls_pubkey_get_key_id \
+       functions/gnutls_pubkey_get_key_id.short \
+       functions/gnutls_pubkey_get_key_usage \
+       functions/gnutls_pubkey_get_key_usage.short \
+       functions/gnutls_pubkey_get_openpgp_key_id \
+       functions/gnutls_pubkey_get_openpgp_key_id.short \
+       functions/gnutls_pubkey_get_pk_algorithm \
+       functions/gnutls_pubkey_get_pk_algorithm.short \
+       functions/gnutls_pubkey_get_pk_dsa_raw \
+       functions/gnutls_pubkey_get_pk_dsa_raw.short \
+       functions/gnutls_pubkey_get_pk_ecc_raw \
+       functions/gnutls_pubkey_get_pk_ecc_raw.short \
+       functions/gnutls_pubkey_get_pk_ecc_x962 \
+       functions/gnutls_pubkey_get_pk_ecc_x962.short \
+       functions/gnutls_pubkey_get_pk_rsa_raw \
+       functions/gnutls_pubkey_get_pk_rsa_raw.short \
+       functions/gnutls_pubkey_get_preferred_hash_algorithm \
+       functions/gnutls_pubkey_get_preferred_hash_algorithm.short \
+       functions/gnutls_pubkey_get_verify_algorithm \
+       functions/gnutls_pubkey_get_verify_algorithm.short \
+       functions/gnutls_pubkey_import \
+       functions/gnutls_pubkey_import.short \
+       functions/gnutls_pubkey_import_dsa_raw \
+       functions/gnutls_pubkey_import_dsa_raw.short \
+       functions/gnutls_pubkey_import_ecc_raw \
+       functions/gnutls_pubkey_import_ecc_raw.short \
+       functions/gnutls_pubkey_import_ecc_x962 \
+       functions/gnutls_pubkey_import_ecc_x962.short \
+       functions/gnutls_pubkey_import_openpgp \
+       functions/gnutls_pubkey_import_openpgp.short \
+       functions/gnutls_pubkey_import_pkcs11 \
+       functions/gnutls_pubkey_import_pkcs11.short \
+       functions/gnutls_pubkey_import_pkcs11_url \
+       functions/gnutls_pubkey_import_pkcs11_url.short \
+       functions/gnutls_pubkey_import_privkey \
+       functions/gnutls_pubkey_import_privkey.short \
+       functions/gnutls_pubkey_import_rsa_raw \
+       functions/gnutls_pubkey_import_rsa_raw.short \
+       functions/gnutls_pubkey_import_x509 \
+       functions/gnutls_pubkey_import_x509.short \
+       functions/gnutls_pubkey_init \
+       functions/gnutls_pubkey_init.short \
+       functions/gnutls_pubkey_set_key_usage \
+       functions/gnutls_pubkey_set_key_usage.short \
+       functions/gnutls_pubkey_verify_data \
+       functions/gnutls_pubkey_verify_data.short \
+       functions/gnutls_pubkey_verify_data2 \
+       functions/gnutls_pubkey_verify_data2.short \
+       functions/gnutls_pubkey_verify_hash \
+       functions/gnutls_pubkey_verify_hash.short \
+       functions/gnutls_pubkey_verify_hash2 \
+       functions/gnutls_pubkey_verify_hash2.short \
+       functions/gnutls_random_art functions/gnutls_random_art.short \
+       functions/gnutls_record_check_pending \
+       functions/gnutls_record_check_pending.short \
+       functions/gnutls_record_disable_padding \
+       functions/gnutls_record_disable_padding.short \
+       functions/gnutls_record_get_direction \
+       functions/gnutls_record_get_direction.short \
+       functions/gnutls_record_get_discarded \
+       functions/gnutls_record_get_discarded.short \
+       functions/gnutls_record_get_max_size \
+       functions/gnutls_record_get_max_size.short \
+       functions/gnutls_record_recv \
+       functions/gnutls_record_recv.short \
+       functions/gnutls_record_recv_seq \
+       functions/gnutls_record_recv_seq.short \
+       functions/gnutls_record_send \
+       functions/gnutls_record_send.short \
+       functions/gnutls_record_set_max_size \
+       functions/gnutls_record_set_max_size.short \
+       functions/gnutls_rehandshake \
+       functions/gnutls_rehandshake.short functions/gnutls_rnd \
+       functions/gnutls_rnd.short \
+       functions/gnutls_rsa_export_get_modulus_bits \
+       functions/gnutls_rsa_export_get_modulus_bits.short \
+       functions/gnutls_rsa_export_get_pubkey \
+       functions/gnutls_rsa_export_get_pubkey.short \
+       functions/gnutls_rsa_params_cpy \
+       functions/gnutls_rsa_params_cpy.short \
+       functions/gnutls_rsa_params_deinit \
+       functions/gnutls_rsa_params_deinit.short \
+       functions/gnutls_rsa_params_export_pkcs1 \
+       functions/gnutls_rsa_params_export_pkcs1.short \
+       functions/gnutls_rsa_params_export_raw \
+       functions/gnutls_rsa_params_export_raw.short \
+       functions/gnutls_rsa_params_generate2 \
+       functions/gnutls_rsa_params_generate2.short \
+       functions/gnutls_rsa_params_import_pkcs1 \
+       functions/gnutls_rsa_params_import_pkcs1.short \
+       functions/gnutls_rsa_params_import_raw \
+       functions/gnutls_rsa_params_import_raw.short \
+       functions/gnutls_rsa_params_init \
+       functions/gnutls_rsa_params_init.short \
+       functions/gnutls_safe_renegotiation_status \
+       functions/gnutls_safe_renegotiation_status.short \
+       functions/gnutls_sec_param_get_name \
+       functions/gnutls_sec_param_get_name.short \
+       functions/gnutls_sec_param_to_pk_bits \
+       functions/gnutls_sec_param_to_pk_bits.short \
+       functions/gnutls_server_name_get \
+       functions/gnutls_server_name_get.short \
+       functions/gnutls_server_name_set \
+       functions/gnutls_server_name_set.short \
+       functions/gnutls_session_channel_binding \
+       functions/gnutls_session_channel_binding.short \
+       functions/gnutls_session_enable_compatibility_mode \
+       functions/gnutls_session_enable_compatibility_mode.short \
+       functions/gnutls_session_get_data \
+       functions/gnutls_session_get_data.short \
+       functions/gnutls_session_get_data2 \
+       functions/gnutls_session_get_data2.short \
+       functions/gnutls_session_get_id \
+       functions/gnutls_session_get_id.short \
+       functions/gnutls_session_get_ptr \
+       functions/gnutls_session_get_ptr.short \
+       functions/gnutls_session_get_random \
+       functions/gnutls_session_get_random.short \
+       functions/gnutls_session_is_resumed \
+       functions/gnutls_session_is_resumed.short \
+       functions/gnutls_session_resumption_requested \
+       functions/gnutls_session_resumption_requested.short \
+       functions/gnutls_session_set_data \
+       functions/gnutls_session_set_data.short \
+       functions/gnutls_session_set_premaster \
+       functions/gnutls_session_set_premaster.short \
+       functions/gnutls_session_set_ptr \
+       functions/gnutls_session_set_ptr.short \
+       functions/gnutls_session_ticket_enable_client \
+       functions/gnutls_session_ticket_enable_client.short \
+       functions/gnutls_session_ticket_enable_server \
+       functions/gnutls_session_ticket_enable_server.short \
+       functions/gnutls_session_ticket_key_generate \
+       functions/gnutls_session_ticket_key_generate.short \
+       functions/gnutls_set_default_export_priority \
+       functions/gnutls_set_default_export_priority.short \
+       functions/gnutls_set_default_priority \
+       functions/gnutls_set_default_priority.short \
+       functions/gnutls_sign_algorithm_get_requested \
+       functions/gnutls_sign_algorithm_get_requested.short \
+       functions/gnutls_sign_callback_get \
+       functions/gnutls_sign_callback_get.short \
+       functions/gnutls_sign_callback_set \
+       functions/gnutls_sign_callback_set.short \
+       functions/gnutls_sign_get_id \
+       functions/gnutls_sign_get_id.short \
+       functions/gnutls_sign_get_name \
+       functions/gnutls_sign_get_name.short \
+       functions/gnutls_sign_list functions/gnutls_sign_list.short \
+       functions/gnutls_srp_allocate_client_credentials \
+       functions/gnutls_srp_allocate_client_credentials.short \
+       functions/gnutls_srp_allocate_server_credentials \
+       functions/gnutls_srp_allocate_server_credentials.short \
+       functions/gnutls_srp_base64_decode \
+       functions/gnutls_srp_base64_decode.short \
+       functions/gnutls_srp_base64_decode_alloc \
+       functions/gnutls_srp_base64_decode_alloc.short \
+       functions/gnutls_srp_base64_encode \
+       functions/gnutls_srp_base64_encode.short \
+       functions/gnutls_srp_base64_encode_alloc \
+       functions/gnutls_srp_base64_encode_alloc.short \
+       functions/gnutls_srp_free_client_credentials \
+       functions/gnutls_srp_free_client_credentials.short \
+       functions/gnutls_srp_free_server_credentials \
+       functions/gnutls_srp_free_server_credentials.short \
+       functions/gnutls_srp_server_get_username \
+       functions/gnutls_srp_server_get_username.short \
+       functions/gnutls_srp_set_client_credentials \
+       functions/gnutls_srp_set_client_credentials.short \
+       functions/gnutls_srp_set_client_credentials_function \
+       functions/gnutls_srp_set_client_credentials_function.short \
+       functions/gnutls_srp_set_prime_bits \
+       functions/gnutls_srp_set_prime_bits.short \
+       functions/gnutls_srp_set_server_credentials_file \
+       functions/gnutls_srp_set_server_credentials_file.short \
+       functions/gnutls_srp_set_server_credentials_function \
+       functions/gnutls_srp_set_server_credentials_function.short \
+       functions/gnutls_srp_verifier \
+       functions/gnutls_srp_verifier.short \
+       functions/gnutls_store_commitment \
+       functions/gnutls_store_commitment.short \
+       functions/gnutls_store_pubkey \
+       functions/gnutls_store_pubkey.short functions/gnutls_strerror \
+       functions/gnutls_strerror.short functions/gnutls_strerror_name \
+       functions/gnutls_strerror_name.short \
+       functions/gnutls_supplemental_get_name \
+       functions/gnutls_supplemental_get_name.short \
+       functions/gnutls_tdb_deinit functions/gnutls_tdb_deinit.short \
+       functions/gnutls_tdb_init functions/gnutls_tdb_init.short \
+       functions/gnutls_tdb_set_store_commitment_func \
+       functions/gnutls_tdb_set_store_commitment_func.short \
+       functions/gnutls_tdb_set_store_func \
+       functions/gnutls_tdb_set_store_func.short \
+       functions/gnutls_tdb_set_verify_func \
+       functions/gnutls_tdb_set_verify_func.short \
+       functions/gnutls_transport_get_ptr \
+       functions/gnutls_transport_get_ptr.short \
+       functions/gnutls_transport_get_ptr2 \
+       functions/gnutls_transport_get_ptr2.short \
+       functions/gnutls_transport_set_errno \
+       functions/gnutls_transport_set_errno.short \
+       functions/gnutls_transport_set_errno_function \
+       functions/gnutls_transport_set_errno_function.short \
+       functions/gnutls_transport_set_ptr \
+       functions/gnutls_transport_set_ptr.short \
+       functions/gnutls_transport_set_ptr2 \
+       functions/gnutls_transport_set_ptr2.short \
+       functions/gnutls_transport_set_pull_function \
+       functions/gnutls_transport_set_pull_function.short \
+       functions/gnutls_transport_set_pull_timeout_function \
+       functions/gnutls_transport_set_pull_timeout_function.short \
+       functions/gnutls_transport_set_push_function \
+       functions/gnutls_transport_set_push_function.short \
+       functions/gnutls_transport_set_vec_push_function \
+       functions/gnutls_transport_set_vec_push_function.short \
+       functions/gnutls_verify_stored_pubkey \
+       functions/gnutls_verify_stored_pubkey.short \
+       functions/gnutls_x509_crl_check_issuer \
+       functions/gnutls_x509_crl_check_issuer.short \
+       functions/gnutls_x509_crl_deinit \
+       functions/gnutls_x509_crl_deinit.short \
+       functions/gnutls_x509_crl_export \
+       functions/gnutls_x509_crl_export.short \
+       functions/gnutls_x509_crl_get_authority_key_gn_serial \
+       functions/gnutls_x509_crl_get_authority_key_gn_serial.short \
+       functions/gnutls_x509_crl_get_authority_key_id \
+       functions/gnutls_x509_crl_get_authority_key_id.short \
+       functions/gnutls_x509_crl_get_crt_count \
+       functions/gnutls_x509_crl_get_crt_count.short \
+       functions/gnutls_x509_crl_get_crt_serial \
+       functions/gnutls_x509_crl_get_crt_serial.short \
+       functions/gnutls_x509_crl_get_dn_oid \
+       functions/gnutls_x509_crl_get_dn_oid.short \
+       functions/gnutls_x509_crl_get_extension_data \
+       functions/gnutls_x509_crl_get_extension_data.short \
+       functions/gnutls_x509_crl_get_extension_info \
+       functions/gnutls_x509_crl_get_extension_info.short \
+       functions/gnutls_x509_crl_get_extension_oid \
+       functions/gnutls_x509_crl_get_extension_oid.short \
+       functions/gnutls_x509_crl_get_issuer_dn \
+       functions/gnutls_x509_crl_get_issuer_dn.short \
+       functions/gnutls_x509_crl_get_issuer_dn_by_oid \
+       functions/gnutls_x509_crl_get_issuer_dn_by_oid.short \
+       functions/gnutls_x509_crl_get_next_update \
+       functions/gnutls_x509_crl_get_next_update.short \
+       functions/gnutls_x509_crl_get_number \
+       functions/gnutls_x509_crl_get_number.short \
+       functions/gnutls_x509_crl_get_raw_issuer_dn \
+       functions/gnutls_x509_crl_get_raw_issuer_dn.short \
+       functions/gnutls_x509_crl_get_signature \
+       functions/gnutls_x509_crl_get_signature.short \
+       functions/gnutls_x509_crl_get_signature_algorithm \
+       functions/gnutls_x509_crl_get_signature_algorithm.short \
+       functions/gnutls_x509_crl_get_this_update \
+       functions/gnutls_x509_crl_get_this_update.short \
+       functions/gnutls_x509_crl_get_version \
+       functions/gnutls_x509_crl_get_version.short \
+       functions/gnutls_x509_crl_import \
+       functions/gnutls_x509_crl_import.short \
+       functions/gnutls_x509_crl_init \
+       functions/gnutls_x509_crl_init.short \
+       functions/gnutls_x509_crl_list_import \
+       functions/gnutls_x509_crl_list_import.short \
+       functions/gnutls_x509_crl_list_import2 \
+       functions/gnutls_x509_crl_list_import2.short \
+       functions/gnutls_x509_crl_print \
+       functions/gnutls_x509_crl_print.short \
+       functions/gnutls_x509_crl_privkey_sign \
+       functions/gnutls_x509_crl_privkey_sign.short \
+       functions/gnutls_x509_crl_set_authority_key_id \
+       functions/gnutls_x509_crl_set_authority_key_id.short \
+       functions/gnutls_x509_crl_set_crt \
+       functions/gnutls_x509_crl_set_crt.short \
+       functions/gnutls_x509_crl_set_crt_serial \
+       functions/gnutls_x509_crl_set_crt_serial.short \
+       functions/gnutls_x509_crl_set_next_update \
+       functions/gnutls_x509_crl_set_next_update.short \
+       functions/gnutls_x509_crl_set_number \
+       functions/gnutls_x509_crl_set_number.short \
+       functions/gnutls_x509_crl_set_this_update \
+       functions/gnutls_x509_crl_set_this_update.short \
+       functions/gnutls_x509_crl_set_version \
+       functions/gnutls_x509_crl_set_version.short \
+       functions/gnutls_x509_crl_sign \
+       functions/gnutls_x509_crl_sign.short \
+       functions/gnutls_x509_crl_sign2 \
+       functions/gnutls_x509_crl_sign2.short \
+       functions/gnutls_x509_crl_verify \
+       functions/gnutls_x509_crl_verify.short \
+       functions/gnutls_x509_crq_deinit \
+       functions/gnutls_x509_crq_deinit.short \
+       functions/gnutls_x509_crq_export \
+       functions/gnutls_x509_crq_export.short \
+       functions/gnutls_x509_crq_get_attribute_by_oid \
+       functions/gnutls_x509_crq_get_attribute_by_oid.short \
+       functions/gnutls_x509_crq_get_attribute_data \
+       functions/gnutls_x509_crq_get_attribute_data.short \
+       functions/gnutls_x509_crq_get_attribute_info \
+       functions/gnutls_x509_crq_get_attribute_info.short \
+       functions/gnutls_x509_crq_get_basic_constraints \
+       functions/gnutls_x509_crq_get_basic_constraints.short \
+       functions/gnutls_x509_crq_get_challenge_password \
+       functions/gnutls_x509_crq_get_challenge_password.short \
+       functions/gnutls_x509_crq_get_dn \
+       functions/gnutls_x509_crq_get_dn.short \
+       functions/gnutls_x509_crq_get_dn_by_oid \
+       functions/gnutls_x509_crq_get_dn_by_oid.short \
+       functions/gnutls_x509_crq_get_dn_oid \
+       functions/gnutls_x509_crq_get_dn_oid.short \
+       functions/gnutls_x509_crq_get_extension_by_oid \
+       functions/gnutls_x509_crq_get_extension_by_oid.short \
+       functions/gnutls_x509_crq_get_extension_data \
+       functions/gnutls_x509_crq_get_extension_data.short \
+       functions/gnutls_x509_crq_get_extension_info \
+       functions/gnutls_x509_crq_get_extension_info.short \
+       functions/gnutls_x509_crq_get_key_id \
+       functions/gnutls_x509_crq_get_key_id.short \
+       functions/gnutls_x509_crq_get_key_purpose_oid \
+       functions/gnutls_x509_crq_get_key_purpose_oid.short \
+       functions/gnutls_x509_crq_get_key_rsa_raw \
+       functions/gnutls_x509_crq_get_key_rsa_raw.short \
+       functions/gnutls_x509_crq_get_key_usage \
+       functions/gnutls_x509_crq_get_key_usage.short \
+       functions/gnutls_x509_crq_get_pk_algorithm \
+       functions/gnutls_x509_crq_get_pk_algorithm.short \
+       functions/gnutls_x509_crq_get_private_key_usage_period \
+       functions/gnutls_x509_crq_get_private_key_usage_period.short \
+       functions/gnutls_x509_crq_get_subject_alt_name \
+       functions/gnutls_x509_crq_get_subject_alt_name.short \
+       functions/gnutls_x509_crq_get_subject_alt_othername_oid \
+       functions/gnutls_x509_crq_get_subject_alt_othername_oid.short \
+       functions/gnutls_x509_crq_get_version \
+       functions/gnutls_x509_crq_get_version.short \
+       functions/gnutls_x509_crq_import \
+       functions/gnutls_x509_crq_import.short \
+       functions/gnutls_x509_crq_init \
+       functions/gnutls_x509_crq_init.short \
+       functions/gnutls_x509_crq_print \
+       functions/gnutls_x509_crq_print.short \
+       functions/gnutls_x509_crq_privkey_sign \
+       functions/gnutls_x509_crq_privkey_sign.short \
+       functions/gnutls_x509_crq_set_attribute_by_oid \
+       functions/gnutls_x509_crq_set_attribute_by_oid.short \
+       functions/gnutls_x509_crq_set_basic_constraints \
+       functions/gnutls_x509_crq_set_basic_constraints.short \
+       functions/gnutls_x509_crq_set_challenge_password \
+       functions/gnutls_x509_crq_set_challenge_password.short \
+       functions/gnutls_x509_crq_set_dn_by_oid \
+       functions/gnutls_x509_crq_set_dn_by_oid.short \
+       functions/gnutls_x509_crq_set_key \
+       functions/gnutls_x509_crq_set_key.short \
+       functions/gnutls_x509_crq_set_key_purpose_oid \
+       functions/gnutls_x509_crq_set_key_purpose_oid.short \
+       functions/gnutls_x509_crq_set_key_rsa_raw \
+       functions/gnutls_x509_crq_set_key_rsa_raw.short \
+       functions/gnutls_x509_crq_set_key_usage \
+       functions/gnutls_x509_crq_set_key_usage.short \
+       functions/gnutls_x509_crq_set_private_key_usage_period \
+       functions/gnutls_x509_crq_set_private_key_usage_period.short \
+       functions/gnutls_x509_crq_set_pubkey \
+       functions/gnutls_x509_crq_set_pubkey.short \
+       functions/gnutls_x509_crq_set_subject_alt_name \
+       functions/gnutls_x509_crq_set_subject_alt_name.short \
+       functions/gnutls_x509_crq_set_version \
+       functions/gnutls_x509_crq_set_version.short \
+       functions/gnutls_x509_crq_sign \
+       functions/gnutls_x509_crq_sign.short \
+       functions/gnutls_x509_crq_sign2 \
+       functions/gnutls_x509_crq_sign2.short \
+       functions/gnutls_x509_crq_verify \
+       functions/gnutls_x509_crq_verify.short \
+       functions/gnutls_x509_crt_check_hostname \
+       functions/gnutls_x509_crt_check_hostname.short \
+       functions/gnutls_x509_crt_check_issuer \
+       functions/gnutls_x509_crt_check_issuer.short \
+       functions/gnutls_x509_crt_check_revocation \
+       functions/gnutls_x509_crt_check_revocation.short \
+       functions/gnutls_x509_crt_cpy_crl_dist_points \
+       functions/gnutls_x509_crt_cpy_crl_dist_points.short \
        functions/gnutls_x509_crt_deinit \
-       functions/gnutls_x509_crt_import \
-       functions/gnutls_x509_crt_list_import2 \
-       functions/gnutls_x509_crt_list_import \
+       functions/gnutls_x509_crt_deinit.short \
        functions/gnutls_x509_crt_export \
-       functions/gnutls_x509_crt_get_private_key_usage_period \
+       functions/gnutls_x509_crt_export.short \
+       functions/gnutls_x509_crt_get_activation_time \
+       functions/gnutls_x509_crt_get_activation_time.short \
+       functions/gnutls_x509_crt_get_authority_info_access \
+       functions/gnutls_x509_crt_get_authority_info_access.short \
+       functions/gnutls_x509_crt_get_authority_key_gn_serial \
+       functions/gnutls_x509_crt_get_authority_key_gn_serial.short \
+       functions/gnutls_x509_crt_get_authority_key_id \
+       functions/gnutls_x509_crt_get_authority_key_id.short \
+       functions/gnutls_x509_crt_get_basic_constraints \
+       functions/gnutls_x509_crt_get_basic_constraints.short \
+       functions/gnutls_x509_crt_get_ca_status \
+       functions/gnutls_x509_crt_get_ca_status.short \
+       functions/gnutls_x509_crt_get_crl_dist_points \
+       functions/gnutls_x509_crt_get_crl_dist_points.short \
+       functions/gnutls_x509_crt_get_dn \
+       functions/gnutls_x509_crt_get_dn.short \
+       functions/gnutls_x509_crt_get_dn_by_oid \
+       functions/gnutls_x509_crt_get_dn_by_oid.short \
+       functions/gnutls_x509_crt_get_dn_oid \
+       functions/gnutls_x509_crt_get_dn_oid.short \
+       functions/gnutls_x509_crt_get_expiration_time \
+       functions/gnutls_x509_crt_get_expiration_time.short \
+       functions/gnutls_x509_crt_get_extension_by_oid \
+       functions/gnutls_x509_crt_get_extension_by_oid.short \
+       functions/gnutls_x509_crt_get_extension_data \
+       functions/gnutls_x509_crt_get_extension_data.short \
+       functions/gnutls_x509_crt_get_extension_info \
+       functions/gnutls_x509_crt_get_extension_info.short \
+       functions/gnutls_x509_crt_get_extension_oid \
+       functions/gnutls_x509_crt_get_extension_oid.short \
+       functions/gnutls_x509_crt_get_fingerprint \
+       functions/gnutls_x509_crt_get_fingerprint.short \
+       functions/gnutls_x509_crt_get_issuer \
+       functions/gnutls_x509_crt_get_issuer.short \
+       functions/gnutls_x509_crt_get_issuer_alt_name \
+       functions/gnutls_x509_crt_get_issuer_alt_name.short \
+       functions/gnutls_x509_crt_get_issuer_alt_name2 \
+       functions/gnutls_x509_crt_get_issuer_alt_name2.short \
+       functions/gnutls_x509_crt_get_issuer_alt_othername_oid \
+       functions/gnutls_x509_crt_get_issuer_alt_othername_oid.short \
        functions/gnutls_x509_crt_get_issuer_dn \
-       functions/gnutls_x509_crt_get_issuer_dn_oid \
+       functions/gnutls_x509_crt_get_issuer_dn.short \
        functions/gnutls_x509_crt_get_issuer_dn_by_oid \
-       functions/gnutls_x509_crt_get_dn \
-       functions/gnutls_x509_crt_get_dn_oid \
-       functions/gnutls_x509_crt_get_dn_by_oid \
-       functions/gnutls_x509_crt_check_hostname \
-       functions/gnutls_x509_crt_get_signature_algorithm \
-       functions/gnutls_x509_crt_get_signature \
-       functions/gnutls_x509_crt_get_version \
-       functions/gnutls_x509_crt_get_key_id \
-       functions/gnutls_x509_crt_set_private_key_usage_period \
-       functions/gnutls_x509_crt_set_authority_key_id \
-       functions/gnutls_x509_crt_get_authority_key_id \
-       functions/gnutls_x509_crt_get_authority_key_gn_serial \
-       functions/gnutls_x509_crt_get_subject_key_id \
-       functions/gnutls_x509_crt_get_subject_unique_id \
+       functions/gnutls_x509_crt_get_issuer_dn_by_oid.short \
+       functions/gnutls_x509_crt_get_issuer_dn_oid \
+       functions/gnutls_x509_crt_get_issuer_dn_oid.short \
        functions/gnutls_x509_crt_get_issuer_unique_id \
-       functions/gnutls_x509_crt_get_authority_info_access \
-       functions/gnutls_x509_crt_get_crl_dist_points \
-       functions/gnutls_x509_crt_set_crl_dist_points2 \
-       functions/gnutls_x509_crt_set_crl_dist_points \
-       functions/gnutls_x509_crt_cpy_crl_dist_points \
-       functions/gnutls_x509_crl_sign2 \
-       functions/gnutls_x509_crt_get_activation_time \
-       functions/gnutls_x509_crt_get_expiration_time \
-       functions/gnutls_x509_crt_get_serial \
+       functions/gnutls_x509_crt_get_issuer_unique_id.short \
+       functions/gnutls_x509_crt_get_key_id \
+       functions/gnutls_x509_crt_get_key_id.short \
+       functions/gnutls_x509_crt_get_key_purpose_oid \
+       functions/gnutls_x509_crt_get_key_purpose_oid.short \
+       functions/gnutls_x509_crt_get_key_usage \
+       functions/gnutls_x509_crt_get_key_usage.short \
        functions/gnutls_x509_crt_get_pk_algorithm \
-       functions/gnutls_x509_crt_get_pk_rsa_raw \
+       functions/gnutls_x509_crt_get_pk_algorithm.short \
        functions/gnutls_x509_crt_get_pk_dsa_raw \
+       functions/gnutls_x509_crt_get_pk_dsa_raw.short \
+       functions/gnutls_x509_crt_get_pk_rsa_raw \
+       functions/gnutls_x509_crt_get_pk_rsa_raw.short \
+       functions/gnutls_x509_crt_get_preferred_hash_algorithm \
+       functions/gnutls_x509_crt_get_preferred_hash_algorithm.short \
+       functions/gnutls_x509_crt_get_private_key_usage_period \
+       functions/gnutls_x509_crt_get_private_key_usage_period.short \
+       functions/gnutls_x509_crt_get_proxy \
+       functions/gnutls_x509_crt_get_proxy.short \
+       functions/gnutls_x509_crt_get_raw_dn \
+       functions/gnutls_x509_crt_get_raw_dn.short \
+       functions/gnutls_x509_crt_get_raw_issuer_dn \
+       functions/gnutls_x509_crt_get_raw_issuer_dn.short \
+       functions/gnutls_x509_crt_get_serial \
+       functions/gnutls_x509_crt_get_serial.short \
+       functions/gnutls_x509_crt_get_signature \
+       functions/gnutls_x509_crt_get_signature.short \
+       functions/gnutls_x509_crt_get_signature_algorithm \
+       functions/gnutls_x509_crt_get_signature_algorithm.short \
+       functions/gnutls_x509_crt_get_subject \
+       functions/gnutls_x509_crt_get_subject.short \
        functions/gnutls_x509_crt_get_subject_alt_name \
+       functions/gnutls_x509_crt_get_subject_alt_name.short \
        functions/gnutls_x509_crt_get_subject_alt_name2 \
+       functions/gnutls_x509_crt_get_subject_alt_name2.short \
        functions/gnutls_x509_crt_get_subject_alt_othername_oid \
-       functions/gnutls_x509_crt_get_issuer_alt_name \
-       functions/gnutls_x509_crt_get_issuer_alt_name2 \
-       functions/gnutls_x509_crt_get_issuer_alt_othername_oid \
-       functions/gnutls_x509_crt_get_ca_status \
-       functions/gnutls_x509_crt_get_basic_constraints \
-       functions/gnutls_x509_crt_get_key_usage \
-       functions/gnutls_x509_crt_set_key_usage \
+       functions/gnutls_x509_crt_get_subject_alt_othername_oid.short \
+       functions/gnutls_x509_crt_get_subject_key_id \
+       functions/gnutls_x509_crt_get_subject_key_id.short \
+       functions/gnutls_x509_crt_get_subject_unique_id \
+       functions/gnutls_x509_crt_get_subject_unique_id.short \
+       functions/gnutls_x509_crt_get_verify_algorithm \
+       functions/gnutls_x509_crt_get_verify_algorithm.short \
+       functions/gnutls_x509_crt_get_version \
+       functions/gnutls_x509_crt_get_version.short \
+       functions/gnutls_x509_crt_import \
+       functions/gnutls_x509_crt_import.short \
+       functions/gnutls_x509_crt_import_pkcs11 \
+       functions/gnutls_x509_crt_import_pkcs11.short \
+       functions/gnutls_x509_crt_import_pkcs11_url \
+       functions/gnutls_x509_crt_import_pkcs11_url.short \
+       functions/gnutls_x509_crt_init \
+       functions/gnutls_x509_crt_init.short \
+       functions/gnutls_x509_crt_list_import \
+       functions/gnutls_x509_crt_list_import.short \
+       functions/gnutls_x509_crt_list_import2 \
+       functions/gnutls_x509_crt_list_import2.short \
+       functions/gnutls_x509_crt_list_import_pkcs11 \
+       functions/gnutls_x509_crt_list_import_pkcs11.short \
+       functions/gnutls_x509_crt_list_verify \
+       functions/gnutls_x509_crt_list_verify.short \
+       functions/gnutls_x509_crt_print \
+       functions/gnutls_x509_crt_print.short \
+       functions/gnutls_x509_crt_privkey_sign \
+       functions/gnutls_x509_crt_privkey_sign.short \
+       functions/gnutls_x509_crt_set_activation_time \
+       functions/gnutls_x509_crt_set_activation_time.short \
        functions/gnutls_x509_crt_set_authority_info_access \
-       functions/gnutls_x509_crt_get_proxy \
-       functions/gnutls_x509_dn_oid_known \
-       functions/gnutls_x509_dn_oid_name \
-       functions/gnutls_x509_crt_get_extension_oid \
-       functions/gnutls_x509_crt_get_extension_by_oid \
-       functions/gnutls_x509_crt_get_extension_info \
-       functions/gnutls_x509_crt_get_extension_data \
-       functions/gnutls_x509_crt_set_extension_by_oid \
+       functions/gnutls_x509_crt_set_authority_info_access.short \
+       functions/gnutls_x509_crt_set_authority_key_id \
+       functions/gnutls_x509_crt_set_authority_key_id.short \
+       functions/gnutls_x509_crt_set_basic_constraints \
+       functions/gnutls_x509_crt_set_basic_constraints.short \
+       functions/gnutls_x509_crt_set_ca_status \
+       functions/gnutls_x509_crt_set_ca_status.short \
+       functions/gnutls_x509_crt_set_crl_dist_points \
+       functions/gnutls_x509_crt_set_crl_dist_points.short \
+       functions/gnutls_x509_crt_set_crl_dist_points2 \
+       functions/gnutls_x509_crt_set_crl_dist_points2.short \
+       functions/gnutls_x509_crt_set_crq \
+       functions/gnutls_x509_crt_set_crq.short \
+       functions/gnutls_x509_crt_set_crq_extensions \
+       functions/gnutls_x509_crt_set_crq_extensions.short \
        functions/gnutls_x509_crt_set_dn_by_oid \
+       functions/gnutls_x509_crt_set_dn_by_oid.short \
+       functions/gnutls_x509_crt_set_expiration_time \
+       functions/gnutls_x509_crt_set_expiration_time.short \
+       functions/gnutls_x509_crt_set_extension_by_oid \
+       functions/gnutls_x509_crt_set_extension_by_oid.short \
        functions/gnutls_x509_crt_set_issuer_dn_by_oid \
-       functions/gnutls_x509_crt_set_version \
+       functions/gnutls_x509_crt_set_issuer_dn_by_oid.short \
        functions/gnutls_x509_crt_set_key \
-       functions/gnutls_x509_crt_set_ca_status \
-       functions/gnutls_x509_crt_set_basic_constraints \
-       functions/gnutls_x509_crt_set_subject_alternative_name \
-       functions/gnutls_x509_crt_set_subject_alt_name \
-       functions/gnutls_x509_crt_sign functions/gnutls_x509_crt_sign2 \
-       functions/gnutls_x509_crt_set_activation_time \
-       functions/gnutls_x509_crt_set_expiration_time \
+       functions/gnutls_x509_crt_set_key.short \
+       functions/gnutls_x509_crt_set_key_purpose_oid \
+       functions/gnutls_x509_crt_set_key_purpose_oid.short \
+       functions/gnutls_x509_crt_set_key_usage \
+       functions/gnutls_x509_crt_set_key_usage.short \
+       functions/gnutls_x509_crt_set_private_key_usage_period \
+       functions/gnutls_x509_crt_set_private_key_usage_period.short \
+       functions/gnutls_x509_crt_set_proxy \
+       functions/gnutls_x509_crt_set_proxy.short \
+       functions/gnutls_x509_crt_set_proxy_dn \
+       functions/gnutls_x509_crt_set_proxy_dn.short \
+       functions/gnutls_x509_crt_set_pubkey \
+       functions/gnutls_x509_crt_set_pubkey.short \
        functions/gnutls_x509_crt_set_serial \
+       functions/gnutls_x509_crt_set_serial.short \
+       functions/gnutls_x509_crt_set_subject_alt_name \
+       functions/gnutls_x509_crt_set_subject_alt_name.short \
+       functions/gnutls_x509_crt_set_subject_alternative_name \
+       functions/gnutls_x509_crt_set_subject_alternative_name.short \
        functions/gnutls_x509_crt_set_subject_key_id \
-       functions/gnutls_x509_crt_set_proxy_dn \
-       functions/gnutls_x509_crt_set_proxy \
-       functions/gnutls_x509_crt_print \
-       functions/gnutls_x509_crl_print \
-       functions/gnutls_x509_crt_get_raw_issuer_dn \
-       functions/gnutls_x509_crt_get_raw_dn \
-       functions/gnutls_x509_rdn_get \
-       functions/gnutls_x509_rdn_get_oid \
-       functions/gnutls_x509_rdn_get_by_oid \
-       functions/gnutls_x509_crt_get_subject \
-       functions/gnutls_x509_crt_get_issuer \
-       functions/gnutls_x509_dn_get_rdn_ava \
-       functions/gnutls_x509_dn_init functions/gnutls_x509_dn_import \
-       functions/gnutls_x509_dn_export \
-       functions/gnutls_x509_dn_deinit functions/gnutls_x509_crl_init \
-       functions/gnutls_x509_crl_deinit \
-       functions/gnutls_x509_crl_import \
-       functions/gnutls_x509_crl_export \
-       functions/gnutls_x509_crl_get_raw_issuer_dn \
-       functions/gnutls_x509_crl_get_issuer_dn \
-       functions/gnutls_x509_crl_get_issuer_dn_by_oid \
-       functions/gnutls_x509_crl_get_dn_oid \
-       functions/gnutls_x509_crl_get_signature_algorithm \
-       functions/gnutls_x509_crl_get_signature \
-       functions/gnutls_x509_crl_get_version \
-       functions/gnutls_x509_crl_get_this_update \
-       functions/gnutls_x509_crl_get_next_update \
-       functions/gnutls_x509_crl_get_crt_count \
-       functions/gnutls_x509_crl_get_crt_serial \
-       functions/gnutls_x509_crl_check_issuer \
-       functions/gnutls_x509_crl_list_import2 \
-       functions/gnutls_x509_crl_list_import \
-       functions/gnutls_x509_crl_set_version \
-       functions/gnutls_x509_crl_set_this_update \
-       functions/gnutls_x509_crl_set_next_update \
-       functions/gnutls_x509_crl_set_crt_serial \
-       functions/gnutls_x509_crl_set_crt \
-       functions/gnutls_x509_crl_get_authority_key_id \
-       functions/gnutls_x509_crl_get_authority_key_gn_serial \
-       functions/gnutls_x509_crl_get_number \
-       functions/gnutls_x509_crl_get_extension_oid \
-       functions/gnutls_x509_crl_get_extension_info \
-       functions/gnutls_x509_crl_get_extension_data \
-       functions/gnutls_x509_crl_set_authority_key_id \
-       functions/gnutls_x509_crl_set_number \
-       functions/gnutls_pkcs7_init functions/gnutls_pkcs7_deinit \
-       functions/gnutls_pkcs7_import functions/gnutls_pkcs7_export \
-       functions/gnutls_pkcs7_get_crt_count \
-       functions/gnutls_pkcs7_get_crt_raw \
-       functions/gnutls_pkcs7_set_crt_raw \
-       functions/gnutls_pkcs7_set_crt \
-       functions/gnutls_pkcs7_delete_crt \
-       functions/gnutls_pkcs7_get_crl_raw \
-       functions/gnutls_pkcs7_get_crl_count \
-       functions/gnutls_pkcs7_set_crl_raw \
-       functions/gnutls_pkcs7_set_crl \
-       functions/gnutls_pkcs7_delete_crl \
-       functions/gnutls_x509_crt_check_issuer \
-       functions/gnutls_x509_crt_list_verify \
+       functions/gnutls_x509_crt_set_subject_key_id.short \
+       functions/gnutls_x509_crt_set_version \
+       functions/gnutls_x509_crt_set_version.short \
+       functions/gnutls_x509_crt_sign \
+       functions/gnutls_x509_crt_sign.short \
+       functions/gnutls_x509_crt_sign2 \
+       functions/gnutls_x509_crt_sign2.short \
        functions/gnutls_x509_crt_verify \
-       functions/gnutls_x509_crl_verify \
-       functions/gnutls_x509_crt_check_revocation \
-       functions/gnutls_x509_crt_get_fingerprint \
-       functions/gnutls_x509_crt_get_key_purpose_oid \
-       functions/gnutls_x509_crt_set_key_purpose_oid \
-       functions/gnutls_x509_privkey_init \
-       functions/gnutls_x509_privkey_deinit \
-       functions/gnutls_x509_privkey_sec_param \
+       functions/gnutls_x509_crt_verify.short \
+       functions/gnutls_x509_crt_verify_data \
+       functions/gnutls_x509_crt_verify_data.short \
+       functions/gnutls_x509_crt_verify_hash \
+       functions/gnutls_x509_crt_verify_hash.short \
+       functions/gnutls_x509_dn_deinit \
+       functions/gnutls_x509_dn_deinit.short \
+       functions/gnutls_x509_dn_export \
+       functions/gnutls_x509_dn_export.short \
+       functions/gnutls_x509_dn_get_rdn_ava \
+       functions/gnutls_x509_dn_get_rdn_ava.short \
+       functions/gnutls_x509_dn_import \
+       functions/gnutls_x509_dn_import.short \
+       functions/gnutls_x509_dn_init \
+       functions/gnutls_x509_dn_init.short \
+       functions/gnutls_x509_dn_oid_known \
+       functions/gnutls_x509_dn_oid_known.short \
+       functions/gnutls_x509_dn_oid_name \
+       functions/gnutls_x509_dn_oid_name.short \
        functions/gnutls_x509_privkey_cpy \
+       functions/gnutls_x509_privkey_cpy.short \
+       functions/gnutls_x509_privkey_deinit \
+       functions/gnutls_x509_privkey_deinit.short \
+       functions/gnutls_x509_privkey_export \
+       functions/gnutls_x509_privkey_export.short \
+       functions/gnutls_x509_privkey_export_dsa_raw \
+       functions/gnutls_x509_privkey_export_dsa_raw.short \
+       functions/gnutls_x509_privkey_export_ecc_raw \
+       functions/gnutls_x509_privkey_export_ecc_raw.short \
+       functions/gnutls_x509_privkey_export_pkcs8 \
+       functions/gnutls_x509_privkey_export_pkcs8.short \
+       functions/gnutls_x509_privkey_export_rsa_raw \
+       functions/gnutls_x509_privkey_export_rsa_raw.short \
+       functions/gnutls_x509_privkey_export_rsa_raw2 \
+       functions/gnutls_x509_privkey_export_rsa_raw2.short \
+       functions/gnutls_x509_privkey_fix \
+       functions/gnutls_x509_privkey_fix.short \
+       functions/gnutls_x509_privkey_generate \
+       functions/gnutls_x509_privkey_generate.short \
+       functions/gnutls_x509_privkey_get_key_id \
+       functions/gnutls_x509_privkey_get_key_id.short \
+       functions/gnutls_x509_privkey_get_pk_algorithm \
+       functions/gnutls_x509_privkey_get_pk_algorithm.short \
        functions/gnutls_x509_privkey_import \
+       functions/gnutls_x509_privkey_import.short \
+       functions/gnutls_x509_privkey_import_dsa_raw \
+       functions/gnutls_x509_privkey_import_dsa_raw.short \
+       functions/gnutls_x509_privkey_import_ecc_raw \
+       functions/gnutls_x509_privkey_import_ecc_raw.short \
        functions/gnutls_x509_privkey_import_pkcs8 \
+       functions/gnutls_x509_privkey_import_pkcs8.short \
        functions/gnutls_x509_privkey_import_rsa_raw \
+       functions/gnutls_x509_privkey_import_rsa_raw.short \
        functions/gnutls_x509_privkey_import_rsa_raw2 \
-       functions/gnutls_x509_privkey_import_ecc_raw \
-       functions/gnutls_x509_privkey_fix \
-       functions/gnutls_x509_privkey_export_dsa_raw \
-       functions/gnutls_x509_privkey_import_dsa_raw \
-       functions/gnutls_x509_privkey_get_pk_algorithm \
-       functions/gnutls_x509_privkey_get_key_id \
-       functions/gnutls_x509_privkey_generate \
+       functions/gnutls_x509_privkey_import_rsa_raw2.short \
+       functions/gnutls_x509_privkey_init \
+       functions/gnutls_x509_privkey_init.short \
+       functions/gnutls_x509_privkey_sec_param \
+       functions/gnutls_x509_privkey_sec_param.short \
+       functions/gnutls_x509_privkey_sign_data \
+       functions/gnutls_x509_privkey_sign_data.short \
+       functions/gnutls_x509_privkey_sign_hash \
+       functions/gnutls_x509_privkey_sign_hash.short \
        functions/gnutls_x509_privkey_verify_params \
-       functions/gnutls_x509_privkey_export \
-       functions/gnutls_x509_privkey_export_pkcs8 \
-       functions/gnutls_x509_privkey_export_rsa_raw2 \
-       functions/gnutls_x509_privkey_export_rsa_raw \
-       functions/gnutls_x509_privkey_export_ecc_raw \
-       functions/gnutls_x509_crq_sign2 \
-       functions/gnutls_x509_crq_print \
-       functions/gnutls_x509_crq_verify \
-       functions/gnutls_x509_crq_init \
-       functions/gnutls_x509_crq_deinit \
-       functions/gnutls_x509_crq_import \
-       functions/gnutls_x509_crq_get_private_key_usage_period \
-       functions/gnutls_x509_crq_get_dn \
-       functions/gnutls_x509_crq_get_dn_oid \
-       functions/gnutls_x509_crq_get_dn_by_oid \
-       functions/gnutls_x509_crq_set_dn_by_oid \
-       functions/gnutls_x509_crq_set_version \
-       functions/gnutls_x509_crq_get_version \
-       functions/gnutls_x509_crq_set_key \
-       functions/gnutls_x509_crq_set_challenge_password \
-       functions/gnutls_x509_crq_get_challenge_password \
-       functions/gnutls_x509_crq_set_attribute_by_oid \
-       functions/gnutls_x509_crq_get_attribute_by_oid \
-       functions/gnutls_x509_crq_export \
-       functions/gnutls_x509_crt_set_crq \
-       functions/gnutls_x509_crt_set_crq_extensions \
-       functions/gnutls_x509_crq_set_private_key_usage_period \
-       functions/gnutls_x509_crq_set_key_rsa_raw \
-       functions/gnutls_x509_crq_set_subject_alt_name \
-       functions/gnutls_x509_crq_set_key_usage \
-       functions/gnutls_x509_crq_set_basic_constraints \
-       functions/gnutls_x509_crq_set_key_purpose_oid \
-       functions/gnutls_x509_crq_get_key_purpose_oid \
-       functions/gnutls_x509_crq_get_extension_data \
-       functions/gnutls_x509_crq_get_extension_info \
-       functions/gnutls_x509_crq_get_attribute_data \
-       functions/gnutls_x509_crq_get_attribute_info \
-       functions/gnutls_x509_crq_get_pk_algorithm \
-       functions/gnutls_x509_crq_get_key_id \
-       functions/gnutls_x509_crq_get_key_rsa_raw \
-       functions/gnutls_x509_crq_get_key_usage \
-       functions/gnutls_x509_crq_get_basic_constraints \
-       functions/gnutls_x509_crq_get_subject_alt_name \
-       functions/gnutls_x509_crq_get_subject_alt_othername_oid \
-       functions/gnutls_x509_crq_get_extension_by_oid \
-       functions/gnutls_x509_trust_list_init \
-       functions/gnutls_x509_trust_list_deinit \
-       functions/gnutls_x509_trust_list_get_issuer \
+       functions/gnutls_x509_privkey_verify_params.short \
+       functions/gnutls_x509_rdn_get \
+       functions/gnutls_x509_rdn_get.short \
+       functions/gnutls_x509_rdn_get_by_oid \
+       functions/gnutls_x509_rdn_get_by_oid.short \
+       functions/gnutls_x509_rdn_get_oid \
+       functions/gnutls_x509_rdn_get_oid.short \
        functions/gnutls_x509_trust_list_add_cas \
-       functions/gnutls_x509_trust_list_add_named_crt \
+       functions/gnutls_x509_trust_list_add_cas.short \
        functions/gnutls_x509_trust_list_add_crls \
+       functions/gnutls_x509_trust_list_add_crls.short \
+       functions/gnutls_x509_trust_list_add_named_crt \
+       functions/gnutls_x509_trust_list_add_named_crt.short \
+       functions/gnutls_x509_trust_list_deinit \
+       functions/gnutls_x509_trust_list_deinit.short \
+       functions/gnutls_x509_trust_list_get_issuer \
+       functions/gnutls_x509_trust_list_get_issuer.short \
+       functions/gnutls_x509_trust_list_init \
+       functions/gnutls_x509_trust_list_init.short \
+       functions/gnutls_x509_trust_list_verify_crt \
+       functions/gnutls_x509_trust_list_verify_crt.short \
        functions/gnutls_x509_trust_list_verify_named_crt \
-       functions/gnutls_x509_trust_list_verify_crt
+       functions/gnutls_x509_trust_list_verify_named_crt.short
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -2562,9 +3311,7 @@ uninstall-html-am:
 
 uninstall-info-am:
        @$(PRE_UNINSTALL)
-       @if test -d '$(DESTDIR)$(infodir)' && \
-           (install-info --version && \
-            install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+       @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \
          list='$(INFO_DEPS)'; \
          for file in $$list; do \
            relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -2644,8 +3391,11 @@ maintainer-clean-aminfo:
        done
 install-imagesDATA: $(images_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)"
        @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -2828,13 +3578,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -2928,8 +3675,11 @@ install-dvi: install-dvi-recursive
 
 install-dvi-am: $(DVIS)
        @$(NORMAL_INSTALL)
-       test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
        @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -2944,8 +3694,11 @@ install-html: install-html-recursive
 
 install-html-am: $(HTMLS)
        @$(NORMAL_INSTALL)
-       test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
        @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
          $(am__strip_dir) \
@@ -2968,9 +3721,12 @@ install-info: install-info-recursive
 
 install-info-am: $(INFO_DEPS)
        @$(NORMAL_INSTALL)
-       test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
        list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \
+       fi; \
        for file in $$list; do \
          case $$file in \
            $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
@@ -2988,13 +3744,7 @@ install-info-am: $(INFO_DEPS)
          echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
          $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
        @$(POST_INSTALL)
-       @am__run_installinfo=yes; \
-       case $$AM_UPDATE_INFO_DIR in \
-         n|no|NO) am__run_installinfo=no;; \
-         *) (install-info --version) >/dev/null 2>&1 \
-              || am__run_installinfo=no;; \
-       esac; \
-       if test $$am__run_installinfo = yes; then \
+       @if $(am__can_run_installinfo); then \
          list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
          for file in $$list; do \
            relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -3008,8 +3758,11 @@ install-pdf: install-pdf-recursive
 
 install-pdf-am: $(PDFS)
        @$(NORMAL_INSTALL)
-       test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
        @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -3021,8 +3774,11 @@ install-ps: install-ps-recursive
 
 install-ps-am: $(PSS)
        @$(NORMAL_INSTALL)
-       test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
        @list='$(PSS)'; test -n "$(psdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -3282,21 +4038,20 @@ stamp_functions: gnutls-api.texi x509-api.texi pgp-api.texi pkcs12-api.texi pkcs
        done
        sed -i 's/\@anchor{.*//g' functions/*
        sed -i 's/\@subheading.*//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 < enums.texi
+       $(srcdir)/scripts/split-texi.pl enums enum < $(srcdir)/enums.texi
        echo $@ > $@
-       $(MAKE) compare-makefile
 
 $(ENUMS): stamp_enums
 
 $(FUNCS): stamp_functions
 
 compare-makefile: enums.texi
-       ENUMS=`grep '^@c ' enums.texi | sed 's/@c //g' | sort`; \
+       ENUMS=`grep '^@c ' $(srcdir)/enums.texi | sed 's/@c //g' | sort`; \
        STR=""; \
        for i in $$ENUMS; do \
                STR="$$STR\nENUMS += enums/$$i"; \
@@ -3305,13 +4060,13 @@ 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_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"; \
+               MANS="$$MANS\nFUNCS += functions/$$i\nFUNCS += functions/$$i.short"; \
        done; \
-       grep -v -e '^FUNCS += ' Makefile.am | \
-               perl -p -e "s,^FUNCS =,FUNCS =$$MANS," > 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-$@
 
index 131fd69..4c6e931 100644 (file)
@@ -521,7 +521,7 @@ negative error value.
 @deftypefun {int} {gnutls_pubkey_get_openpgp_key_id} (gnutls_pubkey_t @var{key}, unsigned int @var{flags}, unsigned char * @var{output_data}, size_t * @var{output_data_size}, unsigned int * @var{subkey})
 @var{key}: Holds the public key
 
-@var{flags}: should be 0 for now
+@var{flags}: should be 0 or @code{GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT} 
 
 @var{output_data}: will contain the key ID
 
@@ -530,14 +530,16 @@ replaced by the actual size of parameters)
 
 @var{subkey}: Will be non zero if the key ID corresponds to a subkey
 
-This function will return a unique ID the depends on the public
-key parameters. This ID can be used in checking whether a
-certificate corresponds to the given public key.
+This function returns the OpenPGP key ID of the corresponding key.
+The key is a unique ID that depends on the public
+key parameters. 
+
+If the flag @code{GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT}  is specified
+this function returns the fingerprint of the master key.
 
 If the buffer provided is not long enough to hold the output, then
 *output_data_size is updated and @code{GNUTLS_E_SHORT_MEMORY_BUFFER}  will
-be returned.  The output will normally be a SHA-1 hash output,
-which is 20 bytes.
+be returned.  The output is @code{GNUTLS_OPENPGP_KEYID_SIZE}  bytes long.
 
 @strong{Returns:} In case of failure a negative error code will be
 returned, and 0 on success.
@@ -955,8 +957,10 @@ is returned, and zero or positive code on success.
 @var{signature}: contains the signature
 
 This function will verify the given signed digest, using the
-parameters from the public key. Use @code{gnutls_pubkey_verify_hash2()} 
-instead of this function.
+parameters from the public key. 
+
+Deprecated. This function cannot be easily used securely. 
+Use @code{gnutls_pubkey_verify_hash2()}  instead.
 
 @strong{Returns:} In case of a verification failure @code{GNUTLS_E_PK_SIG_VERIFY_FAILED}  
 is returned, and zero or positive code on success.
index fd3be3e..2c7abd4 100644 (file)
 @item TLS1.0
 @item TLS1.1
 @item TLS1.2
+@item DTLS0.9
 @item DTLS1.0
 @end table
 
index 52f6126..9cc50e7 100644 (file)
@@ -660,7 +660,7 @@ function implies to restoring the same function that was interrupted, in
 the DTLS protocol this requirement isn't true.
 There are cases where a retransmission is required, which are indicated by
 a received message and thus @funcref{gnutls_record_get_direction} must be called 
-to decide which operation to restore, i.e., send or receive.
+to decide which direction to check prior to restoring a function call.
 @showfuncdesc{gnutls_record_get_direction}
 
 Moreover, to prevent blocking from DTLS' retransmission timers to block a
@@ -948,6 +948,11 @@ will prevent the sending of any TLS extensions in client side. Note
 that TLS 1.2 requires extensions to be used, as well as safe
 renegotiation thus this option must be used with care.
 
+@item %STATELESS_COMPRESSION @tab
+will disable keeping state across records when compressing. This may
+help to mitigate attacks when compression is used but an attacker
+is in control of input data.
+
 @item %SERVER_PRECEDENCE @tab
 The ciphersuite will be selected according to server priorities
 and not the client's.
index 3ab1d65..ca2a81c 100644 (file)
@@ -188,6 +188,11 @@ on @xcite{RFC3749}. The supported algorithms are shown below.
 
 @showenumdesc{gnutls_compression_method_t,Supported compression algorithms}
 
+Note that compression enables attacks such as traffic analysis, or even
+plaintext recovery under certain circumstances. To avoid some of these
+attacks GnuTLS allows each record to be compressed independently (i.e.,
+stateless compression), by using the "%STATELESS_COMPRESSION" priority string.
+
 @node Weaknesses and countermeasures
 @subsection Weaknesses and countermeasures
 
index 294ca76..6b5ae66 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -71,14 +88,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -200,6 +220,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -551,6 +576,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -836,7 +862,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -910,6 +935,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1045,8 +1071,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1065,7 +1091,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1296,6 +1321,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1675,13 +1701,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
index 14a7467..8f70d5e 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,14 +68,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -173,6 +193,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -491,6 +516,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -776,7 +802,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -850,6 +875,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -985,8 +1011,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1005,7 +1031,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1236,6 +1261,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 289766b..4da6617 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,14 +68,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -173,6 +193,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -491,6 +516,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -776,7 +802,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -850,6 +875,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -985,8 +1011,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1005,7 +1031,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1236,6 +1261,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 104c4d0..fd1ac66 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,14 +68,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -173,6 +193,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -491,6 +516,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -776,7 +802,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -850,6 +875,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -985,8 +1011,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1005,7 +1031,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1236,6 +1261,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index be10bcf..d87cbe8 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -71,14 +88,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -193,6 +213,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -511,6 +536,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -796,7 +822,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -870,6 +895,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1005,8 +1031,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1025,7 +1051,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1256,6 +1281,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 5cf02b7..40c4f42 100644 (file)
@@ -299,6 +299,12 @@ should not be trusted.
 The certificate is not yet activated.
 @item GNUTLS_@-CERT_@-EXPIRED
 The certificate has expired.
+@item GNUTLS_@-CERT_@-SIGNATURE_@-FAILURE
+-- undescribed --
+@item GNUTLS_@-CERT_@-REVOCATION_@-DATA_@-SUPERSEDED
+The revocation data are old and have been superseded.
+@item GNUTLS_@-CERT_@-REVOCATION_@-DATA_@-ISSUED_@-IN_@-FUTURE
+The revocation data have a future issue date.
 @end table
 
 @c gnutls_certificate_request_t
@@ -579,6 +585,9 @@ to deprecate all certificates of version 1.
 @item GNUTLS_@-VERIFY_@-DISABLE_@-CRL_@-CHECKS
 Disable checking for validity
 using certificate revocation lists.
+@item GNUTLS_@-VERIFY_@-ALLOW_@-UNSORTED_@-CHAIN
+A certificate chain is tolerated
+if unsorted (the case with many TLS servers out there).
 @end table
 
 @c gnutls_pkcs_encrypt_flags_t
@@ -675,6 +684,8 @@ Specify all public keys.
 Specify all private keys.
 @item GNUTLS_@-PKCS11_@-OBJ_@-ATTR_@-ALL
 Specify all objects.
+@item GNUTLS_@-PKCS11_@-OBJ_@-ATTR_@-CRT_@-TRUSTED_@-CA
+Specify all certificates marked as trusted and are CAs.
 @end table
 
 @c gnutls_pkcs11_token_info_t
index 44089dc..b5f0830 100644 (file)
@@ -23,4 +23,10 @@ should not be trusted.
 The certificate is not yet activated.
 @item GNUTLS_@-CERT_@-EXPIRED
 The certificate has expired.
+@item GNUTLS_@-CERT_@-SIGNATURE_@-FAILURE
+-- undescribed --
+@item GNUTLS_@-CERT_@-REVOCATION_@-DATA_@-SUPERSEDED
+The revocation data are old and have been superseded.
+@item GNUTLS_@-CERT_@-REVOCATION_@-DATA_@-ISSUED_@-IN_@-FUTURE
+The revocation data have a future issue date.
 @end table
index 40f1e33..f8708e5 100644 (file)
@@ -41,4 +41,7 @@ to deprecate all certificates of version 1.
 @item GNUTLS_@-VERIFY_@-DISABLE_@-CRL_@-CHECKS
 Disable checking for validity
 using certificate revocation lists.
+@item GNUTLS_@-VERIFY_@-ALLOW_@-UNSORTED_@-CHAIN
+A certificate chain is tolerated
+if unsorted (the case with many TLS servers out there).
 @end table
index 0d8cb09..2ab77a6 100644 (file)
@@ -14,4 +14,6 @@ Specify all public keys.
 Specify all private keys.
 @item GNUTLS_@-PKCS11_@-OBJ_@-ATTR_@-ALL
 Specify all objects.
+@item GNUTLS_@-PKCS11_@-OBJ_@-ATTR_@-CRT_@-TRUSTED_@-CA
+Specify all certificates marked as trusted and are CAs.
 @end table
index fb95e4c..aaf4a80 100644 (file)
 @item -326 @tab GNUTLS_@-E_@-NO_@-PRIORITIES_@-WERE_@-SET @tab No or insufficient priorities were set.
 @item -327 @tab GNUTLS_@-E_@-X509_@-UNSUPPORTED_@-EXTENSION @tab Unsupported extension in X.509 certificate.
 @item -328 @tab GNUTLS_@-E_@-SESSION_@-EOF @tab Peer has terminated the connection
+@item -341 @tab GNUTLS_@-E_@-OCSP_@-RESPONSE_@-ERROR @tab The OCSP response is invalid
 @end multitable
index ca0857c..debc975 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -85,14 +102,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -360,6 +380,11 @@ DIST_SOURCES = $(libexamples_la_SOURCES) ex-cert-select.c \
        ex-client-psk.c ex-client-resume.c ex-client-srp.c \
        ex-client-x509.c $(am__ex_cxx_SOURCES_DIST) ex-ocsp-client.c \
        ex-serv-anon.c ex-serv-pgp.c ex-serv-psk.c ex-serv-srp.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -680,6 +705,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -965,7 +991,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -1039,6 +1064,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1174,8 +1200,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1194,7 +1220,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1425,6 +1450,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
diff --git a/doc/functions/gnutls_alert_get.short b/doc/functions/gnutls_alert_get.short
new file mode 100644 (file)
index 0000000..64d21fd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_alert_description_t} @ref{gnutls_alert_get} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_alert_get_name.short b/doc/functions/gnutls_alert_get_name.short
new file mode 100644 (file)
index 0000000..9d6f29a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_alert_get_name} (gnutls_alert_description_t @var{alert})
diff --git a/doc/functions/gnutls_alert_get_strname.short b/doc/functions/gnutls_alert_get_strname.short
new file mode 100644 (file)
index 0000000..c16fcec
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_alert_get_strname} (gnutls_alert_description_t @var{alert})
diff --git a/doc/functions/gnutls_alert_send.short b/doc/functions/gnutls_alert_send.short
new file mode 100644 (file)
index 0000000..f933313
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_alert_send} (gnutls_session_t @var{session}, gnutls_alert_level_t @var{level}, gnutls_alert_description_t @var{desc})
diff --git a/doc/functions/gnutls_alert_send_appropriate.short b/doc/functions/gnutls_alert_send_appropriate.short
new file mode 100644 (file)
index 0000000..1eddf45
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_alert_send_appropriate} (gnutls_session_t @var{session}, int @var{err})
diff --git a/doc/functions/gnutls_anon_allocate_client_credentials.short b/doc/functions/gnutls_anon_allocate_client_credentials.short
new file mode 100644 (file)
index 0000000..532f2b7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_anon_allocate_client_credentials} (gnutls_anon_client_credentials_t *                                          @var{sc})
diff --git a/doc/functions/gnutls_anon_allocate_server_credentials.short b/doc/functions/gnutls_anon_allocate_server_credentials.short
new file mode 100644 (file)
index 0000000..f86de52
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_anon_allocate_server_credentials} (gnutls_anon_server_credentials_t *                                          @var{sc})
diff --git a/doc/functions/gnutls_anon_free_client_credentials.short b/doc/functions/gnutls_anon_free_client_credentials.short
new file mode 100644 (file)
index 0000000..3add839
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_anon_free_client_credentials} (gnutls_anon_client_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_anon_free_server_credentials.short b/doc/functions/gnutls_anon_free_server_credentials.short
new file mode 100644 (file)
index 0000000..3570fd5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_anon_free_server_credentials} (gnutls_anon_server_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_anon_set_params_function.short b/doc/functions/gnutls_anon_set_params_function.short
new file mode 100644 (file)
index 0000000..1466cf0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_anon_set_params_function} (gnutls_anon_server_credentials_t @var{res}, gnutls_params_function * @var{func})
diff --git a/doc/functions/gnutls_anon_set_server_dh_params.short b/doc/functions/gnutls_anon_set_server_dh_params.short
new file mode 100644 (file)
index 0000000..8385d19
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_anon_set_server_dh_params} (gnutls_anon_server_credentials_t @var{res}, gnutls_dh_params_t @var{dh_params})
diff --git a/doc/functions/gnutls_anon_set_server_params_function.short b/doc/functions/gnutls_anon_set_server_params_function.short
new file mode 100644 (file)
index 0000000..faa2825
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_anon_set_server_params_function} (gnutls_anon_server_credentials_t @var{res}, gnutls_params_function * @var{func})
diff --git a/doc/functions/gnutls_auth_client_get_type.short b/doc/functions/gnutls_auth_client_get_type.short
new file mode 100644 (file)
index 0000000..ab2f188
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_credentials_type_t} @ref{gnutls_auth_client_get_type} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_auth_get_type.short b/doc/functions/gnutls_auth_get_type.short
new file mode 100644 (file)
index 0000000..47b21ed
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_credentials_type_t} @ref{gnutls_auth_get_type} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_auth_server_get_type.short b/doc/functions/gnutls_auth_server_get_type.short
new file mode 100644 (file)
index 0000000..121955e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_credentials_type_t} @ref{gnutls_auth_server_get_type} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_bye.short b/doc/functions/gnutls_bye.short
new file mode 100644 (file)
index 0000000..de559df
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_bye} (gnutls_session_t @var{session}, gnutls_close_request_t @var{how})
diff --git a/doc/functions/gnutls_certificate_activation_time_peers.short b/doc/functions/gnutls_certificate_activation_time_peers.short
new file mode 100644 (file)
index 0000000..ffce2eb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_certificate_activation_time_peers} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_certificate_allocate_credentials.short b/doc/functions/gnutls_certificate_allocate_credentials.short
new file mode 100644 (file)
index 0000000..e3d6725
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_allocate_credentials} (gnutls_certificate_credentials_t *                                          @var{res})
diff --git a/doc/functions/gnutls_certificate_client_get_request_status.short b/doc/functions/gnutls_certificate_client_get_request_status.short
new file mode 100644 (file)
index 0000000..3dd9659
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_client_get_request_status} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_certificate_expiration_time_peers.short b/doc/functions/gnutls_certificate_expiration_time_peers.short
new file mode 100644 (file)
index 0000000..3f92bba
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_certificate_expiration_time_peers} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_certificate_free_ca_names.short b/doc/functions/gnutls_certificate_free_ca_names.short
new file mode 100644 (file)
index 0000000..74945d6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_free_ca_names} (gnutls_certificate_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_certificate_free_cas.short b/doc/functions/gnutls_certificate_free_cas.short
new file mode 100644 (file)
index 0000000..d4ee546
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_free_cas} (gnutls_certificate_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_certificate_free_credentials.short b/doc/functions/gnutls_certificate_free_credentials.short
new file mode 100644 (file)
index 0000000..8a567cb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_free_credentials} (gnutls_certificate_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_certificate_free_crls.short b/doc/functions/gnutls_certificate_free_crls.short
new file mode 100644 (file)
index 0000000..5f20576
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_free_crls} (gnutls_certificate_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_certificate_free_keys.short b/doc/functions/gnutls_certificate_free_keys.short
new file mode 100644 (file)
index 0000000..03e765e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_free_keys} (gnutls_certificate_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_certificate_get_issuer.short b/doc/functions/gnutls_certificate_get_issuer.short
new file mode 100644 (file)
index 0000000..712b3b2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_get_issuer} (gnutls_certificate_credentials_t @var{sc}, gnutls_x509_crt_t @var{cert}, gnutls_x509_crt_t* @var{issuer}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_certificate_get_ours.short b/doc/functions/gnutls_certificate_get_ours.short
new file mode 100644 (file)
index 0000000..c882b10
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_datum_t *} @ref{gnutls_certificate_get_ours} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_certificate_get_peers.short b/doc/functions/gnutls_certificate_get_peers.short
new file mode 100644 (file)
index 0000000..4dd268e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_datum_t *} @ref{gnutls_certificate_get_peers} (gnutls_session_t                               @var{session}, unsigned int * @var{list_size})
diff --git a/doc/functions/gnutls_certificate_send_x509_rdn_sequence.short b/doc/functions/gnutls_certificate_send_x509_rdn_sequence.short
new file mode 100644 (file)
index 0000000..9fc58e6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_send_x509_rdn_sequence} (gnutls_session_t @var{session}, int @var{status})
diff --git a/doc/functions/gnutls_certificate_server_set_request.short b/doc/functions/gnutls_certificate_server_set_request.short
new file mode 100644 (file)
index 0000000..121c75b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_server_set_request} (gnutls_session_t @var{session}, gnutls_certificate_request_t @var{req})
diff --git a/doc/functions/gnutls_certificate_set_dh_params.short b/doc/functions/gnutls_certificate_set_dh_params.short
new file mode 100644 (file)
index 0000000..6ead49a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_set_dh_params} (gnutls_certificate_credentials_t @var{res}, gnutls_dh_params_t @var{dh_params})
diff --git a/doc/functions/gnutls_certificate_set_key.short b/doc/functions/gnutls_certificate_set_key.short
new file mode 100644 (file)
index 0000000..2d0ca05
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_key} (gnutls_certificate_credentials_t @var{res}, const char** @var{names}, int @var{names_size}, gnutls_pcert_st * @var{pcert_list}, int @var{pcert_list_size}, gnutls_privkey_t @var{key})
diff --git a/doc/functions/gnutls_certificate_set_openpgp_key.short b/doc/functions/gnutls_certificate_set_openpgp_key.short
new file mode 100644 (file)
index 0000000..accf997
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_openpgp_key} (gnutls_certificate_credentials_t @var{res}, gnutls_openpgp_crt_t @var{crt}, gnutls_openpgp_privkey_t @var{pkey})
diff --git a/doc/functions/gnutls_certificate_set_openpgp_key_file.short b/doc/functions/gnutls_certificate_set_openpgp_key_file.short
new file mode 100644 (file)
index 0000000..a66e0af
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_openpgp_key_file} (gnutls_certificate_credentials_t @var{res}, const char * @var{certfile}, const char * @var{keyfile}, gnutls_openpgp_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_certificate_set_openpgp_key_file2.short b/doc/functions/gnutls_certificate_set_openpgp_key_file2.short
new file mode 100644 (file)
index 0000000..a3b54d5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_openpgp_key_file2} (gnutls_certificate_credentials_t                                           @var{res}, const char * @var{certfile}, const char * @var{keyfile}, const char * @var{subkey_id}, gnutls_openpgp_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_certificate_set_openpgp_key_mem.short b/doc/functions/gnutls_certificate_set_openpgp_key_mem.short
new file mode 100644 (file)
index 0000000..91f41e1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_openpgp_key_mem} (gnutls_certificate_credentials_t @var{res}, const gnutls_datum_t * @var{cert}, const gnutls_datum_t * @var{key}, gnutls_openpgp_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_certificate_set_openpgp_key_mem2.short b/doc/functions/gnutls_certificate_set_openpgp_key_mem2.short
new file mode 100644 (file)
index 0000000..75c1f9e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_openpgp_key_mem2} (gnutls_certificate_credentials_t @var{res}, const gnutls_datum_t * @var{cert}, const gnutls_datum_t * @var{key}, const char * @var{subkey_id}, gnutls_openpgp_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_certificate_set_openpgp_keyring_file.short b/doc/functions/gnutls_certificate_set_openpgp_keyring_file.short
new file mode 100644 (file)
index 0000000..df28353
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_openpgp_keyring_file} (gnutls_certificate_credentials_t @var{c}, const char * @var{file}, gnutls_openpgp_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_certificate_set_openpgp_keyring_mem.short b/doc/functions/gnutls_certificate_set_openpgp_keyring_mem.short
new file mode 100644 (file)
index 0000000..7e6ac76
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_openpgp_keyring_mem} (gnutls_certificate_credentials_t                                             @var{c}, const uint8_t * @var{data}, size_t @var{dlen}, gnutls_openpgp_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_certificate_set_params_function.short b/doc/functions/gnutls_certificate_set_params_function.short
new file mode 100644 (file)
index 0000000..19ff1de
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_set_params_function} (gnutls_certificate_credentials_t @var{res}, gnutls_params_function * @var{func})
diff --git a/doc/functions/gnutls_certificate_set_retrieve_function.short b/doc/functions/gnutls_certificate_set_retrieve_function.short
new file mode 100644 (file)
index 0000000..8ac255e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_set_retrieve_function} (gnutls_certificate_credentials_t @var{cred}, gnutls_certificate_retrieve_function * @var{func})
diff --git a/doc/functions/gnutls_certificate_set_retrieve_function2.short b/doc/functions/gnutls_certificate_set_retrieve_function2.short
new file mode 100644 (file)
index 0000000..8eb7cdd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_set_retrieve_function2} (gnutls_certificate_credentials_t @var{cred}, gnutls_certificate_retrieve_function2 * @var{func})
diff --git a/doc/functions/gnutls_certificate_set_rsa_export_params.short b/doc/functions/gnutls_certificate_set_rsa_export_params.short
new file mode 100644 (file)
index 0000000..7f5b5c1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_set_rsa_export_params} (gnutls_certificate_credentials_t                                           @var{res}, gnutls_rsa_params_t @var{rsa_params})
index c39073b..f01c926 100644 (file)
@@ -9,5 +9,6 @@
 
 This function will set the flags to be used at verification of the
 certificates.  Flags must be OR of the
-@code{gnutls_certificate_verify_flags}  enumerations.
+@code{gnutls_certificate_verify_flags}  enumerations. The default
+for TLS sessions is GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN.
 @end deftypefun
diff --git a/doc/functions/gnutls_certificate_set_verify_flags.short b/doc/functions/gnutls_certificate_set_verify_flags.short
new file mode 100644 (file)
index 0000000..9f653c4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_set_verify_flags} (gnutls_certificate_credentials_t                                      @var{res}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_certificate_set_verify_function.short b/doc/functions/gnutls_certificate_set_verify_function.short
new file mode 100644 (file)
index 0000000..a5b2315
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_set_verify_function} (gnutls_certificate_credentials_t @var{cred}, gnutls_certificate_verify_function * @var{func})
diff --git a/doc/functions/gnutls_certificate_set_verify_limits.short b/doc/functions/gnutls_certificate_set_verify_limits.short
new file mode 100644 (file)
index 0000000..e526134
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_certificate_set_verify_limits} (gnutls_certificate_credentials_t @var{res}, unsigned int @var{max_bits}, unsigned int @var{max_depth})
diff --git a/doc/functions/gnutls_certificate_set_x509_crl.short b/doc/functions/gnutls_certificate_set_x509_crl.short
new file mode 100644 (file)
index 0000000..fea31fd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_crl} (gnutls_certificate_credentials_t @var{res}, gnutls_x509_crl_t * @var{crl_list}, int @var{crl_list_size})
diff --git a/doc/functions/gnutls_certificate_set_x509_crl_file.short b/doc/functions/gnutls_certificate_set_x509_crl_file.short
new file mode 100644 (file)
index 0000000..20007cb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_crl_file} (gnutls_certificate_credentials_t @var{res}, const char * @var{crlfile}, gnutls_x509_crt_fmt_t @var{type})
diff --git a/doc/functions/gnutls_certificate_set_x509_crl_mem.short b/doc/functions/gnutls_certificate_set_x509_crl_mem.short
new file mode 100644 (file)
index 0000000..1f32114
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_crl_mem} (gnutls_certificate_credentials_t @var{res}, const gnutls_datum_t * @var{CRL}, gnutls_x509_crt_fmt_t @var{type})
diff --git a/doc/functions/gnutls_certificate_set_x509_key.short b/doc/functions/gnutls_certificate_set_x509_key.short
new file mode 100644 (file)
index 0000000..41f400c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_key} (gnutls_certificate_credentials_t @var{res}, gnutls_x509_crt_t * @var{cert_list}, int @var{cert_list_size}, gnutls_x509_privkey_t @var{key})
diff --git a/doc/functions/gnutls_certificate_set_x509_key_file.short b/doc/functions/gnutls_certificate_set_x509_key_file.short
new file mode 100644 (file)
index 0000000..5a8e5dd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_key_file} (gnutls_certificate_credentials_t @var{res}, const char * @var{certfile}, const char * @var{keyfile}, gnutls_x509_crt_fmt_t @var{type})
diff --git a/doc/functions/gnutls_certificate_set_x509_key_mem.short b/doc/functions/gnutls_certificate_set_x509_key_mem.short
new file mode 100644 (file)
index 0000000..49dcd69
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_key_mem} (gnutls_certificate_credentials_t @var{res}, const gnutls_datum_t * @var{cert}, const gnutls_datum_t * @var{key}, gnutls_x509_crt_fmt_t @var{type})
diff --git a/doc/functions/gnutls_certificate_set_x509_simple_pkcs12_file.short b/doc/functions/gnutls_certificate_set_x509_simple_pkcs12_file.short
new file mode 100644 (file)
index 0000000..e14c504
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_simple_pkcs12_file} (gnutls_certificate_credentials_t @var{res}, const char * @var{pkcs12file}, gnutls_x509_crt_fmt_t @var{type}, const char * @var{password})
diff --git a/doc/functions/gnutls_certificate_set_x509_simple_pkcs12_mem.short b/doc/functions/gnutls_certificate_set_x509_simple_pkcs12_mem.short
new file mode 100644 (file)
index 0000000..20e78fc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_simple_pkcs12_mem} (gnutls_certificate_credentials_t @var{res}, const gnutls_datum_t * @var{p12blob}, gnutls_x509_crt_fmt_t @var{type}, const char * @var{password})
diff --git a/doc/functions/gnutls_certificate_set_x509_system_trust.short b/doc/functions/gnutls_certificate_set_x509_system_trust.short
new file mode 100644 (file)
index 0000000..2aa0973
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_system_trust} (gnutls_certificate_credentials_t @var{cred})
diff --git a/doc/functions/gnutls_certificate_set_x509_trust.short b/doc/functions/gnutls_certificate_set_x509_trust.short
new file mode 100644 (file)
index 0000000..9b57ad7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_trust} (gnutls_certificate_credentials_t @var{res}, gnutls_x509_crt_t * @var{ca_list}, int @var{ca_list_size})
diff --git a/doc/functions/gnutls_certificate_set_x509_trust_file.short b/doc/functions/gnutls_certificate_set_x509_trust_file.short
new file mode 100644 (file)
index 0000000..db33472
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_trust_file} (gnutls_certificate_credentials_t @var{cred}, const char * @var{cafile}, gnutls_x509_crt_fmt_t @var{type})
diff --git a/doc/functions/gnutls_certificate_set_x509_trust_mem.short b/doc/functions/gnutls_certificate_set_x509_trust_mem.short
new file mode 100644 (file)
index 0000000..94d4885
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_set_x509_trust_mem} (gnutls_certificate_credentials_t @var{res}, const gnutls_datum_t * @var{ca}, gnutls_x509_crt_fmt_t @var{type})
diff --git a/doc/functions/gnutls_certificate_type_get.short b/doc/functions/gnutls_certificate_type_get.short
new file mode 100644 (file)
index 0000000..2c5d5e5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_certificate_type_t} @ref{gnutls_certificate_type_get} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_certificate_type_get_id.short b/doc/functions/gnutls_certificate_type_get_id.short
new file mode 100644 (file)
index 0000000..d258f8e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_certificate_type_t} @ref{gnutls_certificate_type_get_id} (const char * @var{name})
diff --git a/doc/functions/gnutls_certificate_type_get_name.short b/doc/functions/gnutls_certificate_type_get_name.short
new file mode 100644 (file)
index 0000000..a3bf131
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_certificate_type_get_name} (gnutls_certificate_type_t @var{type})
diff --git a/doc/functions/gnutls_certificate_type_list.short b/doc/functions/gnutls_certificate_type_list.short
new file mode 100644 (file)
index 0000000..1e20fdf
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_certificate_type_t *} @ref{gnutls_certificate_type_list} ( @var{void})
diff --git a/doc/functions/gnutls_certificate_type_set_priority.short b/doc/functions/gnutls_certificate_type_set_priority.short
new file mode 100644 (file)
index 0000000..150c509
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_type_set_priority} (gnutls_session_t @var{session}, const int * @var{list})
diff --git a/doc/functions/gnutls_certificate_verify_peers2.short b/doc/functions/gnutls_certificate_verify_peers2.short
new file mode 100644 (file)
index 0000000..644b6a6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_certificate_verify_peers2} (gnutls_session_t @var{session}, unsigned int * @var{status})
diff --git a/doc/functions/gnutls_check_version.short b/doc/functions/gnutls_check_version.short
new file mode 100644 (file)
index 0000000..b5e135b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_check_version} (const char * @var{req_version})
diff --git a/doc/functions/gnutls_cipher_add_auth.short b/doc/functions/gnutls_cipher_add_auth.short
new file mode 100644 (file)
index 0000000..23042c7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_add_auth} (gnutls_cipher_hd_t @var{handle}, const void * @var{text}, size_t @var{text_size})
diff --git a/doc/functions/gnutls_cipher_decrypt.short b/doc/functions/gnutls_cipher_decrypt.short
new file mode 100644 (file)
index 0000000..bd716ec
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_decrypt} (gnutls_cipher_hd_t @var{handle}, void * @var{ciphertext}, size_t @var{ciphertextlen})
diff --git a/doc/functions/gnutls_cipher_decrypt2.short b/doc/functions/gnutls_cipher_decrypt2.short
new file mode 100644 (file)
index 0000000..c9e305b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_decrypt2} (gnutls_cipher_hd_t @var{handle}, const void * @var{ciphertext}, size_t @var{ciphertextlen}, void * @var{text}, size_t @var{textlen})
diff --git a/doc/functions/gnutls_cipher_deinit.short b/doc/functions/gnutls_cipher_deinit.short
new file mode 100644 (file)
index 0000000..ad8850a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_cipher_deinit} (gnutls_cipher_hd_t @var{handle})
diff --git a/doc/functions/gnutls_cipher_encrypt.short b/doc/functions/gnutls_cipher_encrypt.short
new file mode 100644 (file)
index 0000000..d84a025
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_encrypt} (gnutls_cipher_hd_t @var{handle}, void * @var{text}, size_t @var{textlen})
diff --git a/doc/functions/gnutls_cipher_encrypt2.short b/doc/functions/gnutls_cipher_encrypt2.short
new file mode 100644 (file)
index 0000000..735bbf2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_encrypt2} (gnutls_cipher_hd_t @var{handle}, const void * @var{text}, size_t @var{textlen}, void * @var{ciphertext}, size_t @var{ciphertextlen})
diff --git a/doc/functions/gnutls_cipher_get.short b/doc/functions/gnutls_cipher_get.short
new file mode 100644 (file)
index 0000000..d997acb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_cipher_algorithm_t} @ref{gnutls_cipher_get} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_cipher_get_block_size.short b/doc/functions/gnutls_cipher_get_block_size.short
new file mode 100644 (file)
index 0000000..d8299c5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_get_block_size} (gnutls_cipher_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_cipher_get_id.short b/doc/functions/gnutls_cipher_get_id.short
new file mode 100644 (file)
index 0000000..d75c741
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_cipher_algorithm_t} @ref{gnutls_cipher_get_id} (const char * @var{name})
diff --git a/doc/functions/gnutls_cipher_get_key_size.short b/doc/functions/gnutls_cipher_get_key_size.short
new file mode 100644 (file)
index 0000000..6953a5d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{size_t} @ref{gnutls_cipher_get_key_size} (gnutls_cipher_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_cipher_get_name.short b/doc/functions/gnutls_cipher_get_name.short
new file mode 100644 (file)
index 0000000..ba80fa6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_cipher_get_name} (gnutls_cipher_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_cipher_init.short b/doc/functions/gnutls_cipher_init.short
new file mode 100644 (file)
index 0000000..209eacb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_init} (gnutls_cipher_hd_t * @var{handle}, gnutls_cipher_algorithm_t @var{cipher}, const gnutls_datum_t * @var{key}, const gnutls_datum_t * @var{iv})
diff --git a/doc/functions/gnutls_cipher_list.short b/doc/functions/gnutls_cipher_list.short
new file mode 100644 (file)
index 0000000..b8b687a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_cipher_algorithm_t *} @ref{gnutls_cipher_list} ( @var{void})
diff --git a/doc/functions/gnutls_cipher_set_iv.short b/doc/functions/gnutls_cipher_set_iv.short
new file mode 100644 (file)
index 0000000..d134b03
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_cipher_set_iv} (gnutls_cipher_hd_t @var{handle}, void * @var{iv}, size_t @var{ivlen})
diff --git a/doc/functions/gnutls_cipher_set_priority.short b/doc/functions/gnutls_cipher_set_priority.short
new file mode 100644 (file)
index 0000000..a775819
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_set_priority} (gnutls_session_t @var{session}, const int * @var{list})
diff --git a/doc/functions/gnutls_cipher_suite_get_name.short b/doc/functions/gnutls_cipher_suite_get_name.short
new file mode 100644 (file)
index 0000000..0196257
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_cipher_suite_get_name} (gnutls_kx_algorithm_t @var{kx_algorithm}, gnutls_cipher_algorithm_t @var{cipher_algorithm}, gnutls_mac_algorithm_t @var{mac_algorithm})
diff --git a/doc/functions/gnutls_cipher_suite_info.short b/doc/functions/gnutls_cipher_suite_info.short
new file mode 100644 (file)
index 0000000..77b3450
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_cipher_suite_info} (size_t @var{idx}, unsigned char * @var{cs_id}, gnutls_kx_algorithm_t * @var{kx}, gnutls_cipher_algorithm_t * @var{cipher}, gnutls_mac_algorithm_t * @var{mac}, gnutls_protocol_t * @var{min_version})
diff --git a/doc/functions/gnutls_cipher_tag.short b/doc/functions/gnutls_cipher_tag.short
new file mode 100644 (file)
index 0000000..0af174f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_cipher_tag} (gnutls_cipher_hd_t @var{handle}, void * @var{tag}, size_t @var{tag_size})
diff --git a/doc/functions/gnutls_compression_get.short b/doc/functions/gnutls_compression_get.short
new file mode 100644 (file)
index 0000000..4f38255
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_compression_method_t} @ref{gnutls_compression_get} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_compression_get_id.short b/doc/functions/gnutls_compression_get_id.short
new file mode 100644 (file)
index 0000000..38d8e99
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_compression_method_t} @ref{gnutls_compression_get_id} (const char * @var{name})
diff --git a/doc/functions/gnutls_compression_get_name.short b/doc/functions/gnutls_compression_get_name.short
new file mode 100644 (file)
index 0000000..0b282e6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_compression_get_name} (gnutls_compression_method_t @var{algorithm})
diff --git a/doc/functions/gnutls_compression_list.short b/doc/functions/gnutls_compression_list.short
new file mode 100644 (file)
index 0000000..2fb1f25
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_compression_method_t *} @ref{gnutls_compression_list} ( @var{void})
diff --git a/doc/functions/gnutls_compression_set_priority.short b/doc/functions/gnutls_compression_set_priority.short
new file mode 100644 (file)
index 0000000..d57206c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_compression_set_priority} (gnutls_session_t @var{session}, const int * @var{list})
diff --git a/doc/functions/gnutls_credentials_clear.short b/doc/functions/gnutls_credentials_clear.short
new file mode 100644 (file)
index 0000000..188bcfa
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_credentials_clear} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_credentials_set.short b/doc/functions/gnutls_credentials_set.short
new file mode 100644 (file)
index 0000000..8c882dd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_credentials_set} (gnutls_session_t @var{session}, gnutls_credentials_type_t @var{type}, void * @var{cred})
diff --git a/doc/functions/gnutls_db_check_entry.short b/doc/functions/gnutls_db_check_entry.short
new file mode 100644 (file)
index 0000000..9aa2088
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_db_check_entry} (gnutls_session_t @var{session}, gnutls_datum_t @var{session_entry})
diff --git a/doc/functions/gnutls_db_get_ptr.short b/doc/functions/gnutls_db_get_ptr.short
new file mode 100644 (file)
index 0000000..5447077
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void *} @ref{gnutls_db_get_ptr} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_db_remove_session.short b/doc/functions/gnutls_db_remove_session.short
new file mode 100644 (file)
index 0000000..dcd72f5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_db_remove_session} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_db_set_cache_expiration.short b/doc/functions/gnutls_db_set_cache_expiration.short
new file mode 100644 (file)
index 0000000..65cb5fa
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_db_set_cache_expiration} (gnutls_session_t @var{session}, int @var{seconds})
diff --git a/doc/functions/gnutls_db_set_ptr.short b/doc/functions/gnutls_db_set_ptr.short
new file mode 100644 (file)
index 0000000..72dc716
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_db_set_ptr} (gnutls_session_t @var{session}, void * @var{ptr})
diff --git a/doc/functions/gnutls_db_set_remove_function.short b/doc/functions/gnutls_db_set_remove_function.short
new file mode 100644 (file)
index 0000000..bf9dd77
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_db_set_remove_function} (gnutls_session_t @var{session}, gnutls_db_remove_func @var{rem_func})
diff --git a/doc/functions/gnutls_db_set_retrieve_function.short b/doc/functions/gnutls_db_set_retrieve_function.short
new file mode 100644 (file)
index 0000000..d8b029b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_db_set_retrieve_function} (gnutls_session_t @var{session}, gnutls_db_retr_func @var{retr_func})
diff --git a/doc/functions/gnutls_db_set_store_function.short b/doc/functions/gnutls_db_set_store_function.short
new file mode 100644 (file)
index 0000000..5d071e4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_db_set_store_function} (gnutls_session_t @var{session}, gnutls_db_store_func @var{store_func})
diff --git a/doc/functions/gnutls_deinit.short b/doc/functions/gnutls_deinit.short
new file mode 100644 (file)
index 0000000..a143b26
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_deinit} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_dh_get_group.short b/doc/functions/gnutls_dh_get_group.short
new file mode 100644 (file)
index 0000000..564c905
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_get_group} (gnutls_session_t @var{session}, gnutls_datum_t * @var{raw_gen}, gnutls_datum_t * @var{raw_prime})
diff --git a/doc/functions/gnutls_dh_get_peers_public_bits.short b/doc/functions/gnutls_dh_get_peers_public_bits.short
new file mode 100644 (file)
index 0000000..7a1e69a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_get_peers_public_bits} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_dh_get_prime_bits.short b/doc/functions/gnutls_dh_get_prime_bits.short
new file mode 100644 (file)
index 0000000..4e1c4bd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_get_prime_bits} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_dh_get_pubkey.short b/doc/functions/gnutls_dh_get_pubkey.short
new file mode 100644 (file)
index 0000000..d8d51ff
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_get_pubkey} (gnutls_session_t @var{session}, gnutls_datum_t * @var{raw_key})
diff --git a/doc/functions/gnutls_dh_get_secret_bits.short b/doc/functions/gnutls_dh_get_secret_bits.short
new file mode 100644 (file)
index 0000000..6937335
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_get_secret_bits} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_dh_params_cpy.short b/doc/functions/gnutls_dh_params_cpy.short
new file mode 100644 (file)
index 0000000..3b7ecb7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_params_cpy} (gnutls_dh_params_t @var{dst}, gnutls_dh_params_t @var{src})
diff --git a/doc/functions/gnutls_dh_params_deinit.short b/doc/functions/gnutls_dh_params_deinit.short
new file mode 100644 (file)
index 0000000..c7e0a82
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_dh_params_deinit} (gnutls_dh_params_t @var{dh_params})
diff --git a/doc/functions/gnutls_dh_params_export_pkcs3.short b/doc/functions/gnutls_dh_params_export_pkcs3.short
new file mode 100644 (file)
index 0000000..ee47644
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_params_export_pkcs3} (gnutls_dh_params_t @var{params}, gnutls_x509_crt_fmt_t @var{format}, unsigned char * @var{params_data}, size_t * @var{params_data_size})
diff --git a/doc/functions/gnutls_dh_params_export_raw.short b/doc/functions/gnutls_dh_params_export_raw.short
new file mode 100644 (file)
index 0000000..5447b51
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_params_export_raw} (gnutls_dh_params_t @var{params}, gnutls_datum_t * @var{prime}, gnutls_datum_t * @var{generator}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_dh_params_generate2.short b/doc/functions/gnutls_dh_params_generate2.short
new file mode 100644 (file)
index 0000000..1d382cb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_params_generate2} (gnutls_dh_params_t @var{params}, unsigned int @var{bits})
diff --git a/doc/functions/gnutls_dh_params_import_pkcs3.short b/doc/functions/gnutls_dh_params_import_pkcs3.short
new file mode 100644 (file)
index 0000000..64dac82
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_params_import_pkcs3} (gnutls_dh_params_t @var{params}, const gnutls_datum_t * @var{pkcs3_params}, gnutls_x509_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_dh_params_import_raw.short b/doc/functions/gnutls_dh_params_import_raw.short
new file mode 100644 (file)
index 0000000..4a5a21a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_params_import_raw} (gnutls_dh_params_t @var{dh_params}, const gnutls_datum_t * @var{prime}, const gnutls_datum_t * @var{generator})
diff --git a/doc/functions/gnutls_dh_params_init.short b/doc/functions/gnutls_dh_params_init.short
new file mode 100644 (file)
index 0000000..fc7afe9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dh_params_init} (gnutls_dh_params_t * @var{dh_params})
diff --git a/doc/functions/gnutls_dh_set_prime_bits.short b/doc/functions/gnutls_dh_set_prime_bits.short
new file mode 100644 (file)
index 0000000..7bb86b2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_dh_set_prime_bits} (gnutls_session_t @var{session}, unsigned int @var{bits})
diff --git a/doc/functions/gnutls_dtls_cookie_send.short b/doc/functions/gnutls_dtls_cookie_send.short
new file mode 100644 (file)
index 0000000..279be12
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dtls_cookie_send} (gnutls_datum_t* @var{key}, void* @var{client_data}, size_t @var{client_data_size}, gnutls_dtls_prestate_st* @var{prestate}, gnutls_transport_ptr_t @var{ptr}, gnutls_push_func @var{push_func})
diff --git a/doc/functions/gnutls_dtls_cookie_verify.short b/doc/functions/gnutls_dtls_cookie_verify.short
new file mode 100644 (file)
index 0000000..dcca485
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dtls_cookie_verify} (gnutls_datum_t* @var{key}, void* @var{client_data}, size_t @var{client_data_size}, void* @var{_msg}, size_t @var{msg_size}, gnutls_dtls_prestate_st* @var{prestate})
diff --git a/doc/functions/gnutls_dtls_get_data_mtu.short b/doc/functions/gnutls_dtls_get_data_mtu.short
new file mode 100644 (file)
index 0000000..3e1f9d5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{unsigned int} @ref{gnutls_dtls_get_data_mtu} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_dtls_get_mtu.short b/doc/functions/gnutls_dtls_get_mtu.short
new file mode 100644 (file)
index 0000000..e9df51a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{unsigned int} @ref{gnutls_dtls_get_mtu} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_dtls_get_timeout.short b/doc/functions/gnutls_dtls_get_timeout.short
new file mode 100644 (file)
index 0000000..d763e58
--- /dev/null
@@ -0,0 +1 @@
+@item @var{unsigned int} @ref{gnutls_dtls_get_timeout} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_dtls_prestate_set.short b/doc/functions/gnutls_dtls_prestate_set.short
new file mode 100644 (file)
index 0000000..d7ce3ac
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_dtls_prestate_set} (gnutls_session_t @var{session}, gnutls_dtls_prestate_st* @var{prestate})
diff --git a/doc/functions/gnutls_dtls_set_data_mtu.short b/doc/functions/gnutls_dtls_set_data_mtu.short
new file mode 100644 (file)
index 0000000..f4faf00
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_dtls_set_data_mtu} (gnutls_session_t @var{session}, unsigned int @var{mtu})
diff --git a/doc/functions/gnutls_dtls_set_mtu.short b/doc/functions/gnutls_dtls_set_mtu.short
new file mode 100644 (file)
index 0000000..29bdbfc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_dtls_set_mtu} (gnutls_session_t @var{session}, unsigned int @var{mtu})
diff --git a/doc/functions/gnutls_dtls_set_timeouts.short b/doc/functions/gnutls_dtls_set_timeouts.short
new file mode 100644 (file)
index 0000000..a9b76df
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_dtls_set_timeouts} (gnutls_session_t @var{session}, unsigned int @var{retrans_timeout}, unsigned int @var{total_timeout})
diff --git a/doc/functions/gnutls_ecc_curve_get.short b/doc/functions/gnutls_ecc_curve_get.short
new file mode 100644 (file)
index 0000000..a90064c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_ecc_curve_t} @ref{gnutls_ecc_curve_get} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_ecc_curve_get_name.short b/doc/functions/gnutls_ecc_curve_get_name.short
new file mode 100644 (file)
index 0000000..bbaafdf
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_ecc_curve_get_name} (gnutls_ecc_curve_t @var{curve})
diff --git a/doc/functions/gnutls_ecc_curve_get_size.short b/doc/functions/gnutls_ecc_curve_get_size.short
new file mode 100644 (file)
index 0000000..d7733b2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ecc_curve_get_size} (gnutls_ecc_curve_t @var{curve})
diff --git a/doc/functions/gnutls_ecc_curve_list.short b/doc/functions/gnutls_ecc_curve_list.short
new file mode 100644 (file)
index 0000000..05cd043
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_ecc_curve_t *} @ref{gnutls_ecc_curve_list} ( @var{void})
diff --git a/doc/functions/gnutls_error_is_fatal.short b/doc/functions/gnutls_error_is_fatal.short
new file mode 100644 (file)
index 0000000..4f1c377
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_error_is_fatal} (int @var{error})
diff --git a/doc/functions/gnutls_error_to_alert.short b/doc/functions/gnutls_error_to_alert.short
new file mode 100644 (file)
index 0000000..2b5a879
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_error_to_alert} (int @var{err}, int * @var{level})
diff --git a/doc/functions/gnutls_fingerprint.short b/doc/functions/gnutls_fingerprint.short
new file mode 100644 (file)
index 0000000..3f8c603
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_fingerprint} (gnutls_digest_algorithm_t @var{algo}, const gnutls_datum_t * @var{data}, void * @var{result}, size_t * @var{result_size})
diff --git a/doc/functions/gnutls_global_deinit.short b/doc/functions/gnutls_global_deinit.short
new file mode 100644 (file)
index 0000000..3c88cf2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_global_deinit} ( @var{void})
diff --git a/doc/functions/gnutls_global_init.short b/doc/functions/gnutls_global_init.short
new file mode 100644 (file)
index 0000000..24b4fb3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_global_init} ( @var{void})
diff --git a/doc/functions/gnutls_global_set_audit_log_function.short b/doc/functions/gnutls_global_set_audit_log_function.short
new file mode 100644 (file)
index 0000000..849e246
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_global_set_audit_log_function} (gnutls_audit_log_func @var{log_func})
diff --git a/doc/functions/gnutls_global_set_log_function.short b/doc/functions/gnutls_global_set_log_function.short
new file mode 100644 (file)
index 0000000..49c7da7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_global_set_log_function} (gnutls_log_func @var{log_func})
diff --git a/doc/functions/gnutls_global_set_log_level.short b/doc/functions/gnutls_global_set_log_level.short
new file mode 100644 (file)
index 0000000..7f9fce9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_global_set_log_level} (int @var{level})
diff --git a/doc/functions/gnutls_global_set_mem_functions.short b/doc/functions/gnutls_global_set_mem_functions.short
new file mode 100644 (file)
index 0000000..e33c1b2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_global_set_mem_functions} (gnutls_alloc_function @var{alloc_func}, gnutls_alloc_function @var{secure_alloc_func}, gnutls_is_secure_function @var{is_secure_func}, gnutls_realloc_function @var{realloc_func}, gnutls_free_function @var{free_func})
diff --git a/doc/functions/gnutls_global_set_mutex.short b/doc/functions/gnutls_global_set_mutex.short
new file mode 100644 (file)
index 0000000..0a05fec
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_global_set_mutex} (mutex_init_func @var{init}, mutex_deinit_func @var{deinit}, mutex_lock_func @var{lock}, mutex_unlock_func @var{unlock})
diff --git a/doc/functions/gnutls_global_set_time_function.short b/doc/functions/gnutls_global_set_time_function.short
new file mode 100644 (file)
index 0000000..cf852ca
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_global_set_time_function} (gnutls_time_func @var{time_func})
diff --git a/doc/functions/gnutls_handshake.short b/doc/functions/gnutls_handshake.short
new file mode 100644 (file)
index 0000000..ff97b15
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_handshake} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_handshake_get_last_in.short b/doc/functions/gnutls_handshake_get_last_in.short
new file mode 100644 (file)
index 0000000..16518a4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_handshake_description_t} @ref{gnutls_handshake_get_last_in} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_handshake_get_last_out.short b/doc/functions/gnutls_handshake_get_last_out.short
new file mode 100644 (file)
index 0000000..6902df8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_handshake_description_t} @ref{gnutls_handshake_get_last_out} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_handshake_set_max_packet_length.short b/doc/functions/gnutls_handshake_set_max_packet_length.short
new file mode 100644 (file)
index 0000000..6f9a6be
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_handshake_set_max_packet_length} (gnutls_session_t @var{session}, size_t @var{max})
diff --git a/doc/functions/gnutls_handshake_set_post_client_hello_function.short b/doc/functions/gnutls_handshake_set_post_client_hello_function.short
new file mode 100644 (file)
index 0000000..906b740
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_handshake_set_post_client_hello_function} (gnutls_session_t @var{session}, gnutls_handshake_post_client_hello_func                                                  @var{func})
diff --git a/doc/functions/gnutls_handshake_set_private_extensions.short b/doc/functions/gnutls_handshake_set_private_extensions.short
new file mode 100644 (file)
index 0000000..25c2315
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_handshake_set_private_extensions} (gnutls_session_t @var{session}, int @var{allow})
diff --git a/doc/functions/gnutls_hash.short b/doc/functions/gnutls_hash.short
new file mode 100644 (file)
index 0000000..ecf1e50
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hash} (gnutls_hash_hd_t @var{handle}, const void * @var{text}, size_t @var{textlen})
diff --git a/doc/functions/gnutls_hash_deinit.short b/doc/functions/gnutls_hash_deinit.short
new file mode 100644 (file)
index 0000000..eafa7c4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_hash_deinit} (gnutls_hash_hd_t @var{handle}, void * @var{digest})
diff --git a/doc/functions/gnutls_hash_fast.short b/doc/functions/gnutls_hash_fast.short
new file mode 100644 (file)
index 0000000..6bf3f5a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hash_fast} (gnutls_digest_algorithm_t @var{algorithm}, const void * @var{text}, size_t @var{textlen}, void * @var{digest})
diff --git a/doc/functions/gnutls_hash_get_len.short b/doc/functions/gnutls_hash_get_len.short
new file mode 100644 (file)
index 0000000..bb85f9c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hash_get_len} (gnutls_digest_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_hash_init.short b/doc/functions/gnutls_hash_init.short
new file mode 100644 (file)
index 0000000..2210312
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hash_init} (gnutls_hash_hd_t * @var{dig}, gnutls_digest_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_hash_output.short b/doc/functions/gnutls_hash_output.short
new file mode 100644 (file)
index 0000000..0159451
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_hash_output} (gnutls_hash_hd_t @var{handle}, void * @var{digest})
diff --git a/doc/functions/gnutls_hex2bin.short b/doc/functions/gnutls_hex2bin.short
new file mode 100644 (file)
index 0000000..e9b84bc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hex2bin} (const char * @var{hex_data}, size_t @var{hex_size}, void * @var{bin_data}, size_t * @var{bin_size})
diff --git a/doc/functions/gnutls_hex_decode.short b/doc/functions/gnutls_hex_decode.short
new file mode 100644 (file)
index 0000000..3bc100e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hex_decode} (const gnutls_datum_t * @var{hex_data}, void * @var{result}, size_t * @var{result_size})
diff --git a/doc/functions/gnutls_hex_encode.short b/doc/functions/gnutls_hex_encode.short
new file mode 100644 (file)
index 0000000..2481dde
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hex_encode} (const gnutls_datum_t * @var{data}, char * @var{result}, size_t * @var{result_size})
diff --git a/doc/functions/gnutls_hmac.short b/doc/functions/gnutls_hmac.short
new file mode 100644 (file)
index 0000000..0cb68e4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hmac} (gnutls_hmac_hd_t @var{handle}, const void * @var{text}, size_t @var{textlen})
diff --git a/doc/functions/gnutls_hmac_deinit.short b/doc/functions/gnutls_hmac_deinit.short
new file mode 100644 (file)
index 0000000..faf34bc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_hmac_deinit} (gnutls_hmac_hd_t @var{handle}, void * @var{digest})
diff --git a/doc/functions/gnutls_hmac_fast.short b/doc/functions/gnutls_hmac_fast.short
new file mode 100644 (file)
index 0000000..12b7741
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hmac_fast} (gnutls_mac_algorithm_t @var{algorithm}, const void * @var{key}, size_t @var{keylen}, const void * @var{text}, size_t @var{textlen}, void * @var{digest})
diff --git a/doc/functions/gnutls_hmac_get_len.short b/doc/functions/gnutls_hmac_get_len.short
new file mode 100644 (file)
index 0000000..740e4e4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hmac_get_len} (gnutls_mac_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_hmac_init.short b/doc/functions/gnutls_hmac_init.short
new file mode 100644 (file)
index 0000000..64d02ea
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_hmac_init} (gnutls_hmac_hd_t * @var{dig}, gnutls_mac_algorithm_t @var{algorithm}, const void * @var{key}, size_t @var{keylen})
diff --git a/doc/functions/gnutls_hmac_output.short b/doc/functions/gnutls_hmac_output.short
new file mode 100644 (file)
index 0000000..e3d2b28
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_hmac_output} (gnutls_hmac_hd_t @var{handle}, void * @var{digest})
index f26e42c..ee0b9a1 100644 (file)
@@ -15,7 +15,7 @@ be free'd by calling @code{gnutls_deinit()} .  Returns @code{GNUTLS_E_SUCCESS}
  @code{flags} can be one of @code{GNUTLS_CLIENT}  and @code{GNUTLS_SERVER} . For a DTLS
 entity, the flags @code{GNUTLS_DATAGRAM}  and  @code{GNUTLS_NONBLOCK}  are
 also available. The latter flag will enable a non-blocking
-operation of the DTLS timers.
+operation of the DTLS timers. 
 
 @strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, or an error code.
 @end deftypefun
diff --git a/doc/functions/gnutls_init.short b/doc/functions/gnutls_init.short
new file mode 100644 (file)
index 0000000..4ef5b48
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_init} (gnutls_session_t * @var{session}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_key_generate.short b/doc/functions/gnutls_key_generate.short
new file mode 100644 (file)
index 0000000..235c7ff
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_key_generate} (gnutls_datum_t * @var{key}, unsigned int @var{key_size})
diff --git a/doc/functions/gnutls_kx_get.short b/doc/functions/gnutls_kx_get.short
new file mode 100644 (file)
index 0000000..7c8f5b5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_kx_algorithm_t} @ref{gnutls_kx_get} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_kx_get_id.short b/doc/functions/gnutls_kx_get_id.short
new file mode 100644 (file)
index 0000000..4b5f0bc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_kx_algorithm_t} @ref{gnutls_kx_get_id} (const char * @var{name})
diff --git a/doc/functions/gnutls_kx_get_name.short b/doc/functions/gnutls_kx_get_name.short
new file mode 100644 (file)
index 0000000..c974313
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_kx_get_name} (gnutls_kx_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_kx_list.short b/doc/functions/gnutls_kx_list.short
new file mode 100644 (file)
index 0000000..6b74563
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_kx_algorithm_t *} @ref{gnutls_kx_list} ( @var{void})
diff --git a/doc/functions/gnutls_kx_set_priority.short b/doc/functions/gnutls_kx_set_priority.short
new file mode 100644 (file)
index 0000000..80717f7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_kx_set_priority} (gnutls_session_t @var{session}, const int * @var{list})
diff --git a/doc/functions/gnutls_mac_get.short b/doc/functions/gnutls_mac_get.short
new file mode 100644 (file)
index 0000000..6a39392
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_mac_algorithm_t} @ref{gnutls_mac_get} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_mac_get_id.short b/doc/functions/gnutls_mac_get_id.short
new file mode 100644 (file)
index 0000000..56579a9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_mac_algorithm_t} @ref{gnutls_mac_get_id} (const char * @var{name})
diff --git a/doc/functions/gnutls_mac_get_key_size.short b/doc/functions/gnutls_mac_get_key_size.short
new file mode 100644 (file)
index 0000000..a428da7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{size_t} @ref{gnutls_mac_get_key_size} (gnutls_mac_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_mac_get_name.short b/doc/functions/gnutls_mac_get_name.short
new file mode 100644 (file)
index 0000000..de97e22
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_mac_get_name} (gnutls_mac_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_mac_list.short b/doc/functions/gnutls_mac_list.short
new file mode 100644 (file)
index 0000000..f94d7ed
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_mac_algorithm_t *} @ref{gnutls_mac_list} ( @var{void})
diff --git a/doc/functions/gnutls_mac_set_priority.short b/doc/functions/gnutls_mac_set_priority.short
new file mode 100644 (file)
index 0000000..71e7382
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_mac_set_priority} (gnutls_session_t @var{session}, const int * @var{list})
diff --git a/doc/functions/gnutls_ocsp_req_add_cert.short b/doc/functions/gnutls_ocsp_req_add_cert.short
new file mode 100644 (file)
index 0000000..f48c852
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_add_cert} (gnutls_ocsp_req_t @var{req}, gnutls_digest_algorithm_t @var{digest}, gnutls_x509_crt_t @var{issuer}, gnutls_x509_crt_t @var{cert})
diff --git a/doc/functions/gnutls_ocsp_req_add_cert_id.short b/doc/functions/gnutls_ocsp_req_add_cert_id.short
new file mode 100644 (file)
index 0000000..f39a4f9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_add_cert_id} (gnutls_ocsp_req_t @var{req}, gnutls_digest_algorithm_t @var{digest}, const gnutls_datum_t * @var{issuer_name_hash}, const gnutls_datum_t * @var{issuer_key_hash}, const gnutls_datum_t * @var{serial_number})
diff --git a/doc/functions/gnutls_ocsp_req_deinit.short b/doc/functions/gnutls_ocsp_req_deinit.short
new file mode 100644 (file)
index 0000000..573bda6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_ocsp_req_deinit} (gnutls_ocsp_req_t @var{req})
diff --git a/doc/functions/gnutls_ocsp_req_export.short b/doc/functions/gnutls_ocsp_req_export.short
new file mode 100644 (file)
index 0000000..16e1769
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_export} (gnutls_ocsp_req_t @var{req}, gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_ocsp_req_get_cert_id.short b/doc/functions/gnutls_ocsp_req_get_cert_id.short
new file mode 100644 (file)
index 0000000..db0bffa
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_get_cert_id} (gnutls_ocsp_req_t @var{req}, unsigned @var{indx}, gnutls_digest_algorithm_t * @var{digest}, gnutls_datum_t * @var{issuer_name_hash}, gnutls_datum_t * @var{issuer_key_hash}, gnutls_datum_t * @var{serial_number})
diff --git a/doc/functions/gnutls_ocsp_req_get_extension.short b/doc/functions/gnutls_ocsp_req_get_extension.short
new file mode 100644 (file)
index 0000000..2d06500
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_get_extension} (gnutls_ocsp_req_t @var{req}, unsigned @var{indx}, gnutls_datum_t * @var{oid}, unsigned int * @var{critical}, gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_ocsp_req_get_nonce.short b/doc/functions/gnutls_ocsp_req_get_nonce.short
new file mode 100644 (file)
index 0000000..f97d22c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_get_nonce} (gnutls_ocsp_req_t @var{req}, unsigned int * @var{critical}, gnutls_datum_t * @var{nonce})
diff --git a/doc/functions/gnutls_ocsp_req_get_version.short b/doc/functions/gnutls_ocsp_req_get_version.short
new file mode 100644 (file)
index 0000000..c345cfd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_get_version} (gnutls_ocsp_req_t @var{req})
diff --git a/doc/functions/gnutls_ocsp_req_import.short b/doc/functions/gnutls_ocsp_req_import.short
new file mode 100644 (file)
index 0000000..ee212ca
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_import} (gnutls_ocsp_req_t @var{req}, const gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_ocsp_req_init.short b/doc/functions/gnutls_ocsp_req_init.short
new file mode 100644 (file)
index 0000000..e394caf
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_init} (gnutls_ocsp_req_t * @var{req})
diff --git a/doc/functions/gnutls_ocsp_req_print.short b/doc/functions/gnutls_ocsp_req_print.short
new file mode 100644 (file)
index 0000000..d71a530
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_print} (gnutls_ocsp_req_t @var{req}, gnutls_ocsp_print_formats_t @var{format}, gnutls_datum_t * @var{out})
diff --git a/doc/functions/gnutls_ocsp_req_randomize_nonce.short b/doc/functions/gnutls_ocsp_req_randomize_nonce.short
new file mode 100644 (file)
index 0000000..5e02ecd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_randomize_nonce} (gnutls_ocsp_req_t @var{req})
diff --git a/doc/functions/gnutls_ocsp_req_set_extension.short b/doc/functions/gnutls_ocsp_req_set_extension.short
new file mode 100644 (file)
index 0000000..52259b8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_set_extension} (gnutls_ocsp_req_t @var{req}, const char * @var{oid}, unsigned int @var{critical}, const gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_ocsp_req_set_nonce.short b/doc/functions/gnutls_ocsp_req_set_nonce.short
new file mode 100644 (file)
index 0000000..2fcddd8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_req_set_nonce} (gnutls_ocsp_req_t @var{req}, unsigned int @var{critical}, const gnutls_datum_t * @var{nonce})
diff --git a/doc/functions/gnutls_ocsp_resp_check_crt b/doc/functions/gnutls_ocsp_resp_check_crt
new file mode 100644 (file)
index 0000000..b3044a1
--- /dev/null
@@ -0,0 +1,17 @@
+
+
+
+
+@deftypefun {int} {gnutls_ocsp_resp_check_crt} (gnutls_ocsp_resp_t @var{resp}, unsigned int @var{indx}, gnutls_x509_crt_t @var{crt})
+@var{resp}: should contain a @code{gnutls_ocsp_resp_t}  structure
+
+@var{indx}: Specifies response number to get. Use (0) to get the first one.
+
+@var{crt}: The certificate to check
+
+This function will check whether the OCSP response
+is about the provided certificate.
+
+@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
+negative error code is returned.  
+@end deftypefun
diff --git a/doc/functions/gnutls_ocsp_resp_check_crt.short b/doc/functions/gnutls_ocsp_resp_check_crt.short
new file mode 100644 (file)
index 0000000..1b485fc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_check_crt} (gnutls_ocsp_resp_t @var{resp}, unsigned int @var{indx}, gnutls_x509_crt_t @var{crt})
diff --git a/doc/functions/gnutls_ocsp_resp_deinit.short b/doc/functions/gnutls_ocsp_resp_deinit.short
new file mode 100644 (file)
index 0000000..d12ca0c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_ocsp_resp_deinit} (gnutls_ocsp_resp_t @var{resp})
diff --git a/doc/functions/gnutls_ocsp_resp_export.short b/doc/functions/gnutls_ocsp_resp_export.short
new file mode 100644 (file)
index 0000000..fb7354f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_export} (gnutls_ocsp_resp_t @var{resp}, gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_ocsp_resp_get_certs.short b/doc/functions/gnutls_ocsp_resp_get_certs.short
new file mode 100644 (file)
index 0000000..0ffeff3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_certs} (gnutls_ocsp_resp_t @var{resp}, gnutls_x509_crt_t ** @var{certs}, size_t * @var{ncerts})
diff --git a/doc/functions/gnutls_ocsp_resp_get_extension.short b/doc/functions/gnutls_ocsp_resp_get_extension.short
new file mode 100644 (file)
index 0000000..d50f766
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_extension} (gnutls_ocsp_resp_t @var{resp}, unsigned @var{indx}, gnutls_datum_t * @var{oid}, unsigned int * @var{critical}, gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_ocsp_resp_get_nonce.short b/doc/functions/gnutls_ocsp_resp_get_nonce.short
new file mode 100644 (file)
index 0000000..e46efb8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_nonce} (gnutls_ocsp_resp_t @var{resp}, unsigned int * @var{critical}, gnutls_datum_t * @var{nonce})
diff --git a/doc/functions/gnutls_ocsp_resp_get_produced.short b/doc/functions/gnutls_ocsp_resp_get_produced.short
new file mode 100644 (file)
index 0000000..408cdb3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_ocsp_resp_get_produced} (gnutls_ocsp_resp_t @var{resp})
diff --git a/doc/functions/gnutls_ocsp_resp_get_responder.short b/doc/functions/gnutls_ocsp_resp_get_responder.short
new file mode 100644 (file)
index 0000000..9afae2d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_responder} (gnutls_ocsp_resp_t @var{resp}, gnutls_datum_t * @var{dn})
diff --git a/doc/functions/gnutls_ocsp_resp_get_response.short b/doc/functions/gnutls_ocsp_resp_get_response.short
new file mode 100644 (file)
index 0000000..cbfdb0c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_response} (gnutls_ocsp_resp_t @var{resp}, gnutls_datum_t * @var{response_type_oid}, gnutls_datum_t * @var{response})
diff --git a/doc/functions/gnutls_ocsp_resp_get_signature.short b/doc/functions/gnutls_ocsp_resp_get_signature.short
new file mode 100644 (file)
index 0000000..3be3a82
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_signature} (gnutls_ocsp_resp_t @var{resp}, gnutls_datum_t * @var{sig})
diff --git a/doc/functions/gnutls_ocsp_resp_get_signature_algorithm.short b/doc/functions/gnutls_ocsp_resp_get_signature_algorithm.short
new file mode 100644 (file)
index 0000000..d88123e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_signature_algorithm} (gnutls_ocsp_resp_t @var{resp})
index f874463..30381ea 100644 (file)
@@ -5,7 +5,7 @@
 @deftypefun {int} {gnutls_ocsp_resp_get_single} (gnutls_ocsp_resp_t @var{resp}, unsigned @var{indx}, gnutls_digest_algorithm_t * @var{digest}, gnutls_datum_t * @var{issuer_name_hash}, gnutls_datum_t * @var{issuer_key_hash}, gnutls_datum_t * @var{serial_number}, unsigned int * @var{cert_status}, time_t * @var{this_update}, time_t * @var{next_update}, time_t * @var{revocation_time}, unsigned int * @var{revocation_reason})
 @var{resp}: should contain a @code{gnutls_ocsp_resp_t}  structure
 
-@var{indx}: Specifies which extension OID to get. Use (0) to get the first one.
+@var{indx}: Specifies response number to get. Use (0) to get the first one.
 
 @var{digest}: output variable with @code{gnutls_digest_algorithm_t}  hash algorithm
 
diff --git a/doc/functions/gnutls_ocsp_resp_get_single.short b/doc/functions/gnutls_ocsp_resp_get_single.short
new file mode 100644 (file)
index 0000000..f428e35
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_single} (gnutls_ocsp_resp_t @var{resp}, unsigned @var{indx}, gnutls_digest_algorithm_t * @var{digest}, gnutls_datum_t * @var{issuer_name_hash}, gnutls_datum_t * @var{issuer_key_hash}, gnutls_datum_t * @var{serial_number}, unsigned int * @var{cert_status}, time_t * @var{this_update}, time_t * @var{next_update}, time_t * @var{revocation_time}, unsigned int * @var{revocation_reason})
diff --git a/doc/functions/gnutls_ocsp_resp_get_status.short b/doc/functions/gnutls_ocsp_resp_get_status.short
new file mode 100644 (file)
index 0000000..b9f8ea0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_status} (gnutls_ocsp_resp_t @var{resp})
diff --git a/doc/functions/gnutls_ocsp_resp_get_version.short b/doc/functions/gnutls_ocsp_resp_get_version.short
new file mode 100644 (file)
index 0000000..ace8ddd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_get_version} (gnutls_ocsp_resp_t @var{resp})
diff --git a/doc/functions/gnutls_ocsp_resp_import.short b/doc/functions/gnutls_ocsp_resp_import.short
new file mode 100644 (file)
index 0000000..9a6eaf4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_import} (gnutls_ocsp_resp_t @var{resp}, const gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_ocsp_resp_init.short b/doc/functions/gnutls_ocsp_resp_init.short
new file mode 100644 (file)
index 0000000..d468f82
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_init} (gnutls_ocsp_resp_t * @var{resp})
diff --git a/doc/functions/gnutls_ocsp_resp_print.short b/doc/functions/gnutls_ocsp_resp_print.short
new file mode 100644 (file)
index 0000000..4ee9071
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_print} (gnutls_ocsp_resp_t @var{resp}, gnutls_ocsp_print_formats_t @var{format}, gnutls_datum_t * @var{out})
diff --git a/doc/functions/gnutls_ocsp_resp_verify.short b/doc/functions/gnutls_ocsp_resp_verify.short
new file mode 100644 (file)
index 0000000..d32ab03
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_verify} (gnutls_ocsp_resp_t @var{resp}, gnutls_x509_trust_list_t @var{trustlist}, unsigned int * @var{verify}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_ocsp_resp_verify_direct.short b/doc/functions/gnutls_ocsp_resp_verify_direct.short
new file mode 100644 (file)
index 0000000..6d4c101
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_ocsp_resp_verify_direct} (gnutls_ocsp_resp_t @var{resp}, gnutls_x509_crt_t @var{issuer}, unsigned int * @var{verify}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_openpgp_crt_check_hostname.short b/doc/functions/gnutls_openpgp_crt_check_hostname.short
new file mode 100644 (file)
index 0000000..58480d1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_check_hostname} (gnutls_openpgp_crt_t @var{key}, const char * @var{hostname})
diff --git a/doc/functions/gnutls_openpgp_crt_deinit.short b/doc/functions/gnutls_openpgp_crt_deinit.short
new file mode 100644 (file)
index 0000000..551c056
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_openpgp_crt_deinit} (gnutls_openpgp_crt_t @var{key})
index a6daf15..1f7dd92 100644 (file)
@@ -7,7 +7,7 @@
 
 @var{format}: One of gnutls_openpgp_crt_fmt_t elements.
 
-@var{output_data}: will contain the key base64 encoded or raw
+@var{output_data}: will contain the raw or base64 encoded key
 
 @var{output_data_size}: holds the size of output_data (and will
 be replaced by the actual size of parameters)
diff --git a/doc/functions/gnutls_openpgp_crt_export.short b/doc/functions/gnutls_openpgp_crt_export.short
new file mode 100644 (file)
index 0000000..ca7bc94
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_export} (gnutls_openpgp_crt_t @var{key}, gnutls_openpgp_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
index 44e3858..21c3e6c 100644 (file)
@@ -7,14 +7,10 @@
 
 @var{keyid}: the struct to save the keyid.
 
-@var{flag}: Non (0) indicates that a valid subkey is always returned.
+@var{flag}: Non-zero indicates that a valid subkey is always returned.
 
 Returns the 64-bit keyID of the first valid OpenPGP subkey marked
-for authentication.  If flag is non (0) and no authentication
-subkey exists, then a valid subkey will be returned even if it is
-not marked for authentication.
-Returns the 64-bit keyID of the first valid OpenPGP subkey marked
-for authentication.  If flag is non (0) and no authentication
+for authentication.  If flag is non-zero and no authentication
 subkey exists, then a valid subkey will be returned even if it is
 not marked for authentication.
 
diff --git a/doc/functions/gnutls_openpgp_crt_get_auth_subkey.short b/doc/functions/gnutls_openpgp_crt_get_auth_subkey.short
new file mode 100644 (file)
index 0000000..c8497c5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_auth_subkey} (gnutls_openpgp_crt_t @var{crt}, gnutls_openpgp_keyid_t @var{keyid}, unsigned int @var{flag})
diff --git a/doc/functions/gnutls_openpgp_crt_get_creation_time.short b/doc/functions/gnutls_openpgp_crt_get_creation_time.short
new file mode 100644 (file)
index 0000000..af77d5c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_openpgp_crt_get_creation_time} (gnutls_openpgp_crt_t @var{key})
diff --git a/doc/functions/gnutls_openpgp_crt_get_expiration_time.short b/doc/functions/gnutls_openpgp_crt_get_expiration_time.short
new file mode 100644 (file)
index 0000000..67dff8e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_openpgp_crt_get_expiration_time} (gnutls_openpgp_crt_t @var{key})
diff --git a/doc/functions/gnutls_openpgp_crt_get_fingerprint.short b/doc/functions/gnutls_openpgp_crt_get_fingerprint.short
new file mode 100644 (file)
index 0000000..ec3bc01
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_fingerprint} (gnutls_openpgp_crt_t @var{key}, void * @var{fpr}, size_t * @var{fprlen})
diff --git a/doc/functions/gnutls_openpgp_crt_get_key_id.short b/doc/functions/gnutls_openpgp_crt_get_key_id.short
new file mode 100644 (file)
index 0000000..3e8aa43
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_key_id} (gnutls_openpgp_crt_t @var{key}, gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_crt_get_key_usage.short b/doc/functions/gnutls_openpgp_crt_get_key_usage.short
new file mode 100644 (file)
index 0000000..aed6e42
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_key_usage} (gnutls_openpgp_crt_t @var{key}, unsigned int * @var{key_usage})
diff --git a/doc/functions/gnutls_openpgp_crt_get_name.short b/doc/functions/gnutls_openpgp_crt_get_name.short
new file mode 100644 (file)
index 0000000..70e1374
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_name} (gnutls_openpgp_crt_t @var{key}, int @var{idx}, char * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_openpgp_crt_get_pk_algorithm.short b/doc/functions/gnutls_openpgp_crt_get_pk_algorithm.short
new file mode 100644 (file)
index 0000000..22ab29f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_pk_algorithm_t} @ref{gnutls_openpgp_crt_get_pk_algorithm} (gnutls_openpgp_crt_t @var{key}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_openpgp_crt_get_pk_dsa_raw.short b/doc/functions/gnutls_openpgp_crt_get_pk_dsa_raw.short
new file mode 100644 (file)
index 0000000..15fe1ae
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_pk_dsa_raw} (gnutls_openpgp_crt_t @var{crt}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{g}, gnutls_datum_t * @var{y})
diff --git a/doc/functions/gnutls_openpgp_crt_get_pk_rsa_raw.short b/doc/functions/gnutls_openpgp_crt_get_pk_rsa_raw.short
new file mode 100644 (file)
index 0000000..e68fd8f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_pk_rsa_raw} (gnutls_openpgp_crt_t @var{crt}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e})
diff --git a/doc/functions/gnutls_openpgp_crt_get_preferred_key_id.short b/doc/functions/gnutls_openpgp_crt_get_preferred_key_id.short
new file mode 100644 (file)
index 0000000..9b5fc15
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_preferred_key_id} (gnutls_openpgp_crt_t @var{key}, gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_crt_get_revoked_status.short b/doc/functions/gnutls_openpgp_crt_get_revoked_status.short
new file mode 100644 (file)
index 0000000..be9e927
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_revoked_status} (gnutls_openpgp_crt_t @var{key})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_count.short b/doc/functions/gnutls_openpgp_crt_get_subkey_count.short
new file mode 100644 (file)
index 0000000..63a5c66
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_subkey_count} (gnutls_openpgp_crt_t @var{key})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_creation_time.short b/doc/functions/gnutls_openpgp_crt_get_subkey_creation_time.short
new file mode 100644 (file)
index 0000000..e6d86ce
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_openpgp_crt_get_subkey_creation_time} (gnutls_openpgp_crt_t @var{key}, unsigned int @var{idx})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_expiration_time.short b/doc/functions/gnutls_openpgp_crt_get_subkey_expiration_time.short
new file mode 100644 (file)
index 0000000..44fb18e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_openpgp_crt_get_subkey_expiration_time} (gnutls_openpgp_crt_t @var{key}, unsigned int @var{idx})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_fingerprint.short b/doc/functions/gnutls_openpgp_crt_get_subkey_fingerprint.short
new file mode 100644 (file)
index 0000000..03e5618
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_subkey_fingerprint} (gnutls_openpgp_crt_t @var{key}, unsigned int @var{idx}, void * @var{fpr}, size_t * @var{fprlen})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_id.short b/doc/functions/gnutls_openpgp_crt_get_subkey_id.short
new file mode 100644 (file)
index 0000000..2119f01
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_subkey_id} (gnutls_openpgp_crt_t @var{key}, unsigned int @var{idx}, gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_idx.short b/doc/functions/gnutls_openpgp_crt_get_subkey_idx.short
new file mode 100644 (file)
index 0000000..5c5eb3a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_subkey_idx} (gnutls_openpgp_crt_t @var{key}, const gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_pk_algorithm.short b/doc/functions/gnutls_openpgp_crt_get_subkey_pk_algorithm.short
new file mode 100644 (file)
index 0000000..0438a1e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_pk_algorithm_t} @ref{gnutls_openpgp_crt_get_subkey_pk_algorithm} (gnutls_openpgp_crt_t @var{key}, unsigned int @var{idx}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.short b/doc/functions/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.short
new file mode 100644 (file)
index 0000000..a9c577c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_subkey_pk_dsa_raw} (gnutls_openpgp_crt_t @var{crt}, unsigned int @var{idx}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{g}, gnutls_datum_t * @var{y})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.short b/doc/functions/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.short
new file mode 100644 (file)
index 0000000..495eaeb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_subkey_pk_rsa_raw} (gnutls_openpgp_crt_t @var{crt}, unsigned int @var{idx}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_revoked_status.short b/doc/functions/gnutls_openpgp_crt_get_subkey_revoked_status.short
new file mode 100644 (file)
index 0000000..c47a0db
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_subkey_revoked_status} (gnutls_openpgp_crt_t @var{key}, unsigned int @var{idx})
diff --git a/doc/functions/gnutls_openpgp_crt_get_subkey_usage.short b/doc/functions/gnutls_openpgp_crt_get_subkey_usage.short
new file mode 100644 (file)
index 0000000..d87a2fd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_subkey_usage} (gnutls_openpgp_crt_t @var{key}, unsigned int @var{idx}, unsigned int * @var{key_usage})
diff --git a/doc/functions/gnutls_openpgp_crt_get_version.short b/doc/functions/gnutls_openpgp_crt_get_version.short
new file mode 100644 (file)
index 0000000..7363391
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_get_version} (gnutls_openpgp_crt_t @var{key})
diff --git a/doc/functions/gnutls_openpgp_crt_import.short b/doc/functions/gnutls_openpgp_crt_import.short
new file mode 100644 (file)
index 0000000..312db8c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_import} (gnutls_openpgp_crt_t @var{key}, const gnutls_datum_t * @var{data}, gnutls_openpgp_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_openpgp_crt_init.short b/doc/functions/gnutls_openpgp_crt_init.short
new file mode 100644 (file)
index 0000000..89968f2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_init} (gnutls_openpgp_crt_t * @var{key})
diff --git a/doc/functions/gnutls_openpgp_crt_print.short b/doc/functions/gnutls_openpgp_crt_print.short
new file mode 100644 (file)
index 0000000..45af10d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_print} (gnutls_openpgp_crt_t @var{cert}, gnutls_certificate_print_formats_t @var{format}, gnutls_datum_t * @var{out})
index a521d06..3c7760d 100644 (file)
@@ -10,6 +10,9 @@
 This allows setting a preferred key id for the given certificate.
 This key will be used by functions that involve key handling.
 
+If the provided  @code{keyid} is @code{NULL}  then the master key is
+set as preferred.
+
 @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned,
 otherwise a negative error code is returned.
 @end deftypefun
diff --git a/doc/functions/gnutls_openpgp_crt_set_preferred_key_id.short b/doc/functions/gnutls_openpgp_crt_set_preferred_key_id.short
new file mode 100644 (file)
index 0000000..25c5d72
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_set_preferred_key_id} (gnutls_openpgp_crt_t @var{key}, const gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_crt_verify_ring.short b/doc/functions/gnutls_openpgp_crt_verify_ring.short
new file mode 100644 (file)
index 0000000..ad96839
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_verify_ring} (gnutls_openpgp_crt_t @var{key}, gnutls_openpgp_keyring_t @var{keyring}, unsigned int @var{flags}, unsigned int * @var{verify})
diff --git a/doc/functions/gnutls_openpgp_crt_verify_self.short b/doc/functions/gnutls_openpgp_crt_verify_self.short
new file mode 100644 (file)
index 0000000..0c2de88
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_crt_verify_self} (gnutls_openpgp_crt_t @var{key}, unsigned int @var{flags}, unsigned int * @var{verify})
diff --git a/doc/functions/gnutls_openpgp_keyring_check_id.short b/doc/functions/gnutls_openpgp_keyring_check_id.short
new file mode 100644 (file)
index 0000000..4655b1a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_keyring_check_id} (gnutls_openpgp_keyring_t @var{ring}, const gnutls_openpgp_keyid_t @var{keyid}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_openpgp_keyring_deinit.short b/doc/functions/gnutls_openpgp_keyring_deinit.short
new file mode 100644 (file)
index 0000000..29f3d7a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_openpgp_keyring_deinit} (gnutls_openpgp_keyring_t @var{keyring})
diff --git a/doc/functions/gnutls_openpgp_keyring_get_crt.short b/doc/functions/gnutls_openpgp_keyring_get_crt.short
new file mode 100644 (file)
index 0000000..b0bfe9a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_keyring_get_crt} (gnutls_openpgp_keyring_t @var{ring}, unsigned int @var{idx}, gnutls_openpgp_crt_t * @var{cert})
diff --git a/doc/functions/gnutls_openpgp_keyring_get_crt_count.short b/doc/functions/gnutls_openpgp_keyring_get_crt_count.short
new file mode 100644 (file)
index 0000000..019b70e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_keyring_get_crt_count} (gnutls_openpgp_keyring_t @var{ring})
diff --git a/doc/functions/gnutls_openpgp_keyring_import.short b/doc/functions/gnutls_openpgp_keyring_import.short
new file mode 100644 (file)
index 0000000..839a18d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_keyring_import} (gnutls_openpgp_keyring_t @var{keyring}, const gnutls_datum_t * @var{data}, gnutls_openpgp_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_openpgp_keyring_init.short b/doc/functions/gnutls_openpgp_keyring_init.short
new file mode 100644 (file)
index 0000000..3d257dd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_keyring_init} (gnutls_openpgp_keyring_t * @var{keyring})
diff --git a/doc/functions/gnutls_openpgp_privkey_deinit.short b/doc/functions/gnutls_openpgp_privkey_deinit.short
new file mode 100644 (file)
index 0000000..bcafc86
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_openpgp_privkey_deinit} (gnutls_openpgp_privkey_t @var{key})
diff --git a/doc/functions/gnutls_openpgp_privkey_export.short b/doc/functions/gnutls_openpgp_privkey_export.short
new file mode 100644 (file)
index 0000000..180f065
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_export} (gnutls_openpgp_privkey_t @var{key}, gnutls_openpgp_crt_fmt_t @var{format}, const char * @var{password}, unsigned int @var{flags}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_openpgp_privkey_export_dsa_raw.short b/doc/functions/gnutls_openpgp_privkey_export_dsa_raw.short
new file mode 100644 (file)
index 0000000..39fe7de
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_export_dsa_raw} (gnutls_openpgp_privkey_t @var{pkey}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{g}, gnutls_datum_t * @var{y}, gnutls_datum_t * @var{x})
diff --git a/doc/functions/gnutls_openpgp_privkey_export_rsa_raw.short b/doc/functions/gnutls_openpgp_privkey_export_rsa_raw.short
new file mode 100644 (file)
index 0000000..44b9374
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_export_rsa_raw} (gnutls_openpgp_privkey_t @var{pkey}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e}, gnutls_datum_t * @var{d}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{u})
diff --git a/doc/functions/gnutls_openpgp_privkey_export_subkey_dsa_raw.short b/doc/functions/gnutls_openpgp_privkey_export_subkey_dsa_raw.short
new file mode 100644 (file)
index 0000000..74c37c9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_export_subkey_dsa_raw} (gnutls_openpgp_privkey_t @var{pkey}, unsigned int @var{idx}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{g}, gnutls_datum_t * @var{y}, gnutls_datum_t * @var{x})
diff --git a/doc/functions/gnutls_openpgp_privkey_export_subkey_rsa_raw.short b/doc/functions/gnutls_openpgp_privkey_export_subkey_rsa_raw.short
new file mode 100644 (file)
index 0000000..19b424b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_export_subkey_rsa_raw} (gnutls_openpgp_privkey_t @var{pkey}, unsigned int @var{idx}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e}, gnutls_datum_t * @var{d}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{u})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_fingerprint.short b/doc/functions/gnutls_openpgp_privkey_get_fingerprint.short
new file mode 100644 (file)
index 0000000..f6b8743
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_fingerprint} (gnutls_openpgp_privkey_t @var{key}, void * @var{fpr}, size_t * @var{fprlen})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_key_id.short b/doc/functions/gnutls_openpgp_privkey_get_key_id.short
new file mode 100644 (file)
index 0000000..0a0739e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_key_id} (gnutls_openpgp_privkey_t @var{key}, gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_pk_algorithm.short b/doc/functions/gnutls_openpgp_privkey_get_pk_algorithm.short
new file mode 100644 (file)
index 0000000..499362b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_pk_algorithm_t} @ref{gnutls_openpgp_privkey_get_pk_algorithm} (gnutls_openpgp_privkey_t @var{key}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_preferred_key_id.short b/doc/functions/gnutls_openpgp_privkey_get_preferred_key_id.short
new file mode 100644 (file)
index 0000000..f994d60
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_preferred_key_id} (gnutls_openpgp_privkey_t @var{key}, gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_revoked_status.short b/doc/functions/gnutls_openpgp_privkey_get_revoked_status.short
new file mode 100644 (file)
index 0000000..06d6023
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_revoked_status} (gnutls_openpgp_privkey_t @var{key})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_subkey_count.short b/doc/functions/gnutls_openpgp_privkey_get_subkey_count.short
new file mode 100644 (file)
index 0000000..4c14216
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_subkey_count} (gnutls_openpgp_privkey_t @var{key})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_subkey_creation_time.short b/doc/functions/gnutls_openpgp_privkey_get_subkey_creation_time.short
new file mode 100644 (file)
index 0000000..c383e69
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_openpgp_privkey_get_subkey_creation_time} (gnutls_openpgp_privkey_t @var{key}, unsigned int @var{idx})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_subkey_fingerprint.short b/doc/functions/gnutls_openpgp_privkey_get_subkey_fingerprint.short
new file mode 100644 (file)
index 0000000..a44ed3e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_subkey_fingerprint} (gnutls_openpgp_privkey_t @var{key}, unsigned int @var{idx}, void * @var{fpr}, size_t * @var{fprlen})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_subkey_id.short b/doc/functions/gnutls_openpgp_privkey_get_subkey_id.short
new file mode 100644 (file)
index 0000000..15e4028
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_subkey_id} (gnutls_openpgp_privkey_t @var{key}, unsigned int @var{idx}, gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_subkey_idx.short b/doc/functions/gnutls_openpgp_privkey_get_subkey_idx.short
new file mode 100644 (file)
index 0000000..6959949
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_subkey_idx} (gnutls_openpgp_privkey_t @var{key}, const gnutls_openpgp_keyid_t @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm.short b/doc/functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm.short
new file mode 100644 (file)
index 0000000..1a5cf9c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_pk_algorithm_t} @ref{gnutls_openpgp_privkey_get_subkey_pk_algorithm} (gnutls_openpgp_privkey_t @var{key}, unsigned int @var{idx}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_openpgp_privkey_get_subkey_revoked_status.short b/doc/functions/gnutls_openpgp_privkey_get_subkey_revoked_status.short
new file mode 100644 (file)
index 0000000..bd73262
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_get_subkey_revoked_status} (gnutls_openpgp_privkey_t                                                   @var{key}, unsigned int @var{idx})
diff --git a/doc/functions/gnutls_openpgp_privkey_import.short b/doc/functions/gnutls_openpgp_privkey_import.short
new file mode 100644 (file)
index 0000000..d2d3038
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_import} (gnutls_openpgp_privkey_t @var{key}, const gnutls_datum_t * @var{data}, gnutls_openpgp_crt_fmt_t @var{format}, const char * @var{password}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_openpgp_privkey_init.short b/doc/functions/gnutls_openpgp_privkey_init.short
new file mode 100644 (file)
index 0000000..be33940
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_init} (gnutls_openpgp_privkey_t * @var{key})
diff --git a/doc/functions/gnutls_openpgp_privkey_sec_param.short b/doc/functions/gnutls_openpgp_privkey_sec_param.short
new file mode 100644 (file)
index 0000000..6310e8a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_sec_param_t} @ref{gnutls_openpgp_privkey_sec_param} (gnutls_openpgp_privkey_t @var{key})
index 1486d2d..4459117 100644 (file)
@@ -10,5 +10,9 @@
 This allows setting a preferred key id for the given certificate.
 This key will be used by functions that involve key handling.
 
-@strong{Returns:} On success, 0 is returned, or an error code.
+If the provided  @code{keyid} is @code{NULL}  then the master key is
+set as preferred.
+
+@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned,
+otherwise a negative error code is returned.
 @end deftypefun
diff --git a/doc/functions/gnutls_openpgp_privkey_set_preferred_key_id.short b/doc/functions/gnutls_openpgp_privkey_set_preferred_key_id.short
new file mode 100644 (file)
index 0000000..e7d363e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_set_preferred_key_id} (gnutls_openpgp_privkey_t @var{key}, const gnutls_openpgp_keyid_t                                              @var{keyid})
diff --git a/doc/functions/gnutls_openpgp_privkey_sign_hash.short b/doc/functions/gnutls_openpgp_privkey_sign_hash.short
new file mode 100644 (file)
index 0000000..df6c540
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_openpgp_privkey_sign_hash} (gnutls_openpgp_privkey_t @var{key}, const gnutls_datum_t * @var{hash}, gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_openpgp_send_cert.short b/doc/functions/gnutls_openpgp_send_cert.short
new file mode 100644 (file)
index 0000000..16b2ba3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_openpgp_send_cert} (gnutls_session_t @var{session}, gnutls_openpgp_crt_status_t @var{status})
index f7be6d2..eb68300 100644 (file)
@@ -10,4 +10,6 @@
 This funtion will set a key retrieval function for OpenPGP keys. This
 callback is only useful in server side, and will be used if the peer
 sent a key fingerprint instead of a full key.
+
+The retrieved key must be allocated using @code{gnutls_malloc()} .
 @end deftypefun
diff --git a/doc/functions/gnutls_openpgp_set_recv_key_function.short b/doc/functions/gnutls_openpgp_set_recv_key_function.short
new file mode 100644 (file)
index 0000000..9d97f50
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_openpgp_set_recv_key_function} (gnutls_session_t @var{session}, gnutls_openpgp_recv_key_func @var{func})
diff --git a/doc/functions/gnutls_pcert_deinit.short b/doc/functions/gnutls_pcert_deinit.short
new file mode 100644 (file)
index 0000000..93dc631
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pcert_deinit} (gnutls_pcert_st * @var{pcert})
diff --git a/doc/functions/gnutls_pcert_import_openpgp.short b/doc/functions/gnutls_pcert_import_openpgp.short
new file mode 100644 (file)
index 0000000..0e86b3c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pcert_import_openpgp} (gnutls_pcert_st* @var{pcert}, gnutls_openpgp_crt_t @var{crt}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pcert_import_openpgp_raw.short b/doc/functions/gnutls_pcert_import_openpgp_raw.short
new file mode 100644 (file)
index 0000000..e42a1c8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pcert_import_openpgp_raw} (gnutls_pcert_st * @var{pcert}, const gnutls_datum_t* @var{cert}, gnutls_openpgp_crt_fmt_t @var{format}, gnutls_openpgp_keyid_t @var{keyid}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pcert_import_x509.short b/doc/functions/gnutls_pcert_import_x509.short
new file mode 100644 (file)
index 0000000..0889fbb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pcert_import_x509} (gnutls_pcert_st* @var{pcert}, gnutls_x509_crt_t @var{crt}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pcert_import_x509_raw.short b/doc/functions/gnutls_pcert_import_x509_raw.short
new file mode 100644 (file)
index 0000000..799559b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pcert_import_x509_raw} (gnutls_pcert_st * @var{pcert}, const gnutls_datum_t* @var{cert}, gnutls_x509_crt_fmt_t @var{format}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pcert_list_import_x509_raw.short b/doc/functions/gnutls_pcert_list_import_x509_raw.short
new file mode 100644 (file)
index 0000000..4cdf335
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pcert_list_import_x509_raw} (gnutls_pcert_st * @var{pcerts}, unsigned int * @var{pcert_max}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pem_base64_decode.short b/doc/functions/gnutls_pem_base64_decode.short
new file mode 100644 (file)
index 0000000..f4b9c38
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pem_base64_decode} (const char * @var{header}, const gnutls_datum_t * @var{b64_data}, unsigned char * @var{result}, size_t * @var{result_size})
diff --git a/doc/functions/gnutls_pem_base64_decode_alloc.short b/doc/functions/gnutls_pem_base64_decode_alloc.short
new file mode 100644 (file)
index 0000000..3995de9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pem_base64_decode_alloc} (const char * @var{header}, const gnutls_datum_t * @var{b64_data}, gnutls_datum_t * @var{result})
diff --git a/doc/functions/gnutls_pem_base64_encode.short b/doc/functions/gnutls_pem_base64_encode.short
new file mode 100644 (file)
index 0000000..502889b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pem_base64_encode} (const char * @var{msg}, const gnutls_datum_t * @var{data}, char * @var{result}, size_t * @var{result_size})
diff --git a/doc/functions/gnutls_pem_base64_encode_alloc.short b/doc/functions/gnutls_pem_base64_encode_alloc.short
new file mode 100644 (file)
index 0000000..457c778
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pem_base64_encode_alloc} (const char * @var{msg}, const gnutls_datum_t * @var{data}, gnutls_datum_t * @var{result})
diff --git a/doc/functions/gnutls_perror.short b/doc/functions/gnutls_perror.short
new file mode 100644 (file)
index 0000000..2654fd1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_perror} (int @var{error})
diff --git a/doc/functions/gnutls_pk_algorithm_get_name.short b/doc/functions/gnutls_pk_algorithm_get_name.short
new file mode 100644 (file)
index 0000000..9bdcbe2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_pk_algorithm_get_name} (gnutls_pk_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_pk_bits_to_sec_param.short b/doc/functions/gnutls_pk_bits_to_sec_param.short
new file mode 100644 (file)
index 0000000..0e37afa
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_sec_param_t} @ref{gnutls_pk_bits_to_sec_param} (gnutls_pk_algorithm_t @var{algo}, unsigned int @var{bits})
diff --git a/doc/functions/gnutls_pk_get_id.short b/doc/functions/gnutls_pk_get_id.short
new file mode 100644 (file)
index 0000000..cd64c98
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_pk_algorithm_t} @ref{gnutls_pk_get_id} (const char * @var{name})
diff --git a/doc/functions/gnutls_pk_get_name.short b/doc/functions/gnutls_pk_get_name.short
new file mode 100644 (file)
index 0000000..84b13a1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_pk_get_name} (gnutls_pk_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_pk_list.short b/doc/functions/gnutls_pk_list.short
new file mode 100644 (file)
index 0000000..61f3de7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_pk_algorithm_t *} @ref{gnutls_pk_list} ( @var{void})
diff --git a/doc/functions/gnutls_pk_to_sign.short b/doc/functions/gnutls_pk_to_sign.short
new file mode 100644 (file)
index 0000000..e3d0473
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_sign_algorithm_t} @ref{gnutls_pk_to_sign} (gnutls_pk_algorithm_t @var{pk}, gnutls_digest_algorithm_t @var{hash})
diff --git a/doc/functions/gnutls_pkcs11_add_provider.short b/doc/functions/gnutls_pkcs11_add_provider.short
new file mode 100644 (file)
index 0000000..251615d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_add_provider} (const char * @var{name}, const char * @var{params})
diff --git a/doc/functions/gnutls_pkcs11_copy_secret_key.short b/doc/functions/gnutls_pkcs11_copy_secret_key.short
new file mode 100644 (file)
index 0000000..55afb40
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_copy_secret_key} (const char * @var{token_url}, gnutls_datum_t * @var{key}, const char * @var{label}, unsigned int @var{key_usage}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_copy_x509_crt.short b/doc/functions/gnutls_pkcs11_copy_x509_crt.short
new file mode 100644 (file)
index 0000000..176839b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_copy_x509_crt} (const char * @var{token_url}, gnutls_x509_crt_t @var{crt}, const char * @var{label}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_copy_x509_privkey.short b/doc/functions/gnutls_pkcs11_copy_x509_privkey.short
new file mode 100644 (file)
index 0000000..2123abc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_copy_x509_privkey} (const char * @var{token_url}, gnutls_x509_privkey_t @var{key}, const char * @var{label}, unsigned int @var{key_usage}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_deinit.short b/doc/functions/gnutls_pkcs11_deinit.short
new file mode 100644 (file)
index 0000000..4850a6f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pkcs11_deinit} ( @var{void})
diff --git a/doc/functions/gnutls_pkcs11_delete_url.short b/doc/functions/gnutls_pkcs11_delete_url.short
new file mode 100644 (file)
index 0000000..0e821e2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_delete_url} (const char * @var{object_url}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_init.short b/doc/functions/gnutls_pkcs11_init.short
new file mode 100644 (file)
index 0000000..37a46df
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_init} (unsigned int @var{flags}, const char * @var{deprecated_config_file})
diff --git a/doc/functions/gnutls_pkcs11_obj_deinit.short b/doc/functions/gnutls_pkcs11_obj_deinit.short
new file mode 100644 (file)
index 0000000..6fbc219
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pkcs11_obj_deinit} (gnutls_pkcs11_obj_t @var{obj})
diff --git a/doc/functions/gnutls_pkcs11_obj_export.short b/doc/functions/gnutls_pkcs11_obj_export.short
new file mode 100644 (file)
index 0000000..4122cff
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_obj_export} (gnutls_pkcs11_obj_t @var{obj}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_pkcs11_obj_export_url.short b/doc/functions/gnutls_pkcs11_obj_export_url.short
new file mode 100644 (file)
index 0000000..0e4f939
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_obj_export_url} (gnutls_pkcs11_obj_t @var{obj}, gnutls_pkcs11_url_type_t @var{detailed}, char ** @var{url})
diff --git a/doc/functions/gnutls_pkcs11_obj_get_info.short b/doc/functions/gnutls_pkcs11_obj_get_info.short
new file mode 100644 (file)
index 0000000..a3fd506
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_obj_get_info} (gnutls_pkcs11_obj_t @var{crt}, gnutls_pkcs11_obj_info_t @var{itype}, void * @var{output}, size_t * @var{output_size})
diff --git a/doc/functions/gnutls_pkcs11_obj_get_type.short b/doc/functions/gnutls_pkcs11_obj_get_type.short
new file mode 100644 (file)
index 0000000..f558c9a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_pkcs11_obj_type_t} @ref{gnutls_pkcs11_obj_get_type} (gnutls_pkcs11_obj_t @var{obj})
diff --git a/doc/functions/gnutls_pkcs11_obj_import_url.short b/doc/functions/gnutls_pkcs11_obj_import_url.short
new file mode 100644 (file)
index 0000000..9e5ab62
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_obj_import_url} (gnutls_pkcs11_obj_t @var{cert}, const char * @var{url}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_obj_init.short b/doc/functions/gnutls_pkcs11_obj_init.short
new file mode 100644 (file)
index 0000000..db3962a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_obj_init} (gnutls_pkcs11_obj_t * @var{obj})
diff --git a/doc/functions/gnutls_pkcs11_obj_list_import_url.short b/doc/functions/gnutls_pkcs11_obj_list_import_url.short
new file mode 100644 (file)
index 0000000..84f5921
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_obj_list_import_url} (gnutls_pkcs11_obj_t * @var{p_list}, unsigned int * @var{n_list}, const char * @var{url}, gnutls_pkcs11_obj_attr_t @var{attrs}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_privkey_deinit.short b/doc/functions/gnutls_pkcs11_privkey_deinit.short
new file mode 100644 (file)
index 0000000..03c764c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pkcs11_privkey_deinit} (gnutls_pkcs11_privkey_t @var{key})
diff --git a/doc/functions/gnutls_pkcs11_privkey_export_url.short b/doc/functions/gnutls_pkcs11_privkey_export_url.short
new file mode 100644 (file)
index 0000000..19940c1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_privkey_export_url} (gnutls_pkcs11_privkey_t @var{key}, gnutls_pkcs11_url_type_t @var{detailed}, char ** @var{url})
diff --git a/doc/functions/gnutls_pkcs11_privkey_generate.short b/doc/functions/gnutls_pkcs11_privkey_generate.short
new file mode 100644 (file)
index 0000000..0a9fc60
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_privkey_generate} (const char* @var{url}, gnutls_pk_algorithm_t @var{pk}, unsigned int @var{bits}, const char* @var{label}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_privkey_get_info.short b/doc/functions/gnutls_pkcs11_privkey_get_info.short
new file mode 100644 (file)
index 0000000..1b243e9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_privkey_get_info} (gnutls_pkcs11_privkey_t @var{pkey}, gnutls_pkcs11_obj_info_t @var{itype}, void * @var{output}, size_t * @var{output_size})
diff --git a/doc/functions/gnutls_pkcs11_privkey_get_pk_algorithm.short b/doc/functions/gnutls_pkcs11_privkey_get_pk_algorithm.short
new file mode 100644 (file)
index 0000000..d407d71
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_privkey_get_pk_algorithm} (gnutls_pkcs11_privkey_t @var{key}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_pkcs11_privkey_import_url.short b/doc/functions/gnutls_pkcs11_privkey_import_url.short
new file mode 100644 (file)
index 0000000..3748496
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_privkey_import_url} (gnutls_pkcs11_privkey_t @var{pkey}, const char * @var{url}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_privkey_init.short b/doc/functions/gnutls_pkcs11_privkey_init.short
new file mode 100644 (file)
index 0000000..af31a59
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_privkey_init} (gnutls_pkcs11_privkey_t * @var{key})
diff --git a/doc/functions/gnutls_pkcs11_reinit.short b/doc/functions/gnutls_pkcs11_reinit.short
new file mode 100644 (file)
index 0000000..286040a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_reinit} ( @var{void})
diff --git a/doc/functions/gnutls_pkcs11_set_pin_function.short b/doc/functions/gnutls_pkcs11_set_pin_function.short
new file mode 100644 (file)
index 0000000..9bdadf0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pkcs11_set_pin_function} (gnutls_pkcs11_pin_callback_t @var{fn}, void * @var{userdata})
diff --git a/doc/functions/gnutls_pkcs11_set_token_function.short b/doc/functions/gnutls_pkcs11_set_token_function.short
new file mode 100644 (file)
index 0000000..0d31fd8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pkcs11_set_token_function} (gnutls_pkcs11_token_callback_t @var{fn}, void * @var{userdata})
diff --git a/doc/functions/gnutls_pkcs11_token_get_flags.short b/doc/functions/gnutls_pkcs11_token_get_flags.short
new file mode 100644 (file)
index 0000000..c375cf9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_token_get_flags} (const char * @var{url}, unsigned int * @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_token_get_info.short b/doc/functions/gnutls_pkcs11_token_get_info.short
new file mode 100644 (file)
index 0000000..8ddbe46
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_token_get_info} (const char * @var{url}, gnutls_pkcs11_token_info_t @var{ttype}, void * @var{output}, size_t * @var{output_size})
diff --git a/doc/functions/gnutls_pkcs11_token_get_mechanism.short b/doc/functions/gnutls_pkcs11_token_get_mechanism.short
new file mode 100644 (file)
index 0000000..25bace4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_token_get_mechanism} (const char * @var{url}, unsigned int @var{idx}, unsigned long * @var{mechanism})
diff --git a/doc/functions/gnutls_pkcs11_token_get_url.short b/doc/functions/gnutls_pkcs11_token_get_url.short
new file mode 100644 (file)
index 0000000..06b09a8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_token_get_url} (unsigned int @var{seq}, gnutls_pkcs11_url_type_t @var{detailed}, char ** @var{url})
diff --git a/doc/functions/gnutls_pkcs11_token_init.short b/doc/functions/gnutls_pkcs11_token_init.short
new file mode 100644 (file)
index 0000000..35e9ffb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_token_init} (const char * @var{token_url}, const char * @var{so_pin}, const char * @var{label})
diff --git a/doc/functions/gnutls_pkcs11_token_set_pin.short b/doc/functions/gnutls_pkcs11_token_set_pin.short
new file mode 100644 (file)
index 0000000..2f5c0dd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs11_token_set_pin} (const char * @var{token_url}, const char * @var{oldpin}, const char * @var{newpin}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs11_type_get_name.short b/doc/functions/gnutls_pkcs11_type_get_name.short
new file mode 100644 (file)
index 0000000..c64b897
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_pkcs11_type_get_name} (gnutls_pkcs11_obj_type_t @var{type})
diff --git a/doc/functions/gnutls_pkcs12_bag_decrypt.short b/doc/functions/gnutls_pkcs12_bag_decrypt.short
new file mode 100644 (file)
index 0000000..3985e60
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_decrypt} (gnutls_pkcs12_bag_t @var{bag}, const char * @var{pass})
diff --git a/doc/functions/gnutls_pkcs12_bag_deinit.short b/doc/functions/gnutls_pkcs12_bag_deinit.short
new file mode 100644 (file)
index 0000000..9766257
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pkcs12_bag_deinit} (gnutls_pkcs12_bag_t @var{bag})
diff --git a/doc/functions/gnutls_pkcs12_bag_encrypt.short b/doc/functions/gnutls_pkcs12_bag_encrypt.short
new file mode 100644 (file)
index 0000000..c9e07fd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_encrypt} (gnutls_pkcs12_bag_t @var{bag}, const char * @var{pass}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs12_bag_get_count.short b/doc/functions/gnutls_pkcs12_bag_get_count.short
new file mode 100644 (file)
index 0000000..27573c1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_get_count} (gnutls_pkcs12_bag_t @var{bag})
diff --git a/doc/functions/gnutls_pkcs12_bag_get_data.short b/doc/functions/gnutls_pkcs12_bag_get_data.short
new file mode 100644 (file)
index 0000000..c432fae
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_get_data} (gnutls_pkcs12_bag_t @var{bag}, int @var{indx}, gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_pkcs12_bag_get_friendly_name.short b/doc/functions/gnutls_pkcs12_bag_get_friendly_name.short
new file mode 100644 (file)
index 0000000..b6e8dad
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_get_friendly_name} (gnutls_pkcs12_bag_t @var{bag}, int @var{indx}, char ** @var{name})
diff --git a/doc/functions/gnutls_pkcs12_bag_get_key_id.short b/doc/functions/gnutls_pkcs12_bag_get_key_id.short
new file mode 100644 (file)
index 0000000..2093b47
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_get_key_id} (gnutls_pkcs12_bag_t @var{bag}, int @var{indx}, gnutls_datum_t * @var{id})
diff --git a/doc/functions/gnutls_pkcs12_bag_get_type.short b/doc/functions/gnutls_pkcs12_bag_get_type.short
new file mode 100644 (file)
index 0000000..2388d3b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_pkcs12_bag_type_t} @ref{gnutls_pkcs12_bag_get_type} (gnutls_pkcs12_bag_t @var{bag}, int @var{indx})
diff --git a/doc/functions/gnutls_pkcs12_bag_init.short b/doc/functions/gnutls_pkcs12_bag_init.short
new file mode 100644 (file)
index 0000000..368e251
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_init} (gnutls_pkcs12_bag_t * @var{bag})
diff --git a/doc/functions/gnutls_pkcs12_bag_set_crl.short b/doc/functions/gnutls_pkcs12_bag_set_crl.short
new file mode 100644 (file)
index 0000000..a4305d2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_set_crl} (gnutls_pkcs12_bag_t @var{bag}, gnutls_x509_crl_t @var{crl})
diff --git a/doc/functions/gnutls_pkcs12_bag_set_crt.short b/doc/functions/gnutls_pkcs12_bag_set_crt.short
new file mode 100644 (file)
index 0000000..66da0ca
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_set_crt} (gnutls_pkcs12_bag_t @var{bag}, gnutls_x509_crt_t @var{crt})
diff --git a/doc/functions/gnutls_pkcs12_bag_set_data.short b/doc/functions/gnutls_pkcs12_bag_set_data.short
new file mode 100644 (file)
index 0000000..7774be4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_set_data} (gnutls_pkcs12_bag_t @var{bag}, gnutls_pkcs12_bag_type_t @var{type}, const gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_pkcs12_bag_set_friendly_name.short b/doc/functions/gnutls_pkcs12_bag_set_friendly_name.short
new file mode 100644 (file)
index 0000000..d39d766
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_set_friendly_name} (gnutls_pkcs12_bag_t @var{bag}, int @var{indx}, const char * @var{name})
diff --git a/doc/functions/gnutls_pkcs12_bag_set_key_id.short b/doc/functions/gnutls_pkcs12_bag_set_key_id.short
new file mode 100644 (file)
index 0000000..b22758a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_bag_set_key_id} (gnutls_pkcs12_bag_t @var{bag}, int @var{indx}, const gnutls_datum_t * @var{id})
diff --git a/doc/functions/gnutls_pkcs12_deinit.short b/doc/functions/gnutls_pkcs12_deinit.short
new file mode 100644 (file)
index 0000000..5281d9c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pkcs12_deinit} (gnutls_pkcs12_t @var{pkcs12})
diff --git a/doc/functions/gnutls_pkcs12_export.short b/doc/functions/gnutls_pkcs12_export.short
new file mode 100644 (file)
index 0000000..99a05f9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_export} (gnutls_pkcs12_t @var{pkcs12}, gnutls_x509_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_pkcs12_generate_mac.short b/doc/functions/gnutls_pkcs12_generate_mac.short
new file mode 100644 (file)
index 0000000..f10c484
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_generate_mac} (gnutls_pkcs12_t @var{pkcs12}, const char * @var{pass})
diff --git a/doc/functions/gnutls_pkcs12_get_bag.short b/doc/functions/gnutls_pkcs12_get_bag.short
new file mode 100644 (file)
index 0000000..8066280
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_get_bag} (gnutls_pkcs12_t @var{pkcs12}, int @var{indx}, gnutls_pkcs12_bag_t @var{bag})
diff --git a/doc/functions/gnutls_pkcs12_import.short b/doc/functions/gnutls_pkcs12_import.short
new file mode 100644 (file)
index 0000000..ec9e046
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_import} (gnutls_pkcs12_t @var{pkcs12}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pkcs12_init.short b/doc/functions/gnutls_pkcs12_init.short
new file mode 100644 (file)
index 0000000..630ff79
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_init} (gnutls_pkcs12_t * @var{pkcs12})
diff --git a/doc/functions/gnutls_pkcs12_set_bag.short b/doc/functions/gnutls_pkcs12_set_bag.short
new file mode 100644 (file)
index 0000000..4b356c7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_set_bag} (gnutls_pkcs12_t @var{pkcs12}, gnutls_pkcs12_bag_t @var{bag})
diff --git a/doc/functions/gnutls_pkcs12_verify_mac.short b/doc/functions/gnutls_pkcs12_verify_mac.short
new file mode 100644 (file)
index 0000000..916202a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs12_verify_mac} (gnutls_pkcs12_t @var{pkcs12}, const char * @var{pass})
diff --git a/doc/functions/gnutls_pkcs7_deinit.short b/doc/functions/gnutls_pkcs7_deinit.short
new file mode 100644 (file)
index 0000000..800cf70
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pkcs7_deinit} (gnutls_pkcs7_t @var{pkcs7})
diff --git a/doc/functions/gnutls_pkcs7_delete_crl.short b/doc/functions/gnutls_pkcs7_delete_crl.short
new file mode 100644 (file)
index 0000000..d4e501e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_delete_crl} (gnutls_pkcs7_t @var{pkcs7}, int @var{indx})
diff --git a/doc/functions/gnutls_pkcs7_delete_crt.short b/doc/functions/gnutls_pkcs7_delete_crt.short
new file mode 100644 (file)
index 0000000..df9fa9f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_delete_crt} (gnutls_pkcs7_t @var{pkcs7}, int @var{indx})
diff --git a/doc/functions/gnutls_pkcs7_export.short b/doc/functions/gnutls_pkcs7_export.short
new file mode 100644 (file)
index 0000000..80b8b5d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_export} (gnutls_pkcs7_t @var{pkcs7}, gnutls_x509_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_pkcs7_get_crl_count.short b/doc/functions/gnutls_pkcs7_get_crl_count.short
new file mode 100644 (file)
index 0000000..17e23f7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_get_crl_count} (gnutls_pkcs7_t @var{pkcs7})
diff --git a/doc/functions/gnutls_pkcs7_get_crl_raw.short b/doc/functions/gnutls_pkcs7_get_crl_raw.short
new file mode 100644 (file)
index 0000000..ca83594
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_get_crl_raw} (gnutls_pkcs7_t @var{pkcs7}, int @var{indx}, void * @var{crl}, size_t * @var{crl_size})
diff --git a/doc/functions/gnutls_pkcs7_get_crt_count.short b/doc/functions/gnutls_pkcs7_get_crt_count.short
new file mode 100644 (file)
index 0000000..c0d24a3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_get_crt_count} (gnutls_pkcs7_t @var{pkcs7})
diff --git a/doc/functions/gnutls_pkcs7_get_crt_raw.short b/doc/functions/gnutls_pkcs7_get_crt_raw.short
new file mode 100644 (file)
index 0000000..75a7913
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_get_crt_raw} (gnutls_pkcs7_t @var{pkcs7}, int @var{indx}, void * @var{certificate}, size_t * @var{certificate_size})
diff --git a/doc/functions/gnutls_pkcs7_import.short b/doc/functions/gnutls_pkcs7_import.short
new file mode 100644 (file)
index 0000000..3c60773
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_import} (gnutls_pkcs7_t @var{pkcs7}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_pkcs7_init.short b/doc/functions/gnutls_pkcs7_init.short
new file mode 100644 (file)
index 0000000..bcc8b45
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_init} (gnutls_pkcs7_t * @var{pkcs7})
diff --git a/doc/functions/gnutls_pkcs7_set_crl.short b/doc/functions/gnutls_pkcs7_set_crl.short
new file mode 100644 (file)
index 0000000..13ddaeb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_set_crl} (gnutls_pkcs7_t @var{pkcs7}, gnutls_x509_crl_t @var{crl})
diff --git a/doc/functions/gnutls_pkcs7_set_crl_raw.short b/doc/functions/gnutls_pkcs7_set_crl_raw.short
new file mode 100644 (file)
index 0000000..f56798c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_set_crl_raw} (gnutls_pkcs7_t @var{pkcs7}, const gnutls_datum_t * @var{crl})
diff --git a/doc/functions/gnutls_pkcs7_set_crt.short b/doc/functions/gnutls_pkcs7_set_crt.short
new file mode 100644 (file)
index 0000000..c390944
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_set_crt} (gnutls_pkcs7_t @var{pkcs7}, gnutls_x509_crt_t @var{crt})
diff --git a/doc/functions/gnutls_pkcs7_set_crt_raw.short b/doc/functions/gnutls_pkcs7_set_crt_raw.short
new file mode 100644 (file)
index 0000000..2ee5b7f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pkcs7_set_crt_raw} (gnutls_pkcs7_t @var{pkcs7}, const gnutls_datum_t * @var{crt})
diff --git a/doc/functions/gnutls_prf.short b/doc/functions/gnutls_prf.short
new file mode 100644 (file)
index 0000000..58a0bfe
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_prf} (gnutls_session_t @var{session}, size_t @var{label_size}, const char * @var{label}, int @var{server_random_first}, size_t @var{extra_size}, const char * @var{extra}, size_t @var{outsize}, char * @var{out})
diff --git a/doc/functions/gnutls_prf_raw.short b/doc/functions/gnutls_prf_raw.short
new file mode 100644 (file)
index 0000000..0c84e86
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_prf_raw} (gnutls_session_t @var{session}, size_t @var{label_size}, const char * @var{label}, size_t @var{seed_size}, const char * @var{seed}, size_t @var{outsize}, char * @var{out})
diff --git a/doc/functions/gnutls_priority_certificate_type_list.short b/doc/functions/gnutls_priority_certificate_type_list.short
new file mode 100644 (file)
index 0000000..18ebe45
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_certificate_type_list} (gnutls_priority_t @var{pcache}, const unsigned int** @var{list})
diff --git a/doc/functions/gnutls_priority_compression_list.short b/doc/functions/gnutls_priority_compression_list.short
new file mode 100644 (file)
index 0000000..90de69a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_compression_list} (gnutls_priority_t @var{pcache}, const unsigned int** @var{list})
diff --git a/doc/functions/gnutls_priority_deinit.short b/doc/functions/gnutls_priority_deinit.short
new file mode 100644 (file)
index 0000000..fb452b8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_priority_deinit} (gnutls_priority_t @var{priority_cache})
diff --git a/doc/functions/gnutls_priority_ecc_curve_list.short b/doc/functions/gnutls_priority_ecc_curve_list.short
new file mode 100644 (file)
index 0000000..73962d9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_ecc_curve_list} (gnutls_priority_t @var{pcache}, const unsigned int** @var{list})
diff --git a/doc/functions/gnutls_priority_get_cipher_suite_index.short b/doc/functions/gnutls_priority_get_cipher_suite_index.short
new file mode 100644 (file)
index 0000000..1ab761a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_get_cipher_suite_index} (gnutls_priority_t @var{pcache}, unsigned int @var{idx}, unsigned int * @var{sidx})
diff --git a/doc/functions/gnutls_priority_init.short b/doc/functions/gnutls_priority_init.short
new file mode 100644 (file)
index 0000000..0af865a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_init} (gnutls_priority_t * @var{priority_cache}, const char * @var{priorities}, const char ** @var{err_pos})
diff --git a/doc/functions/gnutls_priority_protocol_list.short b/doc/functions/gnutls_priority_protocol_list.short
new file mode 100644 (file)
index 0000000..e7b9693
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_protocol_list} (gnutls_priority_t @var{pcache}, const unsigned int** @var{list})
diff --git a/doc/functions/gnutls_priority_set.short b/doc/functions/gnutls_priority_set.short
new file mode 100644 (file)
index 0000000..bc6bbcd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_set} (gnutls_session_t @var{session}, gnutls_priority_t @var{priority})
diff --git a/doc/functions/gnutls_priority_set_direct.short b/doc/functions/gnutls_priority_set_direct.short
new file mode 100644 (file)
index 0000000..00528ed
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_set_direct} (gnutls_session_t @var{session}, const char * @var{priorities}, const char ** @var{err_pos})
diff --git a/doc/functions/gnutls_priority_sign_list.short b/doc/functions/gnutls_priority_sign_list.short
new file mode 100644 (file)
index 0000000..0146e29
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_priority_sign_list} (gnutls_priority_t @var{pcache}, const unsigned int** @var{list})
diff --git a/doc/functions/gnutls_privkey_decrypt_data.short b/doc/functions/gnutls_privkey_decrypt_data.short
new file mode 100644 (file)
index 0000000..432a734
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_decrypt_data} (gnutls_privkey_t @var{key}, unsigned int @var{flags}, const gnutls_datum_t * @var{ciphertext}, gnutls_datum_t * @var{plaintext})
diff --git a/doc/functions/gnutls_privkey_deinit.short b/doc/functions/gnutls_privkey_deinit.short
new file mode 100644 (file)
index 0000000..6b2853d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_privkey_deinit} (gnutls_privkey_t @var{key})
diff --git a/doc/functions/gnutls_privkey_get_pk_algorithm.short b/doc/functions/gnutls_privkey_get_pk_algorithm.short
new file mode 100644 (file)
index 0000000..cf3f988
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_get_pk_algorithm} (gnutls_privkey_t @var{key}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_privkey_get_type.short b/doc/functions/gnutls_privkey_get_type.short
new file mode 100644 (file)
index 0000000..9821312
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_privkey_type_t} @ref{gnutls_privkey_get_type} (gnutls_privkey_t @var{key})
diff --git a/doc/functions/gnutls_privkey_import_ext.short b/doc/functions/gnutls_privkey_import_ext.short
new file mode 100644 (file)
index 0000000..de6eed8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_import_ext} (gnutls_privkey_t @var{pkey}, gnutls_pk_algorithm_t @var{pk}, void* @var{userdata}, gnutls_privkey_sign_func @var{sign_func}, gnutls_privkey_decrypt_func @var{decrypt_func}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_privkey_import_openpgp.short b/doc/functions/gnutls_privkey_import_openpgp.short
new file mode 100644 (file)
index 0000000..63b1b17
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_import_openpgp} (gnutls_privkey_t @var{pkey}, gnutls_openpgp_privkey_t @var{key}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_privkey_import_pkcs11.short b/doc/functions/gnutls_privkey_import_pkcs11.short
new file mode 100644 (file)
index 0000000..321f648
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_import_pkcs11} (gnutls_privkey_t @var{pkey}, gnutls_pkcs11_privkey_t @var{key}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_privkey_import_x509.short b/doc/functions/gnutls_privkey_import_x509.short
new file mode 100644 (file)
index 0000000..2958318
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_import_x509} (gnutls_privkey_t @var{pkey}, gnutls_x509_privkey_t @var{key}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_privkey_init.short b/doc/functions/gnutls_privkey_init.short
new file mode 100644 (file)
index 0000000..8e8c05a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_init} (gnutls_privkey_t * @var{key})
diff --git a/doc/functions/gnutls_privkey_sign_data.short b/doc/functions/gnutls_privkey_sign_data.short
new file mode 100644 (file)
index 0000000..2a7e850
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_sign_data} (gnutls_privkey_t @var{signer}, gnutls_digest_algorithm_t @var{hash}, unsigned int @var{flags}, const gnutls_datum_t * @var{data}, gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_privkey_sign_hash.short b/doc/functions/gnutls_privkey_sign_hash.short
new file mode 100644 (file)
index 0000000..649e7fa
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_privkey_sign_hash} (gnutls_privkey_t @var{signer}, gnutls_digest_algorithm_t @var{hash_algo}, unsigned int @var{flags}, const gnutls_datum_t * @var{hash_data}, gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_protocol_get_id.short b/doc/functions/gnutls_protocol_get_id.short
new file mode 100644 (file)
index 0000000..7c1cdae
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_protocol_t} @ref{gnutls_protocol_get_id} (const char * @var{name})
diff --git a/doc/functions/gnutls_protocol_get_name.short b/doc/functions/gnutls_protocol_get_name.short
new file mode 100644 (file)
index 0000000..34c4693
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_protocol_get_name} (gnutls_protocol_t @var{version})
diff --git a/doc/functions/gnutls_protocol_get_version.short b/doc/functions/gnutls_protocol_get_version.short
new file mode 100644 (file)
index 0000000..76967f2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_protocol_t} @ref{gnutls_protocol_get_version} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_protocol_list.short b/doc/functions/gnutls_protocol_list.short
new file mode 100644 (file)
index 0000000..64a4d76
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_protocol_t *} @ref{gnutls_protocol_list} ( @var{void})
diff --git a/doc/functions/gnutls_protocol_set_priority.short b/doc/functions/gnutls_protocol_set_priority.short
new file mode 100644 (file)
index 0000000..f96b95c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_protocol_set_priority} (gnutls_session_t @var{session}, const int * @var{list})
diff --git a/doc/functions/gnutls_psk_allocate_client_credentials.short b/doc/functions/gnutls_psk_allocate_client_credentials.short
new file mode 100644 (file)
index 0000000..680c4f7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_psk_allocate_client_credentials} (gnutls_psk_client_credentials_t * @var{sc})
diff --git a/doc/functions/gnutls_psk_allocate_server_credentials.short b/doc/functions/gnutls_psk_allocate_server_credentials.short
new file mode 100644 (file)
index 0000000..7f8238c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_psk_allocate_server_credentials} (gnutls_psk_server_credentials_t * @var{sc})
diff --git a/doc/functions/gnutls_psk_client_get_hint.short b/doc/functions/gnutls_psk_client_get_hint.short
new file mode 100644 (file)
index 0000000..b3ebe9e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_psk_client_get_hint} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_psk_free_client_credentials.short b/doc/functions/gnutls_psk_free_client_credentials.short
new file mode 100644 (file)
index 0000000..d3e514a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_psk_free_client_credentials} (gnutls_psk_client_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_psk_free_server_credentials.short b/doc/functions/gnutls_psk_free_server_credentials.short
new file mode 100644 (file)
index 0000000..7536200
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_psk_free_server_credentials} (gnutls_psk_server_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_psk_server_get_username.short b/doc/functions/gnutls_psk_server_get_username.short
new file mode 100644 (file)
index 0000000..5de5040
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_psk_server_get_username} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_psk_set_client_credentials.short b/doc/functions/gnutls_psk_set_client_credentials.short
new file mode 100644 (file)
index 0000000..17f245d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_psk_set_client_credentials} (gnutls_psk_client_credentials_t @var{res}, const char * @var{username}, const gnutls_datum_t * @var{key}, gnutls_psk_key_flags @var{flags})
diff --git a/doc/functions/gnutls_psk_set_client_credentials_function.short b/doc/functions/gnutls_psk_set_client_credentials_function.short
new file mode 100644 (file)
index 0000000..50ff5fd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_psk_set_client_credentials_function} (gnutls_psk_client_credentials_t                                             @var{cred}, gnutls_psk_client_credentials_function                                             * @var{func})
diff --git a/doc/functions/gnutls_psk_set_params_function.short b/doc/functions/gnutls_psk_set_params_function.short
new file mode 100644 (file)
index 0000000..d40cb2e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_psk_set_params_function} (gnutls_psk_server_credentials_t @var{res}, gnutls_params_function * @var{func})
diff --git a/doc/functions/gnutls_psk_set_server_credentials_file.short b/doc/functions/gnutls_psk_set_server_credentials_file.short
new file mode 100644 (file)
index 0000000..7b4d5fd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_psk_set_server_credentials_file} (gnutls_psk_server_credentials_t                                         @var{res}, const char * @var{password_file})
diff --git a/doc/functions/gnutls_psk_set_server_credentials_function.short b/doc/functions/gnutls_psk_set_server_credentials_function.short
new file mode 100644 (file)
index 0000000..4c86ddb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_psk_set_server_credentials_function} (gnutls_psk_server_credentials_t                                             @var{cred}, gnutls_psk_server_credentials_function                                             * @var{func})
diff --git a/doc/functions/gnutls_psk_set_server_credentials_hint.short b/doc/functions/gnutls_psk_set_server_credentials_hint.short
new file mode 100644 (file)
index 0000000..9afd7b2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_psk_set_server_credentials_hint} (gnutls_psk_server_credentials_t @var{res}, const char * @var{hint})
diff --git a/doc/functions/gnutls_psk_set_server_dh_params.short b/doc/functions/gnutls_psk_set_server_dh_params.short
new file mode 100644 (file)
index 0000000..3446cfe
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_psk_set_server_dh_params} (gnutls_psk_server_credentials_t @var{res}, gnutls_dh_params_t @var{dh_params})
diff --git a/doc/functions/gnutls_psk_set_server_params_function.short b/doc/functions/gnutls_psk_set_server_params_function.short
new file mode 100644 (file)
index 0000000..bda0b9b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_psk_set_server_params_function} (gnutls_psk_server_credentials_t @var{res}, gnutls_params_function * @var{func})
diff --git a/doc/functions/gnutls_pubkey_deinit.short b/doc/functions/gnutls_pubkey_deinit.short
new file mode 100644 (file)
index 0000000..ce1a6e9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_pubkey_deinit} (gnutls_pubkey_t @var{key})
diff --git a/doc/functions/gnutls_pubkey_encrypt_data.short b/doc/functions/gnutls_pubkey_encrypt_data.short
new file mode 100644 (file)
index 0000000..6e8208b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_encrypt_data} (gnutls_pubkey_t @var{key}, unsigned int @var{flags}, const gnutls_datum_t * @var{plaintext}, gnutls_datum_t * @var{ciphertext})
diff --git a/doc/functions/gnutls_pubkey_export.short b/doc/functions/gnutls_pubkey_export.short
new file mode 100644 (file)
index 0000000..ab45e4b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_export} (gnutls_pubkey_t @var{key}, gnutls_x509_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_pubkey_get_key_id.short b/doc/functions/gnutls_pubkey_get_key_id.short
new file mode 100644 (file)
index 0000000..63b7861
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_key_id} (gnutls_pubkey_t @var{key}, unsigned int @var{flags}, unsigned char * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_pubkey_get_key_usage.short b/doc/functions/gnutls_pubkey_get_key_usage.short
new file mode 100644 (file)
index 0000000..db842b5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_key_usage} (gnutls_pubkey_t @var{key}, unsigned int * @var{usage})
index ea70cdf..c1fb18a 100644 (file)
@@ -5,7 +5,7 @@
 @deftypefun {int} {gnutls_pubkey_get_openpgp_key_id} (gnutls_pubkey_t @var{key}, unsigned int @var{flags}, unsigned char * @var{output_data}, size_t * @var{output_data_size}, unsigned int * @var{subkey})
 @var{key}: Holds the public key
 
-@var{flags}: should be 0 for now
+@var{flags}: should be 0 or @code{GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT} 
 
 @var{output_data}: will contain the key ID
 
@@ -14,14 +14,16 @@ replaced by the actual size of parameters)
 
 @var{subkey}: Will be non zero if the key ID corresponds to a subkey
 
-This function will return a unique ID the depends on the public
-key parameters. This ID can be used in checking whether a
-certificate corresponds to the given public key.
+This function returns the OpenPGP key ID of the corresponding key.
+The key is a unique ID that depends on the public
+key parameters. 
+
+If the flag @code{GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT}  is specified
+this function returns the fingerprint of the master key.
 
 If the buffer provided is not long enough to hold the output, then
 *output_data_size is updated and @code{GNUTLS_E_SHORT_MEMORY_BUFFER}  will
-be returned.  The output will normally be a SHA-1 hash output,
-which is 20 bytes.
+be returned.  The output is @code{GNUTLS_OPENPGP_KEYID_SIZE}  bytes long.
 
 @strong{Returns:} In case of failure a negative error code will be
 returned, and 0 on success.
diff --git a/doc/functions/gnutls_pubkey_get_openpgp_key_id.short b/doc/functions/gnutls_pubkey_get_openpgp_key_id.short
new file mode 100644 (file)
index 0000000..4ba139e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_openpgp_key_id} (gnutls_pubkey_t @var{key}, unsigned int @var{flags}, unsigned char * @var{output_data}, size_t * @var{output_data_size}, unsigned int * @var{subkey})
diff --git a/doc/functions/gnutls_pubkey_get_pk_algorithm.short b/doc/functions/gnutls_pubkey_get_pk_algorithm.short
new file mode 100644 (file)
index 0000000..0e31b54
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_pk_algorithm} (gnutls_pubkey_t @var{key}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_pubkey_get_pk_dsa_raw.short b/doc/functions/gnutls_pubkey_get_pk_dsa_raw.short
new file mode 100644 (file)
index 0000000..2afc49b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_pk_dsa_raw} (gnutls_pubkey_t @var{key}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{g}, gnutls_datum_t * @var{y})
diff --git a/doc/functions/gnutls_pubkey_get_pk_ecc_raw.short b/doc/functions/gnutls_pubkey_get_pk_ecc_raw.short
new file mode 100644 (file)
index 0000000..423fd4f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_pk_ecc_raw} (gnutls_pubkey_t @var{key}, gnutls_ecc_curve_t * @var{curve}, gnutls_datum_t * @var{x}, gnutls_datum_t * @var{y})
diff --git a/doc/functions/gnutls_pubkey_get_pk_ecc_x962.short b/doc/functions/gnutls_pubkey_get_pk_ecc_x962.short
new file mode 100644 (file)
index 0000000..4eb94a4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_pk_ecc_x962} (gnutls_pubkey_t @var{key}, gnutls_datum_t* @var{parameters}, gnutls_datum_t * @var{ecpoint})
diff --git a/doc/functions/gnutls_pubkey_get_pk_rsa_raw.short b/doc/functions/gnutls_pubkey_get_pk_rsa_raw.short
new file mode 100644 (file)
index 0000000..4930f8d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_pk_rsa_raw} (gnutls_pubkey_t @var{key}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e})
diff --git a/doc/functions/gnutls_pubkey_get_preferred_hash_algorithm.short b/doc/functions/gnutls_pubkey_get_preferred_hash_algorithm.short
new file mode 100644 (file)
index 0000000..052db90
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_preferred_hash_algorithm} (gnutls_pubkey_t @var{key}, gnutls_digest_algorithm_t *                                             @var{hash}, unsigned int * @var{mand})
diff --git a/doc/functions/gnutls_pubkey_get_verify_algorithm.short b/doc/functions/gnutls_pubkey_get_verify_algorithm.short
new file mode 100644 (file)
index 0000000..2f0cb2a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_get_verify_algorithm} (gnutls_pubkey_t @var{key}, const gnutls_datum_t * @var{signature}, gnutls_digest_algorithm_t * @var{hash})
diff --git a/doc/functions/gnutls_pubkey_import.short b/doc/functions/gnutls_pubkey_import.short
new file mode 100644 (file)
index 0000000..5a96e4b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import} (gnutls_pubkey_t @var{key}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_pubkey_import_dsa_raw.short b/doc/functions/gnutls_pubkey_import_dsa_raw.short
new file mode 100644 (file)
index 0000000..bbb1867
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_dsa_raw} (gnutls_pubkey_t @var{key}, const gnutls_datum_t * @var{p}, const gnutls_datum_t * @var{q}, const gnutls_datum_t * @var{g}, const gnutls_datum_t * @var{y})
diff --git a/doc/functions/gnutls_pubkey_import_ecc_raw.short b/doc/functions/gnutls_pubkey_import_ecc_raw.short
new file mode 100644 (file)
index 0000000..074e426
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_ecc_raw} (gnutls_pubkey_t @var{key}, gnutls_ecc_curve_t @var{curve}, const gnutls_datum_t * @var{x}, const gnutls_datum_t * @var{y})
diff --git a/doc/functions/gnutls_pubkey_import_ecc_x962.short b/doc/functions/gnutls_pubkey_import_ecc_x962.short
new file mode 100644 (file)
index 0000000..6f70f4c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_ecc_x962} (gnutls_pubkey_t @var{key}, const gnutls_datum_t * @var{parameters}, const gnutls_datum_t * @var{ecpoint})
diff --git a/doc/functions/gnutls_pubkey_import_openpgp.short b/doc/functions/gnutls_pubkey_import_openpgp.short
new file mode 100644 (file)
index 0000000..58bbed1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_openpgp} (gnutls_pubkey_t @var{key}, gnutls_openpgp_crt_t @var{crt}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pubkey_import_pkcs11.short b/doc/functions/gnutls_pubkey_import_pkcs11.short
new file mode 100644 (file)
index 0000000..a2dd42a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_pkcs11} (gnutls_pubkey_t @var{key}, gnutls_pkcs11_obj_t @var{obj}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pubkey_import_pkcs11_url.short b/doc/functions/gnutls_pubkey_import_pkcs11_url.short
new file mode 100644 (file)
index 0000000..4d51a88
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_pkcs11_url} (gnutls_pubkey_t @var{key}, const char * @var{url}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pubkey_import_privkey.short b/doc/functions/gnutls_pubkey_import_privkey.short
new file mode 100644 (file)
index 0000000..83f2be8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_privkey} (gnutls_pubkey_t @var{key}, gnutls_privkey_t @var{pkey}, unsigned int @var{usage}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pubkey_import_rsa_raw.short b/doc/functions/gnutls_pubkey_import_rsa_raw.short
new file mode 100644 (file)
index 0000000..d36699f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_rsa_raw} (gnutls_pubkey_t @var{key}, const gnutls_datum_t * @var{m}, const gnutls_datum_t * @var{e})
diff --git a/doc/functions/gnutls_pubkey_import_x509.short b/doc/functions/gnutls_pubkey_import_x509.short
new file mode 100644 (file)
index 0000000..55c1f18
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_import_x509} (gnutls_pubkey_t @var{key}, gnutls_x509_crt_t @var{crt}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_pubkey_init.short b/doc/functions/gnutls_pubkey_init.short
new file mode 100644 (file)
index 0000000..f998595
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_init} (gnutls_pubkey_t * @var{key})
diff --git a/doc/functions/gnutls_pubkey_set_key_usage.short b/doc/functions/gnutls_pubkey_set_key_usage.short
new file mode 100644 (file)
index 0000000..8ae65dd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_set_key_usage} (gnutls_pubkey_t @var{key}, unsigned int @var{usage})
diff --git a/doc/functions/gnutls_pubkey_verify_data.short b/doc/functions/gnutls_pubkey_verify_data.short
new file mode 100644 (file)
index 0000000..6d385c9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_verify_data} (gnutls_pubkey_t @var{pubkey}, unsigned int @var{flags}, const gnutls_datum_t * @var{data}, const gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_pubkey_verify_data2.short b/doc/functions/gnutls_pubkey_verify_data2.short
new file mode 100644 (file)
index 0000000..9786ee7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_verify_data2} (gnutls_pubkey_t @var{pubkey}, gnutls_sign_algorithm_t @var{algo}, unsigned int @var{flags}, const gnutls_datum_t * @var{data}, const gnutls_datum_t * @var{signature})
index 31328fb..26b3159 100644 (file)
 @var{signature}: contains the signature
 
 This function will verify the given signed digest, using the
-parameters from the public key. Use @code{gnutls_pubkey_verify_hash2()} 
-instead of this function.
+parameters from the public key. 
+
+Deprecated. This function cannot be easily used securely. 
+Use @code{gnutls_pubkey_verify_hash2()}  instead.
 
 @strong{Returns:} In case of a verification failure @code{GNUTLS_E_PK_SIG_VERIFY_FAILED}  
 is returned, and zero or positive code on success.
diff --git a/doc/functions/gnutls_pubkey_verify_hash.short b/doc/functions/gnutls_pubkey_verify_hash.short
new file mode 100644 (file)
index 0000000..36020bb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_verify_hash} (gnutls_pubkey_t @var{key}, unsigned int @var{flags}, const gnutls_datum_t * @var{hash}, const gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_pubkey_verify_hash2.short b/doc/functions/gnutls_pubkey_verify_hash2.short
new file mode 100644 (file)
index 0000000..632f0c8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_pubkey_verify_hash2} (gnutls_pubkey_t @var{key}, gnutls_sign_algorithm_t @var{algo}, unsigned int @var{flags}, const gnutls_datum_t * @var{hash}, const gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_random_art.short b/doc/functions/gnutls_random_art.short
new file mode 100644 (file)
index 0000000..44bcd5c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_random_art} (gnutls_random_art_t @var{type}, const char* @var{key_type}, unsigned int @var{key_size}, void * @var{fpr}, size_t @var{fpr_size}, gnutls_datum_t* @var{art})
diff --git a/doc/functions/gnutls_record_check_pending.short b/doc/functions/gnutls_record_check_pending.short
new file mode 100644 (file)
index 0000000..ccceb41
--- /dev/null
@@ -0,0 +1 @@
+@item @var{size_t} @ref{gnutls_record_check_pending} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_record_disable_padding.short b/doc/functions/gnutls_record_disable_padding.short
new file mode 100644 (file)
index 0000000..8b980f4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_record_disable_padding} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_record_get_direction.short b/doc/functions/gnutls_record_get_direction.short
new file mode 100644 (file)
index 0000000..5e2a645
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_record_get_direction} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_record_get_discarded.short b/doc/functions/gnutls_record_get_discarded.short
new file mode 100644 (file)
index 0000000..f0a9afc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{unsigned int} @ref{gnutls_record_get_discarded} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_record_get_max_size.short b/doc/functions/gnutls_record_get_max_size.short
new file mode 100644 (file)
index 0000000..ecd3cd3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{size_t} @ref{gnutls_record_get_max_size} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_record_recv.short b/doc/functions/gnutls_record_recv.short
new file mode 100644 (file)
index 0000000..abde599
--- /dev/null
@@ -0,0 +1 @@
+@item @var{ssize_t} @ref{gnutls_record_recv} (gnutls_session_t @var{session}, void * @var{data}, size_t @var{data_size})
diff --git a/doc/functions/gnutls_record_recv_seq.short b/doc/functions/gnutls_record_recv_seq.short
new file mode 100644 (file)
index 0000000..2f04363
--- /dev/null
@@ -0,0 +1 @@
+@item @var{ssize_t} @ref{gnutls_record_recv_seq} (gnutls_session_t @var{session}, void * @var{data}, size_t @var{data_size}, unsigned char * @var{seq})
diff --git a/doc/functions/gnutls_record_send.short b/doc/functions/gnutls_record_send.short
new file mode 100644 (file)
index 0000000..9b086aa
--- /dev/null
@@ -0,0 +1 @@
+@item @var{ssize_t} @ref{gnutls_record_send} (gnutls_session_t @var{session}, const void * @var{data}, size_t @var{data_size})
diff --git a/doc/functions/gnutls_record_set_max_size.short b/doc/functions/gnutls_record_set_max_size.short
new file mode 100644 (file)
index 0000000..6b9a9e9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{ssize_t} @ref{gnutls_record_set_max_size} (gnutls_session_t @var{session}, size_t @var{size})
diff --git a/doc/functions/gnutls_rehandshake.short b/doc/functions/gnutls_rehandshake.short
new file mode 100644 (file)
index 0000000..5c56e6c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rehandshake} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_rnd.short b/doc/functions/gnutls_rnd.short
new file mode 100644 (file)
index 0000000..66903ab
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rnd} (gnutls_rnd_level_t @var{level}, void * @var{data}, size_t @var{len})
diff --git a/doc/functions/gnutls_rsa_export_get_modulus_bits.short b/doc/functions/gnutls_rsa_export_get_modulus_bits.short
new file mode 100644 (file)
index 0000000..8d86155
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_export_get_modulus_bits} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_rsa_export_get_pubkey.short b/doc/functions/gnutls_rsa_export_get_pubkey.short
new file mode 100644 (file)
index 0000000..bcd8068
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_export_get_pubkey} (gnutls_session_t @var{session}, gnutls_datum_t * @var{exponent}, gnutls_datum_t * @var{modulus})
diff --git a/doc/functions/gnutls_rsa_params_cpy.short b/doc/functions/gnutls_rsa_params_cpy.short
new file mode 100644 (file)
index 0000000..2e6f7f1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_params_cpy} (gnutls_rsa_params_t @var{dst}, gnutls_rsa_params_t @var{src})
diff --git a/doc/functions/gnutls_rsa_params_deinit.short b/doc/functions/gnutls_rsa_params_deinit.short
new file mode 100644 (file)
index 0000000..dd8c659
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_rsa_params_deinit} (gnutls_rsa_params_t @var{rsa_params})
diff --git a/doc/functions/gnutls_rsa_params_export_pkcs1.short b/doc/functions/gnutls_rsa_params_export_pkcs1.short
new file mode 100644 (file)
index 0000000..29a1ab5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_params_export_pkcs1} (gnutls_rsa_params_t @var{params}, gnutls_x509_crt_fmt_t @var{format}, unsigned char * @var{params_data}, size_t * @var{params_data_size})
diff --git a/doc/functions/gnutls_rsa_params_export_raw.short b/doc/functions/gnutls_rsa_params_export_raw.short
new file mode 100644 (file)
index 0000000..da68328
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_params_export_raw} (gnutls_rsa_params_t @var{rsa}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e}, gnutls_datum_t * @var{d}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{u}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_rsa_params_generate2.short b/doc/functions/gnutls_rsa_params_generate2.short
new file mode 100644 (file)
index 0000000..a680bc9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_params_generate2} (gnutls_rsa_params_t @var{params}, unsigned int @var{bits})
diff --git a/doc/functions/gnutls_rsa_params_import_pkcs1.short b/doc/functions/gnutls_rsa_params_import_pkcs1.short
new file mode 100644 (file)
index 0000000..55b8142
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_params_import_pkcs1} (gnutls_rsa_params_t @var{params}, const gnutls_datum_t * @var{pkcs1_params}, gnutls_x509_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_rsa_params_import_raw.short b/doc/functions/gnutls_rsa_params_import_raw.short
new file mode 100644 (file)
index 0000000..7d38fb5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_params_import_raw} (gnutls_rsa_params_t @var{rsa_params}, const gnutls_datum_t * @var{m}, const gnutls_datum_t * @var{e}, const gnutls_datum_t * @var{d}, const gnutls_datum_t * @var{p}, const gnutls_datum_t * @var{q}, const gnutls_datum_t * @var{u})
diff --git a/doc/functions/gnutls_rsa_params_init.short b/doc/functions/gnutls_rsa_params_init.short
new file mode 100644 (file)
index 0000000..8b24f74
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_rsa_params_init} (gnutls_rsa_params_t * @var{rsa_params})
diff --git a/doc/functions/gnutls_safe_renegotiation_status.short b/doc/functions/gnutls_safe_renegotiation_status.short
new file mode 100644 (file)
index 0000000..f5d52f3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_safe_renegotiation_status} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_sec_param_get_name.short b/doc/functions/gnutls_sec_param_get_name.short
new file mode 100644 (file)
index 0000000..14afd79
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_sec_param_get_name} (gnutls_sec_param_t @var{param})
diff --git a/doc/functions/gnutls_sec_param_to_pk_bits.short b/doc/functions/gnutls_sec_param_to_pk_bits.short
new file mode 100644 (file)
index 0000000..300afe8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{unsigned int} @ref{gnutls_sec_param_to_pk_bits} (gnutls_pk_algorithm_t @var{algo}, gnutls_sec_param_t @var{param})
diff --git a/doc/functions/gnutls_server_name_get.short b/doc/functions/gnutls_server_name_get.short
new file mode 100644 (file)
index 0000000..5ab520a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_server_name_get} (gnutls_session_t @var{session}, void * @var{data}, size_t * @var{data_length}, unsigned int * @var{type}, unsigned int @var{indx})
diff --git a/doc/functions/gnutls_server_name_set.short b/doc/functions/gnutls_server_name_set.short
new file mode 100644 (file)
index 0000000..f970163
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_server_name_set} (gnutls_session_t @var{session}, gnutls_server_name_type_t @var{type}, const void * @var{name}, size_t @var{name_length})
diff --git a/doc/functions/gnutls_session_channel_binding.short b/doc/functions/gnutls_session_channel_binding.short
new file mode 100644 (file)
index 0000000..3149360
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_channel_binding} (gnutls_session_t @var{session}, gnutls_channel_binding_t @var{cbtype}, gnutls_datum_t * @var{cb})
diff --git a/doc/functions/gnutls_session_enable_compatibility_mode.short b/doc/functions/gnutls_session_enable_compatibility_mode.short
new file mode 100644 (file)
index 0000000..ffde9a6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_session_enable_compatibility_mode} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_session_get_data.short b/doc/functions/gnutls_session_get_data.short
new file mode 100644 (file)
index 0000000..7fb27e4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_get_data} (gnutls_session_t @var{session}, void * @var{session_data}, size_t * @var{session_data_size})
diff --git a/doc/functions/gnutls_session_get_data2.short b/doc/functions/gnutls_session_get_data2.short
new file mode 100644 (file)
index 0000000..7b0774d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_get_data2} (gnutls_session_t @var{session}, gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_session_get_id.short b/doc/functions/gnutls_session_get_id.short
new file mode 100644 (file)
index 0000000..c765847
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_get_id} (gnutls_session_t @var{session}, void * @var{session_id}, size_t * @var{session_id_size})
diff --git a/doc/functions/gnutls_session_get_ptr.short b/doc/functions/gnutls_session_get_ptr.short
new file mode 100644 (file)
index 0000000..61cc948
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void *} @ref{gnutls_session_get_ptr} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_session_get_random.short b/doc/functions/gnutls_session_get_random.short
new file mode 100644 (file)
index 0000000..9884d0c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_session_get_random} (gnutls_session_t @var{session}, gnutls_datum_t* @var{client}, gnutls_datum_t* @var{server})
diff --git a/doc/functions/gnutls_session_is_resumed.short b/doc/functions/gnutls_session_is_resumed.short
new file mode 100644 (file)
index 0000000..92c9ab7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_is_resumed} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_session_resumption_requested.short b/doc/functions/gnutls_session_resumption_requested.short
new file mode 100644 (file)
index 0000000..b9cf02e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_resumption_requested} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_session_set_data.short b/doc/functions/gnutls_session_set_data.short
new file mode 100644 (file)
index 0000000..085e6b1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_set_data} (gnutls_session_t @var{session}, const void * @var{session_data}, size_t @var{session_data_size})
diff --git a/doc/functions/gnutls_session_set_premaster.short b/doc/functions/gnutls_session_set_premaster.short
new file mode 100644 (file)
index 0000000..c3b3b1e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_set_premaster} (gnutls_session_t @var{session}, unsigned int @var{entity}, gnutls_protocol_t @var{version}, gnutls_kx_algorithm_t @var{kx}, gnutls_cipher_algorithm_t @var{cipher}, gnutls_mac_algorithm_t @var{mac}, gnutls_compression_method_t @var{comp}, const gnutls_datum_t* @var{master}, const gnutls_datum_t * @var{session_id})
diff --git a/doc/functions/gnutls_session_set_ptr.short b/doc/functions/gnutls_session_set_ptr.short
new file mode 100644 (file)
index 0000000..a5610ae
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_session_set_ptr} (gnutls_session_t @var{session}, void * @var{ptr})
diff --git a/doc/functions/gnutls_session_ticket_enable_client.short b/doc/functions/gnutls_session_ticket_enable_client.short
new file mode 100644 (file)
index 0000000..2163ec5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_ticket_enable_client} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_session_ticket_enable_server.short b/doc/functions/gnutls_session_ticket_enable_server.short
new file mode 100644 (file)
index 0000000..6e4b427
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_ticket_enable_server} (gnutls_session_t @var{session}, const gnutls_datum_t * @var{key})
diff --git a/doc/functions/gnutls_session_ticket_key_generate.short b/doc/functions/gnutls_session_ticket_key_generate.short
new file mode 100644 (file)
index 0000000..0bd7157
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_session_ticket_key_generate} (gnutls_datum_t * @var{key})
diff --git a/doc/functions/gnutls_set_default_export_priority.short b/doc/functions/gnutls_set_default_export_priority.short
new file mode 100644 (file)
index 0000000..8994356
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_set_default_export_priority} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_set_default_priority.short b/doc/functions/gnutls_set_default_priority.short
new file mode 100644 (file)
index 0000000..97be056
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_set_default_priority} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_sign_algorithm_get_requested.short b/doc/functions/gnutls_sign_algorithm_get_requested.short
new file mode 100644 (file)
index 0000000..c6e7f5c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_sign_algorithm_get_requested} (gnutls_session_t @var{session}, size_t @var{indx}, gnutls_sign_algorithm_t * @var{algo})
diff --git a/doc/functions/gnutls_sign_callback_get.short b/doc/functions/gnutls_sign_callback_get.short
new file mode 100644 (file)
index 0000000..229df3b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_sign_func} @ref{gnutls_sign_callback_get} (gnutls_session_t @var{session}, void ** @var{userdata})
diff --git a/doc/functions/gnutls_sign_callback_set.short b/doc/functions/gnutls_sign_callback_set.short
new file mode 100644 (file)
index 0000000..c1d922c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_sign_callback_set} (gnutls_session_t @var{session}, gnutls_sign_func @var{sign_func}, void * @var{userdata})
diff --git a/doc/functions/gnutls_sign_get_id.short b/doc/functions/gnutls_sign_get_id.short
new file mode 100644 (file)
index 0000000..58797ba
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_sign_algorithm_t} @ref{gnutls_sign_get_id} (const char * @var{name})
diff --git a/doc/functions/gnutls_sign_get_name.short b/doc/functions/gnutls_sign_get_name.short
new file mode 100644 (file)
index 0000000..6ad4180
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_sign_get_name} (gnutls_sign_algorithm_t @var{algorithm})
diff --git a/doc/functions/gnutls_sign_list.short b/doc/functions/gnutls_sign_list.short
new file mode 100644 (file)
index 0000000..0667b4d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const gnutls_sign_algorithm_t *} @ref{gnutls_sign_list} ( @var{void})
diff --git a/doc/functions/gnutls_srp_allocate_client_credentials.short b/doc/functions/gnutls_srp_allocate_client_credentials.short
new file mode 100644 (file)
index 0000000..7e90afe
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_allocate_client_credentials} (gnutls_srp_client_credentials_t * @var{sc})
diff --git a/doc/functions/gnutls_srp_allocate_server_credentials.short b/doc/functions/gnutls_srp_allocate_server_credentials.short
new file mode 100644 (file)
index 0000000..538d5a8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_allocate_server_credentials} (gnutls_srp_server_credentials_t * @var{sc})
diff --git a/doc/functions/gnutls_srp_base64_decode.short b/doc/functions/gnutls_srp_base64_decode.short
new file mode 100644 (file)
index 0000000..e49ae2d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_base64_decode} (const gnutls_datum_t * @var{b64_data}, char * @var{result}, size_t * @var{result_size})
diff --git a/doc/functions/gnutls_srp_base64_decode_alloc.short b/doc/functions/gnutls_srp_base64_decode_alloc.short
new file mode 100644 (file)
index 0000000..3be8e5b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_base64_decode_alloc} (const gnutls_datum_t * @var{b64_data}, gnutls_datum_t * @var{result})
diff --git a/doc/functions/gnutls_srp_base64_encode.short b/doc/functions/gnutls_srp_base64_encode.short
new file mode 100644 (file)
index 0000000..189e297
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_base64_encode} (const gnutls_datum_t * @var{data}, char * @var{result}, size_t * @var{result_size})
diff --git a/doc/functions/gnutls_srp_base64_encode_alloc.short b/doc/functions/gnutls_srp_base64_encode_alloc.short
new file mode 100644 (file)
index 0000000..cc37007
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_base64_encode_alloc} (const gnutls_datum_t * @var{data}, gnutls_datum_t * @var{result})
diff --git a/doc/functions/gnutls_srp_free_client_credentials.short b/doc/functions/gnutls_srp_free_client_credentials.short
new file mode 100644 (file)
index 0000000..ac8c3dc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_srp_free_client_credentials} (gnutls_srp_client_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_srp_free_server_credentials.short b/doc/functions/gnutls_srp_free_server_credentials.short
new file mode 100644 (file)
index 0000000..a7f3c1d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_srp_free_server_credentials} (gnutls_srp_server_credentials_t @var{sc})
diff --git a/doc/functions/gnutls_srp_server_get_username.short b/doc/functions/gnutls_srp_server_get_username.short
new file mode 100644 (file)
index 0000000..4fac2f5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_srp_server_get_username} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_srp_set_client_credentials.short b/doc/functions/gnutls_srp_set_client_credentials.short
new file mode 100644 (file)
index 0000000..ac5b936
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_set_client_credentials} (gnutls_srp_client_credentials_t @var{res}, const char * @var{username}, const char * @var{password})
diff --git a/doc/functions/gnutls_srp_set_client_credentials_function.short b/doc/functions/gnutls_srp_set_client_credentials_function.short
new file mode 100644 (file)
index 0000000..9054eea
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_srp_set_client_credentials_function} (gnutls_srp_client_credentials_t                                             @var{cred}, gnutls_srp_client_credentials_function                                             * @var{func})
diff --git a/doc/functions/gnutls_srp_set_prime_bits.short b/doc/functions/gnutls_srp_set_prime_bits.short
new file mode 100644 (file)
index 0000000..7004913
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_srp_set_prime_bits} (gnutls_session_t @var{session}, unsigned int @var{bits})
diff --git a/doc/functions/gnutls_srp_set_server_credentials_file.short b/doc/functions/gnutls_srp_set_server_credentials_file.short
new file mode 100644 (file)
index 0000000..d86a5d9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_set_server_credentials_file} (gnutls_srp_server_credentials_t @var{res}, const char * @var{password_file}, const char * @var{password_conf_file})
diff --git a/doc/functions/gnutls_srp_set_server_credentials_function.short b/doc/functions/gnutls_srp_set_server_credentials_function.short
new file mode 100644 (file)
index 0000000..07125fb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_srp_set_server_credentials_function} (gnutls_srp_server_credentials_t                                             @var{cred}, gnutls_srp_server_credentials_function                                             * @var{func})
diff --git a/doc/functions/gnutls_srp_verifier.short b/doc/functions/gnutls_srp_verifier.short
new file mode 100644 (file)
index 0000000..d667f50
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_srp_verifier} (const char * @var{username}, const char * @var{password}, const gnutls_datum_t * @var{salt}, const gnutls_datum_t * @var{generator}, const gnutls_datum_t * @var{prime}, gnutls_datum_t * @var{res})
diff --git a/doc/functions/gnutls_store_commitment.short b/doc/functions/gnutls_store_commitment.short
new file mode 100644 (file)
index 0000000..2d1121e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_store_commitment} (const char* @var{db_name}, gnutls_tdb_t @var{tdb}, const char* @var{host}, const char* @var{service}, gnutls_digest_algorithm_t @var{hash_algo}, const gnutls_datum_t* @var{hash}, time_t @var{expiration}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_store_pubkey.short b/doc/functions/gnutls_store_pubkey.short
new file mode 100644 (file)
index 0000000..612a8fe
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_store_pubkey} (const char* @var{db_name}, gnutls_tdb_t @var{tdb}, const char* @var{host}, const char* @var{service}, gnutls_certificate_type_t @var{cert_type}, const gnutls_datum_t * @var{cert}, time_t @var{expiration}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_strerror.short b/doc/functions/gnutls_strerror.short
new file mode 100644 (file)
index 0000000..0ac759d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_strerror} (int @var{error})
diff --git a/doc/functions/gnutls_strerror_name.short b/doc/functions/gnutls_strerror_name.short
new file mode 100644 (file)
index 0000000..3ba6d9a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_strerror_name} (int @var{error})
diff --git a/doc/functions/gnutls_supplemental_get_name.short b/doc/functions/gnutls_supplemental_get_name.short
new file mode 100644 (file)
index 0000000..634e190
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char *} @ref{gnutls_supplemental_get_name} (gnutls_supplemental_data_format_type_t @var{type})
diff --git a/doc/functions/gnutls_tdb_deinit.short b/doc/functions/gnutls_tdb_deinit.short
new file mode 100644 (file)
index 0000000..f0fbd40
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_tdb_deinit} (gnutls_tdb_t @var{tdb})
diff --git a/doc/functions/gnutls_tdb_init.short b/doc/functions/gnutls_tdb_init.short
new file mode 100644 (file)
index 0000000..2dc405d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_tdb_init} (gnutls_tdb_t* @var{tdb})
diff --git a/doc/functions/gnutls_tdb_set_store_commitment_func.short b/doc/functions/gnutls_tdb_set_store_commitment_func.short
new file mode 100644 (file)
index 0000000..07f9e3d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_tdb_set_store_commitment_func} (gnutls_tdb_t @var{tdb}, gnutls_tdb_store_commitment_func @var{cstore})
diff --git a/doc/functions/gnutls_tdb_set_store_func.short b/doc/functions/gnutls_tdb_set_store_func.short
new file mode 100644 (file)
index 0000000..2e5515e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_tdb_set_store_func} (gnutls_tdb_t @var{tdb}, gnutls_tdb_store_func @var{store})
diff --git a/doc/functions/gnutls_tdb_set_verify_func.short b/doc/functions/gnutls_tdb_set_verify_func.short
new file mode 100644 (file)
index 0000000..839cc6e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_tdb_set_verify_func} (gnutls_tdb_t @var{tdb}, gnutls_tdb_verify_func @var{verify})
diff --git a/doc/functions/gnutls_transport_get_ptr.short b/doc/functions/gnutls_transport_get_ptr.short
new file mode 100644 (file)
index 0000000..78b7dd9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_transport_ptr_t} @ref{gnutls_transport_get_ptr} (gnutls_session_t @var{session})
diff --git a/doc/functions/gnutls_transport_get_ptr2.short b/doc/functions/gnutls_transport_get_ptr2.short
new file mode 100644 (file)
index 0000000..80ba84c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_get_ptr2} (gnutls_session_t @var{session}, gnutls_transport_ptr_t * @var{recv_ptr}, gnutls_transport_ptr_t * @var{send_ptr})
diff --git a/doc/functions/gnutls_transport_set_errno.short b/doc/functions/gnutls_transport_set_errno.short
new file mode 100644 (file)
index 0000000..e851955
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_set_errno} (gnutls_session_t @var{session}, int @var{err})
diff --git a/doc/functions/gnutls_transport_set_errno_function.short b/doc/functions/gnutls_transport_set_errno_function.short
new file mode 100644 (file)
index 0000000..60cdc70
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_set_errno_function} (gnutls_session_t @var{session}, gnutls_errno_func @var{errno_func})
diff --git a/doc/functions/gnutls_transport_set_ptr.short b/doc/functions/gnutls_transport_set_ptr.short
new file mode 100644 (file)
index 0000000..8d7515e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_set_ptr} (gnutls_session_t @var{session}, gnutls_transport_ptr_t @var{ptr})
diff --git a/doc/functions/gnutls_transport_set_ptr2.short b/doc/functions/gnutls_transport_set_ptr2.short
new file mode 100644 (file)
index 0000000..3733b4f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_set_ptr2} (gnutls_session_t @var{session}, gnutls_transport_ptr_t @var{recv_ptr}, gnutls_transport_ptr_t @var{send_ptr})
diff --git a/doc/functions/gnutls_transport_set_pull_function.short b/doc/functions/gnutls_transport_set_pull_function.short
new file mode 100644 (file)
index 0000000..0d1c3bf
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_set_pull_function} (gnutls_session_t @var{session}, gnutls_pull_func @var{pull_func})
diff --git a/doc/functions/gnutls_transport_set_pull_timeout_function.short b/doc/functions/gnutls_transport_set_pull_timeout_function.short
new file mode 100644 (file)
index 0000000..9595847
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_set_pull_timeout_function} (gnutls_session_t @var{session}, gnutls_pull_timeout_func @var{func})
diff --git a/doc/functions/gnutls_transport_set_push_function.short b/doc/functions/gnutls_transport_set_push_function.short
new file mode 100644 (file)
index 0000000..75a1718
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_set_push_function} (gnutls_session_t @var{session}, gnutls_push_func @var{push_func})
diff --git a/doc/functions/gnutls_transport_set_vec_push_function.short b/doc/functions/gnutls_transport_set_vec_push_function.short
new file mode 100644 (file)
index 0000000..2d46785
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_transport_set_vec_push_function} (gnutls_session_t @var{session}, gnutls_vec_push_func @var{vec_func})
diff --git a/doc/functions/gnutls_verify_stored_pubkey.short b/doc/functions/gnutls_verify_stored_pubkey.short
new file mode 100644 (file)
index 0000000..74e250a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_verify_stored_pubkey} (const char* @var{db_name}, gnutls_tdb_t @var{tdb}, const char* @var{host}, const char* @var{service}, gnutls_certificate_type_t @var{cert_type}, const gnutls_datum_t * @var{cert}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crl_check_issuer.short b/doc/functions/gnutls_x509_crl_check_issuer.short
new file mode 100644 (file)
index 0000000..15b4980
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_check_issuer} (gnutls_x509_crl_t @var{crl}, gnutls_x509_crt_t @var{issuer})
diff --git a/doc/functions/gnutls_x509_crl_deinit.short b/doc/functions/gnutls_x509_crl_deinit.short
new file mode 100644 (file)
index 0000000..f1f7e01
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_x509_crl_deinit} (gnutls_x509_crl_t @var{crl})
diff --git a/doc/functions/gnutls_x509_crl_export.short b/doc/functions/gnutls_x509_crl_export.short
new file mode 100644 (file)
index 0000000..1ff7e7c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_export} (gnutls_x509_crl_t @var{crl}, gnutls_x509_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_crl_get_authority_key_gn_serial.short b/doc/functions/gnutls_x509_crl_get_authority_key_gn_serial.short
new file mode 100644 (file)
index 0000000..b5fee99
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_authority_key_gn_serial} (gnutls_x509_crl_t @var{crl}, unsigned int @var{seq}, void * @var{alt}, size_t * @var{alt_size}, unsigned int * @var{alt_type}, void* @var{serial}, size_t * @var{serial_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crl_get_authority_key_id.short b/doc/functions/gnutls_x509_crl_get_authority_key_id.short
new file mode 100644 (file)
index 0000000..1efb90f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_authority_key_id} (gnutls_x509_crl_t @var{crl}, void * @var{id}, size_t * @var{id_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crl_get_crt_count.short b/doc/functions/gnutls_x509_crl_get_crt_count.short
new file mode 100644 (file)
index 0000000..0ef8c3b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_crt_count} (gnutls_x509_crl_t @var{crl})
diff --git a/doc/functions/gnutls_x509_crl_get_crt_serial.short b/doc/functions/gnutls_x509_crl_get_crt_serial.short
new file mode 100644 (file)
index 0000000..788a803
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_crt_serial} (gnutls_x509_crl_t @var{crl}, int @var{indx}, unsigned char * @var{serial}, size_t * @var{serial_size}, time_t * @var{t})
diff --git a/doc/functions/gnutls_x509_crl_get_dn_oid.short b/doc/functions/gnutls_x509_crl_get_dn_oid.short
new file mode 100644 (file)
index 0000000..54fd331
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_dn_oid} (gnutls_x509_crl_t @var{crl}, int @var{indx}, void * @var{oid}, size_t * @var{sizeof_oid})
diff --git a/doc/functions/gnutls_x509_crl_get_extension_data.short b/doc/functions/gnutls_x509_crl_get_extension_data.short
new file mode 100644 (file)
index 0000000..7b73b7a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_extension_data} (gnutls_x509_crl_t @var{crl}, int @var{indx}, void * @var{data}, size_t * @var{sizeof_data})
diff --git a/doc/functions/gnutls_x509_crl_get_extension_info.short b/doc/functions/gnutls_x509_crl_get_extension_info.short
new file mode 100644 (file)
index 0000000..d3f3eba
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_extension_info} (gnutls_x509_crl_t @var{crl}, int @var{indx}, void * @var{oid}, size_t * @var{sizeof_oid}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crl_get_extension_oid.short b/doc/functions/gnutls_x509_crl_get_extension_oid.short
new file mode 100644 (file)
index 0000000..dde87e0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_extension_oid} (gnutls_x509_crl_t @var{crl}, int @var{indx}, void * @var{oid}, size_t * @var{sizeof_oid})
diff --git a/doc/functions/gnutls_x509_crl_get_issuer_dn.short b/doc/functions/gnutls_x509_crl_get_issuer_dn.short
new file mode 100644 (file)
index 0000000..07a8468
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_issuer_dn} (const gnutls_x509_crl_t @var{crl}, char * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_crl_get_issuer_dn_by_oid.short b/doc/functions/gnutls_x509_crl_get_issuer_dn_by_oid.short
new file mode 100644 (file)
index 0000000..28bc9ee
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_issuer_dn_by_oid} (gnutls_x509_crl_t @var{crl}, const char * @var{oid}, int @var{indx}, unsigned int @var{raw_flag}, void * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_crl_get_next_update.short b/doc/functions/gnutls_x509_crl_get_next_update.short
new file mode 100644 (file)
index 0000000..e1ad16c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_x509_crl_get_next_update} (gnutls_x509_crl_t @var{crl})
diff --git a/doc/functions/gnutls_x509_crl_get_number.short b/doc/functions/gnutls_x509_crl_get_number.short
new file mode 100644 (file)
index 0000000..11e6c48
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_number} (gnutls_x509_crl_t @var{crl}, void * @var{ret}, size_t * @var{ret_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crl_get_raw_issuer_dn.short b/doc/functions/gnutls_x509_crl_get_raw_issuer_dn.short
new file mode 100644 (file)
index 0000000..a30c584
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_raw_issuer_dn} (gnutls_x509_crl_t @var{crl}, gnutls_datum_t * @var{dn})
diff --git a/doc/functions/gnutls_x509_crl_get_signature.short b/doc/functions/gnutls_x509_crl_get_signature.short
new file mode 100644 (file)
index 0000000..3f50c2d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_signature} (gnutls_x509_crl_t @var{crl}, char * @var{sig}, size_t * @var{sizeof_sig})
diff --git a/doc/functions/gnutls_x509_crl_get_signature_algorithm.short b/doc/functions/gnutls_x509_crl_get_signature_algorithm.short
new file mode 100644 (file)
index 0000000..a1344bb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_signature_algorithm} (gnutls_x509_crl_t @var{crl})
diff --git a/doc/functions/gnutls_x509_crl_get_this_update.short b/doc/functions/gnutls_x509_crl_get_this_update.short
new file mode 100644 (file)
index 0000000..748db4e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_x509_crl_get_this_update} (gnutls_x509_crl_t @var{crl})
diff --git a/doc/functions/gnutls_x509_crl_get_version.short b/doc/functions/gnutls_x509_crl_get_version.short
new file mode 100644 (file)
index 0000000..57d25de
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_get_version} (gnutls_x509_crl_t @var{crl})
diff --git a/doc/functions/gnutls_x509_crl_import.short b/doc/functions/gnutls_x509_crl_import.short
new file mode 100644 (file)
index 0000000..514773f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_import} (gnutls_x509_crl_t @var{crl}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_x509_crl_init.short b/doc/functions/gnutls_x509_crl_init.short
new file mode 100644 (file)
index 0000000..20104ce
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_init} (gnutls_x509_crl_t * @var{crl})
diff --git a/doc/functions/gnutls_x509_crl_list_import.short b/doc/functions/gnutls_x509_crl_list_import.short
new file mode 100644 (file)
index 0000000..6c782c7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_list_import} (gnutls_x509_crl_t * @var{crls}, unsigned int * @var{crl_max}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crl_list_import2.short b/doc/functions/gnutls_x509_crl_list_import2.short
new file mode 100644 (file)
index 0000000..7a663ee
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_list_import2} (gnutls_x509_crl_t ** @var{crls}, unsigned int * @var{size}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crl_print.short b/doc/functions/gnutls_x509_crl_print.short
new file mode 100644 (file)
index 0000000..ccea1d4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_print} (gnutls_x509_crl_t @var{crl}, gnutls_certificate_print_formats_t @var{format}, gnutls_datum_t * @var{out})
diff --git a/doc/functions/gnutls_x509_crl_privkey_sign.short b/doc/functions/gnutls_x509_crl_privkey_sign.short
new file mode 100644 (file)
index 0000000..81de914
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_privkey_sign} (gnutls_x509_crl_t @var{crl}, gnutls_x509_crt_t @var{issuer}, gnutls_privkey_t @var{issuer_key}, gnutls_digest_algorithm_t @var{dig}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crl_set_authority_key_id.short b/doc/functions/gnutls_x509_crl_set_authority_key_id.short
new file mode 100644 (file)
index 0000000..c02821f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_set_authority_key_id} (gnutls_x509_crl_t @var{crl}, const void * @var{id}, size_t @var{id_size})
diff --git a/doc/functions/gnutls_x509_crl_set_crt.short b/doc/functions/gnutls_x509_crl_set_crt.short
new file mode 100644 (file)
index 0000000..c47f124
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_set_crt} (gnutls_x509_crl_t @var{crl}, gnutls_x509_crt_t @var{crt}, time_t @var{revocation_time})
diff --git a/doc/functions/gnutls_x509_crl_set_crt_serial.short b/doc/functions/gnutls_x509_crl_set_crt_serial.short
new file mode 100644 (file)
index 0000000..a136fb7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_set_crt_serial} (gnutls_x509_crl_t @var{crl}, const void * @var{serial}, size_t @var{serial_size}, time_t @var{revocation_time})
diff --git a/doc/functions/gnutls_x509_crl_set_next_update.short b/doc/functions/gnutls_x509_crl_set_next_update.short
new file mode 100644 (file)
index 0000000..3bd87cb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_set_next_update} (gnutls_x509_crl_t @var{crl}, time_t @var{exp_time})
diff --git a/doc/functions/gnutls_x509_crl_set_number.short b/doc/functions/gnutls_x509_crl_set_number.short
new file mode 100644 (file)
index 0000000..f33a63a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_set_number} (gnutls_x509_crl_t @var{crl}, const void * @var{nr}, size_t @var{nr_size})
diff --git a/doc/functions/gnutls_x509_crl_set_this_update.short b/doc/functions/gnutls_x509_crl_set_this_update.short
new file mode 100644 (file)
index 0000000..eeea603
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_set_this_update} (gnutls_x509_crl_t @var{crl}, time_t @var{act_time})
diff --git a/doc/functions/gnutls_x509_crl_set_version.short b/doc/functions/gnutls_x509_crl_set_version.short
new file mode 100644 (file)
index 0000000..dc7deac
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_set_version} (gnutls_x509_crl_t @var{crl}, unsigned int @var{version})
diff --git a/doc/functions/gnutls_x509_crl_sign.short b/doc/functions/gnutls_x509_crl_sign.short
new file mode 100644 (file)
index 0000000..27a7c1b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_sign} (gnutls_x509_crl_t @var{crl}, gnutls_x509_crt_t @var{issuer}, gnutls_x509_privkey_t @var{issuer_key})
diff --git a/doc/functions/gnutls_x509_crl_sign2.short b/doc/functions/gnutls_x509_crl_sign2.short
new file mode 100644 (file)
index 0000000..90e5442
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_sign2} (gnutls_x509_crl_t @var{crl}, gnutls_x509_crt_t @var{issuer}, gnutls_x509_privkey_t @var{issuer_key}, gnutls_digest_algorithm_t @var{dig}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crl_verify.short b/doc/functions/gnutls_x509_crl_verify.short
new file mode 100644 (file)
index 0000000..db22fc1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crl_verify} (gnutls_x509_crl_t @var{crl}, const gnutls_x509_crt_t * @var{CA_list}, int @var{CA_list_length}, unsigned int @var{flags}, unsigned int * @var{verify})
diff --git a/doc/functions/gnutls_x509_crq_deinit.short b/doc/functions/gnutls_x509_crq_deinit.short
new file mode 100644 (file)
index 0000000..0b866f4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_x509_crq_deinit} (gnutls_x509_crq_t @var{crq})
diff --git a/doc/functions/gnutls_x509_crq_export.short b/doc/functions/gnutls_x509_crq_export.short
new file mode 100644 (file)
index 0000000..8814504
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_export} (gnutls_x509_crq_t @var{crq}, gnutls_x509_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_crq_get_attribute_by_oid.short b/doc/functions/gnutls_x509_crq_get_attribute_by_oid.short
new file mode 100644 (file)
index 0000000..46944f7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_attribute_by_oid} (gnutls_x509_crq_t @var{crq}, const char * @var{oid}, int @var{indx}, void * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_crq_get_attribute_data.short b/doc/functions/gnutls_x509_crq_get_attribute_data.short
new file mode 100644 (file)
index 0000000..07774b1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_attribute_data} (gnutls_x509_crq_t @var{crq}, int @var{indx}, void * @var{data}, size_t * @var{sizeof_data})
diff --git a/doc/functions/gnutls_x509_crq_get_attribute_info.short b/doc/functions/gnutls_x509_crq_get_attribute_info.short
new file mode 100644 (file)
index 0000000..2c4df87
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_attribute_info} (gnutls_x509_crq_t @var{crq}, int @var{indx}, void * @var{oid}, size_t * @var{sizeof_oid})
diff --git a/doc/functions/gnutls_x509_crq_get_basic_constraints.short b/doc/functions/gnutls_x509_crq_get_basic_constraints.short
new file mode 100644 (file)
index 0000000..54bd034
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_basic_constraints} (gnutls_x509_crq_t @var{crq}, unsigned int * @var{critical}, unsigned int * @var{ca}, int * @var{pathlen})
diff --git a/doc/functions/gnutls_x509_crq_get_challenge_password.short b/doc/functions/gnutls_x509_crq_get_challenge_password.short
new file mode 100644 (file)
index 0000000..829e67d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_challenge_password} (gnutls_x509_crq_t @var{crq}, char * @var{pass}, size_t * @var{sizeof_pass})
diff --git a/doc/functions/gnutls_x509_crq_get_dn.short b/doc/functions/gnutls_x509_crq_get_dn.short
new file mode 100644 (file)
index 0000000..2274e30
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_dn} (gnutls_x509_crq_t @var{crq}, char * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_crq_get_dn_by_oid.short b/doc/functions/gnutls_x509_crq_get_dn_by_oid.short
new file mode 100644 (file)
index 0000000..46b6f93
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_dn_by_oid} (gnutls_x509_crq_t @var{crq}, const char * @var{oid}, int @var{indx}, unsigned int @var{raw_flag}, void * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_crq_get_dn_oid.short b/doc/functions/gnutls_x509_crq_get_dn_oid.short
new file mode 100644 (file)
index 0000000..016f71e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_dn_oid} (gnutls_x509_crq_t @var{crq}, int @var{indx}, void * @var{oid}, size_t * @var{sizeof_oid})
diff --git a/doc/functions/gnutls_x509_crq_get_extension_by_oid.short b/doc/functions/gnutls_x509_crq_get_extension_by_oid.short
new file mode 100644 (file)
index 0000000..aa6a6c0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_extension_by_oid} (gnutls_x509_crq_t @var{crq}, const char * @var{oid}, int @var{indx}, void * @var{buf}, size_t * @var{sizeof_buf}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crq_get_extension_data.short b/doc/functions/gnutls_x509_crq_get_extension_data.short
new file mode 100644 (file)
index 0000000..dd787d5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_extension_data} (gnutls_x509_crq_t @var{crq}, int @var{indx}, void * @var{data}, size_t * @var{sizeof_data})
diff --git a/doc/functions/gnutls_x509_crq_get_extension_info.short b/doc/functions/gnutls_x509_crq_get_extension_info.short
new file mode 100644 (file)
index 0000000..274e859
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_extension_info} (gnutls_x509_crq_t @var{crq}, int @var{indx}, void * @var{oid}, size_t * @var{sizeof_oid}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crq_get_key_id.short b/doc/functions/gnutls_x509_crq_get_key_id.short
new file mode 100644 (file)
index 0000000..a9ac5f5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_key_id} (gnutls_x509_crq_t @var{crq}, unsigned int @var{flags}, unsigned char * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_crq_get_key_purpose_oid.short b/doc/functions/gnutls_x509_crq_get_key_purpose_oid.short
new file mode 100644 (file)
index 0000000..7aba5d7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_key_purpose_oid} (gnutls_x509_crq_t @var{crq}, int @var{indx}, void * @var{oid}, size_t * @var{sizeof_oid}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crq_get_key_rsa_raw.short b/doc/functions/gnutls_x509_crq_get_key_rsa_raw.short
new file mode 100644 (file)
index 0000000..6ebaec8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_key_rsa_raw} (gnutls_x509_crq_t @var{crq}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e})
diff --git a/doc/functions/gnutls_x509_crq_get_key_usage.short b/doc/functions/gnutls_x509_crq_get_key_usage.short
new file mode 100644 (file)
index 0000000..86a88fb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_key_usage} (gnutls_x509_crq_t @var{crq}, unsigned int * @var{key_usage}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crq_get_pk_algorithm.short b/doc/functions/gnutls_x509_crq_get_pk_algorithm.short
new file mode 100644 (file)
index 0000000..094b645
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_pk_algorithm} (gnutls_x509_crq_t @var{crq}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_x509_crq_get_private_key_usage_period.short b/doc/functions/gnutls_x509_crq_get_private_key_usage_period.short
new file mode 100644 (file)
index 0000000..d28f2cd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_private_key_usage_period} (gnutls_x509_crq_t @var{crq}, time_t* @var{activation}, time_t* @var{expiration}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crq_get_subject_alt_name.short b/doc/functions/gnutls_x509_crq_get_subject_alt_name.short
new file mode 100644 (file)
index 0000000..05c8716
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_subject_alt_name} (gnutls_x509_crq_t @var{crq}, unsigned int @var{seq}, void * @var{ret}, size_t * @var{ret_size}, unsigned int * @var{ret_type}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crq_get_subject_alt_othername_oid.short b/doc/functions/gnutls_x509_crq_get_subject_alt_othername_oid.short
new file mode 100644 (file)
index 0000000..2657d7c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_subject_alt_othername_oid} (gnutls_x509_crq_t @var{crq}, unsigned int @var{seq}, void * @var{ret}, size_t * @var{ret_size})
diff --git a/doc/functions/gnutls_x509_crq_get_version.short b/doc/functions/gnutls_x509_crq_get_version.short
new file mode 100644 (file)
index 0000000..3a9f80a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_get_version} (gnutls_x509_crq_t @var{crq})
diff --git a/doc/functions/gnutls_x509_crq_import.short b/doc/functions/gnutls_x509_crq_import.short
new file mode 100644 (file)
index 0000000..d88c13c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_import} (gnutls_x509_crq_t @var{crq}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_x509_crq_init.short b/doc/functions/gnutls_x509_crq_init.short
new file mode 100644 (file)
index 0000000..40eda51
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_init} (gnutls_x509_crq_t * @var{crq})
diff --git a/doc/functions/gnutls_x509_crq_print.short b/doc/functions/gnutls_x509_crq_print.short
new file mode 100644 (file)
index 0000000..3dd9245
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_print} (gnutls_x509_crq_t @var{crq}, gnutls_certificate_print_formats_t @var{format}, gnutls_datum_t * @var{out})
diff --git a/doc/functions/gnutls_x509_crq_privkey_sign.short b/doc/functions/gnutls_x509_crq_privkey_sign.short
new file mode 100644 (file)
index 0000000..145bd1a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_privkey_sign} (gnutls_x509_crq_t @var{crq}, gnutls_privkey_t @var{key}, gnutls_digest_algorithm_t @var{dig}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crq_set_attribute_by_oid.short b/doc/functions/gnutls_x509_crq_set_attribute_by_oid.short
new file mode 100644 (file)
index 0000000..1c734fa
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_attribute_by_oid} (gnutls_x509_crq_t @var{crq}, const char * @var{oid}, void * @var{buf}, size_t @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_crq_set_basic_constraints.short b/doc/functions/gnutls_x509_crq_set_basic_constraints.short
new file mode 100644 (file)
index 0000000..cc77177
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_basic_constraints} (gnutls_x509_crq_t @var{crq}, unsigned int @var{ca}, int @var{pathLenConstraint})
diff --git a/doc/functions/gnutls_x509_crq_set_challenge_password.short b/doc/functions/gnutls_x509_crq_set_challenge_password.short
new file mode 100644 (file)
index 0000000..343a67a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_challenge_password} (gnutls_x509_crq_t @var{crq}, const char * @var{pass})
diff --git a/doc/functions/gnutls_x509_crq_set_dn_by_oid.short b/doc/functions/gnutls_x509_crq_set_dn_by_oid.short
new file mode 100644 (file)
index 0000000..5ff9952
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_dn_by_oid} (gnutls_x509_crq_t @var{crq}, const char * @var{oid}, unsigned int @var{raw_flag}, const void * @var{data}, unsigned int @var{sizeof_data})
diff --git a/doc/functions/gnutls_x509_crq_set_key.short b/doc/functions/gnutls_x509_crq_set_key.short
new file mode 100644 (file)
index 0000000..0b475f2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_key} (gnutls_x509_crq_t @var{crq}, gnutls_x509_privkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_crq_set_key_purpose_oid.short b/doc/functions/gnutls_x509_crq_set_key_purpose_oid.short
new file mode 100644 (file)
index 0000000..ed6c344
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_key_purpose_oid} (gnutls_x509_crq_t @var{crq}, const void * @var{oid}, unsigned int @var{critical})
diff --git a/doc/functions/gnutls_x509_crq_set_key_rsa_raw.short b/doc/functions/gnutls_x509_crq_set_key_rsa_raw.short
new file mode 100644 (file)
index 0000000..568162e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_key_rsa_raw} (gnutls_x509_crq_t @var{crq}, const gnutls_datum_t * @var{m}, const gnutls_datum_t * @var{e})
diff --git a/doc/functions/gnutls_x509_crq_set_key_usage.short b/doc/functions/gnutls_x509_crq_set_key_usage.short
new file mode 100644 (file)
index 0000000..2475e2f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_key_usage} (gnutls_x509_crq_t @var{crq}, unsigned int @var{usage})
diff --git a/doc/functions/gnutls_x509_crq_set_private_key_usage_period.short b/doc/functions/gnutls_x509_crq_set_private_key_usage_period.short
new file mode 100644 (file)
index 0000000..06010d1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_private_key_usage_period} (gnutls_x509_crq_t @var{crq}, time_t @var{activation}, time_t @var{expiration})
diff --git a/doc/functions/gnutls_x509_crq_set_pubkey.short b/doc/functions/gnutls_x509_crq_set_pubkey.short
new file mode 100644 (file)
index 0000000..e9b3a07
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_pubkey} (gnutls_x509_crq_t @var{crq}, gnutls_pubkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_crq_set_subject_alt_name.short b/doc/functions/gnutls_x509_crq_set_subject_alt_name.short
new file mode 100644 (file)
index 0000000..dc2a4dc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_subject_alt_name} (gnutls_x509_crq_t @var{crq}, gnutls_x509_subject_alt_name_t @var{nt}, const void * @var{data}, unsigned int @var{data_size}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crq_set_version.short b/doc/functions/gnutls_x509_crq_set_version.short
new file mode 100644 (file)
index 0000000..c5e6639
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_set_version} (gnutls_x509_crq_t @var{crq}, unsigned int @var{version})
diff --git a/doc/functions/gnutls_x509_crq_sign.short b/doc/functions/gnutls_x509_crq_sign.short
new file mode 100644 (file)
index 0000000..6e3ddcd
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_sign} (gnutls_x509_crq_t @var{crq}, gnutls_x509_privkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_crq_sign2.short b/doc/functions/gnutls_x509_crq_sign2.short
new file mode 100644 (file)
index 0000000..8e5baca
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_sign2} (gnutls_x509_crq_t @var{crq}, gnutls_x509_privkey_t @var{key}, gnutls_digest_algorithm_t @var{dig}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crq_verify.short b/doc/functions/gnutls_x509_crq_verify.short
new file mode 100644 (file)
index 0000000..7a02190
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crq_verify} (gnutls_x509_crq_t @var{crq}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crt_check_hostname.short b/doc/functions/gnutls_x509_crt_check_hostname.short
new file mode 100644 (file)
index 0000000..c41efa1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_check_hostname} (gnutls_x509_crt_t @var{cert}, const char * @var{hostname})
index 7a327b6..0f04328 100644 (file)
@@ -8,7 +8,8 @@
 @var{issuer}: is the certificate of a possible issuer
 
 This function will check if the given certificate was issued by the
-given issuer.
+given issuer. It checks the DN fields and the authority
+key identifier and subject key identifier fields match.
 
 @strong{Returns:} It will return true (1) if the given certificate is issued
 by the given issuer, and false (0) if not.  A negative error code is
diff --git a/doc/functions/gnutls_x509_crt_check_issuer.short b/doc/functions/gnutls_x509_crt_check_issuer.short
new file mode 100644 (file)
index 0000000..333d1d6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_check_issuer} (gnutls_x509_crt_t @var{cert}, gnutls_x509_crt_t @var{issuer})
diff --git a/doc/functions/gnutls_x509_crt_check_revocation.short b/doc/functions/gnutls_x509_crt_check_revocation.short
new file mode 100644 (file)
index 0000000..e6c7bc0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_check_revocation} (gnutls_x509_crt_t @var{cert}, const gnutls_x509_crl_t * @var{crl_list}, int @var{crl_list_length})
diff --git a/doc/functions/gnutls_x509_crt_cpy_crl_dist_points.short b/doc/functions/gnutls_x509_crt_cpy_crl_dist_points.short
new file mode 100644 (file)
index 0000000..85b2cc1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_cpy_crl_dist_points} (gnutls_x509_crt_t @var{dst}, gnutls_x509_crt_t @var{src})
diff --git a/doc/functions/gnutls_x509_crt_deinit.short b/doc/functions/gnutls_x509_crt_deinit.short
new file mode 100644 (file)
index 0000000..6ea7a02
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_x509_crt_deinit} (gnutls_x509_crt_t @var{cert})
diff --git a/doc/functions/gnutls_x509_crt_export.short b/doc/functions/gnutls_x509_crt_export.short
new file mode 100644 (file)
index 0000000..46a5502
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_export} (gnutls_x509_crt_t @var{cert}, gnutls_x509_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_crt_get_activation_time.short b/doc/functions/gnutls_x509_crt_get_activation_time.short
new file mode 100644 (file)
index 0000000..fdb97d1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_x509_crt_get_activation_time} (gnutls_x509_crt_t @var{cert})
diff --git a/doc/functions/gnutls_x509_crt_get_authority_info_access.short b/doc/functions/gnutls_x509_crt_get_authority_info_access.short
new file mode 100644 (file)
index 0000000..1e0a9fa
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_authority_info_access} (gnutls_x509_crt_t @var{crt}, unsigned int @var{seq}, int @var{what}, gnutls_datum_t * @var{data}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_authority_key_gn_serial.short b/doc/functions/gnutls_x509_crt_get_authority_key_gn_serial.short
new file mode 100644 (file)
index 0000000..e0a148c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_authority_key_gn_serial} (gnutls_x509_crt_t @var{cert}, unsigned int @var{seq}, void * @var{alt}, size_t * @var{alt_size}, unsigned int * @var{alt_type}, void* @var{serial}, size_t * @var{serial_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_authority_key_id.short b/doc/functions/gnutls_x509_crt_get_authority_key_id.short
new file mode 100644 (file)
index 0000000..ea86f96
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_authority_key_id} (gnutls_x509_crt_t @var{cert}, void * @var{id}, size_t * @var{id_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_basic_constraints.short b/doc/functions/gnutls_x509_crt_get_basic_constraints.short
new file mode 100644 (file)
index 0000000..64afc5d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_basic_constraints} (gnutls_x509_crt_t @var{cert}, unsigned int * @var{critical}, unsigned int * @var{ca}, int * @var{pathlen})
diff --git a/doc/functions/gnutls_x509_crt_get_ca_status.short b/doc/functions/gnutls_x509_crt_get_ca_status.short
new file mode 100644 (file)
index 0000000..651caf2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_ca_status} (gnutls_x509_crt_t @var{cert}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_crl_dist_points.short b/doc/functions/gnutls_x509_crt_get_crl_dist_points.short
new file mode 100644 (file)
index 0000000..fcaf0e9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_crl_dist_points} (gnutls_x509_crt_t @var{cert}, unsigned int @var{seq}, void * @var{ret}, size_t * @var{ret_size}, unsigned int * @var{reason_flags}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_dn.short b/doc/functions/gnutls_x509_crt_get_dn.short
new file mode 100644 (file)
index 0000000..31e5a7a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_dn} (gnutls_x509_crt_t @var{cert}, char * @var{buf}, size_t * @var{buf_size})
diff --git a/doc/functions/gnutls_x509_crt_get_dn_by_oid.short b/doc/functions/gnutls_x509_crt_get_dn_by_oid.short
new file mode 100644 (file)
index 0000000..f1ba5c8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_dn_by_oid} (gnutls_x509_crt_t @var{cert}, const char * @var{oid}, int @var{indx}, unsigned int @var{raw_flag}, void * @var{buf}, size_t * @var{buf_size})
diff --git a/doc/functions/gnutls_x509_crt_get_dn_oid.short b/doc/functions/gnutls_x509_crt_get_dn_oid.short
new file mode 100644 (file)
index 0000000..cff796c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_dn_oid} (gnutls_x509_crt_t @var{cert}, int @var{indx}, void * @var{oid}, size_t * @var{oid_size})
diff --git a/doc/functions/gnutls_x509_crt_get_expiration_time.short b/doc/functions/gnutls_x509_crt_get_expiration_time.short
new file mode 100644 (file)
index 0000000..fcf1763
--- /dev/null
@@ -0,0 +1 @@
+@item @var{time_t} @ref{gnutls_x509_crt_get_expiration_time} (gnutls_x509_crt_t @var{cert})
diff --git a/doc/functions/gnutls_x509_crt_get_extension_by_oid.short b/doc/functions/gnutls_x509_crt_get_extension_by_oid.short
new file mode 100644 (file)
index 0000000..c41419f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_extension_by_oid} (gnutls_x509_crt_t @var{cert}, const char * @var{oid}, int @var{indx}, void * @var{buf}, size_t * @var{buf_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_extension_data.short b/doc/functions/gnutls_x509_crt_get_extension_data.short
new file mode 100644 (file)
index 0000000..6e9b975
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_extension_data} (gnutls_x509_crt_t @var{cert}, int @var{indx}, void * @var{data}, size_t * @var{sizeof_data})
diff --git a/doc/functions/gnutls_x509_crt_get_extension_info.short b/doc/functions/gnutls_x509_crt_get_extension_info.short
new file mode 100644 (file)
index 0000000..c77136e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_extension_info} (gnutls_x509_crt_t @var{cert}, int @var{indx}, void * @var{oid}, size_t * @var{oid_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_extension_oid.short b/doc/functions/gnutls_x509_crt_get_extension_oid.short
new file mode 100644 (file)
index 0000000..5d747f1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_extension_oid} (gnutls_x509_crt_t @var{cert}, int @var{indx}, void * @var{oid}, size_t * @var{oid_size})
diff --git a/doc/functions/gnutls_x509_crt_get_fingerprint.short b/doc/functions/gnutls_x509_crt_get_fingerprint.short
new file mode 100644 (file)
index 0000000..aa29d5d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_fingerprint} (gnutls_x509_crt_t @var{cert}, gnutls_digest_algorithm_t @var{algo}, void * @var{buf}, size_t * @var{buf_size})
diff --git a/doc/functions/gnutls_x509_crt_get_issuer.short b/doc/functions/gnutls_x509_crt_get_issuer.short
new file mode 100644 (file)
index 0000000..b6721ec
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_issuer} (gnutls_x509_crt_t @var{cert}, gnutls_x509_dn_t * @var{dn})
diff --git a/doc/functions/gnutls_x509_crt_get_issuer_alt_name.short b/doc/functions/gnutls_x509_crt_get_issuer_alt_name.short
new file mode 100644 (file)
index 0000000..4acdc1a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_issuer_alt_name} (gnutls_x509_crt_t @var{cert}, unsigned int @var{seq}, void * @var{ian}, size_t * @var{ian_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_issuer_alt_name2.short b/doc/functions/gnutls_x509_crt_get_issuer_alt_name2.short
new file mode 100644 (file)
index 0000000..088632e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_issuer_alt_name2} (gnutls_x509_crt_t @var{cert}, unsigned int @var{seq}, void * @var{ian}, size_t * @var{ian_size}, unsigned int * @var{ian_type}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_issuer_alt_othername_oid.short b/doc/functions/gnutls_x509_crt_get_issuer_alt_othername_oid.short
new file mode 100644 (file)
index 0000000..a84cc06
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_issuer_alt_othername_oid} (gnutls_x509_crt_t @var{cert}, unsigned int @var{seq}, void * @var{ret}, size_t * @var{ret_size})
diff --git a/doc/functions/gnutls_x509_crt_get_issuer_dn.short b/doc/functions/gnutls_x509_crt_get_issuer_dn.short
new file mode 100644 (file)
index 0000000..460500b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_issuer_dn} (gnutls_x509_crt_t @var{cert}, char * @var{buf}, size_t * @var{buf_size})
diff --git a/doc/functions/gnutls_x509_crt_get_issuer_dn_by_oid.short b/doc/functions/gnutls_x509_crt_get_issuer_dn_by_oid.short
new file mode 100644 (file)
index 0000000..ea76f3e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_issuer_dn_by_oid} (gnutls_x509_crt_t @var{cert}, const char * @var{oid}, int @var{indx}, unsigned int @var{raw_flag}, void * @var{buf}, size_t * @var{buf_size})
diff --git a/doc/functions/gnutls_x509_crt_get_issuer_dn_oid.short b/doc/functions/gnutls_x509_crt_get_issuer_dn_oid.short
new file mode 100644 (file)
index 0000000..019a0c5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_issuer_dn_oid} (gnutls_x509_crt_t @var{cert}, int @var{indx}, void * @var{oid}, size_t * @var{oid_size})
diff --git a/doc/functions/gnutls_x509_crt_get_issuer_unique_id.short b/doc/functions/gnutls_x509_crt_get_issuer_unique_id.short
new file mode 100644 (file)
index 0000000..649a7fc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_issuer_unique_id} (gnutls_x509_crt_t @var{crt}, char * @var{buf}, size_t * @var{buf_size})
diff --git a/doc/functions/gnutls_x509_crt_get_key_id.short b/doc/functions/gnutls_x509_crt_get_key_id.short
new file mode 100644 (file)
index 0000000..255ed36
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_key_id} (gnutls_x509_crt_t @var{crt}, unsigned int @var{flags}, unsigned char * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_crt_get_key_purpose_oid.short b/doc/functions/gnutls_x509_crt_get_key_purpose_oid.short
new file mode 100644 (file)
index 0000000..baec1e2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_key_purpose_oid} (gnutls_x509_crt_t @var{cert}, int @var{indx}, void * @var{oid}, size_t * @var{oid_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_key_usage.short b/doc/functions/gnutls_x509_crt_get_key_usage.short
new file mode 100644 (file)
index 0000000..1cc9f15
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_key_usage} (gnutls_x509_crt_t @var{cert}, unsigned int * @var{key_usage}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_pk_algorithm.short b/doc/functions/gnutls_x509_crt_get_pk_algorithm.short
new file mode 100644 (file)
index 0000000..e71730d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_pk_algorithm} (gnutls_x509_crt_t @var{cert}, unsigned int * @var{bits})
diff --git a/doc/functions/gnutls_x509_crt_get_pk_dsa_raw.short b/doc/functions/gnutls_x509_crt_get_pk_dsa_raw.short
new file mode 100644 (file)
index 0000000..2452f07
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_pk_dsa_raw} (gnutls_x509_crt_t @var{crt}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{g}, gnutls_datum_t * @var{y})
diff --git a/doc/functions/gnutls_x509_crt_get_pk_rsa_raw.short b/doc/functions/gnutls_x509_crt_get_pk_rsa_raw.short
new file mode 100644 (file)
index 0000000..acfe456
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_pk_rsa_raw} (gnutls_x509_crt_t @var{crt}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e})
diff --git a/doc/functions/gnutls_x509_crt_get_preferred_hash_algorithm.short b/doc/functions/gnutls_x509_crt_get_preferred_hash_algorithm.short
new file mode 100644 (file)
index 0000000..6bd1780
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_preferred_hash_algorithm} (gnutls_x509_crt_t @var{crt}, gnutls_digest_algorithm_t *                                               @var{hash}, unsigned int * @var{mand})
diff --git a/doc/functions/gnutls_x509_crt_get_private_key_usage_period.short b/doc/functions/gnutls_x509_crt_get_private_key_usage_period.short
new file mode 100644 (file)
index 0000000..3d149df
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_private_key_usage_period} (gnutls_x509_crt_t @var{cert}, time_t* @var{activation}, time_t* @var{expiration}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_proxy.short b/doc/functions/gnutls_x509_crt_get_proxy.short
new file mode 100644 (file)
index 0000000..302ffd7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_proxy} (gnutls_x509_crt_t @var{cert}, unsigned int * @var{critical}, int * @var{pathlen}, char ** @var{policyLanguage}, char ** @var{policy}, size_t * @var{sizeof_policy})
index 2e932df..bb68fa9 100644 (file)
@@ -8,7 +8,7 @@
 @var{start}: will hold the starting point of the DN
 
 This function will return a pointer to the DER encoded DN structure and
-the length.
+the length. This points to allocated data that must be free'd using @code{gnutls_free()} .
 
 @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
 negative error value. or a negative error code on error.
diff --git a/doc/functions/gnutls_x509_crt_get_raw_dn.short b/doc/functions/gnutls_x509_crt_get_raw_dn.short
new file mode 100644 (file)
index 0000000..74ff8ee
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_raw_dn} (gnutls_x509_crt_t @var{cert}, gnutls_datum_t * @var{start})
index 2b3193f..0478712 100644 (file)
@@ -8,7 +8,7 @@
 @var{start}: will hold the starting point of the DN
 
 This function will return a pointer to the DER encoded DN structure
-and the length.
+and the length. This points to allocated data that must be free'd using @code{gnutls_free()} .
 
 @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
 negative error value.or a negative error code on error.
diff --git a/doc/functions/gnutls_x509_crt_get_raw_issuer_dn.short b/doc/functions/gnutls_x509_crt_get_raw_issuer_dn.short
new file mode 100644 (file)
index 0000000..fcb9948
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_raw_issuer_dn} (gnutls_x509_crt_t @var{cert}, gnutls_datum_t * @var{start})
diff --git a/doc/functions/gnutls_x509_crt_get_serial.short b/doc/functions/gnutls_x509_crt_get_serial.short
new file mode 100644 (file)
index 0000000..7c93142
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_serial} (gnutls_x509_crt_t @var{cert}, void * @var{result}, size_t * @var{result_size})
diff --git a/doc/functions/gnutls_x509_crt_get_signature.short b/doc/functions/gnutls_x509_crt_get_signature.short
new file mode 100644 (file)
index 0000000..12812ab
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_signature} (gnutls_x509_crt_t @var{cert}, char * @var{sig}, size_t * @var{sizeof_sig})
diff --git a/doc/functions/gnutls_x509_crt_get_signature_algorithm.short b/doc/functions/gnutls_x509_crt_get_signature_algorithm.short
new file mode 100644 (file)
index 0000000..c8a6085
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_signature_algorithm} (gnutls_x509_crt_t @var{cert})
diff --git a/doc/functions/gnutls_x509_crt_get_subject.short b/doc/functions/gnutls_x509_crt_get_subject.short
new file mode 100644 (file)
index 0000000..c3cb403
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_subject} (gnutls_x509_crt_t @var{cert}, gnutls_x509_dn_t * @var{dn})
diff --git a/doc/functions/gnutls_x509_crt_get_subject_alt_name.short b/doc/functions/gnutls_x509_crt_get_subject_alt_name.short
new file mode 100644 (file)
index 0000000..5e37b6e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_subject_alt_name} (gnutls_x509_crt_t @var{cert}, unsigned int @var{seq}, void * @var{san}, size_t * @var{san_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_subject_alt_name2.short b/doc/functions/gnutls_x509_crt_get_subject_alt_name2.short
new file mode 100644 (file)
index 0000000..398522c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_subject_alt_name2} (gnutls_x509_crt_t @var{cert}, unsigned int @var{seq}, void * @var{san}, size_t * @var{san_size}, unsigned int * @var{san_type}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_subject_alt_othername_oid.short b/doc/functions/gnutls_x509_crt_get_subject_alt_othername_oid.short
new file mode 100644 (file)
index 0000000..715a639
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_subject_alt_othername_oid} (gnutls_x509_crt_t @var{cert}, unsigned int @var{seq}, void * @var{oid}, size_t * @var{oid_size})
diff --git a/doc/functions/gnutls_x509_crt_get_subject_key_id.short b/doc/functions/gnutls_x509_crt_get_subject_key_id.short
new file mode 100644 (file)
index 0000000..861a1d6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_subject_key_id} (gnutls_x509_crt_t @var{cert}, void * @var{ret}, size_t * @var{ret_size}, unsigned int * @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_get_subject_unique_id.short b/doc/functions/gnutls_x509_crt_get_subject_unique_id.short
new file mode 100644 (file)
index 0000000..661234f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_subject_unique_id} (gnutls_x509_crt_t @var{crt}, char * @var{buf}, size_t * @var{buf_size})
diff --git a/doc/functions/gnutls_x509_crt_get_verify_algorithm.short b/doc/functions/gnutls_x509_crt_get_verify_algorithm.short
new file mode 100644 (file)
index 0000000..cff8d01
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_verify_algorithm} (gnutls_x509_crt_t @var{crt}, const gnutls_datum_t * @var{signature}, gnutls_digest_algorithm_t * @var{hash})
diff --git a/doc/functions/gnutls_x509_crt_get_version.short b/doc/functions/gnutls_x509_crt_get_version.short
new file mode 100644 (file)
index 0000000..0764837
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_get_version} (gnutls_x509_crt_t @var{cert})
diff --git a/doc/functions/gnutls_x509_crt_import.short b/doc/functions/gnutls_x509_crt_import.short
new file mode 100644 (file)
index 0000000..9137ecb
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_import} (gnutls_x509_crt_t @var{cert}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_x509_crt_import_pkcs11.short b/doc/functions/gnutls_x509_crt_import_pkcs11.short
new file mode 100644 (file)
index 0000000..2e67613
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_import_pkcs11} (gnutls_x509_crt_t @var{crt}, gnutls_pkcs11_obj_t @var{pkcs11_crt})
diff --git a/doc/functions/gnutls_x509_crt_import_pkcs11_url.short b/doc/functions/gnutls_x509_crt_import_pkcs11_url.short
new file mode 100644 (file)
index 0000000..24de580
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_import_pkcs11_url} (gnutls_x509_crt_t @var{crt}, const char * @var{url}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crt_init.short b/doc/functions/gnutls_x509_crt_init.short
new file mode 100644 (file)
index 0000000..e20eed1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_init} (gnutls_x509_crt_t * @var{cert})
diff --git a/doc/functions/gnutls_x509_crt_list_import.short b/doc/functions/gnutls_x509_crt_list_import.short
new file mode 100644 (file)
index 0000000..ec7225a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_list_import} (gnutls_x509_crt_t * @var{certs}, unsigned int * @var{cert_max}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format}, unsigned int @var{flags})
index b0fc422..ee6be77 100644 (file)
@@ -15,7 +15,7 @@
 
 This function will convert the given PEM encoded certificate list
 to the native gnutls_x509_crt_t format. The output will be stored
-in  @code{certs} which will be initialized.
+in  @code{certs} .  They will be automatically initialized.
 
 If the Certificate is PEM encoded it should have a header of "X509
 CERTIFICATE", or "CERTIFICATE".
diff --git a/doc/functions/gnutls_x509_crt_list_import2.short b/doc/functions/gnutls_x509_crt_list_import2.short
new file mode 100644 (file)
index 0000000..6583c69
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_list_import2} (gnutls_x509_crt_t ** @var{certs}, unsigned int * @var{size}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crt_list_import_pkcs11.short b/doc/functions/gnutls_x509_crt_list_import_pkcs11.short
new file mode 100644 (file)
index 0000000..7629dc4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_list_import_pkcs11} (gnutls_x509_crt_t * @var{certs}, unsigned int @var{cert_max}, gnutls_pkcs11_obj_t * const @var{objs}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crt_list_verify.short b/doc/functions/gnutls_x509_crt_list_verify.short
new file mode 100644 (file)
index 0000000..e59d5a5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_list_verify} (const gnutls_x509_crt_t * @var{cert_list}, int @var{cert_list_length}, const gnutls_x509_crt_t * @var{CA_list}, int @var{CA_list_length}, const gnutls_x509_crl_t * @var{CRL_list}, int @var{CRL_list_length}, unsigned int @var{flags}, unsigned int * @var{verify})
diff --git a/doc/functions/gnutls_x509_crt_print.short b/doc/functions/gnutls_x509_crt_print.short
new file mode 100644 (file)
index 0000000..f338aa4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_print} (gnutls_x509_crt_t @var{cert}, gnutls_certificate_print_formats_t @var{format}, gnutls_datum_t * @var{out})
diff --git a/doc/functions/gnutls_x509_crt_privkey_sign.short b/doc/functions/gnutls_x509_crt_privkey_sign.short
new file mode 100644 (file)
index 0000000..1e617c0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_privkey_sign} (gnutls_x509_crt_t @var{crt}, gnutls_x509_crt_t @var{issuer}, gnutls_privkey_t @var{issuer_key}, gnutls_digest_algorithm_t @var{dig}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crt_set_activation_time.short b/doc/functions/gnutls_x509_crt_set_activation_time.short
new file mode 100644 (file)
index 0000000..7698236
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_activation_time} (gnutls_x509_crt_t @var{cert}, time_t @var{act_time})
diff --git a/doc/functions/gnutls_x509_crt_set_authority_info_access.short b/doc/functions/gnutls_x509_crt_set_authority_info_access.short
new file mode 100644 (file)
index 0000000..cc58027
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_authority_info_access} (gnutls_x509_crt_t @var{crt}, int @var{what}, gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_x509_crt_set_authority_key_id.short b/doc/functions/gnutls_x509_crt_set_authority_key_id.short
new file mode 100644 (file)
index 0000000..32a3381
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_authority_key_id} (gnutls_x509_crt_t @var{cert}, const void * @var{id}, size_t @var{id_size})
diff --git a/doc/functions/gnutls_x509_crt_set_basic_constraints.short b/doc/functions/gnutls_x509_crt_set_basic_constraints.short
new file mode 100644 (file)
index 0000000..45300e4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_basic_constraints} (gnutls_x509_crt_t @var{crt}, unsigned int @var{ca}, int @var{pathLenConstraint})
diff --git a/doc/functions/gnutls_x509_crt_set_ca_status.short b/doc/functions/gnutls_x509_crt_set_ca_status.short
new file mode 100644 (file)
index 0000000..741dd90
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_ca_status} (gnutls_x509_crt_t @var{crt}, unsigned int @var{ca})
diff --git a/doc/functions/gnutls_x509_crt_set_crl_dist_points.short b/doc/functions/gnutls_x509_crt_set_crl_dist_points.short
new file mode 100644 (file)
index 0000000..81393b5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_crl_dist_points} (gnutls_x509_crt_t @var{crt}, gnutls_x509_subject_alt_name_t @var{type}, const void * @var{data_string}, unsigned int @var{reason_flags})
diff --git a/doc/functions/gnutls_x509_crt_set_crl_dist_points2.short b/doc/functions/gnutls_x509_crt_set_crl_dist_points2.short
new file mode 100644 (file)
index 0000000..40d12f4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_crl_dist_points2} (gnutls_x509_crt_t @var{crt}, gnutls_x509_subject_alt_name_t @var{type}, const void * @var{data}, unsigned int @var{data_size}, unsigned int @var{reason_flags})
diff --git a/doc/functions/gnutls_x509_crt_set_crq.short b/doc/functions/gnutls_x509_crt_set_crq.short
new file mode 100644 (file)
index 0000000..07e198b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_crq} (gnutls_x509_crt_t @var{crt}, gnutls_x509_crq_t @var{crq})
diff --git a/doc/functions/gnutls_x509_crt_set_crq_extensions.short b/doc/functions/gnutls_x509_crt_set_crq_extensions.short
new file mode 100644 (file)
index 0000000..646dd0b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_crq_extensions} (gnutls_x509_crt_t @var{crt}, gnutls_x509_crq_t @var{crq})
diff --git a/doc/functions/gnutls_x509_crt_set_dn_by_oid.short b/doc/functions/gnutls_x509_crt_set_dn_by_oid.short
new file mode 100644 (file)
index 0000000..f6e51d4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_dn_by_oid} (gnutls_x509_crt_t @var{crt}, const char * @var{oid}, unsigned int @var{raw_flag}, const void * @var{name}, unsigned int @var{sizeof_name})
diff --git a/doc/functions/gnutls_x509_crt_set_expiration_time.short b/doc/functions/gnutls_x509_crt_set_expiration_time.short
new file mode 100644 (file)
index 0000000..91f9fad
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_expiration_time} (gnutls_x509_crt_t @var{cert}, time_t @var{exp_time})
diff --git a/doc/functions/gnutls_x509_crt_set_extension_by_oid.short b/doc/functions/gnutls_x509_crt_set_extension_by_oid.short
new file mode 100644 (file)
index 0000000..685ae8b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_extension_by_oid} (gnutls_x509_crt_t @var{crt}, const char * @var{oid}, const void * @var{buf}, size_t @var{sizeof_buf}, unsigned int @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_set_issuer_dn_by_oid.short b/doc/functions/gnutls_x509_crt_set_issuer_dn_by_oid.short
new file mode 100644 (file)
index 0000000..18b918d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_issuer_dn_by_oid} (gnutls_x509_crt_t @var{crt}, const char * @var{oid}, unsigned int @var{raw_flag}, const void * @var{name}, unsigned int @var{sizeof_name})
diff --git a/doc/functions/gnutls_x509_crt_set_key.short b/doc/functions/gnutls_x509_crt_set_key.short
new file mode 100644 (file)
index 0000000..bef70b6
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_key} (gnutls_x509_crt_t @var{crt}, gnutls_x509_privkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_crt_set_key_purpose_oid.short b/doc/functions/gnutls_x509_crt_set_key_purpose_oid.short
new file mode 100644 (file)
index 0000000..6e64b16
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_key_purpose_oid} (gnutls_x509_crt_t @var{cert}, const void * @var{oid}, unsigned int @var{critical})
diff --git a/doc/functions/gnutls_x509_crt_set_key_usage.short b/doc/functions/gnutls_x509_crt_set_key_usage.short
new file mode 100644 (file)
index 0000000..67c855f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_key_usage} (gnutls_x509_crt_t @var{crt}, unsigned int @var{usage})
diff --git a/doc/functions/gnutls_x509_crt_set_private_key_usage_period.short b/doc/functions/gnutls_x509_crt_set_private_key_usage_period.short
new file mode 100644 (file)
index 0000000..a33675e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_private_key_usage_period} (gnutls_x509_crt_t @var{crt}, time_t @var{activation}, time_t @var{expiration})
diff --git a/doc/functions/gnutls_x509_crt_set_proxy.short b/doc/functions/gnutls_x509_crt_set_proxy.short
new file mode 100644 (file)
index 0000000..3a17f0b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_proxy} (gnutls_x509_crt_t @var{crt}, int @var{pathLenConstraint}, const char * @var{policyLanguage}, const char * @var{policy}, size_t @var{sizeof_policy})
diff --git a/doc/functions/gnutls_x509_crt_set_proxy_dn.short b/doc/functions/gnutls_x509_crt_set_proxy_dn.short
new file mode 100644 (file)
index 0000000..9a1af8a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_proxy_dn} (gnutls_x509_crt_t @var{crt}, gnutls_x509_crt_t @var{eecrt}, unsigned int @var{raw_flag}, const void * @var{name}, unsigned int @var{sizeof_name})
diff --git a/doc/functions/gnutls_x509_crt_set_pubkey.short b/doc/functions/gnutls_x509_crt_set_pubkey.short
new file mode 100644 (file)
index 0000000..3a0a51f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_pubkey} (gnutls_x509_crt_t @var{crt}, gnutls_pubkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_crt_set_serial.short b/doc/functions/gnutls_x509_crt_set_serial.short
new file mode 100644 (file)
index 0000000..ad251c8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_serial} (gnutls_x509_crt_t @var{cert}, const void * @var{serial}, size_t @var{serial_size})
diff --git a/doc/functions/gnutls_x509_crt_set_subject_alt_name.short b/doc/functions/gnutls_x509_crt_set_subject_alt_name.short
new file mode 100644 (file)
index 0000000..75f9be0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_subject_alt_name} (gnutls_x509_crt_t @var{crt}, gnutls_x509_subject_alt_name_t @var{type}, const void * @var{data}, unsigned int @var{data_size}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crt_set_subject_alternative_name.short b/doc/functions/gnutls_x509_crt_set_subject_alternative_name.short
new file mode 100644 (file)
index 0000000..f3a75d7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_subject_alternative_name} (gnutls_x509_crt_t @var{crt}, gnutls_x509_subject_alt_name_t                                               @var{type}, const char * @var{data_string})
diff --git a/doc/functions/gnutls_x509_crt_set_subject_key_id.short b/doc/functions/gnutls_x509_crt_set_subject_key_id.short
new file mode 100644 (file)
index 0000000..4a3173f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_subject_key_id} (gnutls_x509_crt_t @var{cert}, const void * @var{id}, size_t @var{id_size})
diff --git a/doc/functions/gnutls_x509_crt_set_version.short b/doc/functions/gnutls_x509_crt_set_version.short
new file mode 100644 (file)
index 0000000..7173e21
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_set_version} (gnutls_x509_crt_t @var{crt}, unsigned int @var{version})
diff --git a/doc/functions/gnutls_x509_crt_sign.short b/doc/functions/gnutls_x509_crt_sign.short
new file mode 100644 (file)
index 0000000..2915688
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_sign} (gnutls_x509_crt_t @var{crt}, gnutls_x509_crt_t @var{issuer}, gnutls_x509_privkey_t @var{issuer_key})
diff --git a/doc/functions/gnutls_x509_crt_sign2.short b/doc/functions/gnutls_x509_crt_sign2.short
new file mode 100644 (file)
index 0000000..6bcd51b
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_sign2} (gnutls_x509_crt_t @var{crt}, gnutls_x509_crt_t @var{issuer}, gnutls_x509_privkey_t @var{issuer_key}, gnutls_digest_algorithm_t @var{dig}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_crt_verify.short b/doc/functions/gnutls_x509_crt_verify.short
new file mode 100644 (file)
index 0000000..bd5e699
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_verify} (gnutls_x509_crt_t @var{cert}, const gnutls_x509_crt_t * @var{CA_list}, int @var{CA_list_length}, unsigned int @var{flags}, unsigned int * @var{verify})
diff --git a/doc/functions/gnutls_x509_crt_verify_data.short b/doc/functions/gnutls_x509_crt_verify_data.short
new file mode 100644 (file)
index 0000000..f20aac4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_verify_data} (gnutls_x509_crt_t @var{crt}, unsigned int @var{flags}, const gnutls_datum_t * @var{data}, const gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_x509_crt_verify_hash.short b/doc/functions/gnutls_x509_crt_verify_hash.short
new file mode 100644 (file)
index 0000000..d96d803
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_crt_verify_hash} (gnutls_x509_crt_t @var{crt}, unsigned int @var{flags}, const gnutls_datum_t * @var{hash}, const gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_x509_dn_deinit.short b/doc/functions/gnutls_x509_dn_deinit.short
new file mode 100644 (file)
index 0000000..23445be
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_x509_dn_deinit} (gnutls_x509_dn_t @var{dn})
diff --git a/doc/functions/gnutls_x509_dn_export.short b/doc/functions/gnutls_x509_dn_export.short
new file mode 100644 (file)
index 0000000..f694ee9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_dn_export} (gnutls_x509_dn_t @var{dn}, gnutls_x509_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_dn_get_rdn_ava.short b/doc/functions/gnutls_x509_dn_get_rdn_ava.short
new file mode 100644 (file)
index 0000000..9db704e
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_dn_get_rdn_ava} (gnutls_x509_dn_t @var{dn}, int @var{irdn}, int @var{iava}, gnutls_x509_ava_st * @var{ava})
diff --git a/doc/functions/gnutls_x509_dn_import.short b/doc/functions/gnutls_x509_dn_import.short
new file mode 100644 (file)
index 0000000..f036543
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_dn_import} (gnutls_x509_dn_t @var{dn}, const gnutls_datum_t * @var{data})
diff --git a/doc/functions/gnutls_x509_dn_init.short b/doc/functions/gnutls_x509_dn_init.short
new file mode 100644 (file)
index 0000000..e3d855d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_dn_init} (gnutls_x509_dn_t * @var{dn})
diff --git a/doc/functions/gnutls_x509_dn_oid_known.short b/doc/functions/gnutls_x509_dn_oid_known.short
new file mode 100644 (file)
index 0000000..28143ab
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_dn_oid_known} (const char * @var{oid})
diff --git a/doc/functions/gnutls_x509_dn_oid_name.short b/doc/functions/gnutls_x509_dn_oid_name.short
new file mode 100644 (file)
index 0000000..ebe9581
--- /dev/null
@@ -0,0 +1 @@
+@item @var{const char*} @ref{gnutls_x509_dn_oid_name} (const char * @var{oid}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_privkey_cpy.short b/doc/functions/gnutls_x509_privkey_cpy.short
new file mode 100644 (file)
index 0000000..d870998
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_cpy} (gnutls_x509_privkey_t @var{dst}, gnutls_x509_privkey_t @var{src})
diff --git a/doc/functions/gnutls_x509_privkey_deinit.short b/doc/functions/gnutls_x509_privkey_deinit.short
new file mode 100644 (file)
index 0000000..542e9b9
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_x509_privkey_deinit} (gnutls_x509_privkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_privkey_export.short b/doc/functions/gnutls_x509_privkey_export.short
new file mode 100644 (file)
index 0000000..7861434
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_export} (gnutls_x509_privkey_t @var{key}, gnutls_x509_crt_fmt_t @var{format}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_privkey_export_dsa_raw.short b/doc/functions/gnutls_x509_privkey_export_dsa_raw.short
new file mode 100644 (file)
index 0000000..2213fe0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_export_dsa_raw} (gnutls_x509_privkey_t @var{key}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{g}, gnutls_datum_t * @var{y}, gnutls_datum_t * @var{x})
diff --git a/doc/functions/gnutls_x509_privkey_export_ecc_raw.short b/doc/functions/gnutls_x509_privkey_export_ecc_raw.short
new file mode 100644 (file)
index 0000000..50c2d05
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_export_ecc_raw} (gnutls_x509_privkey_t @var{key}, gnutls_ecc_curve_t * @var{curve}, gnutls_datum_t * @var{x}, gnutls_datum_t * @var{y}, gnutls_datum_t* @var{k})
diff --git a/doc/functions/gnutls_x509_privkey_export_pkcs8.short b/doc/functions/gnutls_x509_privkey_export_pkcs8.short
new file mode 100644 (file)
index 0000000..7a17e3d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_export_pkcs8} (gnutls_x509_privkey_t @var{key}, gnutls_x509_crt_fmt_t @var{format}, const char * @var{password}, unsigned int @var{flags}, void * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_privkey_export_rsa_raw.short b/doc/functions/gnutls_x509_privkey_export_rsa_raw.short
new file mode 100644 (file)
index 0000000..3bb77b0
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_export_rsa_raw} (gnutls_x509_privkey_t @var{key}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e}, gnutls_datum_t * @var{d}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{u})
diff --git a/doc/functions/gnutls_x509_privkey_export_rsa_raw2.short b/doc/functions/gnutls_x509_privkey_export_rsa_raw2.short
new file mode 100644 (file)
index 0000000..c17c679
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_export_rsa_raw2} (gnutls_x509_privkey_t @var{key}, gnutls_datum_t * @var{m}, gnutls_datum_t * @var{e}, gnutls_datum_t * @var{d}, gnutls_datum_t * @var{p}, gnutls_datum_t * @var{q}, gnutls_datum_t * @var{u}, gnutls_datum_t * @var{e1}, gnutls_datum_t * @var{e2})
diff --git a/doc/functions/gnutls_x509_privkey_fix.short b/doc/functions/gnutls_x509_privkey_fix.short
new file mode 100644 (file)
index 0000000..b4071bf
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_fix} (gnutls_x509_privkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_privkey_generate.short b/doc/functions/gnutls_x509_privkey_generate.short
new file mode 100644 (file)
index 0000000..d87db54
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_generate} (gnutls_x509_privkey_t @var{key}, gnutls_pk_algorithm_t @var{algo}, unsigned int @var{bits}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_privkey_get_key_id.short b/doc/functions/gnutls_x509_privkey_get_key_id.short
new file mode 100644 (file)
index 0000000..2945af4
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_get_key_id} (gnutls_x509_privkey_t @var{key}, unsigned int @var{flags}, unsigned char * @var{output_data}, size_t * @var{output_data_size})
diff --git a/doc/functions/gnutls_x509_privkey_get_pk_algorithm.short b/doc/functions/gnutls_x509_privkey_get_pk_algorithm.short
new file mode 100644 (file)
index 0000000..b533f50
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_get_pk_algorithm} (gnutls_x509_privkey_t @var{key})
index 581bdd6..55a36d8 100644 (file)
@@ -13,8 +13,9 @@ This function will convert the given DER or PEM encoded key to the
 native @code{gnutls_x509_privkey_t}  format. The output will be stored in
  @code{key} .
 
-If the key is PEM encoded it should have a header of "RSA PRIVATE
-KEY", or "DSA PRIVATE KEY".
+If the key is PEM encoded it should have a header that contains "PRIVATE
+KEY". Note that this function falls back to PKCS @code{8}  decoding without
+password, if the default format fails to import.
 
 @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
 negative error value.
diff --git a/doc/functions/gnutls_x509_privkey_import.short b/doc/functions/gnutls_x509_privkey_import.short
new file mode 100644 (file)
index 0000000..3d67157
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_import} (gnutls_x509_privkey_t @var{key}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format})
diff --git a/doc/functions/gnutls_x509_privkey_import_dsa_raw.short b/doc/functions/gnutls_x509_privkey_import_dsa_raw.short
new file mode 100644 (file)
index 0000000..34adb13
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_import_dsa_raw} (gnutls_x509_privkey_t @var{key}, const gnutls_datum_t * @var{p}, const gnutls_datum_t * @var{q}, const gnutls_datum_t * @var{g}, const gnutls_datum_t * @var{y}, const gnutls_datum_t * @var{x})
diff --git a/doc/functions/gnutls_x509_privkey_import_ecc_raw.short b/doc/functions/gnutls_x509_privkey_import_ecc_raw.short
new file mode 100644 (file)
index 0000000..974d7b1
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_import_ecc_raw} (gnutls_x509_privkey_t @var{key}, gnutls_ecc_curve_t @var{curve}, const gnutls_datum_t * @var{x}, const gnutls_datum_t * @var{y}, const gnutls_datum_t * @var{k})
diff --git a/doc/functions/gnutls_x509_privkey_import_pkcs8.short b/doc/functions/gnutls_x509_privkey_import_pkcs8.short
new file mode 100644 (file)
index 0000000..0efb719
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_import_pkcs8} (gnutls_x509_privkey_t @var{key}, const gnutls_datum_t * @var{data}, gnutls_x509_crt_fmt_t @var{format}, const char * @var{password}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_privkey_import_rsa_raw.short b/doc/functions/gnutls_x509_privkey_import_rsa_raw.short
new file mode 100644 (file)
index 0000000..b5c295c
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_import_rsa_raw} (gnutls_x509_privkey_t @var{key}, const gnutls_datum_t * @var{m}, const gnutls_datum_t * @var{e}, const gnutls_datum_t * @var{d}, const gnutls_datum_t * @var{p}, const gnutls_datum_t * @var{q}, const gnutls_datum_t * @var{u})
diff --git a/doc/functions/gnutls_x509_privkey_import_rsa_raw2.short b/doc/functions/gnutls_x509_privkey_import_rsa_raw2.short
new file mode 100644 (file)
index 0000000..eada8e2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_import_rsa_raw2} (gnutls_x509_privkey_t @var{key}, const gnutls_datum_t * @var{m}, const gnutls_datum_t * @var{e}, const gnutls_datum_t * @var{d}, const gnutls_datum_t * @var{p}, const gnutls_datum_t * @var{q}, const gnutls_datum_t * @var{u}, const gnutls_datum_t * @var{e1}, const gnutls_datum_t * @var{e2})
diff --git a/doc/functions/gnutls_x509_privkey_init.short b/doc/functions/gnutls_x509_privkey_init.short
new file mode 100644 (file)
index 0000000..20057e8
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_init} (gnutls_x509_privkey_t * @var{key})
diff --git a/doc/functions/gnutls_x509_privkey_sec_param.short b/doc/functions/gnutls_x509_privkey_sec_param.short
new file mode 100644 (file)
index 0000000..22a48f5
--- /dev/null
@@ -0,0 +1 @@
+@item @var{gnutls_sec_param_t} @ref{gnutls_x509_privkey_sec_param} (gnutls_x509_privkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_privkey_sign_data.short b/doc/functions/gnutls_x509_privkey_sign_data.short
new file mode 100644 (file)
index 0000000..20bf56f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_sign_data} (gnutls_x509_privkey_t @var{key}, gnutls_digest_algorithm_t @var{digest}, unsigned int @var{flags}, const gnutls_datum_t * @var{data}, void * @var{signature}, size_t * @var{signature_size})
diff --git a/doc/functions/gnutls_x509_privkey_sign_hash.short b/doc/functions/gnutls_x509_privkey_sign_hash.short
new file mode 100644 (file)
index 0000000..e754f45
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_sign_hash} (gnutls_x509_privkey_t @var{key}, const gnutls_datum_t * @var{hash}, gnutls_datum_t * @var{signature})
diff --git a/doc/functions/gnutls_x509_privkey_verify_params.short b/doc/functions/gnutls_x509_privkey_verify_params.short
new file mode 100644 (file)
index 0000000..09a6d68
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_privkey_verify_params} (gnutls_x509_privkey_t @var{key})
diff --git a/doc/functions/gnutls_x509_rdn_get.short b/doc/functions/gnutls_x509_rdn_get.short
new file mode 100644 (file)
index 0000000..6d563bc
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_rdn_get} (const gnutls_datum_t * @var{idn}, char * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_rdn_get_by_oid.short b/doc/functions/gnutls_x509_rdn_get_by_oid.short
new file mode 100644 (file)
index 0000000..6e8091d
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_rdn_get_by_oid} (const gnutls_datum_t * @var{idn}, const char * @var{oid}, int @var{indx}, unsigned int @var{raw_flag}, void * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_rdn_get_oid.short b/doc/functions/gnutls_x509_rdn_get_oid.short
new file mode 100644 (file)
index 0000000..ddc05f3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_rdn_get_oid} (const gnutls_datum_t * @var{idn}, int @var{indx}, void * @var{buf}, size_t * @var{sizeof_buf})
diff --git a/doc/functions/gnutls_x509_trust_list_add_cas.short b/doc/functions/gnutls_x509_trust_list_add_cas.short
new file mode 100644 (file)
index 0000000..51326c7
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_trust_list_add_cas} (gnutls_x509_trust_list_t @var{list}, const gnutls_x509_crt_t * @var{clist}, int @var{clist_size}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_trust_list_add_crls.short b/doc/functions/gnutls_x509_trust_list_add_crls.short
new file mode 100644 (file)
index 0000000..461cc71
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_trust_list_add_crls} (gnutls_x509_trust_list_t @var{list}, const gnutls_x509_crl_t * @var{crl_list}, int @var{crl_size}, unsigned int @var{flags}, unsigned int @var{verification_flags})
diff --git a/doc/functions/gnutls_x509_trust_list_add_named_crt.short b/doc/functions/gnutls_x509_trust_list_add_named_crt.short
new file mode 100644 (file)
index 0000000..4fa557a
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_trust_list_add_named_crt} (gnutls_x509_trust_list_t @var{list}, gnutls_x509_crt_t @var{cert}, const void * @var{name}, size_t @var{name_size}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_trust_list_deinit.short b/doc/functions/gnutls_x509_trust_list_deinit.short
new file mode 100644 (file)
index 0000000..66d1d4f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{void} @ref{gnutls_x509_trust_list_deinit} (gnutls_x509_trust_list_t @var{list}, unsigned int @var{all})
diff --git a/doc/functions/gnutls_x509_trust_list_get_issuer.short b/doc/functions/gnutls_x509_trust_list_get_issuer.short
new file mode 100644 (file)
index 0000000..6591710
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_trust_list_get_issuer} (gnutls_x509_trust_list_t @var{list}, gnutls_x509_crt_t @var{cert}, gnutls_x509_crt_t * @var{issuer}, unsigned int @var{flags})
diff --git a/doc/functions/gnutls_x509_trust_list_init.short b/doc/functions/gnutls_x509_trust_list_init.short
new file mode 100644 (file)
index 0000000..3d992d3
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_trust_list_init} (gnutls_x509_trust_list_t * @var{list}, unsigned int @var{size})
diff --git a/doc/functions/gnutls_x509_trust_list_verify_crt.short b/doc/functions/gnutls_x509_trust_list_verify_crt.short
new file mode 100644 (file)
index 0000000..5ab98f2
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_trust_list_verify_crt} (gnutls_x509_trust_list_t @var{list}, gnutls_x509_crt_t * @var{cert_list}, unsigned int @var{cert_list_size}, unsigned int @var{flags}, unsigned int * @var{verify}, gnutls_verify_output_function @var{func})
diff --git a/doc/functions/gnutls_x509_trust_list_verify_named_crt.short b/doc/functions/gnutls_x509_trust_list_verify_named_crt.short
new file mode 100644 (file)
index 0000000..ca6308f
--- /dev/null
@@ -0,0 +1 @@
+@item @var{int} @ref{gnutls_x509_trust_list_verify_named_crt} (gnutls_x509_trust_list_t @var{list}, gnutls_x509_crt_t @var{cert}, const void * @var{name}, size_t @var{name_size}, unsigned int @var{flags}, unsigned int * @var{verify}, gnutls_verify_output_function @var{func})
index fa5cb7e..5eb3442 100644 (file)
@@ -502,7 +502,8 @@ indicates error and the handshake will be terminated.
 
 This function will set the flags to be used at verification of the
 certificates.  Flags must be OR of the
-@code{gnutls_certificate_verify_flags}  enumerations.
+@code{gnutls_certificate_verify_flags}  enumerations. The default
+for TLS sessions is GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN.
 @end deftypefun
 
 @subheading gnutls_certificate_set_verify_function
@@ -1904,7 +1905,7 @@ be free'd by calling @code{gnutls_deinit()} .  Returns @code{GNUTLS_E_SUCCESS}
  @code{flags} can be one of @code{GNUTLS_CLIENT}  and @code{GNUTLS_SERVER} . For a DTLS
 entity, the flags @code{GNUTLS_DATAGRAM}  and  @code{GNUTLS_NONBLOCK}  are
 also available. The latter flag will enable a non-blocking
-operation of the DTLS timers.
+operation of the DTLS timers. 
 
 @strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, or an error code.
 @end deftypefun
index 04a12ac..a95f779 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <!-- This manual is last updated 10 May 2012 for version
-3.0.21 of GnuTLS.
+3.0.30 of GnuTLS.
 
 Copyright (C) 2001-2012 Free Software Foundation, Inc.
 
@@ -13,10 +13,10 @@ copy of the license is included in the section entitled "GNU Free
 Documentation License". -->
 <!-- Created by GNU Texinfo 4.13.90, http://www.gnu.org/software/texinfo/ -->
 <head>
-<title>GnuTLS-Guile 3.0.21</title>
+<title>GnuTLS-Guile 3.0.30</title>
 
-<meta name="description" content="GnuTLS-Guile 3.0.21">
-<meta name="keywords" content="GnuTLS-Guile 3.0.21">
+<meta name="description" content="GnuTLS-Guile 3.0.30">
+<meta name="keywords" content="GnuTLS-Guile 3.0.30">
 <meta name="resource-type" content="document">
 <meta name="distribution" content="global">
 <meta name="Generator" content="makeinfo">
@@ -30,20 +30,23 @@ a.summary-letter {text-decoration: none}
 blockquote.smallquotation {font-size: smaller}
 div.display {margin-left: 3.2em}
 div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
 div.lisp {margin-left: 3.2em}
 div.smalldisplay {margin-left: 3.2em}
 div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
 div.smalllisp {margin-left: 3.2em}
-pre.display {font-family: serif}
-pre.format {font-family: serif}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
 pre.menu-comment {font-family: serif}
 pre.menu-preformatted {font-family: serif}
-pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
 pre.smallexample {font-size: smaller}
-pre.smallformat {font-family: serif; font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
 pre.smalllisp {font-size: smaller}
-span.nocodebreak {white-space:pre}
-span.nolinebreak {white-space:pre}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
 span.roman {font-family:serif; font-weight:normal}
 span.sansserif {font-family:sans-serif; font-weight:normal}
 ul.no-bullet {list-style: none}
@@ -148,7 +151,7 @@ dl {
 </head>
 
 <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
-<h1 class="settitle" align="center">GnuTLS-Guile 3.0.21</h1>
+<h1 class="settitle" align="center">GnuTLS-Guile 3.0.30</h1>
 
 
 
@@ -193,7 +196,7 @@ Next: <a href="#Preface" accesskey="n" rel="next">Preface</a>, Up: <a href="dir.
 <h1 class="top">GnuTLS-Guile</h1>
 
 <p>This manual is last updated 10 May 2012 for version
-3.0.21 of GnuTLS.
+3.0.30 of GnuTLS.
 </p>
 <p>Copyright &copy; 2001-2012 Free Software Foundation, Inc.
 </p>
@@ -252,7 +255,7 @@ Next: <a href="#Guile-API-Conventions" accesskey="n" rel="next">Guile API Conven
 series of Guile.
 </p>
 <p>By default they are installed under the GnuTLS installation directory,
-typically &lsquo;<tt>/usr/local/share/guile/site/</tt>&rsquo;).  Normally Guile
+typically <samp>/usr/local/share/guile/site/</samp>).  Normally Guile
 will not find the module there without help.  You may experience
 something like this:
 </p>
@@ -306,7 +309,7 @@ guile&gt;
 Reference Manual</cite>).
 </p>
 <p>At this point, you might get an error regarding
-&lsquo;<tt>libguile-gnutls-v-0</tt>&rsquo; similar to:
+<samp>libguile-gnutls-v-0</samp> similar to:
 </p>
 <div class="example">
 <pre class="example">gnutls.scm:361:1: In procedure dynamic-link in expression (load-extension &quot;libguile-gnutls-v-0&quot; &quot;scm_init_gnutls&quot;):
@@ -329,7 +332,7 @@ print the version number of the loaded library as follows:
 <pre class="example">$ guile
 guile&gt; (use-modules (gnutls))
 guile&gt; (gnutls-version)
-&quot;3.0.21&quot;
+&quot;3.0.30&quot;
 guile&gt; 
 </pre></div>
 
@@ -504,8 +507,7 @@ format can be done as follows:
   (uniform-vector-write raw-data (open-output-file &quot;some-file.pem&quot;)))
 </pre></div>
 
-<p>For an example of OpenPGP key import from a file, see <a href="#Importing-OpenPGP-Keys-Guile-Example">Importing
-OpenPGP Keys Guile Example</a>.
+<p>For an example of OpenPGP key import from a file, see <a href="#Importing-OpenPGP-Keys-Guile-Example">Importing OpenPGP Keys Guile Example</a>.
 </p>
 
 <hr>
index 9dfcdf9..12898f0 100644 (file)
@@ -1,7 +1,7 @@
 This is gnutls-guile.info, produced by makeinfo version 4.13.90 from
 gnutls-guile.texi.
 
-This manual is last updated 10 May 2012 for version 3.0.21 of GnuTLS.
+This manual is last updated 10 May 2012 for version 3.0.30 of GnuTLS.
 
 Copyright (C) 2001-2012 Free Software Foundation, Inc.
 
@@ -22,7 +22,7 @@ File: gnutls-guile.info,  Node: Top,  Next: Preface,  Up: (dir)
 GnuTLS-Guile
 ************
 
-This manual is last updated 10 May 2012 for version 3.0.21 of GnuTLS.
+This manual is last updated 10 May 2012 for version 3.0.30 of GnuTLS.
 
 Copyright (C) 2001-2012 Free Software Foundation, Inc.
 
@@ -126,7 +126,7 @@ the version number of the loaded library as follows:
      $ guile
      guile> (use-modules (gnutls))
      guile> (gnutls-version)
-     "3.0.21"
+     "3.0.30"
      guile>
 
 \1f
@@ -1085,7 +1085,7 @@ GNU Free Documentation License
                      Version 1.3, 3 November 2008
 
      Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     'http://fsf.org/'
+     <http://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies
      of this license document, but changing it is not allowed.
@@ -1482,7 +1482,7 @@ GNU Free Documentation License
      the GNU Free Documentation License from time to time.  Such new
      versions will be similar in spirit to the present version, but may
      differ in detail to address new problems or concerns.  See
-     'http://www.gnu.org/copyleft/'.
+     <http://www.gnu.org/copyleft/>.
 
      Each version of the License is given a distinguishing version
      number.  If the Document specifies that a particular numbered
index 8f951e0..4d178be 100644 (file)
Binary files a/doc/gnutls-guile.pdf and b/doc/gnutls-guile.pdf differ
index 516bc2a..652c852 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
-<!-- This manual is last updated 10 May 2012 for version
-3.0.21 of GnuTLS.
+<!-- This manual is last updated 2 September 2012 for version
+3.0.30 of GnuTLS.
 
 Copyright (C) 2001-2012 Free Software Foundation, Inc.
 
@@ -13,10 +13,10 @@ copy of the license is included in the section entitled "GNU Free
 Documentation License". -->
 <!-- Created by GNU Texinfo 4.13.90, http://www.gnu.org/software/texinfo/ -->
 <head>
-<title>GnuTLS 3.0.21</title>
+<title>GnuTLS 3.0.30</title>
 
-<meta name="description" content="GnuTLS 3.0.21">
-<meta name="keywords" content="GnuTLS 3.0.21">
+<meta name="description" content="GnuTLS 3.0.30">
+<meta name="keywords" content="GnuTLS 3.0.30">
 <meta name="resource-type" content="document">
 <meta name="distribution" content="global">
 <meta name="Generator" content="makeinfo">
@@ -31,20 +31,23 @@ a.summary-letter {text-decoration: none}
 blockquote.smallquotation {font-size: smaller}
 div.display {margin-left: 3.2em}
 div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
 div.lisp {margin-left: 3.2em}
 div.smalldisplay {margin-left: 3.2em}
 div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
 div.smalllisp {margin-left: 3.2em}
-pre.display {font-family: serif}
-pre.format {font-family: serif}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
 pre.menu-comment {font-family: serif}
 pre.menu-preformatted {font-family: serif}
-pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
 pre.smallexample {font-size: smaller}
-pre.smallformat {font-family: serif; font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
 pre.smalllisp {font-size: smaller}
-span.nocodebreak {white-space:pre}
-span.nolinebreak {white-space:pre}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
 span.roman {font-family:serif; font-weight:normal}
 span.sansserif {font-family:sans-serif; font-weight:normal}
 ul.no-bullet {list-style: none}
@@ -149,8 +152,7 @@ dl {
 </head>
 
 <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
-<h1 class="settitle" align="center">GnuTLS 3.0.21</h1>
-
+<h1 class="settitle" align="center">GnuTLS 3.0.30</h1>
 
 
 
@@ -412,8 +414,8 @@ Next: <a href="#Preface" accesskey="n" rel="next">Preface</a>, Up: <a href="dir.
 <a name="GnuTLS"></a>
 <h1 class="top">GnuTLS</h1>
 
-<p>This manual is last updated 10 May 2012 for version
-3.0.21 of GnuTLS.
+<p>This manual is last updated 2 September 2012 for version
+3.0.30 of GnuTLS.
 </p>
 <p>Copyright &copy; 2001-2012 Free Software Foundation, Inc.
 </p>
@@ -546,8 +548,8 @@ implementation, and is entirely implemented within the
 <acronym>GnuTLS</acronym> library.  The &ldquo;Certificate part&rdquo; consists of the
 certificate parsing, and verification functions and it uses
 functionality from the
-libtasn1<a name="DOCF1" href="#FOOT1">(1)</a> library.
-The &ldquo;Cryptographic back-end&rdquo; is provided by the nettle<a name="DOCF2" href="#FOOT2">(2)</a>
+libtasn1<a name="DOCF1" href="#FOOT1"><sup>1</sup></a> library.
+The &ldquo;Cryptographic back-end&rdquo; is provided by the nettle<a name="DOCF2" href="#FOOT2"><sup>2</sup></a>
 library. 
 </p>
 <table class="menu" border="0" cellspacing="0">
@@ -585,7 +587,7 @@ source code packages.
 </p>
 <p>The package is then extracted, configured and built like many other
 packages that use Autoconf.  For detailed information on configuring
-and building it, refer to the &lsquo;<tt>INSTALL</tt>&rsquo; file that is part of the
+and building it, refer to the <samp>INSTALL</samp> file that is part of the
 distribution archive.  Typically you invoke <code>./configure</code> and
 then <code>make check install</code>.  There are a number of compile-time
 parameters, as discussed below.
@@ -646,7 +648,7 @@ Next: <a href="#Certificate-authentication" accesskey="n" rel="next">Certificate
 <p><acronym>TLS</acronym> stands for &ldquo;Transport Layer Security&rdquo; and is the
 successor of SSL, the Secure Sockets Layer protocol [<em>SSL3</em>]
 designed by Netscape.  <acronym>TLS</acronym> is an Internet protocol, defined
-by <acronym>IETF</acronym><a name="DOCF3" href="#FOOT3">(3)</a>, described in [<em>RFC5246</em>].  
+by <acronym>IETF</acronym><a name="DOCF3" href="#FOOT3"><sup>3</sup></a>, described in [<em>RFC5246</em>].  
 The protocol provides
 confidentiality, and authentication layers over any reliable transport
 layer.  The description, above, refers to <acronym>TLS</acronym> 1.0 but applies
@@ -700,12 +702,12 @@ alert protocol is above the record protocol.
 <p>The handshake protocol is responsible for the security parameters&rsquo;
 negotiation, the initial key exchange and authentication.  
 See <a href="#The-Handshake-Protocol">The Handshake Protocol</a>, for more information about the handshake
-protocol.  The protocol layering in TLS is shown in <a href="#fig_003atls_002dlayers">fig:tls-layers</a>.
+protocol.  The protocol layering in TLS is shown in <a href="#fig_003atls_002dlayers">Figure 3.1</a>.
 </p>
 <div class="float"><a name="fig_003atls_002dlayers"></a>
 <img src="gnutls-layers.png" alt="gnutls-layers">
 
-</div><p><strong>Figure 3.1: </strong>The TLS protocol layers.</p>
+<div class="float-caption"><p><strong>Figure 3.1: </strong>The TLS protocol layers.</p></div></div>
 <hr>
 <a name="The-transport-layer"></a>
 <div class="header">
@@ -783,8 +785,8 @@ using the <acronym>TLS</acronym> protocol, a random number of blocks will be
 appended to data, to prevent eavesdroppers from guessing the actual
 data size.
 </p>
-<p>The supported in <acronym>GnuTLS</acronym> ciphers and MAC algorithms are shown in <a href="#tab_003aciphers">tab:ciphers</a> and
-<a href="#tab_003amacs">tab:macs</a>.
+<p>The supported in <acronym>GnuTLS</acronym> ciphers and MAC algorithms are shown in <a href="#tab_003aciphers">Table 3.1</a> and
+<a href="#tab_003amacs">Table 3.2</a>.
 </p>
 <div class="float"><a name="tab_003aciphers"></a>
 <table>
@@ -805,7 +807,7 @@ is one of the approved ciphers of the European NESSIE and Japanese
 CRYPTREC projects.</td></tr>
 </table>
 
-</div><p><strong>Table 3.1: </strong>Supported ciphers.</p>
+<div class="float-caption"><p><strong>Table 3.1: </strong>Supported ciphers.</p></div></div>
 
 <div class="float"><a name="tab_003amacs"></a>
 <table>
@@ -819,7 +821,7 @@ designed by NSA. Outputs 160 bits of data.</td></tr>
 GCM, is in use.</td></tr>
 </table>
 
-</div><p><strong>Table 3.2: </strong>Supported MAC algorithms.</p>
+<div class="float-caption"><p><strong>Table 3.2: </strong>Supported MAC algorithms.</p></div></div>
 
 <hr>
 <a name="Compression-algorithms-used-in-the-record-layer"></a>
@@ -861,7 +863,12 @@ on [<em>RFC3749</em>]. The supported algorithms are shown below.
 </p></dd>
 </dl>
 
-</div><p><strong>Figure 3.2: </strong>Supported compression algorithms</p>
+<div class="float-caption"><p><strong>Figure 3.2: </strong>Supported compression algorithms</p></div></div>
+<p>Note that compression enables attacks such as traffic analysis, or even
+plaintext recovery under certain circumstances. To avoid some of these
+attacks GnuTLS allows each record to be compressed independently (i.e.,
+stateless compression), by using the &quot;%STATELESS_COMPRESSION&quot; priority string.
+</p>
 <hr>
 <a name="Weaknesses-and-countermeasures"></a>
 <div class="header">
@@ -890,7 +897,7 @@ encrypted packet.
 <p>Those weaknesses were solved in <acronym>TLS</acronym> 1.1 [<em>RFC4346</em>]
 which is implemented in <acronym>GnuTLS</acronym>. For this reason we suggest
 to always negotiate the highest supported TLS version with the 
-peer<a name="DOCF4" href="#FOOT4">(4)</a>.
+peer<a name="DOCF4" href="#FOOT4"><sup>4</sup></a>.
 For a detailed discussion of the issues see the archives of the TLS 
 Working Group mailing list and [<em>CBCATT</em>].
 </p>
@@ -1041,7 +1048,7 @@ suite contains these parameters:
 </li><li> The Symmetric encryption algorithm and mode
 <code>3DES_CBC</code> in this example.
 
-</li><li> The MAC<a name="DOCF5" href="#FOOT5">(5)</a> algorithm used for authentication.
+</li><li> The MAC<a name="DOCF5" href="#FOOT5"><sup>5</sup></a> algorithm used for authentication.
 <code>MAC_SHA</code> is used in the above example.
 
 </li></ul>
@@ -1166,8 +1173,8 @@ useful to clients with constrained capabilities. The functions shown
 below can be used to control this extension.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005frecord_005fget_005fmax_005fsize">gnutls_record_get_max_size</a></code></dt>
-<dt><code><a href="#gnutls_005frecord_005fset_005fmax_005fsize">gnutls_record_set_max_size</a></code></dt>
+<dt><code><var>size_t</var> <a href="#gnutls_005frecord_005fget_005fmax_005fsize">gnutls_record_get_max_size</a> (gnutls_session_t <var>session</var>)</code></dt>
+<dt><code><var>ssize_t</var> <a href="#gnutls_005frecord_005fset_005fmax_005fsize">gnutls_record_set_max_size</a> (gnutls_session_t <var>session</var>, size_t <var>size</var>)</code></dt>
 </dl>
 
 <hr>
@@ -1194,8 +1201,8 @@ used to enable this extension, or to retrieve the name sent by a
 client.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fserver_005fname_005fset">gnutls_server_name_set</a></code></dt>
-<dt><code><a href="#gnutls_005fserver_005fname_005fget">gnutls_server_name_get</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fserver_005fname_005fset">gnutls_server_name_set</a> (gnutls_session_t <var>session</var>, gnutls_server_name_type_t <var>type</var>, const void * <var>name</var>, size_t <var>name_length</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fserver_005fname_005fget">gnutls_server_name_get</a> (gnutls_session_t <var>session</var>, void * <var>data</var>, size_t * <var>data_length</var>, unsigned int * <var>type</var>, unsigned int <var>indx</var>)</code></dt>
 </dl>
 
 <hr>
@@ -1367,7 +1374,7 @@ approach starts the <acronym>TLS</acronym> Handshake procedure just after the
 client connects on the &mdash;so called&mdash; secure port.  That way the
 <acronym>TLS</acronym> protocol does not know anything about the client, and
 popular methods like the host advertising in HTTP do not
-work<a name="DOCF6" href="#FOOT6">(6)</a>.  There is no way for the client to say &ldquo;I
+work<a name="DOCF6" href="#FOOT6"><sup>6</sup></a>.  There is no way for the client to say &ldquo;I
 connected to YYY server&rdquo; before the Handshake starts, so the server
 cannot possibly know which certificate to use.
 </p>
@@ -1385,7 +1392,7 @@ Previous: <a href="#Separate-ports" accesskey="p" rel="previous">Separate ports<
 <a name="Upward-negotiation-1"></a>
 <h4 class="subsection">3.7.2 Upward negotiation</h4>
 
-<p>Other application protocols<a name="DOCF7" href="#FOOT7">(7)</a>  use a
+<p>Other application protocols<a name="DOCF7" href="#FOOT7"><sup>7</sup></a>  use a
 different approach to enable the secure layer.  They use something
 often called as the &ldquo;TLS upgrade&rdquo; method. This method is quite tricky but it
 is more flexible. The idea is to extend the application protocol to
@@ -1541,7 +1548,7 @@ using a browser today. <acronym>GnuTLS</acronym> supports both
 certificates using a common API.
 </p>
 <p>The key exchange algorithms supported by certificate authentication are
-shown in <a href="#tab_003akey_002dexchange">tab:key-exchange</a>.
+shown in <a href="#tab_003akey_002dexchange">Table 4.1</a>.
 </p>
 <div class="float"><a name="tab_003akey_002dexchange"></a>
 <table>
@@ -1573,7 +1580,7 @@ certificate must contain ECDSA parameters to use this key exchange
 algorithm.</td></tr>
 </table>
 
-</div><p><strong>Table 4.1: </strong>Supported key exchange algorithms.</p>
+<div class="float-caption"><p><strong>Table 4.1: </strong>Supported key exchange algorithms.</p></div></div>
 <table class="menu" border="0" cellspacing="0">
 <tr><td align="left" valign="top">&bull; <a href="#X_002e509-certificates" accesskey="1">X.509 certificates</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
@@ -1602,10 +1609,10 @@ certificates as well, following a hierarchical model.
 <div class="float"><a name="fig_003ax509"></a>
 <img src="gnutls-x509.png" alt="gnutls-x509">
 
-</div><p><strong>Figure 4.1: </strong>An example of the X.509 hierarchical trust model.</p>
+<div class="float-caption"><p><strong>Figure 4.1: </strong>An example of the X.509 hierarchical trust model.</p></div></div>
 <p>One needs to trust one or more CAs for his secure communications. In
 that case only the certificates issued by the trusted authorities are
-acceptable.  The framework is illustrated on <a href="#fig_003ax509">fig:x509</a>.
+acceptable.  The framework is illustrated on <a href="#fig_003ax509">Figure 4.1</a>.
 </p>
 <table class="menu" border="0" cellspacing="0">
 <tr><td align="left" valign="top">&bull; <a href="#X_002e509-certificate-structure" accesskey="1">X.509 certificate structure</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
@@ -1633,7 +1640,7 @@ Next: <a href="#Importing-an-X_002e509-certificate" accesskey="n" rel="next">Imp
 
 <p>An <acronym>X.509</acronym> certificate usually contains information about the
 certificate holder, the signer, a unique serial number, expiration
-dates and some other fields [<em>PKIX</em>] as shown in <a href="#tab_003ax509">tab:x509</a>.
+dates and some other fields [<em>PKIX</em>] as shown in <a href="#tab_003ax509">Table 4.2</a>.
 </p>
 <div class="float"><a name="tab_003ax509"></a>
 <table>
@@ -1647,12 +1654,12 @@ dates and some other fields [<em>PKIX</em>] as shown in <a href="#tab_003ax509">
 <tr><td width="20%">extensions</td><td width="70%">The extensions are fields only present in version 3 certificates.</td></tr>
 </table>
 
-</div><p><strong>Table 4.2: </strong>X.509 certificate fields.</p>
+<div class="float-caption"><p><strong>Table 4.2: </strong>X.509 certificate fields.</p></div></div>
 <p>The certificate&rsquo;s <em>subject or issuer name</em> is not just a single
 string.  It is a Distinguished name and in the <acronym>ASN.1</acronym>
 notation is a sequence of several object identifiers with their corresponding
 values. Some of available OIDs to be used in an <acronym>X.509</acronym>
-distinguished name are defined in &lsquo;<tt>gnutls/x509.h</tt>&rsquo;.
+distinguished name are defined in <samp>gnutls/x509.h</samp>.
 </p>
 <p>The <em>Version</em> field in a certificate has values either 1 or 3 for
 version 3 certificates.  Version 1 certificates do not support the
@@ -1667,7 +1674,7 @@ would be considered invalid.
 the certificate&rsquo;s subject that did not fit in the typical certificate
 fields. Those may be e-mail addresses, flags that indicate whether the
 belongs to a CA etc.  All the supported <acronym>X.509</acronym> version 3
-extensions are shown in <a href="#tab_003ax509_002dext">tab:x509-ext</a>.
+extensions are shown in <a href="#tab_003ax509_002dext">Table 4.3</a>.
 </p>
 <div class="float"><a name="tab_003ax509_002dext"></a>
 <table>
@@ -1687,12 +1694,12 @@ lengths of proxy chains.  Proxy Certificates are specified in
 [<em>RFC3820</em>].</td></tr>
 </table>
 
-</div><p><strong>Table 4.3: </strong>X.509 certificate extensions.</p>
+<div class="float-caption"><p><strong>Table 4.3: </strong>X.509 certificate extensions.</p></div></div>
 <p>In <acronym>GnuTLS</acronym> the <acronym>X.509</acronym> certificate structures are
 handled using the <code>gnutls_x509_crt_t</code> type and the corresponding
 private keys with the <code>gnutls_x509_privkey_t</code> type.  All the
 available functions for <acronym>X.509</acronym> certificate handling have
-their prototypes in &lsquo;<tt>gnutls/x509.h</tt>&rsquo;. An example program to
+their prototypes in <samp>gnutls/x509.h</samp>. An example program to
 demonstrate the <acronym>X.509</acronym> parsing capabilities can be found at
 <a href="#ex_003ax509_002dinfo">ex:x509-info</a>.
 </p>
@@ -1709,17 +1716,17 @@ Next: <a href="#X_002e509-distinguished-names" accesskey="n" rel="next">X.509 di
 a certificate structure can be imported using <a href="#gnutls_005fx509_005fcrt_005fimport">gnutls_x509_crt_import</a>. 
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrt_005finit">gnutls_x509_crt_init</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fimport">gnutls_x509_crt_import</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fdeinit">gnutls_x509_crt_deinit</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005finit">gnutls_x509_crt_init</a> (gnutls_x509_crt_t * <var>cert</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fimport">gnutls_x509_crt_import</a> (gnutls_x509_crt_t <var>cert</var>, const gnutls_datum_t * <var>data</var>, gnutls_x509_crt_fmt_t <var>format</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fx509_005fcrt_005fdeinit">gnutls_x509_crt_deinit</a> (gnutls_x509_crt_t <var>cert</var>)</code></dt>
 </dl>
 
 <p>In several functions an array of certificates is required. To assist in initialization
 and import the following two functions are provided.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrt_005flist_005fimport">gnutls_x509_crt_list_import</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrt_005flist_005fimport2">gnutls_x509_crt_list_import2</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005flist_005fimport">gnutls_x509_crt_list_import</a> (gnutls_x509_crt_t * <var>certs</var>, unsigned int * <var>cert_max</var>, const gnutls_datum_t * <var>data</var>, gnutls_x509_crt_fmt_t <var>format</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005flist_005fimport2">gnutls_x509_crt_list_import2</a> (gnutls_x509_crt_t ** <var>certs</var>, unsigned int * <var>size</var>, const gnutls_datum_t * <var>data</var>, gnutls_x509_crt_fmt_t <var>format</var>, unsigned int <var>flags</var>)</code></dt>
 </dl>
 
 <p>In all cases after use a certificate must be deinitialized using <a href="#gnutls_005fx509_005fcrt_005fdeinit">gnutls_x509_crt_deinit</a>.
@@ -1878,10 +1885,10 @@ you may not deallocate the certificate and continue to access  <code>dn</code> .
 of the issuer of the certificate.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fget_005fissuer_005fdn">gnutls_x509_crt_get_issuer_dn</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fget_005fissuer_005fdn_005fby_005foid">gnutls_x509_crt_get_issuer_dn_by_oid</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fget_005fissuer_005fdn_005foid">gnutls_x509_crt_get_issuer_dn_oid</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fget_005fissuer">gnutls_x509_crt_get_issuer</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fget_005fissuer_005fdn">gnutls_x509_crt_get_issuer_dn</a> (gnutls_x509_crt_t <var>cert</var>, char * <var>buf</var>, size_t * <var>buf_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fget_005fissuer_005fdn_005fby_005foid">gnutls_x509_crt_get_issuer_dn_by_oid</a> (gnutls_x509_crt_t <var>cert</var>, const char * <var>oid</var>, int <var>indx</var>, unsigned int <var>raw_flag</var>, void * <var>buf</var>, size_t * <var>buf_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fget_005fissuer_005fdn_005foid">gnutls_x509_crt_get_issuer_dn_oid</a> (gnutls_x509_crt_t <var>cert</var>, int <var>indx</var>, void * <var>oid</var>, size_t * <var>oid_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fget_005fissuer">gnutls_x509_crt_get_issuer</a> (gnutls_x509_crt_t <var>cert</var>, gnutls_x509_dn_t * <var>dn</var>)</code></dt>
 </dl>
 
 <hr>
@@ -2039,7 +2046,7 @@ negative error value.
 <p>The verification function will verify a given certificate chain against a list of certificate
 authorities and certificate revocation lists, and output
 a bit-wise OR of elements of the <code>gnutls_certificate_status_t</code> 
-enumeration shown in <a href="#gnutls_005fcertificate_005fstatus_005ft">gnutls_certificate_status_t</a>. The <code>GNUTLS_CERT_INVALID</code> flag
+enumeration shown in <a href="#gnutls_005fcertificate_005fstatus_005ft">Figure 4.2</a>. The <code>GNUTLS_CERT_INVALID</code> flag
 is always set on a verification error and more detailed flags will also be set when appropriate.
 </p>
 <div class="float"><a name="gnutls_005fcertificate_005fstatus_005ft"></a>
@@ -2074,9 +2081,18 @@ should not be trusted.
 <dt><code>GNUTLS_CERT_EXPIRED</code></dt>
 <dd><p>The certificate has expired.
 </p></dd>
+<dt><code>GNUTLS_CERT_SIGNATURE_FAILURE</code></dt>
+<dd><p>&ndash; undescribed &ndash;
+</p></dd>
+<dt><code>GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED</code></dt>
+<dd><p>The revocation data are old and have been superseded.
+</p></dd>
+<dt><code>GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE</code></dt>
+<dd><p>The revocation data have a future issue date.
+</p></dd>
 </dl>
 
-</div><p><strong>Figure 4.2: </strong>The <code>gnutls_certificate_status_t</code> enumeration.</p>
+<div class="float-caption"><p><strong>Figure 4.2: </strong>The <code>gnutls_certificate_status_t</code> enumeration.</p></div></div>
 <p>An example of certificate verification is shown in <a href="#ex_003averify2">ex:verify2</a>.
 It is also possible to have a set of certificates that
 are trusted for a particular server but not to authorize other certificates.
@@ -2096,9 +2112,9 @@ Next: <a href="#Verifying-a-certificate-using-trust-on-first-use-authentication"
 <p>When operating in the context of a TLS session, the trusted certificate
 authority list may also be set using:
 </p><dl compact="compact">
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005ftrust_005ffile">gnutls_certificate_set_x509_trust_file</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005fcrl_005ffile">gnutls_certificate_set_x509_crl_file</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005fsystem_005ftrust">gnutls_certificate_set_x509_system_trust</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005ftrust_005ffile">gnutls_certificate_set_x509_trust_file</a> (gnutls_certificate_credentials_t <var>cred</var>, const char * <var>cafile</var>, gnutls_x509_crt_fmt_t <var>type</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005fcrl_005ffile">gnutls_certificate_set_x509_crl_file</a> (gnutls_certificate_credentials_t <var>res</var>, const char * <var>crlfile</var>, gnutls_x509_crt_fmt_t <var>type</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005fsystem_005ftrust">gnutls_certificate_set_x509_system_trust</a> (gnutls_certificate_credentials_t <var>cred</var>)</code></dt>
 </dl>
 
 <p>Then it is not required to setup a trusted list as above.
@@ -2112,7 +2128,7 @@ flags are passed straightforward, but
 <a href="#gnutls_005fcertificate_005fverify_005fpeers2">gnutls_certificate_verify_peers2</a> depends on the flags set by
 calling <a href="#gnutls_005fcertificate_005fset_005fverify_005fflags">gnutls_certificate_set_verify_flags</a>.  All the available
 flags are part of the enumeration
-<code>gnutls_certificate_verify_flags</code> shown in <a href="#gnutls_005fcertificate_005fverify_005fflags">gnutls_certificate_verify_flags</a>.
+<code>gnutls_certificate_verify_flags</code> shown in <a href="#gnutls_005fcertificate_005fverify_005fflags">Figure 4.3</a>.
 </p>
 <div class="float"><a name="gnutls_005fcertificate_005fverify_005fflags"></a>
 
@@ -2167,9 +2183,13 @@ to deprecate all certificates of version 1.
 <dd><p>Disable checking for validity
 using certificate revocation lists.
 </p></dd>
+<dt><code>GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN</code></dt>
+<dd><p>A certificate chain is tolerated
+if unsorted (the case with many TLS servers out there).
+</p></dd>
 </dl>
 
-</div><p><strong>Figure 4.3: </strong>The <code>gnutls_certificate_verify_flags</code> enumeration.</p>
+<div class="float-caption"><p><strong>Figure 4.3: </strong>The <code>gnutls_certificate_verify_flags</code> enumeration.</p></div></div>
 <p>Although the verification of a certificate path indicates that the
 certificate is signed by trusted authority, does not reveal anything
 about the peer&rsquo;s identity. It is required to verify if the
@@ -2331,11 +2351,11 @@ text file based back-end, or another back-end may be specified. That
 should contain storage and retrieval functions and specified as below.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005ftdb_005finit">gnutls_tdb_init</a></code></dt>
-<dt><code><a href="#gnutls_005ftdb_005fdeinit">gnutls_tdb_deinit</a></code></dt>
-<dt><code><a href="#gnutls_005ftdb_005fset_005fverify_005ffunc">gnutls_tdb_set_verify_func</a></code></dt>
-<dt><code><a href="#gnutls_005ftdb_005fset_005fstore_005ffunc">gnutls_tdb_set_store_func</a></code></dt>
-<dt><code><a href="#gnutls_005ftdb_005fset_005fstore_005fcommitment_005ffunc">gnutls_tdb_set_store_commitment_func</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005ftdb_005finit">gnutls_tdb_init</a> (gnutls_tdb_t* <var>tdb</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005ftdb_005fdeinit">gnutls_tdb_deinit</a> (gnutls_tdb_t <var>tdb</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005ftdb_005fset_005fverify_005ffunc">gnutls_tdb_set_verify_func</a> (gnutls_tdb_t <var>tdb</var>, gnutls_tdb_verify_func <var>verify</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005ftdb_005fset_005fstore_005ffunc">gnutls_tdb_set_store_func</a> (gnutls_tdb_t <var>tdb</var>, gnutls_tdb_store_func <var>store</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005ftdb_005fset_005fstore_005fcommitment_005ffunc">gnutls_tdb_set_store_commitment_func</a> (gnutls_tdb_t <var>tdb</var>, gnutls_tdb_store_commitment_func <var>cstore</var>)</code></dt>
 </dl>
 
 <hr>
@@ -2355,13 +2375,13 @@ CA. <acronym>OpenPGP</acronym> allows anyone to sign anyone else&rsquo;s public
 key. When Alice signs Bob&rsquo;s key, she is introducing Bob&rsquo;s key to
 anyone who trusts Alice. If someone trusts Alice to introduce keys,
 then Alice is a trusted introducer in the mind of that observer.
-For example in <a href="#fig_003aopenpgp">fig:openpgp</a>, David trusts Alice to be an introducer and Alice
+For example in <a href="#fig_003aopenpgp">Figure 4.4</a>, David trusts Alice to be an introducer and Alice
 signed Bob&rsquo;s key thus Dave trusts Bob&rsquo;s key to be the real one.
 </p>
 <div class="float"><a name="fig_003aopenpgp"></a>
 <img src="gnutls-pgp.png" alt="gnutls-pgp">
 
-</div><p><strong>Figure 4.4: </strong>An example of the OpenPGP trust model.</p>
+<div class="float-caption"><p><strong>Figure 4.4: </strong>An example of the OpenPGP trust model.</p></div></div>
 <p>There are some key points that are important in that model. In the
 example Alice has to sign Bob&rsquo;s key, only if she is sure that the key
 belongs to Bob. Otherwise she may also make Dave falsely believe that
@@ -2382,7 +2402,7 @@ belong to the actual owner.
 [<em>RFC2440</em>] are handled using the <code>gnutls_openpgp_crt_t</code> type
 and the corresponding private keys with the
 <code>gnutls_openpgp_privkey_t</code> type. All the prototypes for the key
-handling functions can be found at &lsquo;<tt>gnutls/openpgp.h</tt>&rsquo;.
+handling functions can be found at <samp>gnutls/openpgp.h</samp>.
 </p>
 <a name="Verifying-an-OpenPGP-certificate"></a>
 <h4 class="subsection">4.2.2 Verifying an <acronym>OpenPGP</acronym> certificate</h4>
@@ -2391,7 +2411,7 @@ handling functions can be found at &lsquo;<tt>gnutls/openpgp.h</tt>&rsquo;.
 <acronym>GnuTLS</acronym>, are simple ones, and do not use the features of the
 &ldquo;web of trust&rdquo;.  For that reason, if the verification needs are
 complex, the assistance of external tools like <acronym>GnuPG</acronym> and
-GPGME<a name="DOCF8" href="#FOOT8">(8)</a> is
+GPGME<a name="DOCF8" href="#FOOT8"><sup>8</sup></a> is
 recommended.
 </p>
 <p>In GnuTLS there is a verification function for OpenPGP certificates,
@@ -2402,7 +2422,7 @@ returns the key status. The key verification status is the same as in
 are different. For example an <acronym>OpenPGP</acronym> key may be valid, if
 the self signature is ok, even if no signers were found.  The meaning
 of verification status flags is the same as in the <acronym>X.509</acronym> certificates
-(see <a href="#gnutls_005fcertificate_005fverify_005fflags">gnutls_certificate_verify_flags</a>).
+(see <a href="#gnutls_005fcertificate_005fverify_005fflags">Figure 4.3</a>).
 </p>
 
 
@@ -2659,14 +2679,14 @@ secure password authentication schemes, is that <acronym>SRP</acronym> is not
 susceptible to off-line dictionary attacks.
 Moreover, SRP does not require the server to hold the user&rsquo;s password.
 This kind of protection is similar to the one used traditionally in the <acronym>UNIX</acronym>
-&lsquo;<tt>/etc/passwd</tt>&rsquo; file, where the contents of this file did not cause
+<samp>/etc/passwd</samp> file, where the contents of this file did not cause
 harm to the system security if they were revealed.  The <acronym>SRP</acronym>
 needs instead of the plain password something called a verifier, which
 is calculated using the user&rsquo;s password, and if stolen cannot be used
 to impersonate the user. 
 </p>
-<p>Typical conventions in SRP are a password file, called &lsquo;<tt>tpasswd</tt>&rsquo; that 
-holds the SRP verifiers (encoded passwords) and another file, &lsquo;<tt>tpasswd.conf</tt>&rsquo;,
+<p>Typical conventions in SRP are a password file, called <samp>tpasswd</samp> that 
+holds the SRP verifiers (encoded passwords) and another file, <samp>tpasswd.conf</samp>,
 which holds the allowed SRP parameters.  The included in GnuTLS helper 
 follow those conventions. The srptool program, discussed in the next section
 is a tool to manipulate the SRP parameters.
@@ -2722,8 +2742,8 @@ error code.
 </p></dd></dl>
 
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fsrp_005fbase64_005fencode">gnutls_srp_base64_encode</a></code></dt>
-<dt><code><a href="#gnutls_005fsrp_005fbase64_005fdecode">gnutls_srp_base64_decode</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsrp_005fbase64_005fencode">gnutls_srp_base64_encode</a> (const gnutls_datum_t * <var>data</var>, char * <var>result</var>, size_t * <var>result_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsrp_005fbase64_005fdecode">gnutls_srp_base64_decode</a> (const gnutls_datum_t * <var>b64_data</var>, char * <var>result</var>, size_t * <var>result_size</var>)</code></dt>
 </dl>
 
 <hr>
@@ -2735,7 +2755,6 @@ Previous: <a href="#Authentication-using-SRP" accesskey="p" rel="previous">Authe
 <a name="Invoking-srptool"></a>
 <h4 class="subsection">5.1.2 Invoking srptool</h4>
 <a name="index-srptool"></a>
-<a name="index-GnuTLS-SRP-tool"></a>
 
 
 <p>Simple program that emulates the programs in the Stanford SRP (Secure
@@ -2751,21 +2770,23 @@ using the <code>agtexi-cmd</code> template and the option descriptions for the <
 This software is released under the GNU General Public License, version 3 or later.
 </p>
 
-<a name="srptool-usage"></a><a name="srptool-help_002fusage-_0028_002dh_0029"></a>
-<h4 class="subsubheading">srptool help/usage (-h)</h4>
+<a name="srptool-usage"></a><a name="srptool-help_002fusage-_0028_002d_002dhelp_0029"></a>
+<h4 class="subsubheading">srptool help/usage (<samp>--help</samp>)</h4>
 <a name="index-srptool-help"></a>
 
 <p>This is the automatically generated usage text for srptool.
-The text printed is the same whether for the <code>help</code> option (-h) or the <code>more-help</code> option (-!).  <code>more-help</code> will print
+</p>
+<p>The text printed is the same whether selected with the <code>help</code> option
+(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>).  <code>more-help</code> will print
 the usage text by passing it through a pager program.
 <code>more-help</code> is disabled on platforms without a working
 <code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
-used to select the program, defaulting to &lsquo;<tt>more</tt>&rsquo;.  Both will exit
+used to select the program, defaulting to <samp>more</samp>.  Both will exit
 with a status code of 0.
 </p>
 <div class="example">
 <pre class="example">srptool - GnuTLS SRP tool - Ver. @VERSION@
-USAGE:  srptool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
+USAGE:  lt-srptool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -2799,27 +2820,23 @@ please send bug reports to:  bug-gnutls@gnu.org
 
 <a name="srptool-debug"></a><a name="debug-option-_0028_002dd_0029"></a>
 <h4 class="subsubheading">debug option (-d)</h4>
-<a name="index-srptool_002ddebug"></a>
 
 <p>This is the &ldquo;enable debugging.&rdquo; option.
 This option takes an argument number.
 Specifies the debug level.
 <a name="srptool-verify"></a></p><a name="verify-option"></a>
 <h4 class="subsubheading">verify option</h4>
-<a name="index-srptool_002dverify"></a>
 
 <p>This is the &ldquo;just verify the password.&rdquo; option.
 Verifies the password provided against the password file.
 <a name="srptool-passwd_002dconf"></a></p><a name="passwd_002dconf-option-_0028_002dv_0029"></a>
 <h4 class="subsubheading">passwd-conf option (-v)</h4>
-<a name="index-srptool_002dpasswd_002dconf"></a>
 
 <p>This is the &ldquo;specify a password conf file.&rdquo; option.
 This option takes an argument string.
 Specify a filename or a PKCS #11 URL to read the CAs from.
 <a name="srptool-create_002dconf"></a></p><a name="create_002dconf-option"></a>
 <h4 class="subsubheading">create-conf option</h4>
-<a name="index-srptool_002dcreate_002dconf"></a>
 
 <p>This is the &ldquo;generate a password configuration file.&rdquo; option.
 This option takes an argument string.
@@ -2840,16 +2857,15 @@ containing the required for TLS parameters.
 <a name="srptool-See-Also"></a><a name="srptool-See-Also-1"></a>
 <h4 class="subsubheading">srptool See Also</h4>
 <p>gnutls-cli-debug (1), gnutls-serv (1), srptool (1), psktool (1), certtool (1)
-</p>
-<a name="srptool-Examples"></a><a name="srptool-Examples-1"></a>
+<a name="srptool-Examples"></a></p><a name="srptool-Examples-1"></a>
 <h4 class="subsubheading">srptool Examples</h4>
-<p>To create &lsquo;<tt>tpasswd.conf</tt>&rsquo; which holds the g and n values for SRP protocol
+<p>To create <samp>tpasswd.conf</samp> which holds the g and n values for SRP protocol
 (generator and a large prime), run:
 </p><div class="example">
 <pre class="example">$ srptool --create-conf /etc/tpasswd.conf
 </pre></div>
 
-<p>This command will create &lsquo;<tt>/etc/tpasswd</tt>&rsquo; and will add user &rsquo;test&rsquo; (you
+<p>This command will create <samp>/etc/tpasswd</samp> and will add user &rsquo;test&rsquo; (you
 will also be prompted for a password). Verifiers are stored by default
 in the way libsrp expects.
 </p><div class="example">
@@ -2858,12 +2874,11 @@ in the way libsrp expects.
 
 
 <p>This command will check against a password. If the password matches
-the one in &lsquo;<tt>/etc/tpasswd</tt>&rsquo; you will get an ok.
+the one in <samp>/etc/tpasswd</samp> you will get an ok.
 </p><div class="example">
 <pre class="example">$ srptool --passwd /etc/tpasswd --passwd\-conf /etc/tpasswd.conf --verify -u test
 </pre></div>
 
-
 <hr>
 <a name="PSK-authentication"></a>
 <div class="header">
@@ -2920,9 +2935,9 @@ exchange.  This method offers perfect forward secrecy.
 in <acronym>GnuTLS</acronym>.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fkey_005fgenerate">gnutls_key_generate</a></code></dt>
-<dt><code><a href="#gnutls_005fhex_005fencode">gnutls_hex_encode</a></code></dt>
-<dt><code><a href="#gnutls_005fhex_005fdecode">gnutls_hex_decode</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fkey_005fgenerate">gnutls_key_generate</a> (gnutls_datum_t * <var>key</var>, unsigned int <var>key_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhex_005fencode">gnutls_hex_encode</a> (const gnutls_datum_t * <var>data</var>, char * <var>result</var>, size_t * <var>result_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhex_005fdecode">gnutls_hex_decode</a> (const gnutls_datum_t * <var>hex_data</var>, void * <var>result</var>, size_t * <var>result_size</var>)</code></dt>
 </dl>
 
 <hr>
@@ -2934,7 +2949,6 @@ Previous: <a href="#Authentication-using-PSK" accesskey="p" rel="previous">Authe
 <a name="Invoking-psktool"></a>
 <h4 class="subsection">5.2.2 Invoking psktool</h4>
 <a name="index-psktool"></a>
-<a name="index-GnuTLS-PSK-tool"></a>
 
 
 <p>Program  that generates random keys for use with TLS-PSK. The
@@ -2945,21 +2959,23 @@ using the <code>agtexi-cmd</code> template and the option descriptions for the <
 This software is released under the GNU General Public License, version 3 or later.
 </p>
 
-<a name="psktool-usage"></a><a name="psktool-help_002fusage-_0028_002dh_0029"></a>
-<h4 class="subsubheading">psktool help/usage (-h)</h4>
+<a name="psktool-usage"></a><a name="psktool-help_002fusage-_0028_002d_002dhelp_0029"></a>
+<h4 class="subsubheading">psktool help/usage (<samp>--help</samp>)</h4>
 <a name="index-psktool-help"></a>
 
 <p>This is the automatically generated usage text for psktool.
-The text printed is the same whether for the <code>help</code> option (-h) or the <code>more-help</code> option (-!).  <code>more-help</code> will print
+</p>
+<p>The text printed is the same whether selected with the <code>help</code> option
+(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>).  <code>more-help</code> will print
 the usage text by passing it through a pager program.
 <code>more-help</code> is disabled on platforms without a working
 <code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
-used to select the program, defaulting to &lsquo;<tt>more</tt>&rsquo;.  Both will exit
+used to select the program, defaulting to <samp>more</samp>.  Both will exit
 with a status code of 0.
 </p>
 <div class="example">
 <pre class="example">psktool - GnuTLS PSK tool - Ver. @VERSION@
-USAGE:  psktool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
+USAGE:  lt-psktool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -2986,7 +3002,6 @@ please send bug reports to:  bug-gnutls@gnu.org
 
 <a name="psktool-debug"></a><a name="debug-option-_0028_002dd_0029-1"></a>
 <h4 class="subsubheading">debug option (-d)</h4>
-<a name="index-psktool_002ddebug"></a>
 
 <p>This is the &ldquo;enable debugging.&rdquo; option.
 This option takes an argument number.
@@ -3006,10 +3021,9 @@ Specifies the debug level.
 <a name="psktool-See-Also"></a><a name="psktool-See-Also-1"></a>
 <h4 class="subsubheading">psktool See Also</h4>
 <p>gnutls-cli-debug (1), gnutls-serv (1), srptool (1), certtool (1)
-</p>
-<a name="psktool-Examples"></a><a name="psktool-Examples-1"></a>
+<a name="psktool-Examples"></a></p><a name="psktool-Examples-1"></a>
 <h4 class="subsubheading">psktool Examples</h4>
-<p>To add a user &rsquo;psk_identity&rsquo; in &lsquo;<tt>passwd.psk</tt>&rsquo; for use with GnuTLS run:
+<p>To add a user &rsquo;psk_identity&rsquo; in <samp>passwd.psk</samp> for use with GnuTLS run:
 </p><div class="example">
 <pre class="example">$ ./psktool -u psk_identity -p passwd.psk
 Generating a random key for user 'psk_identity'
@@ -3019,10 +3033,9 @@ psk_identity:88f3824b3e5659f52d00e959bacab954b6540344
 $
 </pre></div>
 
-<p>This command will create &lsquo;<tt>passwd.psk</tt>&rsquo; if it does not exist
-and will add user &rsquo;psk_identity&rsquo; (you will also be prompted for a password). 
+<p>This command will create <samp>passwd.psk</samp> if it does not exist
+and will add user &rsquo;psk_identity&rsquo; (you will also be prompted for a password).
 </p>
-
 <hr>
 <a name="Anonymous-authentication"></a>
 <div class="header">
@@ -3115,11 +3128,11 @@ The last step ensures that the requester is in
 possession of the private key.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrq_005fset_005fversion">gnutls_x509_crq_set_version</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrq_005fset_005fdn_005fby_005foid">gnutls_x509_crq_set_dn_by_oid</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrq_005fset_005fkey_005fusage">gnutls_x509_crq_set_key_usage</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrq_005fset_005fkey_005fpurpose_005foid">gnutls_x509_crq_set_key_purpose_oid</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrq_005fset_005fbasic_005fconstraints">gnutls_x509_crq_set_basic_constraints</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrq_005fset_005fversion">gnutls_x509_crq_set_version</a> (gnutls_x509_crq_t <var>crq</var>, unsigned int <var>version</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrq_005fset_005fdn_005fby_005foid">gnutls_x509_crq_set_dn_by_oid</a> (gnutls_x509_crq_t <var>crq</var>, const char * <var>oid</var>, unsigned int <var>raw_flag</var>, const void * <var>data</var>, unsigned int <var>sizeof_data</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrq_005fset_005fkey_005fusage">gnutls_x509_crq_set_key_usage</a> (gnutls_x509_crq_t <var>crq</var>, unsigned int <var>usage</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrq_005fset_005fkey_005fpurpose_005foid">gnutls_x509_crq_set_key_purpose_oid</a> (gnutls_x509_crq_t <var>crq</var>, const void * <var>oid</var>, unsigned int <var>critical</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrq_005fset_005fbasic_005fconstraints">gnutls_x509_crq_set_basic_constraints</a> (gnutls_x509_crq_t <var>crq</var>, unsigned int <var>ca</var>, int <var>pathLenConstraint</var>)</code></dt>
 </dl>
 
 <p>The <a href="#gnutls_005fx509_005fcrq_005fset_005fkey">gnutls_x509_crq_set_key</a> and <a href="#gnutls_005fx509_005fcrq_005fsign2">gnutls_x509_crq_sign2</a> 
@@ -3277,7 +3290,7 @@ Next: <a href="#OCSP-certificate-status-checking" accesskey="n" rel="next">OCSP
 <p>A certificate revocation list (CRL) is a structure issued by an authority
 periodically containing a list of revoked certificates serial numbers. 
 The CRL structure is signed with the issuing authorities&rsquo; keys. A typical
-CRL contains the fields as shown in <a href="#tab_003acrl">tab:crl</a>.
+CRL contains the fields as shown in <a href="#tab_003acrl">Table 6.1</a>.
 Certificate revocation lists are used to complement the expiration date of a certificate,
 in order to account for other reasons of revocation, such as compromised keys, etc.
 </p>
@@ -3301,14 +3314,14 @@ the issuing time of the next update.
 <tr><td width="20%">extensions</td><td width="70%">Optional CRL structure extensions.</td></tr>
 </table>
 
-</div><p><strong>Table 6.1: </strong>Certificate revocation list fields.</p>
+<div class="float-caption"><p><strong>Table 6.1: </strong>Certificate revocation list fields.</p></div></div>
 
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrl_005fset_005fversion">gnutls_x509_crl_set_version</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrl_005fset_005fcrt_005fserial">gnutls_x509_crl_set_crt_serial</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrl_005fset_005fcrt">gnutls_x509_crl_set_crt</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrl_005fset_005fnext_005fupdate">gnutls_x509_crl_set_next_update</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrl_005fset_005fthis_005fupdate">gnutls_x509_crl_set_this_update</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrl_005fset_005fversion">gnutls_x509_crl_set_version</a> (gnutls_x509_crl_t <var>crl</var>, unsigned int <var>version</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrl_005fset_005fcrt_005fserial">gnutls_x509_crl_set_crt_serial</a> (gnutls_x509_crl_t <var>crl</var>, const void * <var>serial</var>, size_t <var>serial_size</var>, time_t <var>revocation_time</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrl_005fset_005fcrt">gnutls_x509_crl_set_crt</a> (gnutls_x509_crl_t <var>crl</var>, gnutls_x509_crt_t <var>crt</var>, time_t <var>revocation_time</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrl_005fset_005fnext_005fupdate">gnutls_x509_crl_set_next_update</a> (gnutls_x509_crl_t <var>crl</var>, time_t <var>exp_time</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrl_005fset_005fthis_005fupdate">gnutls_x509_crl_set_this_update</a> (gnutls_x509_crl_t <var>crl</var>, time_t <var>act_time</var>)</code></dt>
 </dl>
 
 <p>The <a href="#gnutls_005fx509_005fcrl_005fsign2">gnutls_x509_crl_sign2</a> and <a href="#gnutls_005fx509_005fcrl_005fprivkey_005fsign">gnutls_x509_crl_privkey_sign</a> 
@@ -3372,8 +3385,8 @@ negative error value.
 CRL number extension and the authority key identifier.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrl_005fset_005fnumber">gnutls_x509_crl_set_number</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrl_005fset_005fauthority_005fkey_005fid">gnutls_x509_crl_set_authority_key_id</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrl_005fset_005fnumber">gnutls_x509_crl_set_number</a> (gnutls_x509_crl_t <var>crl</var>, const void * <var>nr</var>, size_t <var>nr_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrl_005fset_005fauthority_005fkey_005fid">gnutls_x509_crl_set_authority_key_id</a> (gnutls_x509_crl_t <var>crl</var>, const void * <var>id</var>, size_t <var>id_size</var>)</code></dt>
 </dl>
 
 <hr>
@@ -3413,7 +3426,7 @@ the access method called <code>id-ad-ocsp</code>. The following function
 extracts this information from a certificate.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fget_005fauthority_005finfo_005faccess">gnutls_x509_crt_get_authority_info_access</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fget_005fauthority_005finfo_005faccess">gnutls_x509_crt_get_authority_info_access</a> (gnutls_x509_crt_t <var>crt</var>, unsigned int <var>seq</var>, int <var>what</var>, gnutls_datum_t * <var>data</var>, unsigned int * <var>critical</var>)</code></dt>
 </dl>
 
 <p>There are several functions in GnuTLS for creating and manipulating
@@ -3458,11 +3471,11 @@ CertID          ::=     SEQUENCE {
 requests are the following.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005focsp_005freq_005finit">gnutls_ocsp_req_init</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005fdeinit">gnutls_ocsp_req_deinit</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005fimport">gnutls_ocsp_req_import</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005fexport">gnutls_ocsp_req_export</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005fprint">gnutls_ocsp_req_print</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005finit">gnutls_ocsp_req_init</a> (gnutls_ocsp_req_t * <var>req</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005focsp_005freq_005fdeinit">gnutls_ocsp_req_deinit</a> (gnutls_ocsp_req_t <var>req</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fimport">gnutls_ocsp_req_import</a> (gnutls_ocsp_req_t <var>req</var>, const gnutls_datum_t * <var>data</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fexport">gnutls_ocsp_req_export</a> (gnutls_ocsp_req_t <var>req</var>, gnutls_datum_t * <var>data</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fprint">gnutls_ocsp_req_print</a> (gnutls_ocsp_req_t <var>req</var>, gnutls_ocsp_print_formats_t <var>format</var>, gnutls_datum_t * <var>out</var>)</code></dt>
 </dl>
 
 <p>There are two interfaces for setting the identity of a certificate in
@@ -3474,9 +3487,9 @@ There is also a function to extract this information from an OCSP
 request.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005focsp_005freq_005fadd_005fcert_005fid">gnutls_ocsp_req_add_cert_id</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005fadd_005fcert">gnutls_ocsp_req_add_cert</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005fget_005fcert_005fid">gnutls_ocsp_req_get_cert_id</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fadd_005fcert_005fid">gnutls_ocsp_req_add_cert_id</a> (gnutls_ocsp_req_t <var>req</var>, gnutls_digest_algorithm_t <var>digest</var>, const gnutls_datum_t * <var>issuer_name_hash</var>, const gnutls_datum_t * <var>issuer_key_hash</var>, const gnutls_datum_t * <var>serial_number</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fadd_005fcert">gnutls_ocsp_req_add_cert</a> (gnutls_ocsp_req_t <var>req</var>, gnutls_digest_algorithm_t <var>digest</var>, gnutls_x509_crt_t <var>issuer</var>, gnutls_x509_crt_t <var>cert</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fget_005fcert_005fid">gnutls_ocsp_req_get_cert_id</a> (gnutls_ocsp_req_t <var>req</var>, unsigned <var>indx</var>, gnutls_digest_algorithm_t * <var>digest</var>, gnutls_datum_t * <var>issuer_name_hash</var>, gnutls_datum_t * <var>issuer_key_hash</var>, gnutls_datum_t * <var>serial_number</var>)</code></dt>
 </dl>
 
 <p>Each OCSP request may contain a number of extensions.  Extensions are
@@ -3484,8 +3497,8 @@ identified by an Object Identifier (OID) and an opaque data buffer
 whose syntax and semantics is implied by the OID.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005focsp_005freq_005fget_005fextension">gnutls_ocsp_req_get_extension</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005fset_005fextension">gnutls_ocsp_req_set_extension</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fget_005fextension">gnutls_ocsp_req_get_extension</a> (gnutls_ocsp_req_t <var>req</var>, unsigned <var>indx</var>, gnutls_datum_t * <var>oid</var>, unsigned int * <var>critical</var>, gnutls_datum_t * <var>data</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fset_005fextension">gnutls_ocsp_req_set_extension</a> (gnutls_ocsp_req_t <var>req</var>, const char * <var>oid</var>, unsigned int <var>critical</var>, const gnutls_datum_t * <var>data</var>)</code></dt>
 </dl>
 
 <p>A common OCSP Request extension is the nonce extension (OID
@@ -3495,9 +3508,9 @@ that is intended to be sufficiently random and unique so that an
 attacker will not be able to give a stale response for the same nonce.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005focsp_005freq_005fget_005fnonce">gnutls_ocsp_req_get_nonce</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005fset_005fnonce">gnutls_ocsp_req_set_nonce</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005freq_005frandomize_005fnonce">gnutls_ocsp_req_randomize_nonce</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fget_005fnonce">gnutls_ocsp_req_get_nonce</a> (gnutls_ocsp_req_t <var>req</var>, unsigned int * <var>critical</var>, gnutls_datum_t * <var>nonce</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005fset_005fnonce">gnutls_ocsp_req_set_nonce</a> (gnutls_ocsp_req_t <var>req</var>, unsigned int <var>critical</var>, const gnutls_datum_t * <var>nonce</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005freq_005frandomize_005fnonce">gnutls_ocsp_req_randomize_nonce</a> (gnutls_ocsp_req_t <var>req</var>)</code></dt>
 </dl>
 
 <p>The OCSP response structures is a bit more complex than the request.
@@ -3566,19 +3579,19 @@ and deallocating OCSP responses.  The Basic OCSP Response structure is
 automatically parsed when an OCSP Response is imported.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005focsp_005fresp_005finit">gnutls_ocsp_resp_init</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005fresp_005fdeinit">gnutls_ocsp_resp_deinit</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005fresp_005fimport">gnutls_ocsp_resp_import</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005fresp_005fexport">gnutls_ocsp_resp_export</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005fresp_005fprint">gnutls_ocsp_resp_print</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005fresp_005finit">gnutls_ocsp_resp_init</a> (gnutls_ocsp_resp_t * <var>resp</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005focsp_005fresp_005fdeinit">gnutls_ocsp_resp_deinit</a> (gnutls_ocsp_resp_t <var>resp</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005fresp_005fimport">gnutls_ocsp_resp_import</a> (gnutls_ocsp_resp_t <var>resp</var>, const gnutls_datum_t * <var>data</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005fresp_005fexport">gnutls_ocsp_resp_export</a> (gnutls_ocsp_resp_t <var>resp</var>, gnutls_datum_t * <var>data</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005fresp_005fprint">gnutls_ocsp_resp_print</a> (gnutls_ocsp_resp_t <var>resp</var>, gnutls_ocsp_print_formats_t <var>format</var>, gnutls_datum_t * <var>out</var>)</code></dt>
 </dl>
 
 <p>The OCSP response needs to be verified against some set of trust
 anchors before it can be relied upon.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005focsp_005fresp_005fverify">gnutls_ocsp_resp_verify</a></code></dt>
-<dt><code><a href="#gnutls_005focsp_005fresp_005fverify_005fdirect">gnutls_ocsp_resp_verify_direct</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005fresp_005fverify">gnutls_ocsp_resp_verify</a> (gnutls_ocsp_resp_t <var>resp</var>, gnutls_x509_trust_list_t <var>trustlist</var>, unsigned int * <var>verify</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005focsp_005fresp_005fverify_005fdirect">gnutls_ocsp_resp_verify_direct</a> (gnutls_ocsp_resp_t <var>resp</var>, gnutls_x509_crt_t <var>issuer</var>, unsigned int * <var>verify</var>, unsigned int <var>flags</var>)</code></dt>
 </dl>
 
 <hr>
@@ -3618,8 +3631,8 @@ encryption scheme. Keys encrypted with the obsolete PBES1 scheme cannot
 be decrypted.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fprivkey_005fimport_005fpkcs8">gnutls_x509_privkey_import_pkcs8</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fprivkey_005fexport_005fpkcs8">gnutls_x509_privkey_export_pkcs8</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fprivkey_005fimport_005fpkcs8">gnutls_x509_privkey_import_pkcs8</a> (gnutls_x509_privkey_t <var>key</var>, const gnutls_datum_t * <var>data</var>, gnutls_x509_crt_fmt_t <var>format</var>, const char * <var>password</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fprivkey_005fexport_005fpkcs8">gnutls_x509_privkey_export_pkcs8</a> (gnutls_x509_privkey_t <var>key</var>, gnutls_x509_crt_fmt_t <var>format</var>, const char * <var>password</var>, unsigned int <var>flags</var>, void * <var>output_data</var>, size_t * <var>output_data_size</var>)</code></dt>
 </dl>
 
 <div class="float"><a name="gnutls_005fpkcs_005fencrypt_005fflags_005ft"></a>
@@ -3664,7 +3677,7 @@ be decrypted.
 </p></dd>
 </dl>
 
-</div><p><strong>Figure 6.1: </strong>Encryption flags</p>
+<div class="float-caption"><p><strong>Figure 6.1: </strong>Encryption flags</p></div></div>
 <a name="PKCS-_002312-structures"></a>
 <h4 class="subheading"><acronym>PKCS</acronym> #12 structures</h4>
 <a name="index-PKCS-_002312"></a>
@@ -3681,32 +3694,32 @@ keys or encrypted data.  A bag of type encrypted should be decrypted
 in order for its data to be accessed.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpkcs12_005fget_005fbag">gnutls_pkcs12_get_bag</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fverify_005fmac">gnutls_pkcs12_verify_mac</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fdecrypt">gnutls_pkcs12_bag_decrypt</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fget_005fbag">gnutls_pkcs12_get_bag</a> (gnutls_pkcs12_t <var>pkcs12</var>, int <var>indx</var>, gnutls_pkcs12_bag_t <var>bag</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fverify_005fmac">gnutls_pkcs12_verify_mac</a> (gnutls_pkcs12_t <var>pkcs12</var>, const char * <var>pass</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fdecrypt">gnutls_pkcs12_bag_decrypt</a> (gnutls_pkcs12_bag_t <var>bag</var>, const char * <var>pass</var>)</code></dt>
 </dl>
 
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fget_005fcount">gnutls_pkcs12_bag_get_count</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fget_005fdata">gnutls_pkcs12_bag_get_data</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fget_005fkey_005fid">gnutls_pkcs12_bag_get_key_id</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fget_005ffriendly_005fname">gnutls_pkcs12_bag_get_friendly_name</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fget_005fcount">gnutls_pkcs12_bag_get_count</a> (gnutls_pkcs12_bag_t <var>bag</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fget_005fdata">gnutls_pkcs12_bag_get_data</a> (gnutls_pkcs12_bag_t <var>bag</var>, int <var>indx</var>, gnutls_datum_t * <var>data</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fget_005fkey_005fid">gnutls_pkcs12_bag_get_key_id</a> (gnutls_pkcs12_bag_t <var>bag</var>, int <var>indx</var>, gnutls_datum_t * <var>id</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fget_005ffriendly_005fname">gnutls_pkcs12_bag_get_friendly_name</a> (gnutls_pkcs12_bag_t <var>bag</var>, int <var>indx</var>, char ** <var>name</var>)</code></dt>
 </dl>
 
 <p>The functions below are used to generate a PKCS #12 structure. An example
 of their usage is also shown.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpkcs12_005fset_005fbag">gnutls_pkcs12_set_bag</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fencrypt">gnutls_pkcs12_bag_encrypt</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fgenerate_005fmac">gnutls_pkcs12_generate_mac</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fset_005fbag">gnutls_pkcs12_set_bag</a> (gnutls_pkcs12_t <var>pkcs12</var>, gnutls_pkcs12_bag_t <var>bag</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fencrypt">gnutls_pkcs12_bag_encrypt</a> (gnutls_pkcs12_bag_t <var>bag</var>, const char * <var>pass</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fgenerate_005fmac">gnutls_pkcs12_generate_mac</a> (gnutls_pkcs12_t <var>pkcs12</var>, const char * <var>pass</var>)</code></dt>
 </dl>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fset_005fdata">gnutls_pkcs12_bag_set_data</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fset_005fcrl">gnutls_pkcs12_bag_set_crl</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fset_005fcrt">gnutls_pkcs12_bag_set_crt</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fset_005fkey_005fid">gnutls_pkcs12_bag_set_key_id</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs12_005fbag_005fset_005ffriendly_005fname">gnutls_pkcs12_bag_set_friendly_name</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fset_005fdata">gnutls_pkcs12_bag_set_data</a> (gnutls_pkcs12_bag_t <var>bag</var>, gnutls_pkcs12_bag_type_t <var>type</var>, const gnutls_datum_t * <var>data</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fset_005fcrl">gnutls_pkcs12_bag_set_crl</a> (gnutls_pkcs12_bag_t <var>bag</var>, gnutls_x509_crl_t <var>crl</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fset_005fcrt">gnutls_pkcs12_bag_set_crt</a> (gnutls_pkcs12_bag_t <var>bag</var>, gnutls_x509_crt_t <var>crt</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fset_005fkey_005fid">gnutls_pkcs12_bag_set_key_id</a> (gnutls_pkcs12_bag_t <var>bag</var>, int <var>indx</var>, const gnutls_datum_t * <var>id</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs12_005fbag_005fset_005ffriendly_005fname">gnutls_pkcs12_bag_set_friendly_name</a> (gnutls_pkcs12_bag_t <var>bag</var>, int <var>indx</var>, const char * <var>name</var>)</code></dt>
 </dl>
 
 <pre class="verbatim">/* This example code is placed in the public domain. */
@@ -3853,7 +3866,6 @@ Next: <a href="#ocsptool-Invocation" accesskey="n" rel="next">ocsptool Invocatio
 <a name="Invoking-certtool"></a>
 <h3 class="section">6.5 Invoking certtool</h3>
 <a name="index-certtool"></a>
-<a name="index-GnuTLS-PKCS-_002311-tool"></a>
 
 
 <p>Tool to parse and generate X.509 certificates, requests and private keys.
@@ -3865,21 +3877,23 @@ using the <code>agtexi-cmd</code> template and the option descriptions for the <
 This software is released under the GNU General Public License, version 3 or later.
 </p>
 
-<a name="certtool-usage"></a><a name="certtool-help_002fusage-_0028_002dh_0029"></a>
-<h4 class="subheading">certtool help/usage (-h)</h4>
+<a name="certtool-usage"></a><a name="certtool-help_002fusage-_0028_002d_002dhelp_0029"></a>
+<h4 class="subheading">certtool help/usage (<samp>--help</samp>)</h4>
 <a name="index-certtool-help"></a>
 
 <p>This is the automatically generated usage text for certtool.
-The text printed is the same whether for the <code>help</code> option (-h) or the <code>more-help</code> option (-!).  <code>more-help</code> will print
+</p>
+<p>The text printed is the same whether selected with the <code>help</code> option
+(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>).  <code>more-help</code> will print
 the usage text by passing it through a pager program.
 <code>more-help</code> is disabled on platforms without a working
 <code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
-used to select the program, defaulting to &lsquo;<tt>more</tt>&rsquo;.  Both will exit
+used to select the program, defaulting to <samp>more</samp>.  Both will exit
 with a status code of 0.
 </p>
 <div class="example">
 <pre class="example">certtool - GnuTLS PKCS #11 tool - Ver. @VERSION@
-USAGE:  certtool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
+USAGE:  lt-certtool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -3965,20 +3979,17 @@ please send bug reports to:  bug-gnutls@gnu.org
 
 <a name="certtool-debug"></a><a name="debug-option-_0028_002dd_0029-2"></a>
 <h4 class="subheading">debug option (-d)</h4>
-<a name="index-certtool_002ddebug"></a>
 
 <p>This is the &ldquo;enable debugging.&rdquo; option.
 This option takes an argument number.
 Specifies the debug level.
 <a name="certtool-verify_002dchain"></a></p><a name="verify_002dchain-option-_0028_002de_0029"></a>
 <h4 class="subheading">verify-chain option (-e)</h4>
-<a name="index-certtool_002dverify_002dchain"></a>
 
 <p>This is the &ldquo;verify a pem encoded certificate chain.&rdquo; option.
 The last certificate in the chain must be a self signed one.
 <a name="certtool-verify"></a></p><a name="verify-option-1"></a>
 <h4 class="subheading">verify option</h4>
-<a name="index-certtool_002dverify"></a>
 
 <p>This is the &ldquo;verify a pem encoded certificate chain using a trusted list.&rdquo; option.
 </p>
@@ -3991,7 +4002,6 @@ load-ca-certificate.
 <p>The trusted certificate list must be loaded with &ndash;load-ca-certificate.
 <a name="certtool-verify_002dcrl"></a></p><a name="verify_002dcrl-option"></a>
 <h4 class="subheading">verify-crl option</h4>
-<a name="index-certtool_002dverify_002dcrl"></a>
 
 <p>This is the &ldquo;verify a crl using a trusted list.&rdquo; option.
 </p>
@@ -4004,49 +4014,42 @@ load-ca-certificate.
 <p>The trusted certificate list must be loaded with &ndash;load-ca-certificate.
 <a name="certtool-get_002ddh_002dparams"></a></p><a name="get_002ddh_002dparams-option"></a>
 <h4 class="subheading">get-dh-params option</h4>
-<a name="index-certtool_002dget_002ddh_002dparams"></a>
 
 <p>This is the &ldquo;get the included pkcs #3 encoded diffie-hellman parameters.&rdquo; option.
 Returns stored DH parameters in GnuTLS. Those parameters are used in the SRP protocol. The parameters returned by fresh generation
 are more efficient since GnuTLS 3.0.9.
 <a name="certtool-load_002dprivkey"></a></p><a name="load_002dprivkey-option"></a>
 <h4 class="subheading">load-privkey option</h4>
-<a name="index-certtool_002dload_002dprivkey"></a>
 
 <p>This is the &ldquo;loads a private key file&rdquo; option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 <a name="certtool-load_002dpubkey"></a></p><a name="load_002dpubkey-option"></a>
 <h4 class="subheading">load-pubkey option</h4>
-<a name="index-certtool_002dload_002dpubkey"></a>
 
 <p>This is the &ldquo;loads a public key file&rdquo; option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 <a name="certtool-load_002dcertificate"></a></p><a name="load_002dcertificate-option"></a>
 <h4 class="subheading">load-certificate option</h4>
-<a name="index-certtool_002dload_002dcertificate"></a>
 
 <p>This is the &ldquo;loads a certificate file&rdquo; option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 <a name="certtool-load_002dca_002dprivkey"></a></p><a name="load_002dca_002dprivkey-option"></a>
 <h4 class="subheading">load-ca-privkey option</h4>
-<a name="index-certtool_002dload_002dca_002dprivkey"></a>
 
 <p>This is the &ldquo;loads the certificate authority&rsquo;s private key file&rdquo; option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 <a name="certtool-load_002dca_002dcertificate"></a></p><a name="load_002dca_002dcertificate-option"></a>
 <h4 class="subheading">load-ca-certificate option</h4>
-<a name="index-certtool_002dload_002dca_002dcertificate"></a>
 
 <p>This is the &ldquo;loads the certificate authority&rsquo;s certificate file&rdquo; option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 <a name="certtool-to_002dp12"></a></p><a name="to_002dp12-option"></a>
 <h4 class="subheading">to-p12 option</h4>
-<a name="index-certtool_002dto_002dp12"></a>
 
 <p>This is the &ldquo;generate a pkcs #12 structure&rdquo; option.
 </p>
@@ -4059,14 +4062,12 @@ load-certificate.
 <p>It requires a certificate, a private key and possibly a CA certificate to be specified.
 <a name="certtool-hash"></a></p><a name="hash-option"></a>
 <h4 class="subheading">hash option</h4>
-<a name="index-certtool_002dhash"></a>
 
 <p>This is the &ldquo;hash algorithm to use for signing.&rdquo; option.
 This option takes an argument string.
 Available hash functions are SHA1, RMD160, SHA256, SHA384, SHA512.
 <a name="certtool-inder"></a></p><a name="inder-option"></a>
 <h4 class="subheading">inder option</h4>
-<a name="index-certtool_002dinder"></a>
 
 <p>This is the &ldquo;use der format for input certificates and private keys.&rdquo; option.
 The input files will be assumed to be in DER or RAW format. 
@@ -4074,37 +4075,32 @@ Unlike options that in PEM input would allow multiple input data (e.g. multiple
 certificates), when reading in DER format a single data structure is read.
 <a name="certtool-inraw"></a></p><a name="inraw-option"></a>
 <h4 class="subheading">inraw option</h4>
-<a name="index-certtool_002dinraw"></a>
 
-<p>This is an alias for the inder option,
+<p>This is an alias for the <code>inder</code> option,
 see <a href="#certtool-inder">the inder option documentation</a>.
 </p>
 <a name="certtool-outder"></a><a name="outder-option"></a>
 <h4 class="subheading">outder option</h4>
-<a name="index-certtool_002doutder"></a>
 
 <p>This is the &ldquo;use der format for output certificates and private keys&rdquo; option.
 The output will be in DER or RAW format.
 <a name="certtool-outraw"></a></p><a name="outraw-option"></a>
 <h4 class="subheading">outraw option</h4>
-<a name="index-certtool_002doutraw"></a>
 
-<p>This is an alias for the outder option,
+<p>This is an alias for the <code>outder</code> option,
 see <a href="#certtool-outder">the outder option documentation</a>.
 </p>
 <a name="certtool-sec_002dparam"></a><a name="sec_002dparam-option"></a>
 <h4 class="subheading">sec-param option</h4>
-<a name="index-certtool_002dsec_002dparam"></a>
 
 <p>This is the &ldquo;specify the security level [low, legacy, normal, high, ultra].&rdquo; option.
-This option takes an argument string &lsquo;<tt>Security parameter</tt>&rsquo;.
+This option takes an argument string <samp>Security parameter</samp>.
 This is alternative to the bits option.
 <a name="certtool-pkcs_002dcipher"></a></p><a name="pkcs_002dcipher-option"></a>
 <h4 class="subheading">pkcs-cipher option</h4>
-<a name="index-certtool_002dpkcs_002dcipher"></a>
 
 <p>This is the &ldquo;cipher to use for pkcs #8 and #12 operations&rdquo; option.
-This option takes an argument string &lsquo;<tt>Cipher</tt>&rsquo;.
+This option takes an argument string <samp>Cipher</samp>.
 Cipher may be one of 3des, 3des-pkcs12, aes-128, aes-192, aes-256, rc2-40, arcfour.
 <a name="certtool-exit-status"></a></p><a name="certtool-exit-status-1"></a>
 <h4 class="subheading">certtool exit status</h4>
@@ -4121,8 +4117,7 @@ Cipher may be one of 3des, 3des-pkcs12, aes-128, aes-192, aes-256, rc2-40, arcfo
 <a name="certtool-See-Also"></a><a name="certtool-See-Also-1"></a>
 <h4 class="subheading">certtool See Also</h4>
 <p>p11tool (1)
-</p>
-<a name="certtool-Examples"></a><a name="certtool-Examples-1"></a>
+<a name="certtool-Examples"></a></p><a name="certtool-Examples-1"></a>
 <h4 class="subheading">certtool Examples</h4>
 <a name="Generating-private-keys"></a>
 <h4 class="subheading">Generating private keys</h4>
@@ -4249,7 +4244,6 @@ certificates in a file and use <code>--load-certificate</code> as follows:
 <div class="example">
 <pre class="example">$ certtool --verify-crl --load-ca-certificate x509-ca.pem &lt; crl.pem
 </pre></div>
-
 <a name="certtool-Files"></a><a name="certtool-Files-1"></a>
 <h4 class="subheading">certtool Files</h4>
 <a name="Certtool_0027s-template-file-format"></a>
@@ -4409,8 +4403,6 @@ signing_key
 
 </pre></div>
 
-
-
 <hr>
 <a name="ocsptool-Invocation"></a>
 <div class="header">
@@ -4420,7 +4412,6 @@ Next: <a href="#Smart-cards-and-HSMs" accesskey="n" rel="next">Smart cards and H
 <a name="Invoking-ocsptool"></a>
 <h3 class="section">6.6 Invoking ocsptool</h3>
 <a name="index-ocsptool"></a>
-<a name="index-GnuTLS-OCSP-tool"></a>
 
 
 <p>Ocsptool is a program that can parse and print information about
@@ -4432,21 +4423,23 @@ using the <code>agtexi-cmd</code> template and the option descriptions for the <
 This software is released under the GNU General Public License, version 3 or later.
 </p>
 
-<a name="ocsptool-usage"></a><a name="ocsptool-help_002fusage-_0028_002dh_0029"></a>
-<h4 class="subheading">ocsptool help/usage (-h)</h4>
+<a name="ocsptool-usage"></a><a name="ocsptool-help_002fusage-_0028_002d_002dhelp_0029"></a>
+<h4 class="subheading">ocsptool help/usage (<samp>--help</samp>)</h4>
 <a name="index-ocsptool-help"></a>
 
 <p>This is the automatically generated usage text for ocsptool.
-The text printed is the same whether for the <code>help</code> option (-h) or the <code>more-help</code> option (-!).  <code>more-help</code> will print
+</p>
+<p>The text printed is the same whether selected with the <code>help</code> option
+(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>).  <code>more-help</code> will print
 the usage text by passing it through a pager program.
 <code>more-help</code> is disabled on platforms without a working
 <code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
-used to select the program, defaulting to &lsquo;<tt>more</tt>&rsquo;.  Both will exit
+used to select the program, defaulting to <samp>more</samp>.  Both will exit
 with a status code of 0.
 </p>
 <div class="example">
 <pre class="example">ocsptool - GnuTLS OCSP tool - Ver. @VERSION@
-USAGE:  ocsptool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
+USAGE:  lt-ocsptool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -4501,17 +4494,15 @@ please send bug reports to:  bug-gnutls@gnu.org
 
 <a name="ocsptool-debug"></a><a name="debug-option-_0028_002dd_0029-3"></a>
 <h4 class="subheading">debug option (-d)</h4>
-<a name="index-ocsptool_002ddebug"></a>
 
 <p>This is the &ldquo;enable debugging.&rdquo; option.
 This option takes an argument number.
 Specifies the debug level.
 <a name="ocsptool-ask"></a></p><a name="ask-option"></a>
 <h4 class="subheading">ask option</h4>
-<a name="index-ocsptool_002dask"></a>
 
 <p>This is the &ldquo;ask an ocsp/http server on a certificate validity&rdquo; option.
-This option takes an optional argument string &lsquo;<tt>server name|url</tt>&rsquo;.
+This option takes an optional argument string <samp>server name|url</samp>.
 </p>
 <p>This option has some usage constraints.  It:
 </p><ul>
@@ -4535,8 +4526,7 @@ load-cert, load-issuer.
 <a name="ocsptool-See-Also"></a><a name="ocsptool-See-Also-1"></a>
 <h4 class="subheading">ocsptool See Also</h4>
 <p>certtool (1)
-</p>
-<a name="ocsptool-Examples"></a><a name="ocsptool-Examples-1"></a>
+<a name="ocsptool-Examples"></a></p><a name="ocsptool-Examples-1"></a>
 <h4 class="subheading">ocsptool Examples</h4>
 <a name="Print-information-about-an-OCSP-request"></a>
 <h4 class="subheading">Print information about an OCSP request</h4>
@@ -4673,8 +4663,6 @@ create a OCSP request for the certificate.
 <p>The request is sent via HTTP to the OCSP server address specified. If the
 address is ommited ocsptool will use the address stored in the certificate.
 </p>
-
-
 <hr>
 <a name="Smart-cards-and-HSMs"></a>
 <div class="header">
@@ -4700,9 +4688,9 @@ separation subsystem.
 </p>
 <p><acronym>PKCS</acronym> #11 is plugin API allowing applications to access cryptographic
 operations on a security module, as well as to objects residing on it. PKCS
-#11 modules exist for hardware tokens such as smart cards<a name="DOCF9" href="#FOOT9">(9)</a>,
+#11 modules exist for hardware tokens such as smart cards<a name="DOCF9" href="#FOOT9"><sup>9</sup></a>,
 the trusted 
-platform module (TPM)<a name="DOCF10" href="#FOOT10">(10)</a>
+platform module (TPM)<a name="DOCF10" href="#FOOT10"><sup>10</sup></a>
 as well as for software modules like <acronym>Gnome Keyring</acronym>. 
 The objects residing on a security module may be certificates, public keys, 
 private keys or secret keys. Of those certificates and public/private key 
@@ -4711,7 +4699,7 @@ it allows operations on private key objects such as decryption
 and signing without exposing the key.
 </p>
 <p>Moreover <acronym>PKCS</acronym> #11 can be (ab)used to allow all applications in the same operating system to access
-shared cryptographic keys and certificates in a uniform way, as in <a href="#fig_003apkcs11_002dvision">fig:pkcs11-vision</a>.
+shared cryptographic keys and certificates in a uniform way, as in <a href="#fig_003apkcs11_002dvision">Figure 6.2</a>.
 That way applications could load their trusted certificate list, as well as user
 certificates from a common PKCS #11 module. Such a provider exists in the <acronym>Gnome</acronym> 
 system, being the <acronym>Gnome Keyring</acronym>.
@@ -4719,7 +4707,7 @@ system, being the <acronym>Gnome Keyring</acronym>.
 <div class="float"><a name="fig_003apkcs11_002dvision"></a>
 <img src="pkcs11-vision.png" alt="pkcs11-vision">
 
-</div><p><strong>Figure 6.2: </strong>PKCS #11 module usage.</p>
+<div class="float-caption"><p><strong>Figure 6.2: </strong>PKCS #11 module usage.</p></div></div>
 <table class="menu" border="0" cellspacing="0">
 <tr><td align="left" valign="top">&bull; <a href="#PKCS11-Initialization" accesskey="1">PKCS11 Initialization</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
@@ -4743,7 +4731,7 @@ Next: <a href="#Reading-objects" accesskey="n" rel="next">Reading objects</a>, U
 <h4 class="subsection">6.7.1 Initialization</h4>
 <p>To allow all the  <acronym>GnuTLS</acronym> applications to access <acronym>PKCS</acronym> #11 tokens
 you can use a configuration per module, stored in <code>/etc/pkcs11/modules/</code>. 
-These are the configuration files of <acronym>p11-kit</acronym><a name="DOCF11" href="#FOOT11">(11)</a>.
+These are the configuration files of <acronym>p11-kit</acronym><a name="DOCF11" href="#FOOT11"><sup>11</sup></a>.
 For example a file that will load the <acronym>OpenSC</acronym> module, could be named
 <code>/etc/pkcs11/modules/opensc</code> and contain the following:
 </p>
@@ -4782,9 +4770,9 @@ negative error value.
 <p><strong>Since:</strong> 2.12.0
 </p></dd></dl>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpkcs11_005fset_005ftoken_005ffunction">gnutls_pkcs11_set_token_function</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs11_005fset_005fpin_005ffunction">gnutls_pkcs11_set_pin_function</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs11_005fadd_005fprovider">gnutls_pkcs11_add_provider</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fpkcs11_005fset_005ftoken_005ffunction">gnutls_pkcs11_set_token_function</a> (gnutls_pkcs11_token_callback_t <var>fn</var>, void * <var>userdata</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fpkcs11_005fset_005fpin_005ffunction">gnutls_pkcs11_set_pin_function</a> (gnutls_pkcs11_pin_callback_t <var>fn</var>, void * <var>userdata</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs11_005fadd_005fprovider">gnutls_pkcs11_add_provider</a> (const char * <var>name</var>, const char * <var>params</var>)</code></dt>
 </dl>
 
 <p>Note that due to limitations of <acronym>PKCS</acronym> #11 there are issues when multiple libraries 
@@ -4846,8 +4834,8 @@ be retrieved. The functions that can be used to access objects
 are shown below.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpkcs11_005fobj_005fimport_005furl">gnutls_pkcs11_obj_import_url</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs11_005fobj_005fexport_005furl">gnutls_pkcs11_obj_export_url</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs11_005fobj_005fimport_005furl">gnutls_pkcs11_obj_import_url</a> (gnutls_pkcs11_obj_t <var>cert</var>, const char * <var>url</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs11_005fobj_005fexport_005furl">gnutls_pkcs11_obj_export_url</a> (gnutls_pkcs11_obj_t <var>obj</var>, gnutls_pkcs11_url_type_t <var>detailed</var>, char ** <var>url</var>)</code></dt>
 </dl>
 
 
@@ -4875,20 +4863,20 @@ although  <code>output_size</code> contains the size of the actual data only.
 </p></dd></dl>
 
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fimport_005fpkcs11">gnutls_x509_crt_import_pkcs11</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fimport_005fpkcs11_005furl">gnutls_x509_crt_import_pkcs11_url</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrt_005flist_005fimport_005fpkcs11">gnutls_x509_crt_list_import_pkcs11</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fimport_005fpkcs11">gnutls_x509_crt_import_pkcs11</a> (gnutls_x509_crt_t <var>crt</var>, gnutls_pkcs11_obj_t <var>pkcs11_crt</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fimport_005fpkcs11_005furl">gnutls_x509_crt_import_pkcs11_url</a> (gnutls_x509_crt_t <var>crt</var>, const char * <var>url</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005flist_005fimport_005fpkcs11">gnutls_x509_crt_list_import_pkcs11</a> (gnutls_x509_crt_t * <var>certs</var>, unsigned int <var>cert_max</var>, gnutls_pkcs11_obj_t * const <var>objs</var>, unsigned int <var>flags</var>)</code></dt>
 </dl>
 
 <p>Properties of the physical token can also be accessed and altered with <acronym>GnuTLS</acronym>.
 For example data in a token can be erased (initialized), PIN can be altered, etc.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpkcs11_005ftoken_005finit">gnutls_pkcs11_token_init</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs11_005ftoken_005fget_005furl">gnutls_pkcs11_token_get_url</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs11_005ftoken_005fget_005finfo">gnutls_pkcs11_token_get_info</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs11_005ftoken_005fget_005fflags">gnutls_pkcs11_token_get_flags</a></code></dt>
-<dt><code><a href="#gnutls_005fpkcs11_005ftoken_005fset_005fpin">gnutls_pkcs11_token_set_pin</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs11_005ftoken_005finit">gnutls_pkcs11_token_init</a> (const char * <var>token_url</var>, const char * <var>so_pin</var>, const char * <var>label</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs11_005ftoken_005fget_005furl">gnutls_pkcs11_token_get_url</a> (unsigned int <var>seq</var>, gnutls_pkcs11_url_type_t <var>detailed</var>, char ** <var>url</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs11_005ftoken_005fget_005finfo">gnutls_pkcs11_token_get_info</a> (const char * <var>url</var>, gnutls_pkcs11_token_info_t <var>ttype</var>, void * <var>output</var>, size_t * <var>output_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs11_005ftoken_005fget_005fflags">gnutls_pkcs11_token_get_flags</a> (const char * <var>url</var>, unsigned int * <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpkcs11_005ftoken_005fset_005fpin">gnutls_pkcs11_token_set_pin</a> (const char * <var>token_url</var>, const char * <var>oldpin</var>, const char * <var>newpin</var>, unsigned int <var>flags</var>)</code></dt>
 </dl>
 
 <p>The following examples demonstrate the usage of the API. The first example
@@ -5068,8 +5056,8 @@ the following functions can be used to load PKCS #11 key and
 certificates by specifying a PKCS #11 URL instead of a filename.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005ftrust_005ffile">gnutls_certificate_set_x509_trust_file</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005fkey_005ffile">gnutls_certificate_set_x509_key_file</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005ftrust_005ffile">gnutls_certificate_set_x509_trust_file</a> (gnutls_certificate_credentials_t <var>cred</var>, const char * <var>cafile</var>, gnutls_x509_crt_fmt_t <var>type</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005fkey_005ffile">gnutls_certificate_set_x509_key_file</a> (gnutls_certificate_credentials_t <var>res</var>, const char * <var>certfile</var>, const char * <var>keyfile</var>, gnutls_x509_crt_fmt_t <var>type</var>)</code></dt>
 </dl>
 
 
@@ -5100,7 +5088,6 @@ Previous: <a href="#Using-a-PKCS11-token-with-TLS" accesskey="p" rel="previous">
 <a name="Invoking-p11tool"></a>
 <h4 class="subsection">6.7.5 Invoking p11tool</h4>
 <a name="index-p11tool"></a>
-<a name="index-GnuTLS-PKCS-_002311-tool-1"></a>
 
 
 <p>Program that allows handling data from PKCS #11 smart cards
@@ -5115,21 +5102,23 @@ using the <code>agtexi-cmd</code> template and the option descriptions for the <
 This software is released under the GNU General Public License, version 3 or later.
 </p>
 
-<a name="p11tool-usage"></a><a name="p11tool-help_002fusage-_0028_002dh_0029"></a>
-<h4 class="subsubheading">p11tool help/usage (-h)</h4>
+<a name="p11tool-usage"></a><a name="p11tool-help_002fusage-_0028_002d_002dhelp_0029"></a>
+<h4 class="subsubheading">p11tool help/usage (<samp>--help</samp>)</h4>
 <a name="index-p11tool-help"></a>
 
 <p>This is the automatically generated usage text for p11tool.
-The text printed is the same whether for the <code>help</code> option (-h) or the <code>more-help</code> option (-!).  <code>more-help</code> will print
+</p>
+<p>The text printed is the same whether selected with the <code>help</code> option
+(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>).  <code>more-help</code> will print
 the usage text by passing it through a pager program.
 <code>more-help</code> is disabled on platforms without a working
 <code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
-used to select the program, defaulting to &lsquo;<tt>more</tt>&rsquo;.  Both will exit
+used to select the program, defaulting to <samp>more</samp>.  Both will exit
 with a status code of 0.
 </p>
 <div class="example">
 <pre class="example">p11tool - GnuTLS PKCS #11 tool - Ver. @VERSION@
-USAGE:  p11tool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [url]
+USAGE:  lt-p11tool [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [url]
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -5196,38 +5185,32 @@ please send bug reports to:  bug-gnutls@gnu.org
 
 <a name="p11tool-debug"></a><a name="debug-option-_0028_002dd_0029-4"></a>
 <h4 class="subsubheading">debug option (-d)</h4>
-<a name="index-p11tool_002ddebug"></a>
 
 <p>This is the &ldquo;enable debugging.&rdquo; option.
 This option takes an argument number.
 Specifies the debug level.
 <a name="p11tool-write"></a></p><a name="write-option"></a>
 <h4 class="subsubheading">write option</h4>
-<a name="index-p11tool_002dwrite"></a>
 
 <p>This is the &ldquo;writes the loaded objects to a pkcs #11 token&rdquo; option.
 It can be used to write private keys, certificates or secret keys to a token.
 <a name="p11tool-generate_002drsa"></a></p><a name="generate_002drsa-option"></a>
 <h4 class="subsubheading">generate-rsa option</h4>
-<a name="index-p11tool_002dgenerate_002drsa"></a>
 
 <p>This is the &ldquo;generate an rsa private-public key pair&rdquo; option.
 Generates an RSA private-public key pair on the specified token.
 <a name="p11tool-generate_002ddsa"></a></p><a name="generate_002ddsa-option"></a>
 <h4 class="subsubheading">generate-dsa option</h4>
-<a name="index-p11tool_002dgenerate_002ddsa"></a>
 
 <p>This is the &ldquo;generate an rsa private-public key pair&rdquo; option.
 Generates an RSA private-public key pair on the specified token.
 <a name="p11tool-generate_002decc"></a></p><a name="generate_002decc-option"></a>
 <h4 class="subsubheading">generate-ecc option</h4>
-<a name="index-p11tool_002dgenerate_002decc"></a>
 
 <p>This is the &ldquo;generate an rsa private-public key pair&rdquo; option.
 Generates an RSA private-public key pair on the specified token.
 <a name="p11tool-private"></a></p><a name="private-option"></a>
 <h4 class="subsubheading">private option</h4>
-<a name="index-p11tool_002dprivate"></a>
 
 <p>This is the &ldquo;marks the object to be written as private&rdquo; option.
 </p>
@@ -5239,27 +5222,23 @@ Generates an RSA private-public key pair on the specified token.
 <p>The written object will require a PIN to be used.
 <a name="p11tool-sec_002dparam"></a></p><a name="sec_002dparam-option-1"></a>
 <h4 class="subsubheading">sec-param option</h4>
-<a name="index-p11tool_002dsec_002dparam"></a>
 
 <p>This is the &ldquo;specify the security level&rdquo; option.
-This option takes an argument string &lsquo;<tt>Security parameter</tt>&rsquo;.
+This option takes an argument string <samp>Security parameter</samp>.
 This is alternative to the bits option. Available options are [low, legacy, normal, high, ultra].
 <a name="p11tool-inder"></a></p><a name="inder-option-1"></a>
 <h4 class="subsubheading">inder option</h4>
-<a name="index-p11tool_002dinder"></a>
 
 <p>This is the &ldquo;use der/raw format for input&rdquo; option.
 Use DER/RAW format for input certificates and private keys.
 <a name="p11tool-inraw"></a></p><a name="inraw-option-1"></a>
 <h4 class="subsubheading">inraw option</h4>
-<a name="index-p11tool_002dinraw"></a>
 
-<p>This is an alias for the inder option,
+<p>This is an alias for the <code>inder</code> option,
 see <a href="#p11tool-inder">the inder option documentation</a>.
 </p>
 <a name="p11tool-provider"></a><a name="provider-option"></a>
 <h4 class="subsubheading">provider option</h4>
-<a name="index-p11tool_002dprovider"></a>
 
 <p>This is the &ldquo;specify the pkcs #11 provider library&rdquo; option.
 This option takes an argument file.
@@ -5279,8 +5258,7 @@ This will override the default options in /etc/gnutls/pkcs11.conf
 <a name="p11tool-See-Also"></a><a name="p11tool-See-Also-1"></a>
 <h4 class="subsubheading">p11tool See Also</h4>
 <p>certtool (1)
-</p>
-<a name="p11tool-Examples"></a><a name="p11tool-Examples-1"></a>
+<a name="p11tool-Examples"></a></p><a name="p11tool-Examples-1"></a>
 <h4 class="subsubheading">p11tool Examples</h4>
 <p>To view all tokens in your system use:
 </p><div class="example">
@@ -5302,7 +5280,6 @@ $ p11tool --login --write &quot;pkcs11:URL&quot; --load-certificate cert.pem \
 <p>Note that some tokens require the same label to be used for the certificate
 and its corresponding private key.
 </p>
-
 <hr>
 <a name="Abstract-key-types"></a>
 <div class="header">
@@ -5393,11 +5370,11 @@ negative error value.
 <p><strong>Since:</strong> 2.12.0
 </p></dd></dl>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpubkey_005fimport_005fopenpgp">gnutls_pubkey_import_openpgp</a></code></dt>
-<dt><code><a href="#gnutls_005fpubkey_005fimport_005fpkcs11">gnutls_pubkey_import_pkcs11</a></code></dt>
-<dt><code><a href="#gnutls_005fpubkey_005fimport_005fpkcs11_005furl">gnutls_pubkey_import_pkcs11_url</a></code></dt>
-<dt><code><a href="#gnutls_005fpubkey_005fimport_005fprivkey">gnutls_pubkey_import_privkey</a></code></dt>
-<dt><code><a href="#gnutls_005fpubkey_005fimport">gnutls_pubkey_import</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpubkey_005fimport_005fopenpgp">gnutls_pubkey_import_openpgp</a> (gnutls_pubkey_t <var>key</var>, gnutls_openpgp_crt_t <var>crt</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpubkey_005fimport_005fpkcs11">gnutls_pubkey_import_pkcs11</a> (gnutls_pubkey_t <var>key</var>, gnutls_pkcs11_obj_t <var>obj</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpubkey_005fimport_005fpkcs11_005furl">gnutls_pubkey_import_pkcs11_url</a> (gnutls_pubkey_t <var>key</var>, const char * <var>url</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpubkey_005fimport_005fprivkey">gnutls_pubkey_import_privkey</a> (gnutls_pubkey_t <var>key</var>, gnutls_privkey_t <var>pkey</var>, unsigned int <var>usage</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpubkey_005fimport">gnutls_pubkey_import</a> (gnutls_pubkey_t <var>key</var>, const gnutls_datum_t * <var>data</var>, gnutls_x509_crt_fmt_t <var>format</var>)</code></dt>
 </dl>
 
 
@@ -5435,9 +5412,9 @@ returned, and 0 on success.
 information over a public key.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpubkey_005fget_005fpk_005falgorithm">gnutls_pubkey_get_pk_algorithm</a></code></dt>
-<dt><code><a href="#gnutls_005fpubkey_005fget_005fpreferred_005fhash_005falgorithm">gnutls_pubkey_get_preferred_hash_algorithm</a></code></dt>
-<dt><code><a href="#gnutls_005fpubkey_005fget_005fkey_005fid">gnutls_pubkey_get_key_id</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpubkey_005fget_005fpk_005falgorithm">gnutls_pubkey_get_pk_algorithm</a> (gnutls_pubkey_t <var>key</var>, unsigned int * <var>bits</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpubkey_005fget_005fpreferred_005fhash_005falgorithm">gnutls_pubkey_get_preferred_hash_algorithm</a> (gnutls_pubkey_t <var>key</var>, gnutls_digest_algorithm_t *                                             <var>hash</var>, unsigned int * <var>mand</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpubkey_005fget_005fkey_005fid">gnutls_pubkey_get_key_id</a> (gnutls_pubkey_t <var>key</var>, unsigned int <var>flags</var>, unsigned char * <var>output_data</var>, size_t * <var>output_data_size</var>)</code></dt>
 </dl>
 
 <hr>
@@ -5456,14 +5433,14 @@ to allow abstraction over <acronym>PKCS</acronym> #11 keys that
 are not extractable.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fprivkey_005fimport_005fx509">gnutls_privkey_import_x509</a></code></dt>
-<dt><code><a href="#gnutls_005fprivkey_005fimport_005fopenpgp">gnutls_privkey_import_openpgp</a></code></dt>
-<dt><code><a href="#gnutls_005fprivkey_005fimport_005fpkcs11">gnutls_privkey_import_pkcs11</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fprivkey_005fimport_005fx509">gnutls_privkey_import_x509</a> (gnutls_privkey_t <var>pkey</var>, gnutls_x509_privkey_t <var>key</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fprivkey_005fimport_005fopenpgp">gnutls_privkey_import_openpgp</a> (gnutls_privkey_t <var>pkey</var>, gnutls_openpgp_privkey_t <var>key</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fprivkey_005fimport_005fpkcs11">gnutls_privkey_import_pkcs11</a> (gnutls_privkey_t <var>pkey</var>, gnutls_pkcs11_privkey_t <var>key</var>, unsigned int <var>flags</var>)</code></dt>
 </dl>
 
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fprivkey_005fget_005fpk_005falgorithm">gnutls_privkey_get_pk_algorithm</a></code></dt>
-<dt><code><a href="#gnutls_005fprivkey_005fget_005ftype">gnutls_privkey_get_type</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fprivkey_005fget_005fpk_005falgorithm">gnutls_privkey_get_pk_algorithm</a> (gnutls_privkey_t <var>key</var>, unsigned int * <var>bits</var>)</code></dt>
+<dt><code><var>gnutls_privkey_type_t</var> <a href="#gnutls_005fprivkey_005fget_005ftype">gnutls_privkey_get_type</a> (gnutls_privkey_t <var>key</var>)</code></dt>
 </dl>
 
 <p>In order to support cryptographic operations using 
@@ -5704,9 +5681,9 @@ negative error value.
 <p><strong>Since:</strong> 2.12.0
 </p></dd></dl>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fx509_005fcrt_005fprivkey_005fsign">gnutls_x509_crt_privkey_sign</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrl_005fprivkey_005fsign">gnutls_x509_crl_privkey_sign</a></code></dt>
-<dt><code><a href="#gnutls_005fx509_005fcrq_005fprivkey_005fsign">gnutls_x509_crq_privkey_sign</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrt_005fprivkey_005fsign">gnutls_x509_crt_privkey_sign</a> (gnutls_x509_crt_t <var>crt</var>, gnutls_x509_crt_t <var>issuer</var>, gnutls_privkey_t <var>issuer_key</var>, gnutls_digest_algorithm_t <var>dig</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrl_005fprivkey_005fsign">gnutls_x509_crl_privkey_sign</a> (gnutls_x509_crl_t <var>crl</var>, gnutls_x509_crt_t <var>issuer</var>, gnutls_privkey_t <var>issuer_key</var>, gnutls_digest_algorithm_t <var>dig</var>, unsigned int <var>flags</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fx509_005fcrq_005fprivkey_005fsign">gnutls_x509_crq_privkey_sign</a> (gnutls_x509_crq_t <var>crq</var>, gnutls_privkey_t <var>key</var>, gnutls_digest_algorithm_t <var>dig</var>, unsigned int <var>flags</var>)</code></dt>
 </dl>
 
 <hr>
@@ -5779,7 +5756,7 @@ Next: <a href="#Error-handling" accesskey="n" rel="next">Error handling</a>, Up:
 <h4 class="subsection">7.1.1 General idea</h4>
 
 <p>A brief description of how <acronym>GnuTLS</acronym> works internally is shown
-at <a href="#fig_003agnutls_002ddesign">fig:gnutls-design</a>. This section may become more clear after
+at <a href="#fig_003agnutls_002ddesign">Figure 7.1</a>. This section may become more clear after
 having read the rest of this section.
 As shown in the figure, there is a read-only global state that is
 initialized once by the global initialization function.  This global
@@ -5793,7 +5770,7 @@ finished using <acronym>GnuTLS</acronym>.
 <div class="float"><a name="fig_003agnutls_002ddesign"></a>
 <img src="gnutls-internals.png" alt="gnutls-internals">
 
-</div><p><strong>Figure 7.1: </strong>High level design of GnuTLS.</p>
+<div class="float-caption"><p><strong>Figure 7.1: </strong>High level design of GnuTLS.</p></div></div>
 <p>The credentials structures are used by the authentication methods, such
 as certificate authentication. They store certificates, privates keys,
 and other information that is needed to prove the identity to the peer,
@@ -5812,7 +5789,7 @@ database back-end to hold the session&rsquo;s parameters.  Every
 appropriate back-end function (see <a href="#resume">resume</a>)
 to store the newly negotiated session. The session
 database is examined by the server just after having received the
-client hello<a name="DOCF12" href="#FOOT12">(12)</a>,
+client hello<a name="DOCF12" href="#FOOT12"><sup>12</sup></a>,
 and if the session ID sent by the client, matches a stored session,
 the stored session will be retrieved, and the new session will be a
 resumed one, and will share the same session ID with the previous one.
@@ -5894,8 +5871,8 @@ Those are the cases where the <a href="#gnutls_005fglobal_005fset_005flog_005fle
 verbose information on the <acronym>GnuTLS</acronym> functions internal flow.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fglobal_005fset_005flog_005flevel">gnutls_global_set_log_level</a></code></dt>
-<dt><code><a href="#gnutls_005fglobal_005fset_005flog_005ffunction">gnutls_global_set_log_function</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fglobal_005fset_005flog_005flevel">gnutls_global_set_log_level</a> (int <var>level</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fglobal_005fset_005flog_005ffunction">gnutls_global_set_log_function</a> (gnutls_log_func <var>log_func</var>)</code></dt>
 </dl>
 
 <p>When debugging is not required, important issues, such as detected
@@ -6012,8 +5989,8 @@ which are used to specify the functions that will retrieve and send
 data to the transport layer.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005ftransport_005fset_005fpush_005ffunction">gnutls_transport_set_push_function</a></code></dt>
-<dt><code><a href="#gnutls_005ftransport_005fset_005fpull_005ffunction">gnutls_transport_set_pull_function</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005ftransport_005fset_005fpush_005ffunction">gnutls_transport_set_push_function</a> (gnutls_session_t <var>session</var>, gnutls_push_func <var>push_func</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005ftransport_005fset_005fpull_005ffunction">gnutls_transport_set_pull_function</a> (gnutls_session_t <var>session</var>, gnutls_pull_func <var>pull_func</var>)</code></dt>
 </dl>
 
 <p>Other callback functions may require more complicated input and data
@@ -6057,7 +6034,7 @@ Next: <a href="#Initialization" accesskey="n" rel="next">Initialization</a>, Up:
 <h4 class="subsection">7.2.1 Headers</h4>
 
 <p>All the data types and functions of the <acronym>GnuTLS</acronym> library are
-defined in the header file &lsquo;<tt>gnutls/gnutls.h</tt>&rsquo;.  This must be
+defined in the header file <samp>gnutls/gnutls.h</samp>.  This must be
 included in all programs that make use of the <acronym>GnuTLS</acronym>
 library.
 </p>
@@ -6106,10 +6083,10 @@ Previous: <a href="#Version-check" accesskey="p" rel="previous">Version check</a
 <h4 class="subsection">7.2.4 Building the source</h4>
 
 <p>If you want to compile a source file including the
-&lsquo;<tt>gnutls/gnutls.h</tt>&rsquo; header file, you must make sure that the
+<samp>gnutls/gnutls.h</samp> header file, you must make sure that the
 compiler can find it in the directory hierarchy.  This is accomplished
 by adding the path to the directory in which the header file is
-located to the compilers include file search path (via the &lsquo;<samp>-I</samp>&rsquo;
+located to the compilers include file search path (via the <samp>-I</samp>
 option).
 </p>
 <p>However, the path to the include file is determined at the time the
@@ -6117,7 +6094,7 @@ source is configured.  To solve this problem, the library uses the
 external package <code>pkg-config</code> that knows the path to the
 include file and other configuration options.  The options that need
 to be added to the compiler invocation at compile time are output by
-the &lsquo;<samp>--cflags</samp>&rsquo; option to <code>pkg-config gnutls</code>.  The
+the <samp>--cflags</samp> option to <code>pkg-config gnutls</code>.  The
 following example shows how it can be used at the command line:
 </p>
 <div class="example">
@@ -6126,16 +6103,16 @@ following example shows how it can be used at the command line:
 
 <p>Adding the output of &lsquo;<samp>pkg-config gnutls --cflags</samp>&rsquo; to the
 compilers command line will ensure that the compiler can find the
-&lsquo;<tt>gnutls/gnutls.h</tt>&rsquo; header file.
+<samp>gnutls/gnutls.h</samp> header file.
 </p>
 <p>A similar problem occurs when linking the program with the library.
 Again, the compiler has to find the library files.  For this to work,
 the path to the library files has to be added to the library search
-path (via the &lsquo;<samp>-L</samp>&rsquo; option).  For this, the option
-&lsquo;<samp>--libs</samp>&rsquo; to <code>pkg-config gnutls</code> can be used.  For
+path (via the <samp>-L</samp> option).  For this, the option
+<samp>--libs</samp> to <code>pkg-config gnutls</code> can be used.  For
 convenience, this option also outputs all other options that are
 required to link the program with the library (for instance, the
-&lsquo;<samp>-ltasn1</samp>&rsquo; option).  The example shows how to link &lsquo;<tt>foo.o</tt>&rsquo;
+&lsquo;<samp>-ltasn1</samp>&rsquo; option).  The example shows how to link <samp>foo.o</samp>
 with the library to a program <code>foo</code>.
 </p>
 <div class="example">
@@ -6194,7 +6171,7 @@ be free&rsquo;d by calling <code>gnutls_deinit()</code> .  Returns <code>GNUTLS_
 <p><code>flags</code> can be one of <code>GNUTLS_CLIENT</code>  and <code>GNUTLS_SERVER</code> . For a DTLS
 entity, the flags <code>GNUTLS_DATAGRAM</code>  and  <code>GNUTLS_NONBLOCK</code>  are
 also available. The latter flag will enable a non-blocking
-operation of the DTLS timers.
+operation of the DTLS timers. 
 </p>
 <p><strong>Returns:</strong> <code>GNUTLS_E_SUCCESS</code>  on success, or an error code.
 </p></dd></dl>
@@ -6268,7 +6245,7 @@ Next: <a href="#Setting-up-the-transport-layer" accesskey="n" rel="next">Setting
 The contents of the credentials is method-dependent, e.g. certificates
 for certificate authentication and should be initialized and associated
 with a session (see <a href="#gnutls_005fcredentials_005fset">gnutls_credentials_set</a>).  A mapping of the key exchange methods
-with the credential types is shown in <a href="#tab_003akey_002dexchange_002dcred">tab:key-exchange-cred</a>.
+with the credential types is shown in <a href="#tab_003akey_002dexchange_002dcred">Table 7.1</a>.
 </p>
 <div class="float"><a name="tab_003akey_002dexchange_002dcred"></a>
 <table>
@@ -6287,7 +6264,7 @@ with the credential types is shown in <a href="#tab_003akey_002dexchange_002dcre
 <code>KX_DHE_PSK</code>, <code>KX_ECDHE_PSK</code></td><td width="20%"><code>CRD_PSK</code></td><td width="20%"><code>CRD_PSK</code></td></tr>
 </table>
 
-</div><p><strong>Table 7.1: </strong>Key exchange algorithms and the corresponding credential types.</p>
+<div class="float-caption"><p><strong>Table 7.1: </strong>Key exchange algorithms and the corresponding credential types.</p></div></div>
 <hr>
 <a name="Certificate-credentials"></a>
 <div class="header">
@@ -6306,8 +6283,8 @@ general issues applying to both client and server certificates. The next
 section will elaborate on issues arising from client authentication only.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcertificate_005fallocate_005fcredentials">gnutls_certificate_allocate_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005ffree_005fcredentials">gnutls_certificate_free_credentials</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fallocate_005fcredentials">gnutls_certificate_allocate_credentials</a> (gnutls_certificate_credentials_t *                                          <var>res</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fcertificate_005ffree_005fcredentials">gnutls_certificate_free_credentials</a> (gnutls_certificate_credentials_t <var>sc</var>)</code></dt>
 </dl>
 
 <p>After the credentials structures are initialized, the certificate 
@@ -6323,16 +6300,16 @@ certificate need not to be included since the peer should possess it
 already.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005fkey_005fmem">gnutls_certificate_set_x509_key_mem</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005fkey">gnutls_certificate_set_x509_key</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005fkey_005ffile">gnutls_certificate_set_x509_key_file</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005fkey_005fmem">gnutls_certificate_set_x509_key_mem</a> (gnutls_certificate_credentials_t <var>res</var>, const gnutls_datum_t * <var>cert</var>, const gnutls_datum_t * <var>key</var>, gnutls_x509_crt_fmt_t <var>type</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005fkey">gnutls_certificate_set_x509_key</a> (gnutls_certificate_credentials_t <var>res</var>, gnutls_x509_crt_t * <var>cert_list</var>, int <var>cert_list_size</var>, gnutls_x509_privkey_t <var>key</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005fkey_005ffile">gnutls_certificate_set_x509_key_file</a> (gnutls_certificate_credentials_t <var>res</var>, const char * <var>certfile</var>, const char * <var>keyfile</var>, gnutls_x509_crt_fmt_t <var>type</var>)</code></dt>
 </dl>
 
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fopenpgp_005fkey_005fmem">gnutls_certificate_set_openpgp_key_mem</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fopenpgp_005fkey">gnutls_certificate_set_openpgp_key</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fopenpgp_005fkey_005ffile">gnutls_certificate_set_openpgp_key_file</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fkey">gnutls_certificate_set_key</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fopenpgp_005fkey_005fmem">gnutls_certificate_set_openpgp_key_mem</a> (gnutls_certificate_credentials_t <var>res</var>, const gnutls_datum_t * <var>cert</var>, const gnutls_datum_t * <var>key</var>, gnutls_openpgp_crt_fmt_t <var>format</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fopenpgp_005fkey">gnutls_certificate_set_openpgp_key</a> (gnutls_certificate_credentials_t <var>res</var>, gnutls_openpgp_crt_t <var>crt</var>, gnutls_openpgp_privkey_t <var>pkey</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fopenpgp_005fkey_005ffile">gnutls_certificate_set_openpgp_key_file</a> (gnutls_certificate_credentials_t <var>res</var>, const char * <var>certfile</var>, const char * <var>keyfile</var>, gnutls_openpgp_crt_fmt_t <var>format</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fkey">gnutls_certificate_set_key</a> (gnutls_certificate_credentials_t <var>res</var>, const char** <var>names</var>, int <var>names_size</var>, gnutls_pcert_st * <var>pcert_list</var>, int <var>pcert_list_size</var>, gnutls_privkey_t <var>key</var>)</code></dt>
 </dl>
 
 <p>If multiple certificates are used with the functions above each
@@ -6346,9 +6323,9 @@ algorithm preferences. To get those preferences use
 <a href="#gnutls_005fsign_005falgorithm_005fget_005frequested">gnutls_sign_algorithm_get_requested</a>. Both functions are shown below.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fretrieve_005ffunction">gnutls_certificate_set_retrieve_function</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fretrieve_005ffunction2">gnutls_certificate_set_retrieve_function2</a></code></dt>
-<dt><code><a href="#gnutls_005fsign_005falgorithm_005fget_005frequested">gnutls_sign_algorithm_get_requested</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fcertificate_005fset_005fretrieve_005ffunction">gnutls_certificate_set_retrieve_function</a> (gnutls_certificate_credentials_t <var>cred</var>, gnutls_certificate_retrieve_function * <var>func</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fcertificate_005fset_005fretrieve_005ffunction2">gnutls_certificate_set_retrieve_function2</a> (gnutls_certificate_credentials_t <var>cred</var>, gnutls_certificate_retrieve_function2 * <var>func</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsign_005falgorithm_005fget_005frequested">gnutls_sign_algorithm_get_requested</a> (gnutls_session_t <var>session</var>, size_t <var>indx</var>, gnutls_sign_algorithm_t * <var>algo</var>)</code></dt>
 </dl>
 
 <p>The functions above do not handle the requested server name automatically.
@@ -6365,7 +6342,7 @@ not be able to access the plain RSA ciphersuites, that require
 decryption. It is not recommended to use RSA keys for both
 signing and encryption. If possible use a different key for the
 <code>DHE-RSA</code> which uses signing and <code>RSA</code> that requires decryption.
-All the key exchange methods shown in <a href="#tab_003akey_002dexchange">tab:key-exchange</a> are
+All the key exchange methods shown in <a href="#tab_003akey_002dexchange">Table 4.1</a> are
 available in certificate authentication.
 </p>
 
@@ -6428,8 +6405,8 @@ authorities into the credentials structure by using
 the following functions, applicable to X.509 and OpenPGP certificates.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fx509_005ftrust_005ffile">gnutls_certificate_set_x509_trust_file</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fopenpgp_005fkeyring_005ffile">gnutls_certificate_set_openpgp_keyring_file</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fx509_005ftrust_005ffile">gnutls_certificate_set_x509_trust_file</a> (gnutls_certificate_credentials_t <var>cred</var>, const char * <var>cafile</var>, gnutls_x509_crt_fmt_t <var>type</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fset_005fopenpgp_005fkeyring_005ffile">gnutls_certificate_set_openpgp_keyring_file</a> (gnutls_certificate_credentials_t <var>c</var>, const char * <var>file</var>, gnutls_openpgp_crt_fmt_t <var>format</var>)</code></dt>
 </dl>
 
 <p>The peer&rsquo;s certificate is not automatically verified and one 
@@ -6520,11 +6497,11 @@ SRP username and password.
 The callback is called once during the <acronym>TLS</acronym> handshake.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fsrp_005fallocate_005fserver_005fcredentials">gnutls_srp_allocate_server_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fsrp_005fallocate_005fclient_005fcredentials">gnutls_srp_allocate_client_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fsrp_005ffree_005fserver_005fcredentials">gnutls_srp_free_server_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fsrp_005ffree_005fclient_005fcredentials">gnutls_srp_free_client_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fsrp_005fset_005fclient_005fcredentials">gnutls_srp_set_client_credentials</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsrp_005fallocate_005fserver_005fcredentials">gnutls_srp_allocate_server_credentials</a> (gnutls_srp_server_credentials_t * <var>sc</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsrp_005fallocate_005fclient_005fcredentials">gnutls_srp_allocate_client_credentials</a> (gnutls_srp_client_credentials_t * <var>sc</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fsrp_005ffree_005fserver_005fcredentials">gnutls_srp_free_server_credentials</a> (gnutls_srp_server_credentials_t <var>sc</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fsrp_005ffree_005fclient_005fcredentials">gnutls_srp_free_client_credentials</a> (gnutls_srp_client_credentials_t <var>sc</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsrp_005fset_005fclient_005fcredentials">gnutls_srp_set_client_credentials</a> (gnutls_srp_client_credentials_t <var>res</var>, const char * <var>username</var>, const char * <var>password</var>)</code></dt>
 </dl>
 
 
@@ -6633,10 +6610,10 @@ Next: <a href="#Anonymous-credentials" accesskey="n" rel="next">Anonymous creden
 client and server.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpsk_005fallocate_005fserver_005fcredentials">gnutls_psk_allocate_server_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fpsk_005fallocate_005fclient_005fcredentials">gnutls_psk_allocate_client_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fpsk_005ffree_005fserver_005fcredentials">gnutls_psk_free_server_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fpsk_005ffree_005fclient_005fcredentials">gnutls_psk_free_client_credentials</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpsk_005fallocate_005fserver_005fcredentials">gnutls_psk_allocate_server_credentials</a> (gnutls_psk_server_credentials_t * <var>sc</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpsk_005fallocate_005fclient_005fcredentials">gnutls_psk_allocate_client_credentials</a> (gnutls_psk_client_credentials_t * <var>sc</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fpsk_005ffree_005fserver_005fcredentials">gnutls_psk_free_server_credentials</a> (gnutls_psk_server_credentials_t <var>sc</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fpsk_005ffree_005fclient_005fcredentials">gnutls_psk_free_client_credentials</a> (gnutls_psk_client_credentials_t <var>sc</var>)</code></dt>
 </dl>
 
 <p>Clients supporting <acronym>PSK</acronym> should supply the username and key
@@ -6647,7 +6624,7 @@ advantage that the callback will be called only if <acronym>PSK</acronym> has
 been negotiated.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpsk_005fset_005fclient_005fcredentials">gnutls_psk_set_client_credentials</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpsk_005fset_005fclient_005fcredentials">gnutls_psk_set_client_credentials</a> (gnutls_psk_client_credentials_t <var>res</var>, const char * <var>username</var>, const gnutls_datum_t * <var>key</var>, gnutls_psk_key_flags <var>flags</var>)</code></dt>
 </dl>
 
 
@@ -6711,9 +6688,9 @@ an error code is returned.
 </p></dd></dl>
 
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpsk_005fset_005fserver_005fcredentials_005ffunction">gnutls_psk_set_server_credentials_function</a></code></dt>
-<dt><code><a href="#gnutls_005fpsk_005fset_005fserver_005fcredentials_005fhint">gnutls_psk_set_server_credentials_hint</a></code></dt>
-<dt><code><a href="#gnutls_005fpsk_005fclient_005fget_005fhint">gnutls_psk_client_get_hint</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fpsk_005fset_005fserver_005fcredentials_005ffunction">gnutls_psk_set_server_credentials_function</a> (gnutls_psk_server_credentials_t                                             <var>cred</var>, gnutls_psk_server_credentials_function                                             * <var>func</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpsk_005fset_005fserver_005fcredentials_005fhint">gnutls_psk_set_server_credentials_hint</a> (gnutls_psk_server_credentials_t <var>res</var>, const char * <var>hint</var>)</code></dt>
+<dt><code><var>const char *</var> <a href="#gnutls_005fpsk_005fclient_005fget_005fhint">gnutls_psk_client_get_hint</a> (gnutls_session_t <var>session</var>)</code></dt>
 </dl>
 
 <hr>
@@ -6731,10 +6708,10 @@ associated with an anonymous credentials structure. Check
 The initialization functions for the credentials are shown below.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fanon_005fallocate_005fserver_005fcredentials">gnutls_anon_allocate_server_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fanon_005fallocate_005fclient_005fcredentials">gnutls_anon_allocate_client_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fanon_005ffree_005fserver_005fcredentials">gnutls_anon_free_server_credentials</a></code></dt>
-<dt><code><a href="#gnutls_005fanon_005ffree_005fclient_005fcredentials">gnutls_anon_free_client_credentials</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fanon_005fallocate_005fserver_005fcredentials">gnutls_anon_allocate_server_credentials</a> (gnutls_anon_server_credentials_t *                                          <var>sc</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fanon_005fallocate_005fclient_005fcredentials">gnutls_anon_allocate_client_credentials</a> (gnutls_anon_client_credentials_t *                                          <var>sc</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fanon_005ffree_005fserver_005fcredentials">gnutls_anon_free_server_credentials</a> (gnutls_anon_server_credentials_t <var>sc</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fanon_005ffree_005fclient_005fcredentials">gnutls_anon_free_client_credentials</a> (gnutls_anon_client_credentials_t <var>sc</var>)</code></dt>
 </dl>
 
 
@@ -6772,7 +6749,7 @@ pointers for receiving and sending.
 </p></dd></dl>
 
 <dl compact="compact">
-<dt><code><a href="#gnutls_005ftransport_005fset_005fptr">gnutls_transport_set_ptr</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005ftransport_005fset_005fptr">gnutls_transport_set_ptr</a> (gnutls_session_t <var>session</var>, gnutls_transport_ptr_t <var>ptr</var>)</code></dt>
 </dl>
 
 <p>If however another transport layer than TCP is selected, then
@@ -6981,7 +6958,7 @@ function implies to restoring the same function that was interrupted, in
 the DTLS protocol this requirement isn&rsquo;t true.
 There are cases where a retransmission is required, which are indicated by
 a received message and thus <a href="#gnutls_005frecord_005fget_005fdirection">gnutls_record_get_direction</a> must be called 
-to decide which operation to restore, i.e., send or receive.
+to decide which direction to check prior to restoring a function call.
 </p>
 
 
@@ -7021,7 +6998,7 @@ Previous: <a href="#Asynchronous-operation" accesskey="p" rel="previous">Asynchr
 <p>Because datagram TLS can operate over connections where the peer
 of a server cannot be reliably verified, functionality is available to prevent
 denial of service attacks. <acronym>GnuTLS</acronym> requires a server
-to generate a secret key that is used to sign a cookie<a name="DOCF13" href="#FOOT13">(13)</a>. 
+to generate a secret key that is used to sign a cookie<a name="DOCF13" href="#FOOT13"><sup>13</sup></a>. 
 That cookie is sent to the client using <a href="#gnutls_005fdtls_005fcookie_005fsend">gnutls_dtls_cookie_send</a>, and 
 the client must reply using the correct cookie. The server side
 should verify the initial message sent by client using <a href="#gnutls_005fdtls_005fcookie_005fverify">gnutls_dtls_cookie_verify</a>.
@@ -7030,10 +7007,10 @@ the cookie using <a href="#gnutls_005fdtls_005fprestate_005fset">gnutls_dtls_pre
 the handshake.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fkey_005fgenerate">gnutls_key_generate</a></code></dt>
-<dt><code><a href="#gnutls_005fdtls_005fcookie_005fsend">gnutls_dtls_cookie_send</a></code></dt>
-<dt><code><a href="#gnutls_005fdtls_005fcookie_005fverify">gnutls_dtls_cookie_verify</a></code></dt>
-<dt><code><a href="#gnutls_005fdtls_005fprestate_005fset">gnutls_dtls_prestate_set</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fkey_005fgenerate">gnutls_key_generate</a> (gnutls_datum_t * <var>key</var>, unsigned int <var>key_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fdtls_005fcookie_005fsend">gnutls_dtls_cookie_send</a> (gnutls_datum_t* <var>key</var>, void* <var>client_data</var>, size_t <var>client_data_size</var>, gnutls_dtls_prestate_st* <var>prestate</var>, gnutls_transport_ptr_t <var>ptr</var>, gnutls_push_func <var>push_func</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fdtls_005fcookie_005fverify">gnutls_dtls_cookie_verify</a> (gnutls_datum_t* <var>key</var>, void* <var>client_data</var>, size_t <var>client_data_size</var>, void* <var>_msg</var>, size_t <var>msg_size</var>, gnutls_dtls_prestate_st* <var>prestate</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fdtls_005fprestate_005fset">gnutls_dtls_prestate_set</a> (gnutls_session_t <var>session</var>, gnutls_dtls_prestate_st* <var>prestate</var>)</code></dt>
 </dl>
 
 <p>Note that the above apply to server side only and they are not mandatory to be
@@ -7048,9 +7025,9 @@ transport layer. The &ldquo;correct&rdquo; maximum transfer unit can be obtained
 a path MTU discovery mechanism [<em>RFC4821</em>].
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fdtls_005fset_005fmtu">gnutls_dtls_set_mtu</a></code></dt>
-<dt><code><a href="#gnutls_005fdtls_005fget_005fmtu">gnutls_dtls_get_mtu</a></code></dt>
-<dt><code><a href="#gnutls_005fdtls_005fget_005fdata_005fmtu">gnutls_dtls_get_data_mtu</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fdtls_005fset_005fmtu">gnutls_dtls_set_mtu</a> (gnutls_session_t <var>session</var>, unsigned int <var>mtu</var>)</code></dt>
+<dt><code><var>unsigned int</var> <a href="#gnutls_005fdtls_005fget_005fmtu">gnutls_dtls_get_mtu</a> (gnutls_session_t <var>session</var>)</code></dt>
+<dt><code><var>unsigned int</var> <a href="#gnutls_005fdtls_005fget_005fdata_005fmtu">gnutls_dtls_get_data_mtu</a> (gnutls_session_t <var>session</var>)</code></dt>
 </dl>
 
 
@@ -7109,7 +7086,7 @@ used to verify the peer&rsquo;s certificate (see <a href="#Certificate-authentic
 for more information).
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcertificate_005fverify_005fpeers2">gnutls_certificate_verify_peers2</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcertificate_005fverify_005fpeers2">gnutls_certificate_verify_peers2</a> (gnutls_session_t <var>session</var>, unsigned int * <var>status</var>)</code></dt>
 </dl>
 
 <hr>
@@ -7275,7 +7252,7 @@ is guarranteed not to block.
 <p><strong>Returns:</strong> Returns the size of the data or zero.
 </p></dd></dl>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005frecord_005fget_005fdirection">gnutls_record_get_direction</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005frecord_005fget_005fdirection">gnutls_record_get_direction</a> (gnutls_session_t <var>session</var>)</code></dt>
 </dl>
 
 <p>Once a TLS or DTLS session is no longer needed, it is
@@ -7450,12 +7427,12 @@ Next: <a href="#Advanced-and-other-topics" accesskey="n" rel="next">Advanced and
 there are priority functions that accept a string
 specifying the enabled for the handshake algorithms.
 That string may contain a single initial keyword such as
-in <a href="#tab_003aprio_002dkeywords">tab:prio-keywords</a> and may be followed by
+in <a href="#tab_003aprio_002dkeywords">Table 7.2</a> and may be followed by
 additional algorithm or special keywords.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fpriority_005fset_005fdirect">gnutls_priority_set_direct</a></code></dt>
-<dt><code><a href="#gnutls_005fpriority_005fset">gnutls_priority_set</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpriority_005fset_005fdirect">gnutls_priority_set_direct</a> (gnutls_session_t <var>session</var>, const char * <var>priorities</var>, const char ** <var>err_pos</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fpriority_005fset">gnutls_priority_set</a> (gnutls_session_t <var>session</var>, gnutls_priority_t <var>priority</var>)</code></dt>
 </dl>
 
 <div class="float"><a name="tab_003aprio_002dkeywords"></a>
@@ -7485,14 +7462,14 @@ compression methods. It should be followed by the
 algorithms to be enabled.</td></tr>
 </table>
 
-</div><p><strong>Table 7.2: </strong>Supported initial keywords.</p>
+<div class="float-caption"><p><strong>Table 7.2: </strong>Supported initial keywords.</p></div></div>
 <p>Unless the initial keyword is &quot;NONE&quot; the defaults (in preference
 order) are for TLS protocols TLS 1.2, TLS1.1, TLS1.0, SSL3.0; for
 compression NULL; for certificate types X.509.
 In key exchange algorithms when in NORMAL or SECURE levels the
 perfect forward secrecy algorithms take precedence of the other
 protocols.  In all cases all the supported key exchange algorithms
-are enabled<a name="DOCF14" href="#FOOT14">(14)</a>.
+are enabled<a name="DOCF14" href="#FOOT14"><sup>14</sup></a>.
 </p>
 <p>Note that the SECURE levels distinguish between overall security level and
 message authenticity security level. That is because the message
@@ -7507,7 +7484,7 @@ followed by such keywords.
 The order with which every algorithm or protocol
 is specified is significant. Algorithms specified before others
 will take precedence. The supported algorithms and protocols
-are shown in <a href="#tab_003aprio_002dalgorithms">tab:prio-algorithms</a>. 
+are shown in <a href="#tab_003aprio_002dalgorithms">Table 7.3</a>. 
 To avoid collisions in order to specify a compression algorithm in
 the priority string you have to prefix it with &quot;COMP-&quot;, protocol versions
 with &quot;VERS-&quot;, signature algorithms with &quot;SIGN-&quot; and certificate types with &quot;CTYPE-&quot;. 
@@ -7546,14 +7523,14 @@ is SIGN-ALL. This is only valid for TLS 1.2 and later.</td></tr>
 <tr><td width="20%">Elliptic curves</td><td width="70%">CURVE-SECP192R1, CURVE-SECP224R1, CURVE-SECP256R1, CURVE-SECP384R1, CURVE-SECP521R1. Catch all is CURVE-ALL.</td></tr>
 </table>
 
-</div><p><strong>Table 7.3: </strong>The supported algorithm keywords in priority strings.</p>
+<div class="float-caption"><p><strong>Table 7.3: </strong>The supported algorithm keywords in priority strings.</p></div></div>
 <p>Note that the DHE key exchange methods are generally
-slower<a name="DOCF15" href="#FOOT15">(15)</a> than their elliptic curves counterpart
+slower<a name="DOCF15" href="#FOOT15"><sup>15</sup></a> than their elliptic curves counterpart
 (ECDHE). Moreover the plain Diffie-Hellman key exchange
 requires parameters to be generated and associated with a credentials
 structure by the server (see <a href="#Parameter-generation">Parameter generation</a>). 
 </p>
-<p>The available special keywords are shown in <a href="#tab_003aprio_002dspecial">tab:prio-special</a>. 
+<p>The available special keywords are shown in <a href="#tab_003aprio_002dspecial">Table 7.4</a>. 
 </p>
 <div class="float"><a name="tab_003aprio_002dspecial"></a>
 <table>
@@ -7566,6 +7543,9 @@ over the maximum allowed TLS record.</td></tr>
 <tr><td width="45%">%NO_EXTENSIONS</td><td width="45%">will prevent the sending of any TLS extensions in client side. Note
 that TLS 1.2 requires extensions to be used, as well as safe
 renegotiation thus this option must be used with care.</td></tr>
+<tr><td width="45%">%STATELESS_COMPRESSION</td><td width="45%">will disable keeping state across records when compressing. This may
+help to mitigate attacks when compression is used but an attacker
+is in control of input data.</td></tr>
 <tr><td width="45%">%SERVER_PRECEDENCE</td><td width="45%">The ciphersuite will be selected according to server priorities
 and not the client&rsquo;s.</td></tr>
 <tr><td width="45%">%DISABLE_SAFE_RENEGOTIATION</td><td width="45%">will disable safe renegotiation
@@ -7592,7 +7572,7 @@ This is the default.</td></tr>
 <tr><td width="45%">%VERIFY_ALLOW_X509_V1_CA_CRT</td><td width="45%">will allow V1 CAs in chains.</td></tr>
 </table>
 
-</div><p><strong>Table 7.4: </strong>Special priority string keywords.</p>
+<div class="float-caption"><p><strong>Table 7.4: </strong>Special priority string keywords.</p></div></div>
 <p>Finally the ciphersuites enabled by any priority string can be
 listed using the <code>gnutls-cli</code> application (see <a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a>), 
 or by using the priority functions as in <a href="#Listing-the-ciphersuites-in-a-priority-string">Listing the ciphersuites in a priority string</a>.
@@ -7659,9 +7639,9 @@ server the parameters must be re-associated with the GnuTLS session
 using <a href="#gnutls_005fsession_005fset_005fdata">gnutls_session_set_data</a>.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fsession_005fget_005fdata">gnutls_session_get_data</a></code></dt>
-<dt><code><a href="#gnutls_005fsession_005fget_005fid">gnutls_session_get_id</a></code></dt>
-<dt><code><a href="#gnutls_005fsession_005fset_005fdata">gnutls_session_set_data</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsession_005fget_005fdata">gnutls_session_get_data</a> (gnutls_session_t <var>session</var>, void * <var>session_data</var>, size_t * <var>session_data_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsession_005fget_005fid">gnutls_session_get_id</a> (gnutls_session_t <var>session</var>, void * <var>session_id</var>, size_t * <var>session_id_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsession_005fset_005fdata">gnutls_session_set_data</a> (gnutls_session_t <var>session</var>, const void * <var>session_data</var>, size_t <var>session_data_size</var>)</code></dt>
 </dl>
 
 <p>Keep in mind that sessions will be expired after some time, depending
@@ -7675,7 +7655,7 @@ using the priority functions, at least the algorithms used in the last session.
 servers that do not store any state.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fsession_005fticket_005fenable_005fclient">gnutls_session_ticket_enable_client</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fsession_005fticket_005fenable_005fclient">gnutls_session_ticket_enable_client</a> (gnutls_session_t <var>session</var>)</code></dt>
 </dl>
 
 
@@ -7706,13 +7686,13 @@ registered with the functions below. The stored sessions in the database can be
 for expiration.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fdb_005fset_005fretrieve_005ffunction">gnutls_db_set_retrieve_function</a></code></dt>
-<dt><code><a href="#gnutls_005fdb_005fset_005fstore_005ffunction">gnutls_db_set_store_function</a></code></dt>
-<dt><code><a href="#gnutls_005fdb_005fset_005fptr">gnutls_db_set_ptr</a></code></dt>
-<dt><code><a href="#gnutls_005fdb_005fset_005fremove_005ffunction">gnutls_db_set_remove_function</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fdb_005fset_005fretrieve_005ffunction">gnutls_db_set_retrieve_function</a> (gnutls_session_t <var>session</var>, gnutls_db_retr_func <var>retr_func</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fdb_005fset_005fstore_005ffunction">gnutls_db_set_store_function</a> (gnutls_session_t <var>session</var>, gnutls_db_store_func <var>store_func</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fdb_005fset_005fptr">gnutls_db_set_ptr</a> (gnutls_session_t <var>session</var>, void * <var>ptr</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fdb_005fset_005fremove_005ffunction">gnutls_db_set_remove_function</a> (gnutls_session_t <var>session</var>, gnutls_db_remove_func <var>rem_func</var>)</code></dt>
 </dl>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fdb_005fcheck_005fentry">gnutls_db_check_entry</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fdb_005fcheck_005fentry">gnutls_db_check_entry</a> (gnutls_session_t <var>session</var>, gnutls_datum_t <var>session_entry</var>)</code></dt>
 </dl>
 
 <p>A server utilizing tickets should generate ticket encryption
@@ -7795,10 +7775,10 @@ The parameters can be used in a <acronym>TLS</acronym> session by calling
 <a href="#gnutls_005fanon_005fset_005fserver_005fdh_005fparams">gnutls_anon_set_server_dh_params</a> for anonymous sessions.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fdh_005fparams_005fgenerate2">gnutls_dh_params_generate2</a></code></dt>
-<dt><code><a href="#gnutls_005fdh_005fparams_005fimport_005fpkcs3">gnutls_dh_params_import_pkcs3</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005fdh_005fparams">gnutls_certificate_set_dh_params</a></code></dt>
-<dt><code><a href="#gnutls_005fanon_005fset_005fserver_005fdh_005fparams">gnutls_anon_set_server_dh_params</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fdh_005fparams_005fgenerate2">gnutls_dh_params_generate2</a> (gnutls_dh_params_t <var>params</var>, unsigned int <var>bits</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fdh_005fparams_005fimport_005fpkcs3">gnutls_dh_params_import_pkcs3</a> (gnutls_dh_params_t <var>params</var>, const gnutls_datum_t * <var>pkcs3_params</var>, gnutls_x509_crt_fmt_t <var>format</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fcertificate_005fset_005fdh_005fparams">gnutls_certificate_set_dh_params</a> (gnutls_certificate_credentials_t <var>res</var>, gnutls_dh_params_t <var>dh_params</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fanon_005fset_005fserver_005fdh_005fparams">gnutls_anon_set_server_dh_params</a> (gnutls_anon_server_credentials_t <var>res</var>, gnutls_dh_params_t <var>dh_params</var>)</code></dt>
 </dl>
 
 <p>Due to the time-consuming calculations required for the generation
@@ -7825,10 +7805,10 @@ parameters to be refreshed (regenerated) in short intervals. The
 following functions can be used for these parameters.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005frsa_005fparams_005fgenerate2">gnutls_rsa_params_generate2</a></code></dt>
-<dt><code><a href="#gnutls_005fcertificate_005fset_005frsa_005fexport_005fparams">gnutls_certificate_set_rsa_export_params</a></code></dt>
-<dt><code><a href="#gnutls_005frsa_005fparams_005fimport_005fpkcs1">gnutls_rsa_params_import_pkcs1</a></code></dt>
-<dt><code><a href="#gnutls_005frsa_005fparams_005fexport_005fpkcs1">gnutls_rsa_params_export_pkcs1</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005frsa_005fparams_005fgenerate2">gnutls_rsa_params_generate2</a> (gnutls_rsa_params_t <var>params</var>, unsigned int <var>bits</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fcertificate_005fset_005frsa_005fexport_005fparams">gnutls_certificate_set_rsa_export_params</a> (gnutls_certificate_credentials_t                                           <var>res</var>, gnutls_rsa_params_t <var>rsa_params</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005frsa_005fparams_005fimport_005fpkcs1">gnutls_rsa_params_import_pkcs1</a> (gnutls_rsa_params_t <var>params</var>, const gnutls_datum_t * <var>pkcs1_params</var>, gnutls_x509_crt_fmt_t <var>format</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005frsa_005fparams_005fexport_005fpkcs1">gnutls_rsa_params_export_pkcs1</a> (gnutls_rsa_params_t <var>params</var>, gnutls_x509_crt_fmt_t <var>format</var>, unsigned char * <var>params_data</var>, size_t * <var>params_data_size</var>)</code></dt>
 </dl>
 
 <p>To allow renewal of the parameters within an application without
@@ -7985,7 +7965,7 @@ API with <acronym>GnuTLS</acronym>.  It only provides limited source-level
 compatibility. 
 </p>
 <p>The prototypes for the compatibility functions are in the
-&lsquo;<tt>gnutls/openssl.h</tt>&rsquo; header file. The limitations 
+<samp>gnutls/openssl.h</samp> header file. The limitations 
 imposed by the compatibility layer include:
 </p>
 <ul>
@@ -8029,22 +8009,22 @@ Next: <a href="#Hash-and-HMAC-functions" accesskey="n" rel="next">Hash and HMAC
 
 <p>The available functions to access symmetric crypto algorithms operations
 are shown below. The supported algorithms are the algorithms required by the TLS protocol.
-They are listed in <a href="#tab_003aciphers">tab:ciphers</a>.
+They are listed in <a href="#tab_003aciphers">Table 3.1</a>.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcipher_005finit">gnutls_cipher_init</a></code></dt>
-<dt><code><a href="#gnutls_005fcipher_005fencrypt2">gnutls_cipher_encrypt2</a></code></dt>
-<dt><code><a href="#gnutls_005fcipher_005fdecrypt2">gnutls_cipher_decrypt2</a></code></dt>
-<dt><code><a href="#gnutls_005fcipher_005fset_005fiv">gnutls_cipher_set_iv</a></code></dt>
-<dt><code><a href="#gnutls_005fcipher_005fdeinit">gnutls_cipher_deinit</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcipher_005finit">gnutls_cipher_init</a> (gnutls_cipher_hd_t * <var>handle</var>, gnutls_cipher_algorithm_t <var>cipher</var>, const gnutls_datum_t * <var>key</var>, const gnutls_datum_t * <var>iv</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcipher_005fencrypt2">gnutls_cipher_encrypt2</a> (gnutls_cipher_hd_t <var>handle</var>, const void * <var>text</var>, size_t <var>textlen</var>, void * <var>ciphertext</var>, size_t <var>ciphertextlen</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcipher_005fdecrypt2">gnutls_cipher_decrypt2</a> (gnutls_cipher_hd_t <var>handle</var>, const void * <var>ciphertext</var>, size_t <var>ciphertextlen</var>, void * <var>text</var>, size_t <var>textlen</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fcipher_005fset_005fiv">gnutls_cipher_set_iv</a> (gnutls_cipher_hd_t <var>handle</var>, void * <var>iv</var>, size_t <var>ivlen</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fcipher_005fdeinit">gnutls_cipher_deinit</a> (gnutls_cipher_hd_t <var>handle</var>)</code></dt>
 </dl>
 
 <p>In order to support authenticated encryption with associated data (AEAD) algorithms the following
 functions are provided to set the associated data and retrieve the authentication tag.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fcipher_005fadd_005fauth">gnutls_cipher_add_auth</a></code></dt>
-<dt><code><a href="#gnutls_005fcipher_005ftag">gnutls_cipher_tag</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcipher_005fadd_005fauth">gnutls_cipher_add_auth</a> (gnutls_cipher_hd_t <var>handle</var>, const void * <var>text</var>, size_t <var>text_size</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fcipher_005ftag">gnutls_cipher_tag</a> (gnutls_cipher_hd_t <var>handle</var>, void * <var>tag</var>, size_t <var>tag_size</var>)</code></dt>
 </dl>
 
 <hr>
@@ -8059,27 +8039,27 @@ Next: <a href="#Random-number-generation" accesskey="n" rel="next">Random number
 <a name="index-HMAC-functions"></a>
 
 <p>The available operations to access hash functions and hash-MAC (HMAC) algorithms
-are shown below. HMAC algorithms provided keyed hash functionality. They supported HMAC algorithms are listed in <a href="#tab_003amacs">tab:macs</a>.
+are shown below. HMAC algorithms provided keyed hash functionality. They supported HMAC algorithms are listed in <a href="#tab_003amacs">Table 3.2</a>.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fhmac_005finit">gnutls_hmac_init</a></code></dt>
-<dt><code><a href="#gnutls_005fhmac">gnutls_hmac</a></code></dt>
-<dt><code><a href="#gnutls_005fhmac_005foutput">gnutls_hmac_output</a></code></dt>
-<dt><code><a href="#gnutls_005fhmac_005fdeinit">gnutls_hmac_deinit</a></code></dt>
-<dt><code><a href="#gnutls_005fhmac_005fget_005flen">gnutls_hmac_get_len</a></code></dt>
-<dt><code><a href="#gnutls_005fhmac_005ffast">gnutls_hmac_fast</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhmac_005finit">gnutls_hmac_init</a> (gnutls_hmac_hd_t * <var>dig</var>, gnutls_mac_algorithm_t <var>algorithm</var>, const void * <var>key</var>, size_t <var>keylen</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhmac">gnutls_hmac</a> (gnutls_hmac_hd_t <var>handle</var>, const void * <var>text</var>, size_t <var>textlen</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fhmac_005foutput">gnutls_hmac_output</a> (gnutls_hmac_hd_t <var>handle</var>, void * <var>digest</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fhmac_005fdeinit">gnutls_hmac_deinit</a> (gnutls_hmac_hd_t <var>handle</var>, void * <var>digest</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhmac_005fget_005flen">gnutls_hmac_get_len</a> (gnutls_mac_algorithm_t <var>algorithm</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhmac_005ffast">gnutls_hmac_fast</a> (gnutls_mac_algorithm_t <var>algorithm</var>, const void * <var>key</var>, size_t <var>keylen</var>, const void * <var>text</var>, size_t <var>textlen</var>, void * <var>digest</var>)</code></dt>
 </dl>
 
 <p>The available functions to access hash functions are shown below. The supported hash functions
 are the same as the HMAC algorithms.
 </p>
 <dl compact="compact">
-<dt><code><a href="#gnutls_005fhash_005finit">gnutls_hash_init</a></code></dt>
-<dt><code><a href="#gnutls_005fhash">gnutls_hash</a></code></dt>
-<dt><code><a href="#gnutls_005fhash_005foutput">gnutls_hash_output</a></code></dt>
-<dt><code><a href="#gnutls_005fhash_005fdeinit">gnutls_hash_deinit</a></code></dt>
-<dt><code><a href="#gnutls_005fhash_005fget_005flen">gnutls_hash_get_len</a></code></dt>
-<dt><code><a href="#gnutls_005fhash_005ffast">gnutls_hash_fast</a></code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhash_005finit">gnutls_hash_init</a> (gnutls_hash_hd_t * <var>dig</var>, gnutls_digest_algorithm_t <var>algorithm</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhash">gnutls_hash</a> (gnutls_hash_hd_t <var>handle</var>, const void * <var>text</var>, size_t <var>textlen</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fhash_005foutput">gnutls_hash_output</a> (gnutls_hash_hd_t <var>handle</var>, void * <var>digest</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fhash_005fdeinit">gnutls_hash_deinit</a> (gnutls_hash_hd_t <var>handle</var>, void * <var>digest</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhash_005fget_005flen">gnutls_hash_get_len</a> (gnutls_digest_algorithm_t <var>algorithm</var>)</code></dt>
+<dt><code><var>int</var> <a href="#gnutls_005fhash_005ffast">gnutls_hash_fast</a> (gnutls_digest_algorithm_t <var>algorithm</var>, const void * <var>text</var>, size_t <var>textlen</var>, void * <var>digest</var>)</code></dt>
 </dl>
 
 <hr>
@@ -8112,7 +8092,7 @@ Fatal in session if broken.
 </p></dd>
 </dl>
 
-</div><p><strong>Figure 7.2: </strong>The random number levels.</p>
+<div class="float-caption"><p><strong>Figure 7.2: </strong>The random number levels.</p></div></div>
 
 
 
@@ -8143,7 +8123,7 @@ Previous: <a href="#Using-the-cryptographic-library" accesskey="p" rel="previous
 <a name="index-key-sizes"></a>
 
 <p>Because many algorithms are involved in TLS, it is not easy to set
-a consistent security level.  For this reason in <a href="#tab_003akey_002dsizes">tab:key-sizes</a> we
+a consistent security level.  For this reason in <a href="#tab_003akey_002dsizes">Table 7.5</a> we
 present some correspondence between key sizes of symmetric algorithms
 and public key algorithms based on [<em>ECRYPT</em>]. 
 Those can be used to generate certificates with
@@ -8160,7 +8140,7 @@ authentication.
 <tr><td width="10%">256</td><td width="12%">15424</td><td width="10%">512</td><td width="20%"><code>ULTRA</code></td><td width="32%">Foreseeable future</td></tr>
 </table>
 
-</div><p><strong>Table 7.5: </strong>Key sizes and security parameters.</p>
+<div class="float-caption"><p><strong>Table 7.5: </strong>Key sizes and security parameters.</p></div></div>
 <p>The first column  provides a security parameter in a number of bits. This
 gives an indication of the number of combinations to be tried by an adversary
 to brute force a key. For example to test all possible keys in a 112 bit security parameter
@@ -8233,8 +8213,8 @@ key algorithm.
 <p>The following functions will set the minimum acceptable group size for Diffie-Hellman
 and SRP authentication. 
 </p><dl compact="compact">
-<dt><code><a href="#gnutls_005fdh_005fset_005fprime_005fbits">gnutls_dh_set_prime_bits</a></code></dt>
-<dt><code><a href="#gnutls_005fsrp_005fset_005fprime_005fbits">gnutls_srp_set_prime_bits</a></code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fdh_005fset_005fprime_005fbits">gnutls_dh_set_prime_bits</a> (gnutls_session_t <var>session</var>, unsigned int <var>bits</var>)</code></dt>
+<dt><code><var>void</var> <a href="#gnutls_005fsrp_005fset_005fprime_005fbits">gnutls_srp_set_prime_bits</a> (gnutls_session_t <var>session</var>, unsigned int <var>bits</var>)</code></dt>
 </dl>
 
 <hr>
@@ -12253,7 +12233,6 @@ Next: <a href="#gnutls_002dserv-Invocation" accesskey="n" rel="next">gnutls-serv
 <a name="Invoking-gnutls_002dcli"></a>
 <h3 class="section">9.1 Invoking gnutls-cli</h3>
 <a name="index-gnutls_002dcli"></a>
-<a name="index-GnuTLS-client"></a>
 
 
 <p>Simple client program to set up a TLS connection to some other computer. 
@@ -12264,21 +12243,23 @@ using the <code>agtexi-cmd</code> template and the option descriptions for the <
 This software is released under the GNU General Public License, version 3 or later.
 </p>
 
-<a name="gnutls_002dcli-usage"></a><a name="gnutls_002dcli-help_002fusage-_0028_002dh_0029"></a>
-<h4 class="subheading">gnutls-cli help/usage (-h)</h4>
+<a name="gnutls_002dcli-usage"></a><a name="gnutls_002dcli-help_002fusage-_0028_002d_002dhelp_0029"></a>
+<h4 class="subheading">gnutls-cli help/usage (<samp>--help</samp>)</h4>
 <a name="index-gnutls_002dcli-help"></a>
 
 <p>This is the automatically generated usage text for gnutls-cli.
-The text printed is the same whether for the <code>help</code> option (-h) or the <code>more-help</code> option (-!).  <code>more-help</code> will print
+</p>
+<p>The text printed is the same whether selected with the <code>help</code> option
+(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>).  <code>more-help</code> will print
 the usage text by passing it through a pager program.
 <code>more-help</code> is disabled on platforms without a working
 <code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
-used to select the program, defaulting to &lsquo;<tt>more</tt>&rsquo;.  Both will exit
+used to select the program, defaulting to <samp>more</samp>.  Both will exit
 with a status code of 0.
 </p>
 <div class="example">
 <pre class="example">gnutls-cli - GnuTLS client - Ver. @VERSION@
-USAGE:  gnutls-cli [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [hostname]
+USAGE:  lt-gnutls-cli [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [hostname]
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -12347,44 +12328,37 @@ please send bug reports to:  bug-gnutls@gnu.org
 
 <a name="gnutls_002dcli-debug"></a><a name="debug-option-_0028_002dd_0029-5"></a>
 <h4 class="subheading">debug option (-d)</h4>
-<a name="index-gnutls_002dcli_002ddebug"></a>
 
 <p>This is the &ldquo;enable debugging.&rdquo; option.
 This option takes an argument number.
 Specifies the debug level.
 <a name="gnutls_002dcli-tofu"></a></p><a name="tofu-option"></a>
 <h4 class="subheading">tofu option</h4>
-<a name="index-gnutls_002dcli_002dtofu"></a>
 
 <p>This is the &ldquo;enable trust on first use authentication&rdquo; option.
 This option will, in addition to certificate authentication, perform authentication based on previously seen public keys, a model similar to SSH authentication.
 <a name="gnutls_002dcli-ocsp"></a></p><a name="ocsp-option"></a>
 <h4 class="subheading">ocsp option</h4>
-<a name="index-gnutls_002dcli_002docsp"></a>
 
 <p>This is the &ldquo;enable ocsp certificate verification&rdquo; option.
 This option will enable verification of the peer&rsquo;s certificate using ocsp
 <a name="gnutls_002dcli-resume"></a></p><a name="resume-option-_0028_002dr_0029"></a>
 <h4 class="subheading">resume option (-r)</h4>
-<a name="index-gnutls_002dcli_002dresume"></a>
 
 <p>This is the &ldquo;establish a session and resume&rdquo; option.
 Connect, establish a session, reconnect and resume.
 <a name="gnutls_002dcli-rehandshake"></a></p><a name="rehandshake-option-_0028_002de_0029"></a>
 <h4 class="subheading">rehandshake option (-e)</h4>
-<a name="index-gnutls_002dcli_002drehandshake"></a>
 
 <p>This is the &ldquo;establish a session and rehandshake&rdquo; option.
 Connect, establish a session and rehandshake immediately.
 <a name="gnutls_002dcli-starttls"></a></p><a name="starttls-option-_0028_002ds_0029"></a>
 <h4 class="subheading">starttls option (-s)</h4>
-<a name="index-gnutls_002dcli_002dstarttls"></a>
 
 <p>This is the &ldquo;connect, establish a plain session and start tls.&rdquo; option.
 The TLS session will be initiated when EOF or a SIGALRM is received.
 <a name="gnutls_002dcli-priority"></a></p><a name="priority-option"></a>
 <h4 class="subheading">priority option</h4>
-<a name="index-gnutls_002dcli_002dpriority"></a>
 
 <p>This is the &ldquo;priorities string&rdquo; option.
 This option takes an argument string.
@@ -12396,7 +12370,6 @@ NORMAL, SECURE128, SECURE256.
 information on allowed keywords
 <a name="gnutls_002dcli-list"></a></p><a name="list-option-_0028_002dl_0029"></a>
 <h4 class="subheading">list option (-l)</h4>
-<a name="index-gnutls_002dcli_002dlist"></a>
 
 <p>This is the &ldquo;print a list of the supported algorithms and modes&rdquo; option.
 Print a list of the supported algorithms and modes. If a priority string is given then only the enabled ciphersuites are shown.
@@ -12415,8 +12388,7 @@ Print a list of the supported algorithms and modes. If a priority string is give
 <a name="gnutls_002dcli-See-Also"></a><a name="gnutls_002dcli-See-Also-1"></a>
 <h4 class="subheading">gnutls-cli See Also</h4>
 <p>gnutls-cli-debug(1), gnutls-serv(1)
-</p>
-<a name="gnutls_002dcli-Examples"></a><a name="gnutls_002dcli-Examples-1"></a>
+<a name="gnutls_002dcli-Examples"></a></p><a name="gnutls_002dcli-Examples-1"></a>
 <h4 class="subheading">gnutls-cli Examples</h4>
 <a name="Connecting-using-PSK-authentication"></a>
 <h4 class="subheading">Connecting using PSK authentication</h4>
@@ -12458,7 +12430,6 @@ Compression: COMP-NULL
 Elliptic curves: CURVE-SECP384R1, CURVE-SECP521R1
 PK-signatures: SIGN-RSA-SHA384, SIGN-ECDSA-SHA384, SIGN-RSA-SHA512, SIGN-ECDSA-SHA512
 </pre></div>
-
 <hr>
 <a name="gnutls_002dserv-Invocation"></a>
 <div class="header">
@@ -12468,7 +12439,6 @@ Next: <a href="#gnutls_002dcli_002ddebug-Invocation" accesskey="n" rel="next">gn
 <a name="Invoking-gnutls_002dserv"></a>
 <h3 class="section">9.2 Invoking gnutls-serv</h3>
 <a name="index-gnutls_002dserv"></a>
-<a name="index-GnuTLS-server"></a>
 
 
 <p>Server program that listens to incoming TLS connections.
@@ -12478,21 +12448,23 @@ using the <code>agtexi-cmd</code> template and the option descriptions for the <
 This software is released under the GNU General Public License, version 3 or later.
 </p>
 
-<a name="gnutls_002dserv-usage"></a><a name="gnutls_002dserv-help_002fusage-_0028_002dh_0029"></a>
-<h4 class="subheading">gnutls-serv help/usage (-h)</h4>
+<a name="gnutls_002dserv-usage"></a><a name="gnutls_002dserv-help_002fusage-_0028_002d_002dhelp_0029"></a>
+<h4 class="subheading">gnutls-serv help/usage (<samp>--help</samp>)</h4>
 <a name="index-gnutls_002dserv-help"></a>
 
 <p>This is the automatically generated usage text for gnutls-serv.
-The text printed is the same whether for the <code>help</code> option (-h) or the <code>more-help</code> option (-!).  <code>more-help</code> will print
+</p>
+<p>The text printed is the same whether selected with the <code>help</code> option
+(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>).  <code>more-help</code> will print
 the usage text by passing it through a pager program.
 <code>more-help</code> is disabled on platforms without a working
 <code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
-used to select the program, defaulting to &lsquo;<tt>more</tt>&rsquo;.  Both will exit
+used to select the program, defaulting to <samp>more</samp>.  Both will exit
 with a status code of 0.
 </p>
 <div class="example">
 <pre class="example">gnutls-serv - GnuTLS server - Ver. @VERSION@
-USAGE:  gnutls-serv [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
+USAGE:  lt-gnutls-serv [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -12554,14 +12526,12 @@ please send bug reports to:  bug-gnutls@gnu.org
 
 <a name="gnutls_002dserv-debug"></a><a name="debug-option-_0028_002dd_0029-6"></a>
 <h4 class="subheading">debug option (-d)</h4>
-<a name="index-gnutls_002dserv_002ddebug"></a>
 
 <p>This is the &ldquo;enable debugging.&rdquo; option.
 This option takes an argument number.
 Specifies the debug level.
 <a name="gnutls_002dserv-priority"></a></p><a name="priority-option-1"></a>
 <h4 class="subheading">priority option</h4>
-<a name="index-gnutls_002dserv_002dpriority"></a>
 
 <p>This is the &ldquo;priorities string&rdquo; option.
 This option takes an argument string.
@@ -12573,7 +12543,6 @@ NORMAL, SECURE128, SECURE256.
 information on allowed keywords
 <a name="gnutls_002dserv-list"></a></p><a name="list-option-_0028_002dl_0029-1"></a>
 <h4 class="subheading">list option (-l)</h4>
-<a name="index-gnutls_002dserv_002dlist"></a>
 
 <p>This is the &ldquo;print a list of the supported algorithms and modes&rdquo; option.
 Print a list of the supported algorithms and modes. If a priority string is given then only the enabled ciphersuites are shown.
@@ -12592,8 +12561,7 @@ Print a list of the supported algorithms and modes. If a priority string is give
 <a name="gnutls_002dserv-See-Also"></a><a name="gnutls_002dserv-See-Also-1"></a>
 <h4 class="subheading">gnutls-serv See Also</h4>
 <p>gnutls-cli-debug(1), gnutls-cli(1)
-</p>
-<a name="gnutls_002dserv-Examples"></a><a name="gnutls_002dserv-Examples-1"></a>
+<a name="gnutls_002dserv-Examples"></a></p><a name="gnutls_002dserv-Examples-1"></a>
 <h4 class="subheading">gnutls-serv Examples</h4>
 <p>Running your own TLS server based on GnuTLS can be useful when
 debugging clients and/or GnuTLS itself.  This section describes how to
@@ -12759,7 +12727,6 @@ get this command:
             --srppasswd srp-passwd.txt \
             --pskpasswd psk-passwd.txt
 </pre></div>
-
 <hr>
 <a name="gnutls_002dcli_002ddebug-Invocation"></a>
 <div class="header">
@@ -12768,8 +12735,7 @@ Previous: <a href="#gnutls_002dserv-Invocation" accesskey="p" rel="previous">gnu
 </div>
 <a name="Invoking-gnutls_002dcli_002ddebug"></a>
 <h3 class="section">9.3 Invoking gnutls-cli-debug</h3>
-<a name="index-gnutls_002dcli_002ddebug-1"></a>
-<a name="index-GnuTLS-debug-client"></a>
+<a name="index-gnutls_002dcli_002ddebug"></a>
 
 
 <p>TLS debug client. It sets up multiple TLS connections to 
@@ -12784,21 +12750,23 @@ using the <code>agtexi-cmd</code> template and the option descriptions for the <
 This software is released under the GNU General Public License, version 3 or later.
 </p>
 
-<a name="gnutls_002dcli_002ddebug-usage"></a><a name="gnutls_002dcli_002ddebug-help_002fusage-_0028_002dh_0029"></a>
-<h4 class="subheading">gnutls-cli-debug help/usage (-h)</h4>
+<a name="gnutls_002dcli_002ddebug-usage"></a><a name="gnutls_002dcli_002ddebug-help_002fusage-_0028_002d_002dhelp_0029"></a>
+<h4 class="subheading">gnutls-cli-debug help/usage (<samp>--help</samp>)</h4>
 <a name="index-gnutls_002dcli_002ddebug-help"></a>
 
 <p>This is the automatically generated usage text for gnutls-cli-debug.
-The text printed is the same whether for the <code>help</code> option (-h) or the <code>more-help</code> option (-!).  <code>more-help</code> will print
+</p>
+<p>The text printed is the same whether selected with the <code>help</code> option
+(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>).  <code>more-help</code> will print
 the usage text by passing it through a pager program.
 <code>more-help</code> is disabled on platforms without a working
 <code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
-used to select the program, defaulting to &lsquo;<tt>more</tt>&rsquo;.  Both will exit
+used to select the program, defaulting to <samp>more</samp>.  Both will exit
 with a status code of 0.
 </p>
 <div class="example">
 <pre class="example">gnutls-cli-debug - GnuTLS debug client - Ver. @VERSION@
-USAGE:  gnutls-cli-debug [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... 
+USAGE:  lt-gnutls-cli-debug [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... 
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -12830,7 +12798,6 @@ please send bug reports to:  bug-gnutls@gnu.org
 
 <a name="gnutls_002dcli_002ddebug-debug"></a><a name="debug-option-_0028_002dd_0029-7"></a>
 <h4 class="subheading">debug option (-d)</h4>
-<a name="index-gnutls_002dcli_002ddebug_002ddebug"></a>
 
 <p>This is the &ldquo;enable debugging.&rdquo; option.
 This option takes an argument number.
@@ -12850,8 +12817,7 @@ Specifies the debug level.
 <a name="gnutls_002dcli_002ddebug-See-Also"></a><a name="gnutls_002dcli_002ddebug-See-Also-1"></a>
 <h4 class="subheading">gnutls-cli-debug See Also</h4>
 <p>gnutls-cli(1), gnutls-serv(1)
-</p>
-<a name="gnutls_002dcli_002ddebug-Examples"></a><a name="gnutls_002dcli_002ddebug-Examples-1"></a>
+<a name="gnutls_002dcli_002ddebug-Examples"></a></p><a name="gnutls_002dcli_002ddebug-Examples-1"></a>
 <h4 class="subheading">gnutls-cli-debug Examples</h4>
 <div class="example">
 <pre class="example">$ ../src/gnutls-cli-debug localhost
@@ -12901,7 +12867,6 @@ Checking for max record size... no
 Checking for OpenPGP authentication support... no
 </pre></div>
 
-
 <hr>
 <a name="Internal-architecture-of-GnuTLS"></a>
 <div class="header">
@@ -12938,7 +12903,7 @@ Next: <a href="#TLS-Handshake-Protocol" accesskey="n" rel="next">TLS Handshake P
 </div>
 <a name="The-TLS-Protocol-1"></a>
 <h3 class="section">10.1 The TLS Protocol</h3>
-<p>The main use case for the TLS protocol is shown in <a href="#fig_003aclient_002dserver">fig:client-server</a>.
+<p>The main use case for the TLS protocol is shown in <a href="#fig_003aclient_002dserver">Figure 10.1</a>.
 A user of a library implementing the protocol expects no less than this functionality,
 i.e., to be able to set parameters such as the accepted security level, perform a
 negotiation with the peer and be able to exchange data.
@@ -12946,7 +12911,7 @@ negotiation with the peer and be able to exchange data.
 <div class="float"><a name="fig_003aclient_002dserver"></a>
 <img src="gnutls-client-server-use-case.png" alt="gnutls-client-server-use-case">
 
-</div><p><strong>Figure 10.1: </strong>TLS protocol use case.</p>
+<div class="float-caption"><p><strong>Figure 10.1: </strong>TLS protocol use case.</p></div></div>
 <hr>
 <a name="TLS-Handshake-Protocol"></a>
 <div class="header">
@@ -12957,23 +12922,23 @@ Next: <a href="#TLS-Authentication-Methods" accesskey="n" rel="next">TLS Authent
 <h3 class="section">10.2 TLS Handshake Protocol</h3>
 <p>The <acronym>GnuTLS</acronym> handshake protocol is implemented as a state
 machine that waits for input or returns immediately when the non-blocking
-transport layer functions are used. The main idea is shown in <a href="#fig_003agnutls_002dhandshake">fig:gnutls-handshake</a>.
+transport layer functions are used. The main idea is shown in <a href="#fig_003agnutls_002dhandshake">Figure 10.2</a>.
 </p>
 <div class="float"><a name="fig_003agnutls_002dhandshake"></a>
 <img src="gnutls-handshake-state.png" alt="gnutls-handshake-state">
 
-</div><p><strong>Figure 10.2: </strong>GnuTLS handshake state machine.</p>
+<div class="float-caption"><p><strong>Figure 10.2: </strong>GnuTLS handshake state machine.</p></div></div>
 <p>Also the way the input is processed varies per ciphersuite. Several 
 implementations of the internal handlers are available and 
 <a href="#gnutls_005fhandshake">gnutls_handshake</a> only multiplexes the input to the appropriate 
 handler. For example a <acronym>PSK</acronym> ciphersuite has a different 
 implementation of the <code>process_client_key_exchange</code> than a
-certificate ciphersuite. We illustrate the idea in <a href="#fig_003agnutls_002dhandshake_002dsequence">fig:gnutls-handshake-sequence</a>.
+certificate ciphersuite. We illustrate the idea in <a href="#fig_003agnutls_002dhandshake_002dsequence">Figure 10.3</a>.
 </p>
 <div class="float"><a name="fig_003agnutls_002dhandshake_002dsequence"></a>
 <img src="gnutls-handshake-sequence.png" alt="gnutls-handshake-sequence">
 
-</div><p><strong>Figure 10.3: </strong>GnuTLS handshake process sequence.</p>
+<div class="float-caption"><p><strong>Figure 10.3: </strong>GnuTLS handshake process sequence.</p></div></div>
 <hr>
 <a name="TLS-Authentication-Methods"></a>
 <div class="header">
@@ -13012,7 +12977,7 @@ authentication method needs to implement the functions shown below.
 <p>Those functions are responsible for the
 interpretation of the handshake protocol messages. It is common for such
 functions to read data from one or more <code>credentials_t</code>
-structures<a name="DOCF16" href="#FOOT16">(16)</a> and write data,
+structures<a name="DOCF16" href="#FOOT16"><sup>16</sup></a> and write data,
 such as certificates, usernames etc. to <code>auth_info_t</code> structures.
 </p>
 
@@ -13374,12 +13339,12 @@ those is a challenging task for every cryptographic  application or
 library. Unfortunately the cryptographic library that GnuTLS is based 
 on takes no advantage of these capabilities. For this reason GnuTLS handles 
 this internally by following a layered approach to accessing
-cryptographic operations as in <a href="#fig_003acrypto_002dlayers">fig:crypto-layers</a>.
+cryptographic operations as in <a href="#fig_003acrypto_002dlayers">Figure 10.4</a>.
 </p>
 <div class="float"><a name="fig_003acrypto_002dlayers"></a>
 <img src="gnutls-crypto-layers.png" alt="gnutls-crypto-layers">
 
-</div><p><strong>Figure 10.4: </strong>GnuTLS cryptographic back-end design.</p>
+<div class="float-caption"><p><strong>Figure 10.4: </strong>GnuTLS cryptographic back-end design.</p></div></div>
 <p>The TLS layer uses a cryptographic provider layer, that will in turn either 
 use the default crypto provider &ndash; a software crypto library, or use an external
 crypto provider, if available in the local system. The reason of handling
@@ -13392,7 +13357,7 @@ an efficient way.
 <h4 class="subheading">Cryptographic library layer</h4>
 <p>The Cryptographic library layer, currently supports only
 libnettle. Older versions of GnuTLS used to support libgcrypt,
-but it was switched with nettle mainly for performance reasons<a name="DOCF17" href="#FOOT17">(17)</a>
+but it was switched with nettle mainly for performance reasons<a name="DOCF17" href="#FOOT17"><sup>17</sup></a>
 and secondary because it is a simpler library to use.
 In the future other cryptographic libraries might be supported as well.
 </p>
@@ -13402,7 +13367,7 @@ In the future other cryptographic libraries might be supported as well.
 kernel drivers to utilize the operations from software. For this reason 
 GnuTLS provides a layer where each individual algorithm used can be replaced
 by another implementation, i.e., the one provided by the driver. The
-FreeBSD, OpenBSD and Linux kernels<a name="DOCF18" href="#FOOT18">(18)</a> include already 
+FreeBSD, OpenBSD and Linux kernels<a name="DOCF18" href="#FOOT18"><sup>18</sup></a> include already 
 a number of hardware assisted implementations, and also provide an interface 
 to access them, called <code>/dev/crypto</code>.
 GnuTLS will take advantage of this interface if compiled with special
@@ -13861,6 +13826,7 @@ expressions.
 <tr><td width="15%">-326</td><td width="40%">GNUTLS_E_NO_PRIORITIES_WERE_SET</td><td width="37%">No or insufficient priorities were set.</td></tr>
 <tr><td width="15%">-327</td><td width="40%">GNUTLS_E_X509_UNSUPPORTED_EXTENSION</td><td width="37%">Unsupported extension in X.509 certificate.</td></tr>
 <tr><td width="15%">-328</td><td width="40%">GNUTLS_E_SESSION_EOF</td><td width="37%">Peer has terminated the connection</td></tr>
+<tr><td width="15%">-341</td><td width="40%">GNUTLS_E_OCSP_RESPONSE_ERROR</td><td width="37%">The OCSP response is invalid</td></tr>
 </table>
 
 
@@ -13986,6 +13952,7 @@ Next: <a href="#API-reference" accesskey="n" rel="next">API reference</a>, Previ
 <dt><code>TLS1.0</code></dt>
 <dt><code>TLS1.1</code></dt>
 <dt><code>TLS1.2</code></dt>
+<dt><code>DTLS0.9</code></dt>
 <dt><code>DTLS1.0</code></dt>
 </dl>
 
@@ -14127,7 +14094,7 @@ Next: <a href="#Datagram-TLS-API" accesskey="n" rel="next">Datagram TLS API</a>,
 <h3 class="section">E.1 Core TLS API</h3>
 
 <p>The prototypes for the following functions lie in
-&lsquo;<tt>gnutls/gnutls.h</tt>&rsquo;.
+<samp>gnutls/gnutls.h</samp>.
 </p>
 
 <a name="gnutls_005falert_005fget-1"></a>
@@ -14667,7 +14634,8 @@ indicates error and the handshake will be terminated.
 </p>
 <p>This function will set the flags to be used at verification of the
 certificates.  Flags must be OR of the
-<code>gnutls_certificate_verify_flags</code>  enumerations.
+<code>gnutls_certificate_verify_flags</code>  enumerations. The default
+for TLS sessions is GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN.
 </p></dd></dl>
 
 <a name="gnutls_005fcertificate_005fset_005fverify_005ffunction-1"></a>
@@ -16150,7 +16118,7 @@ be free&rsquo;d by calling <code>gnutls_deinit()</code> .  Returns <code>GNUTLS_
 <p><code>flags</code> can be one of <code>GNUTLS_CLIENT</code>  and <code>GNUTLS_SERVER</code> . For a DTLS
 entity, the flags <code>GNUTLS_DATAGRAM</code>  and  <code>GNUTLS_NONBLOCK</code>  are
 also available. The latter flag will enable a non-blocking
-operation of the DTLS timers.
+operation of the DTLS timers. 
 </p>
 <p><strong>Returns:</strong> <code>GNUTLS_E_SUCCESS</code>  on success, or an error code.
 </p></dd></dl>
@@ -18443,7 +18411,7 @@ Next: <a href="#X509-certificate-API" accesskey="n" rel="next">X509 certificate
 <h3 class="section">E.2 Datagram TLS API</h3>
 
 <p>The prototypes for the following functions lie in
-&lsquo;<tt>gnutls/dtls.h</tt>&rsquo;.
+<samp>gnutls/dtls.h</samp>.
 </p>
 
 <a name="gnutls_005fdtls_005fcookie_005fsend-1"></a>
@@ -18652,7 +18620,7 @@ Next: <a href="#OCSP-API" accesskey="n" rel="next">OCSP API</a>, Previous: <a hr
 <a name="index-X_002e509-Functions"></a>
 
 <p>The following functions are to be used for <acronym>X.509</acronym> certificate handling.
-Their prototypes lie in &lsquo;<tt>gnutls/x509.h</tt>&rsquo;.
+Their prototypes lie in <samp>gnutls/x509.h</samp>.
 </p>
 
 <a name="gnutls_005fpkcs7_005fdeinit-1"></a>
@@ -20447,7 +20415,8 @@ and the DNSName/IPAddress subject alternative name PKIX extension.
 <p><var>issuer</var>: is the certificate of a possible issuer
 </p>
 <p>This function will check if the given certificate was issued by the
-given issuer.
+given issuer. It checks the DN fields and the authority
+key identifier and subject key identifier fields match.
 </p>
 <p><strong>Returns:</strong> It will return true (1) if the given certificate is issued
 by the given issuer, and false (0) if not.  A negative error code is
@@ -21396,7 +21365,7 @@ otherwise a negative error code is returned.
 <p><var>start</var>: will hold the starting point of the DN
 </p>
 <p>This function will return a pointer to the DER encoded DN structure and
-the length.
+the length. This points to allocated data that must be free&rsquo;d using <code>gnutls_free()</code> .
 </p>
 <p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned, otherwise a
 negative error value. or a negative error code on error.
@@ -21411,7 +21380,7 @@ negative error value. or a negative error code on error.
 <p><var>start</var>: will hold the starting point of the DN
 </p>
 <p>This function will return a pointer to the DER encoded DN structure
-and the length.
+and the length. This points to allocated data that must be free&rsquo;d using <code>gnutls_free()</code> .
 </p>
 <p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned, otherwise a
 negative error value.or a negative error code on error.
@@ -21718,7 +21687,7 @@ CERTIFICATE&quot;, or &quot;CERTIFICATE&quot;.
 </p>
 <p>This function will convert the given PEM encoded certificate list
 to the native gnutls_x509_crt_t format. The output will be stored
-in  <code>certs</code> which will be initialized.
+in  <code>certs</code> .  They will be automatically initialized.
 </p>
 <p>If the Certificate is PEM encoded it should have a header of &quot;X509
 CERTIFICATE&quot;, or &quot;CERTIFICATE&quot;.
@@ -22181,27 +22150,6 @@ uint8_t.
 negative error value.
 </p></dd></dl>
 
-<a name="gnutls_005fx509_005fcrt_005fset_005fsubject_005falternative_005fname-1"></a>
-<h4 class="subheading">gnutls_x509_crt_set_subject_alternative_name</h4>
-<a name="gnutls_005fx509_005fcrt_005fset_005fsubject_005falternative_005fname"></a><dl>
-<dt><a name="index-gnutls_005fx509_005fcrt_005fset_005fsubject_005falternative_005fname"></a>Function: <em>int</em> <strong>gnutls_x509_crt_set_subject_alternative_name</strong> <em>(gnutls_x509_crt_t <var>crt</var>, gnutls_x509_subject_alt_name_t                                               <var>type</var>, const char * <var>data_string</var>)</em></dt>
-<dd><p><var>crt</var>: a certificate of type <code>gnutls_x509_crt_t</code> 
-</p>
-<p><var>type</var>: is one of the gnutls_x509_subject_alt_name_t enumerations
-</p>
-<p><var>data_string</var>: The data to be set, a (0) terminated string
-</p>
-<p>This function will set the subject alternative name certificate
-extension. This function assumes that data can be expressed as a null
-terminated string.
-</p>
-<p>The name of the function is unfortunate since it is incosistent with
-<code>gnutls_x509_crt_get_subject_alt_name()</code> .
-</p>
-<p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned, otherwise a
-negative error value.
-</p></dd></dl>
-
 <a name="gnutls_005fx509_005fcrt_005fset_005fsubject_005falt_005fname-1"></a>
 <h4 class="subheading">gnutls_x509_crt_set_subject_alt_name</h4>
 <a name="gnutls_005fx509_005fcrt_005fset_005fsubject_005falt_005fname"></a><dl>
@@ -22225,6 +22173,27 @@ negative error value.
 <p><strong>Since:</strong> 2.6.0
 </p></dd></dl>
 
+<a name="gnutls_005fx509_005fcrt_005fset_005fsubject_005falternative_005fname-1"></a>
+<h4 class="subheading">gnutls_x509_crt_set_subject_alternative_name</h4>
+<a name="gnutls_005fx509_005fcrt_005fset_005fsubject_005falternative_005fname"></a><dl>
+<dt><a name="index-gnutls_005fx509_005fcrt_005fset_005fsubject_005falternative_005fname"></a>Function: <em>int</em> <strong>gnutls_x509_crt_set_subject_alternative_name</strong> <em>(gnutls_x509_crt_t <var>crt</var>, gnutls_x509_subject_alt_name_t                                               <var>type</var>, const char * <var>data_string</var>)</em></dt>
+<dd><p><var>crt</var>: a certificate of type <code>gnutls_x509_crt_t</code> 
+</p>
+<p><var>type</var>: is one of the gnutls_x509_subject_alt_name_t enumerations
+</p>
+<p><var>data_string</var>: The data to be set, a (0) terminated string
+</p>
+<p>This function will set the subject alternative name certificate
+extension. This function assumes that data can be expressed as a null
+terminated string.
+</p>
+<p>The name of the function is unfortunate since it is incosistent with
+<code>gnutls_x509_crt_get_subject_alt_name()</code> .
+</p>
+<p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned, otherwise a
+negative error value.
+</p></dd></dl>
+
 <a name="gnutls_005fx509_005fcrt_005fset_005fsubject_005fkey_005fid-1"></a>
 <h4 class="subheading">gnutls_x509_crt_set_subject_key_id</h4>
 <a name="gnutls_005fx509_005fcrt_005fset_005fsubject_005fkey_005fid"></a><dl>
@@ -22738,8 +22707,9 @@ success, or a negative error code on error.
 native <code>gnutls_x509_privkey_t</code>  format. The output will be stored in
  <code>key</code> .
 </p>
-<p>If the key is PEM encoded it should have a header of &quot;RSA PRIVATE
-KEY&quot;, or &quot;DSA PRIVATE KEY&quot;.
+<p>If the key is PEM encoded it should have a header that contains &quot;PRIVATE
+KEY&quot;. Note that this function falls back to PKCS <code>8</code>  decoding without
+password, if the default format fails to import.
 </p>
 <p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned, otherwise a
 negative error value.
@@ -23069,73 +23039,6 @@ negative error value.
 <p><strong>Since:</strong> 3.0
 </p></dd></dl>
 
-<a name="gnutls_005fx509_005ftrust_005flist_005fadd_005fsystem_005ftrust-1"></a>
-<h4 class="subheading">gnutls_x509_trust_list_add_system_trust</h4>
-<a name="gnutls_005fx509_005ftrust_005flist_005fadd_005fsystem_005ftrust"></a><dl>
-<dt><a name="index-gnutls_005fx509_005ftrust_005flist_005fadd_005fsystem_005ftrust"></a>Function: <em>int</em> <strong>gnutls_x509_trust_list_add_system_trust</strong> <em>(gnutls_x509_trust_list_t <var>list</var>, unsigned int <var>tl_flags</var>, unsigned int <var>tl_vflags</var>)</em></dt>
-<dd><p><var>list</var>: The structure of the list
-</p>
-<p><var>tl_flags</var>: GNUTLS_TL_*
-</p>
-<p><var>tl_vflags</var>: gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL
-</p>
-<p>This function adds the system&rsquo;s default trusted certificate
-authorities to the trusted list.
-</p>
-<p><strong>Returns:</strong> The number of added elements is returned.
-</p>
-<p><strong>Since:</strong> 3.1
-</p></dd></dl>
-
-<a name="gnutls_005fx509_005ftrust_005flist_005fadd_005ftrust_005ffile-1"></a>
-<h4 class="subheading">gnutls_x509_trust_list_add_trust_file</h4>
-<a name="gnutls_005fx509_005ftrust_005flist_005fadd_005ftrust_005ffile"></a><dl>
-<dt><a name="index-gnutls_005fx509_005ftrust_005flist_005fadd_005ftrust_005ffile"></a>Function: <em>int</em> <strong>gnutls_x509_trust_list_add_trust_file</strong> <em>(gnutls_x509_trust_list_t <var>list</var>, const char* <var>ca_file</var>, const char* <var>crl_file</var>, gnutls_x509_crt_fmt_t <var>type</var>, unsigned int <var>tl_flags</var>, unsigned int <var>tl_vflags</var>)</em></dt>
-<dd><p><var>list</var>: The structure of the list
-</p>
-<p><var>ca_file</var>: A file containing a list of CAs (optional)
-</p>
-<p><var>crl_file</var>: A file containing a list of CRLs (optional)
-</p>
-<p><var>type</var>: The format of the certificates
-</p>
-<p><var>tl_flags</var>: GNUTLS_TL_*
-</p>
-<p><var>tl_vflags</var>: gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL
-</p>
-<p>This function will add the given certificate authorities
-to the trusted list. pkcs11 URLs are also accepted, instead
-of files, by this function.
-</p>
-<p><strong>Returns:</strong> The number of added elements is returned.
-</p>
-<p><strong>Since:</strong> 3.1
-</p></dd></dl>
-
-<a name="gnutls_005fx509_005ftrust_005flist_005fadd_005ftrust_005fmem-1"></a>
-<h4 class="subheading">gnutls_x509_trust_list_add_trust_mem</h4>
-<a name="gnutls_005fx509_005ftrust_005flist_005fadd_005ftrust_005fmem"></a><dl>
-<dt><a name="index-gnutls_005fx509_005ftrust_005flist_005fadd_005ftrust_005fmem"></a>Function: <em>int</em> <strong>gnutls_x509_trust_list_add_trust_mem</strong> <em>(gnutls_x509_trust_list_t <var>list</var>, const gnutls_datum_t * <var>cas</var>, const gnutls_datum_t * <var>crls</var>, gnutls_x509_crt_fmt_t <var>type</var>, unsigned int <var>tl_flags</var>, unsigned int <var>tl_vflags</var>)</em></dt>
-<dd><p><var>list</var>: The structure of the list
-</p>
-<p><var>cas</var>: &ndash; undescribed &ndash;
-</p>
-<p><var>crls</var>: &ndash; undescribed &ndash;
-</p>
-<p><var>type</var>: The format of the certificates
-</p>
-<p><var>tl_flags</var>: GNUTLS_TL_*
-</p>
-<p><var>tl_vflags</var>: gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL
-</p>
-<p>This function will add the given certificate authorities
-to the trusted list. 
-</p>
-<p><strong>Returns:</strong> The number of added elements is returned.
-</p>
-<p><strong>Since:</strong> 3.1
-</p></dd></dl>
-
 <a name="gnutls_005fx509_005ftrust_005flist_005fdeinit-1"></a>
 <h4 class="subheading">gnutls_x509_trust_list_deinit</h4>
 <a name="gnutls_005fx509_005ftrust_005flist_005fdeinit"></a><dl>
@@ -23251,7 +23154,7 @@ Next: <a href="#OpenPGP-API" accesskey="n" rel="next">OpenPGP API</a>, Previous:
 <a name="index-OCSP-Functions"></a>
 
 <p>The following functions are for <acronym>OCSP</acronym> certificate status
-checking.  Their prototypes lie in &lsquo;<tt>gnutls/ocsp.h</tt>&rsquo;.
+checking.  Their prototypes lie in <samp>gnutls/ocsp.h</samp>.
 </p>
 
 <a name="gnutls_005focsp_005freq_005fadd_005fcert-1"></a>
@@ -23531,6 +23434,23 @@ earlier calls.
 negative error code is returned.
 </p></dd></dl>
 
+<a name="gnutls_005focsp_005fresp_005fcheck_005fcrt-1"></a>
+<h4 class="subheading">gnutls_ocsp_resp_check_crt</h4>
+<a name="gnutls_005focsp_005fresp_005fcheck_005fcrt"></a><dl>
+<dt><a name="index-gnutls_005focsp_005fresp_005fcheck_005fcrt"></a>Function: <em>int</em> <strong>gnutls_ocsp_resp_check_crt</strong> <em>(gnutls_ocsp_resp_t <var>resp</var>, unsigned int <var>indx</var>, gnutls_x509_crt_t <var>crt</var>)</em></dt>
+<dd><p><var>resp</var>: should contain a <code>gnutls_ocsp_resp_t</code>  structure
+</p>
+<p><var>indx</var>: Specifies response number to get. Use (0) to get the first one.
+</p>
+<p><var>crt</var>: The certificate to check
+</p>
+<p>This function will check whether the OCSP response
+is about the provided certificate.
+</p>
+<p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned, otherwise a
+negative error code is returned.  
+</p></dd></dl>
+
 <a name="gnutls_005focsp_005fresp_005fdeinit-1"></a>
 <h4 class="subheading">gnutls_ocsp_resp_deinit</h4>
 <a name="gnutls_005focsp_005fresp_005fdeinit"></a><dl>
@@ -23722,7 +23642,7 @@ on error.
 <dt><a name="index-gnutls_005focsp_005fresp_005fget_005fsingle"></a>Function: <em>int</em> <strong>gnutls_ocsp_resp_get_single</strong> <em>(gnutls_ocsp_resp_t <var>resp</var>, unsigned <var>indx</var>, gnutls_digest_algorithm_t * <var>digest</var>, gnutls_datum_t * <var>issuer_name_hash</var>, gnutls_datum_t * <var>issuer_key_hash</var>, gnutls_datum_t * <var>serial_number</var>, unsigned int * <var>cert_status</var>, time_t * <var>this_update</var>, time_t * <var>next_update</var>, time_t * <var>revocation_time</var>, unsigned int * <var>revocation_reason</var>)</em></dt>
 <dd><p><var>resp</var>: should contain a <code>gnutls_ocsp_resp_t</code>  structure
 </p>
-<p><var>indx</var>: Specifies which extension OID to get. Use (0) to get the first one.
+<p><var>indx</var>: Specifies response number to get. Use (0) to get the first one.
 </p>
 <p><var>digest</var>: output variable with <code>gnutls_digest_algorithm_t</code>  hash algorithm
 </p>
@@ -23933,7 +23853,7 @@ Next: <a href="#PKCS-12-API" accesskey="n" rel="next">PKCS 12 API</a>, Previous:
 
 <p>The following functions are to be used for <acronym>OpenPGP</acronym>
 certificate handling.  Their prototypes lie in
-&lsquo;<tt>gnutls/openpgp.h</tt>&rsquo;.
+<samp>gnutls/openpgp.h</samp>.
 </p>
 
 <a name="gnutls_005fcertificate_005fset_005fopenpgp_005fkey-1"></a>
@@ -24123,7 +24043,7 @@ described in RFC2818 (HTTPS), which takes into account wildcards.
 </p>
 <p><var>format</var>: One of gnutls_openpgp_crt_fmt_t elements.
 </p>
-<p><var>output_data</var>: will contain the key base64 encoded or raw
+<p><var>output_data</var>: will contain the raw or base64 encoded key
 </p>
 <p><var>output_data_size</var>: holds the size of output_data (and will
 be replaced by the actual size of parameters)
@@ -24143,14 +24063,10 @@ If the buffer provided is not long enough to hold the output, then
 </p>
 <p><var>keyid</var>: the struct to save the keyid.
 </p>
-<p><var>flag</var>: Non (0) indicates that a valid subkey is always returned.
+<p><var>flag</var>: Non-zero indicates that a valid subkey is always returned.
 </p>
 <p>Returns the 64-bit keyID of the first valid OpenPGP subkey marked
-for authentication.  If flag is non (0) and no authentication
-subkey exists, then a valid subkey will be returned even if it is
-not marked for authentication.
-Returns the 64-bit keyID of the first valid OpenPGP subkey marked
-for authentication.  If flag is non (0) and no authentication
+for authentication.  If flag is non-zero and no authentication
 subkey exists, then a valid subkey will be returned even if it is
 not marked for authentication.
 </p>
@@ -24607,6 +24523,9 @@ for display to a human.
 <p>This allows setting a preferred key id for the given certificate.
 This key will be used by functions that involve key handling.
 </p>
+<p>If the provided  <code>keyid</code> is <code>NULL</code>  then the master key is
+set as preferred.
+</p>
 <p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned,
 otherwise a negative error code is returned.
 </p></dd></dl>
@@ -25136,7 +25055,11 @@ this private key.
 <p>This allows setting a preferred key id for the given certificate.
 This key will be used by functions that involve key handling.
 </p>
-<p><strong>Returns:</strong> On success, 0 is returned, or an error code.
+<p>If the provided  <code>keyid</code> is <code>NULL</code>  then the master key is
+set as preferred.
+</p>
+<p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned,
+otherwise a negative error code is returned.
 </p></dd></dl>
 
 <a name="gnutls_005fopenpgp_005fset_005frecv_005fkey_005ffunction-1"></a>
@@ -25150,6 +25073,8 @@ This key will be used by functions that involve key handling.
 <p>This funtion will set a key retrieval function for OpenPGP keys. This
 callback is only useful in server side, and will be used if the peer
 sent a key fingerprint instead of a full key.
+</p>
+<p>The retrieved key must be allocated using <code>gnutls_malloc()</code> .
 </p></dd></dl>
 
 
@@ -25163,7 +25088,7 @@ Next: <a href="#PKCS-11-API" accesskey="n" rel="next">PKCS 11 API</a>, Previous:
 <h3 class="section">E.6 PKCS 12 API</h3>
 
 <p>The following functions are to be used for PKCS 12 handling.
-Their prototypes lie in &lsquo;<tt>gnutls/pkcs12.h</tt>&rsquo;.
+Their prototypes lie in <samp>gnutls/pkcs12.h</samp>.
 </p>
 
 <a name="gnutls_005fpkcs12_005fbag_005fdecrypt-1"></a>
@@ -25526,7 +25451,7 @@ Next: <a href="#Abstract-key-API" accesskey="n" rel="next">Abstract key API</a>,
 <h3 class="section">E.7 Hardware token via PKCS 11 API</h3>
 
 <p>The following functions are to be used for PKCS 11 handling.
-Their prototypes lie in &lsquo;<tt>gnutls/pkcs11.h</tt>&rsquo;.
+Their prototypes lie in <samp>gnutls/pkcs11.h</samp>.
 </p>
 
 <a name="gnutls_005fpkcs11_005fadd_005fprovider-1"></a>
@@ -25817,30 +25742,6 @@ negative error value.
 <p><strong>Since:</strong> 2.12.0
 </p></dd></dl>
 
-<a name="gnutls_005fpkcs11_005fobj_005flist_005fimport_005furl2-1"></a>
-<h4 class="subheading">gnutls_pkcs11_obj_list_import_url2</h4>
-<a name="gnutls_005fpkcs11_005fobj_005flist_005fimport_005furl2"></a><dl>
-<dt><a name="index-gnutls_005fpkcs11_005fobj_005flist_005fimport_005furl2"></a>Function: <em>int</em> <strong>gnutls_pkcs11_obj_list_import_url2</strong> <em>(gnutls_pkcs11_obj_t ** <var>p_list</var>, unsigned int * <var>n_list</var>, const char * <var>url</var>, gnutls_pkcs11_obj_attr_t <var>attrs</var>, unsigned int <var>flags</var>)</em></dt>
-<dd><p><var>p_list</var>: An uninitialized object list (may be NULL)
-</p>
-<p><var>n_list</var>: It will contain the size of the list.
-</p>
-<p><var>url</var>: A PKCS 11 url identifying a set of objects
-</p>
-<p><var>attrs</var>: Attributes of type <code>gnutls_pkcs11_obj_attr_t</code>  that can be used to limit output
-</p>
-<p><var>flags</var>: One of GNUTLS_PKCS11_OBJ_* flags
-</p>
-<p>This function will initialize and set values to an object list
-by using all objects identified by the PKCS 11 URL. The output
-is stored in  <code>p_list</code> , which will be initialized.
-</p>
-<p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code>  (0) is returned, otherwise a
-negative error value.
-</p>
-<p><strong>Since:</strong> 3.1
-</p></dd></dl>
-
 <a name="gnutls_005fpkcs11_005fprivkey_005fdeinit-1"></a>
 <h4 class="subheading">gnutls_pkcs11_privkey_deinit</h4>
 <a name="gnutls_005fpkcs11_005fprivkey_005fdeinit"></a><dl>
@@ -26199,7 +26100,7 @@ Next: <a href="#Cryptographic-API" accesskey="n" rel="next">Cryptographic API</a
 <h3 class="section">E.8 Abstract key API</h3>
 
 <p>The following functions are to be used for abstract key handling.
-Their prototypes lie in &lsquo;<tt>gnutls/abstract.h</tt>&rsquo;.
+Their prototypes lie in <samp>gnutls/abstract.h</samp>.
 </p>
 
 <a name="gnutls_005fcertificate_005fset_005fkey-1"></a>
@@ -26749,7 +26650,7 @@ negative error value.
 <dt><a name="index-gnutls_005fpubkey_005fget_005fopenpgp_005fkey_005fid"></a>Function: <em>int</em> <strong>gnutls_pubkey_get_openpgp_key_id</strong> <em>(gnutls_pubkey_t <var>key</var>, unsigned int <var>flags</var>, unsigned char * <var>output_data</var>, size_t * <var>output_data_size</var>, unsigned int * <var>subkey</var>)</em></dt>
 <dd><p><var>key</var>: Holds the public key
 </p>
-<p><var>flags</var>: should be 0 for now
+<p><var>flags</var>: should be 0 or <code>GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT</code> 
 </p>
 <p><var>output_data</var>: will contain the key ID
 </p>
@@ -26758,14 +26659,16 @@ replaced by the actual size of parameters)
 </p>
 <p><var>subkey</var>: Will be non zero if the key ID corresponds to a subkey
 </p>
-<p>This function will return a unique ID the depends on the public
-key parameters. This ID can be used in checking whether a
-certificate corresponds to the given public key.
+<p>This function returns the OpenPGP key ID of the corresponding key.
+The key is a unique ID that depends on the public
+key parameters. 
+</p>
+<p>If the flag <code>GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT</code>  is specified
+this function returns the fingerprint of the master key.
 </p>
 <p>If the buffer provided is not long enough to hold the output, then
 *output_data_size is updated and <code>GNUTLS_E_SHORT_MEMORY_BUFFER</code>  will
-be returned.  The output will normally be a SHA-1 hash output,
-which is 20 bytes.
+be returned.  The output is <code>GNUTLS_OPENPGP_KEYID_SIZE</code>  bytes long.
 </p>
 <p><strong>Returns:</strong> In case of failure a negative error code will be
 returned, and 0 on success.
@@ -27205,8 +27108,10 @@ is returned, and zero or positive code on success.
 <p><var>signature</var>: contains the signature
 </p>
 <p>This function will verify the given signed digest, using the
-parameters from the public key. Use <code>gnutls_pubkey_verify_hash2()</code> 
-instead of this function.
+parameters from the public key. 
+</p>
+<p>Deprecated. This function cannot be easily used securely. 
+Use <code>gnutls_pubkey_verify_hash2()</code>  instead.
 </p>
 <p><strong>Returns:</strong> In case of a verification failure <code>GNUTLS_E_PK_SIG_VERIFY_FAILED</code>  
 is returned, and zero or positive code on success.
@@ -27360,7 +27265,7 @@ Next: <a href="#Compatibility-API" accesskey="n" rel="next">Compatibility API</a
 <h3 class="section">E.9 Cryptographic API</h3>
 
 <p>The following functions are to be used for low-level cryptographic operations.
-Their prototypes lie in &lsquo;<tt>gnutls/crypto.h</tt>&rsquo;.
+Their prototypes lie in <samp>gnutls/crypto.h</samp>.
 </p>
 
 <a name="gnutls_005fcipher_005fadd_005fauth-1"></a>
@@ -27776,7 +27681,7 @@ Previous: <a href="#Cryptographic-API" accesskey="p" rel="previous">Cryptographi
 <h3 class="section">E.10 Compatibility API</h3>
 
 <p>The following functions are carried over from old GnuTLS released. They might be removed at a later version.
-Their prototypes lie in &lsquo;<tt>gnutls/compat.h</tt>&rsquo;.
+Their prototypes lie in <samp>gnutls/compat.h</samp>.
 </p>
 
 <a name="gnutls_005fcertificate_005fset_005frsa_005fexport_005fparams-1"></a>
@@ -29300,6 +29205,7 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a href="#index-gnutls_005focsp_005freq_005frandomize_005fnonce"><code>gnutls_ocsp_req_randomize_nonce</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-API">OCSP API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005focsp_005freq_005fset_005fextension"><code>gnutls_ocsp_req_set_extension</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-API">OCSP API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005focsp_005freq_005fset_005fnonce"><code>gnutls_ocsp_req_set_nonce</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-API">OCSP API</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-gnutls_005focsp_005fresp_005fcheck_005fcrt"><code>gnutls_ocsp_resp_check_crt</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-API">OCSP API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005focsp_005fresp_005fdeinit"><code>gnutls_ocsp_resp_deinit</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-API">OCSP API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005focsp_005fresp_005fexport"><code>gnutls_ocsp_resp_export</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-API">OCSP API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005focsp_005fresp_005fget_005fcerts"><code>gnutls_ocsp_resp_get_certs</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-API">OCSP API</a></td></tr>
@@ -29415,7 +29321,6 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fpkcs11_005fobj_005fimport_005furl"><code>gnutls_pkcs11_obj_import_url</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#PKCS-11-API">PKCS 11 API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fpkcs11_005fobj_005finit"><code>gnutls_pkcs11_obj_init</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#PKCS-11-API">PKCS 11 API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fpkcs11_005fobj_005flist_005fimport_005furl"><code>gnutls_pkcs11_obj_list_import_url</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#PKCS-11-API">PKCS 11 API</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_005fpkcs11_005fobj_005flist_005fimport_005furl2"><code>gnutls_pkcs11_obj_list_import_url2</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#PKCS-11-API">PKCS 11 API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fpkcs11_005fprivkey_005fdeinit"><code>gnutls_pkcs11_privkey_deinit</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#PKCS-11-API">PKCS 11 API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fpkcs11_005fprivkey_005fexport_005furl"><code>gnutls_pkcs11_privkey_export_url</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#PKCS-11-API">PKCS 11 API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fpkcs11_005fprivkey_005fgenerate"><code>gnutls_pkcs11_privkey_generate</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#PKCS-11-API">PKCS 11 API</a></td></tr>
@@ -29888,9 +29793,6 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005fadd_005fcrls-1"><code>gnutls_x509_trust_list_add_crls</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#X509-certificate-API">X509 certificate API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005fadd_005fnamed_005fcrt"><code>gnutls_x509_trust_list_add_named_crt</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Verifying-X_002e509-certificate-paths">Verifying X.509 certificate paths</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005fadd_005fnamed_005fcrt-1"><code>gnutls_x509_trust_list_add_named_crt</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#X509-certificate-API">X509 certificate API</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005fadd_005fsystem_005ftrust"><code>gnutls_x509_trust_list_add_system_trust</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#X509-certificate-API">X509 certificate API</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005fadd_005ftrust_005ffile"><code>gnutls_x509_trust_list_add_trust_file</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#X509-certificate-API">X509 certificate API</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005fadd_005ftrust_005fmem"><code>gnutls_x509_trust_list_add_trust_mem</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#X509-certificate-API">X509 certificate API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005fdeinit"><code>gnutls_x509_trust_list_deinit</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#X509-certificate-API">X509 certificate API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005fget_005fissuer"><code>gnutls_x509_trust_list_get_issuer</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#X509-certificate-API">X509 certificate API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_005fx509_005ftrust_005flist_005finit"><code>gnutls_x509_trust_list_init</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#X509-certificate-API">X509 certificate API</a></td></tr>
@@ -29973,24 +29875,6 @@ Previous: <a href="#Function-and-Data-Index" accesskey="p" rel="previous">Functi
 <tr><td></td><td valign="top"><a href="#index-certificate-status">certificate status</a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-certificate-status-checking">OCSP certificate status checking</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-certtool"><code>certtool</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-certtool-help">certtool help</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002ddebug">certtool-debug</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dget_002ddh_002dparams">certtool-get-dh-params</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dhash">certtool-hash</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dinder">certtool-inder</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dinraw">certtool-inraw</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dload_002dca_002dcertificate">certtool-load-ca-certificate</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dload_002dca_002dprivkey">certtool-load-ca-privkey</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dload_002dcertificate">certtool-load-certificate</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dload_002dprivkey">certtool-load-privkey</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dload_002dpubkey">certtool-load-pubkey</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002doutder">certtool-outder</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002doutraw">certtool-outraw</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dpkcs_002dcipher">certtool-pkcs-cipher</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dsec_002dparam">certtool-sec-param</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dto_002dp12">certtool-to-p12</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dverify">certtool-verify</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dverify_002dchain">certtool-verify-chain</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-certtool_002dverify_002dcrl">certtool-verify-crl</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-channel-bindings">channel bindings</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Channel-Bindings">Channel Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-ciphersuites">ciphersuites</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Supported-ciphersuites">Supported ciphersuites</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-client-certificate-authentication">client certificate authentication</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Client-Authentication">Client Authentication</a></td></tr>
@@ -30014,32 +29898,12 @@ Previous: <a href="#Function-and-Data-Index" accesskey="p" rel="previous">Functi
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Concept-Index_cp_letter-G">G</a></th><td></td><td></td></tr>
 <tr><td></td><td valign="top"><a href="#index-generating-parameters">generating parameters</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Parameter-generation">Parameter generation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-GnuTLS-client">GnuTLS client</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-GnuTLS-debug-client">GnuTLS debug client</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli_002ddebug-Invocation">gnutls-cli-debug Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-GnuTLS-OCSP-tool">GnuTLS OCSP tool</a>:</td><td>&nbsp;</td><td valign="top"><a href="#ocsptool-Invocation">ocsptool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-GnuTLS-PKCS-_002311-tool">GnuTLS PKCS #11 tool</a>:</td><td>&nbsp;</td><td valign="top"><a href="#certtool-Invocation">certtool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-GnuTLS-PKCS-_002311-tool-1">GnuTLS PKCS #11 tool</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-GnuTLS-PSK-tool">GnuTLS PSK tool</a>:</td><td>&nbsp;</td><td valign="top"><a href="#psktool-Invocation">psktool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-GnuTLS-server">GnuTLS server</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dserv-Invocation">gnutls-serv Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-GnuTLS-SRP-tool">GnuTLS SRP tool</a>:</td><td>&nbsp;</td><td valign="top"><a href="#srptool-Invocation">srptool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_002dcli"><code>gnutls-cli</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_002dcli-help">gnutls-cli help</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002ddebug-1"><code>gnutls-cli-debug</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli_002ddebug-Invocation">gnutls-cli-debug Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002ddebug">gnutls-cli-debug</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002ddebug"><code>gnutls-cli-debug</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli_002ddebug-Invocation">gnutls-cli-debug Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002ddebug-help">gnutls-cli-debug help</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli_002ddebug-Invocation">gnutls-cli-debug Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002ddebug_002ddebug">gnutls-cli-debug-debug</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli_002ddebug-Invocation">gnutls-cli-debug Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002dlist">gnutls-cli-list</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002docsp">gnutls-cli-ocsp</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002dpriority">gnutls-cli-priority</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002drehandshake">gnutls-cli-rehandshake</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002dresume">gnutls-cli-resume</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002dstarttls">gnutls-cli-starttls</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dcli_002dtofu">gnutls-cli-tofu</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dcli-Invocation">gnutls-cli Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_002dserv"><code>gnutls-serv</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dserv-Invocation">gnutls-serv Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-gnutls_002dserv-help">gnutls-serv help</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dserv-Invocation">gnutls-serv Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dserv_002ddebug">gnutls-serv-debug</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dserv-Invocation">gnutls-serv Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dserv_002dlist">gnutls-serv-list</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dserv-Invocation">gnutls-serv Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-gnutls_002dserv_002dpriority">gnutls-serv-priority</a>:</td><td>&nbsp;</td><td valign="top"><a href="#gnutls_002dserv-Invocation">gnutls-serv Invocation</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Concept-Index_cp_letter-H">H</a></th><td></td><td></td></tr>
 <tr><td></td><td valign="top"><a href="#index-hacking">hacking</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Contributing">Contributing</a></td></tr>
@@ -30066,8 +29930,6 @@ Previous: <a href="#Function-and-Data-Index" accesskey="p" rel="previous">Functi
 <tr><td></td><td valign="top"><a href="#index-OCSP-Functions">OCSP Functions</a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-API">OCSP API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-ocsptool"><code>ocsptool</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#ocsptool-Invocation">ocsptool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-ocsptool-help">ocsptool help</a>:</td><td>&nbsp;</td><td valign="top"><a href="#ocsptool-Invocation">ocsptool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-ocsptool_002dask">ocsptool-ask</a>:</td><td>&nbsp;</td><td valign="top"><a href="#ocsptool-Invocation">ocsptool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-ocsptool_002ddebug">ocsptool-debug</a>:</td><td>&nbsp;</td><td valign="top"><a href="#ocsptool-Invocation">ocsptool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-Online-Certificate-Status-Protocol">Online Certificate Status Protocol</a>:</td><td>&nbsp;</td><td valign="top"><a href="#OCSP-certificate-status-checking">OCSP certificate status checking</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-OpenPGP-API">OpenPGP API</a>:</td><td>&nbsp;</td><td valign="top"><a href="#OpenPGP-API">OpenPGP API</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-OpenPGP-certificates">OpenPGP certificates</a>:</td><td>&nbsp;</td><td valign="top"><a href="#OpenPGP-certificates">OpenPGP certificates</a></td></tr>
@@ -30077,16 +29939,6 @@ Previous: <a href="#Function-and-Data-Index" accesskey="p" rel="previous">Functi
 <tr><th><a name="Concept-Index_cp_letter-P">P</a></th><td></td><td></td></tr>
 <tr><td></td><td valign="top"><a href="#index-p11tool"><code>p11tool</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-p11tool-help">p11tool help</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002ddebug">p11tool-debug</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dgenerate_002ddsa">p11tool-generate-dsa</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dgenerate_002decc">p11tool-generate-ecc</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dgenerate_002drsa">p11tool-generate-rsa</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dinder">p11tool-inder</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dinraw">p11tool-inraw</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dprivate">p11tool-private</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dprovider">p11tool-provider</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dsec_002dparam">p11tool-sec-param</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-p11tool_002dwrite">p11tool-write</a>:</td><td>&nbsp;</td><td valign="top"><a href="#p11tool-Invocation">p11tool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-parameter-generation">parameter generation</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Parameter-generation">Parameter generation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-PCT">PCT</a>:</td><td>&nbsp;</td><td valign="top"><a href="#On-SSL-2-and-older-protocols">On SSL 2 and older protocols</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-PKCS-_002310">PKCS #10</a>:</td><td>&nbsp;</td><td valign="top"><a href="#PKCS-10-certificate-requests">PKCS 10 certificate requests</a></td></tr>
@@ -30097,7 +29949,6 @@ Previous: <a href="#Function-and-Data-Index" accesskey="p" rel="previous">Functi
 <tr><td></td><td valign="top"><a href="#index-PSK-authentication">PSK authentication</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Authentication-using-PSK">Authentication using PSK</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-psktool"><code>psktool</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#psktool-Invocation">psktool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-psktool-help">psktool help</a>:</td><td>&nbsp;</td><td valign="top"><a href="#psktool-Invocation">psktool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-psktool_002ddebug">psktool-debug</a>:</td><td>&nbsp;</td><td valign="top"><a href="#psktool-Invocation">psktool Invocation</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Concept-Index_cp_letter-R">R</a></th><td></td><td></td></tr>
 <tr><td></td><td valign="top"><a href="#index-random-numbers">random numbers</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Random-number-generation">Random number generation</a></td></tr>
@@ -30119,10 +29970,6 @@ Previous: <a href="#Function-and-Data-Index" accesskey="p" rel="previous">Functi
 <tr><td></td><td valign="top"><a href="#index-SRP-authentication">SRP authentication</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Authentication-using-SRP">Authentication using SRP</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-srptool"><code>srptool</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#srptool-Invocation">srptool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-srptool-help">srptool help</a>:</td><td>&nbsp;</td><td valign="top"><a href="#srptool-Invocation">srptool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-srptool_002dcreate_002dconf">srptool-create-conf</a>:</td><td>&nbsp;</td><td valign="top"><a href="#srptool-Invocation">srptool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-srptool_002ddebug">srptool-debug</a>:</td><td>&nbsp;</td><td valign="top"><a href="#srptool-Invocation">srptool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-srptool_002dpasswd_002dconf">srptool-passwd-conf</a>:</td><td>&nbsp;</td><td valign="top"><a href="#srptool-Invocation">srptool Invocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-srptool_002dverify">srptool-verify</a>:</td><td>&nbsp;</td><td valign="top"><a href="#srptool-Invocation">srptool Invocation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-SSH_002dstyle-authentication">SSH-style authentication</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Verifying-a-certificate-using-trust-on-first-use-authentication">Verifying a certificate using trust on first use authentication</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-SSL-2">SSL 2</a>:</td><td>&nbsp;</td><td valign="top"><a href="#On-SSL-2-and-older-protocols">On SSL 2 and older protocols</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-symmetric-cryptography">symmetric cryptography</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Symmetric-cryptography">Symmetric cryptography</a></td></tr>
index f95b8ce..00481df 100644 (file)
@@ -1,7 +1,8 @@
 This is gnutls.info, produced by makeinfo version 4.13.90 from
 gnutls.texi.
 
-This manual is last updated 10 May 2012 for version 3.0.21 of GnuTLS.
+This manual is last updated 2 September 2012 for version 3.0.30 of
+GnuTLS.
 
 Copyright (C) 2001-2012 Free Software Foundation, Inc.
 
@@ -28,1075 +29,1072 @@ END-INFO-DIR-ENTRY
 
 \1f
 Indirect:
-gnutls.info-1: 1232
-gnutls.info-2: 305342
-gnutls.info-3: 612235
-gnutls.info-4: 927418
+gnutls.info-1: 1237
+gnutls.info-2: 303204
+gnutls.info-3: 627718
+gnutls.info-4: 903417
 \1f
 Tag Table:
 (Indirect)
-Node: Top\7f1232
-Node: Preface\7f2353
-Node: Introduction to GnuTLS\7f3737
-Ref: Introduction to GnuTLS-Footnote-1\7f5401
-Ref: Introduction to GnuTLS-Footnote-2\7f5449
-Node: Downloading and installing\7f5500
-Node: Document overview\7f7706
-Node: Introduction to TLS\7f8707
-Ref: Introduction to TLS-Footnote-1\7f9853
-Node: TLS layers\7f10143
-Ref: fig:tls-layers\7f11102
-Node: The transport layer\7f11177
-Node: The TLS record protocol\7f11781
-Node: Encryption algorithms used in the record layer\7f13056
-Ref: tab:ciphers\7f13952
-Ref: tab:macs\7f15324
-Node: Compression algorithms used in the record layer\7f16015
-Ref: gnutls_compression_method_t\7f16959
-Node: Weaknesses and countermeasures\7f17256
-Ref: Weaknesses and countermeasures-Footnote-1\7f18284
-Node: On Record Padding\7f18362
-Node: The TLS Alert Protocol\7f19966
-Ref: The Alert Protocol\7f20166
-Ref: tab:alerts\7f21050
-Node: The TLS Handshake Protocol\7f23818
-Ref: The Handshake Protocol\7f24017
-Node: TLS Cipher Suites\7f24683
-Ref: TLS Cipher Suites-Footnote-1\7f25666
-Node: Authentication\7f25780
-Node: Client Authentication\7f26491
-Node: Resuming Sessions\7f26968
-Ref: resume\7f27127
-Node: TLS Extensions\7f27776
-Node: Maximum fragment length negotiation\7f28388
-Node: Server name indication\7f28910
-Ref: serverind\7f29110
-Node: Session tickets\7f29748
-Node: Safe renegotiation\7f30321
-Node: How to use TLS in application protocols\7f35203
-Node: Separate ports\7f35721
-Ref: Separate ports-Footnote-1\7f37136
-Node: Upward negotiation\7f37212
-Ref: Upward negotiation-Footnote-1\7f39892
-Node: On SSL 2 and older protocols\7f39920
-Node: Certificate authentication\7f41798
-Ref: tab:key-exchange\7f42366
-Node: X.509 certificates\7f44783
-Ref: fig:x509\7f45258
-Node: X.509 certificate structure\7f45841
-Ref: tab:x509\7f46235
-Ref: tab:x509-ext\7f48029
-Node: Importing an X.509 certificate\7f50668
-Node: X.509 distinguished names\7f51628
-Node: Verifying X.509 certificate paths\7f57290
-Ref: gnutls_certificate_status_t\7f62535
-Node: Verifying a certificate in the context of TLS session\7f63894
-Ref: gnutls_certificate_verify_flags\7f65209
-Node: Verifying a certificate using trust on first use authentication\7f67364
-Node: OpenPGP certificates\7f73188
-Ref: fig:openpgp\7f73983
-Ref: OpenPGP certificates-Footnote-1\7f78292
-Node: Digital signatures\7f78347
-Node: Shared-key and anonymous authentication\7f83538
-Node: SRP authentication\7f84064
-Node: Authentication using SRP\7f84323
-Node: srptool Invocation\7f87226
-Ref: srptool usage\7f88033
-Ref: srptool debug\7f90145
-Ref: srptool verify\7f90289
-Ref: srptool passwd-conf\7f90427
-Ref: srptool create-conf\7f90629
-Ref: srptool exit status\7f90876
-Ref: srptool See Also\7f91106
-Ref: srptool Examples\7f91221
-Node: PSK authentication\7f91863
-Node: Authentication using PSK\7f92155
-Node: psktool Invocation\7f93173
-Ref: psktool usage\7f93655
-Ref: psktool debug\7f95243
-Ref: psktool exit status\7f95387
-Ref: psktool See Also\7f95617
-Ref: psktool Examples\7f95719
-Node: Anonymous authentication\7f96178
-Node: More on certificate authentication\7f97164
-Node: PKCS 10 certificate requests\7f97963
-Ref: ex:crq\7f100754
-Node: PKIX certificate revocation lists\7f102835
-Ref: tab:crl\7f103926
-Node: OCSP certificate status checking\7f106982
-Node: Managing encrypted keys\7f114877
-Ref: gnutls_pkcs_encrypt_flags_t\7f116371
-Node: certtool Invocation\7f121701
-Ref: certtool usage\7f122285
-Ref: certtool debug\7f128087
-Ref: certtool verify-chain\7f128231
-Ref: certtool verify\7f128408
-Ref: certtool verify-crl\7f128726
-Ref: certtool get-dh-params\7f129026
-Ref: certtool load-privkey\7f129325
-Ref: certtool load-pubkey\7f129498
-Ref: certtool load-certificate\7f129668
-Ref: certtool load-ca-privkey\7f129849
-Ref: certtool load-ca-certificate\7f130053
-Ref: certtool to-p12\7f130265
-Ref: certtool hash\7f130565
-Ref: certtool inder\7f130756
-Ref: certtool inraw\7f131078
-Ref: certtool outder\7f131201
-Ref: certtool outraw\7f131349
-Ref: certtool sec-param\7f131477
-Ref: certtool pkcs-cipher\7f131698
-Ref: certtool exit status\7f131938
-Ref: certtool See Also\7f132170
-Ref: certtool Examples\7f132221
-Ref: certtool Files\7f136134
-Node: ocsptool Invocation\7f140470
-Ref: ocsptool usage\7f141008
-Ref: ocsptool debug\7f144387
-Ref: ocsptool ask\7f144531
-Ref: ocsptool exit status\7f144926
-Ref: ocsptool See Also\7f145158
-Ref: ocsptool Examples\7f145210
-Node: Smart cards and HSMs\7f150186
-Ref: fig:pkcs11-vision\7f151980
-Ref: Smart cards and HSMs-Footnote-1\7f152251
-Ref: Smart cards and HSMs-Footnote-2\7f152291
-Node: PKCS11 Initialization\7f152334
-Ref: PKCS11 Initialization-Footnote-1\7f154972
-Node: Reading objects\7f155015
-Node: Writing objects\7f159376
-Node: Using a PKCS11 token with TLS\7f161757
-Node: p11tool Invocation\7f162806
-Ref: p11tool usage\7f163435
-Ref: p11tool debug\7f167693
-Ref: p11tool write\7f167837
-Ref: p11tool generate-rsa\7f168012
-Ref: p11tool generate-dsa\7f168182
-Ref: p11tool generate-ecc\7f168352
-Ref: p11tool private\7f168522
-Ref: p11tool sec-param\7f168743
-Ref: p11tool inder\7f168988
-Ref: p11tool inraw\7f169128
-Ref: p11tool provider\7f169250
-Ref: p11tool exit status\7f169446
-Ref: p11tool See Also\7f169676
-Ref: p11tool Examples\7f169726
-Node: Abstract key types\7f170294
-Node: Abstract public keys\7f171858
-Node: Abstract private keys\7f174044
-Node: Operations\7f175641
-Node: How to use GnuTLS in applications\7f181297
-Node: Introduction to the library\7f181871
-Node: General idea\7f182154
-Ref: fig:gnutls-design\7f182928
-Ref: General idea-Footnote-1\7f184224
-Node: Error handling\7f184269
-Node: Common types\7f185839
-Node: Debugging and auditing\7f186548
-Node: Thread safety\7f188130
-Node: Callback functions\7f190601
-Node: Preparation\7f191445
-Node: Headers\7f191864
-Node: Initialization\7f192153
-Node: Version check\7f192806
-Node: Building the source\7f193343
-Node: Session initialization\7f195454
-Node: Associating the credentials\7f198740
-Ref: tab:key-exchange-cred\7f199485
-Node: Certificate credentials\7f200652
-Node: SRP credentials\7f208806
-Node: PSK credentials\7f213008
-Node: Anonymous credentials\7f216188
-Node: Setting up the transport layer\7f216829
-Node: Asynchronous operation\7f223771
-Node: DTLS sessions\7f227092
-Ref: DTLS sessions-Footnote-1\7f228792
-Node: TLS handshake\7f228869
-Node: Data transfer and termination\7f230983
-Node: Handling alerts\7f239551
-Node: Priority Strings\7f242921
-Ref: tab:prio-keywords\7f243504
-Ref: tab:prio-algorithms\7f247004
-Ref: tab:prio-special\7f248985
-Ref: Priority Strings-Footnote-1\7f254146
-Ref: Priority Strings-Footnote-2\7f254219
-Node: Advanced and other topics\7f254410
-Node: Session resumption\7f254806
-Node: Parameter generation\7f258693
-Node: Keying Material Exporters\7f261721
-Node: Channel Bindings\7f262787
-Node: Interoperability\7f264303
-Node: Compatibility with the OpenSSL library\7f265920
-Node: Using the cryptographic library\7f266655
-Node: Symmetric cryptography\7f267316
-Node: Hash and HMAC functions\7f268121
-Node: Random number generation\7f269027
-Ref: gnutls_rnd_level_t\7f269358
-Node: Selecting cryptographic key sizes\7f270048
-Ref: tab:key-sizes\7f270681
-Node: GnuTLS application examples\7f274313
-Ref: examples\7f274515
-Node: Client examples\7f274771
-Node: Simple client example with X.509 certificate support\7f275656
-Ref: ex:verify\7f275949
-Node: Simple client example with SSH-style certificate verification\7f281817
-Node: Simple client example with anonymous authentication\7f286818
-Node: Simple Datagram TLS client example\7f289800
-Node: Obtaining session information\7f293168
-Node: Using a callback to select the certificate to use\7f297213
-Node: Verifying a certificate\7f305342
-Ref: ex:verify2\7f305579
-Node: Client using a smart card with TLS\7f309934
-Ref: ex:pkcs11-client\7f310167
-Node: Client with Resume capability example\7f314542
-Ref: ex:resume-client\7f314817
-Node: Simple client example with SRP authentication\7f318687
-Node: Simple client example in C++\7f321986
-Node: Helper functions for TCP connections\7f324558
-Node: Helper functions for UDP connections\7f326018
-Node: Server examples\7f327707
-Node: Echo server with X.509 authentication\7f328171
-Node: Echo server with OpenPGP authentication\7f333602
-Node: Echo server with SRP authentication\7f338851
-Node: Echo server with anonymous authentication\7f344125
-Node: DTLS echo server with X.509 authentication\7f348908
-Node: OCSP example\7f360563
-Ref: Generate OCSP request\7f360729
-Node: Miscellaneous examples\7f369233
-Node: Checking for an alert\7f369519
-Node: X.509 certificate parsing example\7f370822
-Ref: ex:x509-info\7f371079
-Node: Listing the ciphersuites in a priority string\7f374345
-Node: Other included programs\7f376039
-Node: gnutls-cli Invocation\7f376596
-Ref: gnutls-cli usage\7f377156
-Ref: gnutls-cli debug\7f381634
-Ref: gnutls-cli tofu\7f381778
-Ref: gnutls-cli ocsp\7f382029
-Ref: gnutls-cli resume\7f382189
-Ref: gnutls-cli rehandshake\7f382335
-Ref: gnutls-cli starttls\7f382502
-Ref: gnutls-cli priority\7f382688
-Ref: gnutls-cli list\7f383034
-Ref: gnutls-cli exit status\7f383272
-Ref: gnutls-cli See Also\7f383508
-Ref: gnutls-cli Examples\7f383587
-Node: gnutls-serv Invocation\7f385345
-Ref: gnutls-serv usage\7f385820
-Ref: gnutls-serv debug\7f389792
-Ref: gnutls-serv priority\7f389936
-Ref: gnutls-serv list\7f390282
-Ref: gnutls-serv exit status\7f390520
-Ref: gnutls-serv See Also\7f390758
-Ref: gnutls-serv Examples\7f390838
-Node: gnutls-cli-debug Invocation\7f396265
-Ref: gnutls-cli-debug usage\7f397085
-Ref: gnutls-cli-debug debug\7f399114
-Ref: gnutls-cli-debug exit status\7f399258
-Ref: gnutls-cli-debug See Also\7f399506
-Ref: gnutls-cli-debug Examples\7f399591
-Node: Internal architecture of GnuTLS\7f402012
-Node: The TLS Protocol\7f402554
-Ref: fig:client-server\7f403030
-Node: TLS Handshake Protocol\7f403120
-Ref: fig:gnutls-handshake\7f403562
-Ref: fig:gnutls-handshake-sequence\7f404071
-Node: TLS Authentication Methods\7f404169
-Ref: TLS Authentication Methods-Footnote-1\7f406467
-Node: TLS Extension Handling\7f406533
-Node: Cryptographic Backend\7f417443
-Ref: fig:crypto-layers\7f418177
-Ref: Cryptographic Backend-Footnote-1\7f421887
-Ref: Cryptographic Backend-Footnote-2\7f421971
-Node: Upgrading from previous versions\7f422078
-Node: Support\7f425608
-Node: Getting help\7f425838
-Node: Commercial Support\7f426440
-Node: Bug Reports\7f427266
-Node: Contributing\7f428630
-Node: Error codes\7f430634
-Node: Supported ciphersuites\7f447732
-Ref: ciphersuites\7f447905
-Node: API reference\7f455147
-Node: Core TLS API\7f455509
-Ref: gnutls_alert_get\7f455736
-Ref: gnutls_alert_get_name\7f456360
-Ref: gnutls_alert_get_strname\7f456745
-Ref: gnutls_alert_send\7f457080
-Ref: gnutls_alert_send_appropriate\7f457963
-Ref: gnutls_anon_allocate_client_credentials\7f458714
-Ref: gnutls_anon_allocate_server_credentials\7f459173
-Ref: gnutls_anon_free_client_credentials\7f459624
-Ref: gnutls_anon_free_server_credentials\7f460000
-Ref: gnutls_anon_set_params_function\7f460368
-Ref: gnutls_anon_set_server_dh_params\7f460886
-Ref: gnutls_anon_set_server_params_function\7f461410
-Ref: gnutls_auth_client_get_type\7f461919
-Ref: gnutls_auth_get_type\7f462431
-Ref: gnutls_auth_server_get_type\7f463128
-Ref: gnutls_bye\7f463620
-Ref: gnutls_certificate_activation_time_peers\7f465226
-Ref: gnutls_certificate_allocate_credentials\7f465693
-Ref: gnutls_certificate_client_get_request_status\7f466169
-Ref: gnutls_certificate_expiration_time_peers\7f466592
-Ref: gnutls_certificate_free_ca_names\7f466996
-Ref: gnutls_certificate_free_cas\7f467670
-Ref: gnutls_certificate_free_credentials\7f468094
-Ref: gnutls_certificate_free_crls\7f468615
-Ref: gnutls_certificate_free_keys\7f468920
-Ref: gnutls_certificate_get_issuer\7f469357
-Ref: gnutls_certificate_get_ours\7f469995
-Ref: gnutls_certificate_get_peers\7f470528
-Ref: gnutls_certificate_send_x509_rdn_sequence\7f471398
-Ref: gnutls_certificate_server_set_request\7f472126
-Ref: gnutls_certificate_set_dh_params\7f472779
-Ref: gnutls_certificate_set_params_function\7f473540
-Ref: gnutls_certificate_set_retrieve_function\7f474089
-Ref: gnutls_certificate_set_verify_flags\7f475967
-Ref: gnutls_certificate_set_verify_function\7f476426
-Ref: gnutls_certificate_set_verify_limits\7f477495
-Ref: gnutls_certificate_set_x509_crl\7f478181
-Ref: gnutls_certificate_set_x509_crl_file\7f479014
-Ref: gnutls_certificate_set_x509_crl_mem\7f479800
-Ref: gnutls_certificate_set_x509_key\7f480582
-Ref: gnutls_certificate_set_x509_key_file\7f481592
-Ref: gnutls_certificate_set_x509_key_mem\7f482814
-Ref: gnutls_certificate_set_x509_simple_pkcs12_file\7f484085
-Ref: gnutls_certificate_set_x509_simple_pkcs12_mem\7f485613
-Ref: gnutls_certificate_set_x509_system_trust\7f487179
-Ref: gnutls_certificate_set_x509_trust\7f487751
-Ref: gnutls_certificate_set_x509_trust_file\7f488738
-Ref: gnutls_certificate_set_x509_trust_mem\7f489870
-Ref: gnutls_certificate_type_get\7f490818
-Ref: gnutls_certificate_type_get_id\7f491220
-Ref: gnutls_certificate_type_get_name\7f491617
-Ref: gnutls_certificate_type_list\7f492000
-Ref: gnutls_certificate_verify_peers2\7f492464
-Ref: gnutls_check_version\7f493473
-Ref: gnutls_cipher_get\7f494082
-Ref: gnutls_cipher_get_id\7f494388
-Ref: gnutls_cipher_get_key_size\7f494770
-Ref: gnutls_cipher_get_name\7f495097
-Ref: gnutls_cipher_list\7f495444
-Ref: gnutls_cipher_suite_get_name\7f496004
-Ref: gnutls_cipher_suite_info\7f496622
-Ref: gnutls_compression_get\7f497801
-Ref: gnutls_compression_get_id\7f498154
-Ref: gnutls_compression_get_name\7f498518
-Ref: gnutls_compression_list\7f498900
-Ref: gnutls_credentials_clear\7f499218
-Ref: gnutls_credentials_set\7f499451
-Ref: gnutls_db_check_entry\7f500824
-Ref: gnutls_db_get_ptr\7f501332
-Ref: gnutls_db_remove_session\7f501649
-Ref: gnutls_db_set_cache_expiration\7f502191
-Ref: gnutls_db_set_ptr\7f502537
-Ref: gnutls_db_set_remove_function\7f502877
-Ref: gnutls_db_set_retrieve_function\7f503385
-Ref: gnutls_db_set_store_function\7f504076
-Ref: gnutls_deinit\7f504548
-Ref: gnutls_dh_get_group\7f504892
-Ref: gnutls_dh_get_peers_public_bits\7f505623
-Ref: gnutls_dh_get_prime_bits\7f506067
-Ref: gnutls_dh_get_pubkey\7f506707
-Ref: gnutls_dh_get_secret_bits\7f507299
-Ref: gnutls_dh_params_cpy\7f507731
-Ref: gnutls_dh_params_deinit\7f508189
-Ref: gnutls_dh_params_export_pkcs3\7f508462
-Ref: gnutls_dh_params_export_raw\7f509481
-Ref: gnutls_dh_params_generate2\7f510234
-Ref: gnutls_dh_params_import_pkcs3\7f511185
-Ref: gnutls_dh_params_import_raw\7f511960
-Ref: gnutls_dh_params_init\7f512609
-Ref: gnutls_dh_set_prime_bits\7f512978
-Ref: gnutls_ecc_curve_get\7f513798
-Ref: gnutls_ecc_curve_get_name\7f514191
-Ref: gnutls_ecc_curve_get_size\7f514527
-Ref: gnutls_ecc_curve_list\7f514773
-Ref: gnutls_error_is_fatal\7f515096
-Ref: gnutls_error_to_alert\7f515856
-Ref: gnutls_fingerprint\7f516533
-Ref: gnutls_global_deinit\7f517513
-Ref: gnutls_global_init\7f517831
-Ref: gnutls_global_set_audit_log_function\7f519183
-Ref: gnutls_global_set_log_function\7f519840
-Ref: gnutls_global_set_log_level\7f520348
-Ref: gnutls_global_set_mem_functions\7f520851
-Ref: gnutls_global_set_mutex\7f522087
-Ref: gnutls_global_set_time_function\7f522928
-Ref: gnutls_handshake\7f523339
-Ref: gnutls_handshake_get_last_in\7f524671
-Ref: gnutls_handshake_get_last_out\7f525301
-Ref: gnutls_handshake_set_max_packet_length\7f525946
-Ref: gnutls_handshake_set_post_client_hello_function\7f526637
-Ref: gnutls_handshake_set_private_extensions\7f527725
-Ref: gnutls_hex2bin\7f528383
-Ref: gnutls_hex_decode\7f528951
-Ref: gnutls_hex_encode\7f529526
-Ref: gnutls_init\7f530040
-Ref: gnutls_key_generate\7f530923
-Ref: gnutls_kx_get\7f531342
-Ref: gnutls_kx_get_id\7f531673
-Ref: gnutls_kx_get_name\7f532017
-Ref: gnutls_kx_list\7f532362
-Ref: gnutls_mac_get\7f532686
-Ref: gnutls_mac_get_id\7f532992
-Ref: gnutls_mac_get_key_size\7f533406
-Ref: gnutls_mac_get_name\7f533719
-Ref: gnutls_mac_list\7f534038
-Ref: gnutls_openpgp_send_cert\7f534597
-Ref: gnutls_pem_base64_decode\7f535172
-Ref: gnutls_pem_base64_decode_alloc\7f536035
-Ref: gnutls_pem_base64_encode\7f536832
-Ref: gnutls_pem_base64_encode_alloc\7f537647
-Ref: gnutls_perror\7f538353
-Ref: gnutls_pk_algorithm_get_name\7f538649
-Ref: gnutls_pk_bits_to_sec_param\7f539005
-Ref: gnutls_pk_get_id\7f539479
-Ref: gnutls_pk_get_name\7f539997
-Ref: gnutls_pk_list\7f540359
-Ref: gnutls_pk_to_sign\7f540692
-Ref: gnutls_prf\7f541103
-Ref: gnutls_prf_raw\7f542716
-Ref: gnutls_priority_certificate_type_list\7f544348
-Ref: gnutls_priority_compression_list\7f544796
-Ref: gnutls_priority_deinit\7f545210
-Ref: gnutls_priority_ecc_curve_list\7f545460
-Ref: gnutls_priority_get_cipher_suite_index\7f545895
-Ref: gnutls_priority_init\7f546785
-Ref: gnutls_priority_protocol_list\7f549287
-Ref: gnutls_priority_set\7f549695
-Ref: gnutls_priority_set_direct\7f550127
-Ref: gnutls_priority_sign_list\7f550927
-Ref: gnutls_protocol_get_id\7f551339
-Ref: gnutls_protocol_get_name\7f551655
-Ref: gnutls_protocol_get_version\7f552014
-Ref: gnutls_protocol_list\7f552317
-Ref: gnutls_psk_allocate_client_credentials\7f552687
-Ref: gnutls_psk_allocate_server_credentials\7f553182
-Ref: gnutls_psk_client_get_hint\7f553653
-Ref: gnutls_psk_free_client_credentials\7f554136
-Ref: gnutls_psk_free_server_credentials\7f554507
-Ref: gnutls_psk_server_get_username\7f554870
-Ref: gnutls_psk_set_client_credentials\7f555236
-Ref: gnutls_psk_set_client_credentials_function\7f556228
-Ref: gnutls_psk_set_params_function\7f557147
-Ref: gnutls_psk_set_server_credentials_file\7f557669
-Ref: gnutls_psk_set_server_credentials_function\7f558316
-Ref: gnutls_psk_set_server_credentials_hint\7f559265
-Ref: gnutls_psk_set_server_dh_params\7f559899
-Ref: gnutls_psk_set_server_params_function\7f560426
-Ref: gnutls_random_art\7f560909
-Ref: gnutls_record_check_pending\7f561642
-Ref: gnutls_record_disable_padding\7f562081
-Ref: gnutls_record_get_direction\7f562673
-Ref: gnutls_record_get_max_size\7f563585
-Ref: gnutls_record_recv\7f563947
-Ref: gnutls_record_recv_seq\7f565450
-Ref: gnutls_record_send\7f566441
-Ref: gnutls_record_set_max_size\7f567927
-Ref: gnutls_rehandshake\7f568828
-Ref: gnutls_safe_renegotiation_status\7f570112
-Ref: gnutls_sec_param_get_name\7f570527
-Ref: gnutls_sec_param_to_pk_bits\7f570901
-Ref: gnutls_server_name_get\7f571547
-Ref: gnutls_server_name_set\7f572907
-Ref: gnutls_session_channel_binding\7f573895
-Ref: gnutls_session_enable_compatibility_mode\7f574618
-Ref: gnutls_session_get_data\7f575151
-Ref: gnutls_session_get_data2\7f576034
-Ref: gnutls_session_get_id\7f576859
-Ref: gnutls_session_get_ptr\7f577735
-Ref: gnutls_session_get_random\7f578135
-Ref: gnutls_session_is_resumed\7f578736
-Ref: gnutls_session_resumption_requested\7f579072
-Ref: gnutls_session_set_data\7f579459
-Ref: gnutls_session_set_premaster\7f580319
-Ref: gnutls_session_set_ptr\7f581408
-Ref: gnutls_session_ticket_enable_client\7f581826
-Ref: gnutls_session_ticket_enable_server\7f582240
-Ref: gnutls_session_ticket_key_generate\7f582804
-Ref: gnutls_set_default_priority\7f583234
-Ref: gnutls_sign_algorithm_get_requested\7f584026
-Ref: gnutls_sign_get_id\7f585034
-Ref: gnutls_sign_get_name\7f585393
-Ref: gnutls_sign_list\7f585719
-Ref: gnutls_srp_allocate_client_credentials\7f586049
-Ref: gnutls_srp_allocate_server_credentials\7f586525
-Ref: gnutls_srp_base64_decode\7f586973
-Ref: gnutls_srp_base64_decode_alloc\7f587688
-Ref: gnutls_srp_base64_encode\7f588361
-Ref: gnutls_srp_base64_encode_alloc\7f589172
-Ref: gnutls_srp_free_client_credentials\7f589908
-Ref: gnutls_srp_free_server_credentials\7f590279
-Ref: gnutls_srp_server_get_username\7f590642
-Ref: gnutls_srp_set_client_credentials\7f591096
-Ref: gnutls_srp_set_client_credentials_function\7f591852
-Ref: gnutls_srp_set_prime_bits\7f592956
-Ref: gnutls_srp_set_server_credentials_file\7f593646
-Ref: gnutls_srp_set_server_credentials_function\7f594387
-Ref: gnutls_srp_verifier\7f595761
-Ref: gnutls_store_commitment\7f596695
-Ref: gnutls_store_pubkey\7f597953
-Ref: gnutls_strerror\7f599115
-Ref: gnutls_strerror_name\7f599600
-Ref: gnutls_supplemental_get_name\7f600069
-Ref: gnutls_tdb_deinit\7f600477
-Ref: gnutls_tdb_init\7f600692
-Ref: gnutls_tdb_set_store_commitment_func\7f601042
-Ref: gnutls_tdb_set_store_func\7f601636
-Ref: gnutls_tdb_set_verify_func\7f602133
-Ref: gnutls_transport_get_ptr\7f602619
-Ref: gnutls_transport_get_ptr2\7f603040
-Ref: gnutls_transport_set_errno\7f603579
-Ref: gnutls_transport_set_errno_function\7f604437
-Ref: gnutls_transport_set_ptr\7f604979
-Ref: gnutls_transport_set_ptr2\7f605397
-Ref: gnutls_transport_set_pull_function\7f606046
-Ref: gnutls_transport_set_pull_timeout_function\7f606831
-Ref: gnutls_transport_set_push_function\7f607721
-Ref: gnutls_transport_set_vec_push_function\7f608571
-Ref: gnutls_verify_stored_pubkey\7f609280
-Node: Datagram TLS API\7f612235
-Ref: gnutls_dtls_cookie_send\7f612511
-Ref: gnutls_dtls_cookie_verify\7f613597
-Ref: gnutls_dtls_get_data_mtu\7f614465
-Ref: gnutls_dtls_get_mtu\7f614869
-Ref: gnutls_dtls_get_timeout\7f615317
-Ref: gnutls_dtls_prestate_set\7f615865
-Ref: gnutls_dtls_set_data_mtu\7f616271
-Ref: gnutls_dtls_set_mtu\7f617133
-Ref: gnutls_dtls_set_timeouts\7f617744
-Ref: gnutls_record_get_discarded\7f618759
-Node: X509 certificate API\7f619038
-Ref: gnutls_pkcs7_deinit\7f619357
-Ref: gnutls_pkcs7_delete_crl\7f619570
-Ref: gnutls_pkcs7_delete_crt\7f620028
-Ref: gnutls_pkcs7_export\7f620501
-Ref: gnutls_pkcs7_get_crl_count\7f621424
-Ref: gnutls_pkcs7_get_crl_raw\7f621798
-Ref: gnutls_pkcs7_get_crt_count\7f622599
-Ref: gnutls_pkcs7_get_crt_raw\7f622983
-Ref: gnutls_pkcs7_import\7f623871
-Ref: gnutls_pkcs7_init\7f624497
-Ref: gnutls_pkcs7_set_crl\7f624917
-Ref: gnutls_pkcs7_set_crl_raw\7f625347
-Ref: gnutls_pkcs7_set_crt\7f625766
-Ref: gnutls_pkcs7_set_crt_raw\7f626279
-Ref: gnutls_x509_crl_check_issuer\7f626743
-Ref: gnutls_x509_crl_deinit\7f627289
-Ref: gnutls_x509_crl_export\7f627500
-Ref: gnutls_x509_crl_get_authority_key_gn_serial\7f628467
-Ref: gnutls_x509_crl_get_authority_key_id\7f629784
-Ref: gnutls_x509_crl_get_crt_count\7f630851
-Ref: gnutls_x509_crl_get_crt_serial\7f631214
-Ref: gnutls_x509_crl_get_dn_oid\7f631991
-Ref: gnutls_x509_crl_get_extension_data\7f632812
-Ref: gnutls_x509_crl_get_extension_info\7f633927
-Ref: gnutls_x509_crl_get_extension_oid\7f635205
-Ref: gnutls_x509_crl_get_issuer_dn\7f636071
-Ref: gnutls_x509_crl_get_issuer_dn_by_oid\7f636959
-Ref: gnutls_x509_crl_get_next_update\7f638469
-Ref: gnutls_x509_crl_get_number\7f638908
-Ref: gnutls_x509_crl_get_raw_issuer_dn\7f639637
-Ref: gnutls_x509_crl_get_signature\7f640096
-Ref: gnutls_x509_crl_get_signature_algorithm\7f640690
-Ref: gnutls_x509_crl_get_this_update\7f641132
-Ref: gnutls_x509_crl_get_version\7f641462
-Ref: gnutls_x509_crl_import\7f641775
-Ref: gnutls_x509_crl_init\7f642404
-Ref: gnutls_x509_crl_list_import\7f642977
-Ref: gnutls_x509_crl_list_import2\7f643969
-Ref: gnutls_x509_crl_print\7f644877
-Ref: gnutls_x509_crl_set_authority_key_id\7f645529
-Ref: gnutls_x509_crl_set_crt\7f646182
-Ref: gnutls_x509_crl_set_crt_serial\7f646760
-Ref: gnutls_x509_crl_set_next_update\7f647397
-Ref: gnutls_x509_crl_set_number\7f647809
-Ref: gnutls_x509_crl_set_this_update\7f648386
-Ref: gnutls_x509_crl_set_version\7f648795
-Ref: gnutls_x509_crl_sign2\7f649345
-Ref: gnutls_x509_crl_verify\7f650234
-Ref: gnutls_x509_crq_deinit\7f651108
-Ref: gnutls_x509_crq_export\7f651349
-Ref: gnutls_x509_crq_get_attribute_by_oid\7f652377
-Ref: gnutls_x509_crq_get_attribute_data\7f653254
-Ref: gnutls_x509_crq_get_attribute_info\7f654364
-Ref: gnutls_x509_crq_get_basic_constraints\7f655559
-Ref: gnutls_x509_crq_get_challenge_password\7f656816
-Ref: gnutls_x509_crq_get_dn\7f657437
-Ref: gnutls_x509_crq_get_dn_by_oid\7f658280
-Ref: gnutls_x509_crq_get_dn_oid\7f659745
-Ref: gnutls_x509_crq_get_extension_by_oid\7f660538
-Ref: gnutls_x509_crq_get_extension_data\7f661691
-Ref: gnutls_x509_crq_get_extension_info\7f662817
-Ref: gnutls_x509_crq_get_key_id\7f664090
-Ref: gnutls_x509_crq_get_key_purpose_oid\7f665121
-Ref: gnutls_x509_crq_get_key_rsa_raw\7f666147
-Ref: gnutls_x509_crq_get_key_usage\7f666771
-Ref: gnutls_x509_crq_get_pk_algorithm\7f667861
-Ref: gnutls_x509_crq_get_private_key_usage_period\7f668623
-Ref: gnutls_x509_crq_get_subject_alt_name\7f669304
-Ref: gnutls_x509_crq_get_subject_alt_othername_oid\7f670866
-Ref: gnutls_x509_crq_get_version\7f672343
-Ref: gnutls_x509_crq_import\7f672694
-Ref: gnutls_x509_crq_init\7f673386
-Ref: gnutls_x509_crq_print\7f673726
-Ref: gnutls_x509_crq_set_attribute_by_oid\7f674385
-Ref: gnutls_x509_crq_set_basic_constraints\7f675095
-Ref: gnutls_x509_crq_set_challenge_password\7f675839
-Ref: gnutls_x509_crq_set_dn_by_oid\7f676309
-Ref: gnutls_x509_crq_set_key\7f677418
-Ref: gnutls_x509_crq_set_key_purpose_oid\7f677886
-Ref: gnutls_x509_crq_set_key_rsa_raw\7f678665
-Ref: gnutls_x509_crq_set_key_usage\7f679246
-Ref: gnutls_x509_crq_set_private_key_usage_period\7f679750
-Ref: gnutls_x509_crq_set_subject_alt_name\7f680279
-Ref: gnutls_x509_crq_set_version\7f681077
-Ref: gnutls_x509_crq_sign2\7f681569
-Ref: gnutls_x509_crq_verify\7f682550
-Ref: gnutls_x509_crt_check_hostname\7f683149
-Ref: gnutls_x509_crt_check_issuer\7f683798
-Ref: gnutls_x509_crt_check_revocation\7f684350
-Ref: gnutls_x509_crt_cpy_crl_dist_points\7f685001
-Ref: gnutls_x509_crt_deinit\7f685590
-Ref: gnutls_x509_crt_export\7f685813
-Ref: gnutls_x509_crt_get_activation_time\7f686748
-Ref: gnutls_x509_crt_get_authority_info_access\7f687131
-Ref: gnutls_x509_crt_get_authority_key_gn_serial\7f690524
-Ref: gnutls_x509_crt_get_authority_key_id\7f691968
-Ref: gnutls_x509_crt_get_basic_constraints\7f693103
-Ref: gnutls_x509_crt_get_ca_status\7f694321
-Ref: gnutls_x509_crt_get_crl_dist_points\7f695207
-Ref: gnutls_x509_crt_get_dn\7f696939
-Ref: gnutls_x509_crt_get_dn_by_oid\7f697803
-Ref: gnutls_x509_crt_get_dn_oid\7f699481
-Ref: gnutls_x509_crt_get_expiration_time\7f700420
-Ref: gnutls_x509_crt_get_extension_by_oid\7f700791
-Ref: gnutls_x509_crt_get_extension_data\7f701911
-Ref: gnutls_x509_crt_get_extension_info\7f703009
-Ref: gnutls_x509_crt_get_extension_oid\7f704370
-Ref: gnutls_x509_crt_get_fingerprint\7f705333
-Ref: gnutls_x509_crt_get_issuer\7f706128
-Ref: gnutls_x509_crt_get_issuer_alt_name\7f706768
-Ref: gnutls_x509_crt_get_issuer_alt_name2\7f708572
-Ref: gnutls_x509_crt_get_issuer_alt_othername_oid\7f710158
-Ref: gnutls_x509_crt_get_issuer_dn\7f711812
-Ref: gnutls_x509_crt_get_issuer_dn_by_oid\7f712702
-Ref: gnutls_x509_crt_get_issuer_dn_oid\7f714397
-Ref: gnutls_x509_crt_get_issuer_unique_id\7f715342
-Ref: gnutls_x509_crt_get_key_id\7f716159
-Ref: gnutls_x509_crt_get_key_purpose_oid\7f717146
-Ref: gnutls_x509_crt_get_key_usage\7f718307
-Ref: gnutls_x509_crt_get_pk_algorithm\7f719378
-Ref: gnutls_x509_crt_get_pk_dsa_raw\7f720099
-Ref: gnutls_x509_crt_get_pk_rsa_raw\7f720767
-Ref: gnutls_x509_crt_get_private_key_usage_period\7f721381
-Ref: gnutls_x509_crt_get_proxy\7f722136
-Ref: gnutls_x509_crt_get_raw_dn\7f723161
-Ref: gnutls_x509_crt_get_raw_issuer_dn\7f723685
-Ref: gnutls_x509_crt_get_serial\7f724195
-Ref: gnutls_x509_crt_get_signature\7f724940
-Ref: gnutls_x509_crt_get_signature_algorithm\7f725546
-Ref: gnutls_x509_crt_get_subject\7f726019
-Ref: gnutls_x509_crt_get_subject_alt_name\7f726664
-Ref: gnutls_x509_crt_get_subject_alt_name2\7f728427
-Ref: gnutls_x509_crt_get_subject_alt_othername_oid\7f729996
-Ref: gnutls_x509_crt_get_subject_key_id\7f731641
-Ref: gnutls_x509_crt_get_subject_unique_id\7f732477
-Ref: gnutls_x509_crt_get_version\7f733276
-Ref: gnutls_x509_crt_import\7f733608
-Ref: gnutls_x509_crt_init\7f734302
-Ref: gnutls_x509_crt_list_import\7f734641
-Ref: gnutls_x509_crt_list_import2\7f736005
-Ref: gnutls_x509_crt_list_verify\7f736957
-Ref: gnutls_x509_crt_print\7f738628
-Ref: gnutls_x509_crt_set_activation_time\7f739523
-Ref: gnutls_x509_crt_set_authority_info_access\7f739990
-Ref: gnutls_x509_crt_set_authority_key_id\7f740885
-Ref: gnutls_x509_crt_set_basic_constraints\7f741467
-Ref: gnutls_x509_crt_set_ca_status\7f742166
-Ref: gnutls_x509_crt_set_crl_dist_points\7f742764
-Ref: gnutls_x509_crt_set_crl_dist_points2\7f743416
-Ref: gnutls_x509_crt_set_crq\7f744115
-Ref: gnutls_x509_crt_set_crq_extensions\7f744672
-Ref: gnutls_x509_crt_set_dn_by_oid\7f745148
-Ref: gnutls_x509_crt_set_expiration_time\7f746265
-Ref: gnutls_x509_crt_set_extension_by_oid\7f746704
-Ref: gnutls_x509_crt_set_issuer_dn_by_oid\7f747500
-Ref: gnutls_x509_crt_set_key\7f748753
-Ref: gnutls_x509_crt_set_key_purpose_oid\7f749260
-Ref: gnutls_x509_crt_set_key_usage\7f750028
-Ref: gnutls_x509_crt_set_private_key_usage_period\7f750503
-Ref: gnutls_x509_crt_set_proxy\7f751010
-Ref: gnutls_x509_crt_set_proxy_dn\7f751824
-Ref: gnutls_x509_crt_set_serial\7f752848
-Ref: gnutls_x509_crt_set_subject_alternative_name\7f753522
-Ref: gnutls_x509_crt_set_subject_alt_name\7f754350
-Ref: gnutls_x509_crt_set_subject_key_id\7f755152
-Ref: gnutls_x509_crt_set_version\7f755644
-Ref: gnutls_x509_crt_sign\7f756467
-Ref: gnutls_x509_crt_sign2\7f757022
-Ref: gnutls_x509_crt_verify\7f757890
-Ref: gnutls_x509_dn_deinit\7f758697
-Ref: gnutls_x509_dn_export\7f758959
-Ref: gnutls_x509_dn_get_rdn_ava\7f759861
-Ref: gnutls_x509_dn_import\7f760594
-Ref: gnutls_x509_dn_init\7f761220
-Ref: gnutls_x509_dn_oid_known\7f761646
-Ref: gnutls_x509_dn_oid_name\7f762315
-Ref: gnutls_x509_privkey_cpy\7f762848
-Ref: gnutls_x509_privkey_deinit\7f763318
-Ref: gnutls_x509_privkey_export\7f763565
-Ref: gnutls_x509_privkey_export_dsa_raw\7f764644
-Ref: gnutls_x509_privkey_export_ecc_raw\7f765420
-Ref: gnutls_x509_privkey_export_pkcs8\7f766203
-Ref: gnutls_x509_privkey_export_rsa_raw\7f767708
-Ref: gnutls_x509_privkey_export_rsa_raw2\7f768605
-Ref: gnutls_x509_privkey_fix\7f769627
-Ref: gnutls_x509_privkey_generate\7f770020
-Ref: gnutls_x509_privkey_get_key_id\7f770769
-Ref: gnutls_x509_privkey_get_pk_algorithm\7f771760
-Ref: gnutls_x509_privkey_import\7f772171
-Ref: gnutls_x509_privkey_import_dsa_raw\7f772882
-Ref: gnutls_x509_privkey_import_ecc_raw\7f773608
-Ref: gnutls_x509_privkey_import_pkcs8\7f774317
-Ref: gnutls_x509_privkey_import_rsa_raw\7f775630
-Ref: gnutls_x509_privkey_import_rsa_raw2\7f776489
-Ref: gnutls_x509_privkey_init\7f777457
-Ref: gnutls_x509_privkey_sec_param\7f777800
-Ref: gnutls_x509_privkey_verify_params\7f778237
-Ref: gnutls_x509_rdn_get\7f778594
-Ref: gnutls_x509_rdn_get_by_oid\7f779304
-Ref: gnutls_x509_rdn_get_oid\7f780286
-Ref: gnutls_x509_trust_list_add_cas\7f781046
-Ref: gnutls_x509_trust_list_add_crls\7f781665
-Ref: gnutls_x509_trust_list_add_named_crt\7f782650
-Ref: gnutls_x509_trust_list_add_system_trust\7f783765
-Ref: gnutls_x509_trust_list_add_trust_file\7f784341
-Ref: gnutls_x509_trust_list_add_trust_mem\7f785213
-Ref: gnutls_x509_trust_list_deinit\7f785948
-Ref: gnutls_x509_trust_list_get_issuer\7f786349
-Ref: gnutls_x509_trust_list_init\7f786978
-Ref: gnutls_x509_trust_list_verify_crt\7f787471
-Ref: gnutls_x509_trust_list_verify_named_crt\7f788458
-Node: OCSP API\7f789499
-Ref: gnutls_ocsp_req_add_cert\7f789793
-Ref: gnutls_ocsp_req_add_cert_id\7f790758
-Ref: gnutls_ocsp_req_deinit\7f792083
-Ref: gnutls_ocsp_req_export\7f792305
-Ref: gnutls_ocsp_req_get_cert_id\7f792724
-Ref: gnutls_ocsp_req_get_extension\7f794315
-Ref: gnutls_ocsp_req_get_nonce\7f795646
-Ref: gnutls_ocsp_req_get_version\7f796299
-Ref: gnutls_ocsp_req_import\7f796675
-Ref: gnutls_ocsp_req_init\7f797176
-Ref: gnutls_ocsp_req_print\7f797496
-Ref: gnutls_ocsp_req_randomize_nonce\7f798226
-Ref: gnutls_ocsp_req_set_extension\7f798664
-Ref: gnutls_ocsp_req_set_nonce\7f799353
-Ref: gnutls_ocsp_resp_deinit\7f799939
-Ref: gnutls_ocsp_resp_export\7f800168
-Ref: gnutls_ocsp_resp_get_certs\7f800592
-Ref: gnutls_ocsp_resp_get_extension\7f801716
-Ref: gnutls_ocsp_resp_get_nonce\7f803055
-Ref: gnutls_ocsp_resp_get_produced\7f803720
-Ref: gnutls_ocsp_resp_get_responder\7f804066
-Ref: gnutls_ocsp_resp_get_response\7f804816
-Ref: gnutls_ocsp_resp_get_signature\7f805943
-Ref: gnutls_ocsp_resp_get_signature_algorithm\7f806431
-Ref: gnutls_ocsp_resp_get_single\7f806908
-Ref: gnutls_ocsp_resp_get_status\7f809650
-Ref: gnutls_ocsp_resp_get_version\7f810068
-Ref: gnutls_ocsp_resp_import\7f810465
-Ref: gnutls_ocsp_resp_init\7f811032
-Ref: gnutls_ocsp_resp_print\7f811359
-Ref: gnutls_ocsp_resp_verify\7f812079
-Ref: gnutls_ocsp_resp_verify_direct\7f813671
-Node: OpenPGP API\7f814783
-Ref: gnutls_certificate_set_openpgp_key\7f815103
-Ref: gnutls_certificate_set_openpgp_key_file\7f816034
-Ref: gnutls_certificate_set_openpgp_key_file2\7f816778
-Ref: gnutls_certificate_set_openpgp_key_mem\7f817785
-Ref: gnutls_certificate_set_openpgp_key_mem2\7f818542
-Ref: gnutls_certificate_set_openpgp_keyring_file\7f819566
-Ref: gnutls_certificate_set_openpgp_keyring_mem\7f820286
-Ref: gnutls_openpgp_crt_check_hostname\7f821046
-Ref: gnutls_openpgp_crt_deinit\7f821612
-Ref: gnutls_openpgp_crt_export\7f821835
-Ref: gnutls_openpgp_crt_get_auth_subkey\7f822600
-Ref: gnutls_openpgp_crt_get_creation_time\7f823553
-Ref: gnutls_openpgp_crt_get_expiration_time\7f823884
-Ref: gnutls_openpgp_crt_get_fingerprint\7f824265
-Ref: gnutls_openpgp_crt_get_key_id\7f824824
-Ref: gnutls_openpgp_crt_get_key_usage\7f825212
-Ref: gnutls_openpgp_crt_get_name\7f825774
-Ref: gnutls_openpgp_crt_get_pk_algorithm\7f826504
-Ref: gnutls_openpgp_crt_get_pk_dsa_raw\7f827222
-Ref: gnutls_openpgp_crt_get_pk_rsa_raw\7f827923
-Ref: gnutls_openpgp_crt_get_preferred_key_id\7f828564
-Ref: gnutls_openpgp_crt_get_revoked_status\7f829032
-Ref: gnutls_openpgp_crt_get_subkey_count\7f829406
-Ref: gnutls_openpgp_crt_get_subkey_creation_time\7f829817
-Ref: gnutls_openpgp_crt_get_subkey_expiration_time\7f830243
-Ref: gnutls_openpgp_crt_get_subkey_fingerprint\7f830715
-Ref: gnutls_openpgp_crt_get_subkey_id\7f831376
-Ref: gnutls_openpgp_crt_get_subkey_idx\7f831800
-Ref: gnutls_openpgp_crt_get_subkey_pk_algorithm\7f832214
-Ref: gnutls_openpgp_crt_get_subkey_pk_dsa_raw\7f833055
-Ref: gnutls_openpgp_crt_get_subkey_pk_rsa_raw\7f833826
-Ref: gnutls_openpgp_crt_get_subkey_revoked_status\7f834533
-Ref: gnutls_openpgp_crt_get_subkey_usage\7f835011
-Ref: gnutls_openpgp_crt_get_version\7f835693
-Ref: gnutls_openpgp_crt_import\7f836031
-Ref: gnutls_openpgp_crt_init\7f836599
-Ref: gnutls_openpgp_crt_print\7f836892
-Ref: gnutls_openpgp_crt_set_preferred_key_id\7f837564
-Ref: gnutls_openpgp_crt_verify_ring\7f838107
-Ref: gnutls_openpgp_crt_verify_self\7f838846
-Ref: gnutls_openpgp_keyring_check_id\7f839440
-Ref: gnutls_openpgp_keyring_deinit\7f839948
-Ref: gnutls_openpgp_keyring_get_crt\7f840211
-Ref: gnutls_openpgp_keyring_get_crt_count\7f840878
-Ref: gnutls_openpgp_keyring_import\7f841253
-Ref: gnutls_openpgp_keyring_init\7f841875
-Ref: gnutls_openpgp_privkey_deinit\7f842200
-Ref: gnutls_openpgp_privkey_export\7f842449
-Ref: gnutls_openpgp_privkey_export_dsa_raw\7f843431
-Ref: gnutls_openpgp_privkey_export_rsa_raw\7f844206
-Ref: gnutls_openpgp_privkey_export_subkey_dsa_raw\7f845112
-Ref: gnutls_openpgp_privkey_export_subkey_rsa_raw\7f845957
-Ref: gnutls_openpgp_privkey_get_fingerprint\7f846907
-Ref: gnutls_openpgp_privkey_get_key_id\7f847511
-Ref: gnutls_openpgp_privkey_get_pk_algorithm\7f847914
-Ref: gnutls_openpgp_privkey_get_preferred_key_id\7f848695
-Ref: gnutls_openpgp_privkey_get_revoked_status\7f849197
-Ref: gnutls_openpgp_privkey_get_subkey_count\7f849633
-Ref: gnutls_openpgp_privkey_get_subkey_creation_time\7f850060
-Ref: gnutls_openpgp_privkey_get_subkey_fingerprint\7f850491
-Ref: gnutls_openpgp_privkey_get_subkey_id\7f851166
-Ref: gnutls_openpgp_privkey_get_subkey_idx\7f851643
-Ref: gnutls_openpgp_privkey_get_subkey_pk_algorithm\7f852085
-Ref: gnutls_openpgp_privkey_get_subkey_revoked_status\7f852954
-Ref: gnutls_openpgp_privkey_import\7f853426
-Ref: gnutls_openpgp_privkey_init\7f854137
-Ref: gnutls_openpgp_privkey_sec_param\7f854464
-Ref: gnutls_openpgp_privkey_set_preferred_key_id\7f854927
-Ref: gnutls_openpgp_set_recv_key_function\7f855447
-Node: PKCS 12 API\7f855830
-Ref: gnutls_pkcs12_bag_decrypt\7f856123
-Ref: gnutls_pkcs12_bag_deinit\7f856555
-Ref: gnutls_pkcs12_bag_encrypt\7f856783
-Ref: gnutls_pkcs12_bag_get_count\7f857288
-Ref: gnutls_pkcs12_bag_get_data\7f857600
-Ref: gnutls_pkcs12_bag_get_friendly_name\7f858201
-Ref: gnutls_pkcs12_bag_get_key_id\7f858833
-Ref: gnutls_pkcs12_bag_get_type\7f859447
-Ref: gnutls_pkcs12_bag_init\7f859793
-Ref: gnutls_pkcs12_bag_set_crl\7f860243
-Ref: gnutls_pkcs12_bag_set_crt\7f860676
-Ref: gnutls_pkcs12_bag_set_data\7f861122
-Ref: gnutls_pkcs12_bag_set_friendly_name\7f861593
-Ref: gnutls_pkcs12_bag_set_key_id\7f862272
-Ref: gnutls_pkcs12_deinit\7f862923
-Ref: gnutls_pkcs12_export\7f863135
-Ref: gnutls_pkcs12_generate_mac\7f864065
-Ref: gnutls_pkcs12_get_bag\7f864473
-Ref: gnutls_pkcs12_import\7f865088
-Ref: gnutls_pkcs12_init\7f865814
-Ref: gnutls_pkcs12_set_bag\7f866242
-Ref: gnutls_pkcs12_verify_mac\7f866649
-Node: PKCS 11 API\7f867010
-Ref: gnutls_pkcs11_add_provider\7f867348
-Ref: gnutls_pkcs11_copy_secret_key\7f867878
-Ref: gnutls_pkcs11_copy_x509_crt\7f868603
-Ref: gnutls_pkcs11_copy_x509_privkey\7f869257
-Ref: gnutls_pkcs11_deinit\7f870047
-Ref: gnutls_pkcs11_delete_url\7f870240
-Ref: gnutls_pkcs11_init\7f870732
-Ref: gnutls_pkcs11_obj_deinit\7f871694
-Ref: gnutls_pkcs11_obj_export\7f871943
-Ref: gnutls_pkcs11_obj_export_url\7f872900
-Ref: gnutls_pkcs11_obj_get_info\7f873422
-Ref: gnutls_pkcs11_obj_get_type\7f874292
-Ref: gnutls_pkcs11_obj_import_url\7f874653
-Ref: gnutls_pkcs11_obj_init\7f875377
-Ref: gnutls_pkcs11_obj_list_import_url\7f875752
-Ref: gnutls_pkcs11_obj_list_import_url2\7f876625
-Ref: gnutls_pkcs11_privkey_deinit\7f877514
-Ref: gnutls_pkcs11_privkey_export_url\7f877775
-Ref: gnutls_pkcs11_privkey_generate\7f878285
-Ref: gnutls_pkcs11_privkey_get_info\7f878952
-Ref: gnutls_pkcs11_privkey_get_pk_algorithm\7f879839
-Ref: gnutls_pkcs11_privkey_import_url\7f880375
-Ref: gnutls_pkcs11_privkey_init\7f881096
-Ref: gnutls_pkcs11_reinit\7f881435
-Ref: gnutls_pkcs11_set_pin_function\7f881873
-Ref: gnutls_pkcs11_set_token_function\7f882384
-Ref: gnutls_pkcs11_token_get_flags\7f882790
-Ref: gnutls_pkcs11_token_get_info\7f883302
-Ref: gnutls_pkcs11_token_get_mechanism\7f883979
-Ref: gnutls_pkcs11_token_get_url\7f884592
-Ref: gnutls_pkcs11_token_init\7f885260
-Ref: gnutls_pkcs11_token_set_pin\7f885898
-Ref: gnutls_pkcs11_type_get_name\7f886518
-Ref: gnutls_x509_crt_import_pkcs11\7f887007
-Ref: gnutls_x509_crt_import_pkcs11_url\7f887527
-Ref: gnutls_x509_crt_list_import_pkcs11\7f888186
-Node: Abstract key API\7f888800
-Ref: gnutls_certificate_set_key\7f889123
-Ref: gnutls_certificate_set_retrieve_function2\7f890489
-Ref: gnutls_pcert_deinit\7f892354
-Ref: gnutls_pcert_import_openpgp\7f892599
-Ref: gnutls_pcert_import_openpgp_raw\7f893209
-Ref: gnutls_pcert_import_x509\7f893987
-Ref: gnutls_pcert_import_x509_raw\7f894585
-Ref: gnutls_pcert_list_import_x509_raw\7f895288
-Ref: gnutls_privkey_decrypt_data\7f896331
-Ref: gnutls_privkey_deinit\7f896965
-Ref: gnutls_privkey_get_pk_algorithm\7f897224
-Ref: gnutls_privkey_get_type\7f897843
-Ref: gnutls_privkey_import_ext\7f898329
-Ref: gnutls_privkey_import_openpgp\7f899172
-Ref: gnutls_privkey_import_pkcs11\7f900007
-Ref: gnutls_privkey_import_x509\7f900758
-Ref: gnutls_privkey_init\7f901489
-Ref: gnutls_privkey_sign_data\7f901834
-Ref: gnutls_privkey_sign_hash\7f902823
-Ref: gnutls_pubkey_deinit\7f903796
-Ref: gnutls_pubkey_encrypt_data\7f904042
-Ref: gnutls_pubkey_export\7f904602
-Ref: gnutls_pubkey_get_key_id\7f905622
-Ref: gnutls_pubkey_get_key_usage\7f906611
-Ref: gnutls_pubkey_get_openpgp_key_id\7f907113
-Ref: gnutls_pubkey_get_pk_algorithm\7f908205
-Ref: gnutls_pubkey_get_pk_dsa_raw\7f908830
-Ref: gnutls_pubkey_get_pk_ecc_raw\7f909511
-Ref: gnutls_pubkey_get_pk_ecc_x962\7f910154
-Ref: gnutls_pubkey_get_pk_rsa_raw\7f910806
-Ref: gnutls_pubkey_get_preferred_hash_algorithm\7f911434
-Ref: gnutls_pubkey_get_verify_algorithm\7f912232
-Ref: gnutls_pubkey_import\7f912854
-Ref: gnutls_pubkey_import_dsa_raw\7f913573
-Ref: gnutls_pubkey_import_ecc_raw\7f914234
-Ref: gnutls_pubkey_import_ecc_x962\7f914842
-Ref: gnutls_pubkey_import_openpgp\7f915476
-Ref: gnutls_pubkey_import_pkcs11\7f916111
-Ref: gnutls_pubkey_import_pkcs11_url\7f916664
-Ref: gnutls_pubkey_import_privkey\7f917176
-Ref: gnutls_pubkey_import_rsa_raw\7f917771
-Ref: gnutls_pubkey_import_x509\7f918321
-Ref: gnutls_pubkey_init\7f918804
-Ref: gnutls_pubkey_set_key_usage\7f919152
-Ref: gnutls_pubkey_verify_data\7f919711
-Ref: gnutls_pubkey_verify_data2\7f920349
-Ref: gnutls_pubkey_verify_hash\7f921054
-Ref: gnutls_pubkey_verify_hash2\7f921769
-Ref: gnutls_x509_crl_privkey_sign\7f922490
-Ref: gnutls_x509_crq_privkey_sign\7f923412
-Ref: gnutls_x509_crq_set_pubkey\7f924425
-Ref: gnutls_x509_crt_privkey_sign\7f924896
-Ref: gnutls_x509_crt_set_pubkey\7f925774
-Node: Cryptographic API\7f927418
-Ref: gnutls_cipher_add_auth\7f927752
-Ref: gnutls_cipher_decrypt\7f928334
-Ref: gnutls_cipher_decrypt2\7f928818
-Ref: gnutls_cipher_deinit\7f929430
-Ref: gnutls_cipher_encrypt\7f929715
-Ref: gnutls_cipher_encrypt2\7f930175
-Ref: gnutls_cipher_get_block_size\7f930803
-Ref: gnutls_cipher_init\7f931104
-Ref: gnutls_cipher_set_iv\7f931823
-Ref: gnutls_cipher_tag\7f932174
-Ref: gnutls_hash\7f932636
-Ref: gnutls_hash_deinit\7f933073
-Ref: gnutls_hash_fast\7f933407
-Ref: gnutls_hash_get_len\7f933918
-Ref: gnutls_hash_init\7f934246
-Ref: gnutls_hash_output\7f934788
-Ref: gnutls_hmac\7f935075
-Ref: gnutls_hmac_deinit\7f935512
-Ref: gnutls_hmac_fast\7f935845
-Ref: gnutls_hmac_get_len\7f936458
-Ref: gnutls_hmac_init\7f936773
-Ref: gnutls_hmac_output\7f937455
-Ref: gnutls_rnd\7f937738
-Node: Compatibility API\7f938090
-Ref: gnutls_certificate_set_rsa_export_params\7f938468
-Ref: gnutls_certificate_type_set_priority\7f938984
-Ref: gnutls_cipher_set_priority\7f939713
-Ref: gnutls_compression_set_priority\7f940437
-Ref: gnutls_kx_set_priority\7f941311
-Ref: gnutls_mac_set_priority\7f942016
-Ref: gnutls_openpgp_privkey_sign_hash\7f942733
-Ref: gnutls_protocol_set_priority\7f943435
-Ref: gnutls_rsa_export_get_modulus_bits\7f943979
-Ref: gnutls_rsa_export_get_pubkey\7f944344
-Ref: gnutls_rsa_params_cpy\7f944935
-Ref: gnutls_rsa_params_deinit\7f945364
-Ref: gnutls_rsa_params_export_pkcs1\7f945641
-Ref: gnutls_rsa_params_export_raw\7f946584
-Ref: gnutls_rsa_params_generate2\7f947501
-Ref: gnutls_rsa_params_import_pkcs1\7f948295
-Ref: gnutls_rsa_params_import_raw\7f948992
-Ref: gnutls_rsa_params_init\7f949794
-Ref: gnutls_set_default_export_priority\7f950175
-Ref: gnutls_sign_callback_get\7f951013
-Ref: gnutls_sign_callback_set\7f951509
-Ref: gnutls_x509_crl_sign\7f952463
-Ref: gnutls_x509_crq_sign\7f953078
-Ref: gnutls_x509_crt_get_preferred_hash_algorithm\7f953640
-Ref: gnutls_x509_crt_get_verify_algorithm\7f954530
-Ref: gnutls_x509_crt_verify_data\7f955242
-Ref: gnutls_x509_crt_verify_hash\7f955927
-Ref: gnutls_x509_privkey_sign_data\7f956667
-Ref: gnutls_x509_privkey_sign_hash\7f957936
-Node: Copying Information\7f958589
-Node: Bibliography\7f983763
-Ref: CBCATT\7f983902
-Ref: GPGH\7f984079
-Ref: GUTPKI\7f984201
-Ref: KEYPIN\7f984375
-Ref: NISTSP80057\7f984549
-Ref: RFC2246\7f984796
-Ref: RFC4680\7f984951
-Ref: RFC4514\7f985108
-Ref: RFC4346\7f985311
-Ref: RFC4347\7f985460
-Ref: RFC5246\7f985626
-Ref: RFC2440\7f985776
-Ref: RFC4880\7f985957
-Ref: RFC4211\7f986150
-Ref: RFC2817\7f986343
-Ref: RFC2818\7f986495
-Ref: RFC2945\7f986608
-Ref: RFC2986\7f986757
-Ref: PKIX\7f986945
-Ref: RFC3749\7f987207
-Ref: RFC3820\7f987372
-Ref: RFC5746\7f987614
-Ref: TLSTKT\7f987822
-Ref: PKCS12\7f988053
-Ref: PKCS11\7f988193
-Ref: RESCORLA\7f988338
-Ref: SELKEY\7f988434
-Ref: SSL3\7f988592
-Ref: STEVENS\7f988782
-Ref: TLSEXT\7f988890
-Ref: TLSPGP\7f989106
-Ref: TLSSRP\7f989270
-Ref: TLSPSK\7f989466
-Ref: TOMSRP\7f989634
-Ref: WEGER\7f989746
-Ref: ECRYPT\7f989937
-Ref: RFC5056\7f990141
-Ref: RFC5929\7f990293
-Ref: PKCS11URI\7f990435
-Ref: ANDERSON\7f990617
-Ref: RFC4821\7f990763
-Ref: RFC2560\7f990915
-Ref: RIVESTCRL\7f991108
-Node: Function and Data Index\7f991468
-Node: Concept Index\7f1069283
+Node: Top\7f1237
+Node: Preface\7f2363
+Node: Introduction to GnuTLS\7f3747
+Ref: Introduction to GnuTLS-Footnote-1\7f5411
+Ref: Introduction to GnuTLS-Footnote-2\7f5459
+Node: Downloading and installing\7f5510
+Node: Document overview\7f7716
+Node: Introduction to TLS\7f8717
+Ref: Introduction to TLS-Footnote-1\7f9863
+Node: TLS layers\7f10153
+Ref: fig:tls-layers\7f11112
+Node: The transport layer\7f11187
+Node: The TLS record protocol\7f11791
+Node: Encryption algorithms used in the record layer\7f13066
+Ref: tab:ciphers\7f13962
+Ref: tab:macs\7f15334
+Node: Compression algorithms used in the record layer\7f16025
+Ref: gnutls_compression_method_t\7f16969
+Node: Weaknesses and countermeasures\7f17562
+Ref: Weaknesses and countermeasures-Footnote-1\7f18590
+Node: On Record Padding\7f18668
+Node: The TLS Alert Protocol\7f20272
+Ref: The Alert Protocol\7f20472
+Ref: tab:alerts\7f21356
+Node: The TLS Handshake Protocol\7f24124
+Ref: The Handshake Protocol\7f24323
+Node: TLS Cipher Suites\7f24989
+Ref: TLS Cipher Suites-Footnote-1\7f25972
+Node: Authentication\7f26086
+Node: Client Authentication\7f26797
+Node: Resuming Sessions\7f27274
+Ref: resume\7f27433
+Node: TLS Extensions\7f28082
+Node: Maximum fragment length negotiation\7f28694
+Node: Server name indication\7f29298
+Ref: serverind\7f29498
+Node: Session tickets\7f30344
+Node: Safe renegotiation\7f30917
+Node: How to use TLS in application protocols\7f35799
+Node: Separate ports\7f36317
+Ref: Separate ports-Footnote-1\7f37732
+Node: Upward negotiation\7f37808
+Ref: Upward negotiation-Footnote-1\7f40488
+Node: On SSL 2 and older protocols\7f40516
+Node: Certificate authentication\7f42394
+Ref: tab:key-exchange\7f42962
+Node: X.509 certificates\7f45379
+Ref: fig:x509\7f45854
+Node: X.509 certificate structure\7f46437
+Ref: tab:x509\7f46831
+Ref: tab:x509-ext\7f48625
+Node: Importing an X.509 certificate\7f51264
+Node: X.509 distinguished names\7f52642
+Node: Verifying X.509 certificate paths\7f58597
+Ref: gnutls_certificate_status_t\7f63842
+Node: Verifying a certificate in the context of TLS session\7f65452
+Ref: gnutls_certificate_verify_flags\7f66997
+Node: Verifying a certificate using trust on first use authentication\7f69288
+Node: OpenPGP certificates\7f75333
+Ref: fig:openpgp\7f76128
+Ref: OpenPGP certificates-Footnote-1\7f80437
+Node: Digital signatures\7f80492
+Node: Shared-key and anonymous authentication\7f85683
+Node: SRP authentication\7f86209
+Node: Authentication using SRP\7f86468
+Node: srptool Invocation\7f89517
+Ref: srptool usage\7f90324
+Ref: srptool debug\7f92478
+Ref: srptool verify\7f92622
+Ref: srptool passwd-conf\7f92760
+Ref: srptool create-conf\7f92962
+Ref: srptool exit status\7f93209
+Ref: srptool See Also\7f93439
+Ref: srptool Examples\7f93552
+Node: PSK authentication\7f94196
+Node: Authentication using PSK\7f94488
+Node: psktool Invocation\7f95702
+Ref: psktool usage\7f96184
+Ref: psktool debug\7f97814
+Ref: psktool exit status\7f97958
+Ref: psktool See Also\7f98188
+Ref: psktool Examples\7f98288
+Node: Anonymous authentication\7f98749
+Node: More on certificate authentication\7f99735
+Node: PKCS 10 certificate requests\7f100534
+Ref: ex:crq\7f103674
+Node: PKIX certificate revocation lists\7f105755
+Ref: tab:crl\7f106846
+Node: OCSP certificate status checking\7f110332
+Node: Managing encrypted keys\7f119925
+Ref: gnutls_pkcs_encrypt_flags_t\7f121705
+Node: certtool Invocation\7f127897
+Ref: certtool usage\7f128481
+Ref: certtool debug\7f134325
+Ref: certtool verify-chain\7f134469
+Ref: certtool verify\7f134646
+Ref: certtool verify-crl\7f134964
+Ref: certtool get-dh-params\7f135264
+Ref: certtool load-privkey\7f135563
+Ref: certtool load-pubkey\7f135736
+Ref: certtool load-certificate\7f135906
+Ref: certtool load-ca-privkey\7f136087
+Ref: certtool load-ca-certificate\7f136291
+Ref: certtool to-p12\7f136503
+Ref: certtool hash\7f136803
+Ref: certtool inder\7f136994
+Ref: certtool inraw\7f137316
+Ref: certtool outder\7f137441
+Ref: certtool outraw\7f137589
+Ref: certtool sec-param\7f137719
+Ref: certtool pkcs-cipher\7f137940
+Ref: certtool exit status\7f138180
+Ref: certtool See Also\7f138412
+Ref: certtool Examples\7f138461
+Ref: certtool Files\7f142375
+Node: ocsptool Invocation\7f146712
+Ref: ocsptool usage\7f147250
+Ref: ocsptool debug\7f150671
+Ref: ocsptool ask\7f150815
+Ref: ocsptool exit status\7f151210
+Ref: ocsptool See Also\7f151442
+Ref: ocsptool Examples\7f151492
+Node: Smart cards and HSMs\7f156470
+Ref: fig:pkcs11-vision\7f158264
+Ref: Smart cards and HSMs-Footnote-1\7f158535
+Ref: Smart cards and HSMs-Footnote-2\7f158575
+Node: PKCS11 Initialization\7f158618
+Ref: PKCS11 Initialization-Footnote-1\7f161415
+Node: Reading objects\7f161458
+Node: Writing objects\7f166572
+Node: Using a PKCS11 token with TLS\7f168953
+Node: p11tool Invocation\7f170211
+Ref: p11tool usage\7f170840
+Ref: p11tool debug\7f175140
+Ref: p11tool write\7f175284
+Ref: p11tool generate-rsa\7f175459
+Ref: p11tool generate-dsa\7f175629
+Ref: p11tool generate-ecc\7f175799
+Ref: p11tool private\7f175969
+Ref: p11tool sec-param\7f176190
+Ref: p11tool inder\7f176435
+Ref: p11tool inraw\7f176575
+Ref: p11tool provider\7f176699
+Ref: p11tool exit status\7f176895
+Ref: p11tool See Also\7f177125
+Ref: p11tool Examples\7f177173
+Node: Abstract key types\7f177743
+Node: Abstract public keys\7f179307
+Node: Abstract private keys\7f182104
+Node: Operations\7f184024
+Node: How to use GnuTLS in applications\7f190049
+Node: Introduction to the library\7f190623
+Node: General idea\7f190906
+Ref: fig:gnutls-design\7f191680
+Ref: General idea-Footnote-1\7f192976
+Node: Error handling\7f193021
+Node: Common types\7f194591
+Node: Debugging and auditing\7f195300
+Node: Thread safety\7f196931
+Node: Callback functions\7f199402
+Node: Preparation\7f200366
+Node: Headers\7f200785
+Node: Initialization\7f201074
+Node: Version check\7f201727
+Node: Building the source\7f202264
+Node: Session initialization\7f204375
+Node: Associating the credentials\7f207661
+Ref: tab:key-exchange-cred\7f208406
+Node: Certificate credentials\7f209573
+Node: SRP credentials\7f219129
+Node: PSK credentials\7f223589
+Node: Anonymous credentials\7f227252
+Node: Setting up the transport layer\7f228067
+Node: Asynchronous operation\7f235069
+Node: DTLS sessions\7f238400
+Ref: DTLS sessions-Footnote-1\7f240642
+Node: TLS handshake\7f240719
+Node: Data transfer and termination\7f242887
+Node: Handling alerts\7f251486
+Node: Priority Strings\7f254856
+Ref: tab:prio-keywords\7f255577
+Ref: tab:prio-algorithms\7f259077
+Ref: tab:prio-special\7f261058
+Ref: Priority Strings-Footnote-1\7f266649
+Ref: Priority Strings-Footnote-2\7f266722
+Node: Advanced and other topics\7f266913
+Node: Session resumption\7f267309
+Node: Parameter generation\7f271764
+Node: Keying Material Exporters\7f275437
+Node: Channel Bindings\7f276503
+Node: Interoperability\7f278019
+Node: Compatibility with the OpenSSL library\7f279636
+Node: Using the cryptographic library\7f280371
+Node: Symmetric cryptography\7f281032
+Node: Hash and HMAC functions\7f282397
+Node: Random number generation\7f284074
+Ref: gnutls_rnd_level_t\7f284405
+Node: Selecting cryptographic key sizes\7f285095
+Ref: tab:key-sizes\7f285728
+Node: GnuTLS application examples\7f289462
+Ref: examples\7f289664
+Node: Client examples\7f289920
+Node: Simple client example with X.509 certificate support\7f290805
+Ref: ex:verify\7f291098
+Node: Simple client example with SSH-style certificate verification\7f296966
+Node: Simple client example with anonymous authentication\7f303204
+Node: Simple Datagram TLS client example\7f306186
+Node: Obtaining session information\7f309554
+Node: Using a callback to select the certificate to use\7f313599
+Node: Verifying a certificate\7f320496
+Ref: ex:verify2\7f320733
+Node: Client using a smart card with TLS\7f325088
+Ref: ex:pkcs11-client\7f325321
+Node: Client with Resume capability example\7f329696
+Ref: ex:resume-client\7f329971
+Node: Simple client example with SRP authentication\7f333841
+Node: Simple client example in C++\7f337140
+Node: Helper functions for TCP connections\7f339712
+Node: Helper functions for UDP connections\7f341172
+Node: Server examples\7f342861
+Node: Echo server with X.509 authentication\7f343325
+Node: Echo server with OpenPGP authentication\7f348756
+Node: Echo server with SRP authentication\7f354005
+Node: Echo server with anonymous authentication\7f359279
+Node: DTLS echo server with X.509 authentication\7f364062
+Node: OCSP example\7f375717
+Ref: Generate OCSP request\7f375883
+Node: Miscellaneous examples\7f384387
+Node: Checking for an alert\7f384673
+Node: X.509 certificate parsing example\7f385976
+Ref: ex:x509-info\7f386233
+Node: Listing the ciphersuites in a priority string\7f389499
+Node: Other included programs\7f391193
+Node: gnutls-cli Invocation\7f391750
+Ref: gnutls-cli usage\7f392310
+Ref: gnutls-cli debug\7f396830
+Ref: gnutls-cli tofu\7f396974
+Ref: gnutls-cli ocsp\7f397225
+Ref: gnutls-cli resume\7f397385
+Ref: gnutls-cli rehandshake\7f397531
+Ref: gnutls-cli starttls\7f397698
+Ref: gnutls-cli priority\7f397884
+Ref: gnutls-cli list\7f398230
+Ref: gnutls-cli exit status\7f398468
+Ref: gnutls-cli See Also\7f398704
+Ref: gnutls-cli Examples\7f398781
+Node: gnutls-serv Invocation\7f400541
+Ref: gnutls-serv usage\7f401016
+Ref: gnutls-serv debug\7f405030
+Ref: gnutls-serv priority\7f405174
+Ref: gnutls-serv list\7f405520
+Ref: gnutls-serv exit status\7f405758
+Ref: gnutls-serv See Also\7f405996
+Ref: gnutls-serv Examples\7f406074
+Node: gnutls-cli-debug Invocation\7f411503
+Ref: gnutls-cli-debug usage\7f412323
+Ref: gnutls-cli-debug debug\7f414395
+Ref: gnutls-cli-debug exit status\7f414539
+Ref: gnutls-cli-debug See Also\7f414787
+Ref: gnutls-cli-debug Examples\7f414870
+Node: Internal architecture of GnuTLS\7f417293
+Node: The TLS Protocol\7f417835
+Ref: fig:client-server\7f418311
+Node: TLS Handshake Protocol\7f418401
+Ref: fig:gnutls-handshake\7f418843
+Ref: fig:gnutls-handshake-sequence\7f419352
+Node: TLS Authentication Methods\7f419450
+Ref: TLS Authentication Methods-Footnote-1\7f421748
+Node: TLS Extension Handling\7f421814
+Node: Cryptographic Backend\7f432724
+Ref: fig:crypto-layers\7f433458
+Ref: Cryptographic Backend-Footnote-1\7f437168
+Ref: Cryptographic Backend-Footnote-2\7f437252
+Node: Upgrading from previous versions\7f437359
+Node: Support\7f440889
+Node: Getting help\7f441119
+Node: Commercial Support\7f441721
+Node: Bug Reports\7f442547
+Node: Contributing\7f443911
+Node: Error codes\7f445915
+Node: Supported ciphersuites\7f463126
+Ref: ciphersuites\7f463299
+Node: API reference\7f470551
+Node: Core TLS API\7f470913
+Ref: gnutls_alert_get\7f471140
+Ref: gnutls_alert_get_name\7f471764
+Ref: gnutls_alert_get_strname\7f472149
+Ref: gnutls_alert_send\7f472484
+Ref: gnutls_alert_send_appropriate\7f473367
+Ref: gnutls_anon_allocate_client_credentials\7f474118
+Ref: gnutls_anon_allocate_server_credentials\7f474577
+Ref: gnutls_anon_free_client_credentials\7f475028
+Ref: gnutls_anon_free_server_credentials\7f475404
+Ref: gnutls_anon_set_params_function\7f475772
+Ref: gnutls_anon_set_server_dh_params\7f476290
+Ref: gnutls_anon_set_server_params_function\7f476814
+Ref: gnutls_auth_client_get_type\7f477323
+Ref: gnutls_auth_get_type\7f477835
+Ref: gnutls_auth_server_get_type\7f478532
+Ref: gnutls_bye\7f479024
+Ref: gnutls_certificate_activation_time_peers\7f480630
+Ref: gnutls_certificate_allocate_credentials\7f481097
+Ref: gnutls_certificate_client_get_request_status\7f481573
+Ref: gnutls_certificate_expiration_time_peers\7f481996
+Ref: gnutls_certificate_free_ca_names\7f482400
+Ref: gnutls_certificate_free_cas\7f483074
+Ref: gnutls_certificate_free_credentials\7f483498
+Ref: gnutls_certificate_free_crls\7f484019
+Ref: gnutls_certificate_free_keys\7f484324
+Ref: gnutls_certificate_get_issuer\7f484761
+Ref: gnutls_certificate_get_ours\7f485399
+Ref: gnutls_certificate_get_peers\7f485932
+Ref: gnutls_certificate_send_x509_rdn_sequence\7f486802
+Ref: gnutls_certificate_server_set_request\7f487530
+Ref: gnutls_certificate_set_dh_params\7f488183
+Ref: gnutls_certificate_set_params_function\7f488944
+Ref: gnutls_certificate_set_retrieve_function\7f489493
+Ref: gnutls_certificate_set_verify_flags\7f491371
+Ref: gnutls_certificate_set_verify_function\7f491904
+Ref: gnutls_certificate_set_verify_limits\7f492973
+Ref: gnutls_certificate_set_x509_crl\7f493659
+Ref: gnutls_certificate_set_x509_crl_file\7f494492
+Ref: gnutls_certificate_set_x509_crl_mem\7f495278
+Ref: gnutls_certificate_set_x509_key\7f496060
+Ref: gnutls_certificate_set_x509_key_file\7f497070
+Ref: gnutls_certificate_set_x509_key_mem\7f498292
+Ref: gnutls_certificate_set_x509_simple_pkcs12_file\7f499563
+Ref: gnutls_certificate_set_x509_simple_pkcs12_mem\7f501091
+Ref: gnutls_certificate_set_x509_system_trust\7f502657
+Ref: gnutls_certificate_set_x509_trust\7f503229
+Ref: gnutls_certificate_set_x509_trust_file\7f504216
+Ref: gnutls_certificate_set_x509_trust_mem\7f505348
+Ref: gnutls_certificate_type_get\7f506296
+Ref: gnutls_certificate_type_get_id\7f506698
+Ref: gnutls_certificate_type_get_name\7f507095
+Ref: gnutls_certificate_type_list\7f507478
+Ref: gnutls_certificate_verify_peers2\7f507942
+Ref: gnutls_check_version\7f508951
+Ref: gnutls_cipher_get\7f509560
+Ref: gnutls_cipher_get_id\7f509866
+Ref: gnutls_cipher_get_key_size\7f510248
+Ref: gnutls_cipher_get_name\7f510575
+Ref: gnutls_cipher_list\7f510922
+Ref: gnutls_cipher_suite_get_name\7f511482
+Ref: gnutls_cipher_suite_info\7f512100
+Ref: gnutls_compression_get\7f513279
+Ref: gnutls_compression_get_id\7f513632
+Ref: gnutls_compression_get_name\7f513996
+Ref: gnutls_compression_list\7f514378
+Ref: gnutls_credentials_clear\7f514696
+Ref: gnutls_credentials_set\7f514929
+Ref: gnutls_db_check_entry\7f516302
+Ref: gnutls_db_get_ptr\7f516810
+Ref: gnutls_db_remove_session\7f517127
+Ref: gnutls_db_set_cache_expiration\7f517669
+Ref: gnutls_db_set_ptr\7f518015
+Ref: gnutls_db_set_remove_function\7f518355
+Ref: gnutls_db_set_retrieve_function\7f518863
+Ref: gnutls_db_set_store_function\7f519554
+Ref: gnutls_deinit\7f520026
+Ref: gnutls_dh_get_group\7f520370
+Ref: gnutls_dh_get_peers_public_bits\7f521101
+Ref: gnutls_dh_get_prime_bits\7f521545
+Ref: gnutls_dh_get_pubkey\7f522185
+Ref: gnutls_dh_get_secret_bits\7f522777
+Ref: gnutls_dh_params_cpy\7f523209
+Ref: gnutls_dh_params_deinit\7f523667
+Ref: gnutls_dh_params_export_pkcs3\7f523940
+Ref: gnutls_dh_params_export_raw\7f524959
+Ref: gnutls_dh_params_generate2\7f525712
+Ref: gnutls_dh_params_import_pkcs3\7f526663
+Ref: gnutls_dh_params_import_raw\7f527438
+Ref: gnutls_dh_params_init\7f528087
+Ref: gnutls_dh_set_prime_bits\7f528456
+Ref: gnutls_ecc_curve_get\7f529276
+Ref: gnutls_ecc_curve_get_name\7f529669
+Ref: gnutls_ecc_curve_get_size\7f530005
+Ref: gnutls_ecc_curve_list\7f530251
+Ref: gnutls_error_is_fatal\7f530574
+Ref: gnutls_error_to_alert\7f531334
+Ref: gnutls_fingerprint\7f532011
+Ref: gnutls_global_deinit\7f532991
+Ref: gnutls_global_init\7f533309
+Ref: gnutls_global_set_audit_log_function\7f534661
+Ref: gnutls_global_set_log_function\7f535318
+Ref: gnutls_global_set_log_level\7f535826
+Ref: gnutls_global_set_mem_functions\7f536329
+Ref: gnutls_global_set_mutex\7f537565
+Ref: gnutls_global_set_time_function\7f538406
+Ref: gnutls_handshake\7f538817
+Ref: gnutls_handshake_get_last_in\7f540149
+Ref: gnutls_handshake_get_last_out\7f540779
+Ref: gnutls_handshake_set_max_packet_length\7f541424
+Ref: gnutls_handshake_set_post_client_hello_function\7f542115
+Ref: gnutls_handshake_set_private_extensions\7f543203
+Ref: gnutls_hex2bin\7f543861
+Ref: gnutls_hex_decode\7f544429
+Ref: gnutls_hex_encode\7f545004
+Ref: gnutls_init\7f545518
+Ref: gnutls_key_generate\7f546401
+Ref: gnutls_kx_get\7f546820
+Ref: gnutls_kx_get_id\7f547151
+Ref: gnutls_kx_get_name\7f547495
+Ref: gnutls_kx_list\7f547840
+Ref: gnutls_mac_get\7f548164
+Ref: gnutls_mac_get_id\7f548470
+Ref: gnutls_mac_get_key_size\7f548884
+Ref: gnutls_mac_get_name\7f549197
+Ref: gnutls_mac_list\7f549516
+Ref: gnutls_openpgp_send_cert\7f550075
+Ref: gnutls_pem_base64_decode\7f550650
+Ref: gnutls_pem_base64_decode_alloc\7f551513
+Ref: gnutls_pem_base64_encode\7f552310
+Ref: gnutls_pem_base64_encode_alloc\7f553125
+Ref: gnutls_perror\7f553831
+Ref: gnutls_pk_algorithm_get_name\7f554127
+Ref: gnutls_pk_bits_to_sec_param\7f554483
+Ref: gnutls_pk_get_id\7f554957
+Ref: gnutls_pk_get_name\7f555475
+Ref: gnutls_pk_list\7f555837
+Ref: gnutls_pk_to_sign\7f556170
+Ref: gnutls_prf\7f556581
+Ref: gnutls_prf_raw\7f558194
+Ref: gnutls_priority_certificate_type_list\7f559826
+Ref: gnutls_priority_compression_list\7f560274
+Ref: gnutls_priority_deinit\7f560688
+Ref: gnutls_priority_ecc_curve_list\7f560938
+Ref: gnutls_priority_get_cipher_suite_index\7f561373
+Ref: gnutls_priority_init\7f562263
+Ref: gnutls_priority_protocol_list\7f564765
+Ref: gnutls_priority_set\7f565173
+Ref: gnutls_priority_set_direct\7f565605
+Ref: gnutls_priority_sign_list\7f566405
+Ref: gnutls_protocol_get_id\7f566817
+Ref: gnutls_protocol_get_name\7f567133
+Ref: gnutls_protocol_get_version\7f567492
+Ref: gnutls_protocol_list\7f567795
+Ref: gnutls_psk_allocate_client_credentials\7f568165
+Ref: gnutls_psk_allocate_server_credentials\7f568660
+Ref: gnutls_psk_client_get_hint\7f569131
+Ref: gnutls_psk_free_client_credentials\7f569614
+Ref: gnutls_psk_free_server_credentials\7f569985
+Ref: gnutls_psk_server_get_username\7f570348
+Ref: gnutls_psk_set_client_credentials\7f570714
+Ref: gnutls_psk_set_client_credentials_function\7f571706
+Ref: gnutls_psk_set_params_function\7f572625
+Ref: gnutls_psk_set_server_credentials_file\7f573147
+Ref: gnutls_psk_set_server_credentials_function\7f573794
+Ref: gnutls_psk_set_server_credentials_hint\7f574743
+Ref: gnutls_psk_set_server_dh_params\7f575377
+Ref: gnutls_psk_set_server_params_function\7f575904
+Ref: gnutls_random_art\7f576387
+Ref: gnutls_record_check_pending\7f577120
+Ref: gnutls_record_disable_padding\7f577559
+Ref: gnutls_record_get_direction\7f578151
+Ref: gnutls_record_get_max_size\7f579063
+Ref: gnutls_record_recv\7f579425
+Ref: gnutls_record_recv_seq\7f580928
+Ref: gnutls_record_send\7f581919
+Ref: gnutls_record_set_max_size\7f583405
+Ref: gnutls_rehandshake\7f584306
+Ref: gnutls_safe_renegotiation_status\7f585590
+Ref: gnutls_sec_param_get_name\7f586005
+Ref: gnutls_sec_param_to_pk_bits\7f586379
+Ref: gnutls_server_name_get\7f587025
+Ref: gnutls_server_name_set\7f588385
+Ref: gnutls_session_channel_binding\7f589373
+Ref: gnutls_session_enable_compatibility_mode\7f590096
+Ref: gnutls_session_get_data\7f590629
+Ref: gnutls_session_get_data2\7f591512
+Ref: gnutls_session_get_id\7f592337
+Ref: gnutls_session_get_ptr\7f593213
+Ref: gnutls_session_get_random\7f593613
+Ref: gnutls_session_is_resumed\7f594214
+Ref: gnutls_session_resumption_requested\7f594550
+Ref: gnutls_session_set_data\7f594937
+Ref: gnutls_session_set_premaster\7f595797
+Ref: gnutls_session_set_ptr\7f596886
+Ref: gnutls_session_ticket_enable_client\7f597304
+Ref: gnutls_session_ticket_enable_server\7f597718
+Ref: gnutls_session_ticket_key_generate\7f598282
+Ref: gnutls_set_default_priority\7f598712
+Ref: gnutls_sign_algorithm_get_requested\7f599504
+Ref: gnutls_sign_get_id\7f600512
+Ref: gnutls_sign_get_name\7f600871
+Ref: gnutls_sign_list\7f601197
+Ref: gnutls_srp_allocate_client_credentials\7f601527
+Ref: gnutls_srp_allocate_server_credentials\7f602003
+Ref: gnutls_srp_base64_decode\7f602451
+Ref: gnutls_srp_base64_decode_alloc\7f603166
+Ref: gnutls_srp_base64_encode\7f603839
+Ref: gnutls_srp_base64_encode_alloc\7f604650
+Ref: gnutls_srp_free_client_credentials\7f605386
+Ref: gnutls_srp_free_server_credentials\7f605757
+Ref: gnutls_srp_server_get_username\7f606120
+Ref: gnutls_srp_set_client_credentials\7f606574
+Ref: gnutls_srp_set_client_credentials_function\7f607330
+Ref: gnutls_srp_set_prime_bits\7f608434
+Ref: gnutls_srp_set_server_credentials_file\7f609124
+Ref: gnutls_srp_set_server_credentials_function\7f609865
+Ref: gnutls_srp_verifier\7f611239
+Ref: gnutls_store_commitment\7f612173
+Ref: gnutls_store_pubkey\7f613431
+Ref: gnutls_strerror\7f614593
+Ref: gnutls_strerror_name\7f615078
+Ref: gnutls_supplemental_get_name\7f615547
+Ref: gnutls_tdb_deinit\7f615955
+Ref: gnutls_tdb_init\7f616170
+Ref: gnutls_tdb_set_store_commitment_func\7f616520
+Ref: gnutls_tdb_set_store_func\7f617114
+Ref: gnutls_tdb_set_verify_func\7f617611
+Ref: gnutls_transport_get_ptr\7f618097
+Ref: gnutls_transport_get_ptr2\7f618518
+Ref: gnutls_transport_set_errno\7f619057
+Ref: gnutls_transport_set_errno_function\7f619915
+Ref: gnutls_transport_set_ptr\7f620457
+Ref: gnutls_transport_set_ptr2\7f620875
+Ref: gnutls_transport_set_pull_function\7f621524
+Ref: gnutls_transport_set_pull_timeout_function\7f622309
+Ref: gnutls_transport_set_push_function\7f623199
+Ref: gnutls_transport_set_vec_push_function\7f624049
+Ref: gnutls_verify_stored_pubkey\7f624758
+Node: Datagram TLS API\7f627718
+Ref: gnutls_dtls_cookie_send\7f627994
+Ref: gnutls_dtls_cookie_verify\7f629080
+Ref: gnutls_dtls_get_data_mtu\7f629948
+Ref: gnutls_dtls_get_mtu\7f630352
+Ref: gnutls_dtls_get_timeout\7f630800
+Ref: gnutls_dtls_prestate_set\7f631348
+Ref: gnutls_dtls_set_data_mtu\7f631754
+Ref: gnutls_dtls_set_mtu\7f632616
+Ref: gnutls_dtls_set_timeouts\7f633227
+Ref: gnutls_record_get_discarded\7f634242
+Node: X509 certificate API\7f634521
+Ref: gnutls_pkcs7_deinit\7f634840
+Ref: gnutls_pkcs7_delete_crl\7f635053
+Ref: gnutls_pkcs7_delete_crt\7f635511
+Ref: gnutls_pkcs7_export\7f635984
+Ref: gnutls_pkcs7_get_crl_count\7f636907
+Ref: gnutls_pkcs7_get_crl_raw\7f637281
+Ref: gnutls_pkcs7_get_crt_count\7f638082
+Ref: gnutls_pkcs7_get_crt_raw\7f638466
+Ref: gnutls_pkcs7_import\7f639354
+Ref: gnutls_pkcs7_init\7f639980
+Ref: gnutls_pkcs7_set_crl\7f640400
+Ref: gnutls_pkcs7_set_crl_raw\7f640830
+Ref: gnutls_pkcs7_set_crt\7f641249
+Ref: gnutls_pkcs7_set_crt_raw\7f641762
+Ref: gnutls_x509_crl_check_issuer\7f642226
+Ref: gnutls_x509_crl_deinit\7f642772
+Ref: gnutls_x509_crl_export\7f642983
+Ref: gnutls_x509_crl_get_authority_key_gn_serial\7f643950
+Ref: gnutls_x509_crl_get_authority_key_id\7f645267
+Ref: gnutls_x509_crl_get_crt_count\7f646334
+Ref: gnutls_x509_crl_get_crt_serial\7f646697
+Ref: gnutls_x509_crl_get_dn_oid\7f647474
+Ref: gnutls_x509_crl_get_extension_data\7f648295
+Ref: gnutls_x509_crl_get_extension_info\7f649410
+Ref: gnutls_x509_crl_get_extension_oid\7f650688
+Ref: gnutls_x509_crl_get_issuer_dn\7f651554
+Ref: gnutls_x509_crl_get_issuer_dn_by_oid\7f652442
+Ref: gnutls_x509_crl_get_next_update\7f653952
+Ref: gnutls_x509_crl_get_number\7f654391
+Ref: gnutls_x509_crl_get_raw_issuer_dn\7f655120
+Ref: gnutls_x509_crl_get_signature\7f655579
+Ref: gnutls_x509_crl_get_signature_algorithm\7f656173
+Ref: gnutls_x509_crl_get_this_update\7f656615
+Ref: gnutls_x509_crl_get_version\7f656945
+Ref: gnutls_x509_crl_import\7f657258
+Ref: gnutls_x509_crl_init\7f657887
+Ref: gnutls_x509_crl_list_import\7f658460
+Ref: gnutls_x509_crl_list_import2\7f659452
+Ref: gnutls_x509_crl_print\7f660360
+Ref: gnutls_x509_crl_set_authority_key_id\7f661012
+Ref: gnutls_x509_crl_set_crt\7f661665
+Ref: gnutls_x509_crl_set_crt_serial\7f662243
+Ref: gnutls_x509_crl_set_next_update\7f662880
+Ref: gnutls_x509_crl_set_number\7f663292
+Ref: gnutls_x509_crl_set_this_update\7f663869
+Ref: gnutls_x509_crl_set_version\7f664278
+Ref: gnutls_x509_crl_sign2\7f664828
+Ref: gnutls_x509_crl_verify\7f665717
+Ref: gnutls_x509_crq_deinit\7f666591
+Ref: gnutls_x509_crq_export\7f666832
+Ref: gnutls_x509_crq_get_attribute_by_oid\7f667860
+Ref: gnutls_x509_crq_get_attribute_data\7f668737
+Ref: gnutls_x509_crq_get_attribute_info\7f669847
+Ref: gnutls_x509_crq_get_basic_constraints\7f671042
+Ref: gnutls_x509_crq_get_challenge_password\7f672299
+Ref: gnutls_x509_crq_get_dn\7f672920
+Ref: gnutls_x509_crq_get_dn_by_oid\7f673763
+Ref: gnutls_x509_crq_get_dn_oid\7f675228
+Ref: gnutls_x509_crq_get_extension_by_oid\7f676021
+Ref: gnutls_x509_crq_get_extension_data\7f677174
+Ref: gnutls_x509_crq_get_extension_info\7f678300
+Ref: gnutls_x509_crq_get_key_id\7f679573
+Ref: gnutls_x509_crq_get_key_purpose_oid\7f680604
+Ref: gnutls_x509_crq_get_key_rsa_raw\7f681630
+Ref: gnutls_x509_crq_get_key_usage\7f682254
+Ref: gnutls_x509_crq_get_pk_algorithm\7f683344
+Ref: gnutls_x509_crq_get_private_key_usage_period\7f684106
+Ref: gnutls_x509_crq_get_subject_alt_name\7f684787
+Ref: gnutls_x509_crq_get_subject_alt_othername_oid\7f686349
+Ref: gnutls_x509_crq_get_version\7f687826
+Ref: gnutls_x509_crq_import\7f688177
+Ref: gnutls_x509_crq_init\7f688869
+Ref: gnutls_x509_crq_print\7f689209
+Ref: gnutls_x509_crq_set_attribute_by_oid\7f689868
+Ref: gnutls_x509_crq_set_basic_constraints\7f690578
+Ref: gnutls_x509_crq_set_challenge_password\7f691322
+Ref: gnutls_x509_crq_set_dn_by_oid\7f691792
+Ref: gnutls_x509_crq_set_key\7f692901
+Ref: gnutls_x509_crq_set_key_purpose_oid\7f693369
+Ref: gnutls_x509_crq_set_key_rsa_raw\7f694148
+Ref: gnutls_x509_crq_set_key_usage\7f694729
+Ref: gnutls_x509_crq_set_private_key_usage_period\7f695233
+Ref: gnutls_x509_crq_set_subject_alt_name\7f695762
+Ref: gnutls_x509_crq_set_version\7f696560
+Ref: gnutls_x509_crq_sign2\7f697052
+Ref: gnutls_x509_crq_verify\7f698033
+Ref: gnutls_x509_crt_check_hostname\7f698632
+Ref: gnutls_x509_crt_check_issuer\7f699281
+Ref: gnutls_x509_crt_check_revocation\7f699937
+Ref: gnutls_x509_crt_cpy_crl_dist_points\7f700588
+Ref: gnutls_x509_crt_deinit\7f701177
+Ref: gnutls_x509_crt_export\7f701400
+Ref: gnutls_x509_crt_get_activation_time\7f702335
+Ref: gnutls_x509_crt_get_authority_info_access\7f702718
+Ref: gnutls_x509_crt_get_authority_key_gn_serial\7f706111
+Ref: gnutls_x509_crt_get_authority_key_id\7f707555
+Ref: gnutls_x509_crt_get_basic_constraints\7f708690
+Ref: gnutls_x509_crt_get_ca_status\7f709908
+Ref: gnutls_x509_crt_get_crl_dist_points\7f710794
+Ref: gnutls_x509_crt_get_dn\7f712526
+Ref: gnutls_x509_crt_get_dn_by_oid\7f713390
+Ref: gnutls_x509_crt_get_dn_oid\7f715068
+Ref: gnutls_x509_crt_get_expiration_time\7f716007
+Ref: gnutls_x509_crt_get_extension_by_oid\7f716378
+Ref: gnutls_x509_crt_get_extension_data\7f717498
+Ref: gnutls_x509_crt_get_extension_info\7f718596
+Ref: gnutls_x509_crt_get_extension_oid\7f719957
+Ref: gnutls_x509_crt_get_fingerprint\7f720920
+Ref: gnutls_x509_crt_get_issuer\7f721715
+Ref: gnutls_x509_crt_get_issuer_alt_name\7f722355
+Ref: gnutls_x509_crt_get_issuer_alt_name2\7f724159
+Ref: gnutls_x509_crt_get_issuer_alt_othername_oid\7f725745
+Ref: gnutls_x509_crt_get_issuer_dn\7f727399
+Ref: gnutls_x509_crt_get_issuer_dn_by_oid\7f728289
+Ref: gnutls_x509_crt_get_issuer_dn_oid\7f729984
+Ref: gnutls_x509_crt_get_issuer_unique_id\7f730929
+Ref: gnutls_x509_crt_get_key_id\7f731746
+Ref: gnutls_x509_crt_get_key_purpose_oid\7f732733
+Ref: gnutls_x509_crt_get_key_usage\7f733894
+Ref: gnutls_x509_crt_get_pk_algorithm\7f734965
+Ref: gnutls_x509_crt_get_pk_dsa_raw\7f735686
+Ref: gnutls_x509_crt_get_pk_rsa_raw\7f736354
+Ref: gnutls_x509_crt_get_private_key_usage_period\7f736968
+Ref: gnutls_x509_crt_get_proxy\7f737723
+Ref: gnutls_x509_crt_get_raw_dn\7f738748
+Ref: gnutls_x509_crt_get_raw_issuer_dn\7f739352
+Ref: gnutls_x509_crt_get_serial\7f739942
+Ref: gnutls_x509_crt_get_signature\7f740687
+Ref: gnutls_x509_crt_get_signature_algorithm\7f741293
+Ref: gnutls_x509_crt_get_subject\7f741766
+Ref: gnutls_x509_crt_get_subject_alt_name\7f742411
+Ref: gnutls_x509_crt_get_subject_alt_name2\7f744174
+Ref: gnutls_x509_crt_get_subject_alt_othername_oid\7f745743
+Ref: gnutls_x509_crt_get_subject_key_id\7f747388
+Ref: gnutls_x509_crt_get_subject_unique_id\7f748224
+Ref: gnutls_x509_crt_get_version\7f749023
+Ref: gnutls_x509_crt_import\7f749355
+Ref: gnutls_x509_crt_init\7f750049
+Ref: gnutls_x509_crt_list_import\7f750388
+Ref: gnutls_x509_crt_list_import2\7f751752
+Ref: gnutls_x509_crt_list_verify\7f752720
+Ref: gnutls_x509_crt_print\7f754391
+Ref: gnutls_x509_crt_set_activation_time\7f755286
+Ref: gnutls_x509_crt_set_authority_info_access\7f755753
+Ref: gnutls_x509_crt_set_authority_key_id\7f756648
+Ref: gnutls_x509_crt_set_basic_constraints\7f757230
+Ref: gnutls_x509_crt_set_ca_status\7f757929
+Ref: gnutls_x509_crt_set_crl_dist_points\7f758527
+Ref: gnutls_x509_crt_set_crl_dist_points2\7f759179
+Ref: gnutls_x509_crt_set_crq\7f759878
+Ref: gnutls_x509_crt_set_crq_extensions\7f760435
+Ref: gnutls_x509_crt_set_dn_by_oid\7f760911
+Ref: gnutls_x509_crt_set_expiration_time\7f762028
+Ref: gnutls_x509_crt_set_extension_by_oid\7f762467
+Ref: gnutls_x509_crt_set_issuer_dn_by_oid\7f763263
+Ref: gnutls_x509_crt_set_key\7f764516
+Ref: gnutls_x509_crt_set_key_purpose_oid\7f765023
+Ref: gnutls_x509_crt_set_key_usage\7f765791
+Ref: gnutls_x509_crt_set_private_key_usage_period\7f766266
+Ref: gnutls_x509_crt_set_proxy\7f766773
+Ref: gnutls_x509_crt_set_proxy_dn\7f767587
+Ref: gnutls_x509_crt_set_serial\7f768611
+Ref: gnutls_x509_crt_set_subject_alt_name\7f769269
+Ref: gnutls_x509_crt_set_subject_alternative_name\7f770091
+Ref: gnutls_x509_crt_set_subject_key_id\7f770915
+Ref: gnutls_x509_crt_set_version\7f771407
+Ref: gnutls_x509_crt_sign\7f772230
+Ref: gnutls_x509_crt_sign2\7f772785
+Ref: gnutls_x509_crt_verify\7f773653
+Ref: gnutls_x509_dn_deinit\7f774460
+Ref: gnutls_x509_dn_export\7f774722
+Ref: gnutls_x509_dn_get_rdn_ava\7f775624
+Ref: gnutls_x509_dn_import\7f776357
+Ref: gnutls_x509_dn_init\7f776983
+Ref: gnutls_x509_dn_oid_known\7f777409
+Ref: gnutls_x509_dn_oid_name\7f778078
+Ref: gnutls_x509_privkey_cpy\7f778611
+Ref: gnutls_x509_privkey_deinit\7f779081
+Ref: gnutls_x509_privkey_export\7f779328
+Ref: gnutls_x509_privkey_export_dsa_raw\7f780407
+Ref: gnutls_x509_privkey_export_ecc_raw\7f781183
+Ref: gnutls_x509_privkey_export_pkcs8\7f781966
+Ref: gnutls_x509_privkey_export_rsa_raw\7f783471
+Ref: gnutls_x509_privkey_export_rsa_raw2\7f784368
+Ref: gnutls_x509_privkey_fix\7f785390
+Ref: gnutls_x509_privkey_generate\7f785783
+Ref: gnutls_x509_privkey_get_key_id\7f786532
+Ref: gnutls_x509_privkey_get_pk_algorithm\7f787523
+Ref: gnutls_x509_privkey_import\7f787934
+Ref: gnutls_x509_privkey_import_dsa_raw\7f788748
+Ref: gnutls_x509_privkey_import_ecc_raw\7f789474
+Ref: gnutls_x509_privkey_import_pkcs8\7f790183
+Ref: gnutls_x509_privkey_import_rsa_raw\7f791496
+Ref: gnutls_x509_privkey_import_rsa_raw2\7f792355
+Ref: gnutls_x509_privkey_init\7f793323
+Ref: gnutls_x509_privkey_sec_param\7f793666
+Ref: gnutls_x509_privkey_verify_params\7f794103
+Ref: gnutls_x509_rdn_get\7f794460
+Ref: gnutls_x509_rdn_get_by_oid\7f795170
+Ref: gnutls_x509_rdn_get_oid\7f796152
+Ref: gnutls_x509_trust_list_add_cas\7f796912
+Ref: gnutls_x509_trust_list_add_crls\7f797531
+Ref: gnutls_x509_trust_list_add_named_crt\7f798516
+Ref: gnutls_x509_trust_list_deinit\7f799611
+Ref: gnutls_x509_trust_list_get_issuer\7f800012
+Ref: gnutls_x509_trust_list_init\7f800641
+Ref: gnutls_x509_trust_list_verify_crt\7f801134
+Ref: gnutls_x509_trust_list_verify_named_crt\7f802121
+Node: OCSP API\7f803162
+Ref: gnutls_ocsp_req_add_cert\7f803456
+Ref: gnutls_ocsp_req_add_cert_id\7f804421
+Ref: gnutls_ocsp_req_deinit\7f805746
+Ref: gnutls_ocsp_req_export\7f805968
+Ref: gnutls_ocsp_req_get_cert_id\7f806387
+Ref: gnutls_ocsp_req_get_extension\7f807978
+Ref: gnutls_ocsp_req_get_nonce\7f809309
+Ref: gnutls_ocsp_req_get_version\7f809962
+Ref: gnutls_ocsp_req_import\7f810338
+Ref: gnutls_ocsp_req_init\7f810839
+Ref: gnutls_ocsp_req_print\7f811159
+Ref: gnutls_ocsp_req_randomize_nonce\7f811889
+Ref: gnutls_ocsp_req_set_extension\7f812327
+Ref: gnutls_ocsp_req_set_nonce\7f813016
+Ref: gnutls_ocsp_resp_check_crt\7f813608
+Ref: gnutls_ocsp_resp_deinit\7f814170
+Ref: gnutls_ocsp_resp_export\7f814399
+Ref: gnutls_ocsp_resp_get_certs\7f814823
+Ref: gnutls_ocsp_resp_get_extension\7f815947
+Ref: gnutls_ocsp_resp_get_nonce\7f817286
+Ref: gnutls_ocsp_resp_get_produced\7f817951
+Ref: gnutls_ocsp_resp_get_responder\7f818297
+Ref: gnutls_ocsp_resp_get_response\7f819047
+Ref: gnutls_ocsp_resp_get_signature\7f820174
+Ref: gnutls_ocsp_resp_get_signature_algorithm\7f820662
+Ref: gnutls_ocsp_resp_get_single\7f821139
+Ref: gnutls_ocsp_resp_get_status\7f823877
+Ref: gnutls_ocsp_resp_get_version\7f824295
+Ref: gnutls_ocsp_resp_import\7f824692
+Ref: gnutls_ocsp_resp_init\7f825259
+Ref: gnutls_ocsp_resp_print\7f825586
+Ref: gnutls_ocsp_resp_verify\7f826306
+Ref: gnutls_ocsp_resp_verify_direct\7f827898
+Node: OpenPGP API\7f829010
+Ref: gnutls_certificate_set_openpgp_key\7f829330
+Ref: gnutls_certificate_set_openpgp_key_file\7f830261
+Ref: gnutls_certificate_set_openpgp_key_file2\7f831005
+Ref: gnutls_certificate_set_openpgp_key_mem\7f832012
+Ref: gnutls_certificate_set_openpgp_key_mem2\7f832769
+Ref: gnutls_certificate_set_openpgp_keyring_file\7f833793
+Ref: gnutls_certificate_set_openpgp_keyring_mem\7f834513
+Ref: gnutls_openpgp_crt_check_hostname\7f835273
+Ref: gnutls_openpgp_crt_deinit\7f835839
+Ref: gnutls_openpgp_crt_export\7f836062
+Ref: gnutls_openpgp_crt_get_auth_subkey\7f836827
+Ref: gnutls_openpgp_crt_get_creation_time\7f837541
+Ref: gnutls_openpgp_crt_get_expiration_time\7f837872
+Ref: gnutls_openpgp_crt_get_fingerprint\7f838253
+Ref: gnutls_openpgp_crt_get_key_id\7f838812
+Ref: gnutls_openpgp_crt_get_key_usage\7f839200
+Ref: gnutls_openpgp_crt_get_name\7f839762
+Ref: gnutls_openpgp_crt_get_pk_algorithm\7f840492
+Ref: gnutls_openpgp_crt_get_pk_dsa_raw\7f841210
+Ref: gnutls_openpgp_crt_get_pk_rsa_raw\7f841911
+Ref: gnutls_openpgp_crt_get_preferred_key_id\7f842552
+Ref: gnutls_openpgp_crt_get_revoked_status\7f843020
+Ref: gnutls_openpgp_crt_get_subkey_count\7f843394
+Ref: gnutls_openpgp_crt_get_subkey_creation_time\7f843805
+Ref: gnutls_openpgp_crt_get_subkey_expiration_time\7f844231
+Ref: gnutls_openpgp_crt_get_subkey_fingerprint\7f844703
+Ref: gnutls_openpgp_crt_get_subkey_id\7f845364
+Ref: gnutls_openpgp_crt_get_subkey_idx\7f845788
+Ref: gnutls_openpgp_crt_get_subkey_pk_algorithm\7f846202
+Ref: gnutls_openpgp_crt_get_subkey_pk_dsa_raw\7f847043
+Ref: gnutls_openpgp_crt_get_subkey_pk_rsa_raw\7f847814
+Ref: gnutls_openpgp_crt_get_subkey_revoked_status\7f848521
+Ref: gnutls_openpgp_crt_get_subkey_usage\7f848999
+Ref: gnutls_openpgp_crt_get_version\7f849681
+Ref: gnutls_openpgp_crt_import\7f850019
+Ref: gnutls_openpgp_crt_init\7f850587
+Ref: gnutls_openpgp_crt_print\7f850880
+Ref: gnutls_openpgp_crt_set_preferred_key_id\7f851552
+Ref: gnutls_openpgp_crt_verify_ring\7f852181
+Ref: gnutls_openpgp_crt_verify_self\7f852920
+Ref: gnutls_openpgp_keyring_check_id\7f853514
+Ref: gnutls_openpgp_keyring_deinit\7f854022
+Ref: gnutls_openpgp_keyring_get_crt\7f854285
+Ref: gnutls_openpgp_keyring_get_crt_count\7f854952
+Ref: gnutls_openpgp_keyring_import\7f855327
+Ref: gnutls_openpgp_keyring_init\7f855949
+Ref: gnutls_openpgp_privkey_deinit\7f856274
+Ref: gnutls_openpgp_privkey_export\7f856523
+Ref: gnutls_openpgp_privkey_export_dsa_raw\7f857505
+Ref: gnutls_openpgp_privkey_export_rsa_raw\7f858280
+Ref: gnutls_openpgp_privkey_export_subkey_dsa_raw\7f859186
+Ref: gnutls_openpgp_privkey_export_subkey_rsa_raw\7f860031
+Ref: gnutls_openpgp_privkey_get_fingerprint\7f860981
+Ref: gnutls_openpgp_privkey_get_key_id\7f861585
+Ref: gnutls_openpgp_privkey_get_pk_algorithm\7f861988
+Ref: gnutls_openpgp_privkey_get_preferred_key_id\7f862769
+Ref: gnutls_openpgp_privkey_get_revoked_status\7f863271
+Ref: gnutls_openpgp_privkey_get_subkey_count\7f863707
+Ref: gnutls_openpgp_privkey_get_subkey_creation_time\7f864134
+Ref: gnutls_openpgp_privkey_get_subkey_fingerprint\7f864565
+Ref: gnutls_openpgp_privkey_get_subkey_id\7f865240
+Ref: gnutls_openpgp_privkey_get_subkey_idx\7f865717
+Ref: gnutls_openpgp_privkey_get_subkey_pk_algorithm\7f866159
+Ref: gnutls_openpgp_privkey_get_subkey_revoked_status\7f867028
+Ref: gnutls_openpgp_privkey_import\7f867500
+Ref: gnutls_openpgp_privkey_init\7f868211
+Ref: gnutls_openpgp_privkey_sec_param\7f868538
+Ref: gnutls_openpgp_privkey_set_preferred_key_id\7f869001
+Ref: gnutls_openpgp_set_recv_key_function\7f869660
+Node: PKCS 12 API\7f870111
+Ref: gnutls_pkcs12_bag_decrypt\7f870404
+Ref: gnutls_pkcs12_bag_deinit\7f870836
+Ref: gnutls_pkcs12_bag_encrypt\7f871064
+Ref: gnutls_pkcs12_bag_get_count\7f871569
+Ref: gnutls_pkcs12_bag_get_data\7f871881
+Ref: gnutls_pkcs12_bag_get_friendly_name\7f872482
+Ref: gnutls_pkcs12_bag_get_key_id\7f873114
+Ref: gnutls_pkcs12_bag_get_type\7f873728
+Ref: gnutls_pkcs12_bag_init\7f874074
+Ref: gnutls_pkcs12_bag_set_crl\7f874524
+Ref: gnutls_pkcs12_bag_set_crt\7f874957
+Ref: gnutls_pkcs12_bag_set_data\7f875403
+Ref: gnutls_pkcs12_bag_set_friendly_name\7f875874
+Ref: gnutls_pkcs12_bag_set_key_id\7f876553
+Ref: gnutls_pkcs12_deinit\7f877204
+Ref: gnutls_pkcs12_export\7f877416
+Ref: gnutls_pkcs12_generate_mac\7f878346
+Ref: gnutls_pkcs12_get_bag\7f878754
+Ref: gnutls_pkcs12_import\7f879369
+Ref: gnutls_pkcs12_init\7f880095
+Ref: gnutls_pkcs12_set_bag\7f880523
+Ref: gnutls_pkcs12_verify_mac\7f880930
+Node: PKCS 11 API\7f881291
+Ref: gnutls_pkcs11_add_provider\7f881629
+Ref: gnutls_pkcs11_copy_secret_key\7f882159
+Ref: gnutls_pkcs11_copy_x509_crt\7f882884
+Ref: gnutls_pkcs11_copy_x509_privkey\7f883538
+Ref: gnutls_pkcs11_deinit\7f884328
+Ref: gnutls_pkcs11_delete_url\7f884521
+Ref: gnutls_pkcs11_init\7f885013
+Ref: gnutls_pkcs11_obj_deinit\7f885975
+Ref: gnutls_pkcs11_obj_export\7f886224
+Ref: gnutls_pkcs11_obj_export_url\7f887181
+Ref: gnutls_pkcs11_obj_get_info\7f887703
+Ref: gnutls_pkcs11_obj_get_type\7f888573
+Ref: gnutls_pkcs11_obj_import_url\7f888934
+Ref: gnutls_pkcs11_obj_init\7f889658
+Ref: gnutls_pkcs11_obj_list_import_url\7f890033
+Ref: gnutls_pkcs11_privkey_deinit\7f890894
+Ref: gnutls_pkcs11_privkey_export_url\7f891155
+Ref: gnutls_pkcs11_privkey_generate\7f891665
+Ref: gnutls_pkcs11_privkey_get_info\7f892332
+Ref: gnutls_pkcs11_privkey_get_pk_algorithm\7f893219
+Ref: gnutls_pkcs11_privkey_import_url\7f893755
+Ref: gnutls_pkcs11_privkey_init\7f894476
+Ref: gnutls_pkcs11_reinit\7f894815
+Ref: gnutls_pkcs11_set_pin_function\7f895253
+Ref: gnutls_pkcs11_set_token_function\7f895764
+Ref: gnutls_pkcs11_token_get_flags\7f896170
+Ref: gnutls_pkcs11_token_get_info\7f896682
+Ref: gnutls_pkcs11_token_get_mechanism\7f897359
+Ref: gnutls_pkcs11_token_get_url\7f897972
+Ref: gnutls_pkcs11_token_init\7f898640
+Ref: gnutls_pkcs11_token_set_pin\7f899278
+Ref: gnutls_pkcs11_type_get_name\7f899898
+Ref: gnutls_x509_crt_import_pkcs11\7f900387
+Ref: gnutls_x509_crt_import_pkcs11_url\7f900907
+Ref: gnutls_x509_crt_list_import_pkcs11\7f901566
+Node: Abstract key API\7f903417
+Ref: gnutls_certificate_set_key\7f903740
+Ref: gnutls_certificate_set_retrieve_function2\7f905106
+Ref: gnutls_pcert_deinit\7f906971
+Ref: gnutls_pcert_import_openpgp\7f907216
+Ref: gnutls_pcert_import_openpgp_raw\7f907826
+Ref: gnutls_pcert_import_x509\7f908604
+Ref: gnutls_pcert_import_x509_raw\7f909202
+Ref: gnutls_pcert_list_import_x509_raw\7f909905
+Ref: gnutls_privkey_decrypt_data\7f910948
+Ref: gnutls_privkey_deinit\7f911582
+Ref: gnutls_privkey_get_pk_algorithm\7f911841
+Ref: gnutls_privkey_get_type\7f912460
+Ref: gnutls_privkey_import_ext\7f912946
+Ref: gnutls_privkey_import_openpgp\7f913789
+Ref: gnutls_privkey_import_pkcs11\7f914624
+Ref: gnutls_privkey_import_x509\7f915375
+Ref: gnutls_privkey_init\7f916106
+Ref: gnutls_privkey_sign_data\7f916451
+Ref: gnutls_privkey_sign_hash\7f917440
+Ref: gnutls_pubkey_deinit\7f918413
+Ref: gnutls_pubkey_encrypt_data\7f918659
+Ref: gnutls_pubkey_export\7f919219
+Ref: gnutls_pubkey_get_key_id\7f920239
+Ref: gnutls_pubkey_get_key_usage\7f921228
+Ref: gnutls_pubkey_get_openpgp_key_id\7f921730
+Ref: gnutls_pubkey_get_pk_algorithm\7f922932
+Ref: gnutls_pubkey_get_pk_dsa_raw\7f923557
+Ref: gnutls_pubkey_get_pk_ecc_raw\7f924238
+Ref: gnutls_pubkey_get_pk_ecc_x962\7f924881
+Ref: gnutls_pubkey_get_pk_rsa_raw\7f925533
+Ref: gnutls_pubkey_get_preferred_hash_algorithm\7f926161
+Ref: gnutls_pubkey_get_verify_algorithm\7f926959
+Ref: gnutls_pubkey_import\7f927581
+Ref: gnutls_pubkey_import_dsa_raw\7f928300
+Ref: gnutls_pubkey_import_ecc_raw\7f928961
+Ref: gnutls_pubkey_import_ecc_x962\7f929569
+Ref: gnutls_pubkey_import_openpgp\7f930203
+Ref: gnutls_pubkey_import_pkcs11\7f930838
+Ref: gnutls_pubkey_import_pkcs11_url\7f931391
+Ref: gnutls_pubkey_import_privkey\7f931903
+Ref: gnutls_pubkey_import_rsa_raw\7f932498
+Ref: gnutls_pubkey_import_x509\7f933048
+Ref: gnutls_pubkey_init\7f933531
+Ref: gnutls_pubkey_set_key_usage\7f933879
+Ref: gnutls_pubkey_verify_data\7f934438
+Ref: gnutls_pubkey_verify_data2\7f935076
+Ref: gnutls_pubkey_verify_hash\7f935781
+Ref: gnutls_pubkey_verify_hash2\7f936544
+Ref: gnutls_x509_crl_privkey_sign\7f937265
+Ref: gnutls_x509_crq_privkey_sign\7f938187
+Ref: gnutls_x509_crq_set_pubkey\7f939200
+Ref: gnutls_x509_crt_privkey_sign\7f939671
+Ref: gnutls_x509_crt_set_pubkey\7f940549
+Node: Cryptographic API\7f940961
+Ref: gnutls_cipher_add_auth\7f941295
+Ref: gnutls_cipher_decrypt\7f941877
+Ref: gnutls_cipher_decrypt2\7f942361
+Ref: gnutls_cipher_deinit\7f942973
+Ref: gnutls_cipher_encrypt\7f943258
+Ref: gnutls_cipher_encrypt2\7f943718
+Ref: gnutls_cipher_get_block_size\7f944346
+Ref: gnutls_cipher_init\7f944647
+Ref: gnutls_cipher_set_iv\7f945366
+Ref: gnutls_cipher_tag\7f945717
+Ref: gnutls_hash\7f946179
+Ref: gnutls_hash_deinit\7f946616
+Ref: gnutls_hash_fast\7f946950
+Ref: gnutls_hash_get_len\7f947461
+Ref: gnutls_hash_init\7f947789
+Ref: gnutls_hash_output\7f948331
+Ref: gnutls_hmac\7f948618
+Ref: gnutls_hmac_deinit\7f949055
+Ref: gnutls_hmac_fast\7f949388
+Ref: gnutls_hmac_get_len\7f950001
+Ref: gnutls_hmac_init\7f950316
+Ref: gnutls_hmac_output\7f950998
+Ref: gnutls_rnd\7f951281
+Node: Compatibility API\7f951633
+Ref: gnutls_certificate_set_rsa_export_params\7f952011
+Ref: gnutls_certificate_type_set_priority\7f952527
+Ref: gnutls_cipher_set_priority\7f953256
+Ref: gnutls_compression_set_priority\7f953980
+Ref: gnutls_kx_set_priority\7f954854
+Ref: gnutls_mac_set_priority\7f955559
+Ref: gnutls_openpgp_privkey_sign_hash\7f956276
+Ref: gnutls_protocol_set_priority\7f956978
+Ref: gnutls_rsa_export_get_modulus_bits\7f957522
+Ref: gnutls_rsa_export_get_pubkey\7f957887
+Ref: gnutls_rsa_params_cpy\7f958478
+Ref: gnutls_rsa_params_deinit\7f958907
+Ref: gnutls_rsa_params_export_pkcs1\7f959184
+Ref: gnutls_rsa_params_export_raw\7f960127
+Ref: gnutls_rsa_params_generate2\7f961044
+Ref: gnutls_rsa_params_import_pkcs1\7f961838
+Ref: gnutls_rsa_params_import_raw\7f962535
+Ref: gnutls_rsa_params_init\7f963337
+Ref: gnutls_set_default_export_priority\7f963718
+Ref: gnutls_sign_callback_get\7f964556
+Ref: gnutls_sign_callback_set\7f965052
+Ref: gnutls_x509_crl_sign\7f966006
+Ref: gnutls_x509_crq_sign\7f966621
+Ref: gnutls_x509_crt_get_preferred_hash_algorithm\7f967183
+Ref: gnutls_x509_crt_get_verify_algorithm\7f968073
+Ref: gnutls_x509_crt_verify_data\7f968785
+Ref: gnutls_x509_crt_verify_hash\7f969470
+Ref: gnutls_x509_privkey_sign_data\7f970210
+Ref: gnutls_x509_privkey_sign_hash\7f971479
+Node: Copying Information\7f972132
+Node: Bibliography\7f997306
+Ref: CBCATT\7f997445
+Ref: GPGH\7f997622
+Ref: GUTPKI\7f997744
+Ref: KEYPIN\7f997918
+Ref: NISTSP80057\7f998092
+Ref: RFC2246\7f998339
+Ref: RFC4680\7f998494
+Ref: RFC4514\7f998651
+Ref: RFC4346\7f998854
+Ref: RFC4347\7f999003
+Ref: RFC5246\7f999169
+Ref: RFC2440\7f999319
+Ref: RFC4880\7f999500
+Ref: RFC4211\7f999693
+Ref: RFC2817\7f999886
+Ref: RFC2818\7f1000038
+Ref: RFC2945\7f1000151
+Ref: RFC2986\7f1000300
+Ref: PKIX\7f1000488
+Ref: RFC3749\7f1000750
+Ref: RFC3820\7f1000915
+Ref: RFC5746\7f1001157
+Ref: TLSTKT\7f1001365
+Ref: PKCS12\7f1001596
+Ref: PKCS11\7f1001736
+Ref: RESCORLA\7f1001881
+Ref: SELKEY\7f1001977
+Ref: SSL3\7f1002135
+Ref: STEVENS\7f1002325
+Ref: TLSEXT\7f1002433
+Ref: TLSPGP\7f1002649
+Ref: TLSSRP\7f1002813
+Ref: TLSPSK\7f1003009
+Ref: TOMSRP\7f1003177
+Ref: WEGER\7f1003289
+Ref: ECRYPT\7f1003480
+Ref: RFC5056\7f1003684
+Ref: RFC5929\7f1003836
+Ref: PKCS11URI\7f1003978
+Ref: ANDERSON\7f1004160
+Ref: RFC4821\7f1004306
+Ref: RFC2560\7f1004458
+Ref: RIVESTCRL\7f1004651
+Node: Function and Data Index\7f1005011
+Node: Concept Index\7f1082416
 \1f
 End Tag Table
diff --git a/doc/gnutls.info-1 b/doc/gnutls.info-1
new file mode 100644 (file)
index 0000000..f7e5193
--- /dev/null
@@ -0,0 +1,7324 @@
+This is gnutls.info, produced by makeinfo version 4.13.90 from
+gnutls.texi.
+
+This manual is last updated 2 September 2012 for version 3.0.30 of
+GnuTLS.
+
+Copyright (C) 2001-2012 Free Software Foundation, Inc.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.3 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, no Front-Cover Texts, and
+     no Back-Cover Texts.  A copy of the license is included in the
+     section entitled "GNU Free Documentation License".
+INFO-DIR-SECTION Software libraries
+START-INFO-DIR-ENTRY
+* GnuTLS: (gnutls).            GNU Transport Layer Security Library.
+END-INFO-DIR-ENTRY
+
+INFO-DIR-SECTION System Administration
+START-INFO-DIR-ENTRY
+* certtool: (gnutls)Invoking certtool. Manipulate certificates and keys.
+* gnutls-serv: (gnutls)Invoking gnutls-serv.   GnuTLS test server.
+* gnutls-cli: (gnutls)Invoking gnutls-cli.     GnuTLS test client.
+* gnutls-cli-debug: (gnutls)Invoking gnutls-cli-debug. GnuTLS debug client.
+* psktool: (gnutls)Invoking psktool.   Simple TLS-Pre-Shared-Keys manager.
+* srptool: (gnutls)Invoking srptool.   Simple SRP password tool.
+END-INFO-DIR-ENTRY
+
+\1f
+File: gnutls.info,  Node: Top,  Next: Preface,  Up: (dir)
+
+GnuTLS
+******
+
+This manual is last updated 2 September 2012 for version 3.0.30 of
+GnuTLS.
+
+Copyright (C) 2001-2012 Free Software Foundation, Inc.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.3 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, no Front-Cover Texts, and
+     no Back-Cover Texts.  A copy of the license is included in the
+     section entitled "GNU Free Documentation License".
+
+* Menu:
+
+* Preface::
+* Introduction to GnuTLS::
+* Introduction to TLS::
+* Certificate authentication::
+* Shared-key and anonymous authentication::
+* More on certificate authentication::
+* How to use GnuTLS in applications::
+* GnuTLS application examples::
+* Other included programs::
+* Internal architecture of GnuTLS::
+* Upgrading from previous versions::
+* Support::
+* Error codes::
+* Supported ciphersuites::
+* API reference::
+* Copying Information::
+* Bibliography::
+* Function and Data Index::
+* Concept Index::
+
+\1f
+File: gnutls.info,  Node: Preface,  Next: Introduction to GnuTLS,  Prev: Top,  Up: Top
+
+1 Preface
+*********
+
+This document demonstrates and explains the GnuTLS library API. A brief
+introduction to the protocols and the technology involved is also
+included so that an application programmer can better understand the
+GnuTLS purpose and actual offerings.  Even if GnuTLS is a typical
+library software, it operates over several security and cryptographic
+protocols which require the programmer to make careful and correct usage
+of them.  Otherwise it is likely to only obtain a false sense of
+security.  The term of security is very broad even if restricted to
+computer software, and cannot be confined to a single cryptographic
+library.  For that reason, do not consider any program secure just
+because it uses GnuTLS; there are several ways to compromise a program
+or a communication line and GnuTLS only helps with some of them.
+
+Although this document tries to be self contained, basic network
+programming and public key infrastructure (PKI) knowledge is assumed in
+most of it.  A good introduction to networking can be found in
+[_STEVENS_], to public key infrastructure in [_GUTPKI_] and to security
+engineering in [_ANDERSON_].
+
+Updated versions of the GnuTLS software and this document will be
+available from <http://www.gnutls.org/> and
+<http://www.gnu.org/software/gnutls/>.
+
+\1f
+File: gnutls.info,  Node: Introduction to GnuTLS,  Next: Introduction to TLS,  Prev: Preface,  Up: Top
+
+2 Introduction to GnuTLS
+************************
+
+In brief GnuTLS can be described as a library which offers an API to
+access secure communication protocols.  These protocols provide privacy
+over insecure lines, and were designed to prevent eavesdropping,
+tampering, or message forgery.
+
+Technically GnuTLS is a portable ANSI C based library which implements
+the protocols ranging from SSL 3.0 to TLS 1.2 (see *note Introduction to
+TLS::, for a detailed description of the protocols), accompanied with
+the required framework for authentication and public key infrastructure.
+Important features of the GnuTLS library include:
+
+   * Support for TLS 1.2, TLS 1.1, TLS 1.0 and SSL 3.0 protocols.
+
+   * Support for Datagram TLS 1.0.
+
+   * Support for handling and verification of X.509 and OpenPGP
+     certificates.
+
+   * Support for password authentication using TLS-SRP.
+
+   * Support for keyed authentication using TLS-PSK.
+
+   * Support for PKCS #11 tokens and smart-cards.
+
+The GnuTLS library consists of three independent parts, namely the "TLS
+protocol part", the "Certificate part", and the "Cryptographic back-end"
+part.  The "TLS protocol part" is the actual protocol implementation,
+and is entirely implemented within the GnuTLS library.  The "Certificate
+part" consists of the certificate parsing, and verification functions
+and it uses functionality from the libtasn1(1) library.  The
+"Cryptographic back-end" is provided by the nettle(2) library.
+
+* Menu:
+
+* Downloading and installing::
+* Document overview::
+
+   ---------- Footnotes ----------
+
+   (1) <http://www.gnu.org/software/libtasn1/>
+
+   (2) <http://www.lysator.liu.se/~nisse/nettle/>
+
+\1f
+File: gnutls.info,  Node: Downloading and installing,  Next: Document overview,  Up: Introduction to GnuTLS
+
+2.1 Downloading and installing
+==============================
+
+GnuTLS is available for download at:
+<http://www.gnutls.org/download.html>
+
+GnuTLS uses a development cycle where even minor version numbers
+indicate a stable release and a odd minor version number indicate a
+development release.  For example, GnuTLS 1.6.3 denote a stable release
+since 6 is even, and GnuTLS 1.7.11 denote a development release since 7
+is odd.
+
+GnuTLS depends on Libnettle, and you will need to install it before
+installing GnuTLS. Libnettle is available from
+<http://www.lysator.liu.se/~nisse/nettle/>.  Don't forget to verify the
+cryptographic signature after downloading source code packages.
+
+The package is then extracted, configured and built like many other
+packages that use Autoconf.  For detailed information on configuring and
+building it, refer to the 'INSTALL' file that is part of the
+distribution archive.  Typically you invoke './configure' and then 'make
+check install'.  There are a number of compile-time parameters, as
+discussed below.
+
+The compression library, libz, as well as p11-kit are a optional
+dependencies.  You can get libz from <http://www.zlib.net/> and p11-kit
+from <http://p11-glue.freedesktop.org/>.
+
+The X.509 part of GnuTLS needs ASN.1 functionality, from a library
+called libtasn1.  A copy of libtasn1 is included in GnuTLS. If you want
+to install it separately (e.g., to make it possibly to use libtasn1 in
+other programs), you can get it from
+<http://www.gnu.org/software/gnutls/download.html>.
+
+A few 'configure' options may be relevant, summarized below.  They
+disable or enable particular features, to create a smaller library with
+only the required features.  Note however, that although a smaller
+library is generated, the included programs are not guarranteed to
+compile if some of these options are given.
+
+--disable-srp-authentication
+--disable-psk-authentication
+--disable-anon-authentication
+--disable-extra-pki
+--disable-openpgp-authentication
+--disable-openssl-compatibility
+--without-p11-kit
+
+For the complete list, refer to the output from 'configure --help'.
+
+\1f
+File: gnutls.info,  Node: Document overview,  Prev: Downloading and installing,  Up: Introduction to GnuTLS
+
+2.2 Overview
+============
+
+In this document we present an overview of the supported security
+protocols in *note Introduction to TLS::, and continue by providing more
+information on the certificate authentication in *note Certificate
+authentication::, and shared-key as well anonymous authentication in
+*note Shared-key and anonymous authentication::.  We elaborate on
+certificate authentication by demonstrating advanced usage of the API in
+*note More on certificate authentication::.  The core of the TLS library
+is presented in *note How to use GnuTLS in applications:: and example
+applications are listed in *note GnuTLS application examples::.  In
+*note Other included programs:: the usage of few included programs that
+may assist debugging is presented.  The last chapter is *note Internal
+architecture of GnuTLS:: that provides a short introduction to GnuTLS'
+internal architecture.
+
+\1f
+File: gnutls.info,  Node: Introduction to TLS,  Next: Certificate authentication,  Prev: Introduction to GnuTLS,  Up: Top
+
+3 Introduction to TLS and DTLS
+******************************
+
+TLS stands for "Transport Layer Security" and is the successor of SSL,
+the Secure Sockets Layer protocol [_SSL3_] designed by Netscape.  TLS is
+an Internet protocol, defined by IETF(1), described in [_RFC5246_].  The
+protocol provides confidentiality, and authentication layers over any
+reliable transport layer.  The description, above, refers to TLS 1.0 but
+applies to all other TLS versions as the differences between the
+protocols are not major.
+
+The DTLS protocol, or "Datagram TLS" [_RFC4347_] is a protocol with
+identical goals as TLS, but can operate under unreliable transport
+layers such as UDP.  The discussions below apply to this protocol as
+well, except when noted otherwise.
+
+* Menu:
+
+* TLS layers::
+* The transport layer::
+* The TLS record protocol::
+* The TLS Alert Protocol::
+* The TLS Handshake Protocol::
+* TLS Extensions::
+* How to use TLS in application protocols::
+* On SSL 2 and older protocols::
+
+   ---------- Footnotes ----------
+
+   (1) IETF, or Internet Engineering Task Force, is a large open
+international community of network designers, operators, vendors, and
+researchers concerned with the evolution of the Internet architecture
+and the smooth operation of the Internet.  It is open to any interested
+individual.
+
+\1f
+File: gnutls.info,  Node: TLS layers,  Next: The transport layer,  Up: Introduction to TLS
+
+3.1 TLS layers
+==============
+
+TLS is a layered protocol, and consists of the record protocol, the
+handshake protocol and the alert protocol.  The record protocol is to
+serve all other protocols and is above the transport layer.  The record
+protocol offers symmetric encryption, data authenticity, and optionally
+compression.  The alert protocol offers some signaling to the other
+protocols.  It can help informing the peer for the cause of failures and
+other error conditions.  *Note The Alert Protocol::, for more
+information.  The alert protocol is above the record protocol.
+
+The handshake protocol is responsible for the security parameters'
+negotiation, the initial key exchange and authentication.  *Note The
+Handshake Protocol::, for more information about the handshake protocol.
+The protocol layering in TLS is shown in *note Figure 3.1:
+fig:tls-layers.
+
+\0\b[image src="gnutls-layers.png"\0\b]
+
+Figure 3.1: The TLS protocol layers.
+
+\1f
+File: gnutls.info,  Node: The transport layer,  Next: The TLS record protocol,  Prev: TLS layers,  Up: Introduction to TLS
+
+3.2 The transport layer
+=======================
+
+TLS is not limited to any transport layer and can be used above any
+transport layer, as long as it is a reliable one.  DTLS can be used over
+reliable and unreliable transport layers.  GnuTLS supports TCP and UDP
+layers transparently using the Berkeley sockets API. However, any
+transport layer can be used by providing callbacks for GnuTLS to access
+the transport layer (for details see *note Setting up the transport
+layer::).
+
+\1f
+File: gnutls.info,  Node: The TLS record protocol,  Next: The TLS Alert Protocol,  Prev: The transport layer,  Up: Introduction to TLS
+
+3.3 The TLS record protocol
+===========================
+
+The record protocol is the secure communications provider.  Its purpose
+is to encrypt, authenticate and --optionally-- compress packets.  The
+record layer functions can be called at any time after the handshake
+process is finished, when there is need to receive or send data.  In
+DTLS however, due to re-transmission timers used in the handshake
+out-of-order handshake data might be received for some time (maximum 60
+seconds) after the handshake process is finished.
+
+The functions to access the record protocol are limited to send and
+receive functions, which might, given the importance of this protocol in
+TLS, seem awkward.  This is because the record protocol's parameters are
+all set by the handshake protocol.  The record protocol initially starts
+with NULL parameters, which means no encryption, and no MAC is used.
+Encryption and authentication begin just after the handshake protocol
+has finished.
+
+* Menu:
+
+* Encryption algorithms used in the record layer::
+* Compression algorithms used in the record layer::
+* Weaknesses and countermeasures::
+* On Record Padding::
+
+\1f
+File: gnutls.info,  Node: Encryption algorithms used in the record layer,  Next: Compression algorithms used in the record layer,  Up: The TLS record protocol
+
+3.3.1 Encryption algorithms used in the record layer
+----------------------------------------------------
+
+Confidentiality in the record layer is achieved by using symmetric block
+encryption algorithms like '3DES', 'AES' or stream algorithms like
+'ARCFOUR_128'.  Ciphers are encryption algorithms that use a single,
+secret, key to encrypt and decrypt data.  Block algorithms in CBC mode
+also provide protection against statistical analysis of the data.  Thus,
+if you're using the TLS protocol, a random number of blocks will be
+appended to data, to prevent eavesdroppers from guessing the actual data
+size.
+
+The supported in GnuTLS ciphers and MAC algorithms are shown in *note
+Table 3.1: tab:ciphers. and *note Table 3.2: tab:macs.
+
+Algorithm      Description
+------------------------------------------------------------------
+3DES_CBC       This is the DES block cipher algorithm used with
+               triple encryption (EDE). Has 64 bits block size
+               and is used in CBC mode.
+               
+ARCFOUR_128    ARCFOUR_128 is a compatible algorithm with RSA's
+               RC4 algorithm, which is considered to be a trade
+               secret.  It is a fast cipher but considered weak
+               today.
+               
+ARCFOUR_40     This is the ARCFOUR cipher fed with a 40 bit
+               key, which is considered weak.
+               
+AES_CBC        AES or RIJNDAEL is the block cipher algorithm
+               that replaces the old DES algorithm.  Has 128
+               bits block size and is used in CBC mode.
+               
+AES_GCM        This is the AES algorithm in the authenticated
+               encryption GCM mode.  This mode combines message
+               authentication and encryption and can be
+               extremely fast on CPUs that support hardware
+               acceleration.
+               
+CAMELLIA_CBC   This is an 128-bit block cipher developed by
+               Mitsubishi and NTT. It is one of the approved
+               ciphers of the European NESSIE and Japanese
+               CRYPTREC projects.
+               
+
+Table 3.1: Supported ciphers.
+
+Algorithm      Description
+------------------------------------------------------------------
+MAC_MD5        This is an HMAC based on MD5 a cryptographic
+               hash algorithm designed by Ron Rivest.  Outputs
+               128 bits of data.
+               
+MAC_SHA1       An HMAC based on the SHA1 cryptographic hash
+               algorithm designed by NSA. Outputs 160 bits of
+               data.
+               
+MAC_SHA256     An HMAC based on SHA256.  Outputs 256 bits of
+               data.
+               
+MAC_AEAD       This indicates that an authenticated encryption
+               algorithm, such as GCM, is in use.
+               
+
+Table 3.2: Supported MAC algorithms.
+
+\1f
+File: gnutls.info,  Node: Compression algorithms used in the record layer,  Next: Weaknesses and countermeasures,  Prev: Encryption algorithms used in the record layer,  Up: The TLS record protocol
+
+3.3.2 Compression algorithms used in the record layer
+-----------------------------------------------------
+
+The TLS record layer also supports compression.  The algorithms
+implemented in GnuTLS can be found in the table below.  The included
+algorithms perform really good when text, or other compressible data are
+to be transferred, but offer nothing on already compressed data, such as
+compressed images, zipped archives etc.  These compression algorithms,
+may be useful in high bandwidth TLS tunnels, and in cases where network
+usage has to be minimized.  It should be noted however that compression
+increases latency.
+
+The record layer compression in GnuTLS is implemented based on
+[_RFC3749_].  The supported algorithms are shown below.
+
+'GNUTLS_COMP_UNKNOWN'
+     Unknown compression method.
+'GNUTLS_COMP_NULL'
+     The NULL compression method (no compression).
+'GNUTLS_COMP_DEFLATE'
+     The DEFLATE compression method from zlib.
+'GNUTLS_COMP_ZLIB'
+     Same as 'GNUTLS_COMP_DEFLATE' .
+
+Figure 3.2: Supported compression algorithms
+
+Note that compression enables attacks such as traffic analysis, or even
+plaintext recovery under certain circumstances.  To avoid some of these
+attacks GnuTLS allows each record to be compressed independently (i.e.,
+stateless compression), by using the "%STATELESS_COMPRESSION" priority
+string.
+
+\1f
+File: gnutls.info,  Node: Weaknesses and countermeasures,  Next: On Record Padding,  Prev: Compression algorithms used in the record layer,  Up: The TLS record protocol
+
+3.3.3 Weaknesses and countermeasures
+------------------------------------
+
+Some weaknesses that may affect the security of the record layer have
+been found in TLS 1.0 protocol.  These weaknesses can be exploited by
+active attackers, and exploit the facts that
+
+  1. TLS has separate alerts for "decryption_failed" and
+     "bad_record_mac"
+
+  2. The decryption failure reason can be detected by timing the
+     response time.
+
+  3. The IV for CBC encrypted packets is the last block of the previous
+     encrypted packet.
+
+Those weaknesses were solved in TLS 1.1 [_RFC4346_] which is implemented
+in GnuTLS.  For this reason we suggest to always negotiate the highest
+supported TLS version with the peer(1).  For a detailed discussion of
+the issues see the archives of the TLS Working Group mailing list and
+[_CBCATT_].
+
+   ---------- Footnotes ----------
+
+   (1) If this is not possible then please consult *note
+Interoperability::.
+
+\1f
+File: gnutls.info,  Node: On Record Padding,  Prev: Weaknesses and countermeasures,  Up: The TLS record protocol
+
+3.3.4 On record padding
+-----------------------
+
+The TLS protocol allows for random padding of records in CBC ciphers, to
+prevent statistical analysis based on the length of exchanged messages
+(see [_RFC5246_] section 6.2.3.2).  GnuTLS appears to be one of few
+implementation that take advantage of this text, and pad records by a
+random length.
+
+The TLS implementation in the Symbian operating system, frequently used
+by Nokia and Sony-Ericsson mobile phones, cannot handle non-minimal
+record padding.  What happens when one of these clients handshake with a
+GnuTLS server is that the client will fail to compute the correct MAC
+for the record.  The client sends a TLS alert ('bad_record_mac') and
+disconnects.  Typically this will result in error messages such as 'A
+TLS fatal alert has been received', 'Bad record MAC', or both, on the
+GnuTLS server side.
+
+GnuTLS implements a work around for this problem.  However, it has to be
+enabled specifically.  It can be enabled by using *note
+gnutls_record_disable_padding::, or *note gnutls_priority_set:: with the
+'%COMPAT' priority string (see *note Priority Strings::).
+
+If you implement an application that have a configuration file, we
+recommend that you make it possible for users or administrators to
+specify a GnuTLS protocol priority string, which is used by your
+application via *note gnutls_priority_set::.  To allow the best
+flexibility, make it possible to have a different priority string for
+different incoming IP addresses.
+
+\1f
+File: gnutls.info,  Node: The TLS Alert Protocol,  Next: The TLS Handshake Protocol,  Prev: The TLS record protocol,  Up: Introduction to TLS
+
+3.4 The TLS alert protocol
+==========================
+
+The alert protocol is there to allow signals to be sent between peers.
+These signals are mostly used to inform the peer about the cause of a
+protocol failure.  Some of these signals are used internally by the
+protocol and the application protocol does not have to cope with them
+(e.g.  'GNUTLS_A_CLOSE_NOTIFY'), and others refer to the application
+protocol solely (e.g.  'GNUTLS_A_USER_CANCELLED').  An alert signal
+includes a level indication which may be either fatal or warning.  Fatal
+alerts always terminate the current connection, and prevent future
+re-negotiations using the current session ID. All alert messages are
+summarized in the table below.
+
+The alert messages are protected by the record protocol, thus the
+information that is included does not leak.  You must take extreme care
+for the alert information not to leak to a possible attacker, via public
+log files etc.
+
+Alert                                    ID      Description
+------------------------------------------------------------------------
+GNUTLS_A_CLOSE_NOTIFY                    0       Close notify
+GNUTLS_A_UNEXPECTED_MESSAGE              10      Unexpected message
+GNUTLS_A_BAD_RECORD_MAC                  20      Bad record MAC
+GNUTLS_A_DECRYPTION_FAILED               21      Decryption failed
+GNUTLS_A_RECORD_OVERFLOW                 22      Record overflow
+GNUTLS_A_DECOMPRESSION_FAILURE           30      Decompression failed
+GNUTLS_A_HANDSHAKE_FAILURE               40      Handshake failed
+GNUTLS_A_SSL3_NO_CERTIFICATE             41      No certificate (SSL
+                                                 3.0)
+GNUTLS_A_BAD_CERTIFICATE                 42      Certificate is bad
+GNUTLS_A_UNSUPPORTED_CERTIFICATE         43      Certificate is not
+                                                 supported
+GNUTLS_A_CERTIFICATE_REVOKED             44      Certificate was
+                                                 revoked
+GNUTLS_A_CERTIFICATE_EXPIRED             45      Certificate is
+                                                 expired
+GNUTLS_A_CERTIFICATE_UNKNOWN             46      Unknown certificate
+GNUTLS_A_ILLEGAL_PARAMETER               47      Illegal parameter
+GNUTLS_A_UNKNOWN_CA                      48      CA is unknown
+GNUTLS_A_ACCESS_DENIED                   49      Access was denied
+GNUTLS_A_DECODE_ERROR                    50      Decode error
+GNUTLS_A_DECRYPT_ERROR                   51      Decrypt error
+GNUTLS_A_EXPORT_RESTRICTION              60      Export restriction
+GNUTLS_A_PROTOCOL_VERSION                70      Error in protocol
+                                                 version
+GNUTLS_A_INSUFFICIENT_SECURITY           71      Insufficient
+                                                 security
+GNUTLS_A_INTERNAL_ERROR                  80      Internal error
+GNUTLS_A_USER_CANCELED                   90      User canceled
+GNUTLS_A_NO_RENEGOTIATION                100     No renegotiation is
+                                                 allowed
+GNUTLS_A_UNSUPPORTED_EXTENSION           110     An unsupported
+                                                 extension was sent
+GNUTLS_A_CERTIFICATE_UNOBTAINABLE        111     Could not retrieve
+                                                 the specified
+                                                 certificate
+GNUTLS_A_UNRECOGNIZED_NAME               112     The server name sent
+                                                 was not recognized
+GNUTLS_A_UNKNOWN_PSK_IDENTITY            115     The SRP/PSK username
+                                                 is missing or not
+                                                 known
+
+\1f
+File: gnutls.info,  Node: The TLS Handshake Protocol,  Next: TLS Extensions,  Prev: The TLS Alert Protocol,  Up: Introduction to TLS
+
+3.5 The TLS handshake protocol
+==============================
+
+The handshake protocol is responsible for the ciphersuite negotiation,
+the initial key exchange, and the authentication of the two peers.  This
+is fully controlled by the application layer, thus your program has to
+set up the required parameters.  The main handshake function is *note
+gnutls_handshake::.  In the next paragraphs we elaborate on the
+handshake protocol, i.e., the ciphersuite negotiation.
+
+* Menu:
+
+* TLS Cipher Suites::           TLS session parameters.
+* Authentication::              TLS authentication.
+* Client Authentication::       Requesting a certificate from the client.
+* Resuming Sessions::           Reusing previously established keys.
+
+\1f
+File: gnutls.info,  Node: TLS Cipher Suites,  Next: Authentication,  Up: The TLS Handshake Protocol
+
+3.5.1 TLS ciphersuites
+----------------------
+
+The handshake protocol of TLS negotiates cipher suites of a special form
+illustrated by the 'TLS_DHE_RSA_WITH_3DES_CBC_SHA' cipher suite name.  A
+typical cipher suite contains these parameters:
+
+   * The key exchange algorithm.  'DHE_RSA' in the example.
+
+   * The Symmetric encryption algorithm and mode '3DES_CBC' in this
+     example.
+
+   * The MAC(1) algorithm used for authentication.  'MAC_SHA' is used in
+     the above example.
+
+The cipher suite negotiated in the handshake protocol will affect the
+record protocol, by enabling encryption and data authentication.  Note
+that you should not over rely on TLS to negotiate the strongest
+available cipher suite.  Do not enable ciphers and algorithms that you
+consider weak.
+
+All the supported ciphersuites are listed in *note ciphersuites::.
+
+   ---------- Footnotes ----------
+
+   (1) MAC stands for Message Authentication Code.  It can be described
+as a keyed hash algorithm.  See RFC2104.
+
+\1f
+File: gnutls.info,  Node: Authentication,  Next: Client Authentication,  Prev: TLS Cipher Suites,  Up: The TLS Handshake Protocol
+
+3.5.2 Authentication
+--------------------
+
+The key exchange algorithms of the TLS protocol offer authentication,
+which is a prerequisite for a secure connection.  The available
+authentication methods in GnuTLS follow.
+
+   * Certificate authentication: Authenticated key exchange using public
+     key infrastructure and certificates (X.509 or OpenPGP).
+   * SRP authentication: Authenticated key exchange using a password.
+   * PSK authentication: Authenticated key exchange using a pre-shared
+     key.
+   * Anonymous authentication: Key exchange without peer authentication.
+
+\1f
+File: gnutls.info,  Node: Client Authentication,  Next: Resuming Sessions,  Prev: Authentication,  Up: The TLS Handshake Protocol
+
+3.5.3 Client authentication
+---------------------------
+
+In the case of ciphersuites that use certificate authentication, the
+authentication of the client is optional in TLS.  A server may request a
+certificate from the client using the *note
+gnutls_certificate_server_set_request:: function.  We elaborate in *note
+Certificate credentials::.
+
+\1f
+File: gnutls.info,  Node: Resuming Sessions,  Prev: Client Authentication,  Up: The TLS Handshake Protocol
+
+3.5.4 Resuming sessions
+-----------------------
+
+The TLS handshake process performs expensive calculations and a busy
+server might easily be put under load.  To reduce the load, session
+resumption may be used.  This is a feature of the TLS protocol which
+allows a client to connect to a server after a successful handshake,
+without the expensive calculations.  This is achieved by re-using the
+previously established keys, meaning the server needs to store the state
+of established connections (unless session tickets are used - *note
+Session tickets::).
+
+Session resumption is an integral part of GnuTLS, and *note Session
+resumption:: and *note ex:resume-client:: illustrate typical uses of it.
+
+\1f
+File: gnutls.info,  Node: TLS Extensions,  Next: How to use TLS in application protocols,  Prev: The TLS Handshake Protocol,  Up: Introduction to TLS
+
+3.6 TLS extensions
+==================
+
+A number of extensions to the TLS protocol have been proposed mainly in
+[_TLSEXT_]. The extensions supported in GnuTLS are:
+
+   * Maximum fragment length negotiation
+   * Server name indication
+   * Session tickets
+   * Safe Renegotiation
+
+and they will be discussed in the subsections that follow.
+
+* Menu:
+
+* Maximum fragment length negotiation::
+* Server name indication::
+* Session tickets::
+* Safe renegotiation::
+
+\1f
+File: gnutls.info,  Node: Maximum fragment length negotiation,  Next: Server name indication,  Up: TLS Extensions
+
+3.6.1 Maximum fragment length negotiation
+-----------------------------------------
+
+This extension allows a TLS implementation to negotiate a smaller value
+for record packet maximum length.  This extension may be useful to
+clients with constrained capabilities.  The functions shown below can be
+used to control this extension.
+
+'SIZE_T *note gnutls_record_get_max_size:: (gnutls_session_t SESSION)'
+'SSIZE_T *note gnutls_record_set_max_size:: (gnutls_session_t SESSION, size_t SIZE)'
+
+\1f
+File: gnutls.info,  Node: Server name indication,  Next: Session tickets,  Prev: Maximum fragment length negotiation,  Up: TLS Extensions
+
+3.6.2 Server name indication
+----------------------------
+
+A common problem in HTTPS servers is the fact that the TLS protocol is
+not aware of the hostname that a client connects to, when the handshake
+procedure begins.  For that reason the TLS server has no way to know
+which certificate to send.
+
+This extension solves that problem within the TLS protocol, and allows a
+client to send the HTTP hostname before the handshake begins within the
+first handshake packet.  The functions *note gnutls_server_name_set::
+and *note gnutls_server_name_get:: can be used to enable this extension,
+or to retrieve the name sent by a client.
+
+'INT *note gnutls_server_name_set:: (gnutls_session_t SESSION, gnutls_server_name_type_t TYPE, const void * NAME, size_t NAME_LENGTH)'
+'INT *note gnutls_server_name_get:: (gnutls_session_t SESSION, void * DATA, size_t * DATA_LENGTH, unsigned int * TYPE, unsigned int INDX)'
+
+\1f
+File: gnutls.info,  Node: Session tickets,  Next: Safe renegotiation,  Prev: Server name indication,  Up: TLS Extensions
+
+3.6.3 Session tickets
+---------------------
+
+To resume a TLS session the server normally store session parameters.
+This complicates deployment, and could be avoiding by delegating the
+storage to the client.  Because session parameters are sensitive they
+are encrypted and authenticated with a key only known to the server and
+then sent to the client.  The Session Tickets in RFC 5077 [_TLSTKT_],
+describe this idea, which is implemented in GnuTLS.
+
+\1f
+File: gnutls.info,  Node: Safe renegotiation,  Prev: Session tickets,  Up: TLS Extensions
+
+3.6.4 Safe renegotiation
+------------------------
+
+TLS gives the option to two communicating parties to renegotiate and
+update their security parameters.  One useful example of this feature
+was for a client to initially connect using anonymous negotiation to a
+server, and the renegotiate using some authenticated ciphersuite.  This
+occurred to avoid having the client sending its credentials in the
+clear.
+
+However this renegotiation, as initially designed would not ensure that
+the party one is renegotiating is the same as the one in the initial
+negotiation.  For example one server could forward all renegotiation
+traffic to an other server who will see this traffic as an initial
+negotiation attempt.
+
+This might be seen as a valid design decision, but it seems it was not
+widely known or understood, thus today some application protocols the
+TLS renegotiation feature in a manner that enables a malicious server to
+insert content of his choice in the beginning of a TLS session.
+
+The most prominent vulnerability was with HTTPS. There servers request a
+renegotiation to enforce an anonymous user to use a certificate in order
+to access certain parts of a web site.  The attack works by having the
+attacker simulate a client and connect to a server, with server-only
+authentication, and send some data intended to cause harm.  The server
+will then require renegotiation from him in order to perform the
+request.  When the proper client attempts to contact the server, the
+attacker hijacks that connection and forwards traffic to the initial
+server that requested renegotiation.  The attacker will not be able to
+read the data exchanged between the client and the server.  However, the
+server will (incorrectly) assume that the initial request sent by the
+attacker was sent by the now authenticated client.  The result is a
+prefix plain-text injection attack.
+
+The above is just one example.  Other vulnerabilities exists that do not
+rely on the TLS renegotiation to change the client's authenticated
+status (either TLS or application layer).
+
+While fixing these application protocols and implementations would be
+one natural reaction, an extension to TLS has been designed that
+cryptographically binds together any renegotiated handshakes with the
+initial negotiation.  When the extension is used, the attack is detected
+and the session can be terminated.  The extension is specified in
+[_RFC5746_].
+
+GnuTLS supports the safe renegotiation extension.  The default behavior
+is as follows.  Clients will attempt to negotiate the safe renegotiation
+extension when talking to servers.  Servers will accept the extension
+when presented by clients.  Clients and servers will permit an initial
+handshake to complete even when the other side does not support the safe
+renegotiation extension.  Clients and servers will refuse renegotiation
+attempts when the extension has not been negotiated.
+
+Note that permitting clients to connect to servers when the safe
+renegotiation extension is not enabled, is open up for attacks.
+Changing this default behavior would prevent interoperability against
+the majority of deployed servers out there.  We will reconsider this
+default behavior in the future when more servers have been upgraded.
+Note that it is easy to configure clients to always require the safe
+renegotiation extension from servers.
+
+To modify the default behavior, we have introduced some new priority
+strings (see *note Priority Strings::).  The '%UNSAFE_RENEGOTIATION'
+priority string permits (re-)handshakes even when the safe renegotiation
+extension was not negotiated.  The default behavior is
+'%PARTIAL_RENEGOTIATION' that will prevent renegotiation with clients
+and servers not supporting the extension.  This is secure for servers
+but leaves clients vulnerable to some attacks, but this is a trade-off
+between security and compatibility with old servers.  The
+'%SAFE_RENEGOTIATION' priority string makes clients and servers require
+the extension for every handshake.  The latter is the most secure option
+for clients, at the cost of not being able to connect to legacy servers.
+Servers will also deny clients that do not support the extension from
+connecting.
+
+It is possible to disable use of the extension completely, in both
+clients and servers, by using the '%DISABLE_SAFE_RENEGOTIATION' priority
+string however we strongly recommend you to only do this for debugging
+and test purposes.
+
+The default values if the flags above are not specified are:
+
+'Server:'
+     %PARTIAL_RENEGOTIATION
+
+'Client:'
+     %PARTIAL_RENEGOTIATION
+
+For applications we have introduced a new API related to safe
+renegotiation.  The *note gnutls_safe_renegotiation_status:: function is
+used to check if the extension has been negotiated on a session, and can
+be used both by clients and servers.
+
+\1f
+File: gnutls.info,  Node: How to use TLS in application protocols,  Next: On SSL 2 and older protocols,  Prev: TLS Extensions,  Up: Introduction to TLS
+
+3.7 How to use TLS in application protocols
+===========================================
+
+This chapter is intended to provide some hints on how to use the TLS
+over simple custom made application protocols.  The discussion below
+mainly refers to the TCP/IP transport layer but may be extended to other
+ones too.
+
+* Menu:
+
+* Separate ports::
+* Upward negotiation::
+
+\1f
+File: gnutls.info,  Node: Separate ports,  Next: Upward negotiation,  Up: How to use TLS in application protocols
+
+3.7.1 Separate ports
+--------------------
+
+Traditionally SSL was used in application protocols by assigning a new
+port number for the secure services.  That way two separate ports were
+assigned, one for the non secure sessions, and one for the secured ones.
+This has the benefit that if a user requests a secure session then the
+client will try to connect to the secure port and fail otherwise.  The
+only possible attack with this method is a denial of service one.  The
+most famous example of this method is the famous "HTTP over TLS" or
+HTTPS protocol [_RFC2818_].
+
+Despite its wide use, this method is not as good as it seems.  This
+approach starts the TLS Handshake procedure just after the client
+connects on the --so called-- secure port.  That way the TLS protocol
+does not know anything about the client, and popular methods like the
+host advertising in HTTP do not work(1).  There is no way for the client
+to say "I connected to YYY server" before the Handshake starts, so the
+server cannot possibly know which certificate to use.
+
+Other than that it requires two separate ports to run a single service,
+which is unnecessary complication.  Due to the fact that there is a
+limitation on the available privileged ports, this approach was soon
+obsoleted.
+
+   ---------- Footnotes ----------
+
+   (1) See also the Server Name Indication extension on *note
+serverind::.
+
+\1f
+File: gnutls.info,  Node: Upward negotiation,  Prev: Separate ports,  Up: How to use TLS in application protocols
+
+3.7.2 Upward negotiation
+------------------------
+
+Other application protocols(1) use a different approach to enable the
+secure layer.  They use something often called as the "TLS upgrade"
+method.  This method is quite tricky but it is more flexible.  The idea
+is to extend the application protocol to have a "STARTTLS" request,
+whose purpose it to start the TLS protocols just after the client
+requests it.  This approach does not require any extra port to be
+reserved.  There is even an extension to HTTP protocol to support that
+method [_RFC2817_].
+
+The tricky part, in this method, is that the "STARTTLS" request is sent
+in the clear, thus is vulnerable to modifications.  A typical attack is
+to modify the messages in a way that the client is fooled and thinks
+that the server does not have the "STARTTLS" capability.  See a typical
+conversation of a hypothetical protocol:
+
+     (client connects to the server)
+
+     CLIENT: HELLO I'M MR. XXX
+
+     SERVER: NICE TO MEET YOU XXX
+
+     CLIENT: PLEASE START TLS
+
+     SERVER: OK
+
+     *** TLS STARTS
+
+     CLIENT: HERE ARE SOME CONFIDENTIAL DATA
+
+And see an example of a conversation where someone is acting in between:
+
+     (client connects to the server)
+
+     CLIENT: HELLO I'M MR. XXX
+
+     SERVER: NICE TO MEET YOU XXX
+
+     CLIENT: PLEASE START TLS
+
+     (here someone inserts this message)
+
+     SERVER: SORRY I DON'T HAVE THIS CAPABILITY
+
+     CLIENT: HERE ARE SOME CONFIDENTIAL DATA
+
+As you can see above the client was fooled, and was dummy enough to send
+the confidential data in the clear.
+
+How to avoid the above attack?  As you may have already noticed this one
+is easy to avoid.  The client has to ask the user before it connects
+whether the user requests TLS or not.  If the user answered that he
+certainly wants the secure layer the last conversation should be:
+
+     (client connects to the server)
+
+     CLIENT: HELLO I'M MR. XXX
+
+     SERVER: NICE TO MEET YOU XXX
+
+     CLIENT: PLEASE START TLS
+
+     (here someone inserts this message)
+
+     SERVER: SORRY I DON'T HAVE THIS CAPABILITY
+
+     CLIENT: BYE
+
+     (the client notifies the user that the secure connection was not
+     possible)
+
+This method, if implemented properly, is far better than the traditional
+method, and the security properties remain the same, since only denial
+of service is possible.  The benefit is that the server may request
+additional data before the TLS Handshake protocol starts, in order to
+send the correct certificate, use the correct password file, or anything
+else!
+
+   ---------- Footnotes ----------
+
+   (1) See LDAP, IMAP etc.
+
+\1f
+File: gnutls.info,  Node: On SSL 2 and older protocols,  Prev: How to use TLS in application protocols,  Up: Introduction to TLS
+
+3.8 On SSL 2 and older protocols
+================================
+
+One of the initial decisions in the GnuTLS development was to implement
+the known security protocols for the transport layer.  Initially TLS 1.0
+was implemented since it was the latest at that time, and was considered
+to be the most advanced in security properties.  Later the SSL 3.0
+protocol was implemented since it is still the only protocol supported
+by several servers and there are no serious security vulnerabilities
+known.
+
+One question that may arise is why we didn't implement SSL 2.0 in the
+library.  There are several reasons, most important being that it has
+serious security flaws, unacceptable for a modern security library.
+Other than that, this protocol is barely used by anyone these days since
+it has been deprecated since 1996.  The security problems in SSL 2.0
+include:
+
+   * Message integrity compromised.  The SSLv2 message authentication
+     uses the MD5 function, and is insecure.
+
+   * Man-in-the-middle attack.  There is no protection of the handshake
+     in SSLv2, which permits a man-in-the-middle attack.
+
+   * Truncation attack.  SSLv2 relies on TCP FIN to close the session,
+     so the attacker can forge a TCP FIN, and the peer cannot tell if it
+     was a legitimate end of data or not.
+
+   * Weak message integrity for export ciphers.  The cryptographic keys
+     in SSLv2 are used for both message authentication and encryption,
+     so if weak encryption schemes are negotiated (say 40-bit keys) the
+     message authentication code uses the same weak key, which isn't
+     necessary.
+
+Other protocols such as Microsoft's PCT 1 and PCT 2 were not implemented
+because they were also abandoned and deprecated by SSL 3.0 and later TLS
+1.0.
+
+\1f
+File: gnutls.info,  Node: Certificate authentication,  Next: Shared-key and anonymous authentication,  Prev: Introduction to TLS,  Up: Top
+
+4 Certificate authentication
+****************************
+
+The most known authentication method of TLS are certificates.  The PKIX
+[_PKIX_] public key infrastructure is daily used by anyone using a
+browser today.  GnuTLS supports both X.509 certificates [_PKIX_] and
+OpenPGP certificates using a common API.
+
+The key exchange algorithms supported by certificate authentication are
+shown in *note Table 4.1: tab:key-exchange.
+
+Key exchange   Description
+               
+------------------------------------------------------------------
+RSA            The RSA algorithm is used to encrypt a key and
+               send it to the peer.  The certificate must allow
+               the key to be used for encryption.
+               
+RSA_EXPORT     The RSA algorithm is used to encrypt a key and
+               send it to the peer.  In the EXPORT algorithm,
+               the server signs temporary RSA parameters of 512
+               bits -- which are considered weak -- and sends
+               them to the client.
+               
+DHE_RSA        The RSA algorithm is used to sign ephemeral
+               Diffie-Hellman parameters which are sent to the
+               peer.  The key in the certificate must allow the
+               key to be used for signing.  Note that key
+               exchange algorithms which use ephemeral
+               Diffie-Hellman parameters, offer perfect forward
+               secrecy.  That means that even if the private
+               key used for signing is compromised, it cannot
+               be used to reveal past session data.
+               
+ECDHE_RSA      The RSA algorithm is used to sign ephemeral
+               elliptic curve Diffie-Hellman parameters which
+               are sent to the peer.  The key in the
+               certificate must allow the key to be used for
+               signing.  It also offers perfect forward
+               secrecy.  That means that even if the private
+               key used for signing is compromised, it cannot
+               be used to reveal past session data.
+               
+DHE_DSS        The DSA algorithm is used to sign ephemeral
+               Diffie-Hellman parameters which are sent to the
+               peer.  The certificate must contain DSA
+               parameters to use this key exchange algorithm.
+               DSA is the algorithm of the Digital Signature
+               Standard (DSS).
+               
+ECDHE_ECDSA    The Elliptic curve DSA algorithm is used to sign
+               ephemeral elliptic curve Diffie-Hellman
+               parameters which are sent to the peer.  The
+               certificate must contain ECDSA parameters to use
+               this key exchange algorithm.
+               
+
+Table 4.1: Supported key exchange algorithms.
+
+* Menu:
+
+* X.509 certificates::
+* OpenPGP certificates::
+* Digital signatures::
+
+\1f
+File: gnutls.info,  Node: X.509 certificates,  Next: OpenPGP certificates,  Up: Certificate authentication
+
+4.1 X.509 certificates
+======================
+
+The X.509 protocols rely on a hierarchical trust model.  In this trust
+model Certification Authorities (CAs) are used to certify entities.
+Usually more than one certification authorities exist, and certification
+authorities may certify other authorities to issue certificates as well,
+following a hierarchical model.
+
+\0\b[image src="gnutls-x509.png"\0\b]
+
+Figure 4.1: An example of the X.509 hierarchical trust model.
+
+One needs to trust one or more CAs for his secure communications.  In
+that case only the certificates issued by the trusted authorities are
+acceptable.  The framework is illustrated on *note Figure 4.1: fig:x509.
+
+* Menu:
+
+* X.509 certificate structure::
+* Importing an X.509 certificate::
+* X.509 distinguished names::
+* Verifying X.509 certificate paths::
+* Verifying a certificate in the context of TLS session::
+* Verifying a certificate using trust on first use authentication::
+
+\1f
+File: gnutls.info,  Node: X.509 certificate structure,  Next: Importing an X.509 certificate,  Up: X.509 certificates
+
+4.1.1 X.509 certificate structure
+---------------------------------
+
+An X.509 certificate usually contains information about the certificate
+holder, the signer, a unique serial number, expiration dates and some
+other fields [_PKIX_] as shown in *note Table 4.2: tab:x509.
+
+Field          Description
+               
+------------------------------------------------------------------
+version        The field that indicates the version of the
+               certificate.
+               
+serialNumber   This field holds a unique serial number per
+               certificate.
+               
+signature      The issuing authority's signature.
+               
+issuer         Holds the issuer's distinguished name.
+               
+validity       The activation and expiration dates.
+               
+subject        The subject's distinguished name of the
+               certificate.
+               
+extensions     The extensions are fields only present in
+               version 3 certificates.
+               
+
+Table 4.2: X.509 certificate fields.
+
+The certificate's _subject or issuer name_ is not just a single string.
+It is a Distinguished name and in the ASN.1 notation is a sequence of
+several object identifiers with their corresponding values.  Some of
+available OIDs to be used in an X.509 distinguished name are defined in
+'gnutls/x509.h'.
+
+The _Version_ field in a certificate has values either 1 or 3 for
+version 3 certificates.  Version 1 certificates do not support the
+extensions field so it is not possible to distinguish a CA from a
+person, thus their usage should be avoided.
+
+The _validity_ dates are there to indicate the date that the specific
+certificate was activated and the date the certificate's key would be
+considered invalid.
+
+Certificate _extensions_ are there to include information about the
+certificate's subject that did not fit in the typical certificate
+fields.  Those may be e-mail addresses, flags that indicate whether the
+belongs to a CA etc.  All the supported X.509 version 3 extensions are
+shown in *note Table 4.3: tab:x509-ext.
+
+Extension              OID            Description
+                                      
+--------------------------------------------------------------------
+Subject key id         2.5.29.14      An identifier of the key of
+                                      the subject.
+                                      
+Authority key id       2.5.29.35      An identifier of the
+                                      authority's key used to
+                                      sign the certificate.
+                                      
+Subject alternative    2.5.29.17      Alternative names to
+name                                  subject's distinguished
+                                      name.
+                                      
+Key usage              2.5.29.15      Constraints the key's usage
+                                      of the certificate.
+                                      
+Extended key usage     2.5.29.37      Constraints the purpose of
+                                      the certificate.
+                                      
+Basic constraints      2.5.29.19      Indicates whether this is a
+                                      CA certificate or not, and
+                                      specify the maximum path
+                                      lengths of certificate
+                                      chains.
+                                      
+CRL distribution       2.5.29.31      This extension is set by
+points                                the CA, in order to inform
+                                      about the issued CRLs.
+                                      
+Proxy Certification    1.3.6.1.5.5.7.1.14Proxy Certificates includes
+Information                           this extension that
+                                      contains the OID of the
+                                      proxy policy language used,
+                                      and can specify limits on
+                                      the maximum lengths of
+                                      proxy chains.  Proxy
+                                      Certificates are specified
+                                      in [_RFC3820_].
+                                      
+
+Table 4.3: X.509 certificate extensions.
+
+In GnuTLS the X.509 certificate structures are handled using the
+'gnutls_x509_crt_t' type and the corresponding private keys with the
+'gnutls_x509_privkey_t' type.  All the available functions for X.509
+certificate handling have their prototypes in 'gnutls/x509.h'.  An
+example program to demonstrate the X.509 parsing capabilities can be
+found at *note ex:x509-info::.
+
+\1f
+File: gnutls.info,  Node: Importing an X.509 certificate,  Next: X.509 distinguished names,  Prev: X.509 certificate structure,  Up: X.509 certificates
+
+4.1.2 Importing an X.509 certificate
+------------------------------------
+
+The certificate structure should be initialized using *note
+gnutls_x509_crt_init::, and a certificate structure can be imported
+using *note gnutls_x509_crt_import::.
+
+'INT *note gnutls_x509_crt_init:: (gnutls_x509_crt_t * CERT)'
+'INT *note gnutls_x509_crt_import:: (gnutls_x509_crt_t CERT, const gnutls_datum_t * DATA, gnutls_x509_crt_fmt_t FORMAT)'
+'VOID *note gnutls_x509_crt_deinit:: (gnutls_x509_crt_t CERT)'
+
+In several functions an array of certificates is required.  To assist in
+initialization and import the following two functions are provided.
+
+'INT *note gnutls_x509_crt_list_import:: (gnutls_x509_crt_t * CERTS, unsigned int * CERT_MAX, const gnutls_datum_t * DATA, gnutls_x509_crt_fmt_t FORMAT, unsigned int FLAGS)'
+'INT *note gnutls_x509_crt_list_import2:: (gnutls_x509_crt_t ** CERTS, unsigned int * SIZE, const gnutls_datum_t * DATA, gnutls_x509_crt_fmt_t FORMAT, unsigned int FLAGS)'
+
+In all cases after use a certificate must be deinitialized using *note
+gnutls_x509_crt_deinit::.  Note that although the functions above apply
+to 'gnutls_x509_crt_t' structure, similar functions exist for the CRL
+structure 'gnutls_x509_crl_t'.
+
+\1f
+File: gnutls.info,  Node: X.509 distinguished names,  Next: Verifying X.509 certificate paths,  Prev: Importing an X.509 certificate,  Up: X.509 certificates
+
+4.1.3 X.509 distinguished names
+-------------------------------
+
+The "subject" of an X.509 certificate is not described by a single name,
+but rather with a distinguished name.  This in X.509 terminology is a
+list of strings each associated an object identifier.  To make things
+simple GnuTLS provides *note gnutls_x509_crt_get_dn:: which follows the
+rules in [_RFC4514_] and returns a single string.  Access to each string
+by individual object identifiers can be accessed using *note
+gnutls_x509_crt_get_dn_by_oid::.
+
+ -- Function: int gnutls_x509_crt_get_dn (gnutls_x509_crt_t CERT, char *
+          BUF, size_t * BUF_SIZE)
+     CERT: should contain a 'gnutls_x509_crt_t' structure
+
+     BUF: a pointer to a structure to hold the name (may be null)
+
+     BUF_SIZE: initially holds the size of 'buf'
+
+     This function will copy the name of the Certificate in the provided
+     buffer.  The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+     described in RFC4514.  The output string will be ASCII or UTF-8
+     encoded, depending on the certificate data.
+
+     If 'buf' is null then only the size will be filled.
+
+     *Returns:* 'GNUTLS_E_SHORT_MEMORY_BUFFER' if the provided buffer is
+     not long enough, and in that case the 'buf_size' will be updated
+     with the required size.  On success 0 is returned.
+
+ -- Function: int gnutls_x509_crt_get_dn_by_oid (gnutls_x509_crt_t CERT,
+          const char * OID, int INDX, unsigned int RAW_FLAG, void * BUF,
+          size_t * BUF_SIZE)
+     CERT: should contain a 'gnutls_x509_crt_t' structure
+
+     OID: holds an Object Identified in null terminated string
+
+     INDX: In case multiple same OIDs exist in the RDN, this specifies
+     which to send.  Use (0) to get the first one.
+
+     RAW_FLAG: If non (0) returns the raw DER data of the DN part.
+
+     BUF: a pointer where the DN part will be copied (may be null).
+
+     BUF_SIZE: initially holds the size of 'buf'
+
+     This function will extract the part of the name of the Certificate
+     subject specified by the given OID. The output, if the raw flag is
+     not used, will be encoded as described in RFC4514.  Thus a string
+     that is ASCII or UTF-8 encoded, depending on the certificate data.
+
+     Some helper macros with popular OIDs can be found in gnutls/x509.h
+     If raw flag is (0), this function will only return known OIDs as
+     text.  Other OIDs will be DER encoded, as described in RFC4514 - in
+     hex format with a '#' prefix.  You can check about known OIDs using
+     'gnutls_x509_dn_oid_known()' .
+
+     If 'buf' is null then only the size will be filled.  If the
+     'raw_flag' is not specified the output is always null terminated,
+     although the 'buf_size' will not include the null character.
+
+     *Returns:* 'GNUTLS_E_SHORT_MEMORY_BUFFER' if the provided buffer is
+     not long enough, and in that case the *buf_size will be updated
+     with the required size.  On success 0 is returned.
+
+ -- Function: int gnutls_x509_crt_get_dn_oid (gnutls_x509_crt_t CERT,
+          int INDX, void * OID, size_t * OID_SIZE)
+     CERT: should contain a 'gnutls_x509_crt_t' structure
+
+     INDX: This specifies which OID to return.  Use (0) to get the first
+     one.
+
+     OID: a pointer to a buffer to hold the OID (may be null)
+
+     OID_SIZE: initially holds the size of 'oid'
+
+     This function will extract the OIDs of the name of the Certificate
+     subject specified by the given index.
+
+     If 'oid' is null then only the size will be filled.  The 'oid'
+     returned will be null terminated, although 'oid_size' will not
+     account for the trailing null.
+
+     *Returns:* 'GNUTLS_E_SHORT_MEMORY_BUFFER' if the provided buffer is
+     not long enough, and in that case the 'oid_size' will be updated
+     with the required size.  On success 0 is returned.
+
+The more powerful *note gnutls_x509_crt_get_subject:: and *note
+gnutls_x509_dn_get_rdn_ava:: provide efficient access to the contents of
+the distinguished name structure.
+
+ -- Function: int gnutls_x509_crt_get_subject (gnutls_x509_crt_t CERT,
+          gnutls_x509_dn_t * DN)
+     CERT: should contain a 'gnutls_x509_crt_t' structure
+
+     DN: output variable with pointer to uint8_t DN.
+
+     Return the Certificate's Subject DN as an uint8_t data type.  You
+     may use 'gnutls_x509_dn_get_rdn_ava()' to decode the DN.
+
+     Note that 'dn' should be treated as constant.  Because points into
+     the 'cert' object, you may not deallocate 'cert' and continue to
+     access 'dn' .
+
+     *Returns:* Returns 0 on success, or an error code.
+
+ -- Function: int gnutls_x509_dn_get_rdn_ava (gnutls_x509_dn_t DN, int
+          IRDN, int IAVA, gnutls_x509_ava_st * AVA)
+     DN: input variable with uint8_t DN pointer
+
+     IRDN: index of RDN
+
+     IAVA: index of AVA.
+
+     AVA: Pointer to structure which will hold output information.
+
+     Get pointers to data within the DN.
+
+     Note that 'ava' will contain pointers into the 'dn' structure, so
+     you should not modify any data or deallocate it.  Note also that
+     the DN in turn points into the original certificate structure, and
+     thus you may not deallocate the certificate and continue to access
+     'dn' .
+
+     *Returns:* Returns 0 on success, or an error code.
+
+Similar functions exist to access the distinguished name of the issuer
+of the certificate.
+
+'INT *note gnutls_x509_crt_get_issuer_dn:: (gnutls_x509_crt_t CERT, char * BUF, size_t * BUF_SIZE)'
+'INT *note gnutls_x509_crt_get_issuer_dn_by_oid:: (gnutls_x509_crt_t CERT, const char * OID, int INDX, unsigned int RAW_FLAG, void * BUF, size_t * BUF_SIZE)'
+'INT *note gnutls_x509_crt_get_issuer_dn_oid:: (gnutls_x509_crt_t CERT, int INDX, void * OID, size_t * OID_SIZE)'
+'INT *note gnutls_x509_crt_get_issuer:: (gnutls_x509_crt_t CERT, gnutls_x509_dn_t * DN)'
+
+\1f
+File: gnutls.info,  Node: Verifying X.509 certificate paths,  Next: Verifying a certificate in the context of TLS session,  Prev: X.509 distinguished names,  Up: X.509 certificates
+
+4.1.4 Verifying X.509 certificate paths
+---------------------------------------
+
+Verifying certificate paths is important in X.509 authentication.  For
+this purpose the following functions are provided.
+
+ -- Function: int gnutls_x509_trust_list_add_cas
+          (gnutls_x509_trust_list_t LIST, const gnutls_x509_crt_t *
+          CLIST, int CLIST_SIZE, unsigned int FLAGS)
+     LIST: The structure of the list
+
+     CLIST: A list of CAs
+
+     CLIST_SIZE: The length of the CA list
+
+     FLAGS: should be 0.
+
+     This function will add the given certificate authorities to the
+     trusted list.  The list of CAs must not be deinitialized during
+     this structure's lifetime.
+
+     *Returns:* The number of added elements is returned.
+
+     *Since:* 3.0
+
+ -- Function: int gnutls_x509_trust_list_add_named_crt
+          (gnutls_x509_trust_list_t LIST, gnutls_x509_crt_t CERT, const
+          void * NAME, size_t NAME_SIZE, unsigned int FLAGS)
+     LIST: The structure of the list
+
+     CERT: A certificate
+
+     NAME: An identifier for the certificate
+
+     NAME_SIZE: The size of the identifier
+
+     FLAGS: should be 0.
+
+     This function will add the given certificate to the trusted list
+     and associate it with a name.  The certificate will not be be used
+     for verification with 'gnutls_x509_trust_list_verify_crt()' but
+     only with 'gnutls_x509_trust_list_verify_named_crt()' .
+
+     In principle this function can be used to set individual "server"
+     certificates that are trusted by the user for that specific server
+     but for no other purposes.
+
+     The certificate must not be deinitialized during the lifetime of
+     the trusted list.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+ -- Function: int gnutls_x509_trust_list_add_crls
+          (gnutls_x509_trust_list_t LIST, const gnutls_x509_crl_t *
+          CRL_LIST, int CRL_SIZE, unsigned int FLAGS, unsigned int
+          VERIFICATION_FLAGS)
+     LIST: The structure of the list
+
+     CRL_LIST: A list of CRLs
+
+     CRL_SIZE: The length of the CRL list
+
+     FLAGS: if GNUTLS_TL_VERIFY_CRL is given the CRLs will be verified
+     before being added.
+
+     VERIFICATION_FLAGS: gnutls_certificate_verify_flags if flags
+     specifies GNUTLS_TL_VERIFY_CRL
+
+     This function will add the given certificate revocation lists to
+     the trusted list.  The list of CRLs must not be deinitialized
+     during this structure's lifetime.
+
+     This function must be called after
+     'gnutls_x509_trust_list_add_cas()' to allow verifying the CRLs for
+     validity.
+
+     *Returns:* The number of added elements is returned.
+
+     *Since:* 3.0
+
+ -- Function: int gnutls_x509_trust_list_verify_crt
+          (gnutls_x509_trust_list_t LIST, gnutls_x509_crt_t * CERT_LIST,
+          unsigned int CERT_LIST_SIZE, unsigned int FLAGS, unsigned int
+          * VERIFY, gnutls_verify_output_function FUNC)
+     LIST: The structure of the list
+
+     CERT_LIST: is the certificate list to be verified
+
+     CERT_LIST_SIZE: is the certificate list size
+
+     FLAGS: Flags that may be used to change the verification algorithm.
+     Use OR of the gnutls_certificate_verify_flags enumerations.
+
+     VERIFY: will hold the certificate verification output.
+
+     FUNC: If non-null will be called on each chain element verification
+     with the output.
+
+     This function will try to verify the given certificate and return
+     its status.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+ -- Function: int gnutls_x509_trust_list_verify_named_crt
+          (gnutls_x509_trust_list_t LIST, gnutls_x509_crt_t CERT, const
+          void * NAME, size_t NAME_SIZE, unsigned int FLAGS, unsigned
+          int * VERIFY, gnutls_verify_output_function FUNC)
+     LIST: The structure of the list
+
+     CERT: is the certificate to be verified
+
+     NAME: is the certificate's name
+
+     NAME_SIZE: is the certificate's name size
+
+     FLAGS: Flags that may be used to change the verification algorithm.
+     Use OR of the gnutls_certificate_verify_flags enumerations.
+
+     VERIFY: will hold the certificate verification output.
+
+     FUNC: If non-null will be called on each chain element verification
+     with the output.
+
+     This function will try to find a matching named certificate.  If a
+     match is found the certificate is considered valid.  In addition to
+     that this function will also check CRLs.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+The verification function will verify a given certificate chain against
+a list of certificate authorities and certificate revocation lists, and
+output a bit-wise OR of elements of the 'gnutls_certificate_status_t'
+enumeration shown in *note Figure 4.2: gnutls_certificate_status_t.  The
+'GNUTLS_CERT_INVALID' flag is always set on a verification error and
+more detailed flags will also be set when appropriate.
+
+'GNUTLS_CERT_INVALID'
+     The certificate is not signed by one of the known authorities or
+     the signature is invalid.
+'GNUTLS_CERT_REVOKED'
+     Certificate is revoked by its authority.  In X.509 this will be set
+     only if CRLs are checked.
+'GNUTLS_CERT_SIGNER_NOT_FOUND'
+     The certificate's issuer is not known.  This is the case if the
+     issuer is not included in the trusted certificate list.
+'GNUTLS_CERT_SIGNER_NOT_CA'
+     The certificate's signer was not a CA. This may happen if this was
+     a version 1 certificate, which is common with some CAs, or a
+     version 3 certificate without the basic constrains extension.
+'GNUTLS_CERT_INSECURE_ALGORITHM'
+     The certificate was signed using an insecure algorithm such as MD2
+     or MD5.  These algorithms have been broken and should not be
+     trusted.
+'GNUTLS_CERT_NOT_ACTIVATED'
+     The certificate is not yet activated.
+'GNUTLS_CERT_EXPIRED'
+     The certificate has expired.
+'GNUTLS_CERT_SIGNATURE_FAILURE'
+     - undescribed -
+'GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED'
+     The revocation data are old and have been superseded.
+'GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE'
+     The revocation data have a future issue date.
+
+Figure 4.2: The 'gnutls_certificate_status_t' enumeration.
+
+An example of certificate verification is shown in *note ex:verify2::.
+It is also possible to have a set of certificates that are trusted for a
+particular server but not to authorize other certificates.  This purpose
+is served by the functions *note gnutls_x509_trust_list_add_named_crt::
+and *note gnutls_x509_trust_list_verify_named_crt::.
+
+\1f
+File: gnutls.info,  Node: Verifying a certificate in the context of TLS session,  Next: Verifying a certificate using trust on first use authentication,  Prev: Verifying X.509 certificate paths,  Up: X.509 certificates
+
+4.1.5 Verifying a certificate in the context of TLS session
+-----------------------------------------------------------
+
+When operating in the context of a TLS session, the trusted certificate
+authority list may also be set using:
+'INT *note gnutls_certificate_set_x509_trust_file:: (gnutls_certificate_credentials_t CRED, const char * CAFILE, gnutls_x509_crt_fmt_t TYPE)'
+'INT *note gnutls_certificate_set_x509_crl_file:: (gnutls_certificate_credentials_t RES, const char * CRLFILE, gnutls_x509_crt_fmt_t TYPE)'
+'INT *note gnutls_certificate_set_x509_system_trust:: (gnutls_certificate_credentials_t CRED)'
+
+Then it is not required to setup a trusted list as above.  The function
+*note gnutls_certificate_verify_peers2:: may then be used to verify the
+peer's certificate chain.  The flags are set similarly to the
+verification functions in the previous section.
+
+There is also the possibility to pass some input to the verification
+functions in the form of flags.  For *note
+gnutls_x509_trust_list_verify_crt:: the flags are passed
+straightforward, but *note gnutls_certificate_verify_peers2:: depends on
+the flags set by calling *note gnutls_certificate_set_verify_flags::.
+All the available flags are part of the enumeration
+'gnutls_certificate_verify_flags' shown in *note Figure 4.3:
+gnutls_certificate_verify_flags.
+
+'GNUTLS_VERIFY_DISABLE_CA_SIGN'
+     If set a signer does not have to be a certificate authority.  This
+     flag should normaly be disabled, unless you know what this means.
+'GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT'
+     Allow trusted CA certificates with version 1.  This is safer than
+     'GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT' , and should be used
+     instead.  That way only signers in your trusted list will be
+     allowed to have certificates of version 1.  This is the default.
+'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_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 extension.  Must be used in combination with
+     'GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT' .
+'GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2'
+     Allow certificates to be signed using the broken MD2 algorithm.
+'GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5'
+     Allow certificates to be signed using the broken MD5 algorithm.
+'GNUTLS_VERIFY_DISABLE_TIME_CHECKS'
+     Disable checking of activation and expiration validity periods of
+     certificate chains.  Don't set this unless you understand the
+     security implications.
+'GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS'
+     If set a signer in the trusted list is never checked for expiration
+     or activation.
+'GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT'
+     Do not allow trusted CA certificates that have version 1.  This
+     option is to be used to deprecate all certificates of version 1.
+'GNUTLS_VERIFY_DISABLE_CRL_CHECKS'
+     Disable checking for validity using certificate revocation lists.
+'GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN'
+     A certificate chain is tolerated if unsorted (the case with many
+     TLS servers out there).
+
+Figure 4.3: The 'gnutls_certificate_verify_flags' enumeration.
+
+Although the verification of a certificate path indicates that the
+certificate is signed by trusted authority, does not reveal anything
+about the peer's identity.  It is required to verify if the
+certificate's owner is the one you expect.  For more information consult
+[_RFC2818_] and section *note ex:verify:: for an example.
+
+\1f
+File: gnutls.info,  Node: Verifying a certificate using trust on first use authentication,  Prev: Verifying a certificate in the context of TLS session,  Up: X.509 certificates
+
+4.1.6 Verifying a certificate using trust on first use authentication
+---------------------------------------------------------------------
+
+It is possible to use a trust on first use (similar to SSH)
+authentication method in GnuTLS. That is the concept used by the SSH
+programs, where the public key of the peer is not verified, or verified
+in an out-of-bound way, but subsequent connections to the same peer
+require the public key to remain the same.  Such a system in combination
+with the typical CA verification of a certificate, and OCSP revocation
+checks, can help to provide multiple factor verification, where a single
+point of failure is not enough to compromise the system.  For example a
+server compromise may be detected using OCSP, and a CA compromise can be
+detected using the trust on first use method.  Such a hybrid system with
+X.509 and trust on first use authentication is shown in *note Simple
+client example with SSH-style certificate verification::.
+
+ -- Function: int gnutls_verify_stored_pubkey (const char* DB_NAME,
+          gnutls_tdb_t TDB, const char* HOST, const char* SERVICE,
+          gnutls_certificate_type_t CERT_TYPE, const gnutls_datum_t *
+          CERT, unsigned int FLAGS)
+     DB_NAME: A file specifying the stored keys (use NULL for the
+     default)
+
+     TDB: A storage structure or NULL to use the default
+
+     HOST: The peer's name
+
+     SERVICE: non-NULL if this key is specific to a service (e.g.  http)
+
+     CERT_TYPE: The type of the certificate
+
+     CERT: The raw (der) data of the certificate
+
+     FLAGS: should be 0.
+
+     This function will try to verify the provided certificate using a
+     list of stored public keys.  The 'service' field if non-NULL should
+     be a port number.
+
+     The 'retrieve' variable if non-null specifies a custom backend for
+     the retrieval of entries.  If it is NULL then the default file
+     backend will be used.  In POSIX-like systems the file backend uses
+     the $HOME/.gnutls/known_hosts file.
+
+     Note that if the custom storage backend is provided the retrieval
+     function should return 'GNUTLS_E_CERTIFICATE_KEY_MISMATCH' if the
+     host/service pair is found but key doesn't match,
+     'GNUTLS_E_NO_CERTIFICATE_FOUND' if no such host/service with the
+     given key is found, and 0 if it was found.  The storage function
+     should return 0 on success.
+
+     *Returns:* If no associated public key is found then
+     'GNUTLS_E_NO_CERTIFICATE_FOUND' will be returned.  If a key is
+     found but does not match 'GNUTLS_E_CERTIFICATE_KEY_MISMATCH' is
+     returned.  On success, 'GNUTLS_E_SUCCESS' (0) is returned, or a
+     negative error value on other errors.
+
+     *Since:* 3.0
+
+ -- Function: int gnutls_store_pubkey (const char* DB_NAME, gnutls_tdb_t
+          TDB, const char* HOST, const char* SERVICE,
+          gnutls_certificate_type_t CERT_TYPE, const gnutls_datum_t *
+          CERT, time_t EXPIRATION, unsigned int FLAGS)
+     DB_NAME: A file specifying the stored keys (use NULL for the
+     default)
+
+     TDB: A storage structure or NULL to use the default
+
+     HOST: The peer's name
+
+     SERVICE: non-NULL if this key is specific to a service (e.g.  http)
+
+     CERT_TYPE: The type of the certificate
+
+     CERT: The data of the certificate
+
+     EXPIRATION: The expiration time (use 0 to disable expiration)
+
+     FLAGS: should be 0.
+
+     This function will store the provided certificate to the list of
+     stored public keys.  The key will be considered valid until the
+     provided expiration time.
+
+     The 'store' variable if non-null specifies a custom backend for the
+     storage of entries.  If it is NULL then the default file backend
+     will be used.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+In addition to the above the *note gnutls_store_commitment:: can be used
+to implement a key-pinning architecture as in [_KEYPIN_]. This provides
+a way for web server to commit on a public key that is not yet active.
+
+ -- Function: int gnutls_store_commitment (const char* DB_NAME,
+          gnutls_tdb_t TDB, const char* HOST, const char* SERVICE,
+          gnutls_digest_algorithm_t HASH_ALGO, const gnutls_datum_t*
+          HASH, time_t EXPIRATION, unsigned int FLAGS)
+     DB_NAME: A file specifying the stored keys (use NULL for the
+     default)
+
+     TDB: A storage structure or NULL to use the default
+
+     HOST: The peer's name
+
+     SERVICE: non-NULL if this key is specific to a service (e.g.  http)
+
+     HASH_ALGO: The hash algorithm type
+
+     HASH: The raw hash
+
+     EXPIRATION: The expiration time (use 0 to disable expiration)
+
+     FLAGS: should be 0.
+
+     This function will store the provided hash commitment to the list
+     of stored public keys.  The key with the given hash will be
+     considered valid until the provided expiration time.
+
+     The 'store' variable if non-null specifies a custom backend for the
+     storage of entries.  If it is NULL then the default file backend
+     will be used.
+
+     Note that this function is not thread safe with the default
+     backend.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+The storage and verification functions may be used with the default text
+file based back-end, or another back-end may be specified.  That should
+contain storage and retrieval functions and specified as below.
+
+'INT *note gnutls_tdb_init:: (gnutls_tdb_t* TDB)'
+'VOID *note gnutls_tdb_deinit:: (gnutls_tdb_t TDB)'
+'VOID *note gnutls_tdb_set_verify_func:: (gnutls_tdb_t TDB, gnutls_tdb_verify_func VERIFY)'
+'VOID *note gnutls_tdb_set_store_func:: (gnutls_tdb_t TDB, gnutls_tdb_store_func STORE)'
+'VOID *note gnutls_tdb_set_store_commitment_func:: (gnutls_tdb_t TDB, gnutls_tdb_store_commitment_func CSTORE)'
+
+\1f
+File: gnutls.info,  Node: OpenPGP certificates,  Next: Digital signatures,  Prev: X.509 certificates,  Up: Certificate authentication
+
+4.2 OpenPGP certificates
+========================
+
+The OpenPGP key authentication relies on a distributed trust model,
+called the "web of trust".  The "web of trust" uses a decentralized
+system of trusted introducers, which are the same as a CA. OpenPGP
+allows anyone to sign anyone else's public key.  When Alice signs Bob's
+key, she is introducing Bob's key to anyone who trusts Alice.  If
+someone trusts Alice to introduce keys, then Alice is a trusted
+introducer in the mind of that observer.  For example in *note Figure
+4.4: fig:openpgp, David trusts Alice to be an introducer and Alice
+signed Bob's key thus Dave trusts Bob's key to be the real one.
+
+\0\b[image src="gnutls-pgp.png"\0\b]
+
+Figure 4.4: An example of the OpenPGP trust model.
+
+There are some key points that are important in that model.  In the
+example Alice has to sign Bob's key, only if she is sure that the key
+belongs to Bob.  Otherwise she may also make Dave falsely believe that
+this is Bob's key.  Dave has also the responsibility to know who to
+trust.  This model is similar to real life relations.
+
+Just see how Charlie behaves in the previous example.  Although he has
+signed Bob's key - because he knows, somehow, that it belongs to Bob -
+he does not trust Bob to be an introducer.  Charlie decided to trust
+only Kevin, for some reason.  A reason could be that Bob is lazy enough,
+and signs other people's keys without being sure that they belong to the
+actual owner.
+
+4.2.1 OpenPGP certificate structure
+-----------------------------------
+
+In GnuTLS the OpenPGP key structures [_RFC2440_] are handled using the
+'gnutls_openpgp_crt_t' type and the corresponding private keys with the
+'gnutls_openpgp_privkey_t' type.  All the prototypes for the key
+handling functions can be found at 'gnutls/openpgp.h'.
+
+4.2.2 Verifying an OpenPGP certificate
+--------------------------------------
+
+The verification functions of OpenPGP keys, included in GnuTLS, are
+simple ones, and do not use the features of the "web of trust".  For
+that reason, if the verification needs are complex, the assistance of
+external tools like GnuPG and GPGME(1) is recommended.
+
+In GnuTLS there is a verification function for OpenPGP certificates, the
+*note gnutls_openpgp_crt_verify_ring::.  This checks an OpenPGP key
+against a given set of public keys (keyring) and returns the key status.
+The key verification status is the same as in X.509 certificates,
+although the meaning and interpretation are different.  For example an
+OpenPGP key may be valid, if the self signature is ok, even if no
+signers were found.  The meaning of verification status flags is the
+same as in the X.509 certificates (see *note Figure 4.3:
+gnutls_certificate_verify_flags.).
+
+ -- Function: int gnutls_openpgp_crt_verify_ring (gnutls_openpgp_crt_t
+          KEY, gnutls_openpgp_keyring_t KEYRING, unsigned int FLAGS,
+          unsigned int * VERIFY)
+     KEY: the structure that holds the key.
+
+     KEYRING: holds the keyring to check against
+
+     FLAGS: unused (should be 0)
+
+     VERIFY: will hold the certificate verification output.
+
+     Verify all signatures in the key, using the given set of keys
+     (keyring).
+
+     The key verification output will be put in 'verify' and will be one
+     or more of the 'gnutls_certificate_status_t' enumerated elements
+     bitwise or'd.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+ -- Function: int gnutls_openpgp_crt_verify_self (gnutls_openpgp_crt_t
+          KEY, unsigned int FLAGS, unsigned int * VERIFY)
+     KEY: the structure that holds the key.
+
+     FLAGS: unused (should be 0)
+
+     VERIFY: will hold the key verification output.
+
+     Verifies the self signature in the key.  The key verification
+     output will be put in 'verify' and will be one or more of the
+     gnutls_certificate_status_t enumerated elements bitwise or'd.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+4.2.3 Verifying a certificate in the context of a TLS session
+-------------------------------------------------------------
+
+Similarly with X.509 certificates, one needs to specify the OpenPGP
+keyring file in the credentials structure.  The certificates in this
+file will be used by *note gnutls_certificate_verify_peers2:: to verify
+the signatures in the certificate sent by the peer.
+
+ -- Function: int gnutls_certificate_set_openpgp_keyring_file
+          (gnutls_certificate_credentials_t C, const char * FILE,
+          gnutls_openpgp_crt_fmt_t FORMAT)
+     C: A certificate credentials structure
+
+     FILE: filename of the keyring.
+
+     FORMAT: format of keyring.
+
+     The function is used to set keyrings that will be used internally
+     by various OpenPGP functions.  For example to find a key when it is
+     needed for an operations.  The keyring will also be used at the
+     verification functions.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+   ---------- Footnotes ----------
+
+   (1) <http://www.gnupg.org/related_software/gpgme/>
+
+\1f
+File: gnutls.info,  Node: Digital signatures,  Prev: OpenPGP certificates,  Up: Certificate authentication
+
+4.3 Digital signatures
+======================
+
+In this section we will provide some information about digital
+signatures, how they work, and give the rationale for disabling some of
+the algorithms used.
+
+Digital signatures work by using somebody's secret key to sign some
+arbitrary data.  Then anybody else could use the public key of that
+person to verify the signature.  Since the data may be arbitrary it is
+not suitable input to a cryptographic digital signature algorithm.  For
+this reason and also for performance cryptographic hash algorithms are
+used to preprocess the input to the signature algorithm.  This works as
+long as it is difficult enough to generate two different messages with
+the same hash algorithm output.  In that case the same signature could
+be used as a proof for both messages.  Nobody wants to sign an innocent
+message of donating 1 euro to Greenpeace and find out that he donated
+1.000.000 euros to Bad Inc.
+
+For a hash algorithm to be called cryptographic the following three
+requirements must hold:
+
+  1. Preimage resistance.  That means the algorithm must be one way and
+     given the output of the hash function H(x), it is impossible to
+     calculate x.
+
+  2. 2nd preimage resistance.  That means that given a pair x,y with
+     y=H(x) it is impossible to calculate an x' such that y=H(x').
+
+  3. Collision resistance.  That means that it is impossible to
+     calculate random x and x' such H(x')=H(x).
+
+The last two requirements in the list are the most important in digital
+signatures.  These protect against somebody who would like to generate
+two messages with the same hash output.  When an algorithm is considered
+broken usually it means that the Collision resistance of the algorithm
+is less than brute force.  Using the birthday paradox the brute force
+attack takes 2^{((hash size) / 2)} operations.  Today colliding
+certificates using the MD5 hash algorithm have been generated as shown
+in [_WEGER_].
+
+There has been cryptographic results for the SHA-1 hash algorithms as
+well, although they are not yet critical.  Before 2004, MD5 had a
+presumed collision strength of 2^{64}, but it has been showed to have a
+collision strength well under 2^{50}.  As of November 2005, it is
+believed that SHA-1's collision strength is around 2^{63}.  We consider
+this sufficiently hard so that we still support SHA-1.  We anticipate
+that SHA-256/386/512 will be used in publicly-distributed certificates
+in the future.  When 2^{63} can be considered too weak compared to the
+computer power available sometime in the future, SHA-1 will be disabled
+as well.  The collision attacks on SHA-1 may also get better, given the
+new interest in tools for creating them.
+
+4.3.1 Trading security for interoperability
+-------------------------------------------
+
+If you connect to a server and use GnuTLS' functions to verify the
+certificate chain, and get a 'GNUTLS_CERT_INSECURE_ALGORITHM' validation
+error (see *note Verifying X.509 certificate paths::), it means that
+somewhere in the certificate chain there is a certificate signed using
+'RSA-MD2' or 'RSA-MD5'.  These two digital signature algorithms are
+considered broken, so GnuTLS fails verifying the certificate.  In some
+situations, it may be useful to be able to verify the certificate chain
+anyway, assuming an attacker did not utilize the fact that these
+signatures algorithms are broken.  This section will give help on how to
+achieve that.
+
+It is important to know that you do not have to enable any of the flags
+discussed here to be able to use trusted root CA certificates
+self-signed using 'RSA-MD2' or 'RSA-MD5'.  The certificates in the
+trusted list are considered trusted irrespective of the signature.
+
+If you are using *note gnutls_certificate_verify_peers2:: to verify the
+certificate chain, you can call *note
+gnutls_certificate_set_verify_flags:: with the flags:
+   * 'GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2'
+   * 'GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5'
+as in the following example:
+
+       gnutls_certificate_set_verify_flags (x509cred,
+                                            GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5);
+
+This will tell the verifier algorithm to enable 'RSA-MD5' when verifying
+the certificates.
+
+If you are using *note gnutls_x509_crt_verify:: or *note
+gnutls_x509_crt_list_verify::, you can pass the
+'GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5' parameter directly in the 'flags'
+parameter.
+
+If you are using these flags, it may also be a good idea to warn the
+user when verification failure occur for this reason.  The simplest is
+to not use the flags by default, and only fall back to using them after
+warning the user.  If you wish to inspect the certificate chain
+yourself, you can use *note gnutls_certificate_get_peers:: to extract
+the raw server's certificate chain, *note gnutls_x509_crt_list_import::
+to parse each of the certificates, and then *note
+gnutls_x509_crt_get_signature_algorithm:: to find out the signing
+algorithm used for each certificate.  If any of the intermediary
+certificates are using 'GNUTLS_SIGN_RSA_MD2' or 'GNUTLS_SIGN_RSA_MD5',
+you could present a warning.
+
+\1f
+File: gnutls.info,  Node: Shared-key and anonymous authentication,  Next: More on certificate authentication,  Prev: Certificate authentication,  Up: Top
+
+5 Shared-key and anonymous authentication
+*****************************************
+
+In addition to certificate authentication, the TLS protocol may be used
+with password, shared-key and anonymous authentication methods.  The
+rest of this chapter discusses details of these methods.
+
+* Menu:
+
+* SRP authentication::
+* PSK authentication::
+* Anonymous authentication::
+
+\1f
+File: gnutls.info,  Node: SRP authentication,  Next: PSK authentication,  Up: Shared-key and anonymous authentication
+
+5.1 SRP authentication
+======================
+
+* Menu:
+
+* Authentication using SRP::
+* srptool Invocation::             Invoking srptool
+
+\1f
+File: gnutls.info,  Node: Authentication using SRP,  Next: srptool Invocation,  Up: SRP authentication
+
+5.1.1 Authentication using SRP
+------------------------------
+
+GnuTLS supports authentication via the Secure Remote Password or SRP
+protocol (see [_RFC2945,TOMSRP_] for a description).  The SRP key
+exchange is an extension to the TLS protocol, and it provides an
+authenticated with a password key exchange.  The peers can be identified
+using a single password, or there can be combinations where the client
+is authenticated using SRP and the server using a certificate.
+
+The advantage of SRP authentication, over other proposed secure password
+authentication schemes, is that SRP is not susceptible to off-line
+dictionary attacks.  Moreover, SRP does not require the server to hold
+the user's password.  This kind of protection is similar to the one used
+traditionally in the UNIX '/etc/passwd' file, where the contents of this
+file did not cause harm to the system security if they were revealed.
+The SRP needs instead of the plain password something called a verifier,
+which is calculated using the user's password, and if stolen cannot be
+used to impersonate the user.
+
+Typical conventions in SRP are a password file, called 'tpasswd' that
+holds the SRP verifiers (encoded passwords) and another file,
+'tpasswd.conf', which holds the allowed SRP parameters.  The included in
+GnuTLS helper follow those conventions.  The srptool program, discussed
+in the next section is a tool to manipulate the SRP parameters.
+
+The implementation in GnuTLS is based on [_TLSSRP_]. The supported key
+exchange methods are shown below.
+
+'SRP:'
+     Authentication using the SRP protocol.
+
+'SRP_DSS:'
+     Client authentication using the SRP protocol.  Server is
+     authenticated using a certificate with DSA parameters.
+
+'SRP_RSA:'
+     Client authentication using the SRP protocol.  Server is
+     authenticated using a certificate with RSA parameters.
+
+ -- Function: int gnutls_srp_verifier (const char * USERNAME, const char
+          * PASSWORD, const gnutls_datum_t * SALT, const gnutls_datum_t
+          * GENERATOR, const gnutls_datum_t * PRIME, gnutls_datum_t *
+          RES)
+     USERNAME: is the user's name
+
+     PASSWORD: is the user's password
+
+     SALT: should be some randomly generated bytes
+
+     GENERATOR: is the generator of the group
+
+     PRIME: is the group's prime
+
+     RES: where the verifier will be stored.
+
+     This function will create an SRP verifier, as specified in RFC2945.
+     The 'prime' and 'generator' should be one of the static parameters
+     defined in gnutls/gnutls.h or may be generated.
+
+     The verifier will be allocated with 'gnutls_malloc' () and will be
+     stored in 'res' using binary format.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+'INT *note gnutls_srp_base64_encode:: (const gnutls_datum_t * DATA, char * RESULT, size_t * RESULT_SIZE)'
+'INT *note gnutls_srp_base64_decode:: (const gnutls_datum_t * B64_DATA, char * RESULT, size_t * RESULT_SIZE)'
+
+\1f
+File: gnutls.info,  Node: srptool Invocation,  Prev: Authentication using SRP,  Up: SRP authentication
+
+5.1.2 Invoking srptool
+----------------------
+
+Simple program that emulates the programs in the Stanford SRP (Secure
+Remote Password) libraries using GnuTLS. It is intended for use in
+places where you don't expect SRP authentication to be the used for
+system users.
+
+In brief, to use SRP you need to create two files.  These are the
+password file that holds the users and the verifiers associated with
+them and the configuration file to hold the group parameters (called
+tpasswd.conf).
+
+This section was generated by *AutoGen*, using the 'agtexi-cmd' template
+and the option descriptions for the 'srptool' program.  This software is
+released under the GNU General Public License, version 3 or later.
+
+srptool help/usage ('--help')
+.............................
+
+This is the automatically generated usage text for srptool.
+
+The text printed is the same whether selected with the 'help' option
+('--help') or the 'more-help' option ('--more-help').  'more-help' will
+print the usage text by passing it through a pager program.  'more-help'
+is disabled on platforms without a working 'fork(2)' function.  The
+'PAGER' environment variable is used to select the program, defaulting
+to 'more'.  Both will exit with a status code of 0.
+
+     srptool - GnuTLS SRP tool - Ver. @VERSION@
+     USAGE:  lt-srptool [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
+
+        -d, --debug=num            Enable debugging.
+                                     - It must be in the range:
+                                       0 to 9999
+        -i, --index                specify the index of the group parameters in tpasswd.conf to use.
+        -u, --username=str         specify a username
+        -p, --passwd=str           specify a password file.
+        -s, --salt=num             specify salt size.
+            --verify               just verify the password.
+        -v, --passwd-conf=str      specify a password conf file.
+            --create-conf=str      Generate a password configuration file.
+        -v, --version[=arg]        Output version information and exit
+        -h, --help                 Display extended usage information and exit
+        -!, --more-help            Extended usage information passed thru pager
+
+     Options are specified by doubled hyphens and their name or by a single
+     hyphen and the flag character.
+
+
+
+     Simple program that emulates the programs in the Stanford SRP (Secure
+     Remote Password) libraries using GnuTLS.  It is intended for use in places
+     where you don't expect SRP authentication to be the used for system users.
+
+     In brief, to use SRP you need to create two files.  These are the password
+     file that holds the users and the verifiers associated with them and the
+     configuration file to hold the group parameters (called tpasswd.conf).
+
+     please send bug reports to:  bug-gnutls@gnu.org
+
+debug option (-d)
+.................
+
+This is the "enable debugging."  option.  This option takes an argument
+number.  Specifies the debug level.
+
+verify option
+.............
+
+This is the "just verify the password."  option.  Verifies the password
+provided against the password file.
+
+passwd-conf option (-v)
+.......................
+
+This is the "specify a password conf file."  option.  This option takes
+an argument string.  Specify a filename or a PKCS #11 URL to read the
+CAs from.
+
+create-conf option
+..................
+
+This is the "generate a password configuration file."  option.  This
+option takes an argument string.  This generates a password
+configuration file (tpasswd.conf) containing the required for TLS
+parameters.
+
+srptool exit status
+...................
+
+One of the following exit values will be returned:
+'0 (EXIT_SUCCESS)'
+     Successful program execution.
+'1 (EXIT_FAILURE)'
+     The operation failed or the command syntax was not valid.
+
+srptool See Also
+................
+
+gnutls-cli-debug (1), gnutls-serv (1), srptool (1), psktool (1),
+certtool (1)
+
+srptool Examples
+................
+
+To create 'tpasswd.conf' which holds the g and n values for SRP protocol
+(generator and a large prime), run:
+     $ srptool --create-conf /etc/tpasswd.conf
+
+This command will create '/etc/tpasswd' and will add user 'test' (you
+will also be prompted for a password).  Verifiers are stored by default
+in the way libsrp expects.
+     $ srptool --passwd /etc/tpasswd --passwd-conf /etc/tpasswd.conf -u test
+
+This command will check against a password.  If the password matches the
+one in '/etc/tpasswd' you will get an ok.
+     $ srptool --passwd /etc/tpasswd --passwd\-conf /etc/tpasswd.conf --verify -u test
+
+\1f
+File: gnutls.info,  Node: PSK authentication,  Next: Anonymous authentication,  Prev: SRP authentication,  Up: Shared-key and anonymous authentication
+
+5.2 PSK authentication
+======================
+
+* Menu:
+
+* Authentication using PSK::
+* psktool Invocation::             Invoking psktool
+
+\1f
+File: gnutls.info,  Node: Authentication using PSK,  Next: psktool Invocation,  Up: PSK authentication
+
+5.2.1 Authentication using PSK
+------------------------------
+
+Authentication using Pre-shared keys is a method to authenticate using
+usernames and binary keys.  This protocol avoids making use of public
+key infrastructure and expensive calculations, thus it is suitable for
+constraint clients.
+
+The implementation in GnuTLS is based on [_TLSPSK_]. The supported PSK
+key exchange methods are:
+
+'PSK:'
+     Authentication using the PSK protocol.
+
+'DHE-PSK:'
+     Authentication using the PSK protocol and Diffie-Hellman key
+     exchange.  This method offers perfect forward secrecy.
+
+'ECDHE-PSK:'
+     Authentication using the PSK protocol and Elliptic curve
+     Diffie-Hellman key exchange.  This method offers perfect forward
+     secrecy.
+
+Helper functions to generate and maintain PSK keys are also included in
+GnuTLS.
+
+'INT *note gnutls_key_generate:: (gnutls_datum_t * KEY, unsigned int KEY_SIZE)'
+'INT *note gnutls_hex_encode:: (const gnutls_datum_t * DATA, char * RESULT, size_t * RESULT_SIZE)'
+'INT *note gnutls_hex_decode:: (const gnutls_datum_t * HEX_DATA, void * RESULT, size_t * RESULT_SIZE)'
+
+\1f
+File: gnutls.info,  Node: psktool Invocation,  Prev: Authentication using PSK,  Up: PSK authentication
+
+5.2.2 Invoking psktool
+----------------------
+
+Program that generates random keys for use with TLS-PSK. The keys are
+stored in hexadecimal format in a key file.
+
+This section was generated by *AutoGen*, using the 'agtexi-cmd' template
+and the option descriptions for the 'psktool' program.  This software is
+released under the GNU General Public License, version 3 or later.
+
+psktool help/usage ('--help')
+.............................
+
+This is the automatically generated usage text for psktool.
+
+The text printed is the same whether selected with the 'help' option
+('--help') or the 'more-help' option ('--more-help').  'more-help' will
+print the usage text by passing it through a pager program.  'more-help'
+is disabled on platforms without a working 'fork(2)' function.  The
+'PAGER' environment variable is used to select the program, defaulting
+to 'more'.  Both will exit with a status code of 0.
+
+     psktool - GnuTLS PSK tool - Ver. @VERSION@
+     USAGE:  lt-psktool [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
+
+        -d, --debug=num            Enable debugging.
+                                     - It must be in the range:
+                                       0 to 9999
+        -s, --keysize=num          specify the key size in bytes
+                                     - It must be in the range:
+                                       0 to 512
+        -u, --username=str         specify a username
+        -p, --passwd=str           specify a password file.
+        -v, --version[=arg]        Output version information and exit
+        -h, --help                 Display extended usage information and exit
+        -!, --more-help            Extended usage information passed thru pager
+
+     Options are specified by doubled hyphens and their name or by a single
+     hyphen and the flag character.
+
+
+
+     Program that generates random keys for use with TLS-PSK.  The keys are
+     stored in hexadecimal format in a key file.
+
+     please send bug reports to:  bug-gnutls@gnu.org
+
+debug option (-d)
+.................
+
+This is the "enable debugging."  option.  This option takes an argument
+number.  Specifies the debug level.
+
+psktool exit status
+...................
+
+One of the following exit values will be returned:
+'0 (EXIT_SUCCESS)'
+     Successful program execution.
+'1 (EXIT_FAILURE)'
+     The operation failed or the command syntax was not valid.
+
+psktool See Also
+................
+
+gnutls-cli-debug (1), gnutls-serv (1), srptool (1), certtool (1)
+
+psktool Examples
+................
+
+To add a user 'psk_identity' in 'passwd.psk' for use with GnuTLS run:
+     $ ./psktool -u psk_identity -p passwd.psk
+     Generating a random key for user 'psk_identity'
+     Key stored to passwd.psk
+     $ cat psks.txt
+     psk_identity:88f3824b3e5659f52d00e959bacab954b6540344
+     $
+
+This command will create 'passwd.psk' if it does not exist and will add
+user 'psk_identity' (you will also be prompted for a password).
+
+\1f
+File: gnutls.info,  Node: Anonymous authentication,  Prev: PSK authentication,  Up: Shared-key and anonymous authentication
+
+5.3 Anonymous authentication
+============================
+
+The anonymous key exchange offers encryption without any indication of
+the peer's identity.  This kind of authentication is vulnerable to a man
+in the middle attack, but can be used even if there is no prior
+communication or shared trusted parties with the peer.  Moreover it is
+useful when complete anonymity is required.  Unless in one of the above
+cases, do not use anonymous authentication.
+
+The available key exchange algorithms for anonymous authentication are
+shown below, but note that few public servers support them.  They
+typically have to be explicitly enabled.
+
+'ANON_DH:'
+     This algorithm exchanges Diffie-Hellman parameters.
+
+'ANON_ECDH:'
+     This algorithm exchanges elliptic curve Diffie-Hellman parameters.
+     It is more efficient than ANON_DH on equivalent security levels.
+
+\1f
+File: gnutls.info,  Node: More on certificate authentication,  Next: How to use GnuTLS in applications,  Prev: Shared-key and anonymous authentication,  Up: Top
+
+6 More on certificate authentication
+************************************
+
+Certificates are not the only structures involved in a public key
+infrastructure.  Several other structures that are used for certificate
+requests, encrypted private keys, revocation lists, GnuTLS abstract key
+structures, etc., are discussed in this chapter.
+
+* Menu:
+
+* PKCS 10 certificate requests::
+* PKIX certificate revocation lists::
+* OCSP certificate status checking::
+* Managing encrypted keys::
+* certtool Invocation::            Invoking certtool
+* ocsptool Invocation::            Invoking ocsptool
+* Smart cards and HSMs::
+* Abstract key types::
+
+\1f
+File: gnutls.info,  Node: PKCS 10 certificate requests,  Next: PKIX certificate revocation lists,  Up: More on certificate authentication
+
+6.1 PKCS #10 certificate requests
+=================================
+
+A certificate request is a structure, which contain information about an
+applicant of a certificate service.  It usually contains a private key,
+a distinguished name and secondary data such as a challenge password.
+GnuTLS supports the requests defined in PKCS #10 [_RFC2986_].  Other
+formats of certificate requests are not currently supported.
+
+A certificate request can be generated by associating it with a private
+key, setting the subject's information and finally self signing it.  The
+last step ensures that the requester is in possession of the private
+key.
+
+'INT *note gnutls_x509_crq_set_version:: (gnutls_x509_crq_t CRQ, unsigned int VERSION)'
+'INT *note gnutls_x509_crq_set_dn_by_oid:: (gnutls_x509_crq_t CRQ, const char * OID, unsigned int RAW_FLAG, const void * DATA, unsigned int SIZEOF_DATA)'
+'INT *note gnutls_x509_crq_set_key_usage:: (gnutls_x509_crq_t CRQ, unsigned int USAGE)'
+'INT *note gnutls_x509_crq_set_key_purpose_oid:: (gnutls_x509_crq_t CRQ, const void * OID, unsigned int CRITICAL)'
+'INT *note gnutls_x509_crq_set_basic_constraints:: (gnutls_x509_crq_t CRQ, unsigned int CA, int PATHLENCONSTRAINT)'
+
+The *note gnutls_x509_crq_set_key:: and *note gnutls_x509_crq_sign2::
+functions associate the request with a private key and sign it.  If a
+request is to be signed with a key residing in a PKCS #11 token it is
+recommended to use the signing functions shown in *note Abstract key
+types::.
+
+ -- Function: int gnutls_x509_crq_set_key (gnutls_x509_crq_t CRQ,
+          gnutls_x509_privkey_t KEY)
+     CRQ: should contain a 'gnutls_x509_crq_t' structure
+
+     KEY: holds a private key
+
+     This function will set the public parameters from the given private
+     key to the request.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+ -- Function: int gnutls_x509_crq_sign2 (gnutls_x509_crq_t CRQ,
+          gnutls_x509_privkey_t KEY, gnutls_digest_algorithm_t DIG,
+          unsigned int FLAGS)
+     CRQ: should contain a 'gnutls_x509_crq_t' structure
+
+     KEY: holds a private key
+
+     DIG: The message digest to use, i.e., 'GNUTLS_DIG_SHA1'
+
+     FLAGS: must be 0
+
+     This function will sign the certificate request with a private key.
+     This must be the same key as the one used in
+     'gnutls_x509_crt_set_key()' since a certificate request is self
+     signed.
+
+     This must be the last step in a certificate request generation
+     since all the previously set parameters are now signed.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.  'GNUTLS_E_ASN1_VALUE_NOT_FOUND' is returned if you
+     didn't set all information in the certificate request (e.g., the
+     version using 'gnutls_x509_crq_set_version()' ).
+
+The following example is about generating a certificate request, and a
+private key.  A certificate request can be later be processed by a CA
+which should return a signed certificate.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+#include <gnutls/abstract.h>
+#include <time.h>
+
+/* This example will generate a private key and a certificate
+ * request.
+ */
+
+int
+main (void)
+{
+  gnutls_x509_crq_t crq;
+  gnutls_x509_privkey_t key;
+  unsigned char buffer[10 * 1024];
+  size_t buffer_size = sizeof (buffer);
+  unsigned int bits;
+
+  gnutls_global_init ();
+
+  /* Initialize an empty certificate request, and
+   * an empty private key.
+   */
+  gnutls_x509_crq_init (&crq);
+
+  gnutls_x509_privkey_init (&key);
+
+  /* Generate an RSA key of moderate security.
+   */
+  bits = gnutls_sec_param_to_pk_bits (GNUTLS_PK_RSA, GNUTLS_SEC_PARAM_NORMAL);
+  gnutls_x509_privkey_generate (key, GNUTLS_PK_RSA, bits, 0);
+
+  /* Add stuff to the distinguished name
+   */
+  gnutls_x509_crq_set_dn_by_oid (crq, GNUTLS_OID_X520_COUNTRY_NAME,
+                                 0, "GR", 2);
+
+  gnutls_x509_crq_set_dn_by_oid (crq, GNUTLS_OID_X520_COMMON_NAME,
+                                 0, "Nikos", strlen ("Nikos"));
+
+  /* Set the request version.
+   */
+  gnutls_x509_crq_set_version (crq, 1);
+
+  /* Set a challenge password.
+   */
+  gnutls_x509_crq_set_challenge_password (crq, "something to remember here");
+
+  /* Associate the request with the private key
+   */
+  gnutls_x509_crq_set_key (crq, key);
+
+  /* Self sign the certificate request.
+   */
+  gnutls_x509_crq_sign2 (crq, key, GNUTLS_DIG_SHA1, 0);
+
+  /* Export the PEM encoded certificate request, and
+   * display it.
+   */
+  gnutls_x509_crq_export (crq, GNUTLS_X509_FMT_PEM, buffer, &buffer_size);
+
+  printf ("Certificate Request: \n%s", buffer);
+
+
+  /* Export the PEM encoded private key, and
+   * display it.
+   */
+  buffer_size = sizeof (buffer);
+  gnutls_x509_privkey_export (key, GNUTLS_X509_FMT_PEM, buffer, &buffer_size);
+
+  printf ("\n\nPrivate key: \n%s", buffer);
+
+  gnutls_x509_crq_deinit (crq);
+  gnutls_x509_privkey_deinit (key);
+
+  return 0;
+
+}
+
+\1f
+File: gnutls.info,  Node: PKIX certificate revocation lists,  Next: OCSP certificate status checking,  Prev: PKCS 10 certificate requests,  Up: More on certificate authentication
+
+6.2 PKIX certificate revocation lists
+=====================================
+
+A certificate revocation list (CRL) is a structure issued by an
+authority periodically containing a list of revoked certificates serial
+numbers.  The CRL structure is signed with the issuing authorities'
+keys.  A typical CRL contains the fields as shown in *note Table 6.1:
+tab:crl.  Certificate revocation lists are used to complement the
+expiration date of a certificate, in order to account for other reasons
+of revocation, such as compromised keys, etc.
+
+A certificate request can be generated by associating it with a private
+key, setting the subject's information and finally self signing it.  The
+last step ensures that the requester is in possession of the private
+key.  Each CRL is valid for limited amount of time and is required to
+provide, except for the current issuing time, also the issuing time of
+the next update.
+
+Field          Description
+               
+------------------------------------------------------------------
+version        The field that indicates the version of the CRL
+               structure.
+               
+signature      A signature by the issuing authority.
+               
+issuer         Holds the issuer's distinguished name.
+               
+thisUpdate     The issuing time of the revocation list.
+               
+nextUpdate     The issuing time of the revocation list that
+               will update that one.
+               
+revokedCertificatesList of revoked certificates serial numbers.
+               
+extensions     Optional CRL structure extensions.
+               
+
+Table 6.1: Certificate revocation list fields.
+
+'INT *note gnutls_x509_crl_set_version:: (gnutls_x509_crl_t CRL, unsigned int VERSION)'
+'INT *note gnutls_x509_crl_set_crt_serial:: (gnutls_x509_crl_t CRL, const void * SERIAL, size_t SERIAL_SIZE, time_t REVOCATION_TIME)'
+'INT *note gnutls_x509_crl_set_crt:: (gnutls_x509_crl_t CRL, gnutls_x509_crt_t CRT, time_t REVOCATION_TIME)'
+'INT *note gnutls_x509_crl_set_next_update:: (gnutls_x509_crl_t CRL, time_t EXP_TIME)'
+'INT *note gnutls_x509_crl_set_this_update:: (gnutls_x509_crl_t CRL, time_t ACT_TIME)'
+
+The *note gnutls_x509_crl_sign2:: and *note
+gnutls_x509_crl_privkey_sign:: functions sign the revocation list with a
+private key.  The latter function can be used to sign with a key
+residing in a PKCS #11 token.
+
+ -- Function: int gnutls_x509_crl_sign2 (gnutls_x509_crl_t CRL,
+          gnutls_x509_crt_t ISSUER, gnutls_x509_privkey_t ISSUER_KEY,
+          gnutls_digest_algorithm_t DIG, unsigned int FLAGS)
+     CRL: should contain a gnutls_x509_crl_t structure
+
+     ISSUER: is the certificate of the certificate issuer
+
+     ISSUER_KEY: holds the issuer's private key
+
+     DIG: The message digest to use.  GNUTLS_DIG_SHA1 is the safe choice
+     unless you know what you're doing.
+
+     FLAGS: must be 0
+
+     This function will sign the CRL with the issuer's private key, and
+     will copy the issuer's information into the CRL.
+
+     This must be the last step in a certificate CRL since all the
+     previously set parameters are now signed.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+ -- Function: int gnutls_x509_crl_privkey_sign (gnutls_x509_crl_t CRL,
+          gnutls_x509_crt_t ISSUER, gnutls_privkey_t ISSUER_KEY,
+          gnutls_digest_algorithm_t DIG, unsigned int FLAGS)
+     CRL: should contain a gnutls_x509_crl_t structure
+
+     ISSUER: is the certificate of the certificate issuer
+
+     ISSUER_KEY: holds the issuer's private key
+
+     DIG: The message digest to use.  GNUTLS_DIG_SHA1 is the safe choice
+     unless you know what you're doing.
+
+     FLAGS: must be 0
+
+     This function will sign the CRL with the issuer's private key, and
+     will copy the issuer's information into the CRL.
+
+     This must be the last step in a certificate CRL since all the
+     previously set parameters are now signed.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     Since 2.12.0
+
+Few extensions on the CRL structure are supported, including the CRL
+number extension and the authority key identifier.
+
+'INT *note gnutls_x509_crl_set_number:: (gnutls_x509_crl_t CRL, const void * NR, size_t NR_SIZE)'
+'INT *note gnutls_x509_crl_set_authority_key_id:: (gnutls_x509_crl_t CRL, const void * ID, size_t ID_SIZE)'
+
+\1f
+File: gnutls.info,  Node: OCSP certificate status checking,  Next: Managing encrypted keys,  Prev: PKIX certificate revocation lists,  Up: More on certificate authentication
+
+6.3 OCSP certificate status checking
+====================================
+
+Certificates may be revoked before their expiration time has been
+reached.  There are several reasons for revoking certificates, but a
+typical situation is when the private key associated with a certificate
+has been compromised.  Traditionally, Certificate Revocation Lists
+(CRLs) have been used by application to implement revocation checking,
+however, several problems with CRLs have been identified [_RIVESTCRL_].
+
+The Online Certificate Status Protocol, or OCSP [_RFC2560_], is a widely
+implemented protocol to perform certificate revocation status checking.
+An application that wish to verify the identity of a peer will verify
+the certificate against a set of trusted certificates and then check
+whether the certificate is listed in a CRL and/or perform an OCSP check
+for the certificate.
+
+Before performing the OCSP query, the application will need to figure
+out the address of the OCSP server.  The OCSP server address can be
+provided by the local user in manual configuration or may be stored in
+the certificate that is being checked.  The latter is due to an
+extension field called the Authority Information Access (AIA) which may
+hold the location of the OCSP responder in the access method called
+'id-ad-ocsp'.  The following function extracts this information from a
+certificate.
+
+'INT *note gnutls_x509_crt_get_authority_info_access:: (gnutls_x509_crt_t CRT, unsigned int SEQ, int WHAT, gnutls_datum_t * DATA, unsigned int * CRITICAL)'
+
+There are several functions in GnuTLS for creating and manipulating OCSP
+requests and responses.  The general idea is that a client application
+create an OCSP request object, store some information about the
+certificate to check in the request, and then export the request in DER
+format.  The request will then need to be sent to the OCSP responder,
+which needs to be done by the application (GnuTLS does not send and
+receive OCSP packets).  Normally an OCSP response is received that the
+application will need to import into an OCSP response object.  The
+digital signature in the OCSP response needs to be verified against a
+set of trust anchors before the information in the response can be
+trusted.
+
+The ASN.1 structure of OCSP requests are briefly as follows.  It is
+useful to review the structures to get an understanding of which fields
+are modified by GnuTLS functions.
+
+     OCSPRequest     ::=     SEQUENCE {
+         tbsRequest                  TBSRequest,
+         optionalSignature   [0]     EXPLICIT Signature OPTIONAL }
+
+     TBSRequest      ::=     SEQUENCE {
+         version             [0]     EXPLICIT Version DEFAULT v1,
+         requestorName       [1]     EXPLICIT GeneralName OPTIONAL,
+         requestList                 SEQUENCE OF Request,
+         requestExtensions   [2]     EXPLICIT Extensions OPTIONAL }
+
+     Request         ::=     SEQUENCE {
+         reqCert                     CertID,
+         singleRequestExtensions     [0] EXPLICIT Extensions OPTIONAL }
+
+     CertID          ::=     SEQUENCE {
+         hashAlgorithm       AlgorithmIdentifier,
+         issuerNameHash      OCTET STRING, -- Hash of Issuer's DN
+         issuerKeyHash       OCTET STRING, -- Hash of Issuers public key
+         serialNumber        CertificateSerialNumber }
+
+The basic functions to initialize, import, export and deallocate OCSP
+requests are the following.
+
+'INT *note gnutls_ocsp_req_init:: (gnutls_ocsp_req_t * REQ)'
+'VOID *note gnutls_ocsp_req_deinit:: (gnutls_ocsp_req_t REQ)'
+'INT *note gnutls_ocsp_req_import:: (gnutls_ocsp_req_t REQ, const gnutls_datum_t * DATA)'
+'INT *note gnutls_ocsp_req_export:: (gnutls_ocsp_req_t REQ, gnutls_datum_t * DATA)'
+'INT *note gnutls_ocsp_req_print:: (gnutls_ocsp_req_t REQ, gnutls_ocsp_print_formats_t FORMAT, gnutls_datum_t * OUT)'
+
+There are two interfaces for setting the identity of a certificate in a
+OCSP request, the first being a low-level function when you have the
+issuer name hash, issuer key hash, and certificate serial number in
+binary form.  The second is usually more useful if you have the
+certificate (and its issuer) in a 'gnutls_x509_crt_t' type.  There is
+also a function to extract this information from an OCSP request.
+
+'INT *note gnutls_ocsp_req_add_cert_id:: (gnutls_ocsp_req_t REQ, gnutls_digest_algorithm_t DIGEST, const gnutls_datum_t * ISSUER_NAME_HASH, const gnutls_datum_t * ISSUER_KEY_HASH, const gnutls_datum_t * SERIAL_NUMBER)'
+'INT *note gnutls_ocsp_req_add_cert:: (gnutls_ocsp_req_t REQ, gnutls_digest_algorithm_t DIGEST, gnutls_x509_crt_t ISSUER, gnutls_x509_crt_t CERT)'
+'INT *note gnutls_ocsp_req_get_cert_id:: (gnutls_ocsp_req_t REQ, unsigned INDX, gnutls_digest_algorithm_t * DIGEST, gnutls_datum_t * ISSUER_NAME_HASH, gnutls_datum_t * ISSUER_KEY_HASH, gnutls_datum_t * SERIAL_NUMBER)'
+
+Each OCSP request may contain a number of extensions.  Extensions are
+identified by an Object Identifier (OID) and an opaque data buffer whose
+syntax and semantics is implied by the OID.
+
+'INT *note gnutls_ocsp_req_get_extension:: (gnutls_ocsp_req_t REQ, unsigned INDX, gnutls_datum_t * OID, unsigned int * CRITICAL, gnutls_datum_t * DATA)'
+'INT *note gnutls_ocsp_req_set_extension:: (gnutls_ocsp_req_t REQ, const char * OID, unsigned int CRITICAL, const gnutls_datum_t * DATA)'
+
+A common OCSP Request extension is the nonce extension (OID
+1.3.6.1.5.5.7.48.1.2), which is used to avoid replay attacks of earlier
+recorded OCSP responses.  The nonce extension carries a value that is
+intended to be sufficiently random and unique so that an attacker will
+not be able to give a stale response for the same nonce.
+
+'INT *note gnutls_ocsp_req_get_nonce:: (gnutls_ocsp_req_t REQ, unsigned int * CRITICAL, gnutls_datum_t * NONCE)'
+'INT *note gnutls_ocsp_req_set_nonce:: (gnutls_ocsp_req_t REQ, unsigned int CRITICAL, const gnutls_datum_t * NONCE)'
+'INT *note gnutls_ocsp_req_randomize_nonce:: (gnutls_ocsp_req_t REQ)'
+
+The OCSP response structures is a bit more complex than the request.
+The important ASN.1 structure is as follows.  In practice, all OCSP
+responses contain a Basic OCSP response sub-structure.
+
+     OCSPResponse ::= SEQUENCE {
+        responseStatus         OCSPResponseStatus,
+        responseBytes          [0] EXPLICIT ResponseBytes OPTIONAL }
+
+     OCSPResponseStatus ::= ENUMERATED {
+         successful            (0),  --Response has valid confirmations
+         malformedRequest      (1),  --Illegal confirmation request
+         internalError         (2),  --Internal error in issuer
+         tryLater              (3),  --Try again later
+                                     --(4) is not used
+         sigRequired           (5),  --Must sign the request
+         unauthorized          (6)   --Request unauthorized }
+
+     ResponseBytes ::=       SEQUENCE {
+         responseType   OBJECT IDENTIFIER,
+         response       OCTET STRING }
+
+     id-pkix-ocsp-basic     OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 }
+
+     BasicOCSPResponse       ::= SEQUENCE {
+        tbsResponseData      ResponseData,
+        signatureAlgorithm   AlgorithmIdentifier,
+        signature            BIT STRING,
+        certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
+
+     ResponseData ::= SEQUENCE {
+        version              [0] EXPLICIT Version DEFAULT v1,
+        responderID              ResponderID,
+        producedAt               GeneralizedTime,
+        responses                SEQUENCE OF SingleResponse,
+        responseExtensions   [1] EXPLICIT Extensions OPTIONAL }
+
+     ResponderID ::= CHOICE {
+        byName               [1] Name,
+        byKey                [2] KeyHash }
+
+     KeyHash ::= OCTET STRING -- SHA-1 hash of responder's public key
+     (excluding the tag and length fields)
+
+     SingleResponse ::= SEQUENCE {
+        certID                       CertID,
+        certStatus                   CertStatus,
+        thisUpdate                   GeneralizedTime,
+        nextUpdate         [0]       EXPLICIT GeneralizedTime OPTIONAL,
+        singleExtensions   [1]       EXPLICIT Extensions OPTIONAL }
+
+     CertStatus ::= CHOICE {
+         good        [0]     IMPLICIT NULL,
+         revoked     [1]     IMPLICIT RevokedInfo,
+         unknown     [2]     IMPLICIT UnknownInfo }
+
+     RevokedInfo ::= SEQUENCE {
+         revocationTime              GeneralizedTime,
+         revocationReason    [0]     EXPLICIT CRLReason OPTIONAL }
+
+We provide basic functions for initialization, importing, exporting and
+deallocating OCSP responses.  The Basic OCSP Response structure is
+automatically parsed when an OCSP Response is imported.
+
+'INT *note gnutls_ocsp_resp_init:: (gnutls_ocsp_resp_t * RESP)'
+'VOID *note gnutls_ocsp_resp_deinit:: (gnutls_ocsp_resp_t RESP)'
+'INT *note gnutls_ocsp_resp_import:: (gnutls_ocsp_resp_t RESP, const gnutls_datum_t * DATA)'
+'INT *note gnutls_ocsp_resp_export:: (gnutls_ocsp_resp_t RESP, gnutls_datum_t * DATA)'
+'INT *note gnutls_ocsp_resp_print:: (gnutls_ocsp_resp_t RESP, gnutls_ocsp_print_formats_t FORMAT, gnutls_datum_t * OUT)'
+
+The OCSP response needs to be verified against some set of trust anchors
+before it can be relied upon.
+
+'INT *note gnutls_ocsp_resp_verify:: (gnutls_ocsp_resp_t RESP, gnutls_x509_trust_list_t TRUSTLIST, unsigned int * VERIFY, unsigned int FLAGS)'
+'INT *note gnutls_ocsp_resp_verify_direct:: (gnutls_ocsp_resp_t RESP, gnutls_x509_crt_t ISSUER, unsigned int * VERIFY, unsigned int FLAGS)'
+
+\1f
+File: gnutls.info,  Node: Managing encrypted keys,  Next: certtool Invocation,  Prev: OCSP certificate status checking,  Up: More on certificate authentication
+
+6.4 Managing encrypted keys
+===========================
+
+Transferring or storing private keys in plain might not be a good idea.
+Any access on the keys becomes a fatal compromise.  Storing the keys in
+hardware security modules (see *note Smart cards and HSMs::) could solve
+the storage problem but it is not always practical or efficient enough.
+This section describes alternative ways that involve encryption of the
+private keys to store and transfer.
+
+There are two alternatives to use for key encryption, PKCS #8 and #12
+methods of private key encryption.  The PKCS #8 method only allows
+encryption of the private key, whilst the PKCS #12 method allows in
+addition the bundling of other data into the structure.  That could be
+bundling together the certificate as well as the trusted CA certificate.
+
+PKCS #8 structures
+------------------
+
+PKCS #8 keys can be imported and exported as normal private keys using
+the functions below.  An addition to the normal import functions, are a
+password and a flags argument.  The flags can be any element of the
+'gnutls_pkcs_encrypt_flags_t' enumeration.  Note however, that GnuTLS
+only supports the PKCS #5 PBES2 encryption scheme.  Keys encrypted with
+the obsolete PBES1 scheme cannot be decrypted.
+
+'INT *note gnutls_x509_privkey_import_pkcs8:: (gnutls_x509_privkey_t KEY, const gnutls_datum_t * DATA, gnutls_x509_crt_fmt_t FORMAT, const char * PASSWORD, unsigned int FLAGS)'
+'INT *note gnutls_x509_privkey_export_pkcs8:: (gnutls_x509_privkey_t KEY, gnutls_x509_crt_fmt_t FORMAT, const char * PASSWORD, unsigned int FLAGS, void * OUTPUT_DATA, size_t * OUTPUT_DATA_SIZE)'
+
+'GNUTLS_PKCS_PLAIN'
+     Unencrypted private key.
+'GNUTLS_PKCS8_PLAIN'
+     Same as 'GNUTLS_PKCS_PLAIN' .
+'GNUTLS_PKCS_USE_PKCS12_3DES'
+     PKCS-12 3DES.
+'GNUTLS_PKCS8_USE_PKCS12_3DES'
+     Same as 'GNUTLS_PKCS_USE_PKCS12_3DES' .
+'GNUTLS_PKCS_USE_PKCS12_ARCFOUR'
+     PKCS-12 ARCFOUR.
+'GNUTLS_PKCS8_USE_PKCS12_ARCFOUR'
+     Same as 'GNUTLS_PKCS_USE_PKCS12_ARCFOUR' .
+'GNUTLS_PKCS_USE_PKCS12_RC2_40'
+     PKCS-12 RC2-40.
+'GNUTLS_PKCS8_USE_PKCS12_RC2_40'
+     Same as 'GNUTLS_PKCS_USE_PKCS12_RC2_40' .
+'GNUTLS_PKCS_USE_PBES2_3DES'
+     PBES2 3DES.
+'GNUTLS_PKCS_USE_PBES2_AES_128'
+     PBES2 AES-128.
+'GNUTLS_PKCS_USE_PBES2_AES_192'
+     PBES2 AES-192.
+'GNUTLS_PKCS_USE_PBES2_AES_256'
+     PBES2 AES-256.
+
+Figure 6.1: Encryption flags
+
+PKCS #12 structures
+-------------------
+
+A PKCS #12 structure [_PKCS12_] usually contains a user's private keys
+and certificates.  It is commonly used in browsers to export and import
+the user's identities.
+
+In GnuTLS the PKCS #12 structures are handled using the
+'gnutls_pkcs12_t' type.  This is an abstract type that may hold several
+'gnutls_pkcs12_bag_t' types.  The bag types are the holders of the
+actual data, which may be certificates, private keys or encrypted data.
+A bag of type encrypted should be decrypted in order for its data to be
+accessed.
+
+'INT *note gnutls_pkcs12_get_bag:: (gnutls_pkcs12_t PKCS12, int INDX, gnutls_pkcs12_bag_t BAG)'
+'INT *note gnutls_pkcs12_verify_mac:: (gnutls_pkcs12_t PKCS12, const char * PASS)'
+'INT *note gnutls_pkcs12_bag_decrypt:: (gnutls_pkcs12_bag_t BAG, const char * PASS)'
+
+'INT *note gnutls_pkcs12_bag_get_count:: (gnutls_pkcs12_bag_t BAG)'
+'INT *note gnutls_pkcs12_bag_get_data:: (gnutls_pkcs12_bag_t BAG, int INDX, gnutls_datum_t * DATA)'
+'INT *note gnutls_pkcs12_bag_get_key_id:: (gnutls_pkcs12_bag_t BAG, int INDX, gnutls_datum_t * ID)'
+'INT *note gnutls_pkcs12_bag_get_friendly_name:: (gnutls_pkcs12_bag_t BAG, int INDX, char ** NAME)'
+
+The functions below are used to generate a PKCS #12 structure.  An
+example of their usage is also shown.
+
+'INT *note gnutls_pkcs12_set_bag:: (gnutls_pkcs12_t PKCS12, gnutls_pkcs12_bag_t BAG)'
+'INT *note gnutls_pkcs12_bag_encrypt:: (gnutls_pkcs12_bag_t BAG, const char * PASS, unsigned int FLAGS)'
+'INT *note gnutls_pkcs12_generate_mac:: (gnutls_pkcs12_t PKCS12, const char * PASS)'
+'INT *note gnutls_pkcs12_bag_set_data:: (gnutls_pkcs12_bag_t BAG, gnutls_pkcs12_bag_type_t TYPE, const gnutls_datum_t * DATA)'
+'INT *note gnutls_pkcs12_bag_set_crl:: (gnutls_pkcs12_bag_t BAG, gnutls_x509_crl_t CRL)'
+'INT *note gnutls_pkcs12_bag_set_crt:: (gnutls_pkcs12_bag_t BAG, gnutls_x509_crt_t CRT)'
+'INT *note gnutls_pkcs12_bag_set_key_id:: (gnutls_pkcs12_bag_t BAG, int INDX, const gnutls_datum_t * ID)'
+'INT *note gnutls_pkcs12_bag_set_friendly_name:: (gnutls_pkcs12_bag_t BAG, int INDX, const char * NAME)'
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/pkcs12.h>
+
+#include "examples.h"
+
+#define OUTFILE "out.p12"
+
+/* This function will write a pkcs12 structure into a file.
+ * cert: is a DER encoded certificate
+ * pkcs8_key: is a PKCS #8 encrypted key (note that this must be
+ *  encrypted using a PKCS #12 cipher, or some browsers will crash)
+ * password: is the password used to encrypt the PKCS #12 packet.
+ */
+int
+write_pkcs12 (const gnutls_datum_t * cert,
+              const gnutls_datum_t * pkcs8_key, const char *password)
+{
+  gnutls_pkcs12_t pkcs12;
+  int ret, bag_index;
+  gnutls_pkcs12_bag_t bag, key_bag;
+  char pkcs12_struct[10 * 1024];
+  size_t pkcs12_struct_size;
+  FILE *fd;
+
+  /* A good idea might be to use gnutls_x509_privkey_get_key_id()
+   * to obtain a unique ID.
+   */
+  gnutls_datum_t key_id = { (void *) "\x00\x00\x07", 3 };
+
+  gnutls_global_init ();
+
+  /* Firstly we create two helper bags, which hold the certificate,
+   * and the (encrypted) key.
+   */
+
+  gnutls_pkcs12_bag_init (&bag);
+  gnutls_pkcs12_bag_init (&key_bag);
+
+  ret = gnutls_pkcs12_bag_set_data (bag, GNUTLS_BAG_CERTIFICATE, cert);
+  if (ret < 0)
+    {
+      fprintf (stderr, "ret: %s\n", gnutls_strerror (ret));
+      return 1;
+    }
+
+  /* ret now holds the bag's index.
+   */
+  bag_index = ret;
+
+  /* Associate a friendly name with the given certificate. Used
+   * by browsers.
+   */
+  gnutls_pkcs12_bag_set_friendly_name (bag, bag_index, "My name");
+
+  /* Associate the certificate with the key using a unique key
+   * ID.
+   */
+  gnutls_pkcs12_bag_set_key_id (bag, bag_index, &key_id);
+
+  /* use weak encryption for the certificate.
+   */
+  gnutls_pkcs12_bag_encrypt (bag, password, GNUTLS_PKCS_USE_PKCS12_RC2_40);
+
+  /* Now the key.
+   */
+
+  ret = gnutls_pkcs12_bag_set_data (key_bag,
+                                    GNUTLS_BAG_PKCS8_ENCRYPTED_KEY,
+                                    pkcs8_key);
+  if (ret < 0)
+    {
+      fprintf (stderr, "ret: %s\n", gnutls_strerror (ret));
+      return 1;
+    }
+
+  /* Note that since the PKCS #8 key is already encrypted we don't
+   * bother encrypting that bag.
+   */
+  bag_index = ret;
+
+  gnutls_pkcs12_bag_set_friendly_name (key_bag, bag_index, "My name");
+
+  gnutls_pkcs12_bag_set_key_id (key_bag, bag_index, &key_id);
+
+
+  /* The bags were filled. Now create the PKCS #12 structure.
+   */
+  gnutls_pkcs12_init (&pkcs12);
+
+  /* Insert the two bags in the PKCS #12 structure.
+   */
+
+  gnutls_pkcs12_set_bag (pkcs12, bag);
+  gnutls_pkcs12_set_bag (pkcs12, key_bag);
+
+
+  /* Generate a message authentication code for the PKCS #12
+   * structure.
+   */
+  gnutls_pkcs12_generate_mac (pkcs12, password);
+
+  pkcs12_struct_size = sizeof (pkcs12_struct);
+  ret =
+    gnutls_pkcs12_export (pkcs12, GNUTLS_X509_FMT_DER, pkcs12_struct,
+                          &pkcs12_struct_size);
+  if (ret < 0)
+    {
+      fprintf (stderr, "ret: %s\n", gnutls_strerror (ret));
+      return 1;
+    }
+
+  fd = fopen (OUTFILE, "w");
+  if (fd == NULL)
+    {
+      fprintf (stderr, "cannot open file\n");
+      return 1;
+    }
+  fwrite (pkcs12_struct, 1, pkcs12_struct_size, fd);
+  fclose (fd);
+
+  gnutls_pkcs12_bag_deinit (bag);
+  gnutls_pkcs12_bag_deinit (key_bag);
+  gnutls_pkcs12_deinit (pkcs12);
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: certtool Invocation,  Next: ocsptool Invocation,  Prev: Managing encrypted keys,  Up: More on certificate authentication
+
+6.5 Invoking certtool
+=====================
+
+Tool to parse and generate X.509 certificates, requests and private
+keys.  It can be used interactively or non interactively by specifying
+the template command line option.
+
+This section was generated by *AutoGen*, using the 'agtexi-cmd' template
+and the option descriptions for the 'certtool' program.  This software
+is released under the GNU General Public License, version 3 or later.
+
+certtool help/usage ('--help')
+------------------------------
+
+This is the automatically generated usage text for certtool.
+
+The text printed is the same whether selected with the 'help' option
+('--help') or the 'more-help' option ('--more-help').  'more-help' will
+print the usage text by passing it through a pager program.  'more-help'
+is disabled on platforms without a working 'fork(2)' function.  The
+'PAGER' environment variable is used to select the program, defaulting
+to 'more'.  Both will exit with a status code of 0.
+
+     certtool - GnuTLS PKCS #11 tool - Ver. @VERSION@
+     USAGE:  lt-certtool [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
+
+        -d, --debug=num            Enable debugging.
+                                     - It must be in the range:
+                                       0 to 9999
+            --infile=file          Input file
+                                     - file must pre-exist
+            --outfile=str          Output file
+        -s, --generate-self-signed  Generate a self-signed certificate
+        -c, --generate-certificate  Generate a signed certificate
+            --generate-proxy       Generates a proxy certificate
+            --generate-crl         Generate a CRL
+        -u, --update-certificate   Update a signed certificate
+        -p, --generate-privkey     Generate a private key
+        -q, --generate-request     Generate a PKCS #10 certificate request
+        -e, --verify-chain         Verify a PEM encoded certificate chain.
+            --verify               Verify a PEM encoded certificate chain using a trusted list.
+                                     - requires these options:
+                                     load-ca-certificate
+            --verify-crl           Verify a CRL using a trusted list.
+                                     - requires these options:
+                                     load-ca-certificate
+            --generate-dh-params   Generate PKCS #3 encoded Diffie-Hellman parameters.
+            --get-dh-params        Get the included PKCS #3 encoded Diffie-Hellman parameters.
+            --dh-info              Print information PKCS #3 encoded Diffie-Hellman parameters
+            --load-privkey=str     Loads a private key file
+            --load-pubkey=str      Loads a public key file
+            --load-request=file    Loads a certificate request file
+                                     - file must pre-exist
+            --load-certificate=str Loads a certificate file
+            --load-ca-privkey=str  Loads the certificate authority's private key file
+            --load-ca-certificate=str Loads the certificate authority's certificate file
+            --password=str         Password to use
+        -i, --certificate-info     Print information on the given certificate
+            --certificate-pubkey   Print certificate's public key
+            --pgp-certificate-info  Print information on the given OpenPGP certificate
+            --pgp-ring-info        Print information on the given OpenPGP keyring structure
+        -l, --crl-info             Print information on the given CRL structure
+            --crq-info             Print information on the given certificate request
+            --no-crq-extensions    Do not use extensions in certificate requests
+            --p12-info             Print information on a PKCS #12 structure
+            --p7-info              Print information on a PKCS #7 structure
+            --smime-to-p7          Convert S/MIME to PKCS #7 structure
+        -k, --key-info             Print information on a private key
+            --pgp-key-info         Print information on an OpenPGP private key
+            --pubkey-info          Print information on a public key
+            --v1                   Generate an X.509 version 1 certificate (with no extensions)
+            --to-p12               Generate a PKCS #12 structure
+                                     - requires these options:
+                                     load-certificate
+            --to-p8                Generate a PKCS #8 structure
+        -8, --pkcs8                Use PKCS #8 format for private keys
+            --rsa                  Generate RSA key
+            --dsa                  Generate DSA key
+            --ecc                  Generate ECC (ECDSA) key
+            --hash=str             Hash algorithm to use for signing.
+            --inder                Use DER format for input certificates and private keys.
+                                     - disabled as --no-inder
+            --inraw                This is an alias for 'inder'
+            --outder               Use DER format for output certificates and private keys
+                                     - disabled as --no-outder
+            --outraw               This is an alias for 'outder'
+            --bits=num             Specify the number of bits for key generate
+            --sec-param=str        Specify the security level [low, legacy, normal, high, ultra].
+            --disable-quick-random  No effect
+            --template=file        Template file to use for non-interactive operation
+                                     - file must pre-exist
+            --pkcs-cipher=str      Cipher to use for PKCS #8 and #12 operations
+        -v, --version[=arg]        Output version information and exit
+        -h, --help                 Display extended usage information and exit
+        -!, --more-help            Extended usage information passed thru pager
+
+     Options are specified by doubled hyphens and their name or by a single
+     hyphen and the flag character.
+
+
+
+     Tool to parse and generate X.509 certificates, requests and private keys.
+     It can be used interactively or non interactively by specifying the
+     template command line option.
+
+     please send bug reports to:  bug-gnutls@gnu.org
+
+debug option (-d)
+-----------------
+
+This is the "enable debugging."  option.  This option takes an argument
+number.  Specifies the debug level.
+
+verify-chain option (-e)
+------------------------
+
+This is the "verify a pem encoded certificate chain."  option.  The last
+certificate in the chain must be a self signed one.
+
+verify option
+-------------
+
+This is the "verify a pem encoded certificate chain using a trusted
+list."  option.
+
+This option has some usage constraints.  It:
+   * must appear in combination with the following options:
+     load-ca-certificate.
+
+The trusted certificate list must be loaded with -load-ca-certificate.
+
+verify-crl option
+-----------------
+
+This is the "verify a crl using a trusted list."  option.
+
+This option has some usage constraints.  It:
+   * must appear in combination with the following options:
+     load-ca-certificate.
+
+The trusted certificate list must be loaded with -load-ca-certificate.
+
+get-dh-params option
+--------------------
+
+This is the "get the included pkcs #3 encoded diffie-hellman
+parameters."  option.  Returns stored DH parameters in GnuTLS. Those
+parameters are used in the SRP protocol.  The parameters returned by
+fresh generation are more efficient since GnuTLS 3.0.9.
+
+load-privkey option
+-------------------
+
+This is the "loads a private key file" option.  This option takes an
+argument string.  This can be either a file or a PKCS #11 URL
+
+load-pubkey option
+------------------
+
+This is the "loads a public key file" option.  This option takes an
+argument string.  This can be either a file or a PKCS #11 URL
+
+load-certificate option
+-----------------------
+
+This is the "loads a certificate file" option.  This option takes an
+argument string.  This can be either a file or a PKCS #11 URL
+
+load-ca-privkey option
+----------------------
+
+This is the "loads the certificate authority's private key file" option.
+This option takes an argument string.  This can be either a file or a
+PKCS #11 URL
+
+load-ca-certificate option
+--------------------------
+
+This is the "loads the certificate authority's certificate file" option.
+This option takes an argument string.  This can be either a file or a
+PKCS #11 URL
+
+to-p12 option
+-------------
+
+This is the "generate a pkcs #12 structure" option.
+
+This option has some usage constraints.  It:
+   * must appear in combination with the following options:
+     load-certificate.
+
+It requires a certificate, a private key and possibly a CA certificate
+to be specified.
+
+hash option
+-----------
+
+This is the "hash algorithm to use for signing."  option.  This option
+takes an argument string.  Available hash functions are SHA1, RMD160,
+SHA256, SHA384, SHA512.
+
+inder option
+------------
+
+This is the "use der format for input certificates and private keys."
+option.  The input files will be assumed to be in DER or RAW format.
+Unlike options that in PEM input would allow multiple input data (e.g.
+multiple certificates), when reading in DER format a single data
+structure is read.
+
+inraw option
+------------
+
+This is an alias for the 'inder' option, *note the inder option
+documentation: certtool inder.
+
+outder option
+-------------
+
+This is the "use der format for output certificates and private keys"
+option.  The output will be in DER or RAW format.
+
+outraw option
+-------------
+
+This is an alias for the 'outder' option, *note the outder option
+documentation: certtool outder.
+
+sec-param option
+----------------
+
+This is the "specify the security level [low, legacy, normal, high,
+ultra]."  option.  This option takes an argument string 'Security
+parameter'.  This is alternative to the bits option.
+
+pkcs-cipher option
+------------------
+
+This is the "cipher to use for pkcs #8 and #12 operations" option.  This
+option takes an argument string 'Cipher'.  Cipher may be one of 3des,
+3des-pkcs12, aes-128, aes-192, aes-256, rc2-40, arcfour.
+
+certtool exit status
+--------------------
+
+One of the following exit values will be returned:
+'0 (EXIT_SUCCESS)'
+     Successful program execution.
+'1 (EXIT_FAILURE)'
+     The operation failed or the command syntax was not valid.
+
+certtool See Also
+-----------------
+
+p11tool (1)
+
+certtool Examples
+-----------------
+
+Generating private keys
+-----------------------
+
+To create an RSA private key, run:
+     $ certtool --generate-privkey --outfile key.pem --rsa
+
+To create a DSA or elliptic curves (ECDSA) private key use the above
+command combined with 'dsa' or 'ecc' options.
+
+Generating certificate requests
+-------------------------------
+
+To create a certificate request (needed when the certificate is issued
+by another party), run:
+     certtool --generate-request --load-privkey key.pem \
+        --outfile request.pem
+
+If the private key is stored in a smart card you can generate a request
+by specifying the private key object URL.
+     $ ./certtool --generate-request --load-privkey "pkcs11:..." \
+       --load-pubkey "pkcs11:..." --outfile request.pem
+
+Generating a self-signed certificate
+------------------------------------
+
+To create a self signed certificate, use the command:
+     $ certtool --generate-privkey --outfile ca-key.pem
+     $ certtool --generate-self-signed --load-privkey ca-key.pem \
+        --outfile ca-cert.pem
+
+Note that a self-signed certificate usually belongs to a certificate
+authority, that signs other certificates.
+
+Generating a certificate
+------------------------
+
+To generate a certificate using the previous request, use the command:
+     $ certtool --generate-certificate --load-request request.pem \
+        --outfile cert.pem --load-ca-certificate ca-cert.pem \
+        --load-ca-privkey ca-key.pem
+
+To generate a certificate using the private key only, use the command:
+     $ certtool --generate-certificate --load-privkey key.pem \
+        --outfile cert.pem --load-ca-certificate ca-cert.pem \
+        --load-ca-privkey ca-key.pem
+
+Certificate information
+-----------------------
+
+To view the certificate information, use:
+     $ certtool --certificate-info --infile cert.pem
+
+PKCS #12 structure generation
+-----------------------------
+
+To generate a PKCS #12 structure using the previous key and certificate,
+use the command:
+     $ certtool --load-certificate cert.pem --load-privkey key.pem \
+        --to-p12 --outder --outfile key.p12
+
+Some tools (reportedly web browsers) have problems with that file
+because it does not contain the CA certificate for the certificate.  To
+work around that problem in the tool, you can use the
+-load-ca-certificate parameter as follows:
+
+     $ certtool --load-ca-certificate ca.pem \
+       --load-certificate cert.pem --load-privkey key.pem \
+       --to-p12 --outder --outfile key.p12
+
+Diffie-Hellman parameter generation
+-----------------------------------
+
+To generate parameters for Diffie-Hellman key exchange, use the command:
+     $ certtool --generate-dh-params --outfile dh.pem --sec-param normal
+
+Proxy certificate generation
+----------------------------
+
+Proxy certificate can be used to delegate your credential to a
+temporary, typically short-lived, certificate.  To create one from the
+previously created certificate, first create a temporary key and then
+generate a proxy certificate for it, using the commands:
+
+     $ certtool --generate-privkey > proxy-key.pem
+     $ certtool --generate-proxy --load-ca-privkey key.pem \
+       --load-privkey proxy-key.pem --load-certificate cert.pem \
+       --outfile proxy-cert.pem
+
+Certificate revocation list generation
+--------------------------------------
+
+To create an empty Certificate Revocation List (CRL) do:
+
+     $ certtool --generate-crl --load-ca-privkey x509-ca-key.pem \
+                --load-ca-certificate x509-ca.pem
+
+To create a CRL that contains some revoked certificates, place the
+certificates in a file and use '--load-certificate' as follows:
+
+     $ certtool --generate-crl --load-ca-privkey x509-ca-key.pem \
+       --load-ca-certificate x509-ca.pem --load-certificate revoked-certs.pem
+
+To verify a Certificate Revocation List (CRL) do:
+
+     $ certtool --verify-crl --load-ca-certificate x509-ca.pem < crl.pem
+
+certtool Files
+--------------
+
+Certtool's template file format
+-------------------------------
+
+A template file can be used to avoid the interactive questions of
+certtool.  Initially create a file named 'cert.cfg' that contains the
+information about the certificate.  The template can be used as below:
+
+     $ certtool --generate-certificate cert.pem --load-privkey key.pem  \
+        --template cert.cfg \
+        --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem
+
+An example certtool template file that can be used to generate a
+certificate request or a self signed certificate follows.
+
+     # X.509 Certificate options
+     #
+     # DN options
+
+     # The organization of the subject.
+     organization = "Koko inc."
+
+     # The organizational unit of the subject.
+     unit = "sleeping dept."
+
+     # The locality of the subject.
+     # locality =
+
+     # The state of the certificate owner.
+     state = "Attiki"
+
+     # The country of the subject. Two letter code.
+     country = GR
+
+     # The common name of the certificate owner.
+     cn = "Cindy Lauper"
+
+     # A user id of the certificate owner.
+     #uid = "clauper"
+
+     # Set domain components
+     #dc = "name"
+     #dc = "domain"
+
+     # If the supported DN OIDs are not adequate you can set
+     # any OID here.
+     # For example set the X.520 Title and the X.520 Pseudonym
+     # by using OID and string pairs.
+     #dn_oid = 2.5.4.12 Dr.
+     #dn_oid = 2.5.4.65 jackal
+
+     # This is deprecated and should not be used in new
+     # certificates.
+     # pkcs9_email = "none@none.org"
+
+     # The serial number of the certificate
+     serial = 007
+
+     # In how many days, counting from today, this certificate will expire.
+     expiration_days = 700
+
+     # X.509 v3 extensions
+
+     # A dnsname in case of a WWW server.
+     #dns_name = "www.none.org"
+     #dns_name = "www.morethanone.org"
+
+     # A subject alternative name URI
+     #uri = "http://www.example.com"
+
+     # An IP address in case of a server.
+     #ip_address = "192.168.1.1"
+
+     # An email in case of a person
+     email = "none@none.org"
+
+     # Challenge password used in certificate requests
+     challenge_passwd = 123456
+
+     # An URL that has CRLs (certificate revocation lists)
+     # available. Needed in CA certificates.
+     #crl_dist_points = "http://www.getcrl.crl/getcrl/"
+
+     # Whether this is a CA certificate or not
+     #ca
+
+     # for microsoft smart card logon
+     # key_purpose_oid = 1.3.6.1.4.1.311.20.2.2
+
+     ### Other predefined key purpose OIDs
+
+     # Whether this certificate will be used for a TLS client
+     #tls_www_client
+
+     # Whether this certificate will be used for a TLS server
+     #tls_www_server
+
+     # Whether this certificate will be used to sign data (needed
+     # in TLS DHE ciphersuites).
+     signing_key
+
+     # Whether this certificate will be used to encrypt data (needed
+     # in TLS RSA ciphersuites). Note that it is preferred to use different
+     # keys for encryption and signing.
+     #encryption_key
+
+     # Whether this key will be used to sign other certificates.
+     #cert_signing_key
+
+     # Whether this key will be used to sign CRLs.
+     #crl_signing_key
+
+     # Whether this key will be used to sign code.
+     #code_signing_key
+
+     # Whether this key will be used to sign OCSP data.
+     #ocsp_signing_key
+
+     # Whether this key will be used for time stamping.
+     #time_stamping_key
+
+     # Whether this key will be used for IPsec IKE operations.
+     #ipsec_ike_key
+
+     ### end of key purpose OIDs
+
+     # When generating a certificate from a certificate
+     # request, then honor the extensions stored in the request
+     # and store them in the real certificate.
+     #honor_crq_extensions
+
+     # Path length contraint. Sets the maximum number of
+     # certificates that can be used to certify this certificate.
+     # (i.e. the certificate chain length)
+     #path_len = -1
+     #path_len = 2
+
+     # OCSP URI
+     # ocsp_uri = http://my.ocsp.server/ocsp
+
+     # CA issuers URI
+     # ca_issuers_uri = http://my.ca.issuer
+
+     # Options for proxy certificates
+     # proxy_policy_language = 1.3.6.1.5.5.7.21.1
+
+     # Options for generating a CRL
+
+     # next CRL update will be in 43 days (wow)
+     #crl_next_update = 43
+
+     # this is the 5th CRL by this CA
+     #crl_number = 5
+
+\1f
+File: gnutls.info,  Node: ocsptool Invocation,  Next: Smart cards and HSMs,  Prev: certtool Invocation,  Up: More on certificate authentication
+
+6.6 Invoking ocsptool
+=====================
+
+Ocsptool is a program that can parse and print information about OCSP
+requests/responses, generate requests and verify responses.
+
+This section was generated by *AutoGen*, using the 'agtexi-cmd' template
+and the option descriptions for the 'ocsptool' program.  This software
+is released under the GNU General Public License, version 3 or later.
+
+ocsptool help/usage ('--help')
+------------------------------
+
+This is the automatically generated usage text for ocsptool.
+
+The text printed is the same whether selected with the 'help' option
+('--help') or the 'more-help' option ('--more-help').  'more-help' will
+print the usage text by passing it through a pager program.  'more-help'
+is disabled on platforms without a working 'fork(2)' function.  The
+'PAGER' environment variable is used to select the program, defaulting
+to 'more'.  Both will exit with a status code of 0.
+
+     ocsptool - GnuTLS OCSP tool - Ver. @VERSION@
+     USAGE:  lt-ocsptool [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
+
+        -d, --debug=num            Enable debugging.
+                                     - It must be in the range:
+                                       0 to 9999
+        -V, --verbose              More verbose output
+                                     - may appear multiple times
+            --infile=file          Input file
+                                     - file must pre-exist
+            --outfile=str          Output file
+            --ask[=arg]            Ask an OCSP/HTTP server on a certificate validity
+                                     - requires these options:
+                                     load-cert
+                                     load-issuer
+        -e, --verify-response      Verify response
+        -i, --request-info         Print information on a OCSP request
+        -j, --response-info        Print information on a OCSP response
+        -q, --generate-request     Generate an OCSP request
+            --nonce                Don't add nonce to OCSP request
+                                     - disabled as --no-nonce
+            --load-issuer=file     Read issuer certificate from file
+                                     - file must pre-exist
+            --load-cert=file       Read certificate to check from file
+                                     - file must pre-exist
+            --load-trust=file      Read OCSP trust anchors from file
+                                     - prohibits these options:
+                                     load-signer
+                                     - file must pre-exist
+            --load-signer=file     Read OCSP response signer from file
+                                     - prohibits these options:
+                                     load-trust
+                                     - file must pre-exist
+            --inder                Use DER format for input certificates and private keys
+                                     - disabled as --no-inder
+        -Q, --load-request=file    Read DER encoded OCSP request from file
+                                     - file must pre-exist
+        -S, --load-response=file   Read DER encoded OCSP response from file
+                                     - file must pre-exist
+        -v, --version[=arg]        Output version information and exit
+        -h, --help                 Display extended usage information and exit
+        -!, --more-help            Extended usage information passed thru pager
+
+     Options are specified by doubled hyphens and their name or by a single
+     hyphen and the flag character.
+
+
+
+     Ocsptool is a program that can parse and print information about OCSP
+     requests/responses, generate requests and verify responses.
+
+     please send bug reports to:  bug-gnutls@gnu.org
+
+debug option (-d)
+-----------------
+
+This is the "enable debugging."  option.  This option takes an argument
+number.  Specifies the debug level.
+
+ask option
+----------
+
+This is the "ask an ocsp/http server on a certificate validity" option.
+This option takes an optional argument string 'server name|url'.
+
+This option has some usage constraints.  It:
+   * must appear in combination with the following options: load-cert,
+     load-issuer.
+
+Connects to the specified HTTP OCSP server and queries on the validity
+of the loaded certificate.
+
+ocsptool exit status
+--------------------
+
+One of the following exit values will be returned:
+'0 (EXIT_SUCCESS)'
+     Successful program execution.
+'1 (EXIT_FAILURE)'
+     The operation failed or the command syntax was not valid.
+
+ocsptool See Also
+-----------------
+
+certtool (1)
+
+ocsptool Examples
+-----------------
+
+Print information about an OCSP request
+---------------------------------------
+
+To parse an OCSP request and print information about the content, the
+'-i' or '--request-info' parameter may be used as follows.  The '-Q'
+parameter specify the name of the file containing the OCSP request, and
+it should contain the OCSP request in binary DER format.
+
+     $ ocsptool -i -Q ocsp-request.der
+
+The input file may also be sent to standard input like this:
+
+     $ cat ocsp-request.der | ocsptool --request-info
+
+Print information about an OCSP response
+----------------------------------------
+
+Similar to parsing OCSP requests, OCSP responses can be parsed using the
+'-j' or '--response-info' as follows.
+
+     $ ocsptool -j -Q ocsp-response.der
+     $ cat ocsp-response.der | ocsptool --response-info
+
+Generate an OCSP request
+------------------------
+
+The '-q' or '--generate-request' parameters are used to generate an OCSP
+request.  By default the OCSP request is written to standard output in
+binary DER format, but can be stored in a file using '--outfile'.  To
+generate an OCSP request the issuer of the certificate to check needs to
+be specified with '--load-issuer' and the certificate to check with
+'--load-cert'.  By default PEM format is used for these files, although
+'--inder' can be used to specify that the input files are in DER format.
+
+     $ ocsptool -q --load-issuer issuer.pem --load-cert client.pem \
+                --outfile ocsp-request.der
+
+When generating OCSP requests, the tool will add an OCSP extension
+containing a nonce.  This behaviour can be disabled by specifying
+'--no-nonce'.
+
+Verify signature in OCSP response
+---------------------------------
+
+To verify the signature in an OCSP response the '-e' or
+'--verify-response' parameter is used.  The tool will read an OCSP
+response in DER format from standard input, or from the file specified
+by '--load-response'.  The OCSP response is verified against a set of
+trust anchors, which are specified using '--load-trust'.  The trust
+anchors are concatenated certificates in PEM format.  The certificate
+that signed the OCSP response needs to be in the set of trust anchors,
+or the issuer of the signer certificate needs to be in the set of trust
+anchors and the OCSP Extended Key Usage bit has to be asserted in the
+signer certificate.
+
+     $ ocsptool -e --load-trust issuer.pem \
+                --load-response ocsp-response.der
+
+The tool will print status of verification.
+
+Verify signature in OCSP response against given certificate
+-----------------------------------------------------------
+
+It is possible to override the normal trust logic if you know that a
+certain certificate is supposed to have signed the OCSP response, and
+you want to use it to check the signature.  This is achieved using
+'--load-signer' instead of '--load-trust'.  This will load one
+certificate and it will be used to verify the signature in the OCSP
+response.  It will not check the Extended Key Usage bit.
+
+     $ ocsptool -e --load-signer ocsp-signer.pem \
+                --load-response ocsp-response.der
+
+This approach is normally only relevant in two situations.  The first is
+when the OCSP response does not contain a copy of the signer
+certificate, so the '--load-trust' code would fail.  The second is if
+you want to avoid the indirect mode where the OCSP response signer
+certificate is signed by a trust anchor.
+
+Real-world example
+------------------
+
+Here is an example of how to generate an OCSP request for a certificate
+and to verify the response.  For illustration we'll use the
+'blog.josefsson.org' host, which (as of writing) uses a certificate from
+CACert.  First we'll use 'gnutls-cli' to get a copy of the server
+certificate chain.  The server is not required to send this information,
+but this particular one is configured to do so.
+
+     $ echo | gnutls-cli -p 443 blog.josefsson.org --print-cert > chain.pem
+
+Use a text editor on 'chain.pem' to create three files for each separate
+certificates, called 'cert.pem' for the first certificate for the domain
+itself, secondly 'issuer.pem' for the intermediate certificate and
+'root.pem' for the final root certificate.
+
+The domain certificate normally contains a pointer to where the OCSP
+responder is located, in the Authority Information Access Information
+extension.  For example, from 'certtool -i < cert.pem' there is this
+information:
+
+     Authority Information Access Information (not critical):
+     Access Method: 1.3.6.1.5.5.7.48.1 (id-ad-ocsp)
+     Access Location URI: http://ocsp.CAcert.org/
+
+This means the CA support OCSP queries over HTTP. We are now ready to
+create a OCSP request for the certificate.
+
+     $ ocsptool --ask ocsp.CAcert.org --load-issuer issuer.pem \
+                --load-cert cert.pem --outfile ocsp-response.der
+
+The request is sent via HTTP to the OCSP server address specified.  If
+the address is ommited ocsptool will use the address stored in the
+certificate.
+
+\1f
+File: gnutls.info,  Node: Smart cards and HSMs,  Next: Abstract key types,  Prev: ocsptool Invocation,  Up: More on certificate authentication
+
+6.7 Smart cards and HSMs
+========================
+
+In this section we present the smart-card and hardware security module
+(HSM) support in GnuTLS using PKCS #11 [_PKCS11_].  Hardware security
+modules and smart cards provide a way to store private keys and perform
+operations on them without exposing them.  This decouples cryptographic
+keys from the applications that use them and provide an additional
+security layer against cryptographic key extraction.  Since this can
+also be achieved in software components such as in Gnome keyring, we
+will use the term security module to describe any cryptographic key
+separation subsystem.
+
+PKCS #11 is plugin API allowing applications to access cryptographic
+operations on a security module, as well as to objects residing on it.
+PKCS #11 modules exist for hardware tokens such as smart cards(1), the
+trusted platform module (TPM)(2) as well as for software modules like
+Gnome Keyring.  The objects residing on a security module may be
+certificates, public keys, private keys or secret keys.  Of those
+certificates and public/private key pairs can be used with GnuTLS.  PKCS
+#11's main advantage is that it allows operations on private key objects
+such as decryption and signing without exposing the key.
+
+Moreover PKCS #11 can be (ab)used to allow all applications in the same
+operating system to access shared cryptographic keys and certificates in
+a uniform way, as in *note Figure 6.2: fig:pkcs11-vision.  That way
+applications could load their trusted certificate list, as well as user
+certificates from a common PKCS #11 module.  Such a provider exists in
+the Gnome system, being the Gnome Keyring.
+
+\0\b[image src="pkcs11-vision.png"\0\b]
+
+Figure 6.2: PKCS #11 module usage.
+
+* Menu:
+
+* PKCS11 Initialization::
+* Reading objects::
+* Writing objects::
+* Using a PKCS11 token with TLS::
+* p11tool Invocation::             Invoking p11tool
+
+   ---------- Footnotes ----------
+
+   (1) <http://www.opensc-project.org>
+
+   (2) <http://trousers.sourceforge.net/>
+
+\1f
+File: gnutls.info,  Node: PKCS11 Initialization,  Next: Reading objects,  Up: Smart cards and HSMs
+
+6.7.1 Initialization
+--------------------
+
+To allow all the GnuTLS applications to access PKCS #11 tokens you can
+use a configuration per module, stored in '/etc/pkcs11/modules/'.  These
+are the configuration files of p11-kit(1).  For example a file that will
+load the OpenSC module, could be named '/etc/pkcs11/modules/opensc' and
+contain the following:
+
+     module: /usr/lib/opensc-pkcs11.so
+
+If you use this file, then there is no need for other initialization in
+GnuTLS, except for the PIN and token functions.  Those allow retrieving
+a PIN when accessing a protected object, such as a private key, as well
+as probe the user to insert the token.  All the initialization functions
+are below.
+
+ -- Function: int gnutls_pkcs11_init (unsigned int FLAGS, const char *
+          DEPRECATED_CONFIG_FILE)
+     FLAGS: 'GNUTLS_PKCS11_FLAG_MANUAL' or 'GNUTLS_PKCS11_FLAG_AUTO'
+
+     DEPRECATED_CONFIG_FILE: either NULL or the location of a deprecated
+     configuration file
+
+     This function will initialize the PKCS 11 subsystem in gnutls.  It
+     will read configuration files if 'GNUTLS_PKCS11_FLAG_AUTO' is used
+     or allow you to independently load PKCS 11 modules using
+     'gnutls_pkcs11_add_provider()' if 'GNUTLS_PKCS11_FLAG_MANUAL' is
+     specified.
+
+     Normally you don't need to call this function since it is being
+     called by 'gnutls_global_init()' using the
+     'GNUTLS_PKCS11_FLAG_AUTO' .  If other option is required then it
+     must be called before it.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+'VOID *note gnutls_pkcs11_set_token_function:: (gnutls_pkcs11_token_callback_t FN, void * USERDATA)'
+'VOID *note gnutls_pkcs11_set_pin_function:: (gnutls_pkcs11_pin_callback_t FN, void * USERDATA)'
+'INT *note gnutls_pkcs11_add_provider:: (const char * NAME, const char * PARAMS)'
+
+Note that due to limitations of PKCS #11 there are issues when multiple
+libraries are sharing a module.  To avoid this problem GnuTLS uses
+p11-kit that provides a middleware to control access to resources over
+the multiple users.
+
+Moreover PKCS #11 modules must be reinitialized on the child processes
+after a 'fork'.  GnuTLS provides *note gnutls_pkcs11_reinit:: to be
+called for this purpose.
+
+ -- Function: int gnutls_pkcs11_reinit ( VOID)
+
+     This function will reinitialize the PKCS 11 subsystem in gnutls.
+     This is required by PKCS 11 when an application uses 'fork()' .
+     The reinitialization function must be called on the child.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+   ---------- Footnotes ----------
+
+   (1) <http://p11-glue.freedesktop.org/>
+
+\1f
+File: gnutls.info,  Node: Reading objects,  Next: Writing objects,  Prev: PKCS11 Initialization,  Up: Smart cards and HSMs
+
+6.7.2 Reading objects
+---------------------
+
+All PKCS #11 objects are referenced by GnuTLS functions by URLs as
+described in [_PKCS11URI_]. This allows for a consistent naming of
+objects across systems and applications in the same system.  For example
+a public key on a smart card may be referenced as:
+
+     pkcs11:token=Nikos;serial=307521161601031;model=PKCS%2315; \
+     manufacturer=EnterSafe;object=test1;objecttype=public;\
+     id=32f153f3e37990b08624141077ca5dec2d15faed
+
+while the smart card itself can be referenced as:
+     pkcs11:token=Nikos;serial=307521161601031;model=PKCS%2315;manufacturer=EnterSafe
+
+Objects stored in a PKCS #11 token can be extracted if they are not
+marked as sensitive.  Usually only private keys are marked as sensitive
+and cannot be extracted, while certificates and other data can be
+retrieved.  The functions that can be used to access objects are shown
+below.
+
+'INT *note gnutls_pkcs11_obj_import_url:: (gnutls_pkcs11_obj_t CERT, const char * URL, unsigned int FLAGS)'
+'INT *note gnutls_pkcs11_obj_export_url:: (gnutls_pkcs11_obj_t OBJ, gnutls_pkcs11_url_type_t DETAILED, char ** URL)'
+
+ -- Function: int gnutls_pkcs11_obj_get_info (gnutls_pkcs11_obj_t CRT,
+          gnutls_pkcs11_obj_info_t ITYPE, void * OUTPUT, size_t *
+          OUTPUT_SIZE)
+     CRT: should contain a 'gnutls_pkcs11_obj_t' structure
+
+     ITYPE: Denotes the type of information requested
+
+     OUTPUT: where output will be stored
+
+     OUTPUT_SIZE: contains the maximum size of the output and will be
+     overwritten with actual
+
+     This function will return information about the PKCS11 certificate
+     such as the label, id as well as token information where the key is
+     stored.  When output is text it returns null terminated string
+     although 'output_size' contains the size of the actual data only.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success or a negative error
+     code on error.
+
+     *Since:* 2.12.0
+
+'INT *note gnutls_x509_crt_import_pkcs11:: (gnutls_x509_crt_t CRT, gnutls_pkcs11_obj_t PKCS11_CRT)'
+'INT *note gnutls_x509_crt_import_pkcs11_url:: (gnutls_x509_crt_t CRT, const char * URL, unsigned int FLAGS)'
+'INT *note gnutls_x509_crt_list_import_pkcs11:: (gnutls_x509_crt_t * CERTS, unsigned int CERT_MAX, gnutls_pkcs11_obj_t * const OBJS, unsigned int FLAGS)'
+
+Properties of the physical token can also be accessed and altered with
+GnuTLS.  For example data in a token can be erased (initialized), PIN
+can be altered, etc.
+
+'INT *note gnutls_pkcs11_token_init:: (const char * TOKEN_URL, const char * SO_PIN, const char * LABEL)'
+'INT *note gnutls_pkcs11_token_get_url:: (unsigned int SEQ, gnutls_pkcs11_url_type_t DETAILED, char ** URL)'
+'INT *note gnutls_pkcs11_token_get_info:: (const char * URL, gnutls_pkcs11_token_info_t TTYPE, void * OUTPUT, size_t * OUTPUT_SIZE)'
+'INT *note gnutls_pkcs11_token_get_flags:: (const char * URL, unsigned int * FLAGS)'
+'INT *note gnutls_pkcs11_token_set_pin:: (const char * TOKEN_URL, const char * OLDPIN, const char * NEWPIN, unsigned int FLAGS)'
+
+The following examples demonstrate the usage of the API. The first
+example will list all available PKCS #11 tokens in a system and the
+latter will list all certificates in a token that have a corresponding
+private key.
+
+     int i;
+     char* url;
+
+     gnutls_global_init();
+
+     for (i=0;;i++)
+       {
+         ret = gnutls_pkcs11_token_get_url(i, &url);
+         if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+           break;
+
+         if (ret < 0)
+           exit(1);
+
+         fprintf(stdout, "Token[%d]: URL: %s\n", i, url);
+         gnutls_free(url);
+       }
+     gnutls_global_deinit();
+
+/* This example code is placed in the public domain. */
+
+#include <config.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/pkcs11.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define URL "pkcs11:URL"
+
+int
+main (int argc, char** argv)
+{
+  gnutls_pkcs11_obj_t *obj_list;
+  gnutls_x509_crt_t xcrt;
+  unsigned int obj_list_size = 0;
+  gnutls_datum_t cinfo;
+  int ret;
+  unsigned int i;
+
+  obj_list_size = 0;
+  ret = gnutls_pkcs11_obj_list_import_url (NULL, &obj_list_size, URL,
+                                       GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY,
+                                       0);
+  if (ret < 0 && ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
+    return -1;
+
+/* no error checking from now on */
+  obj_list = malloc (sizeof (*obj_list) * obj_list_size);
+
+  gnutls_pkcs11_obj_list_import_url (obj_list, &obj_list_size, URL,
+                                     GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY,
+                                     0);
+
+/* now all certificates are in obj_list */
+  for (i = 0; i < obj_list_size; i++)
+    {
+
+      gnutls_x509_crt_init (&xcrt);
+
+      gnutls_x509_crt_import_pkcs11 (xcrt, obj_list[i]);
+
+      gnutls_x509_crt_print (xcrt, GNUTLS_CRT_PRINT_FULL, &cinfo);
+
+      fprintf (stdout, "cert[%d]:\n %s\n\n", i, cinfo.data);
+
+      gnutls_free (cinfo.data);
+      gnutls_x509_crt_deinit (xcrt);
+    }
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Writing objects,  Next: Using a PKCS11 token with TLS,  Prev: Reading objects,  Up: Smart cards and HSMs
+
+6.7.3 Writing objects
+---------------------
+
+With GnuTLS you can copy existing private keys and certificates to a
+token.  Note that when copying private keys it is recommended to mark
+them as sensitive using the 'GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE' to
+prevent its extraction.  An object can be marked as private using the
+flag 'GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE', to require PIN to be entered
+before accessing the object (for operations or otherwise).
+
+ -- Function: int gnutls_pkcs11_copy_x509_privkey (const char *
+          TOKEN_URL, gnutls_x509_privkey_t KEY, const char * LABEL,
+          unsigned int KEY_USAGE, unsigned int FLAGS)
+     TOKEN_URL: A PKCS '11' URL specifying a token
+
+     KEY: A private key
+
+     LABEL: A name to be used for the stored data
+
+     KEY_USAGE: One of GNUTLS_KEY_*
+
+     FLAGS: One of GNUTLS_PKCS11_OBJ_* flags
+
+     This function will copy a private key into a PKCS '11' token
+     specified by a URL. It is highly recommended flags to contain
+     'GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE' unless there is a strong
+     reason not to.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+ -- Function: int gnutls_pkcs11_copy_x509_crt (const char * TOKEN_URL,
+          gnutls_x509_crt_t CRT, const char * LABEL, unsigned int FLAGS)
+     TOKEN_URL: A PKCS '11' URL specifying a token
+
+     CRT: A certificate
+
+     LABEL: A name to be used for the stored data
+
+     FLAGS: One of GNUTLS_PKCS11_OBJ_FLAG_*
+
+     This function will copy a certificate into a PKCS '11' token
+     specified by a URL. The certificate can be marked as trusted or
+     not.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+ -- Function: int gnutls_pkcs11_delete_url (const char * OBJECT_URL,
+          unsigned int FLAGS)
+     OBJECT_URL: The URL of the object to delete.
+
+     FLAGS: One of GNUTLS_PKCS11_OBJ_* flags
+
+     This function will delete objects matching the given URL. Note that
+     not all tokens support the delete operation.
+
+     *Returns:* On success, the number of objects deleted is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+\1f
+File: gnutls.info,  Node: Using a PKCS11 token with TLS,  Next: p11tool Invocation,  Prev: Writing objects,  Up: Smart cards and HSMs
+
+6.7.4 Using a PKCS #11 token with TLS
+-------------------------------------
+
+It is possible to use a PKCS #11 token to a TLS session, as shown in
+*note ex:pkcs11-client::.  In addition the following functions can be
+used to load PKCS #11 key and certificates by specifying a PKCS #11 URL
+instead of a filename.
+
+'INT *note gnutls_certificate_set_x509_trust_file:: (gnutls_certificate_credentials_t CRED, const char * CAFILE, gnutls_x509_crt_fmt_t TYPE)'
+'INT *note gnutls_certificate_set_x509_key_file:: (gnutls_certificate_credentials_t RES, const char * CERTFILE, const char * KEYFILE, gnutls_x509_crt_fmt_t TYPE)'
+
+ -- Function: int gnutls_certificate_set_x509_system_trust
+          (gnutls_certificate_credentials_t CRED)
+     CRED: is a 'gnutls_certificate_credentials_t' structure.
+
+     This function adds the system's default trusted CAs in order to
+     verify client or server certificates.
+
+     In the case the system is currently unsupported
+     'GNUTLS_E_UNIMPLEMENTED_FEATURE' is returned.
+
+     *Returns:* the number of certificates processed or a negative error
+     code on error.
+
+     *Since:* 3.0
+
+\1f
+File: gnutls.info,  Node: p11tool Invocation,  Prev: Using a PKCS11 token with TLS,  Up: Smart cards and HSMs
+
+6.7.5 Invoking p11tool
+----------------------
+
+Program that allows handling data from PKCS #11 smart cards and security
+modules.
+
+To use PKCS #11 tokens with gnutls the configuration file
+/etc/gnutls/pkcs11.conf has to exist and contain a number of lines of
+the form 'load=/usr/lib/opensc-pkcs11.so'.
+
+This section was generated by *AutoGen*, using the 'agtexi-cmd' template
+and the option descriptions for the 'p11tool' program.  This software is
+released under the GNU General Public License, version 3 or later.
+
+p11tool help/usage ('--help')
+.............................
+
+This is the automatically generated usage text for p11tool.
+
+The text printed is the same whether selected with the 'help' option
+('--help') or the 'more-help' option ('--more-help').  'more-help' will
+print the usage text by passing it through a pager program.  'more-help'
+is disabled on platforms without a working 'fork(2)' function.  The
+'PAGER' environment variable is used to select the program, defaulting
+to 'more'.  Both will exit with a status code of 0.
+
+     p11tool - GnuTLS PKCS #11 tool - Ver. @VERSION@
+     USAGE:  lt-p11tool [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [url]
+
+        -d, --debug=num            Enable debugging.
+                                     - It must be in the range:
+                                       0 to 9999
+            --outfile=str          Output file
+            --list-tokens          List all available tokens
+            --export               Export the object specified by the URL
+            --list-mechanisms      List all available mechanisms in a token
+            --list-all             List all available objects in a token
+            --list-all-certs       List all available certificates in a token
+            --list-certs           List all certificates that have an associated private key
+            --list-all-privkeys    List all available private keys in a token
+            --list-all-trusted     List all available certificates marked as trusted
+            --initialize           Initializes a PKCS #11 token
+            --write                Writes the loaded objects to a PKCS #11 token
+            --delete               Deletes the objects matching the PKCS #11 URL
+            --generate-rsa         Generate an RSA private-public key pair
+            --generate-dsa         Generate an RSA private-public key pair
+            --generate-ecc         Generate an RSA private-public key pair
+            --label=str            Sets a label for the write operation
+            --trusted              Marks the object to be written as trusted
+                                     - disabled as --no-trusted
+            --private              Marks the object to be written as private
+                                     - disabled as --no-private
+                                     - enabled by default
+            --login                Force login to token
+                                     - disabled as --no-login
+            --detailed-url         Print detailed URLs
+                                     - disabled as --no-detailed-url
+            --secret-key=str       Provide a hex encoded secret key
+            --load-privkey=file    Private key file to use
+                                     - file must pre-exist
+            --load-pubkey=file     Public key file to use
+                                     - file must pre-exist
+            --load-certificate=file Certificate file to use
+                                     - file must pre-exist
+        -8, --pkcs8                Use PKCS #8 format for private keys
+            --bits=num             Specify the number of bits for key generate
+            --sec-param=str        Specify the security level
+            --inder                Use DER/RAW format for input
+                                     - disabled as --no-inder
+            --inraw                This is an alias for 'inder'
+            --provider=file        Specify the PKCS #11 provider library
+                                     - file must pre-exist
+        -v, --version[=arg]        Output version information and exit
+        -h, --help                 Display extended usage information and exit
+        -!, --more-help            Extended usage information passed thru pager
+
+     Options are specified by doubled hyphens and their name or by a single
+     hyphen and the flag character.
+     Operands and options may be intermixed.  They will be reordered.
+
+
+
+     Program that allows handling data from PKCS #11 smart cards and security
+     modules.
+
+     To use PKCS #11 tokens with gnutls the configuration file
+     /etc/gnutls/pkcs11.conf has to exist and contain a number of lines of the
+     form 'load=/usr/lib/opensc-pkcs11.so'.
+
+     please send bug reports to:  bug-gnutls@gnu.org
+
+debug option (-d)
+.................
+
+This is the "enable debugging."  option.  This option takes an argument
+number.  Specifies the debug level.
+
+write option
+............
+
+This is the "writes the loaded objects to a pkcs #11 token" option.  It
+can be used to write private keys, certificates or secret keys to a
+token.
+
+generate-rsa option
+...................
+
+This is the "generate an rsa private-public key pair" option.  Generates
+an RSA private-public key pair on the specified token.
+
+generate-dsa option
+...................
+
+This is the "generate an rsa private-public key pair" option.  Generates
+an RSA private-public key pair on the specified token.
+
+generate-ecc option
+...................
+
+This is the "generate an rsa private-public key pair" option.  Generates
+an RSA private-public key pair on the specified token.
+
+private option
+..............
+
+This is the "marks the object to be written as private" option.
+
+This option has some usage constraints.  It:
+   * is enabled by default.
+
+The written object will require a PIN to be used.
+
+sec-param option
+................
+
+This is the "specify the security level" option.  This option takes an
+argument string 'Security parameter'.  This is alternative to the bits
+option.  Available options are [low, legacy, normal, high, ultra].
+
+inder option
+............
+
+This is the "use der/raw format for input" option.  Use DER/RAW format
+for input certificates and private keys.
+
+inraw option
+............
+
+This is an alias for the 'inder' option, *note the inder option
+documentation: p11tool inder.
+
+provider option
+...............
+
+This is the "specify the pkcs #11 provider library" option.  This option
+takes an argument file.  This will override the default options in
+/etc/gnutls/pkcs11.conf
+
+p11tool exit status
+...................
+
+One of the following exit values will be returned:
+'0 (EXIT_SUCCESS)'
+     Successful program execution.
+'1 (EXIT_FAILURE)'
+     The operation failed or the command syntax was not valid.
+
+p11tool See Also
+................
+
+certtool (1)
+
+p11tool Examples
+................
+
+To view all tokens in your system use:
+     $ p11tool --list-tokens
+
+To view all objects in a token use:
+     $ p11tool --login --list-all "pkcs11:TOKEN-URL"
+
+To store a private key and a certificate in a token run:
+     $ p11tool --login --write "pkcs11:URL" --load-privkey key.pem \
+               --label "Mykey"
+     $ p11tool --login --write "pkcs11:URL" --load-certificate cert.pem \
+               --label "Mykey"
+Note that some tokens require the same label to be used for the
+certificate and its corresponding private key.
+
+\1f
+File: gnutls.info,  Node: Abstract key types,  Prev: Smart cards and HSMs,  Up: More on certificate authentication
+
+6.8 Abstract key types
+======================
+
+Since there are many forms of a public or private keys supported by
+GnuTLS such as X.509, OpenPGP, or PKCS #11 it is desirable to allow
+common operations on them.  For these reasons the abstract
+'gnutls_privkey_t' and 'gnutls_pubkey_t' were introduced in
+'gnutls/abstract.h' header.  Those types are initialized using a
+specific type of key and then can be used to perform operations in an
+abstract way.  For example in order to sign an X.509 certificate with a
+key that resides in a token the following steps must be used.
+
+     #inlude <gnutls/abstract.h>
+     #inlude <gnutls/pkcs11.h>
+
+     void sign_cert( gnutls_x509_crt_t to_be_signed)
+     {
+     gnutls_pkcs11_privkey_t ca_key;
+     gnutls_x509_crt_t ca_cert;
+     gnutls_privkey_t abs_key;
+
+       /* load the PKCS #11 key and certificates */
+       gnutls_pkcs11_privkey_init(&ca_key);
+       gnutls_pkcs11_privkey_import_url(ca_key, key_url);
+
+       gnutls_x509_crt_init(&ca_cert);
+       gnutls_x509_crt_import_pkcs11_url(&ca_cert, cert_url);
+
+       /* initialize the abstract key */
+       gnutls_privkey_init(&abs_key);
+       gnutls_privkey_import_pkcs11(abs_key, ca_key);
+
+       /* sign the certificate to be signed */
+       gnutls_x509_crt_privkey_sign(to_be_signed, ca_cert, ca_key,
+                                    GNUTLS_DIG_SHA256, 0);
+     }
+
+* Menu:
+
+* Abstract public keys::
+* Abstract private keys::
+* Operations::
+
+\1f
+File: gnutls.info,  Node: Abstract public keys,  Next: Abstract private keys,  Up: Abstract key types
+
+6.8.1 Public keys
+-----------------
+
+An abstract 'gnutls_pubkey_t' can be initialized using the functions
+below.  It can be imported through an existing structure like
+'gnutls_x509_crt_t', or through an ASN.1 encoding of the X.509
+'SubjectPublicKeyInfo' sequence.
+
+ -- Function: int gnutls_pubkey_import_x509 (gnutls_pubkey_t KEY,
+          gnutls_x509_crt_t CRT, unsigned int FLAGS)
+     KEY: The public key
+
+     CRT: The certificate to be imported
+
+     FLAGS: should be zero
+
+     This function will import the given public key to the abstract
+     'gnutls_pubkey_t' structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+'INT *note gnutls_pubkey_import_openpgp:: (gnutls_pubkey_t KEY, gnutls_openpgp_crt_t CRT, unsigned int FLAGS)'
+'INT *note gnutls_pubkey_import_pkcs11:: (gnutls_pubkey_t KEY, gnutls_pkcs11_obj_t OBJ, unsigned int FLAGS)'
+'INT *note gnutls_pubkey_import_pkcs11_url:: (gnutls_pubkey_t KEY, const char * URL, unsigned int FLAGS)'
+'INT *note gnutls_pubkey_import_privkey:: (gnutls_pubkey_t KEY, gnutls_privkey_t PKEY, unsigned int USAGE, unsigned int FLAGS)'
+'INT *note gnutls_pubkey_import:: (gnutls_pubkey_t KEY, const gnutls_datum_t * DATA, gnutls_x509_crt_fmt_t FORMAT)'
+
+ -- Function: int gnutls_pubkey_export (gnutls_pubkey_t KEY,
+          gnutls_x509_crt_fmt_t FORMAT, void * OUTPUT_DATA, size_t *
+          OUTPUT_DATA_SIZE)
+     KEY: Holds the certificate
+
+     FORMAT: the format of output params.  One of PEM or DER.
+
+     OUTPUT_DATA: will contain a certificate PEM or DER encoded
+
+     OUTPUT_DATA_SIZE: holds the size of output_data (and will be
+     replaced by the actual size of parameters)
+
+     This function will export the public key to DER or PEM format.  The
+     contents of the exported data is the SubjectPublicKeyInfo X.509
+     structure.
+
+     If the buffer provided is not long enough to hold the output, then
+     *output_data_size is updated and 'GNUTLS_E_SHORT_MEMORY_BUFFER'
+     will be returned.
+
+     If the structure is PEM encoded, it will have a header of "BEGIN
+     CERTIFICATE".
+
+     *Returns:* In case of failure a negative error code will be
+     returned, and 0 on success.
+
+     *Since:* 2.12.0
+
+Additional functions are available that will return information over a
+public key.
+
+'INT *note gnutls_pubkey_get_pk_algorithm:: (gnutls_pubkey_t KEY, unsigned int * BITS)'
+'INT *note gnutls_pubkey_get_preferred_hash_algorithm:: (gnutls_pubkey_t KEY, gnutls_digest_algorithm_t * HASH, unsigned int * MAND)'
+'INT *note gnutls_pubkey_get_key_id:: (gnutls_pubkey_t KEY, unsigned int FLAGS, unsigned char * OUTPUT_DATA, size_t * OUTPUT_DATA_SIZE)'
+
+\1f
+File: gnutls.info,  Node: Abstract private keys,  Next: Operations,  Prev: Abstract public keys,  Up: Abstract key types
+
+6.8.2 Private keys
+------------------
+
+An abstract 'gnutls_privkey_t' can be initialized using the functions
+below.  It can be imported through an existing structure like
+'gnutls_x509_privkey_t', but unlike public keys it cannot be exported.
+That is to allow abstraction over PKCS #11 keys that are not
+extractable.
+
+'INT *note gnutls_privkey_import_x509:: (gnutls_privkey_t PKEY, gnutls_x509_privkey_t KEY, unsigned int FLAGS)'
+'INT *note gnutls_privkey_import_openpgp:: (gnutls_privkey_t PKEY, gnutls_openpgp_privkey_t KEY, unsigned int FLAGS)'
+'INT *note gnutls_privkey_import_pkcs11:: (gnutls_privkey_t PKEY, gnutls_pkcs11_privkey_t KEY, unsigned int FLAGS)'
+
+'INT *note gnutls_privkey_get_pk_algorithm:: (gnutls_privkey_t KEY, unsigned int * BITS)'
+'GNUTLS_PRIVKEY_TYPE_T *note gnutls_privkey_get_type:: (gnutls_privkey_t KEY)'
+
+In order to support cryptographic operations using an external API, the
+following function is provided.  This allows for a simple extensibility
+API without resorting to PKCS #11.
+
+ -- Function: int gnutls_privkey_import_ext (gnutls_privkey_t PKEY,
+          gnutls_pk_algorithm_t PK, void* USERDATA,
+          gnutls_privkey_sign_func SIGN_FUNC,
+          gnutls_privkey_decrypt_func DECRYPT_FUNC, unsigned int FLAGS)
+     PKEY: The private key
+
+     PK: The public key algorithm
+
+     USERDATA: private data to be provided to the callbacks
+
+     SIGN_FUNC: callback for signature operations
+
+     DECRYPT_FUNC: callback for decryption operations
+
+     FLAGS: Flags for the import
+
+     This function will associate the given callbacks with the
+     'gnutls_privkey_t' structure.  At least one of the two callbacks
+     must be non-null.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+\1f
+File: gnutls.info,  Node: Operations,  Prev: Abstract private keys,  Up: Abstract key types
+
+6.8.3 Operations
+----------------
+
+The abstract key types can be used to access signing and signature
+verification operations with the underlying keys.
+
+ -- Function: int gnutls_pubkey_verify_data2 (gnutls_pubkey_t PUBKEY,
+          gnutls_sign_algorithm_t ALGO, unsigned int FLAGS, const
+          gnutls_datum_t * DATA, const gnutls_datum_t * SIGNATURE)
+     PUBKEY: Holds the public key
+
+     ALGO: The signature algorithm used
+
+     FLAGS: should be 0 for now
+
+     DATA: holds the signed data
+
+     SIGNATURE: contains the signature
+
+     This function will verify the given signed data, using the
+     parameters from the certificate.
+
+     *Returns:* In case of a verification failure
+     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
+     code on success.
+
+     *Since:* 3.0
+
+ -- Function: int gnutls_pubkey_verify_hash2 (gnutls_pubkey_t KEY,
+          gnutls_sign_algorithm_t ALGO, unsigned int FLAGS, const
+          gnutls_datum_t * HASH, const gnutls_datum_t * SIGNATURE)
+     KEY: Holds the public key
+
+     ALGO: The signature algorithm used
+
+     FLAGS: should be 0 for now
+
+     HASH: holds the hash digest to be verified
+
+     SIGNATURE: contains the signature
+
+     This function will verify the given signed digest, using the
+     parameters from the public key.
+
+     *Returns:* In case of a verification failure
+     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
+     code on success.
+
+     *Since:* 3.0
+
+ -- Function: int gnutls_pubkey_encrypt_data (gnutls_pubkey_t KEY,
+          unsigned int FLAGS, const gnutls_datum_t * PLAINTEXT,
+          gnutls_datum_t * CIPHERTEXT)
+     KEY: Holds the public key
+
+     FLAGS: should be 0 for now
+
+     PLAINTEXT: The data to be encrypted
+
+     CIPHERTEXT: contains the encrypted data
+
+     This function will encrypt the given data, using the public key.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+ -- Function: int gnutls_privkey_sign_data (gnutls_privkey_t SIGNER,
+          gnutls_digest_algorithm_t HASH, unsigned int FLAGS, const
+          gnutls_datum_t * DATA, gnutls_datum_t * SIGNATURE)
+     SIGNER: Holds the key
+
+     HASH: should be a digest algorithm
+
+     FLAGS: should be 0 for now
+
+     DATA: holds the data to be signed
+
+     SIGNATURE: will contain the signature allocate with
+     'gnutls_malloc()'
+
+     This function will sign the given data using a signature algorithm
+     supported by the private key.  Signature algorithms are always used
+     together with a hash functions.  Different hash functions may be
+     used for the RSA algorithm, but only the SHA family for the DSA
+     keys.
+
+     Use 'gnutls_pubkey_get_preferred_hash_algorithm()' to determine the
+     hash algorithm.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+ -- Function: int gnutls_privkey_sign_hash (gnutls_privkey_t SIGNER,
+          gnutls_digest_algorithm_t HASH_ALGO, unsigned int FLAGS, const
+          gnutls_datum_t * HASH_DATA, gnutls_datum_t * SIGNATURE)
+     SIGNER: Holds the signer's key
+
+     HASH_ALGO: The hash algorithm used
+
+     FLAGS: zero for now
+
+     HASH_DATA: holds the data to be signed
+
+     SIGNATURE: will contain newly allocated signature
+
+     This function will sign the given hashed data using a signature
+     algorithm supported by the private key.  Signature algorithms are
+     always used together with a hash functions.  Different hash
+     functions may be used for the RSA algorithm, but only SHA-XXX for
+     the DSA keys.
+
+     Use 'gnutls_pubkey_get_preferred_hash_algorithm()' to determine the
+     hash algorithm.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+ -- Function: int gnutls_privkey_decrypt_data (gnutls_privkey_t KEY,
+          unsigned int FLAGS, const gnutls_datum_t * CIPHERTEXT,
+          gnutls_datum_t * PLAINTEXT)
+     KEY: Holds the key
+
+     FLAGS: zero for now
+
+     CIPHERTEXT: holds the data to be decrypted
+
+     PLAINTEXT: will contain the decrypted data, allocated with
+     'gnutls_malloc()'
+
+     This function will decrypt the given data using the algorithm
+     supported by the private key.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+Signing existing structures, such as certificates, CRLs, or certificate
+requests, as well as associating public keys with structures is also
+possible using the key abstractions.
+
+ -- Function: int gnutls_x509_crq_set_pubkey (gnutls_x509_crq_t CRQ,
+          gnutls_pubkey_t KEY)
+     CRQ: should contain a 'gnutls_x509_crq_t' structure
+
+     KEY: holds a public key
+
+     This function will set the public parameters from the given public
+     key to the request.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+ -- Function: int gnutls_x509_crt_set_pubkey (gnutls_x509_crt_t CRT,
+          gnutls_pubkey_t KEY)
+     CRT: should contain a 'gnutls_x509_crt_t' structure
+
+     KEY: holds a public key
+
+     This function will set the public parameters from the given public
+     key to the request.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+'INT *note gnutls_x509_crt_privkey_sign:: (gnutls_x509_crt_t CRT, gnutls_x509_crt_t ISSUER, gnutls_privkey_t ISSUER_KEY, gnutls_digest_algorithm_t DIG, unsigned int FLAGS)'
+'INT *note gnutls_x509_crl_privkey_sign:: (gnutls_x509_crl_t CRL, gnutls_x509_crt_t ISSUER, gnutls_privkey_t ISSUER_KEY, gnutls_digest_algorithm_t DIG, unsigned int FLAGS)'
+'INT *note gnutls_x509_crq_privkey_sign:: (gnutls_x509_crq_t CRQ, gnutls_privkey_t KEY, gnutls_digest_algorithm_t DIG, unsigned int FLAGS)'
+
+\1f
+File: gnutls.info,  Node: How to use GnuTLS in applications,  Next: GnuTLS application examples,  Prev: More on certificate authentication,  Up: Top
+
+7 How to use GnuTLS in applications
+***********************************
+
+* Menu:
+
+* Introduction to the library::
+* Preparation::
+* Session initialization::
+* Associating the credentials::
+* Setting up the transport layer::
+* TLS handshake::
+* Data transfer and termination::
+* Handling alerts::
+* Priority Strings::
+* Advanced and other topics::
+* Using the cryptographic library::
+* Selecting cryptographic key sizes::
+
+\1f
+File: gnutls.info,  Node: Introduction to the library,  Next: Preparation,  Up: How to use GnuTLS in applications
+
+7.1 Introduction
+================
+
+* Menu:
+
+* General idea::
+* Error handling::
+* Common types::
+* Debugging and auditing::
+* Thread safety::
+* Callback functions::
+
+\1f
+File: gnutls.info,  Node: General idea,  Next: Error handling,  Up: Introduction to the library
+
+7.1.1 General idea
+------------------
+
+A brief description of how GnuTLS works internally is shown at *note
+Figure 7.1: fig:gnutls-design.  This section may become more clear after
+having read the rest of this section.  As shown in the figure, there is
+a read-only global state that is initialized once by the global
+initialization function.  This global structure, among others, contains
+the memory allocation functions used, and structures needed for the
+ASN.1 parser.  This structure is never modified by any GnuTLS function,
+except for the deinitialization function which frees all allocated
+memory and is called after the program has permanently finished using
+GnuTLS.
+
+\0\b[image src="gnutls-internals.png"\0\b]
+
+Figure 7.1: High level design of GnuTLS.
+
+The credentials structures are used by the authentication methods, such
+as certificate authentication.  They store certificates, privates keys,
+and other information that is needed to prove the identity to the peer,
+and/or verify the indentity of the peer.  The information stored in the
+credentials structures is initialized once and then can be shared by
+many TLS sessions.
+
+A GnuTLS session contains all the required information to handle one
+secure connection.  The session communicates with the peers using the
+provided functions of the transport layer.  Every session has a unique
+session ID shared with the peer.
+
+Since TLS sessions can be resumed, servers need a database back-end to
+hold the session's parameters.  Every GnuTLS session after a successful
+handshake calls the appropriate back-end function (see *note resume::)
+to store the newly negotiated session.  The session database is examined
+by the server just after having received the client hello(1), and if the
+session ID sent by the client, matches a stored session, the stored
+session will be retrieved, and the new session will be a resumed one,
+and will share the same session ID with the previous one.
+
+   ---------- Footnotes ----------
+
+   (1) The first message in a TLS handshake
+
+\1f
+File: gnutls.info,  Node: Error handling,  Next: Common types,  Prev: General idea,  Up: Introduction to the library
+
+7.1.2 Error handling
+--------------------
+
+In GnuTLS most functions return an integer type as a result.  In almost
+all cases a zero or a positive number means success, and a negative
+number indicates failure, or a situation that some action has to be
+taken.  Thus negative error codes may be fatal or not.
+
+Fatal errors terminate the connection immediately and further sends and
+receives will be disallowed.  Such an example is
+'GNUTLS_E_DECRYPTION_FAILED'.  Non-fatal errors may warn about
+something, i.e., a warning alert was received, or indicate the some
+action has to be taken.  This is the case with the error code
+'GNUTLS_E_REHANDSHAKE' returned by *note gnutls_record_recv::.  This
+error code indicates that the server requests a re-handshake.  The
+client may ignore this request, or may reply with an alert.  You can
+test if an error code is a fatal one by using the *note
+gnutls_error_is_fatal::.  All errors can be converted to a descriptive
+string using *note gnutls_strerror::.
+
+If any non fatal errors, that require an action, are to be returned by a
+function, these error codes will be documented in the function's
+reference.  For example the error codes
+'GNUTLS_E_WARNING_ALERT_RECEIVED' and 'GNUTLS_E_FATAL_ALERT_RECEIVED'
+that may returned when receiving data, should be handled by notifying
+the user of the alert (as explained in *note Handling alerts::).  See
+*note Error codes::, for a description of the available error codes.
+
+\1f
+File: gnutls.info,  Node: Common types,  Next: Debugging and auditing,  Prev: Error handling,  Up: Introduction to the library
+
+7.1.3 Common types
+------------------
+
+Several functions in GnuTLS use 'gnutls_datum_t' which is convenient way
+to combine a pointer to data and data's size.  Its definition is shown
+below.
+  typedef struct
+  {
+    unsigned char *data;
+    unsigned int size;
+  } gnutls_datum_t;
+
+Other functions that require data for scattered read use a structure
+similar to 'struct iovec' typically used by 'readv'.  It is shown below.
+  typedef struct
+  {
+    void *iov_base;             /* Starting address */
+    size_t iov_len;             /* Number of bytes to transfer */
+  } giovec_t;
+
+\1f
+File: gnutls.info,  Node: Debugging and auditing,  Next: Thread safety,  Prev: Common types,  Up: Introduction to the library
+
+7.1.4 Debugging and auditing
+----------------------------
+
+In many cases things may not go as expected and further information, to
+assist debugging, from GnuTLS is desired.  Those are the cases where the
+*note gnutls_global_set_log_level:: and *note
+gnutls_global_set_log_function:: are to be used.  Those will print
+verbose information on the GnuTLS functions internal flow.
+
+'VOID *note gnutls_global_set_log_level:: (int LEVEL)'
+'VOID *note gnutls_global_set_log_function:: (gnutls_log_func LOG_FUNC)'
+
+When debugging is not required, important issues, such as detected
+attacks on the protocol still need to be logged.  This is provided by
+the logging function set by *note
+gnutls_global_set_audit_log_function::.  The provided function will
+receive an message and the corresponding TLS session.  The session
+information might be used to derive IP addresses or other information
+about the peer involved.
+
+ -- Function: void gnutls_global_set_audit_log_function
+          (gnutls_audit_log_func LOG_FUNC)
+     LOG_FUNC: it is the audit log function
+
+     This is the function where you set the logging function gnutls is
+     going to use.  This is different from
+     'gnutls_global_set_log_function()' because it will report the
+     session of the event if any.  Note that that session might be null
+     if there is no corresponding TLS session.
+
+     'gnutls_audit_log_func' is of the form, void
+     (*gnutls_audit_log_func)( gnutls_session_t, int level, const
+     char*);
+
+     *Since:* 3.0
+
+\1f
+File: gnutls.info,  Node: Thread safety,  Next: Callback functions,  Prev: Debugging and auditing,  Up: Introduction to the library
+
+7.1.5 Thread safety
+-------------------
+
+The GnuTLS library is thread safe by design, meaning that objects of the
+library such as TLS sessions, can be safely divided across threads as
+long as a single thread accesses a single object.  This is sufficient to
+support a server which handles several sessions per thread.  If,
+however, an object needs to be shared across threads then access must be
+protected with a mutex.  Read-only access to objects, for example the
+credentials holding structures, is also thread-safe.
+
+The random generator of the cryptographic back-end, is not thread safe
+and requires mutex locks which are setup by GnuTLS.  Applications can
+either call *note gnutls_global_init:: which will initialize the default
+operating system provided locks (i.e.  'pthreads' on GNU/Linux and
+'CriticalSection' on Windows), or manually specify the locking system
+using the function *note gnutls_global_set_mutex:: before calling *note
+gnutls_global_init::.  Setting mutexes manually is recommended only for
+applications that have full control of the underlying libraries.  If
+this is not the case, the use of the operating system defaults is
+recommended.  An example of non-native thread usage is shown below.
+
+     #include <gnutls/gnutls.h>
+
+     int main()
+     {
+        /* When the system mutexes are not to be used
+         * gnutls_global_set_mutex() must be called explicitly
+         */
+        gnutls_global_set_mutex (mutex_init, mutex_deinit,
+                                 mutex_lock, mutex_unlock);
+        gnutls_global_init();
+     }
+
+ -- Function: void gnutls_global_set_mutex (mutex_init_func INIT,
+          mutex_deinit_func DEINIT, mutex_lock_func LOCK,
+          mutex_unlock_func UNLOCK)
+     INIT: mutex initialization function
+
+     DEINIT: mutex deinitialization function
+
+     LOCK: mutex locking function
+
+     UNLOCK: mutex unlocking function
+
+     With this function you are allowed to override the default mutex
+     locks used in some parts of gnutls and dependent libraries.  This
+     function should be used if you have complete control of your
+     program and libraries.  Do not call this function from a library.
+     Instead only initialize gnutls and the default OS mutex locks will
+     be used.
+
+     This function must be called before 'gnutls_global_init()' .
+
+     *Since:* 2.12.0
+
+\1f
+File: gnutls.info,  Node: Callback functions,  Prev: Thread safety,  Up: Introduction to the library
+
+7.1.6 Callback functions
+------------------------
+
+There are several cases where GnuTLS may need out of band input from
+your program.  This is now implemented using some callback functions,
+which your program is expected to register.
+
+An example of this type of functions are the push and pull callbacks
+which are used to specify the functions that will retrieve and send data
+to the transport layer.
+
+'VOID *note gnutls_transport_set_push_function:: (gnutls_session_t SESSION, gnutls_push_func PUSH_FUNC)'
+'VOID *note gnutls_transport_set_pull_function:: (gnutls_session_t SESSION, gnutls_pull_func PULL_FUNC)'
+
+Other callback functions may require more complicated input and data to
+be allocated.  Such an example is *note
+gnutls_srp_set_server_credentials_function::.  All callbacks should
+allocate and free memory using 'gnutls_malloc' and 'gnutls_free'.
+
+\1f
+File: gnutls.info,  Node: Preparation,  Next: Session initialization,  Prev: Introduction to the library,  Up: How to use GnuTLS in applications
+
+7.2 Preparation
+===============
+
+To use GnuTLS, you have to perform some changes to your sources and your
+build system.  The necessary changes are explained in the following
+subsections.
+
+* Menu:
+
+* Headers::
+* Initialization::
+* Version check::
+* Building the source::
+
+\1f
+File: gnutls.info,  Node: Headers,  Next: Initialization,  Up: Preparation
+
+7.2.1 Headers
+-------------
+
+All the data types and functions of the GnuTLS library are defined in
+the header file 'gnutls/gnutls.h'.  This must be included in all
+programs that make use of the GnuTLS library.
+
+\1f
+File: gnutls.info,  Node: Initialization,  Next: Version check,  Prev: Headers,  Up: Preparation
+
+7.2.2 Initialization
+--------------------
+
+GnuTLS must be initialized before it can be used.  The library is
+initialized by calling *note gnutls_global_init::.  The resources
+allocated by the initialization process can be released if the
+application no longer has a need to call GnuTLS functions, this is done
+by calling *note gnutls_global_deinit::.
+
+In order to take advantage of the internationalization features in
+GnuTLS, such as translated error messages, the application must set the
+current locale using 'setlocale' before initializing GnuTLS.
+
+\1f
+File: gnutls.info,  Node: Version check,  Next: Building the source,  Prev: Initialization,  Up: Preparation
+
+7.2.3 Version check
+-------------------
+
+It is often desirable to check that the version of 'gnutls' used is
+indeed one which fits all requirements.  Even with binary compatibility
+new features may have been introduced but due to problem with the
+dynamic linker an old version is actually used.  So you may want to
+check that the version is okay right after program start-up.  See the
+function *note gnutls_check_version::.
+
+\1f
+File: gnutls.info,  Node: Building the source,  Prev: Version check,  Up: Preparation
+
+7.2.4 Building the source
+-------------------------
+
+If you want to compile a source file including the 'gnutls/gnutls.h'
+header file, you must make sure that the compiler can find it in the
+directory hierarchy.  This is accomplished by adding the path to the
+directory in which the header file is located to the compilers include
+file search path (via the '-I' option).
+
+However, the path to the include file is determined at the time the
+source is configured.  To solve this problem, the library uses the
+external package 'pkg-config' that knows the path to the include file
+and other configuration options.  The options that need to be added to
+the compiler invocation at compile time are output by the '--cflags'
+option to 'pkg-config gnutls'.  The following example shows how it can
+be used at the command line:
+
+     gcc -c foo.c `pkg-config gnutls --cflags`
+
+Adding the output of 'pkg-config gnutls --cflags' to the compilers
+command line will ensure that the compiler can find the
+'gnutls/gnutls.h' header file.
+
+A similar problem occurs when linking the program with the library.
+Again, the compiler has to find the library files.  For this to work,
+the path to the library files has to be added to the library search path
+(via the '-L' option).  For this, the option '--libs' to 'pkg-config
+gnutls' can be used.  For convenience, this option also outputs all
+other options that are required to link the program with the library
+(for instance, the '-ltasn1' option).  The example shows how to link
+'foo.o' with the library to a program 'foo'.
+
+     gcc -o foo foo.o `pkg-config gnutls --libs`
+
+Of course you can also combine both examples to a single command by
+specifying both options to 'pkg-config':
+
+     gcc -o foo foo.c `pkg-config gnutls --cflags --libs`
+
+When a program uses the GNU autoconf system, then the following line or
+similar can be used to detect the presence of GnuTLS.
+
+     PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.0.0])
+
+     AC_SUBST([LIBGNUTLS_CFLAGS])
+     AC_SUBST([LIBGNUTLS_LIBS])
+
+\1f
+File: gnutls.info,  Node: Session initialization,  Next: Associating the credentials,  Prev: Preparation,  Up: How to use GnuTLS in applications
+
+7.3 Session initialization
+==========================
+
+In the previous sections we have discussed the global initialization
+required for GnuTLS as well as the initialization required for each
+authentication method's credentials (see *note Authentication::).  In
+this section we elaborate on the TLS or DTLS session initiation.  Each
+session is initialized using *note gnutls_init:: which among others is
+used to specify the type of the connection (server or client), and the
+underlying protocol type, i.e., datagram (UDP) or reliable (TCP).
+
+ -- Function: int gnutls_init (gnutls_session_t * SESSION, unsigned int
+          FLAGS)
+     SESSION: is a pointer to a 'gnutls_session_t' structure.
+
+     FLAGS: indicate if this session is to be used for server or client.
+
+     This function initializes the current session to null.  Every
+     session must be initialized before use, so internal structures can
+     be allocated.  This function allocates structures which can only be
+     free'd by calling 'gnutls_deinit()' .  Returns 'GNUTLS_E_SUCCESS'
+     (0) on success.
+
+     'flags' can be one of 'GNUTLS_CLIENT' and 'GNUTLS_SERVER' .  For a
+     DTLS entity, the flags 'GNUTLS_DATAGRAM' and 'GNUTLS_NONBLOCK' are
+     also available.  The latter flag will enable a non-blocking
+     operation of the DTLS timers.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+After the session initialization details on the allowed ciphersuites and
+protocol versions should be set using the priority functions such as
+*note gnutls_priority_set_direct::.  We elaborate on them in *note
+Priority Strings::.  The credentials used for the key exchange method,
+such as certificates or usernames and passwords should also be
+associated with the session current session using *note
+gnutls_credentials_set::.
+
+ -- Function: int gnutls_credentials_set (gnutls_session_t SESSION,
+          gnutls_credentials_type_t TYPE, void * CRED)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     TYPE: is the type of the credentials
+
+     CRED: is a pointer to a structure.
+
+     Sets the needed credentials for the specified type.  Eg username,
+     password - or public and private keys etc.  The 'cred' parameter is
+     a structure that depends on the specified type and on the current
+     session (client or server).
+
+     In order to minimize memory usage, and share credentials between
+     several threads gnutls keeps a pointer to cred, and not the whole
+     cred structure.  Thus you will have to keep the structure allocated
+     until you call 'gnutls_deinit()' .
+
+     For 'GNUTLS_CRD_ANON' , 'cred' should be
+     'gnutls_anon_client_credentials_t' in case of a client.  In case of
+     a server it should be 'gnutls_anon_server_credentials_t' .
+
+     For 'GNUTLS_CRD_SRP' , 'cred' should be
+     'gnutls_srp_client_credentials_t' in case of a client, and
+     'gnutls_srp_server_credentials_t' , in case of a server.
+
+     For 'GNUTLS_CRD_CERTIFICATE' , 'cred' should be
+     'gnutls_certificate_credentials_t' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+\1f
+File: gnutls.info,  Node: Associating the credentials,  Next: Setting up the transport layer,  Prev: Session initialization,  Up: How to use GnuTLS in applications
+
+7.4 Associating the credentials
+===============================
+
+* Menu:
+
+* Certificate credentials::
+* SRP credentials::
+* PSK credentials::
+* Anonymous credentials::
+
+Each authentication method is associated with a key exchange method, and
+a credentials type.  The contents of the credentials is
+method-dependent, e.g.  certificates for certificate authentication and
+should be initialized and associated with a session (see *note
+gnutls_credentials_set::).  A mapping of the key exchange methods with
+the credential types is shown in *note Table 7.1: tab:key-exchange-cred.
+
+Authentication     Key exchange       Client         Server
+method                                credentials    credentials
+                                                     
+--------------------------------------------------------------------
+Certificate        'KX_RSA',          'CRD_CERTIFICATE''CRD_CERTIFICATE'
+                   'KX_DHE_RSA',                     
+                   'KX_DHE_DSS',
+                   'KX_ECDHE_RSA',
+                   'KX_ECDHE_ECDSA',
+                   'KX_RSA_EXPORT'
+Password and       'KX_SRP_RSA',      'CRD_SRP'      'CRD_CERTIFICATE',
+certificate        'KX_SRP_DSS'                      'CRD_SRP'
+                                                     
+Password           'KX_SRP'           'CRD_SRP'      'CRD_SRP'
+                                                     
+Anonymous          'KX_ANON_DH',      'CRD_ANON'     'CRD_ANON'
+                   'KX_ANON_ECDH'                    
+Pre-shared key     'KX_PSK',          'CRD_PSK'      'CRD_PSK'
+                   'KX_DHE_PSK',                     
+                   'KX_ECDHE_PSK'
+
+Table 7.1: Key exchange algorithms and the corresponding credential
+types.
+
+\1f
+File: gnutls.info,  Node: Certificate credentials,  Next: SRP credentials,  Up: Associating the credentials
+
+7.4.1 Certificates
+------------------
+
+Server certificate authentication
+.................................
+
+When using certificates the server is required to have at least one
+certificate and private key pair.  Clients may not hold such a pair, but
+a server could require it.  In this section we discuss general issues
+applying to both client and server certificates.  The next section will
+elaborate on issues arising from client authentication only.
+
+'INT *note gnutls_certificate_allocate_credentials:: (gnutls_certificate_credentials_t * RES)'
+'VOID *note gnutls_certificate_free_credentials:: (gnutls_certificate_credentials_t SC)'
+
+After the credentials structures are initialized, the certificate and
+key pair must be loaded.  This occurs before any TLS session is
+initialized, and the same structures are reused for multiple sessions.
+Depending on the certificate type different loading functions are
+available, as shown below.  For X.509 certificates, the functions will
+accept and use a certificate chain that leads to a trusted authority.
+The certificate chain must be ordered in such way that every certificate
+certifies the one before it.  The trusted authority's certificate need
+not to be included since the peer should possess it already.
+
+'INT *note gnutls_certificate_set_x509_key_mem:: (gnutls_certificate_credentials_t RES, const gnutls_datum_t * CERT, const gnutls_datum_t * KEY, gnutls_x509_crt_fmt_t TYPE)'
+'INT *note gnutls_certificate_set_x509_key:: (gnutls_certificate_credentials_t RES, gnutls_x509_crt_t * CERT_LIST, int CERT_LIST_SIZE, gnutls_x509_privkey_t KEY)'
+'INT *note gnutls_certificate_set_x509_key_file:: (gnutls_certificate_credentials_t RES, const char * CERTFILE, const char * KEYFILE, gnutls_x509_crt_fmt_t TYPE)'
+
+'INT *note gnutls_certificate_set_openpgp_key_mem:: (gnutls_certificate_credentials_t RES, const gnutls_datum_t * CERT, const gnutls_datum_t * KEY, gnutls_openpgp_crt_fmt_t FORMAT)'
+'INT *note gnutls_certificate_set_openpgp_key:: (gnutls_certificate_credentials_t RES, gnutls_openpgp_crt_t CRT, gnutls_openpgp_privkey_t PKEY)'
+'INT *note gnutls_certificate_set_openpgp_key_file:: (gnutls_certificate_credentials_t RES, const char * CERTFILE, const char * KEYFILE, gnutls_openpgp_crt_fmt_t FORMAT)'
+'INT *note gnutls_certificate_set_key:: (gnutls_certificate_credentials_t RES, const char** NAMES, int NAMES_SIZE, gnutls_pcert_st * PCERT_LIST, int PCERT_LIST_SIZE, gnutls_privkey_t KEY)'
+
+If multiple certificates are used with the functions above each client's
+request will be served with the certificate that matches the requested
+name (see *note Server name indication::).
+
+As an alternative to loading from files or buffers, a callback may be
+used for the server or the client to specify the certificate and the key
+at the handshake time.  In that case a certificate should be selected
+according the peer's signature algorithm preferences.  To get those
+preferences use *note gnutls_sign_algorithm_get_requested::.  Both
+functions are shown below.
+
+'VOID *note gnutls_certificate_set_retrieve_function:: (gnutls_certificate_credentials_t CRED, gnutls_certificate_retrieve_function * FUNC)'
+'VOID *note gnutls_certificate_set_retrieve_function2:: (gnutls_certificate_credentials_t CRED, gnutls_certificate_retrieve_function2 * FUNC)'
+'INT *note gnutls_sign_algorithm_get_requested:: (gnutls_session_t SESSION, size_t INDX, gnutls_sign_algorithm_t * ALGO)'
+
+The functions above do not handle the requested server name
+automatically.  A server would need to check the name requested by the
+client using *note gnutls_server_name_get::, and serve the appropriate
+certificate.
+
+In a handshake, the negotiated cipher suite depends on the certificate's
+parameters, so some key exchange methods might not be available with all
+certificates.  GnuTLS will disable ciphersuites that are not compatible
+with the key, or the enabled authentication methods.  For example keys
+marked as sign-only, will not be able to access the plain RSA
+ciphersuites, that require decryption.  It is not recommended to use RSA
+keys for both signing and encryption.  If possible use a different key
+for the 'DHE-RSA' which uses signing and 'RSA' that requires decryption.
+All the key exchange methods shown in *note Table 4.1: tab:key-exchange.
+are available in certificate authentication.
+
+Client certificate authentication
+.................................
+
+If a certificate is to be requested from the client during the
+handshake, the server will send a certificate request message.  This
+behavior is controlled *note gnutls_certificate_server_set_request::.
+The request contains a list of the acceptable by the server certificate
+signers.  This list is constructed using the trusted certificate
+authorities of the server.  In cases where the server supports a large
+number of certificate authorities it makes sense not to advertise all of
+the names to save bandwidth.  That can be controlled using the function
+*note gnutls_certificate_send_x509_rdn_sequence::.  This however will
+have the side-effect of not restricting the client to certificates
+signed by server's acceptable signers.
+
+ -- Function: void gnutls_certificate_server_set_request
+          (gnutls_session_t SESSION, gnutls_certificate_request_t REQ)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     REQ: is one of GNUTLS_CERT_REQUEST, GNUTLS_CERT_REQUIRE
+
+     This function specifies if we (in case of a server) are going to
+     send a certificate request message to the client.  If 'req' is
+     GNUTLS_CERT_REQUIRE then the server will return an error if the
+     peer does not provide a certificate.  If you do not call this
+     function then the client will not be asked to send a certificate.
+
+ -- Function: void gnutls_certificate_send_x509_rdn_sequence
+          (gnutls_session_t SESSION, int STATUS)
+     SESSION: is a pointer to a 'gnutls_session_t' structure.
+
+     STATUS: is 0 or 1
+
+     If status is non zero, this function will order gnutls not to send
+     the rdnSequence in the certificate request message.  That is the
+     server will not advertise its trusted CAs to the peer.  If status
+     is zero then the default behaviour will take effect, which is to
+     advertise the server's trusted CAs.
+
+     This function has no effect in clients, and in authentication
+     methods other than certificate with X.509 certificates.
+
+Client or server certificate verification
+.........................................
+
+Certificate verification is possible by loading the trusted authorities
+into the credentials structure by using the following functions,
+applicable to X.509 and OpenPGP certificates.
+
+'INT *note gnutls_certificate_set_x509_trust_file:: (gnutls_certificate_credentials_t CRED, const char * CAFILE, gnutls_x509_crt_fmt_t TYPE)'
+'INT *note gnutls_certificate_set_openpgp_keyring_file:: (gnutls_certificate_credentials_t C, const char * FILE, gnutls_openpgp_crt_fmt_t FORMAT)'
+
+The peer's certificate is not automatically verified and one should call
+*note gnutls_certificate_verify_peers2:: after a successful handshake to
+verify the certificate's signature.  Alternative the verification can
+occur during the handshake by using *note
+gnutls_certificate_set_verify_function::.
+
+In order to report a detailed verification output, an alternative way
+has to be used.  For that, one should call *note
+gnutls_certificate_get_peers:: to obtain the raw certificate of the peer
+and verify it using the functions discussed in *note X.509
+certificates::.
+
+ -- Function: int gnutls_certificate_verify_peers2 (gnutls_session_t
+          SESSION, unsigned int * STATUS)
+     SESSION: is a gnutls session
+
+     STATUS: is the output of the verification
+
+     This function will try to verify the peer's certificate and return
+     its status (trusted, invalid etc.).  The value of 'status' should
+     be one or more of the gnutls_certificate_status_t enumerated
+     elements bitwise or'd.  To avoid denial of service attacks some
+     default upper limits regarding the certificate key size and chain
+     size are set.  To override them use
+     'gnutls_certificate_set_verify_limits()' .
+
+     Note that you must also check the peer's name in order to check if
+     the verified certificate belongs to the actual peer.
+
+     This function uses 'gnutls_x509_crt_list_verify()' with the CAs in
+     the credentials as trusted CAs.
+
+     *Returns:* a negative error code on error and 'GNUTLS_E_SUCCESS'
+     (0) on success.
+
+ -- Function: void gnutls_certificate_set_verify_function
+          (gnutls_certificate_credentials_t CRED,
+          gnutls_certificate_verify_function * FUNC)
+     CRED: is a 'gnutls_certificate_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function sets a callback to be called when peer's certificate
+     has been received in order to verify it on receipt rather than
+     doing after the handshake is completed.
+
+     The callback's function prototype is: int
+     (*callback)(gnutls_session_t);
+
+     If the callback function is provided then gnutls will call it, in
+     the handshake, just after the certificate message has been
+     received.  To verify or obtain the certificate the
+     'gnutls_certificate_verify_peers2()' ,
+     'gnutls_certificate_type_get()' , 'gnutls_certificate_get_peers()'
+     functions can be used.
+
+     The callback function should return 0 for the handshake to continue
+     or non-zero to terminate.
+
+     *Since:* 2.10.0
+
+\1f
+File: gnutls.info,  Node: SRP credentials,  Next: PSK credentials,  Prev: Certificate credentials,  Up: Associating the credentials
+
+7.4.2 SRP
+---------
+
+The initialization functions in SRP credentials differ between client
+and server.  Clients supporting SRP should set the username and password
+prior to connection, to the credentials structure.  Alternatively *note
+gnutls_srp_set_client_credentials_function:: may be used instead, to
+specify a callback function that should return the SRP username and
+password.  The callback is called once during the TLS handshake.
+
+'INT *note gnutls_srp_allocate_server_credentials:: (gnutls_srp_server_credentials_t * SC)'
+'INT *note gnutls_srp_allocate_client_credentials:: (gnutls_srp_client_credentials_t * SC)'
+'VOID *note gnutls_srp_free_server_credentials:: (gnutls_srp_server_credentials_t SC)'
+'VOID *note gnutls_srp_free_client_credentials:: (gnutls_srp_client_credentials_t SC)'
+'INT *note gnutls_srp_set_client_credentials:: (gnutls_srp_client_credentials_t RES, const char * USERNAME, const char * PASSWORD)'
+
+ -- Function: void gnutls_srp_set_client_credentials_function
+          (gnutls_srp_client_credentials_t CRED,
+          gnutls_srp_client_credentials_function * FUNC)
+     CRED: is a 'gnutls_srp_server_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function can be used to set a callback to retrieve the
+     username and password for client SRP authentication.  The
+     callback's function form is:
+
+     int (*callback)(gnutls_session_t, char** username, char**password);
+
+     The 'username' and 'password' must be allocated using
+     'gnutls_malloc()' .  'username' and 'password' should be ASCII
+     strings or UTF-8 strings prepared using the "SASLprep" profile of
+     "stringprep".
+
+     The callback function will be called once per handshake before the
+     initial hello message is sent.
+
+     The callback should not return a negative error code the second
+     time called, since the handshake procedure will be aborted.
+
+     The callback function should return 0 on success.  -1 indicates an
+     error.
+
+In server side the default behavior of GnuTLS is to read the usernames
+and SRP verifiers from password files.  These password file format is
+compatible the with the _Stanford srp libraries_ format.  If a different
+password file format is to be used, then *note
+gnutls_srp_set_server_credentials_function:: should be called, to set an
+appropriate callback.
+
+ -- Function: int gnutls_srp_set_server_credentials_file
+          (gnutls_srp_server_credentials_t RES, const char *
+          PASSWORD_FILE, const char * PASSWORD_CONF_FILE)
+     RES: is a 'gnutls_srp_server_credentials_t' structure.
+
+     PASSWORD_FILE: is the SRP password file (tpasswd)
+
+     PASSWORD_CONF_FILE: is the SRP password conf file (tpasswd.conf)
+
+     This function sets the password files, in a
+     'gnutls_srp_server_credentials_t' structure.  Those password files
+     hold usernames and verifiers and will be used for SRP
+     authentication.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+ -- Function: void gnutls_srp_set_server_credentials_function
+          (gnutls_srp_server_credentials_t CRED,
+          gnutls_srp_server_credentials_function * FUNC)
+     CRED: is a 'gnutls_srp_server_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function can be used to set a callback to retrieve the user's
+     SRP credentials.  The callback's function form is:
+
+     int (*callback)(gnutls_session_t, const char* username,
+     gnutls_datum_t* salt, gnutls_datum_t *verifier, gnutls_datum_t* g,
+     gnutls_datum_t* n);
+
+     'username' contains the actual username.  The 'salt' , 'verifier' ,
+     'generator' and 'prime' must be filled in using the
+     'gnutls_malloc()' .  For convenience 'prime' and 'generator' may
+     also be one of the static parameters defined in gnutls.h.
+
+     In case the callback returned a negative number then gnutls will
+     assume that the username does not exist.
+
+     In order to prevent attackers from guessing valid usernames, if a
+     user does not exist, g and n values should be filled in using a
+     random user's parameters.  In that case the callback must return
+     the special value (1).
+
+     The callback function will only be called once per handshake.  The
+     callback function should return 0 on success, while -1 indicates an
+     error.
+
+\1f
+File: gnutls.info,  Node: PSK credentials,  Next: Anonymous credentials,  Prev: SRP credentials,  Up: Associating the credentials
+
+7.4.3 PSK
+---------
+
+The initialization functions in PSK credentials differ between client
+and server.
+
+'INT *note gnutls_psk_allocate_server_credentials:: (gnutls_psk_server_credentials_t * SC)'
+'INT *note gnutls_psk_allocate_client_credentials:: (gnutls_psk_client_credentials_t * SC)'
+'VOID *note gnutls_psk_free_server_credentials:: (gnutls_psk_server_credentials_t SC)'
+'VOID *note gnutls_psk_free_client_credentials:: (gnutls_psk_client_credentials_t SC)'
+
+Clients supporting PSK should supply the username and key before a TLS
+session is established.  Alternatively *note
+gnutls_psk_set_client_credentials_function:: can be used to specify a
+callback function.  This has the advantage that the callback will be
+called only if PSK has been negotiated.
+
+'INT *note gnutls_psk_set_client_credentials:: (gnutls_psk_client_credentials_t RES, const char * USERNAME, const gnutls_datum_t * KEY, gnutls_psk_key_flags FLAGS)'
+
+ -- Function: void gnutls_psk_set_client_credentials_function
+          (gnutls_psk_client_credentials_t CRED,
+          gnutls_psk_client_credentials_function * FUNC)
+     CRED: is a 'gnutls_psk_server_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function can be used to set a callback to retrieve the
+     username and password for client PSK authentication.  The
+     callback's function form is: int (*callback)(gnutls_session_t,
+     char** username, gnutls_datum_t* key);
+
+     The 'username' and 'key' ->data must be allocated using
+     'gnutls_malloc()' .  'username' should be ASCII strings or UTF-8
+     strings prepared using the "SASLprep" profile of "stringprep".
+
+     The callback function will be called once per handshake.
+
+     The callback function should return 0 on success.  -1 indicates an
+     error.
+
+In server side the default behavior of GnuTLS is to read the usernames
+and PSK keys from a password file.  The password file should contain
+usernames and keys in hexadecimal format.  The name of the password file
+can be stored to the credentials structure by calling *note
+gnutls_psk_set_server_credentials_file::.  If a different password file
+format is to be used, then a callback should be set instead by *note
+gnutls_psk_set_server_credentials_function::.
+
+The server can help the client chose a suitable username and password,
+by sending a hint.  Note that there is no common profile for the PSK
+hint and applications are discouraged to use it.  A server, may specify
+the hint by calling *note gnutls_psk_set_server_credentials_hint::.  The
+client can retrieve the hint, for example in the callback function,
+using *note gnutls_psk_client_get_hint::.
+
+ -- Function: int gnutls_psk_set_server_credentials_file
+          (gnutls_psk_server_credentials_t RES, const char *
+          PASSWORD_FILE)
+     RES: is a 'gnutls_psk_server_credentials_t' structure.
+
+     PASSWORD_FILE: is the PSK password file (passwd.psk)
+
+     This function sets the password file, in a
+     'gnutls_psk_server_credentials_t' structure.  This password file
+     holds usernames and keys and will be used for PSK authentication.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+'VOID *note gnutls_psk_set_server_credentials_function:: (gnutls_psk_server_credentials_t CRED, gnutls_psk_server_credentials_function * FUNC)'
+'INT *note gnutls_psk_set_server_credentials_hint:: (gnutls_psk_server_credentials_t RES, const char * HINT)'
+'CONST CHAR * *note gnutls_psk_client_get_hint:: (gnutls_session_t SESSION)'
+
+\1f
+File: gnutls.info,  Node: Anonymous credentials,  Prev: PSK credentials,  Up: Associating the credentials
+
+7.4.4 Anonymous
+---------------
+
+The key exchange methods for anonymous authentication might require
+Diffie-Hellman parameters to be generated by the server and associated
+with an anonymous credentials structure.  Check *note Parameter
+generation:: for more information.  The initialization functions for the
+credentials are shown below.
+
+'INT *note gnutls_anon_allocate_server_credentials:: (gnutls_anon_server_credentials_t * SC)'
+'INT *note gnutls_anon_allocate_client_credentials:: (gnutls_anon_client_credentials_t * SC)'
+'VOID *note gnutls_anon_free_server_credentials:: (gnutls_anon_server_credentials_t SC)'
+'VOID *note gnutls_anon_free_client_credentials:: (gnutls_anon_client_credentials_t SC)'
+
+\1f
+File: gnutls.info,  Node: Setting up the transport layer,  Next: TLS handshake,  Prev: Associating the credentials,  Up: How to use GnuTLS in applications
+
+7.5 Setting up the transport layer
+==================================
+
+The next step is to setup the underlying transport layer details.  The
+Berkeley sockets are implicitly used by GnuTLS, thus a call to *note
+gnutls_transport_set_ptr2:: would be sufficient to specify the socket
+descriptor.
+
+ -- Function: void gnutls_transport_set_ptr2 (gnutls_session_t SESSION,
+          gnutls_transport_ptr_t RECV_PTR, gnutls_transport_ptr_t
+          SEND_PTR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     RECV_PTR: is the value for the pull function
+
+     SEND_PTR: is the value for the push function
+
+     Used to set the first argument of the transport function (for push
+     and pull callbacks).  In berkeley style sockets this function will
+     set the connection descriptor.  With this function you can use two
+     different pointers for receiving and sending.
+
+'VOID *note gnutls_transport_set_ptr:: (gnutls_session_t SESSION, gnutls_transport_ptr_t PTR)'
+
+If however another transport layer than TCP is selected, then the
+following functions have to be specified.
+
+ -- Function: void gnutls_transport_set_push_function (gnutls_session_t
+          SESSION, gnutls_push_func PUSH_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PUSH_FUNC: a callback function similar to 'write()'
+
+     This is the function where you set a push function for gnutls to
+     use in order to send data.  If you are going to use berkeley style
+     sockets, you do not need to use this function since the default
+     send(2) will probably be ok.  Otherwise you should specify this
+     function for gnutls to be able to send data.  The callback should
+     return a positive number indicating the bytes sent, and -1 on
+     error.
+
+     'push_func' is of the form, ssize_t
+     (*gnutls_push_func)(gnutls_transport_ptr_t, const void*, size_t);
+
+ -- Function: void gnutls_transport_set_vec_push_function
+          (gnutls_session_t SESSION, gnutls_vec_push_func VEC_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     VEC_FUNC: a callback function similar to 'writev()'
+
+     Using this function you can override the default writev(2) function
+     for gnutls to send data.  Setting this callback instead of
+     'gnutls_transport_set_push_function()' is recommended since it
+     introduces less overhead in the TLS handshake process.
+
+     'vec_func' is of the form, ssize_t (*gnutls_vec_push_func)
+     (gnutls_transport_ptr_t, const giovec_t * iov, int iovcnt);
+
+     *Since:* 2.12.0
+
+ -- Function: void gnutls_transport_set_pull_function (gnutls_session_t
+          SESSION, gnutls_pull_func PULL_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PULL_FUNC: a callback function similar to 'read()'
+
+     This is the function where you set a function for gnutls to receive
+     data.  Normally, if you use berkeley style sockets, do not need to
+     use this function since the default recv(2) will probably be ok.
+     The callback should return 0 on connection termination, a positive
+     number indicating the number of bytes received, and -1 on error.
+
+     'gnutls_pull_func' is of the form, ssize_t
+     (*gnutls_pull_func)(gnutls_transport_ptr_t, void*, size_t);
+
+The functions above accept a callback function which should return the
+number of bytes written, or -1 on error and should set 'errno'
+appropriately.  In some environments, setting 'errno' is unreliable.
+For example Windows have several errno variables in different CRTs, or
+in other systems it may be a non thread-local variable.  If this is a
+concern to you, call *note gnutls_transport_set_errno:: with the
+intended errno value instead of setting 'errno' directly.
+
+ -- Function: void gnutls_transport_set_errno (gnutls_session_t SESSION,
+          int ERR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     ERR: error value to store in session-specific errno variable.
+
+     Store 'err' in the session-specific errno variable.  Useful values
+     for 'err' is EAGAIN and EINTR, other values are treated will be
+     treated as real errors in the push/pull function.
+
+     This function is useful in replacement push and pull functions set
+     by 'gnutls_transport_set_push_function()' and
+     'gnutls_transport_set_pull_function()' under Windows, where the
+     replacements may not have access to the same 'errno' variable that
+     is used by GnuTLS (e.g., the application is linked to msvcr71.dll
+     and gnutls is linked to msvcrt.dll).
+
+GnuTLS currently only interprets the EINTR, EAGAIN and EMSGSIZE errno
+values and returns the corresponding GnuTLS error codes:
+   * 'GNUTLS_E_INTERRUPTED'
+   * 'GNUTLS_E_AGAIN'
+   * 'GNUTLS_E_LARGE_PACKET'
+The EINTR and EAGAIN values are returned by interrupted system calls, or
+when non blocking IO is used.  All GnuTLS functions can be resumed
+(called again), if any of the above error codes is returned.  The
+EMSGSIZE value is returned when attempting to send a large datagram.
+
+In the case of DTLS it is also desirable to override the generic
+transport functions with functions that emulate the operation of
+'recvfrom' and 'sendto'.  In addition DTLS requires timers during the
+receive of a handshake message, set using the *note
+gnutls_transport_set_pull_timeout_function:: function.  To check the
+retransmission timers the function *note gnutls_dtls_get_timeout:: is
+provided, which returns the time remaining until the next
+retransmission, or better the time until *note gnutls_handshake:: should
+be called again.
+
+ -- Function: void gnutls_transport_set_pull_timeout_function
+          (gnutls_session_t SESSION, gnutls_pull_timeout_func FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     FUNC: a callback function
+
+     This is the function where you set a function for gnutls to know
+     whether data are ready to be received.  It should wait for data a
+     given time frame in milliseconds.  The callback should return 0 on
+     timeout, a positive number if data can be received, and -1 on
+     error.  You'll need to override this function if 'select()' is not
+     suitable for the provided transport calls.  The callback function
+     is used in DTLS only.
+
+     'gnutls_pull_timeout_func' is of the form, ssize_t
+     (*gnutls_pull_timeout_func)(gnutls_transport_ptr_t, unsigned int
+     ms);
+
+     *Since:* 3.0
+
+ -- Function: unsigned int gnutls_dtls_get_timeout (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function will return the milliseconds remaining for a
+     retransmission of the previously sent handshake message.  This
+     function is useful when DTLS is used in non-blocking mode, to
+     estimate when to call 'gnutls_handshake()' if no packets have been
+     received.
+
+     *Returns:* the remaining time in milliseconds.
+
+     *Since:* 3.0
+
+* Menu:
+
+* Asynchronous operation::
+* DTLS sessions::
+
+\1f
+File: gnutls.info,  Node: Asynchronous operation,  Next: DTLS sessions,  Up: Setting up the transport layer
+
+7.5.1 Asynchronous operation
+----------------------------
+
+GnuTLS can be used with asynchronous socket or event-driven programming.
+The approach is similar to using Berkeley sockets under such an
+environment.  The blocking, due to network interaction, calls such as
+*note gnutls_handshake::, *note gnutls_record_recv::, can be set to
+non-blocking by setting the underlying sockets to non-blocking.  If
+other push and pull functions are setup, then they should behave the
+same way as 'recv' and 'send' when used in a non-blocking way, i.e., set
+errno to 'EAGAIN'.  Since, during a TLS protocol session GnuTLS does not
+block except for network interaction, the non blocking 'EAGAIN' errno
+will be propagated and GnuTLS functions will return the 'GNUTLS_E_AGAIN'
+error code.  Such calls can be resumed the same way as a system call
+would.  The only exception is *note gnutls_record_send::, which if
+interrupted subsequent calls need not to include the data to be sent
+(can be called with NULL argument).
+
+The 'select' system call can also be used in combination with the GnuTLS
+functions.  'select' allows monitoring of sockets and notifies on them
+being ready for reading or writing data.  Note however that this system
+call cannot notify on data present in GnuTLS read buffers, it is only
+applicable to the kernel sockets API. Thus if you are using it for
+reading from a GnuTLS session, make sure that any cached data are read
+completely.  That can be achieved by checking there are no data waiting
+to be read (using *note gnutls_record_check_pending::), either before
+the 'select' system call, or after a call to *note gnutls_record_recv::.
+GnuTLS does not keep a write buffer, thus when writing no additional
+actions are required.
+
+Although in the TLS protocol implementation each call to receive or send
+function implies to restoring the same function that was interrupted, in
+the DTLS protocol this requirement isn't true.  There are cases where a
+retransmission is required, which are indicated by a received message
+and thus *note gnutls_record_get_direction:: must be called to decide
+which direction to check prior to restoring a function call.
+
+ -- Function: int gnutls_record_get_direction (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function provides information about the internals of the
+     record protocol and is only useful if a prior gnutls function call
+     (e.g.  'gnutls_handshake()' ) was interrupted for some reason, that
+     is, if a function returned 'GNUTLS_E_INTERRUPTED' or
+     'GNUTLS_E_AGAIN' .  In such a case, you might want to call
+     'select()' or 'poll()' before calling the interrupted gnutls
+     function again.  To tell you whether a file descriptor should be
+     selected for either reading or writing,
+     'gnutls_record_get_direction()' returns 0 if the interrupted
+     function was trying to read data, and 1 if it was trying to write
+     data.
+
+     *Returns:* 0 if trying to read data, 1 if trying to write data.
+
+Moreover, to prevent blocking from DTLS' retransmission timers to block
+a handshake, the *note gnutls_init:: function should be called with the
+'GNUTLS_NONBLOCK' flag set (see *note Session initialization::).
+
+\1f
+File: gnutls.info,  Node: DTLS sessions,  Prev: Asynchronous operation,  Up: Setting up the transport layer
+
+7.5.2 DTLS sessions
+-------------------
+
+Because datagram TLS can operate over connections where the peer of a
+server cannot be reliably verified, functionality is available to
+prevent denial of service attacks.  GnuTLS requires a server to generate
+a secret key that is used to sign a cookie(1).  That cookie is sent to
+the client using *note gnutls_dtls_cookie_send::, and the client must
+reply using the correct cookie.  The server side should verify the
+initial message sent by client using *note gnutls_dtls_cookie_verify::.
+If successful the session should be initialized and associated with the
+cookie using *note gnutls_dtls_prestate_set::, before proceeding to the
+handshake.
+
+'INT *note gnutls_key_generate:: (gnutls_datum_t * KEY, unsigned int KEY_SIZE)'
+'INT *note gnutls_dtls_cookie_send:: (gnutls_datum_t* KEY, void* CLIENT_DATA, size_t CLIENT_DATA_SIZE, gnutls_dtls_prestate_st* PRESTATE, gnutls_transport_ptr_t PTR, gnutls_push_func PUSH_FUNC)'
+'INT *note gnutls_dtls_cookie_verify:: (gnutls_datum_t* KEY, void* CLIENT_DATA, size_t CLIENT_DATA_SIZE, void* _MSG, size_t MSG_SIZE, gnutls_dtls_prestate_st* PRESTATE)'
+'VOID *note gnutls_dtls_prestate_set:: (gnutls_session_t SESSION, gnutls_dtls_prestate_st* PRESTATE)'
+
+Note that the above apply to server side only and they are not mandatory
+to be used.  Not using them, however, allows denial of service attacks.
+The client side cookie handling is part of *note gnutls_handshake::.
+
+Datagrams are typically restricted by a maximum transfer unit (MTU). For
+that both client and server side should set the correct maximum transfer
+unit for the layer underneath GnuTLS.  This will allow proper
+fragmentation of DTLS messages and prevent messages from being silently
+discarded by the transport layer.  The "correct" maximum transfer unit
+can be obtained through a path MTU discovery mechanism [_RFC4821_].
+
+'VOID *note gnutls_dtls_set_mtu:: (gnutls_session_t SESSION, unsigned int MTU)'
+'UNSIGNED INT *note gnutls_dtls_get_mtu:: (gnutls_session_t SESSION)'
+'UNSIGNED INT *note gnutls_dtls_get_data_mtu:: (gnutls_session_t SESSION)'
+
+   ---------- Footnotes ----------
+
+   (1) A key of 128 bits or 16 bytes should be sufficient for this
+purpose.
+
+\1f
+File: gnutls.info,  Node: TLS handshake,  Next: Data transfer and termination,  Prev: Setting up the transport layer,  Up: How to use GnuTLS in applications
+
+7.6 TLS handshake
+=================
+
+Once a session has been initialized and a network connection has been
+set up, TLS and DTLS protocols perform a handshake.  The handshake is
+the actual key exchange.
+
+ -- Function: int gnutls_handshake (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function does the handshake of the TLS/SSL protocol, and
+     initializes the TLS connection.
+
+     This function will fail if any problem is encountered, and will
+     return a negative error code.  In case of a client, if the client
+     has asked to resume a session, but the server couldn't, then a full
+     handshake will be performed.
+
+     The non-fatal errors such as 'GNUTLS_E_AGAIN' and
+     'GNUTLS_E_INTERRUPTED' interrupt the handshake procedure, which
+     should be resumed later.  Call this function again, until it
+     returns 0; cf.  'gnutls_record_get_direction()' and
+     'gnutls_error_is_fatal()' .
+
+     If this function is called by a server after a rehandshake request
+     then 'GNUTLS_E_GOT_APPLICATION_DATA' or
+     'GNUTLS_E_WARNING_ALERT_RECEIVED' may be returned.  Note that these
+     are non fatal errors, only in the specific case of a rehandshake.
+     Their meaning is that the client rejected the rehandshake request
+     or in the case of 'GNUTLS_E_GOT_APPLICATION_DATA' it might also
+     mean that some data were pending.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.
+
+The handshake process doesn't ensure the verification of the peer's
+identity.  When certificates are in use, this can be done, either after
+the handshake is complete, or during the handshake if *note
+gnutls_certificate_set_verify_function:: has been used.  In both cases
+the *note gnutls_certificate_verify_peers2:: function can be used to
+verify the peer's certificate (see *note Certificate authentication::
+for more information).
+
+'INT *note gnutls_certificate_verify_peers2:: (gnutls_session_t SESSION, unsigned int * STATUS)'
+
+\1f
+File: gnutls.info,  Node: Data transfer and termination,  Next: Handling alerts,  Prev: TLS handshake,  Up: How to use GnuTLS in applications
+
+7.7 Data transfer and termination
+=================================
+
+Once the handshake is complete and peer's identity has been verified
+data can be exchanged.  The available functions resemble the POSIX
+'recv' and 'send' functions.  It is suggested to use *note
+gnutls_error_is_fatal:: to check whether the error codes returned by
+these functions are fatal for the protocol or can be ignored.
+
+ -- Function: ssize_t gnutls_record_send (gnutls_session_t SESSION,
+          const void * DATA, size_t DATA_SIZE)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     DATA: contains the data to send
+
+     DATA_SIZE: is the length of the data
+
+     This function has the similar semantics with 'send()' .  The only
+     difference is that it accepts a GnuTLS session, and uses different
+     error codes.  Note that if the send buffer is full, 'send()' will
+     block this function.  See the 'send()' documentation for full
+     information.  You can replace the default push function by using
+     'gnutls_transport_set_ptr2()' with a call to 'send()' with a
+     MSG_DONTWAIT flag if blocking is a problem.  If the EINTR is
+     returned by the internal push function (the default is 'send()' )
+     then 'GNUTLS_E_INTERRUPTED' will be returned.  If
+     'GNUTLS_E_INTERRUPTED' or 'GNUTLS_E_AGAIN' is returned, you must
+     call this function again, with the same parameters; alternatively
+     you could provide a 'NULL' pointer for data, and 0 for size.  cf.
+     'gnutls_record_get_direction()' .  The errno value EMSGSIZE maps to
+     'GNUTLS_E_LARGE_PACKET' .
+
+     *Returns:* The number of bytes sent, or a negative error code.  The
+     number of bytes sent might be less than 'data_size' .  The maximum
+     number of bytes this function can send in a single call depends on
+     the negotiated maximum record size.
+
+ -- Function: ssize_t gnutls_record_recv (gnutls_session_t SESSION, void
+          * DATA, size_t DATA_SIZE)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     DATA: the buffer that the data will be read into
+
+     DATA_SIZE: the number of requested bytes
+
+     This function has the similar semantics with 'recv()' .  The only
+     difference is that it accepts a GnuTLS session, and uses different
+     error codes.  In the special case that a server requests a
+     renegotiation, the client may receive an error code of
+     'GNUTLS_E_REHANDSHAKE' .  This message may be simply ignored,
+     replied with an alert 'GNUTLS_A_NO_RENEGOTIATION' , or replied with
+     a new handshake, depending on the client's will.  If 'EINTR' is
+     returned by the internal push function (the default is 'recv()' )
+     then 'GNUTLS_E_INTERRUPTED' will be returned.  If
+     'GNUTLS_E_INTERRUPTED' or 'GNUTLS_E_AGAIN' is returned, you must
+     call this function again to get the data.  See also
+     'gnutls_record_get_direction()' .  A server may also receive
+     'GNUTLS_E_REHANDSHAKE' when a client has initiated a handshake.  In
+     that case the server can only initiate a handshake or terminate the
+     connection.
+
+     *Returns:* The number of bytes received and zero on EOF (for stream
+     connections).  A negative error code is returned in case of an
+     error.  The number of bytes received might be less than the
+     requested 'data_size' .
+
+ -- Function: int gnutls_error_is_fatal (int ERROR)
+     ERROR: is a GnuTLS error code, a negative error code
+
+     If a GnuTLS function returns a negative error code you may feed
+     that value to this function to see if the error condition is fatal.
+     Note that you may also want to check the error code manually, since
+     some non-fatal errors to the protocol (such as a warning alert or a
+     rehandshake request) may be fatal for your program.
+
+     This function is only useful if you are dealing with errors from
+     the record layer or the handshake layer.
+
+     *Returns:* 1 if the error code is fatal, for positive 'error'
+     values, 0 is returned.  For unknown 'error' values, -1 is returned.
+
+Although, in the TLS protocol the receive function can be called at any
+time, when DTLS is used the GnuTLS receive functions must be called once
+a message is available for reading, even if no data are expected.  This
+is because in DTLS various (internal) actions may be required due to
+retransmission timers.  Moreover, an extended receive function is shown
+below, which allows the extraction of the message's sequence number.
+Due to the unreliable nature of the protocol, this field allows
+distinguishing out-of-order messages.
+
+ -- Function: ssize_t gnutls_record_recv_seq (gnutls_session_t SESSION,
+          void * DATA, size_t DATA_SIZE, unsigned char * SEQ)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     DATA: the buffer that the data will be read into
+
+     DATA_SIZE: the number of requested bytes
+
+     SEQ: is the packet's 64-bit sequence number.  Should have space for
+     8 bytes.
+
+     This function is the same as 'gnutls_record_recv()' , except that
+     it returns in addition to data, the sequence number of the data.
+     This is useful in DTLS where record packets might be received
+     out-of-order.  The returned 8-byte sequence number is an integer in
+     big-endian format and should be treated as a unique message
+     identification.
+
+     *Returns:* The number of bytes received and zero on EOF. A negative
+     error code is returned in case of an error.  The number of bytes
+     received might be less than 'data_size' .
+
+     *Since:* 3.0
+
+The *note gnutls_record_check_pending:: helper function is available to
+allow checking whether data are available to be read in a GnuTLS session
+buffers.  Note that this function complements but does not replace
+'select', i.e., *note gnutls_record_check_pending:: reports no data to
+be read, 'select' should be called to check for data in the network
+buffers.
+
+ -- Function: size_t gnutls_record_check_pending (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function checks if there are unread data in the gnutls
+     buffers.  If the return value is non-zero the next call to
+     'gnutls_record_recv()' is guarranteed not to block.
+
+     *Returns:* Returns the size of the data or zero.
+'INT *note gnutls_record_get_direction:: (gnutls_session_t SESSION)'
+
+Once a TLS or DTLS session is no longer needed, it is recommended to use
+*note gnutls_bye:: to terminate the session.  That way the peer is
+notified securely about the intention of termination, which allows
+distinguishing it from a malicious connection termination.  A session
+can be deinitialized with the *note gnutls_deinit:: function.
+
+ -- Function: int gnutls_bye (gnutls_session_t SESSION,
+          gnutls_close_request_t HOW)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     HOW: is an integer
+
+     Terminates the current TLS/SSL connection.  The connection should
+     have been initiated using 'gnutls_handshake()' .  'how' should be
+     one of 'GNUTLS_SHUT_RDWR' , 'GNUTLS_SHUT_WR' .
+
+     In case of 'GNUTLS_SHUT_RDWR' the TLS session gets terminated and
+     further receives and sends will be disallowed.  If the return value
+     is zero you may continue using the underlying transport layer.
+     'GNUTLS_SHUT_RDWR' sends an alert containing a close request and
+     waits for the peer to reply with the same message.
+
+     In case of 'GNUTLS_SHUT_WR' the TLS session gets terminated and
+     further sends will be disallowed.  In order to reuse the connection
+     you should wait for an EOF from the peer.  'GNUTLS_SHUT_WR' sends
+     an alert containing a close request.
+
+     Note that not all implementations will properly terminate a TLS
+     connection.  Some of them, usually for performance reasons, will
+     terminate only the underlying transport layer, and thus not
+     distinguishing between a malicious party prematurely terminating
+     the connection and normal termination.
+
+     This function may also return 'GNUTLS_E_AGAIN' or
+     'GNUTLS_E_INTERRUPTED' ; cf.  'gnutls_record_get_direction()' .
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code, see
+     function documentation for entire semantics.
+
+ -- Function: void gnutls_deinit (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function clears all buffers associated with the 'session' .
+     This function will also remove session data from the session
+     database if the session was terminated abnormally.
+
+\1f
+File: gnutls.info,  Node: Handling alerts,  Next: Priority Strings,  Prev: Data transfer and termination,  Up: How to use GnuTLS in applications
+
+7.8 Handling alerts
+===================
+
+During a TLS connection alert messages may be exchanged by the two
+peers.  Those messages may be fatal, meaning the connection must be
+terminated afterwards, or warning when something needs to be reported to
+the peer, but without interrupting the session.  The error codes
+'GNUTLS_E_WARNING_ALERT_RECEIVED' or 'GNUTLS_E_FATAL_ALERT_RECEIVED'
+signal those alerts when received, and may be returned by all GnuTLS
+functions that receive data from the peer, being *note
+gnutls_handshake:: and *note gnutls_record_recv::.
+
+If those error codes are received the alert and its level should be
+logged or reported to the peer using the functions below.
+
+ -- Function: gnutls_alert_description_t gnutls_alert_get
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function will return the last alert number received.  This
+     function should be called when 'GNUTLS_E_WARNING_ALERT_RECEIVED' or
+     'GNUTLS_E_FATAL_ALERT_RECEIVED' errors are returned by a gnutls
+     function.  The peer may send alerts if he encounters an error.  If
+     no alert has been received the returned value is undefined.
+
+     *Returns:* the last alert received, a 'gnutls_alert_description_t'
+     value.
+
+ -- Function: const char * gnutls_alert_get_name
+          (gnutls_alert_description_t ALERT)
+     ALERT: is an alert number.
+
+     This function will return a string that describes the given alert
+     number, or 'NULL' .  See 'gnutls_alert_get()' .
+
+     *Returns:* string corresponding to 'gnutls_alert_description_t'
+     value.
+
+The peer may also be warned or notified of a fatal issue by using one of
+the functions below.  All the available alerts are listed in *note The
+Alert Protocol::.
+
+ -- Function: int gnutls_alert_send (gnutls_session_t SESSION,
+          gnutls_alert_level_t LEVEL, gnutls_alert_description_t DESC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     LEVEL: is the level of the alert
+
+     DESC: is the alert description
+
+     This function will send an alert to the peer in order to inform him
+     of something important (eg.  his Certificate could not be
+     verified).  If the alert level is Fatal then the peer is expected
+     to close the connection, otherwise he may ignore the alert and
+     continue.
+
+     The error code of the underlying record send function will be
+     returned, so you may also receive 'GNUTLS_E_INTERRUPTED' or
+     'GNUTLS_E_AGAIN' as well.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+ -- Function: int gnutls_error_to_alert (int ERR, int * LEVEL)
+     ERR: is a negative integer
+
+     LEVEL: the alert level will be stored there
+
+     Get an alert depending on the error code returned by a gnutls
+     function.  All alerts sent by this function should be considered
+     fatal.  The only exception is when 'err' is 'GNUTLS_E_REHANDSHAKE'
+     , where a warning alert should be sent to the peer indicating that
+     no renegotiation will be performed.
+
+     If there is no mapping to a valid alert the alert to indicate
+     internal error is returned.
+
+     *Returns:* the alert code to use for a particular error code.
+
+\1f
+File: gnutls.info,  Node: Priority Strings,  Next: Advanced and other topics,  Prev: Handling alerts,  Up: How to use GnuTLS in applications
+
+7.9 Priority strings
+====================
+
+In order to specify cipher suite preferences on a TLS session there are
+priority functions that accept a string specifying the enabled for the
+handshake algorithms.  That string may contain a single initial keyword
+such as in *note Table 7.2: tab:prio-keywords. and may be followed by
+additional algorithm or special keywords.
+
+'INT *note gnutls_priority_set_direct:: (gnutls_session_t SESSION, const char * PRIORITIES, const char ** ERR_POS)'
+'INT *note gnutls_priority_set:: (gnutls_session_t SESSION, gnutls_priority_t PRIORITY)'
+
+Keyword        Description
+------------------------------------------------------------------
+PERFORMANCE    All the known to be secure ciphersuites are
+               enabled, limited to 128 bit ciphers and sorted
+               by terms of speed performance.  The message
+               authenticity security level is of 64 bits or
+               more.
+               
+NORMAL         Means all the known to be secure ciphersuites.
+               The ciphers are sorted by security margin,
+               although the 256-bit ciphers are included as a
+               fallback only.  The message authenticity
+               security level is of 64 bits or more.
+               
+SECURE128      Means all known to be secure ciphersuites that
+               offer a security level 128-bit or more and a
+               message authenticity security level of 80 bits
+               or more.
+               
+SECURE192      Means all the known to be secure ciphersuites
+               that offer a security level 192-bit or more and
+               a message authenticity security level of 128
+               bits or more.
+               
+SECURE256      Currently alias for SECURE192.
+               
+SUITEB128      Means all the NSA Suite B cryptography (RFC5430)
+               ciphersuites with an 128 bit security level.
+               
+SUITEB192      Means all the NSA Suite B cryptography (RFC5430)
+               ciphersuites with an 192 bit security level.
+               
+EXPORT         Means all ciphersuites are enabled, including
+               the low-security 40 bit ciphers.
+               
+NONE           Means nothing is enabled.  This disables even
+               protocols and compression methods.  It should be
+               followed by the algorithms to be enabled.
+               
+
+Table 7.2: Supported initial keywords.
+
+Unless the initial keyword is "NONE" the defaults (in preference order)
+are for TLS protocols TLS 1.2, TLS1.1, TLS1.0, SSL3.0; for compression
+NULL; for certificate types X.509.  In key exchange algorithms when in
+NORMAL or SECURE levels the perfect forward secrecy algorithms take
+precedence of the other protocols.  In all cases all the supported key
+exchange algorithms are enabled(1).
+
+Note that the SECURE levels distinguish between overall security level
+and message authenticity security level.  That is because the message
+authenticity security level requires the adversary to break the
+algorithms at real-time during the protocol run, whilst the overall
+security level refers to off-line adversaries (e.g.  adversaries
+breaking the ciphertext years after it was captured).
+
+The NONE keyword, if used, must followed by keywords specifying the
+algorithms and protocols to be enabled.  The other initial keywords may
+be followed by such keywords.  The order with which every algorithm or
+protocol is specified is significant.  Algorithms specified before
+others will take precedence.  The supported algorithms and protocols are
+shown in *note Table 7.3: tab:prio-algorithms.  To avoid collisions in
+order to specify a compression algorithm in the priority string you have
+to prefix it with "COMP-", protocol versions with "VERS-", signature
+algorithms with "SIGN-" and certificate types with "CTYPE-".  All other
+algorithms don't need a prefix.  Each specified keyword can be prefixed
+with any of the following characters.
+
+'!' or '-'
+     appended with an algorithm will remove this algorithm.
+"+"
+     appended with an algorithm will add this algorithm.
+
+Type           Keywords
+------------------------------------------------------------------
+Ciphers        AES-128-CBC, AES-256-CBC, AES-128-GCM,
+               CAMELLIA-128-CBC, CAMELLIA-256-CBC, ARCFOUR-128,
+               3DES-CBC ARCFOUR-40.  Catch all name is
+               CIPHER-ALL which will add all the algorithms
+               from NORMAL priority.
+               
+Key exchange   RSA, DHE-RSA, DHE-DSS, SRP, SRP-RSA, SRP-DSS,
+               PSK, DHE-PSK, ECDHE-RSA, ANON-ECDH, ANON-DH,
+               RSA-EXPORT. The Catch all name is KX-ALL which
+               will add all the algorithms from NORMAL
+               priority.
+               
+MAC            MD5, SHA1, SHA256, AEAD (used with GCM ciphers
+               only).  All algorithms from NORMAL priority can
+               be accessed with MAC-ALL.
+               
+Compression    COMP-NULL, COMP-DEFLATE. Catch all is COMP-ALL.
+algorithms     
+TLS versions   VERS-SSL3.0, VERS-TLS1.0, VERS-TLS1.1,
+               VERS-TLS1.2, VERS-DTLS1.0.  Catch all is
+               VERS-TLS-ALL.
+               
+Signature      SIGN-RSA-SHA1, SIGN-RSA-SHA224, SIGN-RSA-SHA256,
+algorithms     SIGN-RSA-SHA384, SIGN-RSA-SHA512, SIGN-DSA-SHA1,
+               SIGN-DSA-SHA224, SIGN-DSA-SHA256, SIGN-RSA-MD5.
+               Catch all is SIGN-ALL. This is only valid for
+               TLS 1.2 and later.
+               
+Elliptic       CURVE-SECP192R1, CURVE-SECP224R1,
+curves         CURVE-SECP256R1, CURVE-SECP384R1,
+               CURVE-SECP521R1.  Catch all is CURVE-ALL.
+               
+
+Table 7.3: The supported algorithm keywords in priority strings.
+
+Note that the DHE key exchange methods are generally slower(2) than
+their elliptic curves counterpart (ECDHE). Moreover the plain
+Diffie-Hellman key exchange requires parameters to be generated and
+associated with a credentials structure by the server (see *note
+Parameter generation::).
+
+The available special keywords are shown in *note Table 7.4:
+tab:prio-special.
+
+Keyword                          Description
+                                 
+------------------------------------------------------------------
+%COMPAT                          will enable compatibility
+                                 mode.  It might mean that
+                                 violations of the protocols
+                                 are allowed as long as maximum
+                                 compatibility with problematic
+                                 clients and servers is
+                                 achieved.  More specifically
+                                 this string would disable TLS
+                                 record random padding and
+                                 tolerate packets over the
+                                 maximum allowed TLS record.
+                                 
+%NO_EXTENSIONS                   will prevent the sending of
+                                 any TLS extensions in client
+                                 side.  Note that TLS 1.2
+                                 requires extensions to be
+                                 used, as well as safe
+                                 renegotiation thus this option
+                                 must be used with care.
+                                 
+%STATELESS_COMPRESSION           will disable keeping state
+                                 across records when
+                                 compressing.  This may help to
+                                 mitigate attacks when
+                                 compression is used but an
+                                 attacker is in control of
+                                 input data.
+                                 
+%SERVER_PRECEDENCE               The ciphersuite will be
+                                 selected according to server
+                                 priorities and not the
+                                 client's.
+                                 
+%DISABLE_SAFE_RENEGOTIATION      will disable safe
+                                 renegotiation completely.  Do
+                                 not use unless you know what
+                                 you are doing.  Testing
+                                 purposes only.
+                                 
+%UNSAFE_RENEGOTIATION            will allow handshakes and
+                                 re-handshakes without the safe
+                                 renegotiation extension.  Note
+                                 that for clients this mode is
+                                 insecure (you may be under
+                                 attack), and for servers it
+                                 will allow insecure clients to
+                                 connect (which could be fooled
+                                 by an attacker).  Do not use
+                                 unless you know what you are
+                                 doing and want maximum
+                                 compatibility.
+                                 
+%PARTIAL_RENEGOTIATION           will allow initial handshakes
+                                 to proceed, but not
+                                 re-handshakes.  This leaves
+                                 the client vulnerable to
+                                 attack, and servers will be
+                                 compatible with non-upgraded
+                                 clients for initial
+                                 handshakes.  This is currently
+                                 the default for clients and
+                                 servers, for compatibility
+                                 reasons.
+                                 
+%SAFE_RENEGOTIATION              will enforce safe
+                                 renegotiation.  Clients and
+                                 servers will refuse to talk to
+                                 an insecure peer.  Currently
+                                 this causes interoperability
+                                 problems, but is required for
+                                 full protection.
+                                 
+%SSL3_RECORD_VERSION             will use SSL3.0 record version
+                                 in client hello.  This is the
+                                 default.
+                                 
+%LATEST_RECORD_VERSION           will use the latest TLS
+                                 version record version in
+                                 client hello.
+                                 
+%VERIFY_ALLOW_SIGN_RSA_MD5       will allow RSA-MD5 signatures
+                                 in certificate chains.
+                                 
+%VERIFY_ALLOW_X509_V1_CA_CRT     will allow V1 CAs in chains.
+                                 
+
+Table 7.4: Special priority string keywords.
+
+Finally the ciphersuites enabled by any priority string can be listed
+using the 'gnutls-cli' application (see *note gnutls-cli Invocation::),
+or by using the priority functions as in *note Listing the ciphersuites
+in a priority string::.
+
+Example priority strings are:
+     The default priority without the HMAC-MD5:
+         "NORMAL:-MD5"
+
+     Specifying RSA with AES-128-CBC:
+         "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
+
+     Specifying the defaults except ARCFOUR-128:
+         "NORMAL:-ARCFOUR-128"
+
+     Enabling the 128-bit secure ciphers, while disabling SSL 3.0 and
+     enabling compression:
+         "SECURE128:-VERS-SSL3.0:+COMP-DEFLATE"
+
+   ---------- Footnotes ----------
+
+   (1) Except for the RSA-EXPORT which is only enabled in EXPORT level.
+
+   (2) It depends on the group used.  Primes with lesser bits are always
+faster, but also easier to break.  See *note Selecting cryptographic key
+sizes:: for the acceptable security levels.
+
+\1f
+File: gnutls.info,  Node: Advanced and other topics,  Next: Using the cryptographic library,  Prev: Priority Strings,  Up: How to use GnuTLS in applications
+
+7.10 Advanced and other topics
+==============================
+
+* Menu:
+
+* Session resumption::
+* Parameter generation::
+* Keying Material Exporters::
+* Channel Bindings::
+* Interoperability::
+* Compatibility with the OpenSSL library::
+
+\1f
+File: gnutls.info,  Node: Session resumption,  Next: Parameter generation,  Up: Advanced and other topics
+
+7.10.1 Session resumption
+-------------------------
+
+Client side
+...........
+
+To reduce time and roundtrips spent in a handshake the client can
+request session resumption from a server that previously shared a
+session with.  For that the client has to retrieve and store the session
+parameters.  Before establishing a new session to the same server the
+parameters must be re-associated with the GnuTLS session using *note
+gnutls_session_set_data::.
+
+'INT *note gnutls_session_get_data:: (gnutls_session_t SESSION, void * SESSION_DATA, size_t * SESSION_DATA_SIZE)'
+'INT *note gnutls_session_get_id:: (gnutls_session_t SESSION, void * SESSION_ID, size_t * SESSION_ID_SIZE)'
+'INT *note gnutls_session_set_data:: (gnutls_session_t SESSION, const void * SESSION_DATA, size_t SESSION_DATA_SIZE)'
+
+Keep in mind that sessions will be expired after some time, depending on
+the server, and a server may choose not to resume a session even when
+requested to.  The expiration is to prevent temporal session keys from
+becoming long-term keys.  Also note that as a client you must enable,
+using the priority functions, at least the algorithms used in the last
+session.
+
+It is highly recommended for clients to enable the session ticket
+extension using *note gnutls_session_ticket_enable_client:: in order to
+allow resumption with servers that do not store any state.
+
+'INT *note gnutls_session_ticket_enable_client:: (gnutls_session_t SESSION)'
+
+ -- Function: int gnutls_session_is_resumed (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Check whether session is resumed or not.
+
+     *Returns:* non zero if this session is resumed, or a zero if this
+     is a new session.
+
+Server side
+...........
+
+In order to support resumption a server can store the session security
+parameters in a local database or by using session tickets (see *note
+Session tickets::) to delegate storage to the client.  Because session
+tickets might not be supported by all clients, servers could combine the
+two methods.
+
+A storing server needs to specify callback functions to store, retrieve
+and delete session data.  These can be registered with the functions
+below.  The stored sessions in the database can be checked using *note
+gnutls_db_check_entry:: for expiration.
+
+'VOID *note gnutls_db_set_retrieve_function:: (gnutls_session_t SESSION, gnutls_db_retr_func RETR_FUNC)'
+'VOID *note gnutls_db_set_store_function:: (gnutls_session_t SESSION, gnutls_db_store_func STORE_FUNC)'
+'VOID *note gnutls_db_set_ptr:: (gnutls_session_t SESSION, void * PTR)'
+'VOID *note gnutls_db_set_remove_function:: (gnutls_session_t SESSION, gnutls_db_remove_func REM_FUNC)'
+'INT *note gnutls_db_check_entry:: (gnutls_session_t SESSION, gnutls_datum_t SESSION_ENTRY)'
+
+A server utilizing tickets should generate ticket encryption and
+authentication keys using *note gnutls_session_ticket_key_generate::.
+Those keys should be associated with the GnuTLS session using *note
+gnutls_session_ticket_enable_server::.
+
+ -- Function: int gnutls_session_ticket_enable_server (gnutls_session_t
+          SESSION, const gnutls_datum_t * KEY)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     KEY: key to encrypt session parameters.
+
+     Request that the server should attempt session resumption using
+     SessionTicket.  'key' must be initialized with
+     'gnutls_session_ticket_key_generate()' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+     *Since:* 2.10.0
+
+ -- Function: int gnutls_session_ticket_key_generate (gnutls_datum_t *
+          KEY)
+     KEY: is a pointer to a 'gnutls_datum_t' which will contain a newly
+     created key.
+
+     Generate a random key to encrypt security parameters within
+     SessionTicket.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+     *Since:* 2.10.0
+
+ -- Function: int gnutls_session_resumption_requested (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Check whether the client has asked for session resumption.  This
+     function is valid only on server side.
+
+     *Returns:* non zero if session resumption was asked, or a zero if
+     not.
+
+A server enabling both session tickets and a storage for session data
+would use session tickets when clients support it and the storage
+otherwise.
+
+\1f
+File: gnutls.info,  Node: Parameter generation,  Next: Keying Material Exporters,  Prev: Session resumption,  Up: Advanced and other topics
+
+7.10.2 Parameter generation
+---------------------------
+
+Several TLS ciphersuites require additional parameters that need to be
+generated or provided by the application.  The Diffie-Hellman based
+ciphersuites (ANON-DH or DHE), require the group parameters to be
+provided.  Those can either be be generated on the fly using *note
+gnutls_dh_params_generate2:: or imported from pregenerated data using
+*note gnutls_dh_params_import_pkcs3::.  The parameters can be used in a
+TLS session by calling *note gnutls_certificate_set_dh_params:: or *note
+gnutls_anon_set_server_dh_params:: for anonymous sessions.
+
+'INT *note gnutls_dh_params_generate2:: (gnutls_dh_params_t PARAMS, unsigned int BITS)'
+'INT *note gnutls_dh_params_import_pkcs3:: (gnutls_dh_params_t PARAMS, const gnutls_datum_t * PKCS3_PARAMS, gnutls_x509_crt_fmt_t FORMAT)'
+'VOID *note gnutls_certificate_set_dh_params:: (gnutls_certificate_credentials_t RES, gnutls_dh_params_t DH_PARAMS)'
+'VOID *note gnutls_anon_set_server_dh_params:: (gnutls_anon_server_credentials_t RES, gnutls_dh_params_t DH_PARAMS)'
+
+Due to the time-consuming calculations required for the generation of
+Diffie-Hellman parameters we suggest against performing generation of
+them within an application.  The 'certtool' tool can be used to generate
+or export known safe values that can be stored in code or in a
+configuration file to provide the ability to replace.  We also recommend
+the usage of *note gnutls_sec_param_to_pk_bits:: (see *note Selecting
+cryptographic key sizes::) to determine the bit size of the generated
+parameters.
+
+Note that the information stored in the generated PKCS #3 structure
+changed with GnuTLS 3.0.9.  Since that version the 'privateValueLength'
+member of the structure is set, allowing the server utilizing the
+parameters to use keys of the size of the security parameter.  This
+provides better performance in key exchange.
+
+The ciphersuites that involve the RSA-EXPORT key exchange require
+additional parameters.  Those ciphersuites are rarely used today because
+they are by design insecure, thus if you have no requirement for them,
+the rest of this section can be skipped.  The RSA-EXPORT key exchange
+requires 512-bit RSA keys to be generated.  It is recommended those
+parameters to be refreshed (regenerated) in short intervals.  The
+following functions can be used for these parameters.
+
+'INT *note gnutls_rsa_params_generate2:: (gnutls_rsa_params_t PARAMS, unsigned int BITS)'
+'VOID *note gnutls_certificate_set_rsa_export_params:: (gnutls_certificate_credentials_t RES, gnutls_rsa_params_t RSA_PARAMS)'
+'INT *note gnutls_rsa_params_import_pkcs1:: (gnutls_rsa_params_t PARAMS, const gnutls_datum_t * PKCS1_PARAMS, gnutls_x509_crt_fmt_t FORMAT)'
+'INT *note gnutls_rsa_params_export_pkcs1:: (gnutls_rsa_params_t PARAMS, gnutls_x509_crt_fmt_t FORMAT, unsigned char * PARAMS_DATA, size_t * PARAMS_DATA_SIZE)'
+
+To allow renewal of the parameters within an application without
+accessing the credentials, which are a shared structure, an alternative
+interface is available using a callback function.
+
+ -- Function: void gnutls_certificate_set_params_function
+          (gnutls_certificate_credentials_t RES, gnutls_params_function
+          * FUNC)
+     RES: is a gnutls_certificate_credentials_t structure
+
+     FUNC: is the function to be called
+
+     This function will set a callback in order for the server to get
+     the Diffie-Hellman or RSA parameters for certificate
+     authentication.  The callback should return 'GNUTLS_E_SUCCESS' (0)
+     on success.
+
+\1f
+File: gnutls.info,  Node: Keying Material Exporters,  Next: Channel Bindings,  Prev: Parameter generation,  Up: Advanced and other topics
+
+7.10.3 Keying material exporters
+--------------------------------
+
+The TLS PRF can be used by other protocols to derive keys based on the
+TLS master secret.  The API to use is *note gnutls_prf::.  The function
+needs to be provided with the label in the parameter 'label', and the
+extra data to mix in the 'extra' parameter.  Depending on whether you
+want to mix in the client or server random data first, you can set the
+'server_random_first' parameter.
+
+For example, after establishing a TLS session using *note
+gnutls_handshake::, you can invoke the TLS PRF with this call:
+
+     #define MYLABEL "EXPORTER-FOO"
+     #define MYCONTEXT "some context data"
+     char out[32];
+     rc = gnutls_prf (session, strlen (MYLABEL), MYLABEL, 0,
+                      strlen (MYCONTEXT), MYCONTEXT, 32, out);
+
+If you don't want to mix in the client/server random, there is a
+low-level TLS PRF interface called *note gnutls_prf_raw::.
+
+\1f
+File: gnutls.info,  Node: Channel Bindings,  Next: Interoperability,  Prev: Keying Material Exporters,  Up: Advanced and other topics
+
+7.10.4 Channel bindings
+-----------------------
+
+In user authentication protocols (e.g., EAP or SASL mechanisms) it is
+useful to have a unique string that identifies the secure channel that
+is used, to bind together the user authentication with the secure
+channel.  This can protect against man-in-the-middle attacks in some
+situations.  That unique string is called a "channel binding".  For
+background and discussion see [_RFC5056_].
+
+In GnuTLS you can extract a channel binding using the *note
+gnutls_session_channel_binding:: function.  Currently only the type
+'GNUTLS_CB_TLS_UNIQUE' is supported, which corresponds to the
+'tls-unique' channel binding for TLS defined in [_RFC5929_].
+
+The following example describes how to print the channel binding data.
+Note that it must be run after a successful TLS handshake.
+
+     {
+       gnutls_datum_t cb;
+       int rc;
+
+       rc = gnutls_session_channel_binding (session,
+                                            GNUTLS_CB_TLS_UNIQUE,
+                                            &cb);
+       if (rc)
+         fprintf (stderr, "Channel binding error: %s\n",
+                  gnutls_strerror (rc));
+       else
+         {
+           size_t i;
+           printf ("- Channel binding 'tls-unique': ");
+           for (i = 0; i < cb.size; i++)
+             printf ("%02x", cb.data[i]);
+           printf ("\n");
+         }
+     }
+
+\1f
+File: gnutls.info,  Node: Interoperability,  Next: Compatibility with the OpenSSL library,  Prev: Channel Bindings,  Up: Advanced and other topics
+
+7.10.5 Interoperability
+-----------------------
+
+The TLS protocols support many ciphersuites, extensions and version
+numbers.  As a result, few implementations are not able to properly
+interoperate once faced with extensions or version protocols they do not
+support and understand.  The TLS protocol allows for a graceful
+downgrade to the commonly supported options, but practice shows it is
+not always implemented correctly.
+
+Because there is no way to achieve maximum interoperability with broken
+peers without sacrificing security, GnuTLS ignores such peers by
+default.  This might not be acceptable in cases where maximum
+compatibility is required.  Thus we allow enabling compatibility with
+broken peers using priority strings (see *note Priority Strings::).  A
+conservative priority string that would disable certain TLS protocol
+options that are known to cause compatibility problems, is shown below.
+NORMAL:%COMPAT
+
+For broken peers that do not tolerate TLS version numbers over TLS 1.0
+another priority string is:
+NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT
+This priority string will in addition to above, only enable SSL 3.0 and
+TLS 1.0 as protocols.  Note however that there are known attacks against
+those protocol versions, especially over the CBC-mode ciphersuites.  To
+mitigate them another priority string that only allows the stream cipher
+ARCFOUR is below.
+NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:-CIPHER-ALL:+ARCFOUR-128:%COMPAT
+
+\1f
+File: gnutls.info,  Node: Compatibility with the OpenSSL library,  Prev: Interoperability,  Up: Advanced and other topics
+
+7.10.6 Compatibility with the OpenSSL library
+---------------------------------------------
+
+To ease GnuTLS' integration with existing applications, a compatibility
+layer with the OpenSSL library is included in the 'gnutls-openssl'
+library.  This compatibility layer is not complete and it is not
+intended to completely re-implement the OpenSSL API with GnuTLS.  It
+only provides limited source-level compatibility.
+
+The prototypes for the compatibility functions are in the
+'gnutls/openssl.h' header file.  The limitations imposed by the
+compatibility layer include:
+
+   * Error handling is not thread safe.
+
+\1f
+File: gnutls.info,  Node: Using the cryptographic library,  Next: Selecting cryptographic key sizes,  Prev: Advanced and other topics,  Up: How to use GnuTLS in applications
+
+7.11 Using the cryptographic library
+====================================
+
+GnuTLS is not a low-level cryptographic library, i.e., it does not
+provide access to basic cryptographic primitives.  However it abstracts
+the internal cryptographic back-end (see *note Cryptographic Backend::),
+providing symmetric crypto, hash and HMAC algorithms, as well access to
+the random number generation.
+
+* Menu:
+
+* Symmetric cryptography::
+* Hash and HMAC functions::
+* Random number generation::
+
+\1f
+File: gnutls.info,  Node: Symmetric cryptography,  Next: Hash and HMAC functions,  Up: Using the cryptographic library
+
+7.11.1 Symmetric cryptography
+-----------------------------
+
+The available functions to access symmetric crypto algorithms operations
+are shown below.  The supported algorithms are the algorithms required
+by the TLS protocol.  They are listed in *note Table 3.1: tab:ciphers.
+
+'INT *note gnutls_cipher_init:: (gnutls_cipher_hd_t * HANDLE, gnutls_cipher_algorithm_t CIPHER, const gnutls_datum_t * KEY, const gnutls_datum_t * IV)'
+'INT *note gnutls_cipher_encrypt2:: (gnutls_cipher_hd_t HANDLE, const void * TEXT, size_t TEXTLEN, void * CIPHERTEXT, size_t CIPHERTEXTLEN)'
+'INT *note gnutls_cipher_decrypt2:: (gnutls_cipher_hd_t HANDLE, const void * CIPHERTEXT, size_t CIPHERTEXTLEN, void * TEXT, size_t TEXTLEN)'
+'VOID *note gnutls_cipher_set_iv:: (gnutls_cipher_hd_t HANDLE, void * IV, size_t IVLEN)'
+'VOID *note gnutls_cipher_deinit:: (gnutls_cipher_hd_t HANDLE)'
+
+In order to support authenticated encryption with associated data (AEAD)
+algorithms the following functions are provided to set the associated
+data and retrieve the authentication tag.
+
+'INT *note gnutls_cipher_add_auth:: (gnutls_cipher_hd_t HANDLE, const void * TEXT, size_t TEXT_SIZE)'
+'INT *note gnutls_cipher_tag:: (gnutls_cipher_hd_t HANDLE, void * TAG, size_t TAG_SIZE)'
+
+\1f
+File: gnutls.info,  Node: Hash and HMAC functions,  Next: Random number generation,  Prev: Symmetric cryptography,  Up: Using the cryptographic library
+
+7.11.2 Hash and HMAC functions
+------------------------------
+
+The available operations to access hash functions and hash-MAC (HMAC)
+algorithms are shown below.  HMAC algorithms provided keyed hash
+functionality.  They supported HMAC algorithms are listed in *note Table
+3.2: tab:macs.
+
+'INT *note gnutls_hmac_init:: (gnutls_hmac_hd_t * DIG, gnutls_mac_algorithm_t ALGORITHM, const void * KEY, size_t KEYLEN)'
+'INT *note gnutls_hmac:: (gnutls_hmac_hd_t HANDLE, const void * TEXT, size_t TEXTLEN)'
+'VOID *note gnutls_hmac_output:: (gnutls_hmac_hd_t HANDLE, void * DIGEST)'
+'VOID *note gnutls_hmac_deinit:: (gnutls_hmac_hd_t HANDLE, void * DIGEST)'
+'INT *note gnutls_hmac_get_len:: (gnutls_mac_algorithm_t ALGORITHM)'
+'INT *note gnutls_hmac_fast:: (gnutls_mac_algorithm_t ALGORITHM, const void * KEY, size_t KEYLEN, const void * TEXT, size_t TEXTLEN, void * DIGEST)'
+
+The available functions to access hash functions are shown below.  The
+supported hash functions are the same as the HMAC algorithms.
+
+'INT *note gnutls_hash_init:: (gnutls_hash_hd_t * DIG, gnutls_digest_algorithm_t ALGORITHM)'
+'INT *note gnutls_hash:: (gnutls_hash_hd_t HANDLE, const void * TEXT, size_t TEXTLEN)'
+'VOID *note gnutls_hash_output:: (gnutls_hash_hd_t HANDLE, void * DIGEST)'
+'VOID *note gnutls_hash_deinit:: (gnutls_hash_hd_t HANDLE, void * DIGEST)'
+'INT *note gnutls_hash_get_len:: (gnutls_digest_algorithm_t ALGORITHM)'
+'INT *note gnutls_hash_fast:: (gnutls_digest_algorithm_t ALGORITHM, const void * TEXT, size_t TEXTLEN, void * DIGEST)'
+
+\1f
+File: gnutls.info,  Node: Random number generation,  Prev: Hash and HMAC functions,  Up: Using the cryptographic library
+
+7.11.3 Random number generation
+-------------------------------
+
+Access to the random number generator is provided using the *note
+gnutls_rnd:: function.  It allows obtaining random data of various
+levels.
+
+'GNUTLS_RND_NONCE'
+     Non-predictable random number.  Fatal in parts of session if
+     broken, i.e., vulnerable to statistical analysis.
+'GNUTLS_RND_RANDOM'
+     Pseudo-random cryptographic random number.  Fatal in session if
+     broken.
+'GNUTLS_RND_KEY'
+     Fatal in many sessions if broken.
+
+Figure 7.2: The random number levels.
+
+ -- Function: int gnutls_rnd (gnutls_rnd_level_t LEVEL, void * DATA,
+          size_t LEN)
+     LEVEL: a security level
+
+     DATA: place to store random bytes
+
+     LEN: The requested size
+
+     This function will generate random data and store it to output
+     buffer.
+
+     *Returns:* Zero or a negative error code on error.
+
+     *Since:* 2.12.0
+
+\1f
+File: gnutls.info,  Node: Selecting cryptographic key sizes,  Prev: Using the cryptographic library,  Up: How to use GnuTLS in applications
+
+7.12 Selecting cryptographic key sizes
+======================================
+
+Because many algorithms are involved in TLS, it is not easy to set a
+consistent security level.  For this reason in *note Table 7.5:
+tab:key-sizes. we present some correspondence between key sizes of
+symmetric algorithms and public key algorithms based on [_ECRYPT_].
+Those can be used to generate certificates with appropriate key sizes as
+well as select parameters for Diffie-Hellman and SRP authentication.
+
+SecurityRSA, DH   ECC     Security       Description
+bits    and SRP   key     parameter      
+        parameter size
+        size
+-----------------------------------------------------------------
+80      1248      160     'LOW'          Very short term
+                                         protection against
+                                         agencies
+                                         
+96      1776      192     'LEGACY'       Legacy standard level
+                                         
+112     2432      224     'NORMAL'       Medium-term
+                                         protection
+                                         
+128     3248      256     'HIGH'         Long term protection
+                                         
+256     15424     512     'ULTRA'        Foreseeable future
+                                         
+
+Table 7.5: Key sizes and security parameters.
+
+The first column provides a security parameter in a number of bits.
+This gives an indication of the number of combinations to be tried by an
+adversary to brute force a key.  For example to test all possible keys
+in a 112 bit security parameter 2^{112} combinations have to be tried.
+For today's technology this is infeasible.  The next two columns
+correlate the security parameter with actual bit sizes of parameters for
+DH, RSA, SRP and ECC algorithms.  A mapping to 'gnutls_sec_param_t'
+value is given for each security parameter, on the next column, and
+finally a brief description of the level.
+
+Note, however, that the values suggested here are nothing more than an
+educated guess that is valid today.  There are no guarantees that an
+algorithm will remain unbreakable or that these values will remain
+constant in time.  There could be scientific breakthroughs that cannot
+be predicted or total failure of the current public key systems by
+quantum computers.  On the other hand though the cryptosystems used in
+TLS are selected in a conservative way and such catastrophic
+breakthroughs or failures are believed to be unlikely.  The NIST
+publication SP 800-57 [_NISTSP80057_] contains a similar table.
+
+When using GnuTLS and a decision on bit sizes for a public key algorithm
+is required, use of the following functions is recommended:
+
+ -- Function: unsigned int gnutls_sec_param_to_pk_bits
+          (gnutls_pk_algorithm_t ALGO, gnutls_sec_param_t PARAM)
+     ALGO: is a public key algorithm
+
+     PARAM: is a security parameter
+
+     When generating private and public key pairs a difficult question
+     is which size of "bits" the modulus will be in RSA and the group
+     size in DSA. The easy answer is 1024, which is also wrong.  This
+     function will convert a human understandable security parameter to
+     an appropriate size for the specific algorithm.
+
+     *Returns:* The number of bits, or (0).
+
+     *Since:* 2.12.0
+
+ -- Function: gnutls_sec_param_t gnutls_pk_bits_to_sec_param
+          (gnutls_pk_algorithm_t ALGO, unsigned int BITS)
+     ALGO: is a public key algorithm
+
+     BITS: is the number of bits
+
+     This is the inverse of 'gnutls_sec_param_to_pk_bits()' .  Given an
+     algorithm and the number of bits, it will return the security
+     parameter.  This is a rough indication.
+
+     *Returns:* The security parameter.
+
+     *Since:* 2.12.0
+
+Those functions will convert a human understandable security parameter
+of 'gnutls_sec_param_t' type, to a number of bits suitable for a public
+key algorithm.
+
+The following functions will set the minimum acceptable group size for
+Diffie-Hellman and SRP authentication.
+'VOID *note gnutls_dh_set_prime_bits:: (gnutls_session_t SESSION, unsigned int BITS)'
+'VOID *note gnutls_srp_set_prime_bits:: (gnutls_session_t SESSION, unsigned int BITS)'
+
+\1f
+File: gnutls.info,  Node: GnuTLS application examples,  Next: Other included programs,  Prev: How to use GnuTLS in applications,  Up: Top
+
+8 GnuTLS application examples
+*****************************
+
+In this chapter several examples of real-world use cases are listed.
+The examples are simplified to promote readability and contain little or
+no error checking.
+
+* Menu:
+
+* Client examples::
+* Server examples::
+* OCSP example::
+* Miscellaneous examples::
+
+\1f
+File: gnutls.info,  Node: Client examples,  Next: Server examples,  Up: GnuTLS application examples
+
+8.1 Client examples
+===================
+
+This section contains examples of TLS and SSL clients, using GnuTLS.
+Note that some of the examples require functions implemented by another
+example.
+
+* Menu:
+
+* Simple client example with X.509 certificate support::
+* Simple client example with SSH-style certificate verification::
+* Simple client example with anonymous authentication::
+* Simple Datagram TLS client example::
+* Obtaining session information::
+* Using a callback to select the certificate to use::
+* Verifying a certificate::
+* Client using a smart card with TLS::
+* Client with Resume capability example::
+* Simple client example with SRP authentication::
+* Simple client example in C++::
+* Helper functions for TCP connections::
+* Helper functions for UDP connections::
+
+\1f
+File: gnutls.info,  Node: Simple client example with X.509 certificate support,  Next: Simple client example with SSH-style certificate verification,  Up: Client examples
+
+8.1.1 Simple client example with X.509 certificate support
+----------------------------------------------------------
+
+Let's assume now that we want to create a TCP client which communicates
+with servers that use X.509 or OpenPGP certificate authentication.  The
+following client is a very simple TLS client, which uses the high level
+verification functions for certificates, but does not support session
+resumption.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+#include "examples.h"
+
+/* A very basic TLS client, with X.509 authentication and server certificate
+ * verification. Note that error checking for missing files etc. is missing
+ * for simplicity.
+ */
+
+#define MAX_BUF 1024
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+#define MSG "GET / HTTP/1.0\r\n\r\n"
+
+extern int tcp_connect (void);
+extern void tcp_close (int sd);
+static int _verify_certificate_callback (gnutls_session_t session);
+
+int main (void)
+{
+  int ret, sd, ii;
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  const char *err;
+  gnutls_certificate_credentials_t xcred;
+
+  gnutls_global_init ();
+
+  /* X509 stuff */
+  gnutls_certificate_allocate_credentials (&xcred);
+
+  /* sets the trusted cas file
+   */
+  /* gnutls_certificate_set_x509_system_trust(xcred); */
+  gnutls_certificate_set_x509_trust_file (xcred, CAFILE, GNUTLS_X509_FMT_PEM);
+  gnutls_certificate_set_verify_function (xcred, _verify_certificate_callback);
+
+  /* If client holds a certificate it can be set using the following:
+   *
+     gnutls_certificate_set_x509_key_file (xcred,
+                                           "cert.pem", "key.pem",
+                                           GNUTLS_X509_FMT_PEM);
+   */
+
+  /* Initialize TLS session
+   */
+  gnutls_init (&session, GNUTLS_CLIENT);
+
+  gnutls_session_set_ptr (session, (void *) "my_host_name");
+  gnutls_server_name_set (session, GNUTLS_NAME_DNS, "my_host_name",
+                          strlen("my_host_name"));
+
+  /* Use default priorities */
+  ret = gnutls_priority_set_direct (session, "NORMAL", &err);
+  if (ret < 0)
+    {
+      if (ret == GNUTLS_E_INVALID_REQUEST)
+        {
+          fprintf (stderr, "Syntax error at: %s\n", err);
+        }
+      exit (1);
+    }
+
+  /* put the x509 credentials to the current session
+   */
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred);
+
+  /* connect to the peer
+   */
+  sd = tcp_connect ();
+
+  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+  /* Perform the TLS handshake
+   */
+  do
+    {
+      ret = gnutls_handshake (session);
+    }
+  while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Handshake failed\n");
+      gnutls_perror (ret);
+      goto end;
+    }
+  else
+    {
+      printf ("- Handshake was completed\n");
+    }
+
+  gnutls_record_send (session, MSG, strlen (MSG));
+
+  ret = gnutls_record_recv (session, buffer, MAX_BUF);
+  if (ret == 0)
+    {
+      printf ("- Peer has closed the TLS connection\n");
+      goto end;
+    }
+  else if (ret < 0)
+    {
+      fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
+      goto end;
+    }
+
+  printf ("- Received %d bytes: ", ret);
+  for (ii = 0; ii < ret; ii++)
+    {
+      fputc (buffer[ii], stdout);
+    }
+  fputs ("\n", stdout);
+
+  gnutls_bye (session, GNUTLS_SHUT_RDWR);
+
+end:
+
+  tcp_close (sd);
+
+  gnutls_deinit (session);
+
+  gnutls_certificate_free_credentials (xcred);
+
+  gnutls_global_deinit ();
+
+  return 0;
+}
+
+/* This function will verify the peer's certificate, and check
+ * if the hostname matches, as well as the activation, expiration dates.
+ */
+static int
+_verify_certificate_callback (gnutls_session_t session)
+{
+  unsigned int status;
+  const gnutls_datum_t *cert_list;
+  unsigned int cert_list_size;
+  int ret;
+  gnutls_x509_crt_t cert;
+  const char *hostname;
+
+  /* read hostname */
+  hostname = gnutls_session_get_ptr (session);
+
+  /* This verification function uses the trusted CAs in the credentials
+   * structure. So you must have installed one or more CA certificates.
+   */
+  ret = gnutls_certificate_verify_peers2 (session, &status);
+  if (ret < 0)
+    {
+      printf ("Error\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  if (status & GNUTLS_CERT_SIGNER_NOT_FOUND)
+    printf ("The certificate hasn't got a known issuer.\n");
+
+  if (status & GNUTLS_CERT_REVOKED)
+    printf ("The certificate has been revoked.\n");
+
+  if (status & GNUTLS_CERT_EXPIRED)
+    printf ("The certificate has expired\n");
+
+  if (status & GNUTLS_CERT_NOT_ACTIVATED)
+    printf ("The certificate is not yet activated\n");
+
+  if (status & GNUTLS_CERT_INVALID)
+    {
+      printf ("The certificate is not trusted.\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  /* Up to here the process is the same for X.509 certificates and
+   * OpenPGP keys. From now on X.509 certificates are assumed. This can
+   * be easily extended to work with openpgp keys as well.
+   */
+  if (gnutls_certificate_type_get (session) != GNUTLS_CRT_X509)
+    return GNUTLS_E_CERTIFICATE_ERROR;
+
+  if (gnutls_x509_crt_init (&cert) < 0)
+    {
+      printf ("error in initialization\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  cert_list = gnutls_certificate_get_peers (session, &cert_list_size);
+  if (cert_list == NULL)
+    {
+      printf ("No certificate was found!\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  if (gnutls_x509_crt_import (cert, &cert_list[0], GNUTLS_X509_FMT_DER) < 0)
+    {
+      printf ("error parsing certificate\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+
+  if (!gnutls_x509_crt_check_hostname (cert, hostname))
+    {
+      printf ("The certificate's owner does not match hostname '%s'\n",
+              hostname);
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  gnutls_x509_crt_deinit (cert);
+
+  /* notify gnutls to continue handshake normally */
+  return 0;
+}
+
+
+\1f
+File: gnutls.info,  Node: Simple client example with SSH-style certificate verification,  Next: Simple client example with anonymous authentication,  Prev: Simple client example with X.509 certificate support,  Up: Client examples
+
+8.1.2 Simple client example with SSH-style certificate verification
+-------------------------------------------------------------------
+
+This is an alternative verification function that will use the X.509
+certificate authorities for verification, but also assume an trust on
+first use (SSH-like) authentication system.  That is the user is
+prompted on unknown public keys and known public keys are considered
+trusted.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+#include "examples.h"
+
+/* This function will verify the peer's certificate, check
+ * if the hostname matches. In addition it will perform an
+ * SSH-style authentication, where ultimately trusted keys
+ * are only the keys that have been seen before.
+ */
+int
+_ssh_verify_certificate_callback (gnutls_session_t session)
+{
+  unsigned int status;
+  const gnutls_datum_t *cert_list;
+  unsigned int cert_list_size;
+  int ret;
+  gnutls_x509_crt_t cert;
+  const char *hostname;
+
+  /* read hostname */
+  hostname = gnutls_session_get_ptr (session);
+
+  /* This verification function uses the trusted CAs in the credentials
+   * structure. So you must have installed one or more CA certificates.
+   */
+  ret = gnutls_certificate_verify_peers2 (session, &status);
+  if (ret < 0)
+    {
+      printf ("Error\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  if (status & GNUTLS_CERT_INVALID)
+    printf ("The certificate is not trusted.\n");
+
+  if (status & GNUTLS_CERT_SIGNER_NOT_FOUND)
+    printf ("The certificate hasn't got a known issuer.\n");
+
+  if (status & GNUTLS_CERT_REVOKED)
+    printf ("The certificate has been revoked.\n");
+
+  if (status & GNUTLS_CERT_EXPIRED)
+    printf ("The certificate has expired\n");
+
+  if (status & GNUTLS_CERT_NOT_ACTIVATED)
+    printf ("The certificate is not yet activated\n");
+
+  /* Up to here the process is the same for X.509 certificates and
+   * OpenPGP keys. From now on X.509 certificates are assumed. This can
+   * be easily extended to work with openpgp keys as well.
+   */
+  if (gnutls_certificate_type_get (session) != GNUTLS_CRT_X509)
+    return GNUTLS_E_CERTIFICATE_ERROR;
+
+  if (gnutls_x509_crt_init (&cert) < 0)
+    {
+      printf ("error in initialization\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  cert_list = gnutls_certificate_get_peers (session, &cert_list_size);
+  if (cert_list == NULL)
+    {
+      printf ("No certificate was found!\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  /* This is not a real world example, since we only check the first
+   * certificate in the given chain.
+   */
+  if (gnutls_x509_crt_import (cert, &cert_list[0], GNUTLS_X509_FMT_DER) < 0)
+    {
+      printf ("error parsing certificate\n");
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+
+  if (!gnutls_x509_crt_check_hostname (cert, hostname))
+    {
+      printf ("The certificate's owner does not match hostname '%s'\n",
+              hostname);
+      status |= GNUTLS_CERT_INVALID;
+    }
+
+  gnutls_x509_crt_deinit (cert);
+
+  /* service may be obtained alternatively using getservbyport() */
+  ret = gnutls_verify_stored_pubkey(NULL, NULL, hostname, "https",
+                                    GNUTLS_CRT_X509, &cert_list[0], 0);
+  if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND)
+    {
+      printf("Host %s is not known.", hostname);
+      if (status == 0)
+        printf("Its certificate is valid for %s.\n", hostname);
+
+      /* the certificate must be printed and user must be asked on
+       * whether it is trustworthy. --see gnutls_x509_crt_print() */
+
+      /* if not trusted */
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+  else if (ret == GNUTLS_E_CERTIFICATE_KEY_MISMATCH)
+    {
+      printf("Warning: host %s is known but has another key associated.", hostname);
+      printf("It might be that the server has multiple keys, or you are under attack\n");
+      if (status == 0)
+        printf("Its certificate is valid for %s.\n", hostname);
+
+      /* the certificate must be printed and user must be asked on
+       * whether it is trustworthy. --see gnutls_x509_crt_print() */
+
+      /* if not trusted */
+      return GNUTLS_E_CERTIFICATE_ERROR;
+    }
+  else if (ret < 0)
+    {
+      printf("gnutls_verify_stored_pubkey: %s\n", gnutls_strerror(ret));
+      return ret;
+    }
+
+  /* user trusts the key -> store it */
+  if (ret != 0)
+    {
+      ret = gnutls_store_pubkey(NULL, NULL, hostname, "https",
+                                GNUTLS_CRT_X509, &cert_list[0],
+                                0, 0);
+      if (ret < 0)
+        printf("gnutls_store_pubkey: %s\n", gnutls_strerror(ret));
+    }
+
+  /* notify gnutls to continue handshake normally */
+  return 0;
+}
+
+
diff --git a/doc/gnutls.info-2 b/doc/gnutls.info-2
new file mode 100644 (file)
index 0000000..44951f0
--- /dev/null
@@ -0,0 +1,9751 @@
+This is gnutls.info, produced by makeinfo version 4.13.90 from
+gnutls.texi.
+
+This manual is last updated 2 September 2012 for version 3.0.30 of
+GnuTLS.
+
+Copyright (C) 2001-2012 Free Software Foundation, Inc.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.3 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, no Front-Cover Texts, and
+     no Back-Cover Texts.  A copy of the license is included in the
+     section entitled "GNU Free Documentation License".
+INFO-DIR-SECTION Software libraries
+START-INFO-DIR-ENTRY
+* GnuTLS: (gnutls).            GNU Transport Layer Security Library.
+END-INFO-DIR-ENTRY
+
+INFO-DIR-SECTION System Administration
+START-INFO-DIR-ENTRY
+* certtool: (gnutls)Invoking certtool. Manipulate certificates and keys.
+* gnutls-serv: (gnutls)Invoking gnutls-serv.   GnuTLS test server.
+* gnutls-cli: (gnutls)Invoking gnutls-cli.     GnuTLS test client.
+* gnutls-cli-debug: (gnutls)Invoking gnutls-cli-debug. GnuTLS debug client.
+* psktool: (gnutls)Invoking psktool.   Simple TLS-Pre-Shared-Keys manager.
+* srptool: (gnutls)Invoking srptool.   Simple SRP password tool.
+END-INFO-DIR-ENTRY
+
+\1f
+File: gnutls.info,  Node: Simple client example with anonymous authentication,  Next: Simple Datagram TLS client example,  Prev: Simple client example with SSH-style certificate verification,  Up: Client examples
+
+8.1.3 Simple client example with anonymous authentication
+---------------------------------------------------------
+
+The simplest client using TLS is the one that doesn't do any
+authentication.  This means no external certificates or passwords are
+needed to set up the connection.  As could be expected, the connection
+is vulnerable to man-in-the-middle (active or redirection) attacks.
+However, the data are integrity protected and encrypted from passive
+eavesdroppers.
+
+Note that due to the vulnerable nature of this method very few public
+servers support it.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+
+/* A very basic TLS client, with anonymous authentication.
+ */
+
+#define MAX_BUF 1024
+#define MSG "GET / HTTP/1.0\r\n\r\n"
+
+extern int tcp_connect (void);
+extern void tcp_close (int sd);
+
+int
+main (void)
+{
+  int ret, sd, ii;
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  gnutls_anon_client_credentials_t anoncred;
+  /* Need to enable anonymous KX specifically. */
+
+  gnutls_global_init ();
+
+  gnutls_anon_allocate_client_credentials (&anoncred);
+
+  /* Initialize TLS session
+   */
+  gnutls_init (&session, GNUTLS_CLIENT);
+
+  /* Use default priorities */
+  gnutls_priority_set_direct (session, "PERFORMANCE:+ANON-ECDH:+ANON-DH",
+                              NULL);
+
+  /* put the anonymous credentials to the current session
+   */
+  gnutls_credentials_set (session, GNUTLS_CRD_ANON, anoncred);
+
+  /* connect to the peer
+   */
+  sd = tcp_connect ();
+
+  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+  /* Perform the TLS handshake
+   */
+  do
+    {
+      ret = gnutls_handshake (session);
+    }
+  while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Handshake failed\n");
+      gnutls_perror (ret);
+      goto end;
+    }
+  else
+    {
+      printf ("- Handshake was completed\n");
+    }
+
+  gnutls_record_send (session, MSG, strlen (MSG));
+
+  ret = gnutls_record_recv (session, buffer, MAX_BUF);
+  if (ret == 0)
+    {
+      printf ("- Peer has closed the TLS connection\n");
+      goto end;
+    }
+  else if (ret < 0)
+    {
+      fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
+      goto end;
+    }
+
+  printf ("- Received %d bytes: ", ret);
+  for (ii = 0; ii < ret; ii++)
+    {
+      fputc (buffer[ii], stdout);
+    }
+  fputs ("\n", stdout);
+
+  gnutls_bye (session, GNUTLS_SHUT_RDWR);
+
+end:
+
+  tcp_close (sd);
+
+  gnutls_deinit (session);
+
+  gnutls_anon_free_client_credentials (anoncred);
+
+  gnutls_global_deinit ();
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Simple Datagram TLS client example,  Next: Obtaining session information,  Prev: Simple client example with anonymous authentication,  Up: Client examples
+
+8.1.4 Simple datagram TLS client example
+----------------------------------------
+
+This is a client that uses UDP to connect to a server.  This is the DTLS
+equivalent to the TLS example with X.509 certificates.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/dtls.h>
+
+/* A very basic Datagram TLS client, over UDP with X.509 authentication.
+ */
+
+#define MAX_BUF 1024
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+#define MSG "GET / HTTP/1.0\r\n\r\n"
+
+extern int udp_connect (void);
+extern void udp_close (int sd);
+extern int verify_certificate_callback (gnutls_session_t session);
+
+int
+main (void)
+{
+  int ret, sd, ii;
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  const char *err;
+  gnutls_certificate_credentials_t xcred;
+
+  gnutls_global_init ();
+
+  /* X509 stuff */
+  gnutls_certificate_allocate_credentials (&xcred);
+
+  /* sets the trusted cas file */
+  gnutls_certificate_set_x509_trust_file (xcred, CAFILE, GNUTLS_X509_FMT_PEM);
+  gnutls_certificate_set_verify_function (xcred, verify_certificate_callback);
+
+  /* Initialize TLS session */
+  gnutls_init (&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
+
+  /* Use default priorities */
+  ret = gnutls_priority_set_direct (session, "NORMAL", &err);
+  if (ret < 0)
+    {
+      if (ret == GNUTLS_E_INVALID_REQUEST)
+        {
+          fprintf (stderr, "Syntax error at: %s\n", err);
+        }
+      exit (1);
+    }
+
+  /* put the x509 credentials to the current session */
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred);
+  gnutls_server_name_set (session, GNUTLS_NAME_DNS, "my_host_name",
+                          strlen("my_host_name"));
+
+  /* connect to the peer */
+  sd = udp_connect ();
+
+  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+  /* set the connection MTU */
+  gnutls_dtls_set_mtu (session, 1000);
+
+  /* Perform the TLS handshake */
+  do
+    {
+      ret = gnutls_handshake (session);
+    }
+  while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Handshake failed\n");
+      gnutls_perror (ret);
+      goto end;
+    }
+  else
+    {
+      printf ("- Handshake was completed\n");
+    }
+
+  gnutls_record_send (session, MSG, strlen (MSG));
+
+  ret = gnutls_record_recv (session, buffer, MAX_BUF);
+  if (ret == 0)
+    {
+      printf ("- Peer has closed the TLS connection\n");
+      goto end;
+    }
+  else if (ret < 0)
+    {
+      fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
+      goto end;
+    }
+
+  printf ("- Received %d bytes: ", ret);
+  for (ii = 0; ii < ret; ii++)
+    {
+      fputc (buffer[ii], stdout);
+    }
+  fputs ("\n", stdout);
+
+  /* It is suggested not to use GNUTLS_SHUT_RDWR in DTLS
+   * connections because the peer's closure message might
+   * be lost */
+  gnutls_bye (session, GNUTLS_SHUT_WR);
+
+end:
+
+  udp_close (sd);
+
+  gnutls_deinit (session);
+
+  gnutls_certificate_free_credentials (xcred);
+
+  gnutls_global_deinit ();
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Obtaining session information,  Next: Using a callback to select the certificate to use,  Prev: Simple Datagram TLS client example,  Up: Client examples
+
+8.1.5 Obtaining session information
+-----------------------------------
+
+Most of the times it is desirable to know the security properties of the
+current established session.  This includes the underlying ciphers and
+the protocols involved.  That is the purpose of the following function.
+Note that this function will print meaningful values only if called
+after a successful *note gnutls_handshake::.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "examples.h"
+
+/* This function will print some details of the
+ * given session.
+ */
+int
+print_info (gnutls_session_t session)
+{
+  const char *tmp;
+  gnutls_credentials_type_t cred;
+  gnutls_kx_algorithm_t kx;
+  int dhe, ecdh;
+
+  dhe = ecdh = 0;
+
+  /* print the key exchange's algorithm name
+   */
+  kx = gnutls_kx_get (session);
+  tmp = gnutls_kx_get_name (kx);
+  printf ("- Key Exchange: %s\n", tmp);
+
+  /* Check the authentication type used and switch
+   * to the appropriate.
+   */
+  cred = gnutls_auth_get_type (session);
+  switch (cred)
+    {
+    case GNUTLS_CRD_IA:
+      printf ("- TLS/IA session\n");
+      break;
+
+
+#ifdef ENABLE_SRP
+    case GNUTLS_CRD_SRP:
+      printf ("- SRP session with username %s\n",
+              gnutls_srp_server_get_username (session));
+      break;
+#endif
+
+    case GNUTLS_CRD_PSK:
+      /* This returns NULL in server side.
+       */
+      if (gnutls_psk_client_get_hint (session) != NULL)
+        printf ("- PSK authentication. PSK hint '%s'\n",
+                gnutls_psk_client_get_hint (session));
+      /* This returns NULL in client side.
+       */
+      if (gnutls_psk_server_get_username (session) != NULL)
+        printf ("- PSK authentication. Connected as '%s'\n",
+                gnutls_psk_server_get_username (session));
+
+      if (kx == GNUTLS_KX_ECDHE_PSK)
+        ecdh = 1;
+      else if (kx == GNUTLS_KX_DHE_PSK)
+        dhe = 1;
+      break;
+
+    case GNUTLS_CRD_ANON:      /* anonymous authentication */
+
+      printf ("- Anonymous authentication.\n");
+      if (kx == GNUTLS_KX_ANON_ECDH)
+        ecdh = 1;
+      else if (kx == GNUTLS_KX_ANON_DH)
+        dhe = 1;
+      break;
+
+    case GNUTLS_CRD_CERTIFICATE:       /* certificate authentication */
+
+      /* Check if we have been using ephemeral Diffie-Hellman.
+       */
+      if (kx == GNUTLS_KX_DHE_RSA || kx == GNUTLS_KX_DHE_DSS)
+        dhe = 1;
+      else if (kx == GNUTLS_KX_ECDHE_RSA || kx == GNUTLS_KX_ECDHE_ECDSA)
+        ecdh = 1;
+
+      /* if the certificate list is available, then
+       * print some information about it.
+       */
+      print_x509_certificate_info (session);
+
+    }                           /* switch */
+
+  if (ecdh != 0)
+    printf ("- Ephemeral ECDH using curve %s\n",
+            gnutls_ecc_curve_get_name (gnutls_ecc_curve_get (session)));
+  else if (dhe != 0)
+    printf ("- Ephemeral DH using prime of %d bits\n",
+            gnutls_dh_get_prime_bits (session));
+
+  /* print the protocol's name (ie TLS 1.0)
+   */
+  tmp = gnutls_protocol_get_name (gnutls_protocol_get_version (session));
+  printf ("- Protocol: %s\n", tmp);
+
+  /* print the certificate type of the peer.
+   * ie X.509
+   */
+  tmp =
+    gnutls_certificate_type_get_name (gnutls_certificate_type_get (session));
+
+  printf ("- Certificate Type: %s\n", tmp);
+
+  /* print the compression algorithm (if any)
+   */
+  tmp = gnutls_compression_get_name (gnutls_compression_get (session));
+  printf ("- Compression: %s\n", tmp);
+
+  /* print the name of the cipher used.
+   * ie 3DES.
+   */
+  tmp = gnutls_cipher_get_name (gnutls_cipher_get (session));
+  printf ("- Cipher: %s\n", tmp);
+
+  /* Print the MAC algorithms name.
+   * ie SHA1
+   */
+  tmp = gnutls_mac_get_name (gnutls_mac_get (session));
+  printf ("- MAC: %s\n", tmp);
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Using a callback to select the certificate to use,  Next: Verifying a certificate,  Prev: Obtaining session information,  Up: Client examples
+
+8.1.6 Using a callback to select the certificate to use
+-------------------------------------------------------
+
+There are cases where a client holds several certificate and key pairs,
+and may not want to load all of them in the credentials structure.  The
+following example demonstrates the use of the certificate selection
+callback.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+#include <gnutls/abstract.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+/* A TLS client that loads the certificate and key.
+ */
+
+#define MAX_BUF 1024
+#define MSG "GET / HTTP/1.0\r\n\r\n"
+
+#define CERT_FILE "cert.pem"
+#define KEY_FILE "key.pem"
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+
+extern int tcp_connect (void);
+extern void tcp_close (int sd);
+
+static int
+cert_callback (gnutls_session_t session,
+               const gnutls_datum_t * req_ca_rdn, int nreqs,
+               const gnutls_pk_algorithm_t * sign_algos,
+               int sign_algos_length, gnutls_pcert_st ** pcert,
+               unsigned int *pcert_length, gnutls_privkey_t * pkey);
+
+gnutls_pcert_st crt;
+gnutls_privkey_t key;
+
+/* Helper functions to load a certificate and key
+ * files into memory.
+ */
+static gnutls_datum_t
+load_file (const char *file)
+{
+  FILE *f;
+  gnutls_datum_t loaded_file = { NULL, 0 };
+  long filelen;
+  void *ptr;
+
+  if (!(f = fopen (file, "r"))
+      || fseek (f, 0, SEEK_END) != 0
+      || (filelen = ftell (f)) < 0
+      || fseek (f, 0, SEEK_SET) != 0
+      || !(ptr = malloc ((size_t) filelen))
+      || fread (ptr, 1, (size_t) filelen, f) < (size_t) filelen)
+    {
+      if (f)
+        fclose (f);
+      return loaded_file;
+    }
+
+  loaded_file.data = ptr;
+  loaded_file.size = (unsigned int) filelen;
+  return loaded_file;
+}
+
+static void
+unload_file (gnutls_datum_t data)
+{
+  free (data.data);
+}
+
+/* Load the certificate and the private key.
+ */
+static void
+load_keys (void)
+{
+  int ret;
+  gnutls_datum_t data;
+  gnutls_x509_privkey_t x509_key;
+
+  data = load_file (CERT_FILE);
+  if (data.data == NULL)
+    {
+      fprintf (stderr, "*** Error loading certificate file.\n");
+      exit (1);
+    }
+
+  ret = gnutls_pcert_import_x509_raw (&crt, &data, GNUTLS_X509_FMT_PEM, 0);
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Error loading certificate file: %s\n",
+               gnutls_strerror (ret));
+      exit (1);
+    }
+
+  unload_file (data);
+
+  data = load_file (KEY_FILE);
+  if (data.data == NULL)
+    {
+      fprintf (stderr, "*** Error loading key file.\n");
+      exit (1);
+    }
+
+  gnutls_x509_privkey_init (&x509_key);
+
+  ret = gnutls_x509_privkey_import (x509_key, &data, GNUTLS_X509_FMT_PEM);
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Error loading key file: %s\n",
+               gnutls_strerror (ret));
+      exit (1);
+    }
+
+  gnutls_privkey_init (&key);
+
+  ret =
+    gnutls_privkey_import_x509 (key, x509_key,
+                                GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Error importing key: %s\n",
+               gnutls_strerror (ret));
+      exit (1);
+    }
+
+  unload_file (data);
+}
+
+int
+main (void)
+{
+  int ret, sd, ii;
+  gnutls_session_t session;
+  gnutls_priority_t priorities_cache;
+  char buffer[MAX_BUF + 1];
+  gnutls_certificate_credentials_t xcred;
+  /* Allow connections to servers that have OpenPGP keys as well.
+   */
+
+  gnutls_global_init ();
+
+  load_keys ();
+
+  /* X509 stuff */
+  gnutls_certificate_allocate_credentials (&xcred);
+
+  /* priorities */
+  gnutls_priority_init (&priorities_cache, "NORMAL", NULL);
+
+
+  /* sets the trusted cas file
+   */
+  gnutls_certificate_set_x509_trust_file (xcred, CAFILE, GNUTLS_X509_FMT_PEM);
+
+  gnutls_certificate_set_retrieve_function2 (xcred, cert_callback);
+
+  /* Initialize TLS session
+   */
+  gnutls_init (&session, GNUTLS_CLIENT);
+
+  /* Use default priorities */
+  gnutls_priority_set (session, priorities_cache);
+
+  /* put the x509 credentials to the current session
+   */
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred);
+
+  /* connect to the peer
+   */
+  sd = tcp_connect ();
+
+  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+  /* Perform the TLS handshake
+   */
+  ret = gnutls_handshake (session);
+
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Handshake failed\n");
+      gnutls_perror (ret);
+      goto end;
+    }
+  else
+    {
+      printf ("- Handshake was completed\n");
+    }
+
+  gnutls_record_send (session, MSG, strlen (MSG));
+
+  ret = gnutls_record_recv (session, buffer, MAX_BUF);
+  if (ret == 0)
+    {
+      printf ("- Peer has closed the TLS connection\n");
+      goto end;
+    }
+  else if (ret < 0)
+    {
+      fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
+      goto end;
+    }
+
+  printf ("- Received %d bytes: ", ret);
+  for (ii = 0; ii < ret; ii++)
+    {
+      fputc (buffer[ii], stdout);
+    }
+  fputs ("\n", stdout);
+
+  gnutls_bye (session, GNUTLS_SHUT_RDWR);
+
+end:
+
+  tcp_close (sd);
+
+  gnutls_deinit (session);
+
+  gnutls_certificate_free_credentials (xcred);
+  gnutls_priority_deinit (priorities_cache);
+
+  gnutls_global_deinit ();
+
+  return 0;
+}
+
+
+
+/* This callback should be associated with a session by calling
+ * gnutls_certificate_client_set_retrieve_function( session, cert_callback),
+ * before a handshake.
+ */
+
+static int
+cert_callback (gnutls_session_t session,
+               const gnutls_datum_t * req_ca_rdn, int nreqs,
+               const gnutls_pk_algorithm_t * sign_algos,
+               int sign_algos_length, gnutls_pcert_st ** pcert,
+               unsigned int *pcert_length, gnutls_privkey_t * pkey)
+{
+  char issuer_dn[256];
+  int i, ret;
+  size_t len;
+  gnutls_certificate_type_t type;
+
+  /* Print the server's trusted CAs
+   */
+  if (nreqs > 0)
+    printf ("- Server's trusted authorities:\n");
+  else
+    printf ("- Server did not send us any trusted authorities names.\n");
+
+  /* print the names (if any) */
+  for (i = 0; i < nreqs; i++)
+    {
+      len = sizeof (issuer_dn);
+      ret = gnutls_x509_rdn_get (&req_ca_rdn[i], issuer_dn, &len);
+      if (ret >= 0)
+        {
+          printf ("   [%d]: ", i);
+          printf ("%s\n", issuer_dn);
+        }
+    }
+
+  /* Select a certificate and return it.
+   * The certificate must be of any of the "sign algorithms"
+   * supported by the server.
+   */
+  type = gnutls_certificate_type_get (session);
+  if (type == GNUTLS_CRT_X509)
+    {
+      *pcert_length = 1;
+      *pcert = &crt;
+      *pkey = key;
+    }
+  else
+    {
+      return -1;
+    }
+
+  return 0;
+
+}
+
+\1f
+File: gnutls.info,  Node: Verifying a certificate,  Next: Client using a smart card with TLS,  Prev: Using a callback to select the certificate to use,  Up: Client examples
+
+8.1.7 Verifying a certificate
+-----------------------------
+
+An example is listed below which uses the high level verification
+functions to verify a given certificate list.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "examples.h"
+
+/* All the available CRLs
+ */
+gnutls_x509_crl_t *crl_list;
+int crl_list_size;
+
+/* All the available trusted CAs
+ */
+gnutls_x509_crt_t *ca_list;
+int ca_list_size;
+
+static int print_details_func (gnutls_x509_crt_t cert,
+                               gnutls_x509_crt_t issuer,
+                               gnutls_x509_crl_t crl,
+                               unsigned int verification_output);
+
+/* This function will try to verify the peer's certificate chain, and
+ * also check if the hostname matches.
+ */
+void
+verify_certificate_chain (const char *hostname,
+                          const gnutls_datum_t * cert_chain,
+                          int cert_chain_length)
+{
+  int i;
+  gnutls_x509_trust_list_t tlist;
+  gnutls_x509_crt_t *cert;
+
+  unsigned int output;
+
+  /* Initialize the trusted certificate list. This should be done
+   * once on initialization. gnutls_x509_crt_list_import2() and
+   * gnutls_x509_crl_list_import2() can be used to load them.
+   */
+  gnutls_x509_trust_list_init (&tlist, 0);
+
+  gnutls_x509_trust_list_add_cas (tlist, ca_list, ca_list_size, 0);
+  gnutls_x509_trust_list_add_crls (tlist, crl_list, crl_list_size,
+                                   GNUTLS_TL_VERIFY_CRL, 0);
+
+  cert = malloc (sizeof (*cert) * cert_chain_length);
+
+  /* Import all the certificates in the chain to
+   * native certificate format.
+   */
+  for (i = 0; i < cert_chain_length; i++)
+    {
+      gnutls_x509_crt_init (&cert[i]);
+      gnutls_x509_crt_import (cert[i], &cert_chain[i], GNUTLS_X509_FMT_DER);
+    }
+
+  gnutls_x509_trust_list_verify_named_crt (tlist, cert[0], hostname,
+                                           strlen (hostname),
+                                           GNUTLS_VERIFY_DISABLE_CRL_CHECKS,
+                                           &output, print_details_func);
+
+  /* if this certificate is not explicitly trusted verify against CAs
+   */
+  if (output != 0)
+    {
+      gnutls_x509_trust_list_verify_crt (tlist, cert, cert_chain_length, 0,
+                                         &output, print_details_func);
+    }
+
+  if (output & GNUTLS_CERT_INVALID)
+    {
+      fprintf (stderr, "Not trusted");
+
+      if (output & GNUTLS_CERT_SIGNER_NOT_FOUND)
+        fprintf (stderr, ": no issuer was found");
+      if (output & GNUTLS_CERT_SIGNER_NOT_CA)
+        fprintf (stderr, ": issuer is not a CA");
+      if (output & GNUTLS_CERT_NOT_ACTIVATED)
+        fprintf (stderr, ": not yet activated\n");
+      if (output & GNUTLS_CERT_EXPIRED)
+        fprintf (stderr, ": expired\n");
+
+      fprintf (stderr, "\n");
+    }
+  else
+    fprintf (stderr, "Trusted\n");
+
+  /* Check if the name in the first certificate matches our destination!
+   */
+  if (!gnutls_x509_crt_check_hostname (cert[0], hostname))
+    {
+      printf ("The certificate's owner does not match hostname '%s'\n",
+              hostname);
+    }
+
+  gnutls_x509_trust_list_deinit (tlist, 1);
+
+  return;
+}
+
+static int
+print_details_func (gnutls_x509_crt_t cert,
+                    gnutls_x509_crt_t issuer, gnutls_x509_crl_t crl,
+                    unsigned int verification_output)
+{
+  char name[512];
+  char issuer_name[512];
+  size_t name_size;
+  size_t issuer_name_size;
+
+  issuer_name_size = sizeof (issuer_name);
+  gnutls_x509_crt_get_issuer_dn (cert, issuer_name, &issuer_name_size);
+
+  name_size = sizeof (name);
+  gnutls_x509_crt_get_dn (cert, name, &name_size);
+
+  fprintf (stdout, "\tSubject: %s\n", name);
+  fprintf (stdout, "\tIssuer: %s\n", issuer_name);
+
+  if (issuer != NULL)
+    {
+      issuer_name_size = sizeof (issuer_name);
+      gnutls_x509_crt_get_dn (issuer, issuer_name, &issuer_name_size);
+
+      fprintf (stdout, "\tVerified against: %s\n", issuer_name);
+    }
+
+  if (crl != NULL)
+    {
+      issuer_name_size = sizeof (issuer_name);
+      gnutls_x509_crl_get_issuer_dn (crl, issuer_name, &issuer_name_size);
+
+      fprintf (stdout, "\tVerified against CRL of: %s\n", issuer_name);
+    }
+
+  fprintf (stdout, "\tVerification output: %x\n\n", verification_output);
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Client using a smart card with TLS,  Next: Client with Resume capability example,  Prev: Verifying a certificate,  Up: Client examples
+
+8.1.8 Using a smart card with TLS
+---------------------------------
+
+This example will demonstrate how to load keys and certificates from a
+smart-card or any other PKCS #11 token, and use it in a TLS connection.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+#include <gnutls/pkcs11.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <getpass.h> /* for getpass() */
+
+/* A TLS client that loads the certificate and key.
+ */
+
+#define MAX_BUF 1024
+#define MSG "GET / HTTP/1.0\r\n\r\n"
+#define MIN(x,y) (((x)<(y))?(x):(y))
+
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+
+/* The URLs of the objects can be obtained
+ * using p11tool --list-all --login
+ */
+#define KEY_URL "pkcs11:manufacturer=SomeManufacturer;object=Private%20Key" \
+  ";objecttype=private;id=%db%5b%3e%b5%72%33"
+#define CERT_URL "pkcs11:manufacturer=SomeManufacturer;object=Certificate;" \
+  "objecttype=cert;id=db%5b%3e%b5%72%33"
+
+extern int tcp_connect (void);
+extern void tcp_close (int sd);
+
+static int
+pin_callback (void *user, int attempt, const char *token_url,
+              const char *token_label, unsigned int flags, char *pin,
+              size_t pin_max)
+{
+  const char *password;
+  int len;
+
+  /* Note that a PIN callback may be called multiple times during a
+   * session. It is expected to cache and return the same PIN for
+   * the same token_url, unless flags is set to GNUTLS_PKCS11_PIN_WRONG.
+   */
+
+  printf ("PIN required for token '%s' with URL '%s'\n", token_label,
+          token_url);
+  if (flags & GNUTLS_PKCS11_PIN_FINAL_TRY)
+    printf ("*** This is the final try before locking!\n");
+  if (flags & GNUTLS_PKCS11_PIN_COUNT_LOW)
+    printf ("*** Only few tries left before locking!\n");
+  if (flags & GNUTLS_PKCS11_PIN_WRONG)
+    printf ("*** Wrong PIN\n");
+
+  password = getpass ("Enter pin: ");
+  if (password == NULL || password[0] == 0)
+    {
+      fprintf (stderr, "No password given\n");
+      exit (1);
+    }
+
+  len = MIN (pin_max, strlen (password));
+  memcpy (pin, password, len);
+  pin[len] = 0;
+
+  return 0;
+}
+
+int
+main (void)
+{
+  int ret, sd, ii;
+  gnutls_session_t session;
+  gnutls_priority_t priorities_cache;
+  char buffer[MAX_BUF + 1];
+  gnutls_certificate_credentials_t xcred;
+  /* Allow connections to servers that have OpenPGP keys as well.
+   */
+
+  gnutls_global_init ();
+  /* PKCS11 private key operations might require PIN.
+   * Register a callback.
+   */
+  gnutls_pkcs11_set_pin_function (pin_callback, NULL);
+
+  /* X509 stuff */
+  gnutls_certificate_allocate_credentials (&xcred);
+
+  /* priorities */
+  gnutls_priority_init (&priorities_cache, "NORMAL", NULL);
+
+  /* sets the trusted cas file
+   */
+  gnutls_certificate_set_x509_trust_file (xcred, CAFILE, GNUTLS_X509_FMT_PEM);
+
+  gnutls_certificate_set_x509_key_file (xcred, CERT_URL, KEY_URL, GNUTLS_X509_FMT_DER);
+
+  /* Initialize TLS session
+   */
+  gnutls_init (&session, GNUTLS_CLIENT);
+
+  /* Use default priorities */
+  gnutls_priority_set (session, priorities_cache);
+
+  /* put the x509 credentials to the current session
+   */
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred);
+
+  /* connect to the peer
+   */
+  sd = tcp_connect ();
+
+  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+  /* Perform the TLS handshake
+   */
+  ret = gnutls_handshake (session);
+
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Handshake failed\n");
+      gnutls_perror (ret);
+      goto end;
+    }
+  else
+    {
+      printf ("- Handshake was completed\n");
+    }
+
+  gnutls_record_send (session, MSG, strlen (MSG));
+
+  ret = gnutls_record_recv (session, buffer, MAX_BUF);
+  if (ret == 0)
+    {
+      printf ("- Peer has closed the TLS connection\n");
+      goto end;
+    }
+  else if (ret < 0)
+    {
+      fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
+      goto end;
+    }
+
+  printf ("- Received %d bytes: ", ret);
+  for (ii = 0; ii < ret; ii++)
+    {
+      fputc (buffer[ii], stdout);
+    }
+  fputs ("\n", stdout);
+
+  gnutls_bye (session, GNUTLS_SHUT_RDWR);
+
+end:
+
+  tcp_close (sd);
+
+  gnutls_deinit (session);
+
+  gnutls_certificate_free_credentials (xcred);
+  gnutls_priority_deinit (priorities_cache);
+
+  gnutls_global_deinit ();
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Client with Resume capability example,  Next: Simple client example with SRP authentication,  Prev: Client using a smart card with TLS,  Up: Client examples
+
+8.1.9 Client with resume capability example
+-------------------------------------------
+
+This is a modification of the simple client example.  Here we
+demonstrate the use of session resumption.  The client tries to connect
+once using TLS, close the connection and then try to establish a new
+connection using the previously negotiated data.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <gnutls/gnutls.h>
+
+/* Those functions are defined in other examples.
+ */
+extern void check_alert (gnutls_session_t session, int ret);
+extern int tcp_connect (void);
+extern void tcp_close (int sd);
+
+#define MAX_BUF 1024
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+#define MSG "GET / HTTP/1.0\r\n\r\n"
+
+int
+main (void)
+{
+  int ret;
+  int sd, ii;
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  gnutls_certificate_credentials_t xcred;
+
+  /* variables used in session resuming
+   */
+  int t;
+  char *session_data = NULL;
+  size_t session_data_size = 0;
+
+  gnutls_global_init ();
+
+  /* X509 stuff */
+  gnutls_certificate_allocate_credentials (&xcred);
+
+  gnutls_certificate_set_x509_trust_file (xcred, CAFILE, GNUTLS_X509_FMT_PEM);
+
+  for (t = 0; t < 2; t++)
+    {                           /* connect 2 times to the server */
+
+      sd = tcp_connect ();
+
+      gnutls_init (&session, GNUTLS_CLIENT);
+
+      gnutls_priority_set_direct (session, "PERFORMANCE:!ARCFOUR-128", NULL);
+
+      gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred);
+
+      if (t > 0)
+        {
+          /* if this is not the first time we connect */
+          gnutls_session_set_data (session, session_data, session_data_size);
+          free (session_data);
+        }
+
+      gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+      /* Perform the TLS handshake
+       */
+      do
+        {
+          ret = gnutls_handshake (session);
+        }
+      while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+      if (ret < 0)
+        {
+          fprintf (stderr, "*** Handshake failed\n");
+          gnutls_perror (ret);
+          goto end;
+        }
+      else
+        {
+          printf ("- Handshake was completed\n");
+        }
+
+      if (t == 0)
+        {                       /* the first time we connect */
+          /* get the session data size */
+          gnutls_session_get_data (session, NULL, &session_data_size);
+          session_data = malloc (session_data_size);
+
+          /* put session data to the session variable */
+          gnutls_session_get_data (session, session_data, &session_data_size);
+
+        }
+      else
+        {                       /* the second time we connect */
+
+          /* check if we actually resumed the previous session */
+          if (gnutls_session_is_resumed (session) != 0)
+            {
+              printf ("- Previous session was resumed\n");
+            }
+          else
+            {
+              fprintf (stderr, "*** Previous session was NOT resumed\n");
+            }
+        }
+
+      /* This function was defined in a previous example
+       */
+      /* print_info(session); */
+
+      gnutls_record_send (session, MSG, strlen (MSG));
+
+      ret = gnutls_record_recv (session, buffer, MAX_BUF);
+      if (ret == 0)
+        {
+          printf ("- Peer has closed the TLS connection\n");
+          goto end;
+        }
+      else if (ret < 0)
+        {
+          fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
+          goto end;
+        }
+
+      printf ("- Received %d bytes: ", ret);
+      for (ii = 0; ii < ret; ii++)
+        {
+          fputc (buffer[ii], stdout);
+        }
+      fputs ("\n", stdout);
+
+      gnutls_bye (session, GNUTLS_SHUT_RDWR);
+
+    end:
+
+      tcp_close (sd);
+
+      gnutls_deinit (session);
+
+    }                           /* for() */
+
+  gnutls_certificate_free_credentials (xcred);
+
+  gnutls_global_deinit ();
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Simple client example with SRP authentication,  Next: Simple client example in C++,  Prev: Client with Resume capability example,  Up: Client examples
+
+8.1.10 Simple client example with SRP authentication
+----------------------------------------------------
+
+The following client is a very simple SRP TLS client which connects to a
+server and authenticates using a _username_ and a _password_.  The
+server may authenticate itself using a certificate, and in that case it
+has to be verified.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnutls/gnutls.h>
+
+/* Those functions are defined in other examples.
+ */
+extern void check_alert (gnutls_session_t session, int ret);
+extern int tcp_connect (void);
+extern void tcp_close (int sd);
+
+#define MAX_BUF 1024
+#define USERNAME "user"
+#define PASSWORD "pass"
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+#define MSG "GET / HTTP/1.0\r\n\r\n"
+
+int
+main (void)
+{
+  int ret;
+  int sd, ii;
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  gnutls_srp_client_credentials_t srp_cred;
+  gnutls_certificate_credentials_t cert_cred;
+
+  gnutls_global_init ();
+
+  gnutls_srp_allocate_client_credentials (&srp_cred);
+  gnutls_certificate_allocate_credentials (&cert_cred);
+
+  gnutls_certificate_set_x509_trust_file (cert_cred, CAFILE,
+                                          GNUTLS_X509_FMT_PEM);
+  gnutls_srp_set_client_credentials (srp_cred, USERNAME, PASSWORD);
+
+  /* connects to server
+   */
+  sd = tcp_connect ();
+
+  /* Initialize TLS session
+   */
+  gnutls_init (&session, GNUTLS_CLIENT);
+
+
+  /* Set the priorities.
+   */
+  gnutls_priority_set_direct (session, "NORMAL:+SRP:+SRP-RSA:+SRP-DSS", NULL);
+
+  /* put the SRP credentials to the current session
+   */
+  gnutls_credentials_set (session, GNUTLS_CRD_SRP, srp_cred);
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, cert_cred);
+
+  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+  /* Perform the TLS handshake
+   */
+  do
+    {
+      ret = gnutls_handshake (session);
+    }
+  while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+  if (ret < 0)
+    {
+      fprintf (stderr, "*** Handshake failed\n");
+      gnutls_perror (ret);
+      goto end;
+    }
+  else
+    {
+      printf ("- Handshake was completed\n");
+    }
+
+  gnutls_record_send (session, MSG, strlen (MSG));
+
+  ret = gnutls_record_recv (session, buffer, MAX_BUF);
+  if (gnutls_error_is_fatal (ret) != 0 || ret == 0)
+    {
+      if (ret == 0)
+        {
+          printf ("- Peer has closed the GnuTLS connection\n");
+          goto end;
+        }
+      else
+        {
+          fprintf (stderr, "*** Error: %s\n", gnutls_strerror (ret));
+          goto end;
+        }
+    }
+  else
+    check_alert (session, ret);
+
+  if (ret > 0)
+    {
+      printf ("- Received %d bytes: ", ret);
+      for (ii = 0; ii < ret; ii++)
+        {
+          fputc (buffer[ii], stdout);
+        }
+      fputs ("\n", stdout);
+    }
+  gnutls_bye (session, GNUTLS_SHUT_RDWR);
+
+end:
+
+  tcp_close (sd);
+
+  gnutls_deinit (session);
+
+  gnutls_srp_free_client_credentials (srp_cred);
+  gnutls_certificate_free_credentials (cert_cred);
+
+  gnutls_global_deinit ();
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Simple client example in C++,  Next: Helper functions for TCP connections,  Prev: Simple client example with SRP authentication,  Up: Client examples
+
+8.1.11 Simple client example using the C++ API
+----------------------------------------------
+
+The following client is a simple example of a client client utilizing
+the GnuTLS C++ API.
+
+#include <config.h>
+#include <iostream>
+#include <stdexcept>
+#include <gnutls/gnutls.h>
+#include <gnutls/gnutlsxx.h>
+#include <cstring> /* for strlen */
+
+/* A very basic TLS client, with anonymous authentication.
+ * written by Eduardo Villanueva Che.
+ */
+
+#define MAX_BUF 1024
+#define SA struct sockaddr
+
+#define CAFILE "ca.pem"
+#define MSG "GET / HTTP/1.0\r\n\r\n"
+
+extern "C"
+{
+    int tcp_connect(void);
+    void tcp_close(int sd);
+}
+
+
+int main(void)
+{
+    int sd = -1;
+    gnutls_global_init();
+
+    try
+    {
+
+        /* Allow connections to servers that have OpenPGP keys as well.
+         */
+        gnutls::client_session session;
+
+        /* X509 stuff */
+        gnutls::certificate_credentials credentials;
+
+
+        /* sets the trusted cas file
+         */
+        credentials.set_x509_trust_file(CAFILE, GNUTLS_X509_FMT_PEM);
+        /* put the x509 credentials to the current session
+         */
+        session.set_credentials(credentials);
+
+        /* Use default priorities */
+        session.set_priority ("NORMAL", NULL);
+
+        /* connect to the peer
+         */
+        sd = tcp_connect();
+        session.set_transport_ptr((gnutls_transport_ptr_t) (ptrdiff_t)sd);
+
+        /* Perform the TLS handshake
+         */
+        int ret = session.handshake();
+        if (ret < 0)
+        {
+            throw std::runtime_error("Handshake failed");
+        }
+        else
+        {
+            std::cout << "- Handshake was completed" << std::endl;
+        }
+
+        session.send(MSG, strlen(MSG));
+        char buffer[MAX_BUF + 1];
+        ret = session.recv(buffer, MAX_BUF);
+        if (ret == 0)
+        {
+            throw std::runtime_error("Peer has closed the TLS connection");
+        }
+        else if (ret < 0)
+        {
+            throw std::runtime_error(gnutls_strerror(ret));
+        }
+
+        std::cout << "- Received " << ret << " bytes:" << std::endl;
+        std::cout.write(buffer, ret);
+        std::cout << std::endl;
+
+        session.bye(GNUTLS_SHUT_RDWR);
+    }
+    catch (std::exception &ex)
+    {
+        std::cerr << "Exception caught: " << ex.what() << std::endl;
+    }
+
+    if (sd != -1)
+        tcp_close(sd);
+
+    gnutls_global_deinit();
+
+    return 0;
+}
+
+\1f
+File: gnutls.info,  Node: Helper functions for TCP connections,  Next: Helper functions for UDP connections,  Prev: Simple client example in C++,  Up: Client examples
+
+8.1.12 Helper functions for TCP connections
+-------------------------------------------
+
+Those helper function abstract away TCP connection handling from the
+other examples.  It is required to build some examples.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <unistd.h>
+
+/* tcp.c */
+int tcp_connect (void);
+void tcp_close (int sd);
+
+/* Connects to the peer and returns a socket
+ * descriptor.
+ */
+extern int
+tcp_connect (void)
+{
+  const char *PORT = "5556";
+  const char *SERVER = "127.0.0.1";
+  int err, sd;
+  struct sockaddr_in sa;
+
+  /* connects to server
+   */
+  sd = socket (AF_INET, SOCK_STREAM, 0);
+
+  memset (&sa, '\0', sizeof (sa));
+  sa.sin_family = AF_INET;
+  sa.sin_port = htons (atoi (PORT));
+  inet_pton (AF_INET, SERVER, &sa.sin_addr);
+
+  err = connect (sd, (struct sockaddr *) & sa, sizeof (sa));
+  if (err < 0)
+    {
+      fprintf (stderr, "Connect error\n");
+      exit (1);
+    }
+
+  return sd;
+}
+
+/* closes the given socket descriptor.
+ */
+extern void
+tcp_close (int sd)
+{
+  shutdown (sd, SHUT_RDWR);     /* no more receptions */
+  close (sd);
+}
+
+\1f
+File: gnutls.info,  Node: Helper functions for UDP connections,  Prev: Helper functions for TCP connections,  Up: Client examples
+
+8.1.13 Helper functions for UDP connections
+-------------------------------------------
+
+The UDP helper functions abstract away UDP connection handling from the
+other examples.  It is required to build the examples using UDP.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <unistd.h>
+
+/* udp.c */
+int udp_connect (void);
+void udp_close (int sd);
+
+/* Connects to the peer and returns a socket
+ * descriptor.
+ */
+extern int
+udp_connect (void)
+{
+  const char *PORT = "5557";
+  const char *SERVER = "127.0.0.1";
+  int err, sd, optval;
+  struct sockaddr_in sa;
+
+  /* connects to server
+   */
+  sd = socket (AF_INET, SOCK_DGRAM, 0);
+
+  memset (&sa, '\0', sizeof (sa));
+  sa.sin_family = AF_INET;
+  sa.sin_port = htons (atoi (PORT));
+  inet_pton (AF_INET, SERVER, &sa.sin_addr);
+
+#if defined(IP_DONTFRAG)
+  optval = 1;
+  setsockopt (sd, IPPROTO_IP, IP_DONTFRAG,
+              (const void *) &optval, sizeof (optval));
+#elif defined(IP_MTU_DISCOVER)
+  optval = IP_PMTUDISC_DO;
+  setsockopt(sd, IPPROTO_IP, IP_MTU_DISCOVER,
+             (const void*) &optval, sizeof (optval));
+#endif
+
+  err = connect (sd, (struct sockaddr *) & sa, sizeof (sa));
+  if (err < 0)
+    {
+      fprintf (stderr, "Connect error\n");
+      exit (1);
+    }
+
+  return sd;
+}
+
+/* closes the given socket descriptor.
+ */
+extern void
+udp_close (int sd)
+{
+  close (sd);
+}
+
+\1f
+File: gnutls.info,  Node: Server examples,  Next: OCSP example,  Prev: Client examples,  Up: GnuTLS application examples
+
+8.2 Server examples
+===================
+
+This section contains examples of TLS and SSL servers, using GnuTLS.
+
+* Menu:
+
+* Echo server with X.509 authentication::
+* Echo server with OpenPGP authentication::
+* Echo server with SRP authentication::
+* Echo server with anonymous authentication::
+* DTLS echo server with X.509 authentication::
+
+\1f
+File: gnutls.info,  Node: Echo server with X.509 authentication,  Next: Echo server with OpenPGP authentication,  Up: Server examples
+
+8.2.1 Echo server with X.509 authentication
+-------------------------------------------
+
+This example is a very simple echo server which supports X.509
+authentication.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <string.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+
+#define KEYFILE "key.pem"
+#define CERTFILE "cert.pem"
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+#define CRLFILE "crl.pem"
+
+/* This is a sample TLS 1.0 echo server, using X.509 authentication.
+ */
+
+#define MAX_BUF 1024
+#define PORT 5556               /* listen to 5556 port */
+
+/* These are global */
+gnutls_certificate_credentials_t x509_cred;
+gnutls_priority_t priority_cache;
+
+static gnutls_session_t
+initialize_tls_session (void)
+{
+  gnutls_session_t session;
+
+  gnutls_init (&session, GNUTLS_SERVER);
+
+  gnutls_priority_set (session, priority_cache);
+
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+
+  /* We don't request any certificate from the client.
+   * If we did we would need to verify it.
+   */
+  gnutls_certificate_server_set_request (session, GNUTLS_CERT_IGNORE);
+
+  return session;
+}
+
+static gnutls_dh_params_t dh_params;
+
+static int
+generate_dh_params (void)
+{
+  int bits = gnutls_sec_param_to_pk_bits (GNUTLS_PK_DH, GNUTLS_SEC_PARAM_LOW);
+
+  /* Generate Diffie-Hellman parameters - for use with DHE
+   * kx algorithms. When short bit length is used, it might
+   * be wise to regenerate parameters often.
+   */
+  gnutls_dh_params_init (&dh_params);
+  gnutls_dh_params_generate2 (dh_params, bits);
+
+  return 0;
+}
+
+int
+main (void)
+{
+  int listen_sd;
+  int sd, ret;
+  struct sockaddr_in sa_serv;
+  struct sockaddr_in sa_cli;
+  socklen_t client_len;
+  char topbuf[512];
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  int optval = 1;
+
+  /* this must be called once in the program
+   */
+  gnutls_global_init ();
+
+  gnutls_certificate_allocate_credentials (&x509_cred);
+  /* gnutls_certificate_set_x509_system_trust(xcred); */
+  gnutls_certificate_set_x509_trust_file (x509_cred, CAFILE,
+                                          GNUTLS_X509_FMT_PEM);
+
+  gnutls_certificate_set_x509_crl_file (x509_cred, CRLFILE,
+                                        GNUTLS_X509_FMT_PEM);
+
+  ret = gnutls_certificate_set_x509_key_file (x509_cred, CERTFILE, KEYFILE,
+                                        GNUTLS_X509_FMT_PEM);
+  if (ret < 0)
+    {
+      printf("No certificate or key were found\n");
+      exit(1);
+    }
+
+  generate_dh_params ();
+
+  gnutls_priority_init (&priority_cache, "PERFORMANCE:%SERVER_PRECEDENCE", NULL);
+
+
+  gnutls_certificate_set_dh_params (x509_cred, dh_params);
+
+  /* Socket operations
+   */
+  listen_sd = socket (AF_INET, SOCK_STREAM, 0);
+
+  memset (&sa_serv, '\0', sizeof (sa_serv));
+  sa_serv.sin_family = AF_INET;
+  sa_serv.sin_addr.s_addr = INADDR_ANY;
+  sa_serv.sin_port = htons (PORT);      /* Server Port number */
+
+  setsockopt (listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *) &optval,
+              sizeof (int));
+
+  bind (listen_sd, (struct sockaddr *) & sa_serv, sizeof (sa_serv));
+
+  listen (listen_sd, 1024);
+
+  printf ("Server ready. Listening to port '%d'.\n\n", PORT);
+
+  client_len = sizeof (sa_cli);
+  for (;;)
+    {
+      session = initialize_tls_session ();
+
+      sd = accept (listen_sd, (struct sockaddr *) & sa_cli, &client_len);
+
+      printf ("- connection from %s, port %d\n",
+              inet_ntop (AF_INET, &sa_cli.sin_addr, topbuf,
+                         sizeof (topbuf)), ntohs (sa_cli.sin_port));
+
+      gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+      do
+        {
+          ret = gnutls_handshake (session);
+        }
+      while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+      if (ret < 0)
+        {
+          close (sd);
+          gnutls_deinit (session);
+          fprintf (stderr, "*** Handshake has failed (%s)\n\n",
+                   gnutls_strerror (ret));
+          continue;
+        }
+      printf ("- Handshake was completed\n");
+
+      /* see the Getting peer's information example */
+      /* print_info(session); */
+
+      for (;;)
+        {
+          memset (buffer, 0, MAX_BUF + 1);
+          ret = gnutls_record_recv (session, buffer, MAX_BUF);
+
+          if (ret == 0)
+            {
+              printf ("\n- Peer has closed the GnuTLS connection\n");
+              break;
+            }
+          else if (ret < 0)
+            {
+              fprintf (stderr, "\n*** Received corrupted "
+                       "data(%d). Closing the connection.\n\n", ret);
+              break;
+            }
+          else if (ret > 0)
+            {
+              /* echo data back to the client
+               */
+              gnutls_record_send (session, buffer, strlen (buffer));
+            }
+        }
+      printf ("\n");
+      /* do not wait for the peer to close the connection.
+       */
+      gnutls_bye (session, GNUTLS_SHUT_WR);
+
+      close (sd);
+      gnutls_deinit (session);
+
+    }
+  close (listen_sd);
+
+  gnutls_certificate_free_credentials (x509_cred);
+  gnutls_priority_deinit (priority_cache);
+
+  gnutls_global_deinit ();
+
+  return 0;
+
+}
+
+\1f
+File: gnutls.info,  Node: Echo server with OpenPGP authentication,  Next: Echo server with SRP authentication,  Prev: Echo server with X.509 authentication,  Up: Server examples
+
+8.2.2 Echo server with OpenPGP authentication
+---------------------------------------------
+
+The following example is an echo server which supports OpenPGP key
+authentication.  You can easily combine this functionality --that is
+have a server that supports both X.509 and OpenPGP certificates-- but we
+separated them to keep these examples as simple as possible.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <string.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/openpgp.h>
+
+#define KEYFILE "secret.asc"
+#define CERTFILE "public.asc"
+#define RINGFILE "ring.gpg"
+
+/* This is a sample TLS 1.0-OpenPGP echo server.
+ */
+
+
+#define SOCKET_ERR(err,s) if(err==-1) {perror(s);return(1);}
+#define MAX_BUF 1024
+#define PORT 5556               /* listen to 5556 port */
+#define DH_BITS 1024
+
+/* These are global */
+gnutls_certificate_credentials_t cred;
+gnutls_dh_params_t dh_params;
+
+static int
+generate_dh_params (void)
+{
+
+  /* Generate Diffie-Hellman parameters - for use with DHE
+   * kx algorithms. These should be discarded and regenerated
+   * once a day, once a week or once a month. Depending on the
+   * security requirements.
+   */
+  gnutls_dh_params_init (&dh_params);
+  gnutls_dh_params_generate2 (dh_params, DH_BITS);
+
+  return 0;
+}
+
+static gnutls_session_t
+initialize_tls_session (void)
+{
+  gnutls_session_t session;
+
+  gnutls_init (&session, GNUTLS_SERVER);
+
+  gnutls_priority_set_direct (session, "NORMAL:+CTYPE-OPENPGP", NULL);
+
+  /* request client certificate if any.
+   */
+  gnutls_certificate_server_set_request (session, GNUTLS_CERT_REQUEST);
+
+  gnutls_dh_set_prime_bits (session, DH_BITS);
+
+  return session;
+}
+
+int
+main (void)
+{
+  int err, listen_sd;
+  int sd, ret;
+  struct sockaddr_in sa_serv;
+  struct sockaddr_in sa_cli;
+  socklen_t client_len;
+  char topbuf[512];
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  int optval = 1;
+  char name[256];
+
+  strcpy (name, "Echo Server");
+
+  /* this must be called once in the program
+   */
+  gnutls_global_init ();
+
+  gnutls_certificate_allocate_credentials (&cred);
+  gnutls_certificate_set_openpgp_keyring_file (cred, RINGFILE,
+                                               GNUTLS_OPENPGP_FMT_BASE64);
+
+  gnutls_certificate_set_openpgp_key_file (cred, CERTFILE, KEYFILE,
+                                           GNUTLS_OPENPGP_FMT_BASE64);
+
+  generate_dh_params ();
+
+  gnutls_certificate_set_dh_params (cred, dh_params);
+
+  /* Socket operations
+   */
+  listen_sd = socket (AF_INET, SOCK_STREAM, 0);
+  SOCKET_ERR (listen_sd, "socket");
+
+  memset (&sa_serv, '\0', sizeof (sa_serv));
+  sa_serv.sin_family = AF_INET;
+  sa_serv.sin_addr.s_addr = INADDR_ANY;
+  sa_serv.sin_port = htons (PORT);      /* Server Port number */
+
+  setsockopt (listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *) &optval,
+              sizeof (int));
+
+  err = bind (listen_sd, (struct sockaddr *) & sa_serv, sizeof (sa_serv));
+  SOCKET_ERR (err, "bind");
+  err = listen (listen_sd, 1024);
+  SOCKET_ERR (err, "listen");
+
+  printf ("%s ready. Listening to port '%d'.\n\n", name, PORT);
+
+  client_len = sizeof (sa_cli);
+  for (;;)
+    {
+      session = initialize_tls_session ();
+
+      sd = accept (listen_sd, (struct sockaddr *) & sa_cli, &client_len);
+
+      printf ("- connection from %s, port %d\n",
+              inet_ntop (AF_INET, &sa_cli.sin_addr, topbuf,
+                         sizeof (topbuf)), ntohs (sa_cli.sin_port));
+
+      gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+      ret = gnutls_handshake (session);
+      if (ret < 0)
+        {
+          close (sd);
+          gnutls_deinit (session);
+          fprintf (stderr, "*** Handshake has failed (%s)\n\n",
+                   gnutls_strerror (ret));
+          continue;
+        }
+      printf ("- Handshake was completed\n");
+
+      /* see the Getting peer's information example */
+      /* print_info(session); */
+
+      for (;;)
+        {
+          memset (buffer, 0, MAX_BUF + 1);
+          ret = gnutls_record_recv (session, buffer, MAX_BUF);
+
+          if (ret == 0)
+            {
+              printf ("\n- Peer has closed the GnuTLS connection\n");
+              break;
+            }
+          else if (ret < 0)
+            {
+              fprintf (stderr, "\n*** Received corrupted "
+                       "data(%d). Closing the connection.\n\n", ret);
+              break;
+            }
+          else if (ret > 0)
+            {
+              /* echo data back to the client
+               */
+              gnutls_record_send (session, buffer, strlen (buffer));
+            }
+        }
+      printf ("\n");
+      /* do not wait for the peer to close the connection.
+       */
+      gnutls_bye (session, GNUTLS_SHUT_WR);
+
+      close (sd);
+      gnutls_deinit (session);
+
+    }
+  close (listen_sd);
+
+  gnutls_certificate_free_credentials (cred);
+
+  gnutls_global_deinit ();
+
+  return 0;
+
+}
+
+\1f
+File: gnutls.info,  Node: Echo server with SRP authentication,  Next: Echo server with anonymous authentication,  Prev: Echo server with OpenPGP authentication,  Up: Server examples
+
+8.2.3 Echo server with SRP authentication
+-----------------------------------------
+
+This is a server which supports SRP authentication.  It is also possible
+to combine this functionality with a certificate server.  Here it is
+separate for simplicity.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <string.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+
+#define SRP_PASSWD "tpasswd"
+#define SRP_PASSWD_CONF "tpasswd.conf"
+
+#define KEYFILE "key.pem"
+#define CERTFILE "cert.pem"
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+
+/* This is a sample TLS-SRP echo server.
+ */
+
+#define SOCKET_ERR(err,s) if(err==-1) {perror(s);return(1);}
+#define MAX_BUF 1024
+#define PORT 5556               /* listen to 5556 port */
+
+/* These are global */
+gnutls_srp_server_credentials_t srp_cred;
+gnutls_certificate_credentials_t cert_cred;
+
+static gnutls_session_t
+initialize_tls_session (void)
+{
+  gnutls_session_t session;
+
+  gnutls_init (&session, GNUTLS_SERVER);
+
+  gnutls_priority_set_direct (session, "NORMAL:-KX-ALL:+SRP:+SRP-DSS:+SRP-RSA", NULL);
+
+  gnutls_credentials_set (session, GNUTLS_CRD_SRP, srp_cred);
+  /* for the certificate authenticated ciphersuites.
+   */
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, cert_cred);
+
+  /* request client certificate if any.
+   */
+  gnutls_certificate_server_set_request (session, GNUTLS_CERT_IGNORE);
+
+  return session;
+}
+
+int
+main (void)
+{
+  int err, listen_sd;
+  int sd, ret;
+  struct sockaddr_in sa_serv;
+  struct sockaddr_in sa_cli;
+  socklen_t client_len;
+  char topbuf[512];
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  int optval = 1;
+  char name[256];
+
+  strcpy (name, "Echo Server");
+
+  gnutls_global_init ();
+
+  /* SRP_PASSWD a password file (created with the included srptool utility)
+   */
+  gnutls_srp_allocate_server_credentials (&srp_cred);
+  gnutls_srp_set_server_credentials_file (srp_cred, SRP_PASSWD,
+                                          SRP_PASSWD_CONF);
+
+  gnutls_certificate_allocate_credentials (&cert_cred);
+  gnutls_certificate_set_x509_trust_file (cert_cred, CAFILE,
+                                          GNUTLS_X509_FMT_PEM);
+  gnutls_certificate_set_x509_key_file (cert_cred, CERTFILE, KEYFILE,
+                                        GNUTLS_X509_FMT_PEM);
+
+  /* TCP socket operations
+   */
+  listen_sd = socket (AF_INET, SOCK_STREAM, 0);
+  SOCKET_ERR (listen_sd, "socket");
+
+  memset (&sa_serv, '\0', sizeof (sa_serv));
+  sa_serv.sin_family = AF_INET;
+  sa_serv.sin_addr.s_addr = INADDR_ANY;
+  sa_serv.sin_port = htons (PORT);      /* Server Port number */
+
+  setsockopt (listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *) &optval,
+              sizeof (int));
+
+  err = bind (listen_sd, (struct sockaddr *) & sa_serv, sizeof (sa_serv));
+  SOCKET_ERR (err, "bind");
+  err = listen (listen_sd, 1024);
+  SOCKET_ERR (err, "listen");
+
+  printf ("%s ready. Listening to port '%d'.\n\n", name, PORT);
+
+  client_len = sizeof (sa_cli);
+  for (;;)
+    {
+      session = initialize_tls_session ();
+
+      sd = accept (listen_sd, (struct sockaddr *) & sa_cli, &client_len);
+
+      printf ("- connection from %s, port %d\n",
+              inet_ntop (AF_INET, &sa_cli.sin_addr, topbuf,
+                         sizeof (topbuf)), ntohs (sa_cli.sin_port));
+
+      gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
+
+      do
+        {
+          ret = gnutls_handshake (session);
+        }
+      while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+      if (ret < 0)
+        {
+          close (sd);
+          gnutls_deinit (session);
+          fprintf (stderr, "*** Handshake has failed (%s)\n\n",
+                   gnutls_strerror (ret));
+          continue;
+        }
+      printf ("- Handshake was completed\n");
+      printf ("- User %s was connected\n", gnutls_srp_server_get_username(session));
+
+      /* print_info(session); */
+
+      for (;;)
+        {
+          memset (buffer, 0, MAX_BUF + 1);
+          ret = gnutls_record_recv (session, buffer, MAX_BUF);
+
+          if (ret == 0)
+            {
+              printf ("\n- Peer has closed the GnuTLS connection\n");
+              break;
+            }
+          else if (ret < 0)
+            {
+              fprintf (stderr, "\n*** Received corrupted "
+                       "data(%d). Closing the connection.\n\n", ret);
+              break;
+            }
+          else if (ret > 0)
+            {
+              /* echo data back to the client
+               */
+              gnutls_record_send (session, buffer, strlen (buffer));
+            }
+        }
+      printf ("\n");
+      /* do not wait for the peer to close the connection. */
+      gnutls_bye (session, GNUTLS_SHUT_WR);
+
+      close (sd);
+      gnutls_deinit (session);
+
+    }
+  close (listen_sd);
+
+  gnutls_srp_free_server_credentials (srp_cred);
+  gnutls_certificate_free_credentials (cert_cred);
+
+  gnutls_global_deinit ();
+
+  return 0;
+
+}
+
+\1f
+File: gnutls.info,  Node: Echo server with anonymous authentication,  Next: DTLS echo server with X.509 authentication,  Prev: Echo server with SRP authentication,  Up: Server examples
+
+8.2.4 Echo server with anonymous authentication
+-----------------------------------------------
+
+This example server supports anonymous authentication, and could be used
+to serve the example client for anonymous authentication.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <string.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+
+/* This is a sample TLS 1.0 echo server, for anonymous authentication only.
+ */
+
+
+#define SOCKET_ERR(err,s) if(err==-1) {perror(s);return(1);}
+#define MAX_BUF 1024
+#define PORT 5556               /* listen to 5556 port */
+#define DH_BITS 1024
+
+/* These are global */
+gnutls_anon_server_credentials_t anoncred;
+
+static gnutls_session_t
+initialize_tls_session (void)
+{
+  gnutls_session_t session;
+
+  gnutls_init (&session, GNUTLS_SERVER);
+
+  gnutls_priority_set_direct (session, "NORMAL:+ANON-ECDH:+ANON-DH", NULL);
+
+  gnutls_credentials_set (session, GNUTLS_CRD_ANON, anoncred);
+
+  gnutls_dh_set_prime_bits (session, DH_BITS);
+
+  return session;
+}
+
+static gnutls_dh_params_t dh_params;
+
+static int
+generate_dh_params (void)
+{
+
+  /* Generate Diffie-Hellman parameters - for use with DHE
+   * kx algorithms. These should be discarded and regenerated
+   * once a day, once a week or once a month. Depending on the
+   * security requirements.
+   */
+  gnutls_dh_params_init (&dh_params);
+  gnutls_dh_params_generate2 (dh_params, DH_BITS);
+
+  return 0;
+}
+
+int
+main (void)
+{
+  int err, listen_sd;
+  int sd, ret;
+  struct sockaddr_in sa_serv;
+  struct sockaddr_in sa_cli;
+  socklen_t client_len;
+  char topbuf[512];
+  gnutls_session_t session;
+  char buffer[MAX_BUF + 1];
+  int optval = 1;
+
+  /* this must be called once in the program
+   */
+  gnutls_global_init ();
+
+  gnutls_anon_allocate_server_credentials (&anoncred);
+
+  generate_dh_params ();
+
+  gnutls_anon_set_server_dh_params (anoncred, dh_params);
+
+  /* Socket operations
+   */
+  listen_sd = socket (AF_INET, SOCK_STREAM, 0);
+  SOCKET_ERR (listen_sd, "socket");
+
+  memset (&sa_serv, '\0', sizeof (sa_serv));
+  sa_serv.sin_family = AF_INET;
+  sa_serv.sin_addr.s_addr = INADDR_ANY;
+  sa_serv.sin_port = htons (PORT);      /* Server Port number */
+
+  setsockopt (listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *) &optval,
+              sizeof (int));
+
+  err = bind (listen_sd, (struct sockaddr *) & sa_serv, sizeof (sa_serv));
+  SOCKET_ERR (err, "bind");
+  err = listen (listen_sd, 1024);
+  SOCKET_ERR (err, "listen");
+
+  printf ("Server ready. Listening to port '%d'.\n\n", PORT);
+
+  client_len = sizeof (sa_cli);
+  for (;;)
+    {
+      session = initialize_tls_session ();
+
+      sd = accept (listen_sd, (struct sockaddr *) & sa_cli, &client_len);
+
+      printf ("- connection from %s, port %d\n",
+              inet_ntop (AF_INET, &sa_cli.sin_addr, topbuf,
+                         sizeof (topbuf)), ntohs (sa_cli.sin_port));
+
+      gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) ((ptrdiff_t) sd));
+
+      do
+        {
+          ret = gnutls_handshake (session);
+        }
+      while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+      if (ret < 0)
+        {
+          close (sd);
+          gnutls_deinit (session);
+          fprintf (stderr, "*** Handshake has failed (%s)\n\n",
+                   gnutls_strerror (ret));
+          continue;
+        }
+      printf ("- Handshake was completed\n");
+
+      /* see the Getting peer's information example */
+      /* print_info(session); */
+
+      for (;;)
+        {
+          memset (buffer, 0, MAX_BUF + 1);
+          ret = gnutls_record_recv (session, buffer, MAX_BUF);
+
+          if (ret == 0)
+            {
+              printf ("\n- Peer has closed the GnuTLS connection\n");
+              break;
+            }
+          else if (ret < 0)
+            {
+              fprintf (stderr, "\n*** Received corrupted "
+                       "data(%d). Closing the connection.\n\n", ret);
+              break;
+            }
+          else if (ret > 0)
+            {
+              /* echo data back to the client
+               */
+              gnutls_record_send (session, buffer, strlen (buffer));
+            }
+        }
+      printf ("\n");
+      /* do not wait for the peer to close the connection.
+       */
+      gnutls_bye (session, GNUTLS_SHUT_WR);
+
+      close (sd);
+      gnutls_deinit (session);
+
+    }
+  close (listen_sd);
+
+  gnutls_anon_free_server_credentials (anoncred);
+
+  gnutls_global_deinit ();
+
+  return 0;
+
+}
+
+\1f
+File: gnutls.info,  Node: DTLS echo server with X.509 authentication,  Prev: Echo server with anonymous authentication,  Up: Server examples
+
+8.2.5 DTLS echo server with X.509 authentication
+------------------------------------------------
+
+This example is a very simple echo server using Datagram TLS and X.509
+authentication.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <sys/select.h>
+#include <netdb.h>
+#include <string.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/dtls.h>
+
+#define KEYFILE "key.pem"
+#define CERTFILE "cert.pem"
+#define CAFILE "/etc/ssl/certs/ca-certificates.crt"
+#define CRLFILE "crl.pem"
+
+/* This is a sample DTLS echo server, using X.509 authentication.
+ * Note that error checking is minimal to simplify the example.
+ */
+
+#define MAX_BUFFER 1024
+#define PORT 5556
+
+typedef struct
+{
+  gnutls_session_t session;
+  int fd;
+  struct sockaddr *cli_addr;
+  socklen_t cli_addr_size;
+} priv_data_st;
+
+static int pull_timeout_func (gnutls_transport_ptr_t ptr, unsigned int ms);
+static ssize_t push_func (gnutls_transport_ptr_t p, const void *data,
+                          size_t size);
+static ssize_t pull_func (gnutls_transport_ptr_t p, void *data, size_t size);
+static const char *human_addr (const struct sockaddr *sa, socklen_t salen,
+                               char *buf, size_t buflen);
+static int wait_for_connection (int fd);
+static gnutls_session_t initialize_tls_session (void);
+static int generate_dh_params (void);
+
+/* Use global credentials and parameters to simplify
+ * the example. */
+static gnutls_certificate_credentials_t x509_cred;
+static gnutls_priority_t priority_cache;
+static gnutls_dh_params_t dh_params;
+
+int
+main (void)
+{
+  int listen_sd;
+  int sock, ret;
+  struct sockaddr_in sa_serv;
+  struct sockaddr_in cli_addr;
+  socklen_t cli_addr_size;
+  gnutls_session_t session;
+  char buffer[MAX_BUFFER];
+  priv_data_st priv;
+  gnutls_datum_t cookie_key;
+  gnutls_dtls_prestate_st prestate;
+  int mtu = 1400;
+  unsigned char sequence[8];
+
+  /* this must be called once in the program
+   */
+  gnutls_global_init ();
+
+  gnutls_certificate_allocate_credentials (&x509_cred);
+  gnutls_certificate_set_x509_trust_file (x509_cred, CAFILE,
+                                          GNUTLS_X509_FMT_PEM);
+
+  gnutls_certificate_set_x509_crl_file (x509_cred, CRLFILE,
+                                        GNUTLS_X509_FMT_PEM);
+
+  ret = gnutls_certificate_set_x509_key_file (x509_cred, CERTFILE, KEYFILE,
+                                        GNUTLS_X509_FMT_PEM);
+  if (ret < 0)
+    {
+      printf("No certificate or key were found\n");
+      exit(1);
+    }
+
+  generate_dh_params ();
+
+  gnutls_certificate_set_dh_params (x509_cred, dh_params);
+
+  gnutls_priority_init (&priority_cache,
+                        "PERFORMANCE:-VERS-TLS-ALL:+VERS-DTLS1.0:%SERVER_PRECEDENCE",
+                        NULL);
+
+  gnutls_key_generate (&cookie_key, GNUTLS_COOKIE_KEY_SIZE);
+
+  /* Socket operations
+   */
+  listen_sd = socket (AF_INET, SOCK_DGRAM, 0);
+
+  memset (&sa_serv, '\0', sizeof (sa_serv));
+  sa_serv.sin_family = AF_INET;
+  sa_serv.sin_addr.s_addr = INADDR_ANY;
+  sa_serv.sin_port = htons (PORT);
+
+  { /* DTLS requires the IP don't fragment (DF) bit to be set */
+#if defined(IP_DONTFRAG)
+    int optval = 1;
+    setsockopt (listen_sd, IPPROTO_IP, IP_DONTFRAG,
+                (const void *) &optval, sizeof (optval));
+#elif defined(IP_MTU_DISCOVER)
+    int optval = IP_PMTUDISC_DO;
+    setsockopt(listen_sd, IPPROTO_IP, IP_MTU_DISCOVER,
+               (const void*) &optval, sizeof (optval));
+#endif
+  }
+
+  bind (listen_sd, (struct sockaddr *) &sa_serv, sizeof (sa_serv));
+
+  printf ("UDP server ready. Listening to port '%d'.\n\n", PORT);
+
+  for (;;)
+    {
+      printf ("Waiting for connection...\n");
+      sock = wait_for_connection (listen_sd);
+      if (sock < 0)
+        continue;
+
+      cli_addr_size = sizeof (cli_addr);
+      ret = recvfrom (sock, buffer, sizeof (buffer), MSG_PEEK,
+                      (struct sockaddr *) &cli_addr, &cli_addr_size);
+      if (ret > 0)
+        {
+          memset (&prestate, 0, sizeof (prestate));
+          ret = gnutls_dtls_cookie_verify (&cookie_key, &cli_addr,
+                                           sizeof (cli_addr), buffer, ret,
+                                           &prestate);
+          if (ret < 0)          /* cookie not valid */
+            {
+              priv_data_st s;
+
+              memset (&s, 0, sizeof (s));
+              s.fd = sock;
+              s.cli_addr = (void *) &cli_addr;
+              s.cli_addr_size = sizeof (cli_addr);
+
+              printf ("Sending hello verify request to %s\n",
+                      human_addr ((struct sockaddr *) &cli_addr,
+                                  sizeof (cli_addr), buffer,
+                                  sizeof (buffer)));
+
+              gnutls_dtls_cookie_send (&cookie_key, &cli_addr,
+                                       sizeof (cli_addr), &prestate,
+                                       (gnutls_transport_ptr_t) & s,
+                                       push_func);
+
+              /* discard peeked data */
+              recvfrom (sock, buffer, sizeof (buffer), 0,
+                        (struct sockaddr *) &cli_addr, &cli_addr_size);
+              usleep (100);
+              continue;
+            }
+          printf ("Accepted connection from %s\n",
+                  human_addr ((struct sockaddr *)
+                              &cli_addr, sizeof (cli_addr), buffer,
+                              sizeof (buffer)));
+        }
+      else
+        continue;
+
+      session = initialize_tls_session ();
+      gnutls_dtls_prestate_set (session, &prestate);
+      gnutls_dtls_set_mtu (session, mtu);
+
+      priv.session = session;
+      priv.fd = sock;
+      priv.cli_addr = (struct sockaddr *) &cli_addr;
+      priv.cli_addr_size = sizeof (cli_addr);
+
+      gnutls_transport_set_ptr (session, &priv);
+      gnutls_transport_set_push_function (session, push_func);
+      gnutls_transport_set_pull_function (session, pull_func);
+      gnutls_transport_set_pull_timeout_function (session, pull_timeout_func);
+
+      do
+        {
+          ret = gnutls_handshake (session);
+        }
+      while (ret < 0 && gnutls_error_is_fatal (ret) == 0);
+
+      if (ret < 0)
+        {
+          fprintf (stderr, "Error in handshake(): %s\n",
+                   gnutls_strerror (ret));
+          gnutls_deinit (session);
+          continue;
+        }
+
+      printf ("- Handshake was completed\n");
+
+      for (;;)
+        {
+          do
+            {
+              ret = gnutls_record_recv_seq (session, buffer, MAX_BUFFER,
+                                            sequence);
+            }
+          while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+
+          if (ret < 0)
+            {
+              fprintf (stderr, "Error in recv(): %s\n",
+                       gnutls_strerror (ret));
+              break;
+            }
+          if (ret == 0)
+            {
+              printf ("EOF\n\n");
+              break;
+            }
+          buffer[ret] = 0;
+          printf ("received[%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x]: %s\n",
+                  sequence[0], sequence[1], sequence[2], sequence[3],
+                  sequence[4], sequence[5], sequence[6], sequence[7], buffer);
+
+          /* reply back */
+          ret = gnutls_record_send (session, buffer, ret);
+          if (ret < 0)
+            {
+              fprintf (stderr, "Error in send(): %s\n",
+                       gnutls_strerror (ret));
+              break;
+            }
+        }
+
+      gnutls_bye (session, GNUTLS_SHUT_WR);
+      gnutls_deinit (session);
+
+    }
+  close (listen_sd);
+
+  gnutls_certificate_free_credentials (x509_cred);
+  gnutls_priority_deinit (priority_cache);
+
+  gnutls_global_deinit ();
+
+  return 0;
+
+}
+
+static int
+wait_for_connection (int fd)
+{
+  fd_set rd, wr;
+  int n;
+
+  FD_ZERO (&rd);
+  FD_ZERO (&wr);
+
+  FD_SET (fd, &rd);
+
+  /* waiting part */
+  n = select (fd + 1, &rd, &wr, NULL, NULL);
+  if (n == -1 && errno == EINTR)
+    return -1;
+  if (n < 0)
+    {
+      perror ("select()");
+      exit (1);
+    }
+
+  return fd;
+}
+
+/* Wait for data to be received within a timeout period in milliseconds
+ */
+static int
+pull_timeout_func (gnutls_transport_ptr_t ptr, unsigned int ms)
+{
+  fd_set rfds;
+  struct timeval tv;
+  priv_data_st *priv = ptr;
+  struct sockaddr_in cli_addr;
+  socklen_t cli_addr_size;
+  int ret;
+  char c;
+
+  FD_ZERO (&rfds);
+  FD_SET (priv->fd, &rfds);
+
+  tv.tv_sec = 0;
+  tv.tv_usec = ms * 1000;
+
+  ret = select (priv->fd + 1, &rfds, NULL, NULL, &tv);
+
+  if (ret <= 0)
+    return ret;
+
+  /* only report ok if the next message is from the peer we expect
+   * from
+   */
+  cli_addr_size = sizeof (cli_addr);
+  ret =
+    recvfrom (priv->fd, &c, 1, MSG_PEEK, (struct sockaddr *) &cli_addr,
+              &cli_addr_size);
+  if (ret > 0)
+    {
+      if (cli_addr_size == priv->cli_addr_size
+          && memcmp (&cli_addr, priv->cli_addr, sizeof (cli_addr)) == 0)
+        return 1;
+    }
+
+  return 0;
+}
+
+static ssize_t
+push_func (gnutls_transport_ptr_t p, const void *data, size_t size)
+{
+  priv_data_st *priv = p;
+
+  return sendto (priv->fd, data, size, 0, priv->cli_addr,
+                 priv->cli_addr_size);
+}
+
+static ssize_t
+pull_func (gnutls_transport_ptr_t p, void *data, size_t size)
+{
+  priv_data_st *priv = p;
+  struct sockaddr_in cli_addr;
+  socklen_t cli_addr_size;
+  char buffer[64];
+  int ret;
+
+  cli_addr_size = sizeof (cli_addr);
+  ret =
+    recvfrom (priv->fd, data, size, 0, (struct sockaddr *) &cli_addr,
+              &cli_addr_size);
+  if (ret == -1)
+    return ret;
+
+  if (cli_addr_size == priv->cli_addr_size
+      && memcmp (&cli_addr, priv->cli_addr, sizeof (cli_addr)) == 0)
+    return ret;
+
+  printf ("Denied connection from %s\n",
+          human_addr ((struct sockaddr *)
+                      &cli_addr, sizeof (cli_addr), buffer, sizeof (buffer)));
+
+  gnutls_transport_set_errno (priv->session, EAGAIN);
+  return -1;
+}
+
+static const char *
+human_addr (const struct sockaddr *sa, socklen_t salen,
+            char *buf, size_t buflen)
+{
+  const char *save_buf = buf;
+  size_t l;
+
+  if (!buf || !buflen)
+    return NULL;
+
+  *buf = '\0';
+
+  switch (sa->sa_family)
+    {
+#if HAVE_IPV6
+    case AF_INET6:
+      snprintf (buf, buflen, "IPv6 ");
+      break;
+#endif
+
+    case AF_INET:
+      snprintf (buf, buflen, "IPv4 ");
+      break;
+    }
+
+  l = strlen (buf);
+  buf += l;
+  buflen -= l;
+
+  if (getnameinfo (sa, salen, buf, buflen, NULL, 0, NI_NUMERICHOST) != 0)
+    return NULL;
+
+  l = strlen (buf);
+  buf += l;
+  buflen -= l;
+
+  strncat (buf, " port ", buflen);
+
+  l = strlen (buf);
+  buf += l;
+  buflen -= l;
+
+  if (getnameinfo (sa, salen, NULL, 0, buf, buflen, NI_NUMERICSERV) != 0)
+    return NULL;
+
+  return save_buf;
+}
+
+static gnutls_session_t
+initialize_tls_session (void)
+{
+  gnutls_session_t session;
+
+  gnutls_init (&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
+
+  gnutls_priority_set (session, priority_cache);
+
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+
+  return session;
+}
+
+static int
+generate_dh_params (void)
+{
+  int bits = gnutls_sec_param_to_pk_bits (GNUTLS_PK_DH, GNUTLS_SEC_PARAM_LOW);
+
+  /* Generate Diffie-Hellman parameters - for use with DHE
+   * kx algorithms. When short bit length is used, it might
+   * be wise to regenerate parameters often.
+   */
+  gnutls_dh_params_init (&dh_params);
+  gnutls_dh_params_generate2 (dh_params, bits);
+
+  return 0;
+}
+
+\1f
+File: gnutls.info,  Node: OCSP example,  Next: Miscellaneous examples,  Prev: Server examples,  Up: GnuTLS application examples
+
+8.3 OCSP example
+================
+
+Generate OCSP request
+---------------------
+
+A small tool to generate OCSP requests.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>
+#include <gnutls/ocsp.h>
+#ifndef NO_LIBCURL
+#include <curl/curl.h>
+#endif
+#include "read-file.h"
+
+size_t get_data (void *buffer, size_t size, size_t nmemb,
+                        void *userp);
+static gnutls_x509_crt_t load_cert (const char *cert_file);
+static void _response_info (const gnutls_datum_t * data);
+static void
+_generate_request (gnutls_datum_t * rdata, const char *cert_file,
+                   const char *issuer_file);
+static int _verify_response (gnutls_datum_t * data,
+                             const char *signer_file);
+
+/* This program queries an OCSP server.
+   It expects three files. argv[1] containing the certificate to
+   be checked, argv[2] holding the issuer for this certificate,
+   and argv[3] holding a trusted certificate to verify OCSP's response.
+   argv[4] is optional and should hold the server host name.
+
+   For simplicity the libcurl library is used.
+ */
+
+int
+main (int argc, char *argv[])
+{
+    gnutls_datum_t ud, tmp;
+    int ret;
+    gnutls_datum_t req;
+#ifndef NO_LIBCURL
+    CURL *handle;
+    struct curl_slist *headers = NULL;
+#endif
+    int v, seq;
+    const char *cert_file = argv[1];
+    const char *issuer_file = argv[2];
+    const char *signer_file = argv[3];
+    char *hostname = NULL;
+
+    gnutls_global_init ();
+
+    if (argc > 4)
+        hostname = argv[4];
+
+    if (hostname == NULL)
+      {
+          gnutls_x509_crt_t cert = load_cert (cert_file);
+
+          for (seq = 0;; seq++)
+            {
+                ret = gnutls_x509_crt_get_authority_info_access (cert, seq,
+                                                                 GNUTLS_IA_OCSP_URI,
+                                                                 &tmp,
+                                                                 NULL);
+                if (ret == GNUTLS_E_UNKNOWN_ALGORITHM)
+                    continue;
+                if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+                  {
+                      fprintf (stderr,
+                               "No URI was found in the certificate.\n");
+                      exit (1);
+                  }
+                if (ret < 0)
+                  {
+                      fprintf (stderr, "error: %s\n",
+                               gnutls_strerror (ret));
+                      exit (1);
+                  }
+
+                printf ("CA issuers URI: %.*s\n", tmp.size, tmp.data);
+
+                hostname = malloc (tmp.size + 1);
+                memcpy (hostname, tmp.data, tmp.size);
+                hostname[tmp.size] = 0;
+
+                gnutls_free (tmp.data);
+                break;
+            }
+
+          gnutls_x509_crt_deinit (cert);
+      }
+
+    /* Note that the OCSP servers hostname might be available
+     * using gnutls_x509_crt_get_authority_info_access() in the issuer's
+     * certificate */
+
+    memset (&ud, 0, sizeof (ud));
+    fprintf (stderr, "Connecting to %s\n", hostname);
+
+    _generate_request (&req, cert_file, issuer_file);
+
+#ifndef NO_LIBCURL
+    curl_global_init (CURL_GLOBAL_ALL);
+
+    handle = curl_easy_init ();
+    if (handle == NULL)
+        exit (1);
+
+    headers =
+        curl_slist_append (headers,
+                           "Content-Type: application/ocsp-request");
+
+    curl_easy_setopt (handle, CURLOPT_HTTPHEADER, headers);
+    curl_easy_setopt (handle, CURLOPT_POSTFIELDS, (void *) req.data);
+    curl_easy_setopt (handle, CURLOPT_POSTFIELDSIZE, req.size);
+    curl_easy_setopt (handle, CURLOPT_URL, hostname);
+    curl_easy_setopt (handle, CURLOPT_WRITEFUNCTION, get_data);
+    curl_easy_setopt (handle, CURLOPT_WRITEDATA, &ud);
+
+    ret = curl_easy_perform (handle);
+    if (ret != 0)
+      {
+          fprintf (stderr, "curl[%d] error %d\n", __LINE__, ret);
+          exit (1);
+      }
+
+    curl_easy_cleanup (handle);
+#endif
+
+    _response_info (&ud);
+
+    v = _verify_response (&ud, signer_file);
+
+    gnutls_global_deinit ();
+
+    return v;
+}
+
+static void
+_response_info (const gnutls_datum_t * data)
+{
+    gnutls_ocsp_resp_t resp;
+    int ret;
+    gnutls_datum buf;
+
+    ret = gnutls_ocsp_resp_init (&resp);
+    if (ret < 0)
+        exit (1);
+
+    ret = gnutls_ocsp_resp_import (resp, data);
+    if (ret < 0)
+        exit (1);
+
+    ret = gnutls_ocsp_resp_print (resp, GNUTLS_OCSP_PRINT_FULL, &buf);
+    if (ret != 0)
+        exit (1);
+
+    printf ("%.*s", buf.size, buf.data);
+    gnutls_free (buf.data);
+
+    gnutls_ocsp_resp_deinit (resp);
+}
+
+static gnutls_x509_crt_t
+load_cert (const char *cert_file)
+{
+    gnutls_x509_crt_t crt;
+    int ret;
+    gnutls_datum_t data;
+    size_t size;
+
+    ret = gnutls_x509_crt_init (&crt);
+    if (ret < 0)
+        exit (1);
+
+    data.data = (void *) read_binary_file (cert_file, &size);
+    data.size = size;
+
+    if (!data.data)
+      {
+          fprintf (stderr, "Cannot open file: %s\n", cert_file);
+          exit (1);
+      }
+
+    ret = gnutls_x509_crt_import (crt, &data, GNUTLS_X509_FMT_PEM);
+    free (data.data);
+    if (ret < 0)
+      {
+          fprintf (stderr, "Cannot import certificate in %s: %s\n",
+                   cert_file, gnutls_strerror (ret));
+          exit (1);
+      }
+
+    return crt;
+}
+
+static void
+_generate_request (gnutls_datum_t * rdata, const char *cert_file,
+                   const char *issuer_file)
+{
+    gnutls_ocsp_req_t req;
+    int ret;
+    gnutls_x509_crt_t issuer, cert;
+    unsigned char noncebuf[23];
+    gnutls_datum_t nonce = { noncebuf, sizeof (noncebuf) };
+
+    ret = gnutls_ocsp_req_init (&req);
+    if (ret < 0)
+        exit (1);
+
+    issuer = load_cert (issuer_file);
+    cert = load_cert (cert_file);
+
+    ret = gnutls_ocsp_req_add_cert (req, GNUTLS_DIG_SHA1, issuer, cert);
+    if (ret < 0)
+        exit (1);
+
+    gnutls_x509_crt_deinit (issuer);
+    gnutls_x509_crt_deinit (cert);
+
+    ret = gnutls_rnd (GNUTLS_RND_RANDOM, nonce.data, nonce.size);
+    if (ret < 0)
+        exit (1);
+
+    ret = gnutls_ocsp_req_set_nonce (req, 0, &nonce);
+    if (ret < 0)
+        exit (1);
+
+    ret = gnutls_ocsp_req_export (req, rdata);
+    if (ret != 0)
+        exit (1);
+
+    gnutls_ocsp_req_deinit (req);
+
+    return;
+}
+
+static int
+_verify_response (gnutls_datum_t * data, const char *signer_file)
+{
+    gnutls_ocsp_resp_t resp;
+    int ret;
+    size_t size;
+    gnutls_x509_crt_t signer;
+    unsigned verify;
+    gnutls_datum_t dat;
+
+    ret = gnutls_ocsp_resp_init (&resp);
+    if (ret < 0)
+        exit (1);
+
+    ret = gnutls_ocsp_resp_import (resp, data);
+    if (ret < 0)
+        exit (1);
+
+    ret = gnutls_x509_crt_init (&signer);
+    if (ret < 0)
+        exit (1);
+
+    dat.data = (void *) read_binary_file (signer_file, &size);
+    if (dat.data == NULL)
+        exit (1);
+
+    dat.size = size;
+
+    ret = gnutls_x509_crt_import (signer, &dat, GNUTLS_X509_FMT_PEM);
+    free (dat.data);
+    if (ret < 0)
+        exit (1);
+
+    ret = gnutls_ocsp_resp_verify_direct (resp, signer, &verify, 0);
+    if (ret < 0)
+        exit (1);
+
+    printf ("Verifying OCSP Response: ");
+    if (verify == 0)
+        printf ("Verification success!\n");
+    else
+        printf ("Verification error!\n");
+
+    if (verify & GNUTLS_OCSP_VERIFY_SIGNER_NOT_FOUND)
+        printf ("Signer cert not found\n");
+
+    if (verify & GNUTLS_OCSP_VERIFY_SIGNER_KEYUSAGE_ERROR)
+        printf ("Signer cert keyusage error\n");
+
+    if (verify & GNUTLS_OCSP_VERIFY_UNTRUSTED_SIGNER)
+        printf ("Signer cert is not trusted\n");
+
+    if (verify & GNUTLS_OCSP_VERIFY_INSECURE_ALGORITHM)
+        printf ("Insecure algorithm\n");
+
+    if (verify & GNUTLS_OCSP_VERIFY_SIGNATURE_FAILURE)
+        printf ("Signature failure\n");
+
+    if (verify & GNUTLS_OCSP_VERIFY_CERT_NOT_ACTIVATED)
+        printf ("Signer cert not yet activated\n");
+
+    if (verify & GNUTLS_OCSP_VERIFY_CERT_EXPIRED)
+        printf ("Signer cert expired\n");
+
+    gnutls_ocsp_resp_deinit (resp);
+
+    return verify;
+}
+
+size_t
+get_data (void *buffer, size_t size, size_t nmemb, void *userp)
+{
+    gnutls_datum_t *ud = userp;
+
+    size *= nmemb;
+
+    ud->data = realloc (ud->data, size + ud->size);
+    if (ud->data == NULL)
+      {
+          fprintf (stderr, "Not enough memory for the request\n");
+          exit (1);
+      }
+
+    memcpy (&ud->data[ud->size], buffer, size);
+    ud->size += size;
+
+    return size;
+}
+
+\1f
+File: gnutls.info,  Node: Miscellaneous examples,  Prev: OCSP example,  Up: GnuTLS application examples
+
+8.4 Miscellaneous examples
+==========================
+
+* Menu:
+
+* Checking for an alert::
+* X.509 certificate parsing example::
+* Listing the ciphersuites in a priority string::
+
+\1f
+File: gnutls.info,  Node: Checking for an alert,  Next: X.509 certificate parsing example,  Up: Miscellaneous examples
+
+8.4.1 Checking for an alert
+---------------------------
+
+This is a function that checks if an alert has been received in the
+current session.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <gnutls/gnutls.h>
+
+#include "examples.h"
+
+/* This function will check whether the given return code from
+ * a gnutls function (recv/send), is an alert, and will print
+ * that alert.
+ */
+void
+check_alert (gnutls_session_t session, int ret)
+{
+  int last_alert;
+
+  if (ret == GNUTLS_E_WARNING_ALERT_RECEIVED
+      || ret == GNUTLS_E_FATAL_ALERT_RECEIVED)
+    {
+      last_alert = gnutls_alert_get (session);
+
+      /* The check for renegotiation is only useful if we are
+       * a server, and we had requested a rehandshake.
+       */
+      if (last_alert == GNUTLS_A_NO_RENEGOTIATION &&
+          ret == GNUTLS_E_WARNING_ALERT_RECEIVED)
+        printf ("* Received NO_RENEGOTIATION alert. "
+                "Client Does not support renegotiation.\n");
+      else
+        printf ("* Received alert '%d': %s.\n", last_alert,
+                gnutls_alert_get_name (last_alert));
+    }
+}
+
+\1f
+File: gnutls.info,  Node: X.509 certificate parsing example,  Next: Listing the ciphersuites in a priority string,  Prev: Checking for an alert,  Up: Miscellaneous examples
+
+8.4.2 X.509 certificate parsing example
+---------------------------------------
+
+To demonstrate the X.509 parsing capabilities an example program is
+listed below.  That program reads the peer's certificate, and prints
+information about it.
+
+/* This example code is placed in the public domain. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "examples.h"
+
+static const char *
+bin2hex (const void *bin, size_t bin_size)
+{
+  static char printable[110];
+  const unsigned char *_bin = bin;
+  char *print;
+  size_t i;
+
+  if (bin_size > 50)
+    bin_size = 50;
+
+  print = printable;
+  for (i = 0; i < bin_size; i++)
+    {
+      sprintf (print, "%.2x ", _bin[i]);
+      print += 2;
+    }
+
+  return printable;
+}
+
+/* This function will print information about this session's peer
+ * certificate.
+ */
+void
+print_x509_certificate_info (gnutls_session_t session)
+{
+  char serial[40];
+  char dn[256];
+  size_t size;
+  unsigned int algo, bits;
+  time_t expiration_time, activation_time;
+  const gnutls_datum_t *cert_list;
+  unsigned int cert_list_size = 0;
+  gnutls_x509_crt_t cert;
+  gnutls_datum_t cinfo;
+
+  /* This function only works for X.509 certificates.
+   */
+  if (gnutls_certificate_type_get (session) != GNUTLS_CRT_X509)
+    return;
+
+  cert_list = gnutls_certificate_get_peers (session, &cert_list_size);
+
+  printf ("Peer provided %d certificates.\n", cert_list_size);
+
+  if (cert_list_size > 0)
+    {
+      int ret;
+
+      /* we only print information about the first certificate.
+       */
+      gnutls_x509_crt_init (&cert);
+
+      gnutls_x509_crt_import (cert, &cert_list[0], GNUTLS_X509_FMT_DER);
+
+      printf ("Certificate info:\n");
+
+      /* This is the preferred way of printing short information about
+         a certificate. */
+
+      ret = gnutls_x509_crt_print (cert, GNUTLS_CRT_PRINT_ONELINE, &cinfo);
+      if (ret == 0)
+        {
+          printf ("\t%s\n", cinfo.data);
+          gnutls_free (cinfo.data);
+        }
+
+      /* If you want to extract fields manually for some other reason,
+         below are popular example calls. */
+
+      expiration_time = gnutls_x509_crt_get_expiration_time (cert);
+      activation_time = gnutls_x509_crt_get_activation_time (cert);
+
+      printf ("\tCertificate is valid since: %s", ctime (&activation_time));
+      printf ("\tCertificate expires: %s", ctime (&expiration_time));
+
+      /* Print the serial number of the certificate.
+       */
+      size = sizeof (serial);
+      gnutls_x509_crt_get_serial (cert, serial, &size);
+
+      printf ("\tCertificate serial number: %s\n", bin2hex (serial, size));
+
+      /* Extract some of the public key algorithm's parameters
+       */
+      algo = gnutls_x509_crt_get_pk_algorithm (cert, &bits);
+
+      printf ("Certificate public key: %s",
+              gnutls_pk_algorithm_get_name (algo));
+
+      /* Print the version of the X.509
+       * certificate.
+       */
+      printf ("\tCertificate version: #%d\n",
+              gnutls_x509_crt_get_version (cert));
+
+      size = sizeof (dn);
+      gnutls_x509_crt_get_dn (cert, dn, &size);
+      printf ("\tDN: %s\n", dn);
+
+      size = sizeof (dn);
+      gnutls_x509_crt_get_issuer_dn (cert, dn, &size);
+      printf ("\tIssuer's DN: %s\n", dn);
+
+      gnutls_x509_crt_deinit (cert);
+
+    }
+}
+
+\1f
+File: gnutls.info,  Node: Listing the ciphersuites in a priority string,  Prev: X.509 certificate parsing example,  Up: Miscellaneous examples
+
+8.4.3 Listing the ciphersuites in a priority string
+---------------------------------------------------
+
+This is a small program to list the enabled ciphersuites by a priority
+string.
+
+/* This example code is placed in the public domain. */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnutls/gnutls.h>
+
+static void
+print_cipher_suite_list (const char* priorities)
+{
+    size_t i;
+    int ret;
+    unsigned int idx;
+    const char *name;
+    const char *err;
+    unsigned char id[2];
+    gnutls_protocol_t version;
+    gnutls_priority_t pcache;
+
+    if (priorities != NULL)
+      {
+        printf ("Cipher suites for %s\n", priorities);
+
+        ret = gnutls_priority_init(&pcache, priorities, &err);
+        if (ret < 0)
+          {
+            fprintf (stderr, "Syntax error at: %s\n", err);
+            exit(1);
+          }
+
+        for (i=0;;i++)
+          {
+            ret = gnutls_priority_get_cipher_suite_index(pcache, i, &idx);
+            if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) break;
+            if (ret == GNUTLS_E_UNKNOWN_CIPHER_SUITE) continue;
+
+            name = gnutls_cipher_suite_info(idx, id, NULL, NULL, NULL, &version);
+
+            if (name != NULL)
+              printf ("%-50s\t0x%02x, 0x%02x\t%s\n",
+                      name, (unsigned char) id[0], (unsigned char) id[1],
+                      gnutls_protocol_get_name (version));
+          }
+
+        return;
+      }
+}
+
+int main(int argc, char** argv)
+{
+  if (argc > 1)
+    print_cipher_suite_list (argv[1]);
+}
+
+\1f
+File: gnutls.info,  Node: Other included programs,  Next: Internal architecture of GnuTLS,  Prev: GnuTLS application examples,  Up: Top
+
+9 Other included programs
+*************************
+
+Included with GnuTLS are also a few command line tools that let you use
+the library for common tasks without writing an application.  The
+applications are discussed in this chapter.
+
+* Menu:
+
+* gnutls-cli Invocation::          Invoking gnutls-cli
+* gnutls-serv Invocation::         Invoking gnutls-serv
+* gnutls-cli-debug Invocation::    Invoking gnutls-cli-debug
+
+\1f
+File: gnutls.info,  Node: gnutls-cli Invocation,  Next: gnutls-serv Invocation,  Up: Other included programs
+
+9.1 Invoking gnutls-cli
+=======================
+
+Simple client program to set up a TLS connection to some other computer.
+It sets up a TLS connection and forwards data from the standard input to
+the secured socket and vice versa.
+
+This section was generated by *AutoGen*, using the 'agtexi-cmd' template
+and the option descriptions for the 'gnutls-cli' program.  This software
+is released under the GNU General Public License, version 3 or later.
+
+gnutls-cli help/usage ('--help')
+--------------------------------
+
+This is the automatically generated usage text for gnutls-cli.
+
+The text printed is the same whether selected with the 'help' option
+('--help') or the 'more-help' option ('--more-help').  'more-help' will
+print the usage text by passing it through a pager program.  'more-help'
+is disabled on platforms without a working 'fork(2)' function.  The
+'PAGER' environment variable is used to select the program, defaulting
+to 'more'.  Both will exit with a status code of 0.
+
+     gnutls-cli - GnuTLS client - Ver. @VERSION@
+     USAGE:  lt-gnutls-cli [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostname]
+
+        -d, --debug=num            Enable debugging.
+                                     - It must be in the range:
+                                       0 to 9999
+        -V, --verbose              More verbose output
+                                     - may appear multiple times
+            --tofu                 Enable trust on first use authentication
+                                     - disabled as --no-tofu
+            --ocsp                 Enable OCSP certificate verification
+                                     - disabled as --no-ocsp
+        -r, --resume               Establish a session and resume
+        -e, --rehandshake          Establish a session and rehandshake
+            --noticket             Don't accept session tickets
+        -s, --starttls             Connect, establish a plain session and start TLS.
+        -u, --udp                  Use DTLS (datagram TLS) over UDP
+            --mtu=num              Set MTU for datagram TLS
+                                     - It must be in the range:
+                                       0 to 17000
+            --crlf                 Send CR LF instead of LF
+            --x509fmtder           Use DER format for certificates to read from
+        -f, --fingerprint          Send the openpgp fingerprint, instead of the key
+            --disable-extensions   Disable all the TLS extensions
+            --print-cert           Print peer's certificate in PEM format
+            --recordsize=num       The maximum record size to advertize
+                                     - It must be in the range:
+                                       0 to 4096
+            --priority=str         Priorities string
+            --x509cafile=str       Certificate file or PKCS #11 URL to use
+            --x509crlfile=file     CRL file to use
+                                     - file must pre-exist
+            --pgpkeyfile=file      PGP Key file to use
+                                     - file must pre-exist
+            --pgpkeyring=file      PGP Key ring file to use
+                                     - file must pre-exist
+            --pgpcertfile=file     PGP Public Key (certificate) file to use
+                                     - file must pre-exist
+            --x509keyfile=str      X.509 key file or PKCS #11 URL to use
+            --x509certfile=str     X.509 Certificate file or PKCS #11 URL to use
+            --pgpsubkey=str        PGP subkey to use (hex or auto)
+            --srpusername=str      SRP username to use
+            --srppasswd=str        SRP password to use
+            --pskusername=str      PSK username to use
+            --pskkey=str           PSK key (in hex) to use
+        -p, --port=str             The port or service to connect to
+            --insecure             Don't abort program if server certificate can't be validated
+            --benchmark-ciphers    Benchmark individual ciphers
+            --benchmark-soft-ciphers  Benchmark individual software ciphers (no hw acceleration)
+            --benchmark-tls        Benchmark ciphers and key exchange methods in TLS
+        -l, --list                 Print a list of the supported algorithms and modes
+        -v, --version[=arg]        Output version information and exit
+        -h, --help                 Display extended usage information and exit
+        -!, --more-help            Extended usage information passed thru pager
+
+     Options are specified by doubled hyphens and their name or by a single
+     hyphen and the flag character.
+     Operands and options may be intermixed.  They will be reordered.
+
+
+
+     Simple client program to set up a TLS connection to some other computer.  It
+     sets up a TLS connection and forwards data from the standard input to the
+     secured socket and vice versa.
+
+     please send bug reports to:  bug-gnutls@gnu.org
+
+debug option (-d)
+-----------------
+
+This is the "enable debugging."  option.  This option takes an argument
+number.  Specifies the debug level.
+
+tofu option
+-----------
+
+This is the "enable trust on first use authentication" option.  This
+option will, in addition to certificate authentication, perform
+authentication based on previously seen public keys, a model similar to
+SSH authentication.
+
+ocsp option
+-----------
+
+This is the "enable ocsp certificate verification" option.  This option
+will enable verification of the peer's certificate using ocsp
+
+resume option (-r)
+------------------
+
+This is the "establish a session and resume" option.  Connect, establish
+a session, reconnect and resume.
+
+rehandshake option (-e)
+-----------------------
+
+This is the "establish a session and rehandshake" option.  Connect,
+establish a session and rehandshake immediately.
+
+starttls option (-s)
+--------------------
+
+This is the "connect, establish a plain session and start tls."  option.
+The TLS session will be initiated when EOF or a SIGALRM is received.
+
+priority option
+---------------
+
+This is the "priorities string" option.  This option takes an argument
+string.  TLS algorithms and protocols to enable.  You can use predefined
+sets of ciphersuites such as PERFORMANCE, NORMAL, SECURE128, SECURE256.
+
+Check the GnuTLS manual on section "Priority strings" for more
+information on allowed keywords
+
+list option (-l)
+----------------
+
+This is the "print a list of the supported algorithms and modes" option.
+Print a list of the supported algorithms and modes.  If a priority
+string is given then only the enabled ciphersuites are shown.
+
+gnutls-cli exit status
+----------------------
+
+One of the following exit values will be returned:
+'0 (EXIT_SUCCESS)'
+     Successful program execution.
+'1 (EXIT_FAILURE)'
+     The operation failed or the command syntax was not valid.
+
+gnutls-cli See Also
+-------------------
+
+gnutls-cli-debug(1), gnutls-serv(1)
+
+gnutls-cli Examples
+-------------------
+
+Connecting using PSK authentication
+-----------------------------------
+
+To connect to a server using PSK authentication, you need to enable the
+choice of PSK by using a cipher priority parameter such as in the
+example below.
+     $ ./gnutls-cli -p 5556 localhost --pskusername psk_identity \
+         --pskkey 88f3824b3e5659f52d00e959bacab954b6540344 \
+         --priority NORMAL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK
+     Resolving 'localhost'...
+     Connecting to '127.0.0.1:5556'...
+     - PSK authentication.
+     - Version: TLS1.1
+     - Key Exchange: PSK
+     - Cipher: AES-128-CBC
+     - MAC: SHA1
+     - Compression: NULL
+     - Handshake was completed
+
+     - Simple Client Mode:
+By keeping the -pskusername parameter and removing the -pskkey
+parameter, it will query only for the password during the handshake.
+
+Listing ciphersuites in a priority string
+-----------------------------------------
+
+To list the ciphersuites in a priority string:
+     $ ./gnutls-cli --priority SECURE192 -l
+     Cipher suites for SECURE192
+     TLS_ECDHE_ECDSA_AES_256_CBC_SHA384         0xc0, 0x24     TLS1.2
+     TLS_ECDHE_ECDSA_AES_256_GCM_SHA384         0xc0, 0x2e     TLS1.2
+     TLS_ECDHE_RSA_AES_256_GCM_SHA384           0xc0, 0x30     TLS1.2
+     TLS_DHE_RSA_AES_256_CBC_SHA256             0x00, 0x6b     TLS1.2
+     TLS_DHE_DSS_AES_256_CBC_SHA256             0x00, 0x6a     TLS1.2
+     TLS_RSA_AES_256_CBC_SHA256                 0x00, 0x3d     TLS1.2
+
+     Certificate types: CTYPE-X.509
+     Protocols: VERS-TLS1.2, VERS-TLS1.1, VERS-TLS1.0, VERS-SSL3.0, VERS-DTLS1.0
+     Compression: COMP-NULL
+     Elliptic curves: CURVE-SECP384R1, CURVE-SECP521R1
+     PK-signatures: SIGN-RSA-SHA384, SIGN-ECDSA-SHA384, SIGN-RSA-SHA512, SIGN-ECDSA-SHA512
+
+\1f
+File: gnutls.info,  Node: gnutls-serv Invocation,  Next: gnutls-cli-debug Invocation,  Prev: gnutls-cli Invocation,  Up: Other included programs
+
+9.2 Invoking gnutls-serv
+========================
+
+Server program that listens to incoming TLS connections.
+
+This section was generated by *AutoGen*, using the 'agtexi-cmd' template
+and the option descriptions for the 'gnutls-serv' program.  This
+software is released under the GNU General Public License, version 3 or
+later.
+
+gnutls-serv help/usage ('--help')
+---------------------------------
+
+This is the automatically generated usage text for gnutls-serv.
+
+The text printed is the same whether selected with the 'help' option
+('--help') or the 'more-help' option ('--more-help').  'more-help' will
+print the usage text by passing it through a pager program.  'more-help'
+is disabled on platforms without a working 'fork(2)' function.  The
+'PAGER' environment variable is used to select the program, defaulting
+to 'more'.  Both will exit with a status code of 0.
+
+     gnutls-serv - GnuTLS server - Ver. @VERSION@
+     USAGE:  lt-gnutls-serv [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
+
+        -d, --debug=num            Enable debugging.
+                                     - It must be in the range:
+                                       0 to 9999
+            --noticket             Don't accept session tickets
+        -g, --generate             Generate Diffie-Hellman and RSA-export parameters
+        -q, --quiet                Suppress some messages
+            --nodb                 Do not use a resumption database
+            --http                 Act as an HTTP server
+            --echo                 Act as an Echo server
+        -u, --udp                  Use DTLS (datagram TLS) over UDP
+            --mtu=num              Set MTU for datagram TLS
+                                     - It must be in the range:
+                                       0 to 17000
+        -a, --disable-client-cert  Do not request a client certificate
+        -r, --require-client-cert  Require a client certificate
+            --x509fmtder           Use DER format for certificates to read from
+            --priority=str         Priorities string
+            --dhparams=file        DH params file to use
+                                     - file must pre-exist
+            --x509cafile=str       Certificate file or PKCS #11 URL to use
+            --x509crlfile=file     CRL file to use
+                                     - file must pre-exist
+            --pgpkeyfile=file      PGP Key file to use
+                                     - file must pre-exist
+            --pgpkeyring=file      PGP Key ring file to use
+                                     - file must pre-exist
+            --pgpcertfile=file     PGP Public Key (certificate) file to use
+                                     - file must pre-exist
+            --x509keyfile=str      X.509 key file or PKCS #11 URL to use
+            --x509certfile=str     X.509 Certificate file or PKCS #11 URL to use
+            --x509dsakeyfile=str   Alternative X.509 key file or PKCS #11 URL to use
+            --x509dsacertfile=str  Alternative X.509 Certificate file or PKCS #11 URL to use
+            --x509ecckeyfile=str   Alternative X.509 key file or PKCS #11 URL to use
+            --x509ecccertfile=str  Alternative X.509 Certificate file or PKCS #11 URL to use
+            --pgpsubkey=str        PGP subkey to use (hex or auto)
+            --srppasswd=file       SRP password file to use
+                                     - file must pre-exist
+            --srppasswdconf=file   SRP password configuration file to use
+                                     - file must pre-exist
+            --pskpasswd=file       PSK password file to use
+                                     - file must pre-exist
+            --pskhint=str          PSK identity hint to use
+        -p, --port=num             The port to connect to
+        -l, --list                 Print a list of the supported algorithms and modes
+        -v, --version[=arg]        Output version information and exit
+        -h, --help                 Display extended usage information and exit
+        -!, --more-help            Extended usage information passed thru pager
+
+     Options are specified by doubled hyphens and their name or by a single
+     hyphen and the flag character.
+
+
+
+     Server program that listens to incoming TLS connections.
+
+     please send bug reports to:  bug-gnutls@gnu.org
+
+debug option (-d)
+-----------------
+
+This is the "enable debugging."  option.  This option takes an argument
+number.  Specifies the debug level.
+
+priority option
+---------------
+
+This is the "priorities string" option.  This option takes an argument
+string.  TLS algorithms and protocols to enable.  You can use predefined
+sets of ciphersuites such as PERFORMANCE, NORMAL, SECURE128, SECURE256.
+
+Check the GnuTLS manual on section "Priority strings" for more
+information on allowed keywords
+
+list option (-l)
+----------------
+
+This is the "print a list of the supported algorithms and modes" option.
+Print a list of the supported algorithms and modes.  If a priority
+string is given then only the enabled ciphersuites are shown.
+
+gnutls-serv exit status
+-----------------------
+
+One of the following exit values will be returned:
+'0 (EXIT_SUCCESS)'
+     Successful program execution.
+'1 (EXIT_FAILURE)'
+     The operation failed or the command syntax was not valid.
+
+gnutls-serv See Also
+--------------------
+
+gnutls-cli-debug(1), gnutls-cli(1)
+
+gnutls-serv Examples
+--------------------
+
+Running your own TLS server based on GnuTLS can be useful when debugging
+clients and/or GnuTLS itself.  This section describes how to use
+'gnutls-serv' as a simple HTTPS server.
+
+The most basic server can be started as:
+
+     gnutls-serv --http
+
+It will only support anonymous ciphersuites, which many TLS clients
+refuse to use.
+
+The next step is to add support for X.509.  First we generate a CA:
+
+     $ certtool --generate-privkey > x509-ca-key.pem
+     $ echo 'cn = GnuTLS test CA' > ca.tmpl
+     $ echo 'ca' >> ca.tmpl
+     $ echo 'cert_signing_key' >> ca.tmpl
+     $ certtool --generate-self-signed --load-privkey x509-ca-key.pem \
+       --template ca.tmpl --outfile x509-ca.pem
+     ...
+
+Then generate a server certificate.  Remember to change the dns_name
+value to the name of your server host, or skip that command to avoid the
+field.
+
+     $ certtool --generate-privkey > x509-server-key.pem
+     $ echo 'organization = GnuTLS test server' > server.tmpl
+     $ echo 'cn = test.gnutls.org' >> server.tmpl
+     $ echo 'tls_www_server' >> server.tmpl
+     $ echo 'encryption_key' >> server.tmpl
+     $ echo 'signing_key' >> server.tmpl
+     $ echo 'dns_name = test.gnutls.org' >> server.tmpl
+     $ certtool --generate-certificate --load-privkey x509-server-key.pem \
+       --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem \
+       --template server.tmpl --outfile x509-server.pem
+     ...
+
+For use in the client, you may want to generate a client certificate as
+well.
+
+     $ certtool --generate-privkey > x509-client-key.pem
+     $ echo 'cn = GnuTLS test client' > client.tmpl
+     $ echo 'tls_www_client' >> client.tmpl
+     $ echo 'encryption_key' >> client.tmpl
+     $ echo 'signing_key' >> client.tmpl
+     $ certtool --generate-certificate --load-privkey x509-client-key.pem \
+       --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem \
+       --template client.tmpl --outfile x509-client.pem
+     ...
+
+To be able to import the client key/certificate into some applications,
+you will need to convert them into a PKCS#12 structure.  This also
+encrypts the security sensitive key with a password.
+
+     $ certtool --to-p12 --load-ca-certificate x509-ca.pem \
+       --load-privkey x509-client-key.pem --load-certificate x509-client.pem \
+       --outder --outfile x509-client.p12
+
+For icing, we'll create a proxy certificate for the client too.
+
+     $ certtool --generate-privkey > x509-proxy-key.pem
+     $ echo 'cn = GnuTLS test client proxy' > proxy.tmpl
+     $ certtool --generate-proxy --load-privkey x509-proxy-key.pem \
+       --load-ca-certificate x509-client.pem --load-ca-privkey x509-client-key.pem \
+       --load-certificate x509-client.pem --template proxy.tmpl \
+       --outfile x509-proxy.pem
+     ...
+
+Then start the server again:
+
+     $ gnutls-serv --http \
+                 --x509cafile x509-ca.pem \
+                 --x509keyfile x509-server-key.pem \
+                 --x509certfile x509-server.pem
+
+Try connecting to the server using your web browser.  Note that the
+server listens to port 5556 by default.
+
+While you are at it, to allow connections using DSA, you can also create
+a DSA key and certificate for the server.  These credentials will be
+used in the final example below.
+
+     $ certtool --generate-privkey --dsa > x509-server-key-dsa.pem
+     $ certtool --generate-certificate --load-privkey x509-server-key-dsa.pem \
+       --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem \
+       --template server.tmpl --outfile x509-server-dsa.pem
+     ...
+
+The next step is to create OpenPGP credentials for the server.
+
+     gpg --gen-key
+     ...enter whatever details you want, use 'test.gnutls.org' as name...
+
+Make a note of the OpenPGP key identifier of the newly generated key,
+here it was '5D1D14D8'.  You will need to export the key for GnuTLS to
+be able to use it.
+
+     gpg -a --export 5D1D14D8 > openpgp-server.txt
+     gpg --export 5D1D14D8 > openpgp-server.bin
+     gpg --export-secret-keys 5D1D14D8 > openpgp-server-key.bin
+     gpg -a --export-secret-keys 5D1D14D8 > openpgp-server-key.txt
+
+Let's start the server with support for OpenPGP credentials:
+
+     gnutls-serv --http \
+                 --pgpkeyfile openpgp-server-key.txt \
+                 --pgpcertfile openpgp-server.txt
+
+The next step is to add support for SRP authentication.  This requires
+an SRP password file created with 'srptool'.  To start the server with
+SRP support:
+
+     gnutls-serv --http \
+                 --srppasswdconf srp-tpasswd.conf \
+                 --srppasswd srp-passwd.txt
+
+Let's also start a server with support for PSK. This would require a
+password file created with 'psktool'.
+
+     gnutls-serv --http \
+                 --pskpasswd psk-passwd.txt
+
+Finally, we start the server with all the earlier parameters and you get
+this command:
+
+     gnutls-serv --http \
+                 --x509cafile x509-ca.pem \
+                 --x509keyfile x509-server-key.pem \
+                 --x509certfile x509-server.pem \
+                 --x509dsakeyfile x509-server-key-dsa.pem \
+                 --x509dsacertfile x509-server-dsa.pem \
+                 --pgpkeyfile openpgp-server-key.txt \
+                 --pgpcertfile openpgp-server.txt \
+                 --srppasswdconf srp-tpasswd.conf \
+                 --srppasswd srp-passwd.txt \
+                 --pskpasswd psk-passwd.txt
+
+\1f
+File: gnutls.info,  Node: gnutls-cli-debug Invocation,  Prev: gnutls-serv Invocation,  Up: Other included programs
+
+9.3 Invoking gnutls-cli-debug
+=============================
+
+TLS debug client.  It sets up multiple TLS connections to a server and
+queries its capabilities.  It was created to assist in debugging GnuTLS,
+but it might be useful to extract a TLS server's capabilities.  It
+connects to a TLS server, performs tests and print the server's
+capabilities.  If called with the '-v' parameter more checks will be
+performed.  Can be used to check for servers with special needs or bugs.
+
+This section was generated by *AutoGen*, using the 'agtexi-cmd' template
+and the option descriptions for the 'gnutls-cli-debug' program.  This
+software is released under the GNU General Public License, version 3 or
+later.
+
+gnutls-cli-debug help/usage ('--help')
+--------------------------------------
+
+This is the automatically generated usage text for gnutls-cli-debug.
+
+The text printed is the same whether selected with the 'help' option
+('--help') or the 'more-help' option ('--more-help').  'more-help' will
+print the usage text by passing it through a pager program.  'more-help'
+is disabled on platforms without a working 'fork(2)' function.  The
+'PAGER' environment variable is used to select the program, defaulting
+to 'more'.  Both will exit with a status code of 0.
+
+     gnutls-cli-debug - GnuTLS debug client - Ver. @VERSION@
+     USAGE:  lt-gnutls-cli-debug [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
+
+        -d, --debug=num            Enable debugging.
+                                     - It must be in the range:
+                                       0 to 9999
+        -V, --verbose              More verbose output
+                                     - may appear multiple times
+        -p, --port=num             The port to connect to
+                                     - It must be in the range:
+                                       0 to 65536
+        -v, --version[=arg]        Output version information and exit
+        -h, --help                 Display extended usage information and exit
+        -!, --more-help            Extended usage information passed thru pager
+
+     Options are specified by doubled hyphens and their name or by a single
+     hyphen and the flag character.
+     Operands and options may be intermixed.  They will be reordered.
+
+
+
+     TLS debug client.  It sets up multiple TLS connections to a server and
+     queries its capabilities.  It was created to assist in debugging GnuTLS,
+     but it might be useful to extract a TLS server's capabilities.  It connects
+     to a TLS server, performs tests and print the server's capabilities.  If
+     called with the `-v' parameter more checks will be performed.  Can be used
+     to check for servers with special needs or bugs.
+
+     please send bug reports to:  bug-gnutls@gnu.org
+
+debug option (-d)
+-----------------
+
+This is the "enable debugging."  option.  This option takes an argument
+number.  Specifies the debug level.
+
+gnutls-cli-debug exit status
+----------------------------
+
+One of the following exit values will be returned:
+'0 (EXIT_SUCCESS)'
+     Successful program execution.
+'1 (EXIT_FAILURE)'
+     The operation failed or the command syntax was not valid.
+
+gnutls-cli-debug See Also
+-------------------------
+
+gnutls-cli(1), gnutls-serv(1)
+
+gnutls-cli-debug Examples
+-------------------------
+
+     $ ../src/gnutls-cli-debug localhost
+     Resolving 'localhost'...
+     Connecting to '127.0.0.1:443'...
+     Checking for SSL 3.0 support... yes
+     Checking whether %COMPAT is required... no
+     Checking for TLS 1.0 support... yes
+     Checking for TLS 1.1 support... no
+     Checking fallback from TLS 1.1 to... TLS 1.0
+     Checking for TLS 1.2 support... no
+     Checking whether we need to disable TLS 1.0... N/A
+     Checking for Safe renegotiation support... yes
+     Checking for Safe renegotiation support (SCSV)... yes
+     Checking for HTTPS server name... not checked
+     Checking for version rollback bug in RSA PMS... no
+     Checking for version rollback bug in Client Hello... no
+     Checking whether the server ignores the RSA PMS version... no
+     Checking whether the server can accept Hello Extensions... yes
+     Checking whether the server can accept small records (512 bytes)... yes
+     Checking whether the server can accept cipher suites not in SSL 3.0 spec... yes
+     Checking whether the server can accept a bogus TLS record version in the client hello... yes
+     Checking for certificate information... N/A
+     Checking for trusted CAs... N/A
+     Checking whether the server understands TLS closure alerts... partially
+     Checking whether the server supports session resumption... yes
+     Checking for export-grade ciphersuite support... no
+     Checking RSA-export ciphersuite info... N/A
+     Checking for anonymous authentication support... no
+     Checking anonymous Diffie-Hellman group info... N/A
+     Checking for ephemeral Diffie-Hellman support... no
+     Checking ephemeral Diffie-Hellman group info... N/A
+     Checking for ephemeral EC Diffie-Hellman support... yes
+     Checking ephemeral EC Diffie-Hellman group info...
+      Curve SECP256R1
+     Checking for AES-GCM cipher support... no
+     Checking for AES-CBC cipher support... yes
+     Checking for CAMELLIA cipher support... no
+     Checking for 3DES-CBC cipher support... yes
+     Checking for ARCFOUR 128 cipher support... yes
+     Checking for ARCFOUR 40 cipher support... no
+     Checking for MD5 MAC support... yes
+     Checking for SHA1 MAC support... yes
+     Checking for SHA256 MAC support... no
+     Checking for ZLIB compression support... no
+     Checking for max record size... no
+     Checking for OpenPGP authentication support... no
+
+\1f
+File: gnutls.info,  Node: Internal architecture of GnuTLS,  Next: Upgrading from previous versions,  Prev: Other included programs,  Up: Top
+
+10 Internal Architecture of GnuTLS
+**********************************
+
+This chapter is to give a brief description of the way GnuTLS works.
+The focus is to give an idea to potential developers and those who want
+to know what happens inside the black box.
+
+* Menu:
+
+* The TLS Protocol::
+* TLS Handshake Protocol::
+* TLS Authentication Methods::
+* TLS Extension Handling::
+* Cryptographic Backend::
+
+\1f
+File: gnutls.info,  Node: The TLS Protocol,  Next: TLS Handshake Protocol,  Up: Internal architecture of GnuTLS
+
+10.1 The TLS Protocol
+=====================
+
+The main use case for the TLS protocol is shown in *note Figure 10.1:
+fig:client-server.  A user of a library implementing the protocol
+expects no less than this functionality, i.e., to be able to set
+parameters such as the accepted security level, perform a negotiation
+with the peer and be able to exchange data.
+
+\0\b[image src="gnutls-client-server-use-case.png"\0\b]
+
+Figure 10.1: TLS protocol use case.
+
+\1f
+File: gnutls.info,  Node: TLS Handshake Protocol,  Next: TLS Authentication Methods,  Prev: The TLS Protocol,  Up: Internal architecture of GnuTLS
+
+10.2 TLS Handshake Protocol
+===========================
+
+The GnuTLS handshake protocol is implemented as a state machine that
+waits for input or returns immediately when the non-blocking transport
+layer functions are used.  The main idea is shown in *note Figure 10.2:
+fig:gnutls-handshake.
+
+\0\b[image src="gnutls-handshake-state.png"\0\b]
+
+Figure 10.2: GnuTLS handshake state machine.
+
+Also the way the input is processed varies per ciphersuite.  Several
+implementations of the internal handlers are available and *note
+gnutls_handshake:: only multiplexes the input to the appropriate
+handler.  For example a PSK ciphersuite has a different implementation
+of the 'process_client_key_exchange' than a certificate ciphersuite.  We
+illustrate the idea in *note Figure 10.3: fig:gnutls-handshake-sequence.
+
+\0\b[image src="gnutls-handshake-sequence.png"\0\b]
+
+Figure 10.3: GnuTLS handshake process sequence.
+
+\1f
+File: gnutls.info,  Node: TLS Authentication Methods,  Next: TLS Extension Handling,  Prev: TLS Handshake Protocol,  Up: Internal architecture of GnuTLS
+
+10.3 TLS Authentication Methods
+===============================
+
+In GnuTLS authentication methods can be implemented quite easily.  Since
+the required changes to add a new authentication method affect only the
+handshake protocol, a simple interface is used.  An authentication
+method needs to implement the functions shown below.
+
+typedef struct
+{
+  const char *name;
+  int (*gnutls_generate_server_certificate) (gnutls_session_t, gnutls_buffer_st*);
+  int (*gnutls_generate_client_certificate) (gnutls_session_t, gnutls_buffer_st*);
+  int (*gnutls_generate_server_kx) (gnutls_session_t, gnutls_buffer_st*);
+  int (*gnutls_generate_client_kx) (gnutls_session_t, gnutls_buffer_st*);
+  int (*gnutls_generate_client_cert_vrfy) (gnutls_session_t, gnutls_buffer_st *);
+  int (*gnutls_generate_server_certificate_request) (gnutls_session_t,
+                                                     gnutls_buffer_st *);
+
+  int (*gnutls_process_server_certificate) (gnutls_session_t, opaque *,
+                                            size_t);
+  int (*gnutls_process_client_certificate) (gnutls_session_t, opaque *,
+                                            size_t);
+  int (*gnutls_process_server_kx) (gnutls_session_t, opaque *, size_t);
+  int (*gnutls_process_client_kx) (gnutls_session_t, opaque *, size_t);
+  int (*gnutls_process_client_cert_vrfy) (gnutls_session_t, opaque *, size_t);
+  int (*gnutls_process_server_certificate_request) (gnutls_session_t,
+                                                    opaque *, size_t);
+} mod_auth_st;
+
+Those functions are responsible for the interpretation of the handshake
+protocol messages.  It is common for such functions to read data from
+one or more 'credentials_t' structures(1) and write data, such as
+certificates, usernames etc.  to 'auth_info_t' structures.
+
+Simple examples of existing authentication methods can be seen in
+'auth/psk.c' for PSK ciphersuites and 'auth/srp.c' for SRP ciphersuites.
+After implementing these functions the structure holding its pointers
+has to be registered in 'gnutls_algorithms.c' in the
+'_gnutls_kx_algorithms' structure.
+
+   ---------- Footnotes ----------
+
+   (1) such as the 'gnutls_certificate_credentials_t' structures
+
+\1f
+File: gnutls.info,  Node: TLS Extension Handling,  Next: Cryptographic Backend,  Prev: TLS Authentication Methods,  Up: Internal architecture of GnuTLS
+
+10.4 TLS Extension Handling
+===========================
+
+As with authentication methods, the TLS extensions handlers can be
+implemented using the interface shown below.
+
+typedef int (*gnutls_ext_recv_func) (gnutls_session_t session,
+                                     const unsigned char *data, size_t len);
+typedef int (*gnutls_ext_send_func) (gnutls_session_t session,
+                                     gnutls_buffer_st *extdata);
+
+Here there are two functions, one for receiving the extension data and
+one for sending.  These functions have to check internally whether they
+operate in client or server side.
+
+A simple example of an extension handler can be seen in 'ext/srp.c' in
+GnuTLS' source code.  After implementing these functions, together with
+the extension number they handle, they have to be registered using
+'_gnutls_ext_register' in 'gnutls_extensions.c' typically within
+'_gnutls_ext_init'.
+
+Adding a new TLS extension
+--------------------------
+
+Adding support for a new TLS extension is done from time to time, and
+the process to do so is not difficult.  Here are the steps you need to
+follow if you wish to do this yourself.  For sake of discussion, let's
+consider adding support for the hypothetical TLS extension 'foobar'.
+
+Add 'configure' option like '--enable-foobar' or '--disable-foobar'.
+....................................................................
+
+This step is useful when the extension code is large and it might be
+desirable to disable the extension under some circumstances.  Otherwise
+it can be safely skipped.
+
+Whether to chose enable or disable depends on whether you intend to make
+the extension be enabled by default.  Look at existing checks (i.e.,
+SRP, authz) for how to model the code.  For example:
+
+     AC_MSG_CHECKING([whether to disable foobar support])
+     AC_ARG_ENABLE(foobar,
+       AS_HELP_STRING([--disable-foobar],
+               [disable foobar support]),
+       ac_enable_foobar=no)
+     if test x$ac_enable_foobar != xno; then
+      AC_MSG_RESULT(no)
+      AC_DEFINE(ENABLE_FOOBAR, 1, [enable foobar])
+     else
+      ac_full=0
+      AC_MSG_RESULT(yes)
+     fi
+     AM_CONDITIONAL(ENABLE_FOOBAR, test "$ac_enable_foobar" != "no")
+
+These lines should go in 'lib/m4/hooks.m4'.
+
+Add IANA extension value to 'extensions_t' in 'gnutls_int.h'.
+.............................................................
+
+A good name for the value would be GNUTLS_EXTENSION_FOOBAR. Check with
+<http://www.iana.org/assignments/tls-extensiontype-values> for allocated
+values.  For experiments, you could pick a number but remember that some
+consider it a bad idea to deploy such modified version since it will
+lead to interoperability problems in the future when the IANA allocates
+that number to someone else, or when the foobar protocol is allocated
+another number.
+
+Add an entry to '_gnutls_extensions' in 'gnutls_extensions.c'.
+..............................................................
+
+A typical entry would be:
+
+       int ret;
+
+     #if ENABLE_FOOBAR
+       ret = _gnutls_ext_register (&foobar_ext);
+       if (ret != GNUTLS_E_SUCCESS)
+         return ret;
+     #endif
+
+Most likely you'll need to add an '#include "ext/foobar.h"', that will
+contain something like like:
+       extension_entry_st foobar_ext = {
+         .name = "FOOBAR",
+         .type = GNUTLS_EXTENSION_FOOBAR,
+         .parse_type = GNUTLS_EXT_TLS,
+         .recv_func = _foobar_recv_params,
+         .send_func = _foobar_send_params,
+         .pack_func = _foobar_pack,
+         .unpack_func = _foobar_unpack,
+         .deinit_func = NULL
+       }
+
+The GNUTLS_EXTENSION_FOOBAR is the integer value you added to
+'gnutls_int.h' earlier.  In this structure you specify the functions to
+read the extension from the hello message, the function to send the
+reply to, and two more functions to pack and unpack from stored session
+data (e.g.  when resumming a session).  The 'deinit' function will be
+called to deinitialize the extension's private parameters, if any.
+
+Note that the conditional 'ENABLE_FOOBAR' definition should only be used
+if step 1 with the 'configure' options has taken place.
+
+Add new files that implement the extension.
+...........................................
+
+The functions you are responsible to add are those mentioned in the
+previous step.  They should be added in a file such as 'ext/foobar.c'
+and headers should be placed in 'ext/foobar.h'.  As a starter, you could
+add this:
+
+     int
+     _foobar_recv_params (gnutls_session_t session, const opaque * data,
+                          size_t data_size)
+     {
+       return 0;
+     }
+
+     int
+     _foobar_send_params (gnutls_session_t session, gnutls_buffer_st* data)
+     {
+       return 0;
+     }
+
+     int
+     _foobar_pack (extension_priv_data_t epriv, gnutls_buffer_st * ps)
+     {
+        /* Append the extension's internal state to buffer */
+        return 0;
+     }
+
+     int
+     _foobar_unpack (gnutls_buffer_st * ps, extension_priv_data_t * epriv)
+     {
+        /* Read the internal state from buffer */
+        return 0;
+     }
+
+The '_foobar_recv_params' function is responsible for parsing incoming
+extension data (both in the client and server).
+
+The '_foobar_send_params' function is responsible for sending extension
+data (both in the client and server).
+
+If you receive length fields that don't match, return
+'GNUTLS_E_UNEXPECTED_PACKET_LENGTH'.  If you receive invalid data,
+return 'GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER'.  You can use other error
+codes from the list in *note Error codes::.  Return 0 on success.
+
+An extension typically stores private information in the 'session' data
+for later usage.  That can be done using the functions
+'_gnutls_ext_set_session_data' and '_gnutls_ext_get_session_data'.  You
+can check simple examples at 'ext/max_record.c' and 'ext/server_name.c'
+extensions.  That private information can be saved and restored across
+session resumption if the following functions are set:
+
+The '_foobar_pack' function is responsible for packing internal
+extension data to save them in the session resumption storage.
+
+The '_foobar_unpack' function is responsible for restoring session data
+from the session resumption storage.
+
+Recall that both the client and server, send and receive parameters, and
+your code most likely will need to do different things depending on
+which mode it is in.  It may be useful to make this distinction explicit
+in the code.  Thus, for example, a better template than above would be:
+
+     int
+     _gnutls_foobar_recv_params (gnutls_session_t session,
+                                 const opaque * data,
+                                 size_t data_size)
+     {
+       if (session->security_parameters.entity == GNUTLS_CLIENT)
+         return foobar_recv_client (session, data, data_size);
+       else
+         return foobar_recv_server (session, data, data_size);
+     }
+
+     int
+     _gnutls_foobar_send_params (gnutls_session_t session,
+                                 gnutls_buffer_st * data)
+     {
+       if (session->security_parameters.entity == GNUTLS_CLIENT)
+         return foobar_send_client (session, data);
+       else
+         return foobar_send_server (session, data);
+     }
+
+The functions used would be declared as 'static' functions, of the
+appropriate prototype, in the same file.  When adding the files, you'll
+need to add them to 'ext/Makefile.am' as well, for example:
+
+     if ENABLE_FOOBAR
+     libgnutls_ext_la_SOURCES += ext/foobar.c ext/foobar.h
+     endif
+
+Add API functions to enable/disable the extension.
+..................................................
+
+It might be desirable to allow users of the extension to request use of
+the extension, or set extension specific data.  This can be implemented
+by adding extension specific function calls that can be added to
+'includes/gnutls/gnutls.h', as long as the LGPLv3+ applies.  The
+implementation of the function should lie in the 'ext/foobar.c' file.
+
+To make the API available in the shared library you need to add the
+symbol in 'lib/libgnutls.map', so that the symbol is exported properly.
+
+When writing GTK-DOC style documentation for your new APIs, don't forget
+to add 'Since:' tags to indicate the GnuTLS version the API was
+introduced in.
+
+Adding a new Supplemental Data Handshake Message
+------------------------------------------------
+
+TLS handshake extensions allow to send so called supplemental data
+handshake messages [_RFC4680_].  This short section explains how to
+implement a supplemental data handshake message for a given TLS
+extension.
+
+First of all, modify your extension 'foobar' in the way, the that flags
+'session->security_parameters.do_send_supplemental' and
+'session->security_parameters.do_recv_supplemental' are set:
+
+     int
+     _gnutls_foobar_recv_params (gnutls_session_t session, const opaque * data,
+                                      size_t _data_size)
+     {
+        ...
+        session->security_parameters.do_recv_supplemental=1;
+        ...
+     }
+
+     int
+     _gnutls_foobar_send_params (gnutls_session_t session, gnutls_buffer_st *extdata)
+     {
+        ...
+        session->security_parameters.do_send_supplemental=1;
+        ...
+     }
+
+Furthermore add the functions '_foobar_supp_recv_params' and
+'_foobar_supp_send_params' to '_foobar.h' and '_foobar.c'.  The
+following example code shows how to send a "Hello World" string in the
+supplemental data handshake message:
+
+     int
+     _foobar_supp_recv_params(gnutls_session_t session, const opaque *data, size_t _data_size)
+     {
+        uint8_t len = _data_size;
+        unsigned char *msg;
+
+        msg = gnutls_malloc(len);
+        if (msg == NULL) return GNUTLS_E_MEMORY_ERROR;
+
+        memcpy(msg, data, len);
+        msg[len]='\0';
+
+        /* do something with msg */
+        gnutls_free(msg);
+
+        return len;
+     }
+
+     int
+     _foobar_supp_send_params(gnutls_session_t session, gnutls_buffer_st *buf)
+     {
+        unsigned char *msg = "hello world";
+        int len = strlen(msg);
+
+        _gnutls_buffer_append_data_prefix(buf, 8, msg, len);
+
+        return len;
+     }
+
+Afterwards, add the new supplemental data handshake message to
+'lib/gnutls_supplemental.c' by adding a new entry to the
+'_gnutls_supplemental[]' structure:
+
+     gnutls_supplemental_entry _gnutls_supplemental[] =
+     {
+       {"foobar",
+        GNUTLS_SUPPLEMENTAL_FOOBAR_DATA,
+        _foobar_supp_recv_params,
+        _foobar_supp_send_params},
+       {0, 0, 0, 0}
+     };
+
+You have to include your 'foobar.h' header file as well:
+
+     #include "foobar.h"
+
+Lastly, add the new supplemental data type to
+'lib/includes/gnutls/gnutls.h':
+
+     typedef enum
+     {
+         GNUTLS_SUPPLEMENTAL_USER_MAPPING_DATA = 0,
+         GNUTLS_SUPPLEMENTAL_FOOBAR_DATA = 1
+     } gnutls_supplemental_data_format_type_t;
+
+\1f
+File: gnutls.info,  Node: Cryptographic Backend,  Prev: TLS Extension Handling,  Up: Internal architecture of GnuTLS
+
+10.5 Cryptographic Backend
+==========================
+
+Today most new processors, either for embedded or desktop systems
+include either instructions intended to speed up cryptographic
+operations, or a co-processor with cryptographic capabilities.  Taking
+advantage of those is a challenging task for every cryptographic
+application or library.  Unfortunately the cryptographic library that
+GnuTLS is based on takes no advantage of these capabilities.  For this
+reason GnuTLS handles this internally by following a layered approach to
+accessing cryptographic operations as in *note Figure 10.4:
+fig:crypto-layers.
+
+\0\b[image src="gnutls-crypto-layers.png"\0\b]
+
+Figure 10.4: GnuTLS cryptographic back-end design.
+
+The TLS layer uses a cryptographic provider layer, that will in turn
+either use the default crypto provider - a software crypto library, or
+use an external crypto provider, if available in the local system.  The
+reason of handling the external cryptographic provider in GnuTLS and not
+delegating it to the cryptographic libraries, is that none of the
+supported cryptographic libraries support '/dev/crypto' or CPU-optimized
+cryptography in an efficient way.
+
+Cryptographic library layer
+---------------------------
+
+The Cryptographic library layer, currently supports only libnettle.
+Older versions of GnuTLS used to support libgcrypt, but it was switched
+with nettle mainly for performance reasons(1) and secondary because it
+is a simpler library to use.  In the future other cryptographic
+libraries might be supported as well.
+
+External cryptography provider
+------------------------------
+
+Systems that include a cryptographic co-processor, typically come with
+kernel drivers to utilize the operations from software.  For this reason
+GnuTLS provides a layer where each individual algorithm used can be
+replaced by another implementation, i.e., the one provided by the
+driver.  The FreeBSD, OpenBSD and Linux kernels(2) include already a
+number of hardware assisted implementations, and also provide an
+interface to access them, called '/dev/crypto'.  GnuTLS will take
+advantage of this interface if compiled with special options.  That is
+because in most systems where hardware-assisted cryptographic operations
+are not available, using this interface might actually harm performance.
+
+In systems that include cryptographic instructions with the CPU's
+instructions set, using the kernel interface will introduce an unneeded
+layer.  For this reason GnuTLS includes such optimizations found in
+popular processors such as the AES-NI or VIA PADLOCK instruction sets.
+This is achieved using a mechanism that detects CPU capabilities and
+overrides parts of crypto back-end at runtime.  The next section
+discusses the registration of a detected algorithm optimization.  For
+more information please consult the GnuTLS source code in
+'lib/accelerated/'.
+
+Overriding specific algorithms
+..............................
+
+When an optimized implementation of a single algorithm is available, say
+a hardware assisted version of AES-CBC then the following (internal)
+functions, from 'crypto-backend.h', can be used to register those
+algorithms.
+
+   * 'gnutls_crypto_single_cipher_register': To register a cipher
+     algorithm.
+
+   * 'gnutls_crypto_single_digest_register': To register a hash (digest)
+     or MAC algorithm.
+
+Those registration functions will only replace the specified algorithm
+and leave the rest of subsystem intact.
+
+Overriding the cryptographic library
+....................................
+
+In some systems, that might contain a broad acceleration engine, it
+might be desirable to override big parts of the cryptographic back-end,
+or even all of them.  The following functions are provided for this
+reason.
+
+   * 'gnutls_crypto_cipher_register': To override the cryptographic
+     algorithms back-end.
+
+   * 'gnutls_crypto_digest_register': To override the digest algorithms
+     back-end.
+
+   * 'gnutls_crypto_rnd_register': To override the random number
+     generator back-end.
+
+   * 'gnutls_crypto_bigint_register': To override the big number number
+     operations back-end.
+
+   * 'gnutls_crypto_pk_register': To override the public key encryption
+     back-end.  This is tied to the big number operations so either none
+     or both of them should be overriden.
+
+   ---------- Footnotes ----------
+
+   (1) See
+<http://lists.gnu.org/archive/html/gnutls-devel/2011-02/msg00079.html>.
+
+   (2) Check <http://home.gna.org/cryptodev-linux/> for the Linux kernel
+implementation of '/dev/crypto'.
+
+\1f
+File: gnutls.info,  Node: Upgrading from previous versions,  Next: Support,  Prev: Internal architecture of GnuTLS,  Up: Top
+
+Appendix A Upgrading from previous versions
+*******************************************
+
+The GnuTLS library typically maintains binary and source code
+compatibility across versions.  The releases that have the major version
+increased break binary compatibility but source compatibility is
+provided.  This section lists exceptional cases where changes to
+existing code are required due to library changes.
+
+Upgrading to 2.12.x from previous versions
+==========================================
+
+GnuTLS 2.12.x is binary compatible with previous versions but changes
+the semantics of 'gnutls_transport_set_lowat', which might cause
+breakage in applications that relied on its default value be 1.  Two
+fixes are proposed:
+   * Quick fix.  Explicitly call 'gnutls_transport_set_lowat (session,
+     1);' after *note gnutls_init::.
+   * Long term fix.  Because later versions of gnutls abolish the
+     functionality of using the system call 'select' to check for gnutls
+     pending data, the function *note gnutls_record_check_pending:: has
+     to be used to achieve the same functionality as described in *note
+     Asynchronous operation::.
+
+Upgrading to 3.0.x from previous versions
+=========================================
+
+GnuTLS 3.0.x is source compatible with previous versions except for the
+functions listed below.
+
+Old function           Replacement
+                       
+-------------------------------------------------------------------
+'gnutls_transport_set_lowat'To replace its functionality the function
+                       *note gnutls_record_check_pending:: has
+                       to be used, as described in *note
+                       Asynchronous operation::
+                       
+'gnutls_session_get_server_random',They are replaced by the safer function
+'gnutls_session_get_client_random'*note gnutls_session_get_random::
+                       
+'gnutls_session_get_master_secret'Replaced by the keying material exporters
+                       discussed in *note Keying Material
+                       Exporters::
+                       
+'gnutls_transport_set_global_errno'Replaced by using the system's errno
+                       fascility or *note
+                       gnutls_transport_set_errno::.
+                       
+'gnutls_x509_privkey_verify_data'Replaced by *note
+                       gnutls_pubkey_verify_data::.
+                       
+'gnutls_certificate_verify_peers'Replaced by *note
+                       gnutls_certificate_verify_peers2::.
+                       
+'gnutls_psk_netconf_derive_key'Removed.  The key derivation function was
+                       never standardized.
+                       
+'gnutls_session_set_finished_function'Removed.
+                       
+'gnutls_ext_register'  Removed.  Extension registration API is
+                       now internal to allow easier changes in
+                       the API.
+                       
+'gnutls_certificate_get_x509_crls',Removed to allow updating the internal
+'gnutls_certificate_get_x509_cas'structures.  Replaced by *note
+                       gnutls_certificate_get_issuer::.
+                       
+'gnutls_certificate_get_openpgp_keyring'Removed.
+                       
+'gnutls_ia_*'          Removed.  The inner application
+                       extensions were completely removed (they
+                       failed to be standardized).
+                       
+
+\1f
+File: gnutls.info,  Node: Support,  Next: Error codes,  Prev: Upgrading from previous versions,  Up: Top
+
+Appendix B Support
+******************
+
+* Menu:
+
+* Getting help::
+* Commercial Support::
+* Bug Reports::
+* Contributing::
+
+\1f
+File: gnutls.info,  Node: Getting help,  Next: Commercial Support,  Up: Support
+
+B.1 Getting Help
+================
+
+A mailing list where users may help each other exists, and you can reach
+it by sending e-mail to <help-gnutls@gnu.org>.  Archives of the mailing
+list discussions, and an interface to manage subscriptions, is available
+through the World Wide Web at
+<http://lists.gnu.org/mailman/listinfo/help-gnutls>.
+
+A mailing list for developers are also available, see
+<http://www.gnu.org/software/gnutls/lists.html>.  Bug reports should be
+sent to <bug-gnutls@gnu.org>, see *note Bug Reports::.
+
+\1f
+File: gnutls.info,  Node: Commercial Support,  Next: Bug Reports,  Prev: Getting help,  Up: Support
+
+B.2 Commercial Support
+======================
+
+Commercial support is available for users of GnuTLS. The kind of support
+that can be purchased may include:
+
+   * Implement new features.  Such as a new TLS extension.
+
+   * Port GnuTLS to new platforms.  This could include porting to an
+     embedded platforms that may need memory or size optimization.
+
+   * Integrating TLS as a security environment in your existing project.
+
+   * System design of components related to TLS.
+
+If you are interested, please write to:
+
+Simon Josefsson Datakonsult
+Hagagatan 24
+113 47 Stockholm
+Sweden
+
+E-mail: simon@josefsson.org
+
+If your company provides support related to GnuTLS and would like to be
+mentioned here, contact the authors.
+
+\1f
+File: gnutls.info,  Node: Bug Reports,  Next: Contributing,  Prev: Commercial Support,  Up: Support
+
+B.3 Bug Reports
+===============
+
+If you think you have found a bug in GnuTLS, please investigate it and
+report it.
+
+   * Please make sure that the bug is really in GnuTLS, and preferably
+     also check that it hasn't already been fixed in the latest version.
+
+   * You have to send us a test case that makes it possible for us to
+     reproduce the bug.
+
+   * You also have to explain what is wrong; if you get a crash, or if
+     the results printed are not good and in that case, in what way.
+     Make sure that the bug report includes all information you would
+     need to fix this kind of bug for someone else.
+
+Please make an effort to produce a self-contained report, with something
+definite that can be tested or debugged.  Vague queries or piecemeal
+messages are difficult to act on and don't help the development effort.
+
+If your bug report is good, we will do our best to help you to get a
+corrected version of the software; if the bug report is poor, we won't
+do anything about it (apart from asking you to send better bug reports).
+
+If you think something in this manual is unclear, or downright
+incorrect, or if the language needs to be improved, please also send a
+note.
+
+Send your bug report to:
+
+                         'bug-gnutls@gnu.org'
+
+\1f
+File: gnutls.info,  Node: Contributing,  Prev: Bug Reports,  Up: Support
+
+B.4 Contributing
+================
+
+If you want to submit a patch for inclusion - from solving a typo you
+discovered, up to adding support for a new feature - you should submit
+it as a bug report, using the process in *note Bug Reports::.  There are
+some things that you can do to increase the chances for it to be
+included in the official package.
+
+Unless your patch is very small (say, under 10 lines) we require that
+you assign the copyright of your work to the Free Software Foundation.
+This is to protect the freedom of the project.  If you have not already
+signed papers, we will send you the necessary information when you
+submit your contribution.
+
+For contributions that doesn't consist of actual programming code, the
+only guidelines are common sense.  For code contributions, a number of
+style guides will help you:
+
+   * Coding Style.  Follow the GNU Standards document.
+
+     If you normally code using another coding standard, there is no
+     problem, but you should use 'indent' to reformat the code before
+     submitting your work.
+
+   * Use the unified diff format 'diff -u'.
+
+   * Return errors.  No reason whatsoever should abort the execution of
+     the library.  Even memory allocation errors, e.g.  when malloc
+     return NULL, should work although result in an error code.
+
+   * Design with thread safety in mind.  Don't use global variables.
+     Don't even write to per-handle global variables unless the
+     documented behaviour of the function you write is to write to the
+     per-handle global variable.
+
+   * Avoid using the C math library.  It causes problems for embedded
+     implementations, and in most situations it is very easy to avoid
+     using it.
+
+   * Document your functions.  Use comments before each function
+     headers, that, if properly formatted, are extracted into Texinfo
+     manuals and GTK-DOC web pages.
+
+   * Supply a ChangeLog and NEWS entries, where appropriate.
+
+\1f
+File: gnutls.info,  Node: Error codes,  Next: Supported ciphersuites,  Prev: Support,  Up: Top
+
+Appendix C Error Codes and Descriptions
+***************************************
+
+The error codes used throughout the library are described below.  The
+return code 'GNUTLS_E_SUCCESS' indicate successful operation, and is
+guaranteed to have the value 0, so you can use it in logical
+expressions.
+
+0           GNUTLS_E_SUCCESS              Success.
+-3          GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHMCould not negotiate a
+                                          supported compression
+                                          method.
+-6          GNUTLS_E_UNKNOWN_CIPHER_TYPE  The cipher type is
+                                          unsupported.
+-7          GNUTLS_E_LARGE_PACKET         The transmitted packet is
+                                          too large (EMSGSIZE).
+-8          GNUTLS_E_UNSUPPORTED_VERSION_PACKETA record packet with
+                                          illegal version was
+                                          received.
+-9          GNUTLS_E_UNEXPECTED_PACKET_LENGTHA TLS packet with
+                                          unexpected length was
+                                          received.
+-10         GNUTLS_E_INVALID_SESSION      The specified session has
+                                          been invalidated for some
+                                          reason.
+-12         GNUTLS_E_FATAL_ALERT_RECEIVED A TLS fatal alert has
+                                          been received.
+-15         GNUTLS_E_UNEXPECTED_PACKET    An unexpected TLS packet
+                                          was received.
+-16         GNUTLS_E_WARNING_ALERT_RECEIVEDA TLS warning alert has
+                                          been received.
+-18         GNUTLS_E_ERROR_IN_FINISHED_PACKETAn error was encountered
+                                          at the TLS Finished
+                                          packet calculation.
+-19         GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKETAn unexpected TLS
+                                          handshake packet was
+                                          received.
+-21         GNUTLS_E_UNKNOWN_CIPHER_SUITE Could not negotiate a
+                                          supported cipher suite.
+-22         GNUTLS_E_UNWANTED_ALGORITHM   An algorithm that is not
+                                          enabled was negotiated.
+-23         GNUTLS_E_MPI_SCAN_FAILED      The scanning of a large
+                                          integer has failed.
+-24         GNUTLS_E_DECRYPTION_FAILED    Decryption has failed.
+-25         GNUTLS_E_MEMORY_ERROR         Internal error in memory
+                                          allocation.
+-26         GNUTLS_E_DECOMPRESSION_FAILED Decompression of the TLS
+                                          record packet has failed.
+-27         GNUTLS_E_COMPRESSION_FAILED   Compression of the TLS
+                                          record packet has failed.
+-28         GNUTLS_E_AGAIN                Resource temporarily
+                                          unavailable, try again.
+-29         GNUTLS_E_EXPIRED              The requested session has
+                                          expired.
+-30         GNUTLS_E_DB_ERROR             Error in Database
+                                          backend.
+-31         GNUTLS_E_SRP_PWD_ERROR        Error in password file.
+-32         GNUTLS_E_INSUFFICIENT_CREDENTIALSInsufficient credentials
+                                          for that request.
+-33         GNUTLS_E_HASH_FAILED          Hashing has failed.
+-34         GNUTLS_E_BASE64_DECODING_ERRORBase64 decoding error.
+-35         GNUTLS_E_MPI_PRINT_FAILED     Could not export a large
+                                          integer.
+-37         GNUTLS_E_REHANDSHAKE          Rehandshake was requested
+                                          by the peer.
+-38         GNUTLS_E_GOT_APPLICATION_DATA TLS Application data were
+                                          received, while expecting
+                                          handshake data.
+-39         GNUTLS_E_RECORD_LIMIT_REACHED The upper limit of record
+                                          packet sequence numbers
+                                          has been reached.  Wow!
+-40         GNUTLS_E_ENCRYPTION_FAILED    Encryption has failed.
+-43         GNUTLS_E_CERTIFICATE_ERROR    Error in the certificate.
+-44         GNUTLS_E_PK_ENCRYPTION_FAILED Public key encryption has
+                                          failed.
+-45         GNUTLS_E_PK_DECRYPTION_FAILED Public key decryption has
+                                          failed.
+-46         GNUTLS_E_PK_SIGN_FAILED       Public key signing has
+                                          failed.
+-47         GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSIONUnsupported critical
+                                          extension in X.509
+                                          certificate.
+-48         GNUTLS_E_KEY_USAGE_VIOLATION  Key usage violation in
+                                          certificate has been
+                                          detected.
+-49         GNUTLS_E_NO_CERTIFICATE_FOUND No certificate was found.
+-50         GNUTLS_E_INVALID_REQUEST      The request is invalid.
+-51         GNUTLS_E_SHORT_MEMORY_BUFFER  The given memory buffer
+                                          is too short to hold
+                                          parameters.
+-52         GNUTLS_E_INTERRUPTED          Function was interrupted.
+-53         GNUTLS_E_PUSH_ERROR           Error in the push
+                                          function.
+-54         GNUTLS_E_PULL_ERROR           Error in the pull
+                                          function.
+-55         GNUTLS_E_RECEIVED_ILLEGAL_PARAMETERAn illegal parameter has
+                                          been received.
+-56         GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLEThe requested data were
+                                          not available.
+-57         GNUTLS_E_PKCS1_WRONG_PAD      Wrong padding in PKCS1
+                                          packet.
+-58         GNUTLS_E_RECEIVED_ILLEGAL_EXTENSIONAn illegal TLS extension
+                                          was received.
+-59         GNUTLS_E_INTERNAL_ERROR       GnuTLS internal error.
+-60         GNUTLS_E_CERTIFICATE_KEY_MISMATCHThe certificate and the
+                                          given key do not match.
+-61         GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPEThe certificate type is
+                                          not supported.
+-62         GNUTLS_E_X509_UNKNOWN_SAN     Unknown Subject
+                                          Alternative name in X.509
+                                          certificate.
+-63         GNUTLS_E_DH_PRIME_UNACCEPTABLEThe Diffie-Hellman prime
+                                          sent by the server is not
+                                          acceptable (not long
+                                          enough).
+-64         GNUTLS_E_FILE_ERROR           Error while reading file.
+-67         GNUTLS_E_ASN1_ELEMENT_NOT_FOUNDASN1 parser: Element was
+                                          not found.
+-68         GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUNDASN1 parser: Identifier
+                                          was not found
+-69         GNUTLS_E_ASN1_DER_ERROR       ASN1 parser: Error in DER
+                                          parsing.
+-70         GNUTLS_E_ASN1_VALUE_NOT_FOUND ASN1 parser: Value was
+                                          not found.
+-71         GNUTLS_E_ASN1_GENERIC_ERROR   ASN1 parser: Generic
+                                          parsing error.
+-72         GNUTLS_E_ASN1_VALUE_NOT_VALID ASN1 parser: Value is not
+                                          valid.
+-73         GNUTLS_E_ASN1_TAG_ERROR       ASN1 parser: Error in
+                                          TAG.
+-74         GNUTLS_E_ASN1_TAG_IMPLICIT    ASN1 parser: error in
+                                          implicit tag
+-75         GNUTLS_E_ASN1_TYPE_ANY_ERROR  ASN1 parser: Error in
+                                          type 'ANY'.
+-76         GNUTLS_E_ASN1_SYNTAX_ERROR    ASN1 parser: Syntax
+                                          error.
+-77         GNUTLS_E_ASN1_DER_OVERFLOW    ASN1 parser: Overflow in
+                                          DER parsing.
+-78         GNUTLS_E_TOO_MANY_EMPTY_PACKETSToo many empty record
+                                          packets have been
+                                          received.
+-79         GNUTLS_E_OPENPGP_UID_REVOKED  The OpenPGP User ID is
+                                          revoked.
+-80         GNUTLS_E_UNKNOWN_PK_ALGORITHM An unknown public key
+                                          algorithm was
+                                          encountered.
+-81         GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETSToo many handshake
+                                          packets have been
+                                          received.
+-84         GNUTLS_E_NO_TEMPORARY_RSA_PARAMSNo temporary RSA
+                                          parameters were found.
+-86         GNUTLS_E_NO_COMPRESSION_ALGORITHMSNo supported compression
+                                          algorithms have been
+                                          found.
+-87         GNUTLS_E_NO_CIPHER_SUITES     No supported cipher
+                                          suites have been found.
+-88         GNUTLS_E_OPENPGP_GETKEY_FAILEDCould not get OpenPGP
+                                          key.
+-89         GNUTLS_E_PK_SIG_VERIFY_FAILED Public key signature
+                                          verification has failed.
+-90         GNUTLS_E_ILLEGAL_SRP_USERNAME The SRP username supplied
+                                          is illegal.
+-91         GNUTLS_E_SRP_PWD_PARSING_ERRORParsing error in password
+                                          file.
+-93         GNUTLS_E_NO_TEMPORARY_DH_PARAMSNo temporary DH
+                                          parameters were found.
+-94         GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTEDThe OpenPGP fingerprint
+                                          is not supported.
+-95         GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTEThe certificate has
+                                          unsupported attributes.
+-96         GNUTLS_E_UNKNOWN_HASH_ALGORITHMThe hash algorithm is
+                                          unknown.
+-97         GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPEThe PKCS structure's
+                                          content type is unknown.
+-98         GNUTLS_E_UNKNOWN_PKCS_BAG_TYPEThe PKCS structure's bag
+                                          type is unknown.
+-99         GNUTLS_E_INVALID_PASSWORD     The given password
+                                          contains invalid
+                                          characters.
+-100        GNUTLS_E_MAC_VERIFY_FAILED    The Message
+                                          Authentication Code
+                                          verification failed.
+-101        GNUTLS_E_CONSTRAINT_ERROR     Some constraint limits
+                                          were reached.
+-102        GNUTLS_E_WARNING_IA_IPHF_RECEIVEDReceived a TLS/IA
+                                          Intermediate Phase
+                                          Finished message
+-103        GNUTLS_E_WARNING_IA_FPHF_RECEIVEDReceived a TLS/IA Final
+                                          Phase Finished message
+-104        GNUTLS_E_IA_VERIFY_FAILED     Verifying TLS/IA phase
+                                          checksum failed
+-105        GNUTLS_E_UNKNOWN_ALGORITHM    The specified algorithm
+                                          or protocol is unknown.
+-106        GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHMThe signature algorithm
+                                          is not supported.
+-107        GNUTLS_E_SAFE_RENEGOTIATION_FAILEDSafe renegotiation
+                                          failed.
+-108        GNUTLS_E_UNSAFE_RENEGOTIATION_DENIEDUnsafe renegotiation
+                                          denied.
+-109        GNUTLS_E_UNKNOWN_SRP_USERNAME The SRP username supplied
+                                          is unknown.
+-110        GNUTLS_E_PREMATURE_TERMINATIONThe TLS connection was
+                                          non-properly terminated.
+-201        GNUTLS_E_BASE64_ENCODING_ERRORBase64 encoding error.
+-202        GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARYThe crypto library
+                                          version is too old.
+-203        GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARYThe tasn1 library version
+                                          is too old.
+-204        GNUTLS_E_OPENPGP_KEYRING_ERRORError loading the
+                                          keyring.
+-205        GNUTLS_E_X509_UNSUPPORTED_OID The OID is not supported.
+-206        GNUTLS_E_RANDOM_FAILED        Failed to acquire random
+                                          data.
+-207        GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERRORBase64 unexpected header
+                                          error.
+-208        GNUTLS_E_OPENPGP_SUBKEY_ERROR Could not find OpenPGP
+                                          subkey.
+-209        GNUTLS_E_CRYPTO_ALREADY_REGISTEREDThere is already a crypto
+                                          algorithm with lower
+                                          priority.
+-210        GNUTLS_E_HANDSHAKE_TOO_LARGE  The handshake data size
+                                          is too large.
+-211        GNUTLS_E_CRYPTODEV_IOCTL_ERRORError interfacing with
+                                          /dev/crypto
+-212        GNUTLS_E_CRYPTODEV_DEVICE_ERRORError opening /dev/crypto
+-213        GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLEChannel binding data not
+                                          available
+-214        GNUTLS_E_BAD_COOKIE           The cookie was bad.
+-215        GNUTLS_E_OPENPGP_PREFERRED_KEY_ERRORThe OpenPGP key has not a
+                                          preferred key set.
+-216        GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOLThe given DSA key is
+                                          incompatible with the
+                                          selected TLS protocol.
+-300        GNUTLS_E_PKCS11_ERROR         PKCS #11 error.
+-301        GNUTLS_E_PKCS11_LOAD_ERROR    PKCS #11 initialization
+                                          error.
+-302        GNUTLS_E_PARSING_ERROR        Error in parsing.
+-303        GNUTLS_E_PKCS11_PIN_ERROR     PKCS #11 error in PIN.
+-305        GNUTLS_E_PKCS11_SLOT_ERROR    PKCS #11 error in slot
+-306        GNUTLS_E_LOCKING_ERROR        Thread locking error
+-307        GNUTLS_E_PKCS11_ATTRIBUTE_ERRORPKCS #11 error in
+                                          attribute
+-308        GNUTLS_E_PKCS11_DEVICE_ERROR  PKCS #11 error in device
+-309        GNUTLS_E_PKCS11_DATA_ERROR    PKCS #11 error in data
+-310        GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERRORPKCS #11 unsupported
+                                          feature
+-311        GNUTLS_E_PKCS11_KEY_ERROR     PKCS #11 error in key
+-312        GNUTLS_E_PKCS11_PIN_EXPIRED   PKCS #11 PIN expired
+-313        GNUTLS_E_PKCS11_PIN_LOCKED    PKCS #11 PIN locked
+-314        GNUTLS_E_PKCS11_SESSION_ERROR PKCS #11 error in session
+-315        GNUTLS_E_PKCS11_SIGNATURE_ERRORPKCS #11 error in
+                                          signature
+-316        GNUTLS_E_PKCS11_TOKEN_ERROR   PKCS #11 error in token
+-317        GNUTLS_E_PKCS11_USER_ERROR    PKCS #11 user error
+-318        GNUTLS_E_CRYPTO_INIT_FAILED   The initialization of
+                                          crypto backend has
+                                          failed.
+-319        GNUTLS_E_TIMEDOUT             The operation timed out
+-320        GNUTLS_E_USER_ERROR           The operation was
+                                          cancelled due to user
+                                          error
+-321        GNUTLS_E_ECC_NO_SUPPORTED_CURVESNo supported ECC curves
+                                          were found
+-322        GNUTLS_E_ECC_UNSUPPORTED_CURVEThe curve is unsupported
+-323        GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLEThe requested PKCS #11
+                                          object is not available
+-324        GNUTLS_E_CERTIFICATE_LIST_UNSORTEDThe provided X.509
+                                          certificate list is not
+                                          sorted (in subject to
+                                          issuer order)
+-325        GNUTLS_E_ILLEGAL_PARAMETER    An illegal parameter was
+                                          found.
+-326        GNUTLS_E_NO_PRIORITIES_WERE_SETNo or insufficient
+                                          priorities were set.
+-327        GNUTLS_E_X509_UNSUPPORTED_EXTENSIONUnsupported extension in
+                                          X.509 certificate.
+-328        GNUTLS_E_SESSION_EOF          Peer has terminated the
+                                          connection
+-341        GNUTLS_E_OCSP_RESPONSE_ERROR  The OCSP response is
+                                          invalid
+
+\1f
+File: gnutls.info,  Node: Supported ciphersuites,  Next: API reference,  Prev: Error codes,  Up: Top
+
+Appendix D Supported Ciphersuites
+*********************************
+
+Ciphersuites
+============
+
+Ciphersuite name                            TLS ID         Since
+--------------------------------------------------------------------------
+TLS_DH_ANON_ARCFOUR_MD5                     0x00 0x18      SSL3.0
+TLS_DH_ANON_3DES_EDE_CBC_SHA1               0x00 0x1B      SSL3.0
+TLS_DH_ANON_AES_128_CBC_SHA1                0x00 0x34      SSL3.0
+TLS_DH_ANON_AES_256_CBC_SHA1                0x00 0x3A      SSL3.0
+TLS_DH_ANON_CAMELLIA_128_CBC_SHA1           0x00 0x46      TLS1.0
+TLS_DH_ANON_CAMELLIA_256_CBC_SHA1           0x00 0x89      TLS1.0
+TLS_DH_ANON_AES_128_CBC_SHA256              0x00 0x6C      TLS1.2
+TLS_DH_ANON_AES_256_CBC_SHA256              0x00 0x6D      TLS1.2
+TLS_PSK_SHA_ARCFOUR_SHA1                    0x00 0x8A      TLS1.0
+TLS_PSK_SHA_3DES_EDE_CBC_SHA1               0x00 0x8B      TLS1.0
+TLS_PSK_SHA_AES_128_CBC_SHA1                0x00 0x8C      TLS1.0
+TLS_PSK_SHA_AES_256_CBC_SHA1                0x00 0x8D      TLS1.0
+TLS_PSK_AES_128_CBC_SHA256                  0x00 0xAE      TLS1.0
+TLS_PSK_AES_128_GCM_SHA256                  0x00 0xA8      TLS1.2
+TLS_PSK_NULL_SHA256                         0x00 0xB0      TLS1.0
+TLS_DHE_PSK_SHA_ARCFOUR_SHA1                0x00 0x8E      TLS1.0
+TLS_DHE_PSK_SHA_3DES_EDE_CBC_SHA1           0x00 0x8F      TLS1.0
+TLS_DHE_PSK_SHA_AES_128_CBC_SHA1            0x00 0x90      TLS1.0
+TLS_DHE_PSK_SHA_AES_256_CBC_SHA1            0x00 0x91      TLS1.0
+TLS_DHE_PSK_AES_128_CBC_SHA256              0x00 0xB2      TLS1.0
+TLS_DHE_PSK_AES_128_GCM_SHA256              0x00 0xAA      TLS1.2
+TLS_DHE_PSK_NULL_SHA256                     0x00 0xB4      TLS1.0
+TLS_SRP_SHA_3DES_EDE_CBC_SHA1               0xC0 0x1A      TLS1.0
+TLS_SRP_SHA_AES_128_CBC_SHA1                0xC0 0x1D      TLS1.0
+TLS_SRP_SHA_AES_256_CBC_SHA1                0xC0 0x20      TLS1.0
+TLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1           0xC0 0x1C      TLS1.0
+TLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1           0xC0 0x1B      TLS1.0
+TLS_SRP_SHA_DSS_AES_128_CBC_SHA1            0xC0 0x1F      TLS1.0
+TLS_SRP_SHA_RSA_AES_128_CBC_SHA1            0xC0 0x1E      TLS1.0
+TLS_SRP_SHA_DSS_AES_256_CBC_SHA1            0xC0 0x22      TLS1.0
+TLS_SRP_SHA_RSA_AES_256_CBC_SHA1            0xC0 0x21      TLS1.0
+TLS_DHE_DSS_ARCFOUR_SHA1                    0x00 0x66      TLS1.0
+TLS_DHE_DSS_3DES_EDE_CBC_SHA1               0x00 0x13      SSL3.0
+TLS_DHE_DSS_AES_128_CBC_SHA1                0x00 0x32      SSL3.0
+TLS_DHE_DSS_AES_256_CBC_SHA1                0x00 0x38      SSL3.0
+TLS_DHE_DSS_CAMELLIA_128_CBC_SHA1           0x00 0x44      TLS1.0
+TLS_DHE_DSS_CAMELLIA_256_CBC_SHA1           0x00 0x87      TLS1.0
+TLS_DHE_DSS_AES_128_CBC_SHA256              0x00 0x40      TLS1.2
+TLS_DHE_DSS_AES_256_CBC_SHA256              0x00 0x6A      TLS1.2
+TLS_DHE_RSA_3DES_EDE_CBC_SHA1               0x00 0x16      SSL3.0
+TLS_DHE_RSA_AES_128_CBC_SHA1                0x00 0x33      SSL3.0
+TLS_DHE_RSA_AES_256_CBC_SHA1                0x00 0x39      SSL3.0
+TLS_DHE_RSA_CAMELLIA_128_CBC_SHA1           0x00 0x45      TLS1.0
+TLS_DHE_RSA_CAMELLIA_256_CBC_SHA1           0x00 0x88      TLS1.0
+TLS_DHE_RSA_AES_128_CBC_SHA256              0x00 0x67      TLS1.2
+TLS_DHE_RSA_AES_256_CBC_SHA256              0x00 0x6B      TLS1.2
+TLS_RSA_NULL_MD5                            0x00 0x01      SSL3.0
+TLS_RSA_NULL_SHA1                           0x00 0x02      SSL3.0
+TLS_RSA_NULL_SHA256                         0x00 0x3B      TLS1.2
+TLS_RSA_EXPORT_ARCFOUR_40_MD5               0x00 0x03      SSL3.0
+TLS_RSA_ARCFOUR_SHA1                        0x00 0x05      SSL3.0
+TLS_RSA_ARCFOUR_MD5                         0x00 0x04      SSL3.0
+TLS_RSA_3DES_EDE_CBC_SHA1                   0x00 0x0A      SSL3.0
+TLS_RSA_AES_128_CBC_SHA1                    0x00 0x2F      SSL3.0
+TLS_RSA_AES_256_CBC_SHA1                    0x00 0x35      SSL3.0
+TLS_RSA_CAMELLIA_128_CBC_SHA1               0x00 0x41      TLS1.0
+TLS_RSA_CAMELLIA_256_CBC_SHA1               0x00 0x84      TLS1.0
+TLS_RSA_AES_128_CBC_SHA256                  0x00 0x3C      TLS1.2
+TLS_RSA_AES_256_CBC_SHA256                  0x00 0x3D      TLS1.2
+TLS_RSA_AES_128_GCM_SHA256                  0x00 0x9C      TLS1.2
+TLS_DHE_RSA_AES_128_GCM_SHA256              0x00 0x9E      TLS1.2
+TLS_DHE_DSS_AES_128_GCM_SHA256              0x00 0xA2      TLS1.2
+TLS_DH_ANON_AES_128_GCM_SHA256              0x00 0xA6      TLS1.2
+TLS_ECDH_ANON_NULL_SHA1                     0xC0 0x15      TLS1.0
+TLS_ECDH_ANON_3DES_EDE_CBC_SHA1             0xC0 0x17      TLS1.0
+TLS_ECDH_ANON_AES_128_CBC_SHA1              0xC0 0x18      TLS1.0
+TLS_ECDH_ANON_AES_256_CBC_SHA1              0xC0 0x19      TLS1.0
+TLS_ECDHE_RSA_NULL_SHA1                     0xC0 0x10      TLS1.0
+TLS_ECDHE_RSA_3DES_EDE_CBC_SHA1             0xC0 0x12      TLS1.0
+TLS_ECDHE_RSA_AES_128_CBC_SHA1              0xC0 0x13      TLS1.0
+TLS_ECDHE_RSA_AES_256_CBC_SHA1              0xC0 0x14      TLS1.0
+TLS_ECDHE_ECDSA_NULL_SHA1                   0xC0 0x06      TLS1.0
+TLS_ECDHE_ECDSA_3DES_EDE_CBC_SHA1           0xC0 0x08      TLS1.0
+TLS_ECDHE_ECDSA_AES_128_CBC_SHA1            0xC0 0x09      TLS1.0
+TLS_ECDHE_ECDSA_AES_256_CBC_SHA1            0xC0 0x0A      TLS1.0
+TLS_ECDHE_ECDSA_AES_128_CBC_SHA256          0xC0 0x23      TLS1.2
+TLS_ECDHE_RSA_AES_128_CBC_SHA256            0xC0 0x27      TLS1.2
+TLS_ECDHE_ECDSA_AES_128_GCM_SHA256          0xC0 0x2B      TLS1.2
+TLS_ECDHE_RSA_AES_128_GCM_SHA256            0xC0 0x2F      TLS1.2
+TLS_ECDHE_PSK_3DES_EDE_CBC_SHA1             0xC0 0x34      TLS1.0
+TLS_ECDHE_PSK_AES_128_CBC_SHA1              0xC0 0x35      TLS1.0
+TLS_ECDHE_PSK_AES_256_CBC_SHA1              0xC0 0x36      TLS1.0
+TLS_ECDHE_PSK_AES_128_CBC_SHA256            0xC0 0x37      TLS1.0
+TLS_ECDHE_PSK_AES_256_CBC_SHA384            0xC0 0x38      TLS1.0
+TLS_ECDHE_PSK_NULL_SHA256                   0xC0 0x3A      TLS1.0
+TLS_ECDHE_PSK_NULL_SHA384                   0xC0 0x3B      TLS1.0
+TLS_ECDHE_ECDSA_AES_256_GCM_SHA384          0xC0 0x2C      TLS1.2
+TLS_ECDHE_RSA_AES_256_GCM_SHA384            0xC0 0x30      TLS1.2
+TLS_ECDHE_ECDSA_AES_256_CBC_SHA384          0xC0 0x24      TLS1.2
+TLS_PSK_WITH_AES_256_GCM_SHA384             0x00 0xA9      TLS1.2
+TLS_DHE_PSK_WITH_AES_256_GCM_SHA384         0x00 0xAB      TLS1.2
+
+Certificate types
+=================
+
+'X.509'
+'OPENPGP'
+
+Protocols
+=========
+
+'SSL3.0'
+'TLS1.0'
+'TLS1.1'
+'TLS1.2'
+'DTLS0.9'
+'DTLS1.0'
+
+Ciphers
+=======
+
+'AES-256-CBC'
+'AES-192-CBC'
+'AES-128-CBC'
+'AES-128-GCM'
+'AES-256-GCM'
+'ARCFOUR-128'
+'CAMELLIA-256-CBC'
+'CAMELLIA-128-CBC'
+'3DES-CBC'
+'DES-CBC'
+'ARCFOUR-40'
+'RC2-40'
+
+MAC algorithms
+==============
+
+'SHA1'
+'MD5'
+'SHA256'
+'SHA384'
+'SHA512'
+'SHA224'
+'AEAD'
+
+Key exchange methods
+====================
+
+'ANON-DH'
+'ANON-ECDH'
+'RSA'
+'RSA-EXPORT'
+'DHE-RSA'
+'ECDHE-RSA'
+'ECDHE-ECDSA'
+'DHE-DSS'
+'SRP-DSS'
+'SRP-RSA'
+'SRP'
+'PSK'
+'DHE-PSK'
+'ECDHE-PSK'
+
+Public key algorithms
+=====================
+
+'RSA'
+'DSA'
+'EC'
+
+Public key signature algorithms
+===============================
+
+'RSA-SHA1'
+'RSA-SHA224'
+'RSA-SHA256'
+'RSA-SHA384'
+'RSA-SHA512'
+'RSA-RMD160'
+'DSA-SHA1'
+'DSA-SHA224'
+'DSA-SHA256'
+'RSA-MD5'
+'RSA-MD2'
+'ECDSA-SHA1'
+'ECDSA-SHA224'
+'ECDSA-SHA256'
+'ECDSA-SHA384'
+'ECDSA-SHA512'
+
+Elliptic curves
+===============
+
+'SECP192R1'
+'SECP224R1'
+'SECP256R1'
+'SECP384R1'
+'SECP521R1'
+
+Compression methods
+===================
+
+'DEFLATE'
+'NULL'
+
+\1f
+File: gnutls.info,  Node: API reference,  Next: Copying Information,  Prev: Supported ciphersuites,  Up: Top
+
+Appendix E API reference
+************************
+
+* Menu:
+
+* Core TLS API::
+* Datagram TLS API::
+* X509 certificate API::
+* OCSP API::
+* OpenPGP API::
+* PKCS 12 API::
+* PKCS 11 API::
+* Abstract key API::
+* Cryptographic API::
+* Compatibility API::
+
+\1f
+File: gnutls.info,  Node: Core TLS API,  Next: Datagram TLS API,  Up: API reference
+
+E.1 Core TLS API
+================
+
+The prototypes for the following functions lie in 'gnutls/gnutls.h'.
+
+gnutls_alert_get
+----------------
+
+ -- Function: gnutls_alert_description_t gnutls_alert_get
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function will return the last alert number received.  This
+     function should be called when 'GNUTLS_E_WARNING_ALERT_RECEIVED' or
+     'GNUTLS_E_FATAL_ALERT_RECEIVED' errors are returned by a gnutls
+     function.  The peer may send alerts if he encounters an error.  If
+     no alert has been received the returned value is undefined.
+
+     *Returns:* the last alert received, a 'gnutls_alert_description_t'
+     value.
+
+gnutls_alert_get_name
+---------------------
+
+ -- Function: const char * gnutls_alert_get_name
+          (gnutls_alert_description_t ALERT)
+     ALERT: is an alert number.
+
+     This function will return a string that describes the given alert
+     number, or 'NULL' .  See 'gnutls_alert_get()' .
+
+     *Returns:* string corresponding to 'gnutls_alert_description_t'
+     value.
+
+gnutls_alert_get_strname
+------------------------
+
+ -- Function: const char * gnutls_alert_get_strname
+          (gnutls_alert_description_t ALERT)
+     ALERT: is an alert number.
+
+     This function will return a string of the name of the alert.
+
+     *Returns:* string corresponding to 'gnutls_alert_description_t'
+     value.
+
+     *Since:* 3.0
+
+gnutls_alert_send
+-----------------
+
+ -- Function: int gnutls_alert_send (gnutls_session_t SESSION,
+          gnutls_alert_level_t LEVEL, gnutls_alert_description_t DESC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     LEVEL: is the level of the alert
+
+     DESC: is the alert description
+
+     This function will send an alert to the peer in order to inform him
+     of something important (eg.  his Certificate could not be
+     verified).  If the alert level is Fatal then the peer is expected
+     to close the connection, otherwise he may ignore the alert and
+     continue.
+
+     The error code of the underlying record send function will be
+     returned, so you may also receive 'GNUTLS_E_INTERRUPTED' or
+     'GNUTLS_E_AGAIN' as well.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_alert_send_appropriate
+-----------------------------
+
+ -- Function: int gnutls_alert_send_appropriate (gnutls_session_t
+          SESSION, int ERR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     ERR: is an integer
+
+     Sends an alert to the peer depending on the error code returned by
+     a gnutls function.  This function will call
+     'gnutls_error_to_alert()' to determine the appropriate alert to
+     send.
+
+     This function may also return 'GNUTLS_E_AGAIN' , or
+     'GNUTLS_E_INTERRUPTED' .
+
+     If the return value is 'GNUTLS_E_INVALID_REQUEST' , then no alert
+     has been sent to the peer.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_anon_allocate_client_credentials
+---------------------------------------
+
+ -- Function: int gnutls_anon_allocate_client_credentials
+          (gnutls_anon_client_credentials_t * SC)
+     SC: is a pointer to a 'gnutls_anon_client_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to allocate it.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_anon_allocate_server_credentials
+---------------------------------------
+
+ -- Function: int gnutls_anon_allocate_server_credentials
+          (gnutls_anon_server_credentials_t * SC)
+     SC: is a pointer to a 'gnutls_anon_server_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to allocate it.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_anon_free_client_credentials
+-----------------------------------
+
+ -- Function: void gnutls_anon_free_client_credentials
+          (gnutls_anon_client_credentials_t SC)
+     SC: is a 'gnutls_anon_client_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to free (deallocate) it.
+
+gnutls_anon_free_server_credentials
+-----------------------------------
+
+ -- Function: void gnutls_anon_free_server_credentials
+          (gnutls_anon_server_credentials_t SC)
+     SC: is a 'gnutls_anon_server_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to free (deallocate) it.
+
+gnutls_anon_set_params_function
+-------------------------------
+
+ -- Function: void gnutls_anon_set_params_function
+          (gnutls_anon_server_credentials_t RES, gnutls_params_function
+          * FUNC)
+     RES: is a gnutls_anon_server_credentials_t structure
+
+     FUNC: is the function to be called
+
+     This function will set a callback in order for the server to get
+     the Diffie-Hellman or RSA parameters for anonymous authentication.
+     The callback should return 'GNUTLS_E_SUCCESS' (0) on success.
+
+gnutls_anon_set_server_dh_params
+--------------------------------
+
+ -- Function: void gnutls_anon_set_server_dh_params
+          (gnutls_anon_server_credentials_t RES, gnutls_dh_params_t
+          DH_PARAMS)
+     RES: is a gnutls_anon_server_credentials_t structure
+
+     DH_PARAMS: is a structure that holds Diffie-Hellman parameters.
+
+     This function will set the Diffie-Hellman parameters for an
+     anonymous server to use.  These parameters will be used in
+     Anonymous Diffie-Hellman cipher suites.
+
+gnutls_anon_set_server_params_function
+--------------------------------------
+
+ -- Function: void gnutls_anon_set_server_params_function
+          (gnutls_anon_server_credentials_t RES, gnutls_params_function
+          * FUNC)
+     RES: is a gnutls_certificate_credentials_t structure
+
+     FUNC: is the function to be called
+
+     This function will set a callback in order for the server to get
+     the Diffie-Hellman parameters for anonymous authentication.  The
+     callback should return 'GNUTLS_E_SUCCESS' (0) on success.
+
+gnutls_auth_client_get_type
+---------------------------
+
+ -- Function: gnutls_credentials_type_t gnutls_auth_client_get_type
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Returns the type of credentials that were used for client
+     authentication.  The returned information is to be used to
+     distinguish the function used to access authentication data.
+
+     *Returns:* The type of credentials for the client authentication
+     schema, a 'gnutls_credentials_type_t' type.
+
+gnutls_auth_get_type
+--------------------
+
+ -- Function: gnutls_credentials_type_t gnutls_auth_get_type
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Returns type of credentials for the current authentication schema.
+     The returned information is to be used to distinguish the function
+     used to access authentication data.
+
+     Eg.  for CERTIFICATE ciphersuites (key exchange algorithms:
+     'GNUTLS_KX_RSA' , 'GNUTLS_KX_DHE_RSA' ), the same function are to
+     be used to access the authentication data.
+
+     *Returns:* The type of credentials for the current authentication
+     schema, a 'gnutls_credentials_type_t' type.
+
+gnutls_auth_server_get_type
+---------------------------
+
+ -- Function: gnutls_credentials_type_t gnutls_auth_server_get_type
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Returns the type of credentials that were used for server
+     authentication.  The returned information is to be used to
+     distinguish the function used to access authentication data.
+
+     *Returns:* The type of credentials for the server authentication
+     schema, a 'gnutls_credentials_type_t' type.
+
+gnutls_bye
+----------
+
+ -- Function: int gnutls_bye (gnutls_session_t SESSION,
+          gnutls_close_request_t HOW)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     HOW: is an integer
+
+     Terminates the current TLS/SSL connection.  The connection should
+     have been initiated using 'gnutls_handshake()' .  'how' should be
+     one of 'GNUTLS_SHUT_RDWR' , 'GNUTLS_SHUT_WR' .
+
+     In case of 'GNUTLS_SHUT_RDWR' the TLS session gets terminated and
+     further receives and sends will be disallowed.  If the return value
+     is zero you may continue using the underlying transport layer.
+     'GNUTLS_SHUT_RDWR' sends an alert containing a close request and
+     waits for the peer to reply with the same message.
+
+     In case of 'GNUTLS_SHUT_WR' the TLS session gets terminated and
+     further sends will be disallowed.  In order to reuse the connection
+     you should wait for an EOF from the peer.  'GNUTLS_SHUT_WR' sends
+     an alert containing a close request.
+
+     Note that not all implementations will properly terminate a TLS
+     connection.  Some of them, usually for performance reasons, will
+     terminate only the underlying transport layer, and thus not
+     distinguishing between a malicious party prematurely terminating
+     the connection and normal termination.
+
+     This function may also return 'GNUTLS_E_AGAIN' or
+     'GNUTLS_E_INTERRUPTED' ; cf.  'gnutls_record_get_direction()' .
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code, see
+     function documentation for entire semantics.
+
+gnutls_certificate_activation_time_peers
+----------------------------------------
+
+ -- Function: time_t gnutls_certificate_activation_time_peers
+          (gnutls_session_t SESSION)
+     SESSION: is a gnutls session
+
+     This function will return the peer's certificate activation time.
+     This is the creation time for openpgp keys.
+
+     *Returns:* (time_t)-1 on error.
+
+     *Deprecated:* 'gnutls_certificate_verify_peers2()' now verifies
+     activation times.
+
+gnutls_certificate_allocate_credentials
+---------------------------------------
+
+ -- Function: int gnutls_certificate_allocate_credentials
+          (gnutls_certificate_credentials_t * RES)
+     RES: is a pointer to a 'gnutls_certificate_credentials_t'
+     structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to allocate it.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_certificate_client_get_request_status
+--------------------------------------------
+
+ -- Function: int gnutls_certificate_client_get_request_status
+          (gnutls_session_t SESSION)
+     SESSION: is a gnutls session
+
+     Get whether client certificate is requested or not.
+
+     *Returns:* 0 if the peer (server) did not request client
+     authentication or 1 otherwise, or a negative error code in case of
+     error.
+
+gnutls_certificate_expiration_time_peers
+----------------------------------------
+
+ -- Function: time_t gnutls_certificate_expiration_time_peers
+          (gnutls_session_t SESSION)
+     SESSION: is a gnutls session
+
+     This function will return the peer's certificate expiration time.
+
+     *Returns:* (time_t)-1 on error.
+
+     *Deprecated:* 'gnutls_certificate_verify_peers2()' now verifies
+     expiration times.
+
+gnutls_certificate_free_ca_names
+--------------------------------
+
+ -- Function: void gnutls_certificate_free_ca_names
+          (gnutls_certificate_credentials_t SC)
+     SC: is a 'gnutls_certificate_credentials_t' structure.
+
+     This function will delete all the CA name in the given credentials.
+     Clients may call this to save some memory since in client side the
+     CA names are not used.  Servers might want to use this function if
+     a large list of trusted CAs is present and sending the names of it
+     would just consume bandwidth without providing information to
+     client.
+
+     CA names are used by servers to advertise the CAs they support to
+     clients.
+
+gnutls_certificate_free_cas
+---------------------------
+
+ -- Function: void gnutls_certificate_free_cas
+          (gnutls_certificate_credentials_t SC)
+     SC: is a 'gnutls_certificate_credentials_t' structure.
+
+     This function will delete all the CAs associated with the given
+     credentials.  Servers that do not use
+     'gnutls_certificate_verify_peers2()' may call this to save some
+     memory.
+
+gnutls_certificate_free_credentials
+-----------------------------------
+
+ -- Function: void gnutls_certificate_free_credentials
+          (gnutls_certificate_credentials_t SC)
+     SC: is a 'gnutls_certificate_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to free (deallocate) it.
+
+     This function does not free any temporary parameters associated
+     with this structure (ie RSA and DH parameters are not freed by this
+     function).
+
+gnutls_certificate_free_crls
+----------------------------
+
+ -- Function: void gnutls_certificate_free_crls
+          (gnutls_certificate_credentials_t SC)
+     SC: is a 'gnutls_certificate_credentials_t' structure.
+
+     This function will delete all the CRLs associated with the given
+     credentials.
+
+gnutls_certificate_free_keys
+----------------------------
+
+ -- Function: void gnutls_certificate_free_keys
+          (gnutls_certificate_credentials_t SC)
+     SC: is a 'gnutls_certificate_credentials_t' structure.
+
+     This function will delete all the keys and the certificates
+     associated with the given credentials.  This function must not be
+     called when a TLS negotiation that uses the credentials is in
+     progress.
+
+gnutls_certificate_get_issuer
+-----------------------------
+
+ -- Function: int gnutls_certificate_get_issuer
+          (gnutls_certificate_credentials_t SC, gnutls_x509_crt_t CERT,
+          gnutls_x509_crt_t* ISSUER, unsigned int FLAGS)
+     SC: is a 'gnutls_certificate_credentials_t' structure.
+
+     CERT: is the certificate to find issuer for
+
+     ISSUER: Will hold the issuer if any.  Should be treated as
+     constant.
+
+     FLAGS: Use zero.
+
+     This function will return the issuer of a given certificate.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_certificate_get_ours
+---------------------------
+
+ -- Function: const gnutls_datum_t * gnutls_certificate_get_ours
+          (gnutls_session_t SESSION)
+     SESSION: is a gnutls session
+
+     Gets the certificate as sent to the peer in the last handshake.
+     The certificate is in raw (DER) format.  No certificate list is
+     being returned.  Only the first certificate.
+
+     *Returns:* a pointer to a 'gnutls_datum_t' containing our
+     certificate, or 'NULL' in case of an error or if no certificate was
+     used.
+
+gnutls_certificate_get_peers
+----------------------------
+
+ -- Function: const gnutls_datum_t * gnutls_certificate_get_peers
+          (gnutls_session_t SESSION, unsigned int * LIST_SIZE)
+     SESSION: is a gnutls session
+
+     LIST_SIZE: is the length of the certificate list
+
+     Get the peer's raw certificate (chain) as sent by the peer.  These
+     certificates are in raw format (DER encoded for X.509).  In case of
+     a X.509 then a certificate list may be present.  The first
+     certificate in the list is the peer's certificate, following the
+     issuer's certificate, then the issuer's issuer etc.
+
+     In case of OpenPGP keys a single key will be returned in raw
+     format.
+
+     *Returns:* a pointer to a 'gnutls_datum_t' containing our
+     certificates, or 'NULL' in case of an error or if no certificate
+     was used.
+
+gnutls_certificate_send_x509_rdn_sequence
+-----------------------------------------
+
+ -- Function: void gnutls_certificate_send_x509_rdn_sequence
+          (gnutls_session_t SESSION, int STATUS)
+     SESSION: is a pointer to a 'gnutls_session_t' structure.
+
+     STATUS: is 0 or 1
+
+     If status is non zero, this function will order gnutls not to send
+     the rdnSequence in the certificate request message.  That is the
+     server will not advertise its trusted CAs to the peer.  If status
+     is zero then the default behaviour will take effect, which is to
+     advertise the server's trusted CAs.
+
+     This function has no effect in clients, and in authentication
+     methods other than certificate with X.509 certificates.
+
+gnutls_certificate_server_set_request
+-------------------------------------
+
+ -- Function: void gnutls_certificate_server_set_request
+          (gnutls_session_t SESSION, gnutls_certificate_request_t REQ)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     REQ: is one of GNUTLS_CERT_REQUEST, GNUTLS_CERT_REQUIRE
+
+     This function specifies if we (in case of a server) are going to
+     send a certificate request message to the client.  If 'req' is
+     GNUTLS_CERT_REQUIRE then the server will return an error if the
+     peer does not provide a certificate.  If you do not call this
+     function then the client will not be asked to send a certificate.
+
+gnutls_certificate_set_dh_params
+--------------------------------
+
+ -- Function: void gnutls_certificate_set_dh_params
+          (gnutls_certificate_credentials_t RES, gnutls_dh_params_t
+          DH_PARAMS)
+     RES: is a gnutls_certificate_credentials_t structure
+
+     DH_PARAMS: is a structure that holds Diffie-Hellman parameters.
+
+     This function will set the Diffie-Hellman parameters for a
+     certificate server to use.  These parameters will be used in
+     Ephemeral Diffie-Hellman cipher suites.  Note that only a pointer
+     to the parameters are stored in the certificate handle, so if you
+     deallocate the parameters before the certificate is deallocated,
+     you must change the parameters stored in the certificate first.
+
+gnutls_certificate_set_params_function
+--------------------------------------
+
+ -- Function: void gnutls_certificate_set_params_function
+          (gnutls_certificate_credentials_t RES, gnutls_params_function
+          * FUNC)
+     RES: is a gnutls_certificate_credentials_t structure
+
+     FUNC: is the function to be called
+
+     This function will set a callback in order for the server to get
+     the Diffie-Hellman or RSA parameters for certificate
+     authentication.  The callback should return 'GNUTLS_E_SUCCESS' (0)
+     on success.
+
+gnutls_certificate_set_retrieve_function
+----------------------------------------
+
+ -- Function: void gnutls_certificate_set_retrieve_function
+          (gnutls_certificate_credentials_t CRED,
+          gnutls_certificate_retrieve_function * FUNC)
+     CRED: is a 'gnutls_certificate_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function sets a callback to be called in order to retrieve the
+     certificate to be used in the handshake.  You are advised to use
+     'gnutls_certificate_set_retrieve_function2()' because it is much
+     more efficient in the processing it requires from gnutls.
+
+     The callback's function prototype is: int
+     (*callback)(gnutls_session_t, const gnutls_datum_t* req_ca_dn, int
+     nreqs, const gnutls_pk_algorithm_t* pk_algos, int pk_algos_length,
+     gnutls_retr2_st* st);
+
+     'req_ca_cert' is only used in X.509 certificates.  Contains a list
+     with the CA names that the server considers trusted.  Normally we
+     should send a certificate that is signed by one of these CAs.
+     These names are DER encoded.  To get a more meaningful value use
+     the function 'gnutls_x509_rdn_get()' .
+
+     'pk_algos' contains a list with server's acceptable signature
+     algorithms.  The certificate returned should support the server's
+     given algorithms.
+
+     'st' should contain the certificates and private keys.
+
+     If the callback function is provided then gnutls will call it, in
+     the handshake, after the certificate request message has been
+     received.
+
+     In server side pk_algos and req_ca_dn are NULL.
+
+     The callback function should set the certificate list to be sent,
+     and return 0 on success.  If no certificate was selected then the
+     number of certificates should be set to zero.  The value (-1)
+     indicates error and the handshake will be terminated.
+
+     *Since:* 3.0
+
+gnutls_certificate_set_verify_flags
+-----------------------------------
+
+ -- Function: void gnutls_certificate_set_verify_flags
+          (gnutls_certificate_credentials_t RES, unsigned int FLAGS)
+     RES: is a gnutls_certificate_credentials_t structure
+
+     FLAGS: are the flags
+
+     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.  The default for
+     TLS sessions is GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN.
+
+gnutls_certificate_set_verify_function
+--------------------------------------
+
+ -- Function: void gnutls_certificate_set_verify_function
+          (gnutls_certificate_credentials_t CRED,
+          gnutls_certificate_verify_function * FUNC)
+     CRED: is a 'gnutls_certificate_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function sets a callback to be called when peer's certificate
+     has been received in order to verify it on receipt rather than
+     doing after the handshake is completed.
+
+     The callback's function prototype is: int
+     (*callback)(gnutls_session_t);
+
+     If the callback function is provided then gnutls will call it, in
+     the handshake, just after the certificate message has been
+     received.  To verify or obtain the certificate the
+     'gnutls_certificate_verify_peers2()' ,
+     'gnutls_certificate_type_get()' , 'gnutls_certificate_get_peers()'
+     functions can be used.
+
+     The callback function should return 0 for the handshake to continue
+     or non-zero to terminate.
+
+     *Since:* 2.10.0
+
+gnutls_certificate_set_verify_limits
+------------------------------------
+
+ -- Function: void gnutls_certificate_set_verify_limits
+          (gnutls_certificate_credentials_t RES, unsigned int MAX_BITS,
+          unsigned int MAX_DEPTH)
+     RES: is a gnutls_certificate_credentials structure
+
+     MAX_BITS: is the number of bits of an acceptable certificate
+     (default 8200)
+
+     MAX_DEPTH: is maximum depth of the verification of a certificate
+     chain (default 5)
+
+     This function will set some upper limits for the default
+     verification function, 'gnutls_certificate_verify_peers2()' , to
+     avoid denial of service attacks.  You can set them to zero to
+     disable limits.
+
+gnutls_certificate_set_x509_crl
+-------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_crl
+          (gnutls_certificate_credentials_t RES, gnutls_x509_crl_t *
+          CRL_LIST, int CRL_LIST_SIZE)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     CRL_LIST: is a list of trusted CRLs.  They should have been
+     verified before.
+
+     CRL_LIST_SIZE: holds the size of the crl_list
+
+     This function adds the trusted CRLs in order to verify client or
+     server certificates.  In case of a client this is not required to
+     be called if the certificates are not verified using
+     'gnutls_certificate_verify_peers2()' .  This function may be called
+     multiple times.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success, or a negative error
+     code.
+
+     *Since:* 2.4.0
+
+gnutls_certificate_set_x509_crl_file
+------------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_crl_file
+          (gnutls_certificate_credentials_t RES, const char * CRLFILE,
+          gnutls_x509_crt_fmt_t TYPE)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     CRLFILE: is a file containing the list of verified CRLs (DER or PEM
+     list)
+
+     TYPE: is PEM or DER
+
+     This function adds the trusted CRLs in order to verify client or
+     server certificates.  In case of a client this is not required to
+     be called if the certificates are not verified using
+     'gnutls_certificate_verify_peers2()' .  This function may be called
+     multiple times.
+
+     *Returns:* number of CRLs processed or a negative error code on
+     error.
+
+gnutls_certificate_set_x509_crl_mem
+-----------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_crl_mem
+          (gnutls_certificate_credentials_t RES, const gnutls_datum_t *
+          CRL, gnutls_x509_crt_fmt_t TYPE)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     CRL: is a list of trusted CRLs.  They should have been verified
+     before.
+
+     TYPE: is DER or PEM
+
+     This function adds the trusted CRLs in order to verify client or
+     server certificates.  In case of a client this is not required to
+     be called if the certificates are not verified using
+     'gnutls_certificate_verify_peers2()' .  This function may be called
+     multiple times.
+
+     *Returns:* number of CRLs processed, or a negative error code on
+     error.
+
+gnutls_certificate_set_x509_key
+-------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_key
+          (gnutls_certificate_credentials_t RES, gnutls_x509_crt_t *
+          CERT_LIST, int CERT_LIST_SIZE, gnutls_x509_privkey_t KEY)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     CERT_LIST: contains a certificate list (path) for the specified
+     private key
+
+     CERT_LIST_SIZE: holds the size of the certificate list
+
+     KEY: is a gnutls_x509_privkey_t key
+
+     This function sets a certificate/private key pair in the
+     gnutls_certificate_credentials_t structure.  This function may be
+     called more than once, in case multiple keys/certificates exist for
+     the server.  For clients that wants to send more than its own end
+     entity certificate (e.g., also an intermediate CA cert) then put
+     the certificate chain in 'cert_list' .
+
+     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success, or a negative error
+     code.
+
+     *Since:* 2.4.0
+
+gnutls_certificate_set_x509_key_file
+------------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_key_file
+          (gnutls_certificate_credentials_t RES, const char * CERTFILE,
+          const char * KEYFILE, gnutls_x509_crt_fmt_t TYPE)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     CERTFILE: is a file that containing the certificate list (path) for
+     the specified private key, in PKCS7 format, or a list of
+     certificates
+
+     KEYFILE: is a file that contains the private key
+
+     TYPE: is PEM or DER
+
+     This function sets a certificate/private key pair in the
+     gnutls_certificate_credentials_t structure.  This function may be
+     called more than once, in case multiple keys/certificates exist for
+     the server.  For clients that need to send more than its own end
+     entity certificate, e.g., also an intermediate CA cert, then the
+     'certfile' must contain the ordered certificate chain.
+
+     This function can also accept PKCS '11' URLs at 'keyfile' and
+     'certfile' .  In that case it will import the private key and
+     certificate indicated by the URLs.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success, or a negative error
+     code.
+
+gnutls_certificate_set_x509_key_mem
+-----------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_key_mem
+          (gnutls_certificate_credentials_t RES, const gnutls_datum_t *
+          CERT, const gnutls_datum_t * KEY, gnutls_x509_crt_fmt_t TYPE)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     CERT: contains a certificate list (path) for the specified private
+     key
+
+     KEY: is the private key, or 'NULL'
+
+     TYPE: is PEM or DER
+
+     This function sets a certificate/private key pair in the
+     gnutls_certificate_credentials_t structure.  This function may be
+     called more than once, in case multiple keys/certificates exist for
+     the server.
+
+     Note that the keyUsage (2.5.29.15) PKIX extension in X.509
+     certificates is supported.  This means that certificates intended
+     for signing cannot be used for ciphersuites that require
+     encryption.
+
+     If the certificate and the private key are given in PEM encoding
+     then the strings that hold their values must be null terminated.
+
+     The 'key' may be 'NULL' if you are using a sign callback, see
+     'gnutls_sign_callback_set()' .
+
+     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success, or a negative error
+     code.
+
+gnutls_certificate_set_x509_simple_pkcs12_file
+----------------------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_simple_pkcs12_file
+          (gnutls_certificate_credentials_t RES, const char *
+          PKCS12FILE, gnutls_x509_crt_fmt_t TYPE, const char * PASSWORD)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     PKCS12FILE: filename of file containing PKCS'12' blob.
+
+     TYPE: is PEM or DER of the 'pkcs12file' .
+
+     PASSWORD: optional password used to decrypt PKCS'12' file, bags and
+     keys.
+
+     This function sets a certificate/private key pair and/or a CRL in
+     the gnutls_certificate_credentials_t structure.  This function may
+     be called more than once (in case multiple keys/certificates exist
+     for the server).
+
+     PKCS'12' files with a MAC, encrypted bags and PKCS '8' private keys
+     are supported.  However, only password based security, and the same
+     password for all operations, are supported.
+
+     PKCS'12' file may contain many keys and/or certificates, and there
+     is no way to identify which key/certificate pair you want.  You
+     should make sure the PKCS'12' file only contain one key/certificate
+     pair and/or one CRL.
+
+     It is believed that the limitations of this function is acceptable
+     for most usage, and that any more flexibility would introduce
+     complexity that would make it harder to use this functionality at
+     all.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success, or a negative error
+     code.
+
+gnutls_certificate_set_x509_simple_pkcs12_mem
+---------------------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_simple_pkcs12_mem
+          (gnutls_certificate_credentials_t RES, const gnutls_datum_t *
+          P12BLOB, gnutls_x509_crt_fmt_t TYPE, const char * PASSWORD)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     P12BLOB: the PKCS'12' blob.
+
+     TYPE: is PEM or DER of the 'pkcs12file' .
+
+     PASSWORD: optional password used to decrypt PKCS'12' file, bags and
+     keys.
+
+     This function sets a certificate/private key pair and/or a CRL in
+     the gnutls_certificate_credentials_t structure.  This function may
+     be called more than once (in case multiple keys/certificates exist
+     for the server).
+
+     *MAC:* ed PKCS'12' files are supported.  Encrypted PKCS'12' bags
+     are supported.  Encrypted PKCS'8' private keys are supported.
+     However, only password based security, and the same password for
+     all operations, are supported.
+
+     PKCS'12' file may contain many keys and/or certificates, and there
+     is no way to identify which key/certificate pair you want.  You
+     should make sure the PKCS'12' file only contain one key/certificate
+     pair and/or one CRL.
+
+     It is believed that the limitations of this function is acceptable
+     for most usage, and that any more flexibility would introduce
+     complexity that would make it harder to use this functionality at
+     all.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success, or a negative error
+     code.
+
+     *Since:* 2.8.0
+
+gnutls_certificate_set_x509_system_trust
+----------------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_system_trust
+          (gnutls_certificate_credentials_t CRED)
+     CRED: is a 'gnutls_certificate_credentials_t' structure.
+
+     This function adds the system's default trusted CAs in order to
+     verify client or server certificates.
+
+     In the case the system is currently unsupported
+     'GNUTLS_E_UNIMPLEMENTED_FEATURE' is returned.
+
+     *Returns:* the number of certificates processed or a negative error
+     code on error.
+
+     *Since:* 3.0
+
+gnutls_certificate_set_x509_trust
+---------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_trust
+          (gnutls_certificate_credentials_t RES, gnutls_x509_crt_t *
+          CA_LIST, int CA_LIST_SIZE)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     CA_LIST: is a list of trusted CAs
+
+     CA_LIST_SIZE: holds the size of the CA list
+
+     This function adds the trusted CAs in order to verify client or
+     server certificates.  In case of a client this is not required to
+     be called if the certificates are not verified using
+     'gnutls_certificate_verify_peers2()' .  This function may be called
+     multiple times.
+
+     In case of a server the CAs set here will be sent to the client if
+     a certificate request is sent.  This can be disabled using
+     'gnutls_certificate_send_x509_rdn_sequence()' .
+
+     *Returns:* the number of certificates processed or a negative error
+     code on error.
+
+     *Since:* 2.4.0
+
+gnutls_certificate_set_x509_trust_file
+--------------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_trust_file
+          (gnutls_certificate_credentials_t CRED, const char * CAFILE,
+          gnutls_x509_crt_fmt_t TYPE)
+     CRED: is a 'gnutls_certificate_credentials_t' structure.
+
+     CAFILE: is a file containing the list of trusted CAs (DER or PEM
+     list)
+
+     TYPE: is PEM or DER
+
+     This function adds the trusted CAs in order to verify client or
+     server certificates.  In case of a client this is not required to
+     be called if the certificates are not verified using
+     'gnutls_certificate_verify_peers2()' .  This function may be called
+     multiple times.
+
+     In case of a server the names of the CAs set here will be sent to
+     the client if a certificate request is sent.  This can be disabled
+     using 'gnutls_certificate_send_x509_rdn_sequence()' .
+
+     This function can also accept PKCS '11' URLs.  In that case it will
+     import all certificates that are marked as trusted.
+
+     *Returns:* number of certificates processed, or a negative error
+     code on error.
+
+gnutls_certificate_set_x509_trust_mem
+-------------------------------------
+
+ -- Function: int gnutls_certificate_set_x509_trust_mem
+          (gnutls_certificate_credentials_t RES, const gnutls_datum_t *
+          CA, gnutls_x509_crt_fmt_t TYPE)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     CA: is a list of trusted CAs or a DER certificate
+
+     TYPE: is DER or PEM
+
+     This function adds the trusted CAs in order to verify client or
+     server certificates.  In case of a client this is not required to
+     be called if the certificates are not verified using
+     'gnutls_certificate_verify_peers2()' .  This function may be called
+     multiple times.
+
+     In case of a server the CAs set here will be sent to the client if
+     a certificate request is sent.  This can be disabled using
+     'gnutls_certificate_send_x509_rdn_sequence()' .
+
+     *Returns:* the number of certificates processed or a negative error
+     code on error.
+
+gnutls_certificate_type_get
+---------------------------
+
+ -- Function: gnutls_certificate_type_t gnutls_certificate_type_get
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     The certificate type is by default X.509, unless it is negotiated
+     as a TLS extension.
+
+     *Returns:* the currently used 'gnutls_certificate_type_t'
+     certificate type.
+
+gnutls_certificate_type_get_id
+------------------------------
+
+ -- Function: gnutls_certificate_type_t gnutls_certificate_type_get_id
+          (const char * NAME)
+     NAME: is a certificate type name
+
+     The names are compared in a case insensitive way.
+
+     *Returns:* a 'gnutls_certificate_type_t' for the specified in a
+     string certificate type, or 'GNUTLS_CRT_UNKNOWN' on error.
+
+gnutls_certificate_type_get_name
+--------------------------------
+
+ -- Function: const char * gnutls_certificate_type_get_name
+          (gnutls_certificate_type_t TYPE)
+     TYPE: is a certificate type
+
+     Convert a 'gnutls_certificate_type_t' type to a string.
+
+     *Returns:* a string that contains the name of the specified
+     certificate type, or 'NULL' in case of unknown types.
+
+gnutls_certificate_type_list
+----------------------------
+
+ -- Function: const gnutls_certificate_type_t *
+          gnutls_certificate_type_list ( VOID)
+
+     Get a list of certificate types.  Note that to be able to use
+     OpenPGP certificates, you must link to libgnutls-extra and call
+     'gnutls_global_init_extra()' .
+
+     *Returns:* a (0)-terminated list of 'gnutls_certificate_type_t'
+     integers indicating the available certificate types.
+
+gnutls_certificate_verify_peers2
+--------------------------------
+
+ -- Function: int gnutls_certificate_verify_peers2 (gnutls_session_t
+          SESSION, unsigned int * STATUS)
+     SESSION: is a gnutls session
+
+     STATUS: is the output of the verification
+
+     This function will try to verify the peer's certificate and return
+     its status (trusted, invalid etc.).  The value of 'status' should
+     be one or more of the gnutls_certificate_status_t enumerated
+     elements bitwise or'd.  To avoid denial of service attacks some
+     default upper limits regarding the certificate key size and chain
+     size are set.  To override them use
+     'gnutls_certificate_set_verify_limits()' .
+
+     Note that you must also check the peer's name in order to check if
+     the verified certificate belongs to the actual peer.
+
+     This function uses 'gnutls_x509_crt_list_verify()' with the CAs in
+     the credentials as trusted CAs.
+
+     *Returns:* a negative error code on error and 'GNUTLS_E_SUCCESS'
+     (0) on success.
+
+gnutls_check_version
+--------------------
+
+ -- Function: const char * gnutls_check_version (const char *
+          REQ_VERSION)
+     REQ_VERSION: version string to compare with, or 'NULL' .
+
+     Check GnuTLS Library version.
+
+     See 'GNUTLS_VERSION' for a suitable 'req_version' string.
+
+     *Returns:* Check that the version of the library is at minimum the
+     one given as a string in 'req_version' and return the actual
+     version string of the library; return 'NULL' if the condition is
+     not met.  If 'NULL' is passed to this function no check is done and
+     only the version string is returned.
+
+gnutls_cipher_get
+-----------------
+
+ -- Function: gnutls_cipher_algorithm_t gnutls_cipher_get
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Get currently used cipher.
+
+     *Returns:* the currently used cipher, a 'gnutls_cipher_algorithm_t'
+     type.
+
+gnutls_cipher_get_id
+--------------------
+
+ -- Function: gnutls_cipher_algorithm_t gnutls_cipher_get_id (const char
+          * NAME)
+     NAME: is a cipher algorithm name
+
+     The names are compared in a case insensitive way.
+
+     *Returns:* return a 'gnutls_cipher_algorithm_t' value corresponding
+     to the specified cipher, or 'GNUTLS_CIPHER_UNKNOWN' on error.
+
+gnutls_cipher_get_key_size
+--------------------------
+
+ -- Function: size_t gnutls_cipher_get_key_size
+          (gnutls_cipher_algorithm_t ALGORITHM)
+     ALGORITHM: is an encryption algorithm
+
+     Get key size for cipher.
+
+     *Returns:* length (in bytes) of the given cipher's key size, or 0
+     if the given cipher is invalid.
+
+gnutls_cipher_get_name
+----------------------
+
+ -- Function: const char * gnutls_cipher_get_name
+          (gnutls_cipher_algorithm_t ALGORITHM)
+     ALGORITHM: is an encryption algorithm
+
+     Convert a 'gnutls_cipher_algorithm_t' type to a string.
+
+     *Returns:* a pointer to a string that contains the name of the
+     specified cipher, or 'NULL' .
+
+gnutls_cipher_list
+------------------
+
+ -- Function: const gnutls_cipher_algorithm_t * gnutls_cipher_list (
+          VOID)
+
+     Get a list of supported cipher algorithms.  Note that not
+     necessarily all ciphers are supported as TLS cipher suites.  For
+     example, DES is not supported as a cipher suite, but is supported
+     for other purposes (e.g., PKCS'8' or similar).
+
+     This function is not thread safe.
+
+     *Returns:* a (0)-terminated list of 'gnutls_cipher_algorithm_t'
+     integers indicating the available ciphers.
+
+gnutls_cipher_suite_get_name
+----------------------------
+
+ -- Function: const char * gnutls_cipher_suite_get_name
+          (gnutls_kx_algorithm_t KX_ALGORITHM, gnutls_cipher_algorithm_t
+          CIPHER_ALGORITHM, gnutls_mac_algorithm_t MAC_ALGORITHM)
+     KX_ALGORITHM: is a Key exchange algorithm
+
+     CIPHER_ALGORITHM: is a cipher algorithm
+
+     MAC_ALGORITHM: is a MAC algorithm
+
+     Note that the full cipher suite name must be prepended by TLS or
+     SSL depending of the protocol in use.
+
+     *Returns:* a string that contains the name of a TLS cipher suite,
+     specified by the given algorithms, or 'NULL' .
+
+gnutls_cipher_suite_info
+------------------------
+
+ -- Function: const char * gnutls_cipher_suite_info (size_t IDX,
+          unsigned char * CS_ID, gnutls_kx_algorithm_t * KX,
+          gnutls_cipher_algorithm_t * CIPHER, gnutls_mac_algorithm_t *
+          MAC, gnutls_protocol_t * MIN_VERSION)
+     IDX: index of cipher suite to get information about, starts on 0.
+
+     CS_ID: output buffer with room for 2 bytes, indicating cipher suite
+     value
+
+     KX: output variable indicating key exchange algorithm, or 'NULL' .
+
+     CIPHER: output variable indicating cipher, or 'NULL' .
+
+     MAC: output variable indicating MAC algorithm, or 'NULL' .
+
+     MIN_VERSION: output variable indicating TLS protocol version, or
+     'NULL' .
+
+     Get information about supported cipher suites.  Use the function
+     iteratively to get information about all supported cipher suites.
+     Call with idx=0 to get information about first cipher suite, then
+     idx=1 and so on until the function returns NULL.
+
+     *Returns:* the name of 'idx' cipher suite, and set the information
+     about the cipher suite in the output variables.  If 'idx' is out of
+     bounds, 'NULL' is returned.
+
+gnutls_compression_get
+----------------------
+
+ -- Function: gnutls_compression_method_t gnutls_compression_get
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Get currently used compression algorithm.
+
+     *Returns:* the currently used compression method, a
+     'gnutls_compression_method_t' value.
+
+gnutls_compression_get_id
+-------------------------
+
+ -- Function: gnutls_compression_method_t gnutls_compression_get_id
+          (const char * NAME)
+     NAME: is a compression method name
+
+     The names are compared in a case insensitive way.
+
+     *Returns:* an id of the specified in a string compression method,
+     or 'GNUTLS_COMP_UNKNOWN' on error.
+
+gnutls_compression_get_name
+---------------------------
+
+ -- Function: const char * gnutls_compression_get_name
+          (gnutls_compression_method_t ALGORITHM)
+     ALGORITHM: is a Compression algorithm
+
+     Convert a 'gnutls_compression_method_t' value to a string.
+
+     *Returns:* a pointer to a string that contains the name of the
+     specified compression algorithm, or 'NULL' .
+
+gnutls_compression_list
+-----------------------
+
+ -- Function: const gnutls_compression_method_t *
+          gnutls_compression_list ( VOID)
+
+     Get a list of compression methods.
+
+     *Returns:* a zero-terminated list of 'gnutls_compression_method_t'
+     integers indicating the available compression methods.
+
+gnutls_credentials_clear
+------------------------
+
+ -- Function: void gnutls_credentials_clear (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Clears all the credentials previously set in this session.
+
+gnutls_credentials_set
+----------------------
+
+ -- Function: int gnutls_credentials_set (gnutls_session_t SESSION,
+          gnutls_credentials_type_t TYPE, void * CRED)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     TYPE: is the type of the credentials
+
+     CRED: is a pointer to a structure.
+
+     Sets the needed credentials for the specified type.  Eg username,
+     password - or public and private keys etc.  The 'cred' parameter is
+     a structure that depends on the specified type and on the current
+     session (client or server).
+
+     In order to minimize memory usage, and share credentials between
+     several threads gnutls keeps a pointer to cred, and not the whole
+     cred structure.  Thus you will have to keep the structure allocated
+     until you call 'gnutls_deinit()' .
+
+     For 'GNUTLS_CRD_ANON' , 'cred' should be
+     'gnutls_anon_client_credentials_t' in case of a client.  In case of
+     a server it should be 'gnutls_anon_server_credentials_t' .
+
+     For 'GNUTLS_CRD_SRP' , 'cred' should be
+     'gnutls_srp_client_credentials_t' in case of a client, and
+     'gnutls_srp_server_credentials_t' , in case of a server.
+
+     For 'GNUTLS_CRD_CERTIFICATE' , 'cred' should be
+     'gnutls_certificate_credentials_t' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_db_check_entry
+---------------------
+
+ -- Function: int gnutls_db_check_entry (gnutls_session_t SESSION,
+          gnutls_datum_t SESSION_ENTRY)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     SESSION_ENTRY: is the session data (not key)
+
+     Check if database entry has expired.  This function is to be used
+     when you want to clear unnecessary sessions which occupy space in
+     your backend.
+
+     *Returns:* Returns 'GNUTLS_E_EXPIRED' , if the database entry has
+     expired or 0 otherwise.
+
+gnutls_db_get_ptr
+-----------------
+
+ -- Function: void * gnutls_db_get_ptr (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Get db function pointer.
+
+     *Returns:* the pointer that will be sent to db store, retrieve and
+     delete functions, as the first argument.
+
+gnutls_db_remove_session
+------------------------
+
+ -- Function: void gnutls_db_remove_session (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function will remove the current session data from the session
+     database.  This will prevent future handshakes reusing these
+     session data.  This function should be called if a session was
+     terminated abnormally, and before 'gnutls_deinit()' is called.
+
+     Normally 'gnutls_deinit()' will remove abnormally terminated
+     sessions.
+
+gnutls_db_set_cache_expiration
+------------------------------
+
+ -- Function: void gnutls_db_set_cache_expiration (gnutls_session_t
+          SESSION, int SECONDS)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     SECONDS: is the number of seconds.
+
+     Set the expiration time for resumed sessions.  The default is 3600
+     (one hour) at the time of this writing.
+
+gnutls_db_set_ptr
+-----------------
+
+ -- Function: void gnutls_db_set_ptr (gnutls_session_t SESSION, void *
+          PTR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PTR: is the pointer
+
+     Sets the pointer that will be provided to db store, retrieve and
+     delete functions, as the first argument.
+
+gnutls_db_set_remove_function
+-----------------------------
+
+ -- Function: void gnutls_db_set_remove_function (gnutls_session_t
+          SESSION, gnutls_db_remove_func REM_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     REM_FUNC: is the function.
+
+     Sets the function that will be used to remove data from the resumed
+     sessions database.  This function must return 0 on success.
+
+     The first argument to 'rem_func' will be null unless
+     'gnutls_db_set_ptr()' has been called.
+
+gnutls_db_set_retrieve_function
+-------------------------------
+
+ -- Function: void gnutls_db_set_retrieve_function (gnutls_session_t
+          SESSION, gnutls_db_retr_func RETR_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     RETR_FUNC: is the function.
+
+     Sets the function that will be used to retrieve data from the
+     resumed sessions database.  This function must return a
+     gnutls_datum_t containing the data on success, or a gnutls_datum_t
+     containing null and 0 on failure.
+
+     The datum's data must be allocated using the function
+     'gnutls_malloc()' .
+
+     The first argument to 'retr_func' will be null unless
+     'gnutls_db_set_ptr()' has been called.
+
+gnutls_db_set_store_function
+----------------------------
+
+ -- Function: void gnutls_db_set_store_function (gnutls_session_t
+          SESSION, gnutls_db_store_func STORE_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     STORE_FUNC: is the function
+
+     Sets the function that will be used to store data in the resumed
+     sessions database.  This function must return 0 on success.
+
+     The first argument to 'store_func' will be null unless
+     'gnutls_db_set_ptr()' has been called.
+
+gnutls_deinit
+-------------
+
+ -- Function: void gnutls_deinit (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function clears all buffers associated with the 'session' .
+     This function will also remove session data from the session
+     database if the session was terminated abnormally.
+
+gnutls_dh_get_group
+-------------------
+
+ -- Function: int gnutls_dh_get_group (gnutls_session_t SESSION,
+          gnutls_datum_t * RAW_GEN, gnutls_datum_t * RAW_PRIME)
+     SESSION: is a gnutls session
+
+     RAW_GEN: will hold the generator.
+
+     RAW_PRIME: will hold the prime.
+
+     This function will return the group parameters used in the last
+     Diffie-Hellman key exchange with the peer.  These are the prime and
+     the generator used.  This function should be used for both
+     anonymous and ephemeral Diffie-Hellman.  The output parameters must
+     be freed with 'gnutls_free()' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_dh_get_peers_public_bits
+-------------------------------
+
+ -- Function: int gnutls_dh_get_peers_public_bits (gnutls_session_t
+          SESSION)
+     SESSION: is a gnutls session
+
+     Get the Diffie-Hellman public key bit size.  Can be used for both
+     anonymous and ephemeral Diffie-Hellman.
+
+     *Returns:* The public key bit size used in the last Diffie-Hellman
+     key exchange with the peer, or a negative error code in case of
+     error.
+
+gnutls_dh_get_prime_bits
+------------------------
+
+ -- Function: int gnutls_dh_get_prime_bits (gnutls_session_t SESSION)
+     SESSION: is a gnutls session
+
+     This function will return the bits of the prime used in the last
+     Diffie-Hellman key exchange with the peer.  Should be used for both
+     anonymous and ephemeral Diffie-Hellman.  Note that some ciphers,
+     like RSA and DSA without DHE, do not use a Diffie-Hellman key
+     exchange, and then this function will return 0.
+
+     *Returns:* The Diffie-Hellman bit strength is returned, or 0 if no
+     Diffie-Hellman key exchange was done, or a negative error code on
+     failure.
+
+gnutls_dh_get_pubkey
+--------------------
+
+ -- Function: int gnutls_dh_get_pubkey (gnutls_session_t SESSION,
+          gnutls_datum_t * RAW_KEY)
+     SESSION: is a gnutls session
+
+     RAW_KEY: will hold the public key.
+
+     This function will return the peer's public key used in the last
+     Diffie-Hellman key exchange.  This function should be used for both
+     anonymous and ephemeral Diffie-Hellman.  The output parameters must
+     be freed with 'gnutls_free()' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_dh_get_secret_bits
+-------------------------
+
+ -- Function: int gnutls_dh_get_secret_bits (gnutls_session_t SESSION)
+     SESSION: is a gnutls session
+
+     This function will return the bits used in the last Diffie-Hellman
+     key exchange with the peer.  Should be used for both anonymous and
+     ephemeral Diffie-Hellman.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_dh_params_cpy
+--------------------
+
+ -- Function: int gnutls_dh_params_cpy (gnutls_dh_params_t DST,
+          gnutls_dh_params_t SRC)
+     DST: Is the destination structure, which should be initialized.
+
+     SRC: Is the source structure
+
+     This function will copy the DH parameters structure from source to
+     destination.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_dh_params_deinit
+-----------------------
+
+ -- Function: void gnutls_dh_params_deinit (gnutls_dh_params_t
+          DH_PARAMS)
+     DH_PARAMS: Is a structure that holds the prime numbers
+
+     This function will deinitialize the DH parameters structure.
+
+gnutls_dh_params_export_pkcs3
+-----------------------------
+
+ -- Function: int gnutls_dh_params_export_pkcs3 (gnutls_dh_params_t
+          PARAMS, gnutls_x509_crt_fmt_t FORMAT, unsigned char *
+          PARAMS_DATA, size_t * PARAMS_DATA_SIZE)
+     PARAMS: Holds the DH parameters
+
+     FORMAT: the format of output params.  One of PEM or DER.
+
+     PARAMS_DATA: will contain a PKCS3 DHParams structure PEM or DER
+     encoded
+
+     PARAMS_DATA_SIZE: holds the size of params_data (and will be
+     replaced by the actual size of parameters)
+
+     This function will export the given dh parameters to a PKCS3
+     DHParams structure.  This is the format generated by "openssl
+     dhparam" tool.  If the buffer provided is not long enough to hold
+     the output, then GNUTLS_E_SHORT_MEMORY_BUFFER will be returned.
+
+     If the structure is PEM encoded, it will have a header of "BEGIN DH
+     PARAMETERS".
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_dh_params_export_raw
+---------------------------
+
+ -- Function: int gnutls_dh_params_export_raw (gnutls_dh_params_t
+          PARAMS, gnutls_datum_t * PRIME, gnutls_datum_t * GENERATOR,
+          unsigned int * BITS)
+     PARAMS: Holds the DH parameters
+
+     PRIME: will hold the new prime
+
+     GENERATOR: will hold the new generator
+
+     BITS: if non null will hold the secret key's number of bits
+
+     This function will export the pair of prime and generator for use
+     in the Diffie-Hellman key exchange.  The new parameters will be
+     allocated using 'gnutls_malloc()' and will be stored in the
+     appropriate datum.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_dh_params_generate2
+--------------------------
+
+ -- Function: int gnutls_dh_params_generate2 (gnutls_dh_params_t PARAMS,
+          unsigned int BITS)
+     PARAMS: Is the structure that the DH parameters will be stored
+
+     BITS: is the prime's number of bits
+
+     This function will generate a new pair of prime and generator for
+     use in the Diffie-Hellman key exchange.  The new parameters will be
+     allocated using 'gnutls_malloc()' and will be stored in the
+     appropriate datum.  This function is normally slow.
+
+     Do not set the number of bits directly, use
+     'gnutls_sec_param_to_pk_bits()' to get bits for 'GNUTLS_PK_DSA' .
+     Also note that the DH parameters are only useful to servers.  Since
+     clients use the parameters sent by the server, it's of no use to
+     call this in client side.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_dh_params_import_pkcs3
+-----------------------------
+
+ -- Function: int gnutls_dh_params_import_pkcs3 (gnutls_dh_params_t
+          PARAMS, const gnutls_datum_t * PKCS3_PARAMS,
+          gnutls_x509_crt_fmt_t FORMAT)
+     PARAMS: A structure where the parameters will be copied to
+
+     PKCS3_PARAMS: should contain a PKCS3 DHParams structure PEM or DER
+     encoded
+
+     FORMAT: the format of params.  PEM or DER.
+
+     This function will extract the DHParams found in a PKCS3 formatted
+     structure.  This is the format generated by "openssl dhparam" tool.
+
+     If the structure is PEM encoded, it should have a header of "BEGIN
+     DH PARAMETERS".
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_dh_params_import_raw
+---------------------------
+
+ -- Function: int gnutls_dh_params_import_raw (gnutls_dh_params_t
+          DH_PARAMS, const gnutls_datum_t * PRIME, const gnutls_datum_t
+          * GENERATOR)
+     DH_PARAMS: Is a structure that will hold the prime numbers
+
+     PRIME: holds the new prime
+
+     GENERATOR: holds the new generator
+
+     This function will replace the pair of prime and generator for use
+     in the Diffie-Hellman key exchange.  The new parameters should be
+     stored in the appropriate gnutls_datum.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_dh_params_init
+---------------------
+
+ -- Function: int gnutls_dh_params_init (gnutls_dh_params_t * DH_PARAMS)
+     DH_PARAMS: Is a structure that will hold the prime numbers
+
+     This function will initialize the DH parameters structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_dh_set_prime_bits
+------------------------
+
+ -- Function: void gnutls_dh_set_prime_bits (gnutls_session_t SESSION,
+          unsigned int BITS)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     BITS: is the number of bits
+
+     This function sets the number of bits, for use in a Diffie-Hellman
+     key exchange.  This is used both in DH ephemeral and DH anonymous
+     cipher suites.  This will set the minimum size of the prime that
+     will be used for the handshake.
+
+     In the client side it sets the minimum accepted number of bits.  If
+     a server sends a prime with less bits than that
+     'GNUTLS_E_DH_PRIME_UNACCEPTABLE' will be returned by the handshake.
+
+     Note that values lower than 512 bits may allow decryption of the
+     exchanged data.
+
+     This function has no effect in server side.
+
+gnutls_ecc_curve_get
+--------------------
+
+ -- Function: gnutls_ecc_curve_t gnutls_ecc_curve_get (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Returns the currently used elliptic curve.  Only valid when using
+     an elliptic curve ciphersuite.
+
+     *Returns:* the currently used curve, a 'gnutls_ecc_curve_t' type.
+
+     *Since:* 3.0
+
+gnutls_ecc_curve_get_name
+-------------------------
+
+ -- Function: const char * gnutls_ecc_curve_get_name (gnutls_ecc_curve_t
+          CURVE)
+     CURVE: is an ECC curve
+
+     Convert a 'gnutls_ecc_curve_t' value to a string.
+
+     *Returns:* a string that contains the name of the specified curve
+     or 'NULL' .
+
+     *Since:* 3.0
+
+gnutls_ecc_curve_get_size
+-------------------------
+
+ -- Function: int gnutls_ecc_curve_get_size (gnutls_ecc_curve_t CURVE)
+     CURVE: is an ECC curve
+
+     Returns the size in bytes of the curve.
+
+     *Returns:* a the size or (0).
+
+     *Since:* 3.0
+
+gnutls_ecc_curve_list
+---------------------
+
+ -- Function: const gnutls_ecc_curve_t * gnutls_ecc_curve_list ( VOID)
+
+     Get the list of supported elliptic curves.
+
+     This function is not thread safe.
+
+     *Returns:* Return a (0)-terminated list of 'gnutls_ecc_curve_t'
+     integers indicating the available curves.
+
+gnutls_error_is_fatal
+---------------------
+
+ -- Function: int gnutls_error_is_fatal (int ERROR)
+     ERROR: is a GnuTLS error code, a negative error code
+
+     If a GnuTLS function returns a negative error code you may feed
+     that value to this function to see if the error condition is fatal.
+     Note that you may also want to check the error code manually, since
+     some non-fatal errors to the protocol (such as a warning alert or a
+     rehandshake request) may be fatal for your program.
+
+     This function is only useful if you are dealing with errors from
+     the record layer or the handshake layer.
+
+     *Returns:* 1 if the error code is fatal, for positive 'error'
+     values, 0 is returned.  For unknown 'error' values, -1 is returned.
+
+gnutls_error_to_alert
+---------------------
+
+ -- Function: int gnutls_error_to_alert (int ERR, int * LEVEL)
+     ERR: is a negative integer
+
+     LEVEL: the alert level will be stored there
+
+     Get an alert depending on the error code returned by a gnutls
+     function.  All alerts sent by this function should be considered
+     fatal.  The only exception is when 'err' is 'GNUTLS_E_REHANDSHAKE'
+     , where a warning alert should be sent to the peer indicating that
+     no renegotiation will be performed.
+
+     If there is no mapping to a valid alert the alert to indicate
+     internal error is returned.
+
+     *Returns:* the alert code to use for a particular error code.
+
+gnutls_fingerprint
+------------------
+
+ -- Function: int gnutls_fingerprint (gnutls_digest_algorithm_t ALGO,
+          const gnutls_datum_t * DATA, void * RESULT, size_t *
+          RESULT_SIZE)
+     ALGO: is a digest algorithm
+
+     DATA: is the data
+
+     RESULT: is the place where the result will be copied (may be null).
+
+     RESULT_SIZE: should hold the size of the result.  The actual size
+     of the returned result will also be copied there.
+
+     This function will calculate a fingerprint (actually a hash), of
+     the given data.  The result is not printable data.  You should
+     convert it to hex, or to something else printable.
+
+     This is the usual way to calculate a fingerprint of an X.509 DER
+     encoded certificate.  Note however that the fingerprint of an
+     OpenPGP is not just a hash and cannot be calculated with this
+     function.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_global_deinit
+--------------------
+
+ -- Function: void gnutls_global_deinit ( VOID)
+
+     This function deinitializes the global data, that were initialized
+     using 'gnutls_global_init()' .
+
+     Note!  This function is not thread safe.  See the discussion for
+     'gnutls_global_init()' for more information.
+
+gnutls_global_init
+------------------
+
+ -- Function: int gnutls_global_init ( VOID)
+
+     This function initializes the global data to defaults.  In order to
+     free resources you may call 'gnutls_global_deinit()' when gnutls
+     usage is no longer needed.
+
+     Note that this function will also initialize the underlying crypto
+     backend, if it has not been initialized before.
+
+     This function increments a global counter, so that
+     'gnutls_global_deinit()' only releases resources when it has been
+     called as many times as 'gnutls_global_init()' .  This is useful
+     when GnuTLS is used by more than one library in an application.
+     This function can be called many times, but will only do something
+     the first time.
+
+     Note!  This function is not thread safe.  If two threads call this
+     function simultaneously, they can cause a race between checking the
+     global counter and incrementing it, causing both threads to execute
+     the library initialization code.  That would lead to a memory leak.
+     To handle this, your application could invoke this function after
+     aquiring a thread mutex.  To ignore the potential memory leak is
+     also an option.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_global_set_audit_log_function
+------------------------------------
+
+ -- Function: void gnutls_global_set_audit_log_function
+          (gnutls_audit_log_func LOG_FUNC)
+     LOG_FUNC: it is the audit log function
+
+     This is the function where you set the logging function gnutls is
+     going to use.  This is different from
+     'gnutls_global_set_log_function()' because it will report the
+     session of the event if any.  Note that that session might be null
+     if there is no corresponding TLS session.
+
+     'gnutls_audit_log_func' is of the form, void
+     (*gnutls_audit_log_func)( gnutls_session_t, int level, const
+     char*);
+
+     *Since:* 3.0
+
+gnutls_global_set_log_function
+------------------------------
+
+ -- Function: void gnutls_global_set_log_function (gnutls_log_func
+          LOG_FUNC)
+     LOG_FUNC: it's a log function
+
+     This is the function where you set the logging function gnutls is
+     going to use.  This function only accepts a character array.
+     Normally you may not use this function since it is only used for
+     debugging purposes.
+
+     'gnutls_log_func' is of the form, void (*gnutls_log_func)( int
+     level, const char*);
+
+gnutls_global_set_log_level
+---------------------------
+
+ -- Function: void gnutls_global_set_log_level (int LEVEL)
+     LEVEL: it's an integer from 0 to 9.
+
+     This is the function that allows you to set the log level.  The
+     level is an integer between 0 and 9.  Higher values mean more
+     verbosity.  The default value is 0.  Larger values should only be
+     used with care, since they may reveal sensitive information.
+
+     Use a log level over 10 to enable all debugging options.
+
+gnutls_global_set_mem_functions
+-------------------------------
+
+ -- Function: void gnutls_global_set_mem_functions
+          (gnutls_alloc_function ALLOC_FUNC, gnutls_alloc_function
+          SECURE_ALLOC_FUNC, gnutls_is_secure_function IS_SECURE_FUNC,
+          gnutls_realloc_function REALLOC_FUNC, gnutls_free_function
+          FREE_FUNC)
+     ALLOC_FUNC: it's the default memory allocation function.  Like
+     'malloc()' .
+
+     SECURE_ALLOC_FUNC: This is the memory allocation function that will
+     be used for sensitive data.
+
+     IS_SECURE_FUNC: a function that returns 0 if the memory given is
+     not secure.  May be NULL.
+
+     REALLOC_FUNC: A realloc function
+
+     FREE_FUNC: The function that frees allocated data.  Must accept a
+     NULL pointer.
+
+     This is the function where you set the memory allocation functions
+     gnutls is going to use.  By default the libc's allocation functions
+     ('malloc()' , 'free()' ), are used by gnutls, to allocate both
+     sensitive and not sensitive data.  This function is provided to set
+     the memory allocation functions to something other than the
+     defaults
+
+     This function must be called before 'gnutls_global_init()' is
+     called.  This function is not thread safe.
+
+gnutls_global_set_mutex
+-----------------------
+
+ -- Function: void gnutls_global_set_mutex (mutex_init_func INIT,
+          mutex_deinit_func DEINIT, mutex_lock_func LOCK,
+          mutex_unlock_func UNLOCK)
+     INIT: mutex initialization function
+
+     DEINIT: mutex deinitialization function
+
+     LOCK: mutex locking function
+
+     UNLOCK: mutex unlocking function
+
+     With this function you are allowed to override the default mutex
+     locks used in some parts of gnutls and dependent libraries.  This
+     function should be used if you have complete control of your
+     program and libraries.  Do not call this function from a library.
+     Instead only initialize gnutls and the default OS mutex locks will
+     be used.
+
+     This function must be called before 'gnutls_global_init()' .
+
+     *Since:* 2.12.0
+
+gnutls_global_set_time_function
+-------------------------------
+
+ -- Function: void gnutls_global_set_time_function (gnutls_time_func
+          TIME_FUNC)
+     TIME_FUNC: it's the system time function, a 'gnutls_time_func()'
+     callback.
+
+     This is the function where you can override the default system time
+     function.  The application provided function should behave the same
+     as the standard function.
+
+     *Since:* 2.12.0
+
+gnutls_handshake
+----------------
+
+ -- Function: int gnutls_handshake (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function does the handshake of the TLS/SSL protocol, and
+     initializes the TLS connection.
+
+     This function will fail if any problem is encountered, and will
+     return a negative error code.  In case of a client, if the client
+     has asked to resume a session, but the server couldn't, then a full
+     handshake will be performed.
+
+     The non-fatal errors such as 'GNUTLS_E_AGAIN' and
+     'GNUTLS_E_INTERRUPTED' interrupt the handshake procedure, which
+     should be resumed later.  Call this function again, until it
+     returns 0; cf.  'gnutls_record_get_direction()' and
+     'gnutls_error_is_fatal()' .
+
+     If this function is called by a server after a rehandshake request
+     then 'GNUTLS_E_GOT_APPLICATION_DATA' or
+     'GNUTLS_E_WARNING_ALERT_RECEIVED' may be returned.  Note that these
+     are non fatal errors, only in the specific case of a rehandshake.
+     Their meaning is that the client rejected the rehandshake request
+     or in the case of 'GNUTLS_E_GOT_APPLICATION_DATA' it might also
+     mean that some data were pending.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.
+
+gnutls_handshake_get_last_in
+----------------------------
+
+ -- Function: gnutls_handshake_description_t
+          gnutls_handshake_get_last_in (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function is only useful to check where the last performed
+     handshake failed.  If the previous handshake succeed or was not
+     performed at all then no meaningful value will be returned.
+
+     Check 'gnutls_handshake_description_t' in gnutls.h for the
+     available handshake descriptions.
+
+     *Returns:* the last handshake message type received, a
+     'gnutls_handshake_description_t' .
+
+gnutls_handshake_get_last_out
+-----------------------------
+
+ -- Function: gnutls_handshake_description_t
+          gnutls_handshake_get_last_out (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function is only useful to check where the last performed
+     handshake failed.  If the previous handshake succeed or was not
+     performed at all then no meaningful value will be returned.
+
+     Check 'gnutls_handshake_description_t' in gnutls.h for the
+     available handshake descriptions.
+
+     *Returns:* the last handshake message type sent, a
+     'gnutls_handshake_description_t' .
+
+gnutls_handshake_set_max_packet_length
+--------------------------------------
+
+ -- Function: void gnutls_handshake_set_max_packet_length
+          (gnutls_session_t SESSION, size_t MAX)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     MAX: is the maximum number.
+
+     This function will set the maximum size of all handshake messages.
+     Handshakes over this size are rejected with
+     'GNUTLS_E_HANDSHAKE_TOO_LARGE' error code.  The default value is
+     48kb which is typically large enough.  Set this to 0 if you do not
+     want to set an upper limit.
+
+     The reason for restricting the handshake message sizes are to limit
+     Denial of Service attacks.
+
+gnutls_handshake_set_post_client_hello_function
+-----------------------------------------------
+
+ -- Function: void gnutls_handshake_set_post_client_hello_function
+          (gnutls_session_t SESSION,
+          gnutls_handshake_post_client_hello_func FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     FUNC: is the function to be called
+
+     This function will set a callback to be called after the client
+     hello has been received (callback valid in server side only).  This
+     allows the server to adjust settings based on received extensions.
+
+     Those settings could be ciphersuites, requesting certificate, or
+     anything else except for version negotiation (this is done before
+     the hello message is parsed).
+
+     This callback must return 0 on success or a gnutls error code to
+     terminate the handshake.
+
+     *Warning:* You should not use this function to terminate the
+     handshake based on client input unless you know what you are doing.
+     Before the handshake is finished there is no way to know if there
+     is a man-in-the-middle attack being performed.
+
+gnutls_handshake_set_private_extensions
+---------------------------------------
+
+ -- Function: void gnutls_handshake_set_private_extensions
+          (gnutls_session_t SESSION, int ALLOW)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     ALLOW: is an integer (0 or 1)
+
+     This function will enable or disable the use of private cipher
+     suites (the ones that start with 0xFF). By default or if 'allow' is
+     0 then these cipher suites will not be advertized nor used.
+
+     Currently GnuTLS does not include such cipher-suites or compression
+     algorithms.
+
+     Enabling the private ciphersuites when talking to other than gnutls
+     servers and clients may cause interoperability problems.
+
+gnutls_hex2bin
+--------------
+
+ -- Function: int gnutls_hex2bin (const char * HEX_DATA, size_t
+          HEX_SIZE, void * BIN_DATA, size_t * BIN_SIZE)
+     HEX_DATA: string with data in hex format
+
+     HEX_SIZE: size of hex data
+
+     BIN_DATA: output array with binary data
+
+     BIN_SIZE: when calling should hold maximum size of 'bin_data' , on
+     return will hold actual length of 'bin_data' .
+
+     Convert a buffer with hex data to binary data.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.
+
+     *Since:* 2.4.0
+
+gnutls_hex_decode
+-----------------
+
+ -- Function: int gnutls_hex_decode (const gnutls_datum_t * HEX_DATA,
+          void * RESULT, size_t * RESULT_SIZE)
+     HEX_DATA: contain the encoded data
+
+     RESULT: the place where decoded data will be copied
+
+     RESULT_SIZE: holds the size of the result
+
+     This function will decode the given encoded data, using the hex
+     encoding used by PSK password files.
+
+     Note that hex_data should be null terminated.
+
+     *Returns:* 'GNUTLS_E_SHORT_MEMORY_BUFFER' if the buffer given is
+     not long enough, or 0 on success.
+
+gnutls_hex_encode
+-----------------
+
+ -- Function: int gnutls_hex_encode (const gnutls_datum_t * DATA, char *
+          RESULT, size_t * RESULT_SIZE)
+     DATA: contain the raw data
+
+     RESULT: the place where hex data will be copied
+
+     RESULT_SIZE: holds the size of the result
+
+     This function will convert the given data to printable data, using
+     the hex encoding, as used in the PSK password files.
+
+     *Returns:* 'GNUTLS_E_SHORT_MEMORY_BUFFER' if the buffer given is
+     not long enough, or 0 on success.
+
+gnutls_init
+-----------
+
+ -- Function: int gnutls_init (gnutls_session_t * SESSION, unsigned int
+          FLAGS)
+     SESSION: is a pointer to a 'gnutls_session_t' structure.
+
+     FLAGS: indicate if this session is to be used for server or client.
+
+     This function initializes the current session to null.  Every
+     session must be initialized before use, so internal structures can
+     be allocated.  This function allocates structures which can only be
+     free'd by calling 'gnutls_deinit()' .  Returns 'GNUTLS_E_SUCCESS'
+     (0) on success.
+
+     'flags' can be one of 'GNUTLS_CLIENT' and 'GNUTLS_SERVER' .  For a
+     DTLS entity, the flags 'GNUTLS_DATAGRAM' and 'GNUTLS_NONBLOCK' are
+     also available.  The latter flag will enable a non-blocking
+     operation of the DTLS timers.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_key_generate
+-------------------
+
+ -- Function: int gnutls_key_generate (gnutls_datum_t * KEY, unsigned
+          int KEY_SIZE)
+     KEY: is a pointer to a 'gnutls_datum_t' which will contain a newly
+     created key.
+
+     KEY_SIZE: The number of bytes of the key.
+
+     Generates a random key of 'key_bytes' size.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+     *Since:* 3.0
+
+gnutls_kx_get
+-------------
+
+ -- Function: gnutls_kx_algorithm_t gnutls_kx_get (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Get currently used key exchange algorithm.
+
+     *Returns:* the key exchange algorithm used in the last handshake, a
+     'gnutls_kx_algorithm_t' value.
+
+gnutls_kx_get_id
+----------------
+
+ -- Function: gnutls_kx_algorithm_t gnutls_kx_get_id (const char * NAME)
+     NAME: is a KX name
+
+     Convert a string to a 'gnutls_kx_algorithm_t' value.  The names are
+     compared in a case insensitive way.
+
+     *Returns:* an id of the specified KX algorithm, or
+     'GNUTLS_KX_UNKNOWN' on error.
+
+gnutls_kx_get_name
+------------------
+
+ -- Function: const char * gnutls_kx_get_name (gnutls_kx_algorithm_t
+          ALGORITHM)
+     ALGORITHM: is a key exchange algorithm
+
+     Convert a 'gnutls_kx_algorithm_t' value to a string.
+
+     *Returns:* a pointer to a string that contains the name of the
+     specified key exchange algorithm, or 'NULL' .
+
+gnutls_kx_list
+--------------
+
+ -- Function: const gnutls_kx_algorithm_t * gnutls_kx_list ( VOID)
+
+     Get a list of supported key exchange algorithms.
+
+     This function is not thread safe.
+
+     *Returns:* a (0)-terminated list of 'gnutls_kx_algorithm_t'
+     integers indicating the available key exchange algorithms.
+
+gnutls_mac_get
+--------------
+
+ -- Function: gnutls_mac_algorithm_t gnutls_mac_get (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Get currently used MAC algorithm.
+
+     *Returns:* the currently used mac algorithm, a
+     'gnutls_mac_algorithm_t' value.
+
+gnutls_mac_get_id
+-----------------
+
+ -- Function: gnutls_mac_algorithm_t gnutls_mac_get_id (const char *
+          NAME)
+     NAME: is a MAC algorithm name
+
+     Convert a string to a 'gnutls_mac_algorithm_t' value.  The names
+     are compared in a case insensitive way.
+
+     *Returns:* a 'gnutls_mac_algorithm_t' id of the specified MAC
+     algorithm string, or 'GNUTLS_MAC_UNKNOWN' on failures.
+
+gnutls_mac_get_key_size
+-----------------------
+
+ -- Function: size_t gnutls_mac_get_key_size (gnutls_mac_algorithm_t
+          ALGORITHM)
+     ALGORITHM: is an encryption algorithm
+
+     Get size of MAC key.
+
+     *Returns:* length (in bytes) of the given MAC key size, or 0 if the
+     given MAC algorithm is invalid.
+
+gnutls_mac_get_name
+-------------------
+
+ -- Function: const char * gnutls_mac_get_name (gnutls_mac_algorithm_t
+          ALGORITHM)
+     ALGORITHM: is a MAC algorithm
+
+     Convert a 'gnutls_mac_algorithm_t' value to a string.
+
+     *Returns:* a string that contains the name of the specified MAC
+     algorithm, or 'NULL' .
+
+gnutls_mac_list
+---------------
+
+ -- Function: const gnutls_mac_algorithm_t * gnutls_mac_list ( VOID)
+
+     Get a list of hash algorithms for use as MACs.  Note that not
+     necessarily all MACs are supported in TLS cipher suites.  For
+     example, MD2 is not supported as a cipher suite, but is supported
+     for other purposes (e.g., X.509 signature verification or similar).
+
+     This function is not thread safe.
+
+     *Returns:* Return a (0)-terminated list of 'gnutls_mac_algorithm_t'
+     integers indicating the available MACs.
+
+gnutls_openpgp_send_cert
+------------------------
+
+ -- Function: void gnutls_openpgp_send_cert (gnutls_session_t SESSION,
+          gnutls_openpgp_crt_status_t STATUS)
+     SESSION: is a pointer to a 'gnutls_session_t' structure.
+
+     STATUS: is one of GNUTLS_OPENPGP_CERT, or
+     GNUTLS_OPENPGP_CERT_FINGERPRINT
+
+     This function will order gnutls to send the key fingerprint instead
+     of the key in the initial handshake procedure.  This should be used
+     with care and only when there is indication or knowledge that the
+     server can obtain the client's key.
+
+gnutls_pem_base64_decode
+------------------------
+
+ -- Function: int gnutls_pem_base64_decode (const char * HEADER, const
+          gnutls_datum_t * B64_DATA, unsigned char * RESULT, size_t *
+          RESULT_SIZE)
+     HEADER: A null terminated string with the PEM header (eg.
+     CERTIFICATE)
+
+     B64_DATA: contain the encoded data
+
+     RESULT: the place where decoded data will be copied
+
+     RESULT_SIZE: holds the size of the result
+
+     This function will decode the given encoded data.  If the header
+     given is non null this function will search for "---BEGIN header"
+     and decode only this part.  Otherwise it will decode the first PEM
+     packet found.
+
+     *Returns:* On success 'GNUTLS_E_SUCCESS' (0) is returned,
+     'GNUTLS_E_SHORT_MEMORY_BUFFER' is returned if the buffer given is
+     not long enough, or 0 on success.
+
+gnutls_pem_base64_decode_alloc
+------------------------------
+
+ -- Function: int gnutls_pem_base64_decode_alloc (const char * HEADER,
+          const gnutls_datum_t * B64_DATA, gnutls_datum_t * RESULT)
+     HEADER: The PEM header (eg.  CERTIFICATE)
+
+     B64_DATA: contains the encoded data
+
+     RESULT: the place where decoded data lie
+
+     This function will decode the given encoded data.  The decoded data
+     will be allocated, and stored into result.  If the header given is
+     non null this function will search for "---BEGIN header" and decode
+     only this part.  Otherwise it will decode the first PEM packet
+     found.
+
+     You should use 'gnutls_free()' to free the returned data.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_pem_base64_encode
+------------------------
+
+ -- Function: int gnutls_pem_base64_encode (const char * MSG, const
+          gnutls_datum_t * DATA, char * RESULT, size_t * RESULT_SIZE)
+     MSG: is a message to be put in the header
+
+     DATA: contain the raw data
+
+     RESULT: the place where base64 data will be copied
+
+     RESULT_SIZE: holds the size of the result
+
+     This function will convert the given data to printable data, using
+     the base64 encoding.  This is the encoding used in PEM messages.
+
+     The output string will be null terminated, although the size will
+     not include the terminating null.
+
+     *Returns:* On success 'GNUTLS_E_SUCCESS' (0) is returned,
+     'GNUTLS_E_SHORT_MEMORY_BUFFER' is returned if the buffer given is
+     not long enough, or 0 on success.
+
+gnutls_pem_base64_encode_alloc
+------------------------------
+
+ -- Function: int gnutls_pem_base64_encode_alloc (const char * MSG,
+          const gnutls_datum_t * DATA, gnutls_datum_t * RESULT)
+     MSG: is a message to be put in the encoded header
+
+     DATA: contains the raw data
+
+     RESULT: will hold the newly allocated encoded data
+
+     This function will convert the given data to printable data, using
+     the base64 encoding.  This is the encoding used in PEM messages.
+     This function will allocate the required memory to hold the encoded
+     data.
+
+     You should use 'gnutls_free()' to free the returned data.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_perror
+-------------
+
+ -- Function: void gnutls_perror (int ERROR)
+     ERROR: is a GnuTLS error code, a negative error code
+
+     This function is like 'perror()' .  The only difference is that it
+     accepts an error number returned by a gnutls function.
+
+gnutls_pk_algorithm_get_name
+----------------------------
+
+ -- Function: const char * gnutls_pk_algorithm_get_name
+          (gnutls_pk_algorithm_t ALGORITHM)
+     ALGORITHM: is a pk algorithm
+
+     Convert a 'gnutls_pk_algorithm_t' value to a string.
+
+     *Returns:* a string that contains the name of the specified public
+     key algorithm, or 'NULL' .
+
+gnutls_pk_bits_to_sec_param
+---------------------------
+
+ -- Function: gnutls_sec_param_t gnutls_pk_bits_to_sec_param
+          (gnutls_pk_algorithm_t ALGO, unsigned int BITS)
+     ALGO: is a public key algorithm
+
+     BITS: is the number of bits
+
+     This is the inverse of 'gnutls_sec_param_to_pk_bits()' .  Given an
+     algorithm and the number of bits, it will return the security
+     parameter.  This is a rough indication.
+
+     *Returns:* The security parameter.
+
+     *Since:* 2.12.0
+
+gnutls_pk_get_id
+----------------
+
+ -- Function: gnutls_pk_algorithm_t gnutls_pk_get_id (const char * NAME)
+     NAME: is a string containing a public key algorithm name.
+
+     Convert a string to a 'gnutls_pk_algorithm_t' value.  The names are
+     compared in a case insensitive way.  For example,
+     gnutls_pk_get_id("RSA") will return 'GNUTLS_PK_RSA' .
+
+     *Returns:* a 'gnutls_pk_algorithm_t' id of the specified public key
+     algorithm string, or 'GNUTLS_PK_UNKNOWN' on failures.
+
+     *Since:* 2.6.0
+
+gnutls_pk_get_name
+------------------
+
+ -- Function: const char * gnutls_pk_get_name (gnutls_pk_algorithm_t
+          ALGORITHM)
+     ALGORITHM: is a public key algorithm
+
+     Convert a 'gnutls_pk_algorithm_t' value to a string.
+
+     *Returns:* a pointer to a string that contains the name of the
+     specified public key algorithm, or 'NULL' .
+
+     *Since:* 2.6.0
+
+gnutls_pk_list
+--------------
+
+ -- Function: const gnutls_pk_algorithm_t * gnutls_pk_list ( VOID)
+
+     Get a list of supported public key algorithms.
+
+     This function is not thread safe.
+
+     *Returns:* a (0)-terminated list of 'gnutls_pk_algorithm_t'
+     integers indicating the available ciphers.
+
+     *Since:* 2.6.0
+
+gnutls_pk_to_sign
+-----------------
+
+ -- Function: gnutls_sign_algorithm_t gnutls_pk_to_sign
+          (gnutls_pk_algorithm_t PK, gnutls_digest_algorithm_t HASH)
+     PK: is a public key algorithm
+
+     HASH: a hash algorithm
+
+     This function maps public key and hash algorithms combinations to
+     signature algorithms.
+
+     *Returns:* return a 'gnutls_sign_algorithm_t' value, or
+     'GNUTLS_SIGN_UNKNOWN' on error.
+
+gnutls_prf
+----------
+
+ -- Function: int gnutls_prf (gnutls_session_t SESSION, size_t
+          LABEL_SIZE, const char * LABEL, int SERVER_RANDOM_FIRST,
+          size_t EXTRA_SIZE, const char * EXTRA, size_t OUTSIZE, char *
+          OUT)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     LABEL_SIZE: length of the 'label' variable.
+
+     LABEL: label used in PRF computation, typically a short string.
+
+     SERVER_RANDOM_FIRST: non-0 if server random field should be first
+     in seed
+
+     EXTRA_SIZE: length of the 'extra' variable.
+
+     EXTRA: optional extra data to seed the PRF with.
+
+     OUTSIZE: size of pre-allocated output buffer to hold the output.
+
+     OUT: pre-allocate buffer to hold the generated data.
+
+     Apply the TLS Pseudo-Random-Function (PRF) on the master secret and
+     the provided data, seeded with the client and server random fields.
+
+     The 'label' variable usually contain a string denoting the purpose
+     for the generated data.  The 'server_random_first' indicate whether
+     the client random field or the server random field should be first
+     in the seed.  Non-0 indicate that the server random field is first,
+     0 that the client random field is first.
+
+     The 'extra' variable can be used to add more data to the seed,
+     after the random variables.  It can be used to tie make sure the
+     generated output is strongly connected to some additional data
+     (e.g., a string used in user authentication).
+
+     The output is placed in 'out' , which must be pre-allocated.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_prf_raw
+--------------
+
+ -- Function: int gnutls_prf_raw (gnutls_session_t SESSION, size_t
+          LABEL_SIZE, const char * LABEL, size_t SEED_SIZE, const char *
+          SEED, size_t OUTSIZE, char * OUT)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     LABEL_SIZE: length of the 'label' variable.
+
+     LABEL: label used in PRF computation, typically a short string.
+
+     SEED_SIZE: length of the 'seed' variable.
+
+     SEED: optional extra data to seed the PRF with.
+
+     OUTSIZE: size of pre-allocated output buffer to hold the output.
+
+     OUT: pre-allocate buffer to hold the generated data.
+
+     Apply the TLS Pseudo-Random-Function (PRF) on the master secret and
+     the provided data.
+
+     The 'label' variable usually contain a string denoting the purpose
+     for the generated data.  The 'seed' usually contain data such as
+     the client and server random, perhaps together with some additional
+     data that is added to guarantee uniqueness of the output for a
+     particular purpose.
+
+     Because the output is not guaranteed to be unique for a particular
+     session unless 'seed' include the client random and server random
+     fields (the PRF would output the same data on another connection
+     resumed from the first one), it is not recommended to use this
+     function directly.  The 'gnutls_prf()' function seed the PRF with
+     the client and server random fields directly, and is recommended if
+     you want to generate pseudo random data unique for each session.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_priority_certificate_type_list
+-------------------------------------
+
+ -- Function: int gnutls_priority_certificate_type_list
+          (gnutls_priority_t PCACHE, const unsigned int** LIST)
+     PCACHE: is a 'gnutls_prioritity_t' structure.
+
+     LIST: will point to an integer list
+
+     Get a list of available certificate types in the priority
+     structure.
+
+     *Returns:* the number of certificate types, or an error code.
+
+     *Since:* 3.0
+
+gnutls_priority_compression_list
+--------------------------------
+
+ -- Function: int gnutls_priority_compression_list (gnutls_priority_t
+          PCACHE, const unsigned int** LIST)
+     PCACHE: is a 'gnutls_prioritity_t' structure.
+
+     LIST: will point to an integer list
+
+     Get a list of available compression method in the priority
+     structure.
+
+     *Returns:* the number of methods, or an error code.
+
+     *Since:* 3.0
+
+gnutls_priority_deinit
+----------------------
+
+ -- Function: void gnutls_priority_deinit (gnutls_priority_t
+          PRIORITY_CACHE)
+     PRIORITY_CACHE: is a 'gnutls_prioritity_t' structure.
+
+     Deinitializes the priority cache.
+
+gnutls_priority_ecc_curve_list
+------------------------------
+
+ -- Function: int gnutls_priority_ecc_curve_list (gnutls_priority_t
+          PCACHE, const unsigned int** LIST)
+     PCACHE: is a 'gnutls_prioritity_t' structure.
+
+     LIST: will point to an integer list
+
+     Get a list of available elliptic curves in the priority structure.
+
+     *Returns:* the number of curves, or an error code.
+
+     *Since:* 3.0
+
+gnutls_priority_get_cipher_suite_index
+--------------------------------------
+
+ -- Function: int gnutls_priority_get_cipher_suite_index
+          (gnutls_priority_t PCACHE, unsigned int IDX, unsigned int *
+          SIDX)
+     PCACHE: is a 'gnutls_prioritity_t' structure.
+
+     IDX: is an index number.
+
+     SIDX: internal index of cipher suite to get information about.
+
+     Provides the internal ciphersuite index to be used with
+     'gnutls_cipher_suite_info()' .  The index 'idx' provided is an
+     index kept at the priorities structure.  It might be that a valid
+     priorities index does not correspond to a ciphersuite and in that
+     case 'GNUTLS_E_UNKNOWN_CIPHER_SUITE' will be returned.  Once the
+     last available index is crossed then
+     'GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE' will be returned.
+
+     *Returns:* On success it returns 'GNUTLS_E_SUCCESS' (0), or a
+     negative error value otherwise.
+
+gnutls_priority_init
+--------------------
+
+ -- Function: int gnutls_priority_init (gnutls_priority_t *
+          PRIORITY_CACHE, const char * PRIORITIES, const char **
+          ERR_POS)
+     PRIORITY_CACHE: is a 'gnutls_prioritity_t' structure.
+
+     PRIORITIES: is a string describing priorities
+
+     ERR_POS: In case of an error this will have the position in the
+     string the error occured
+
+     Sets priorities for the ciphers, key exchange methods, macs and
+     compression methods.
+
+     The 'priorities' option allows you to specify a colon separated
+     list of the cipher priorities to enable.  Some keywords are defined
+     to provide quick access to common preferences.
+
+     "PERFORMANCE" means all the "secure" ciphersuites are enabled,
+     limited to 128 bit ciphers and sorted by terms of speed
+     performance.
+
+     "NORMAL" means all "secure" ciphersuites.  The 256-bit ciphers are
+     included as a fallback only.  The ciphers are sorted by security
+     margin.
+
+     "SECURE128" means all "secure" ciphersuites of security level
+     128-bit or more.
+
+     "SECURE192" means all "secure" ciphersuites of security level
+     192-bit or more.
+
+     "SUITEB128" means all the NSA SuiteB ciphersuites with security
+     level of 128.
+
+     "SUITEB192" means all the NSA SuiteB ciphersuites with security
+     level of 192.
+
+     "EXPORT" means all ciphersuites are enabled, including the
+     low-security 40 bit ciphers.
+
+     "NONE" means nothing is enabled.  This disables even protocols and
+     compression methods.
+
+     Special keywords are "!", "-" and "+".  "!"  or "-" appended with
+     an algorithm will remove this algorithm.  "+" appended with an
+     algorithm will add this algorithm.
+
+     Check the GnuTLS manual section "Priority strings" for detailed
+     information.
+
+     *Examples:*
+     "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
+
+     "NORMAL:-ARCFOUR-128" means normal ciphers except for ARCFOUR-128.
+
+     "SECURE:-VERS-SSL3.0:+COMP-DEFLATE" means that only secure ciphers
+     are enabled, SSL3.0 is disabled, and libz compression enabled.
+
+     "NONE:+VERS-TLS-ALL:+AES-128-CBC:+RSA:+SHA1:+COMP-NULL:+SIGN-RSA-SHA1",
+
+     "NONE:+VERS-TLS-ALL:+AES-128-CBC:+ECDHE-RSA:+SHA1:+COMP-NULL:+SIGN-RSA-SHA1:+CURVE-SECP256R1",
+
+     "NORMAL:'COMPAT' " is the most compatible mode.
+
+     *Returns:* On syntax error 'GNUTLS_E_INVALID_REQUEST' is returned,
+     'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_priority_protocol_list
+-----------------------------
+
+ -- Function: int gnutls_priority_protocol_list (gnutls_priority_t
+          PCACHE, const unsigned int** LIST)
+     PCACHE: is a 'gnutls_prioritity_t' structure.
+
+     LIST: will point to an integer list
+
+     Get a list of available TLS version numbers in the priority
+     structure.
+
+     *Returns:* the number of protocols, or an error code.
+
+     *Since:* 3.0
+
+gnutls_priority_set
+-------------------
+
+ -- Function: int gnutls_priority_set (gnutls_session_t SESSION,
+          gnutls_priority_t PRIORITY)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PRIORITY: is a 'gnutls_priority_t' structure.
+
+     Sets the priorities to use on the ciphers, key exchange methods,
+     macs and compression methods.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_priority_set_direct
+--------------------------
+
+ -- Function: int gnutls_priority_set_direct (gnutls_session_t SESSION,
+          const char * PRIORITIES, const char ** ERR_POS)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PRIORITIES: is a string describing priorities
+
+     ERR_POS: In case of an error this will have the position in the
+     string the error occured
+
+     Sets the priorities to use on the ciphers, key exchange methods,
+     macs and compression methods.  This function avoids keeping a
+     priority cache and is used to directly set string priorities to a
+     TLS session.  For documentation check the 'gnutls_priority_init()'
+     .
+
+     *Returns:* On syntax error 'GNUTLS_E_INVALID_REQUEST' is returned,
+     'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_priority_sign_list
+-------------------------
+
+ -- Function: int gnutls_priority_sign_list (gnutls_priority_t PCACHE,
+          const unsigned int** LIST)
+     PCACHE: is a 'gnutls_prioritity_t' structure.
+
+     LIST: will point to an integer list
+
+     Get a list of available signature algorithms in the priority
+     structure.
+
+     *Returns:* the number of algorithms, or an error code.
+
+     *Since:* 3.0
+
+gnutls_protocol_get_id
+----------------------
+
+ -- Function: gnutls_protocol_t gnutls_protocol_get_id (const char *
+          NAME)
+     NAME: is a protocol name
+
+     The names are compared in a case insensitive way.
+
+     *Returns:* an id of the specified protocol, or
+     'GNUTLS_VERSION_UNKNOWN' on error.
+
+gnutls_protocol_get_name
+------------------------
+
+ -- Function: const char * gnutls_protocol_get_name (gnutls_protocol_t
+          VERSION)
+     VERSION: is a (gnutls) version number
+
+     Convert a 'gnutls_protocol_t' value to a string.
+
+     *Returns:* a string that contains the name of the specified TLS
+     version (e.g., "TLS1.0"), or 'NULL' .
+
+gnutls_protocol_get_version
+---------------------------
+
+ -- Function: gnutls_protocol_t gnutls_protocol_get_version
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Get TLS version, a 'gnutls_protocol_t' value.
+
+     *Returns:* The version of the currently used protocol.
+
+gnutls_protocol_list
+--------------------
+
+ -- Function: const gnutls_protocol_t * gnutls_protocol_list ( VOID)
+
+     Get a list of supported protocols, e.g.  SSL 3.0, TLS 1.0 etc.
+
+     This function is not thread safe.
+
+     *Returns:* a (0)-terminated list of 'gnutls_protocol_t' integers
+     indicating the available protocols.
+
+gnutls_psk_allocate_client_credentials
+--------------------------------------
+
+ -- Function: int gnutls_psk_allocate_client_credentials
+          (gnutls_psk_client_credentials_t * SC)
+     SC: is a pointer to a 'gnutls_psk_server_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to allocate it.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_psk_allocate_server_credentials
+--------------------------------------
+
+ -- Function: int gnutls_psk_allocate_server_credentials
+          (gnutls_psk_server_credentials_t * SC)
+     SC: is a pointer to a 'gnutls_psk_server_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to allocate it.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_psk_client_get_hint
+--------------------------
+
+ -- Function: const char * gnutls_psk_client_get_hint (gnutls_session_t
+          SESSION)
+     SESSION: is a gnutls session
+
+     The PSK identity hint may give the client help in deciding which
+     username to use.  This should only be called in case of PSK
+     authentication and in case of a client.
+
+     *Returns:* the identity hint of the peer, or 'NULL' in case of an
+     error.
+
+     *Since:* 2.4.0
+
+gnutls_psk_free_client_credentials
+----------------------------------
+
+ -- Function: void gnutls_psk_free_client_credentials
+          (gnutls_psk_client_credentials_t SC)
+     SC: is a 'gnutls_psk_client_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to free (deallocate) it.
+
+gnutls_psk_free_server_credentials
+----------------------------------
+
+ -- Function: void gnutls_psk_free_server_credentials
+          (gnutls_psk_server_credentials_t SC)
+     SC: is a 'gnutls_psk_server_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to free (deallocate) it.
+
+gnutls_psk_server_get_username
+------------------------------
+
+ -- Function: const char * gnutls_psk_server_get_username
+          (gnutls_session_t SESSION)
+     SESSION: is a gnutls session
+
+     This should only be called in case of PSK authentication and in
+     case of a server.
+
+     *Returns:* the username of the peer, or 'NULL' in case of an error.
+
+gnutls_psk_set_client_credentials
+---------------------------------
+
+ -- Function: int gnutls_psk_set_client_credentials
+          (gnutls_psk_client_credentials_t RES, const char * USERNAME,
+          const gnutls_datum_t * KEY, gnutls_psk_key_flags FLAGS)
+     RES: is a 'gnutls_psk_client_credentials_t' structure.
+
+     USERNAME: is the user's zero-terminated userid
+
+     KEY: is the user's key
+
+     FLAGS: indicate the format of the key, either 'GNUTLS_PSK_KEY_RAW'
+     or 'GNUTLS_PSK_KEY_HEX' .
+
+     This function sets the username and password, in a
+     gnutls_psk_client_credentials_t structure.  Those will be used in
+     PSK authentication.  'username' should be an ASCII string or UTF-8
+     strings prepared using the "SASLprep" profile of "stringprep".  The
+     key can be either in raw byte format or in Hex format (without the
+     0x prefix).
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_psk_set_client_credentials_function
+------------------------------------------
+
+ -- Function: void gnutls_psk_set_client_credentials_function
+          (gnutls_psk_client_credentials_t CRED,
+          gnutls_psk_client_credentials_function * FUNC)
+     CRED: is a 'gnutls_psk_server_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function can be used to set a callback to retrieve the
+     username and password for client PSK authentication.  The
+     callback's function form is: int (*callback)(gnutls_session_t,
+     char** username, gnutls_datum_t* key);
+
+     The 'username' and 'key' ->data must be allocated using
+     'gnutls_malloc()' .  'username' should be ASCII strings or UTF-8
+     strings prepared using the "SASLprep" profile of "stringprep".
+
+     The callback function will be called once per handshake.
+
+     The callback function should return 0 on success.  -1 indicates an
+     error.
+
+gnutls_psk_set_params_function
+------------------------------
+
+ -- Function: void gnutls_psk_set_params_function
+          (gnutls_psk_server_credentials_t RES, gnutls_params_function *
+          FUNC)
+     RES: is a gnutls_psk_server_credentials_t structure
+
+     FUNC: is the function to be called
+
+     This function will set a callback in order for the server to get
+     the Diffie-Hellman or RSA parameters for PSK authentication.  The
+     callback should return 'GNUTLS_E_SUCCESS' (0) on success.
+
+gnutls_psk_set_server_credentials_file
+--------------------------------------
+
+ -- Function: int gnutls_psk_set_server_credentials_file
+          (gnutls_psk_server_credentials_t RES, const char *
+          PASSWORD_FILE)
+     RES: is a 'gnutls_psk_server_credentials_t' structure.
+
+     PASSWORD_FILE: is the PSK password file (passwd.psk)
+
+     This function sets the password file, in a
+     'gnutls_psk_server_credentials_t' structure.  This password file
+     holds usernames and keys and will be used for PSK authentication.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_psk_set_server_credentials_function
+------------------------------------------
+
+ -- Function: void gnutls_psk_set_server_credentials_function
+          (gnutls_psk_server_credentials_t CRED,
+          gnutls_psk_server_credentials_function * FUNC)
+     CRED: is a 'gnutls_psk_server_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function can be used to set a callback to retrieve the user's
+     PSK credentials.  The callback's function form is: int
+     (*callback)(gnutls_session_t, const char* username, gnutls_datum_t*
+     key);
+
+     'username' contains the actual username.  The 'key' must be filled
+     in using the 'gnutls_malloc()' .
+
+     In case the callback returned a negative number then gnutls will
+     assume that the username does not exist.
+
+     The callback function will only be called once per handshake.  The
+     callback function should return 0 on success, while -1 indicates an
+     error.
+
+gnutls_psk_set_server_credentials_hint
+--------------------------------------
+
+ -- Function: int gnutls_psk_set_server_credentials_hint
+          (gnutls_psk_server_credentials_t RES, const char * HINT)
+     RES: is a 'gnutls_psk_server_credentials_t' structure.
+
+     HINT: is the PSK identity hint string
+
+     This function sets the identity hint, in a
+     'gnutls_psk_server_credentials_t' structure.  This hint is sent to
+     the client to help it chose a good PSK credential (i.e., username
+     and password).
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+     *Since:* 2.4.0
+
+gnutls_psk_set_server_dh_params
+-------------------------------
+
+ -- Function: void gnutls_psk_set_server_dh_params
+          (gnutls_psk_server_credentials_t RES, gnutls_dh_params_t
+          DH_PARAMS)
+     RES: is a gnutls_psk_server_credentials_t structure
+
+     DH_PARAMS: is a structure that holds Diffie-Hellman parameters.
+
+     This function will set the Diffie-Hellman parameters for an
+     anonymous server to use.  These parameters will be used in
+     Diffie-Hellman exchange with PSK cipher suites.
+
+gnutls_psk_set_server_params_function
+-------------------------------------
+
+ -- Function: void gnutls_psk_set_server_params_function
+          (gnutls_psk_server_credentials_t RES, gnutls_params_function *
+          FUNC)
+     RES: is a 'gnutls_certificate_credentials_t' structure
+
+     FUNC: is the function to be called
+
+     This function will set a callback in order for the server to get
+     the Diffie-Hellman parameters for PSK authentication.  The callback
+     should return 'GNUTLS_E_SUCCESS' (0) on success.
+
+gnutls_random_art
+-----------------
+
+ -- Function: int gnutls_random_art (gnutls_random_art_t TYPE, const
+          char* KEY_TYPE, unsigned int KEY_SIZE, void * FPR, size_t
+          FPR_SIZE, gnutls_datum_t* ART)
+     TYPE: The type of the random art
+
+     KEY_TYPE: The type of the key (RSA, DSA etc.)
+
+     KEY_SIZE: The size of the key in bits
+
+     FPR: The fingerprint of the key
+
+     FPR_SIZE: The size of the fingerprint
+
+     ART: The returned random art
+
+     This function will convert a given fingerprint to an "artistic"
+     image.  The returned image is allocated using 'gnutls_malloc()'
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_record_check_pending
+---------------------------
+
+ -- Function: size_t gnutls_record_check_pending (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function checks if there are unread data in the gnutls
+     buffers.  If the return value is non-zero the next call to
+     'gnutls_record_recv()' is guarranteed not to block.
+
+     *Returns:* Returns the size of the data or zero.
+
+gnutls_record_disable_padding
+-----------------------------
+
+ -- Function: void gnutls_record_disable_padding (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Used to disabled padding in TLS 1.0 and above.  Normally you do not
+     need to use this function, but there are buggy clients that
+     complain if a server pads the encrypted data.  This of course will
+     disable protection against statistical attacks on the data.
+
+     Normally only servers that require maximum compatibility with
+     everything out there, need to call this function.
+
+gnutls_record_get_direction
+---------------------------
+
+ -- Function: int gnutls_record_get_direction (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function provides information about the internals of the
+     record protocol and is only useful if a prior gnutls function call
+     (e.g.  'gnutls_handshake()' ) was interrupted for some reason, that
+     is, if a function returned 'GNUTLS_E_INTERRUPTED' or
+     'GNUTLS_E_AGAIN' .  In such a case, you might want to call
+     'select()' or 'poll()' before calling the interrupted gnutls
+     function again.  To tell you whether a file descriptor should be
+     selected for either reading or writing,
+     'gnutls_record_get_direction()' returns 0 if the interrupted
+     function was trying to read data, and 1 if it was trying to write
+     data.
+
+     *Returns:* 0 if trying to read data, 1 if trying to write data.
+
+gnutls_record_get_max_size
+--------------------------
+
+ -- Function: size_t gnutls_record_get_max_size (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Get the record size.  The maximum record size is negotiated by the
+     client after the first handshake message.
+
+     *Returns:* The maximum record packet size in this connection.
+
+gnutls_record_recv
+------------------
+
+ -- Function: ssize_t gnutls_record_recv (gnutls_session_t SESSION, void
+          * DATA, size_t DATA_SIZE)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     DATA: the buffer that the data will be read into
+
+     DATA_SIZE: the number of requested bytes
+
+     This function has the similar semantics with 'recv()' .  The only
+     difference is that it accepts a GnuTLS session, and uses different
+     error codes.  In the special case that a server requests a
+     renegotiation, the client may receive an error code of
+     'GNUTLS_E_REHANDSHAKE' .  This message may be simply ignored,
+     replied with an alert 'GNUTLS_A_NO_RENEGOTIATION' , or replied with
+     a new handshake, depending on the client's will.  If 'EINTR' is
+     returned by the internal push function (the default is 'recv()' )
+     then 'GNUTLS_E_INTERRUPTED' will be returned.  If
+     'GNUTLS_E_INTERRUPTED' or 'GNUTLS_E_AGAIN' is returned, you must
+     call this function again to get the data.  See also
+     'gnutls_record_get_direction()' .  A server may also receive
+     'GNUTLS_E_REHANDSHAKE' when a client has initiated a handshake.  In
+     that case the server can only initiate a handshake or terminate the
+     connection.
+
+     *Returns:* The number of bytes received and zero on EOF (for stream
+     connections).  A negative error code is returned in case of an
+     error.  The number of bytes received might be less than the
+     requested 'data_size' .
+
+gnutls_record_recv_seq
+----------------------
+
+ -- Function: ssize_t gnutls_record_recv_seq (gnutls_session_t SESSION,
+          void * DATA, size_t DATA_SIZE, unsigned char * SEQ)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     DATA: the buffer that the data will be read into
+
+     DATA_SIZE: the number of requested bytes
+
+     SEQ: is the packet's 64-bit sequence number.  Should have space for
+     8 bytes.
+
+     This function is the same as 'gnutls_record_recv()' , except that
+     it returns in addition to data, the sequence number of the data.
+     This is useful in DTLS where record packets might be received
+     out-of-order.  The returned 8-byte sequence number is an integer in
+     big-endian format and should be treated as a unique message
+     identification.
+
+     *Returns:* The number of bytes received and zero on EOF. A negative
+     error code is returned in case of an error.  The number of bytes
+     received might be less than 'data_size' .
+
+     *Since:* 3.0
+
+gnutls_record_send
+------------------
+
+ -- Function: ssize_t gnutls_record_send (gnutls_session_t SESSION,
+          const void * DATA, size_t DATA_SIZE)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     DATA: contains the data to send
+
+     DATA_SIZE: is the length of the data
+
+     This function has the similar semantics with 'send()' .  The only
+     difference is that it accepts a GnuTLS session, and uses different
+     error codes.  Note that if the send buffer is full, 'send()' will
+     block this function.  See the 'send()' documentation for full
+     information.  You can replace the default push function by using
+     'gnutls_transport_set_ptr2()' with a call to 'send()' with a
+     MSG_DONTWAIT flag if blocking is a problem.  If the EINTR is
+     returned by the internal push function (the default is 'send()' )
+     then 'GNUTLS_E_INTERRUPTED' will be returned.  If
+     'GNUTLS_E_INTERRUPTED' or 'GNUTLS_E_AGAIN' is returned, you must
+     call this function again, with the same parameters; alternatively
+     you could provide a 'NULL' pointer for data, and 0 for size.  cf.
+     'gnutls_record_get_direction()' .  The errno value EMSGSIZE maps to
+     'GNUTLS_E_LARGE_PACKET' .
+
+     *Returns:* The number of bytes sent, or a negative error code.  The
+     number of bytes sent might be less than 'data_size' .  The maximum
+     number of bytes this function can send in a single call depends on
+     the negotiated maximum record size.
+
+gnutls_record_set_max_size
+--------------------------
+
+ -- Function: ssize_t gnutls_record_set_max_size (gnutls_session_t
+          SESSION, size_t SIZE)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     SIZE: is the new size
+
+     This function sets the maximum record packet size in this
+     connection.  This property can only be set to clients.  The server
+     may choose not to accept the requested size.
+
+     Acceptable values are 512(=2^9), 1024(=2^10), 2048(=2^11) and
+     4096(=2^12).  The requested record size does get in effect
+     immediately only while sending data.  The receive part will take
+     effect after a successful handshake.
+
+     This function uses a TLS extension called 'max record size'.  Not
+     all TLS implementations use or even understand this extension.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_rehandshake
+------------------
+
+ -- Function: int gnutls_rehandshake (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function will renegotiate security parameters with the client.
+     This should only be called in case of a server.
+
+     This message informs the peer that we want to renegotiate
+     parameters (perform a handshake).
+
+     If this function succeeds (returns 0), you must call the
+     'gnutls_handshake()' function in order to negotiate the new
+     parameters.
+
+     Since TLS is full duplex some application data might have been sent
+     during peer's processing of this message.  In that case one should
+     call 'gnutls_record_recv()' until GNUTLS_E_REHANDSHAKE is returned
+     to clear any pending data.  Care must be taken if rehandshake is
+     mandatory to terminate if it does not start after some threshold.
+
+     If the client does not wish to renegotiate parameters he will
+     should with an alert message, thus the return code will be
+     'GNUTLS_E_WARNING_ALERT_RECEIVED' and the alert will be
+     'GNUTLS_A_NO_RENEGOTIATION' .  A client may also choose to ignore
+     this message.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.
+
+gnutls_safe_renegotiation_status
+--------------------------------
+
+ -- Function: int gnutls_safe_renegotiation_status (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Can be used to check whether safe renegotiation is being used in
+     the current session.
+
+     *Returns:* 0 when safe renegotiation is not used and non (0) when
+     safe renegotiation is used.
+
+     *Since:* 2.10.0
+
+gnutls_sec_param_get_name
+-------------------------
+
+ -- Function: const char * gnutls_sec_param_get_name (gnutls_sec_param_t
+          PARAM)
+     PARAM: is a security parameter
+
+     Convert a 'gnutls_sec_param_t' value to a string.
+
+     *Returns:* a pointer to a string that contains the name of the
+     specified security level, or 'NULL' .
+
+     *Since:* 2.12.0
+
+gnutls_sec_param_to_pk_bits
+---------------------------
+
+ -- Function: unsigned int gnutls_sec_param_to_pk_bits
+          (gnutls_pk_algorithm_t ALGO, gnutls_sec_param_t PARAM)
+     ALGO: is a public key algorithm
+
+     PARAM: is a security parameter
+
+     When generating private and public key pairs a difficult question
+     is which size of "bits" the modulus will be in RSA and the group
+     size in DSA. The easy answer is 1024, which is also wrong.  This
+     function will convert a human understandable security parameter to
+     an appropriate size for the specific algorithm.
+
+     *Returns:* The number of bits, or (0).
+
+     *Since:* 2.12.0
+
+gnutls_server_name_get
+----------------------
+
+ -- Function: int gnutls_server_name_get (gnutls_session_t SESSION, void
+          * DATA, size_t * DATA_LENGTH, unsigned int * TYPE, unsigned
+          int INDX)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     DATA: will hold the data
+
+     DATA_LENGTH: will hold the data length.  Must hold the maximum size
+     of data.
+
+     TYPE: will hold the server name indicator type
+
+     INDX: is the index of the server_name
+
+     This function will allow you to get the name indication (if any), a
+     client has sent.  The name indication may be any of the enumeration
+     gnutls_server_name_type_t.
+
+     If 'type' is GNUTLS_NAME_DNS, then this function is to be used by
+     servers that support virtual hosting, and the data will be a null
+     terminated UTF-8 string.
+
+     If 'data' has not enough size to hold the server name
+     GNUTLS_E_SHORT_MEMORY_BUFFER is returned, and 'data_length' will
+     hold the required size.
+
+     'index' is used to retrieve more than one server names (if sent by
+     the client).  The first server name has an index of 0, the second 1
+     and so on.  If no name with the given index exists
+     GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE is returned.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_server_name_set
+----------------------
+
+ -- Function: int gnutls_server_name_set (gnutls_session_t SESSION,
+          gnutls_server_name_type_t TYPE, const void * NAME, size_t
+          NAME_LENGTH)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     TYPE: specifies the indicator type
+
+     NAME: is a string that contains the server name.
+
+     NAME_LENGTH: holds the length of name
+
+     This function is to be used by clients that want to inform (via a
+     TLS extension mechanism) the server of the name they connected to.
+     This should be used by clients that connect to servers that do
+     virtual hosting.
+
+     The value of 'name' depends on the 'type' type.  In case of
+     'GNUTLS_NAME_DNS' , an ASCII (0)-terminated domain name string,
+     without the trailing dot, is expected.  IPv4 or IPv6 addresses are
+     not permitted.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
+gnutls_session_channel_binding
+------------------------------
+
+ -- Function: int gnutls_session_channel_binding (gnutls_session_t
+          SESSION, gnutls_channel_binding_t CBTYPE, gnutls_datum_t * CB)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     CBTYPE: an 'gnutls_channel_binding_t' enumeration type
+
+     CB: output buffer array with data
+
+     Extract given channel binding data of the 'cbtype' (e.g.,
+     'GNUTLS_CB_TLS_UNIQUE' ) type.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success,
+     'GNUTLS_E_UNIMPLEMENTED_FEATURE' if the 'cbtype' is unsupported,
+     'GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE' if the data is not
+     currently available, or an error code.
+
+     *Since:* 2.12.0
+
+gnutls_session_enable_compatibility_mode
+----------------------------------------
+
+ -- Function: void gnutls_session_enable_compatibility_mode
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     This function can be used to disable certain (security) features in
+     TLS in order to maintain maximum compatibility with buggy clients.
+     It is equivalent to calling: 'gnutls_record_disable_padding()'
+
+     Normally only servers that require maximum compatibility with
+     everything out there, need to call this function.
+
+gnutls_session_get_data
+-----------------------
+
+ -- Function: int gnutls_session_get_data (gnutls_session_t SESSION,
+          void * SESSION_DATA, size_t * SESSION_DATA_SIZE)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     SESSION_DATA: is a pointer to space to hold the session.
+
+     SESSION_DATA_SIZE: is the session_data's size, or it will be set by
+     the function.
+
+     Returns all session parameters, in order to support resuming.  The
+     client should call this, and keep the returned session, if he wants
+     to resume that current version later by calling
+     'gnutls_session_set_data()' This function must be called after a
+     successful handshake.
+
+     Resuming sessions is really useful and speedups connections after a
+     successful one.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_session_get_data2
+------------------------
+
+ -- Function: int gnutls_session_get_data2 (gnutls_session_t SESSION,
+          gnutls_datum_t * DATA)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     DATA: is a pointer to a datum that will hold the session.
+
+     Returns all session parameters, in order to support resuming.  The
+     client should call this, and keep the returned session, if he wants
+     to resume that current version later by calling
+     'gnutls_session_set_data()' .  This function must be called after a
+     successful handshake.  The returned datum must be freed with
+     'gnutls_free()' .
+
+     Resuming sessions is really useful and speedups connections after a
+     successful one.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_session_get_id
+---------------------
+
+ -- Function: int gnutls_session_get_id (gnutls_session_t SESSION, void
+          * SESSION_ID, size_t * SESSION_ID_SIZE)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     SESSION_ID: is a pointer to space to hold the session id.
+
+     SESSION_ID_SIZE: is the session id's size, or it will be set by the
+     function.
+
+     Returns the current session id.  This can be used if you want to
+     check if the next session you tried to resume was actually resumed.
+     This is because resumed sessions have the same sessionID with the
+     original session.
+
+     Session id is some data set by the server, that identify the
+     current session.  In TLS 1.0 and SSL 3.0 session id is always less
+     than 32 bytes.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_session_get_ptr
+----------------------
+
+ -- Function: void * gnutls_session_get_ptr (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Get user pointer for session.  Useful in callbacks.  This is the
+     pointer set with 'gnutls_session_set_ptr()' .
+
+     *Returns:* the user given pointer from the session structure, or
+     'NULL' if it was never set.
+
+gnutls_session_get_random
+-------------------------
+
+ -- Function: void gnutls_session_get_random (gnutls_session_t SESSION,
+          gnutls_datum_t* CLIENT, gnutls_datum_t* SERVER)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     CLIENT: the client part of the random
+
+     SERVER: the server part of the random
+
+     This functions returns pointers to the client and server random
+     fields used in the TLS handshake.  The pointers are not to be
+     modified or deallocated.
+
+     If a client random value has not yet been established, the output
+     will be garbage.
+
+     *Since:* 3.0
+
+gnutls_session_is_resumed
+-------------------------
+
+ -- Function: int gnutls_session_is_resumed (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Check whether session is resumed or not.
+
+     *Returns:* non zero if this session is resumed, or a zero if this
+     is a new session.
+
+gnutls_session_resumption_requested
+-----------------------------------
+
+ -- Function: int gnutls_session_resumption_requested (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Check whether the client has asked for session resumption.  This
+     function is valid only on server side.
+
+     *Returns:* non zero if session resumption was asked, or a zero if
+     not.
+
+gnutls_session_set_data
+-----------------------
+
+ -- Function: int gnutls_session_set_data (gnutls_session_t SESSION,
+          const void * SESSION_DATA, size_t SESSION_DATA_SIZE)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     SESSION_DATA: is a pointer to space to hold the session.
+
+     SESSION_DATA_SIZE: is the session's size
+
+     Sets all session parameters, in order to resume a previously
+     established session.  The session data given must be the one
+     returned by 'gnutls_session_get_data()' .  This function should be
+     called before 'gnutls_handshake()' .
+
+     Keep in mind that session resuming is advisory.  The server may
+     choose not to resume the session, thus a full handshake will be
+     performed.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_session_set_premaster
+----------------------------
+
+ -- Function: int gnutls_session_set_premaster (gnutls_session_t
+          SESSION, unsigned int ENTITY, gnutls_protocol_t VERSION,
+          gnutls_kx_algorithm_t KX, gnutls_cipher_algorithm_t CIPHER,
+          gnutls_mac_algorithm_t MAC, gnutls_compression_method_t COMP,
+          const gnutls_datum_t* MASTER, const gnutls_datum_t *
+          SESSION_ID)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     ENTITY: GNUTLS_SERVER or GNUTLS_CLIENT
+
+     VERSION: the TLS protocol version
+
+     KX: the key exchange method
+
+     CIPHER: the cipher
+
+     MAC: the MAC algorithm
+
+     COMP: the compression method
+
+     MASTER: the master key to use
+
+     SESSION_ID: the session identifier
+
+     This function sets the premaster secret in a session.  This is a
+     function intended for exceptional uses.  Do not use this function
+     unless you are implementing a legacy protocol.  Use
+     'gnutls_session_set_data()' instead.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+gnutls_session_set_ptr
+----------------------
+
+ -- Function: void gnutls_session_set_ptr (gnutls_session_t SESSION,
+          void * PTR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PTR: is the user pointer
+
+     This function will set (associate) the user given pointer 'ptr' to
+     the session structure.  This is pointer can be accessed with
+     'gnutls_session_get_ptr()' .
+
+gnutls_session_ticket_enable_client
+-----------------------------------
+
+ -- Function: int gnutls_session_ticket_enable_client (gnutls_session_t
+          SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Request that the client should attempt session resumption using
+     SessionTicket.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+     *Since:* 2.10.0
+
+gnutls_session_ticket_enable_server
+-----------------------------------
+
+ -- Function: int gnutls_session_ticket_enable_server (gnutls_session_t
+          SESSION, const gnutls_datum_t * KEY)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     KEY: key to encrypt session parameters.
+
+     Request that the server should attempt session resumption using
+     SessionTicket.  'key' must be initialized with
+     'gnutls_session_ticket_key_generate()' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+     *Since:* 2.10.0
+
+gnutls_session_ticket_key_generate
+----------------------------------
+
+ -- Function: int gnutls_session_ticket_key_generate (gnutls_datum_t *
+          KEY)
+     KEY: is a pointer to a 'gnutls_datum_t' which will contain a newly
+     created key.
+
+     Generate a random key to encrypt security parameters within
+     SessionTicket.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+     *Since:* 2.10.0
+
+gnutls_set_default_priority
+---------------------------
+
+ -- Function: int gnutls_set_default_priority (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Sets some default priority on the ciphers, key exchange methods,
+     macs and compression methods.
+
+     This is the same as calling:
+
+     gnutls_priority_set_direct (session, "NORMAL", NULL);
+
+     This function is kept around for backwards compatibility, but
+     because of its wide use it is still fully supported.  If you wish
+     to allow users to provide a string that specify which ciphers to
+     use (which is recommended), you should use
+     'gnutls_priority_set_direct()' or 'gnutls_priority_set()' instead.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
+
+gnutls_sign_algorithm_get_requested
+-----------------------------------
+
+ -- Function: int gnutls_sign_algorithm_get_requested (gnutls_session_t
+          SESSION, size_t INDX, gnutls_sign_algorithm_t * ALGO)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     INDX: is an index of the signature algorithm to return
+
+     ALGO: the returned certificate type will be stored there
+
+     Returns the signature algorithm specified by index that was
+     requested by the peer.  If the specified index has no data
+     available this function returns
+     'GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE' .  If the negotiated TLS
+     version does not support signature algorithms then
+     'GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE' will be returned even for
+     the first index.  The first index is 0.
+
+     This function is useful in the certificate callback functions to
+     assist in selecting the correct certificate.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise an error code is returned.
+
+     *Since:* 2.10.0
+
+gnutls_sign_get_id
+------------------
+
+ -- Function: gnutls_sign_algorithm_t gnutls_sign_get_id (const char *
+          NAME)
+     NAME: is a MAC algorithm name
+
+     The names are compared in a case insensitive way.
+
+     *Returns:* return a 'gnutls_sign_algorithm_t' value corresponding
+     to the specified cipher, or 'GNUTLS_SIGN_UNKNOWN' on error.
+
+gnutls_sign_get_name
+--------------------
+
+ -- Function: const char * gnutls_sign_get_name (gnutls_sign_algorithm_t
+          ALGORITHM)
+     ALGORITHM: is a sign algorithm
+
+     Convert a 'gnutls_sign_algorithm_t' value to a string.
+
+     *Returns:* a string that contains the name of the specified sign
+     algorithm, or 'NULL' .
+
+gnutls_sign_list
+----------------
+
+ -- Function: const gnutls_sign_algorithm_t * gnutls_sign_list ( VOID)
+
+     Get a list of supported public key signature algorithms.
+
+     *Returns:* a (0)-terminated list of 'gnutls_sign_algorithm_t'
+     integers indicating the available ciphers.
+
+gnutls_srp_allocate_client_credentials
+--------------------------------------
+
+ -- Function: int gnutls_srp_allocate_client_credentials
+          (gnutls_srp_client_credentials_t * SC)
+     SC: is a pointer to a 'gnutls_srp_server_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to allocate it.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+gnutls_srp_allocate_server_credentials
+--------------------------------------
+
+ -- Function: int gnutls_srp_allocate_server_credentials
+          (gnutls_srp_server_credentials_t * SC)
+     SC: is a pointer to a 'gnutls_srp_server_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to allocate it.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+gnutls_srp_base64_decode
+------------------------
+
+ -- Function: int gnutls_srp_base64_decode (const gnutls_datum_t *
+          B64_DATA, char * RESULT, size_t * RESULT_SIZE)
+     B64_DATA: contain the encoded data
+
+     RESULT: the place where decoded data will be copied
+
+     RESULT_SIZE: holds the size of the result
+
+     This function will decode the given encoded data, using the base64
+     encoding found in libsrp.
+
+     Note that 'b64_data' should be null terminated.
+
+     Warning!  This base64 encoding is not the "standard" encoding, so
+     do not use it for non-SRP purposes.
+
+     *Returns:* 'GNUTLS_E_SHORT_MEMORY_BUFFER' if the buffer given is
+     not long enough, or 0 on success.
+
+gnutls_srp_base64_decode_alloc
+------------------------------
+
+ -- Function: int gnutls_srp_base64_decode_alloc (const gnutls_datum_t *
+          B64_DATA, gnutls_datum_t * RESULT)
+     B64_DATA: contains the encoded data
+
+     RESULT: the place where decoded data lie
+
+     This function will decode the given encoded data.  The decoded data
+     will be allocated, and stored into result.  It will decode using
+     the base64 algorithm as used in libsrp.
+
+     You should use 'gnutls_free()' to free the returned data.
+
+     Warning!  This base64 encoding is not the "standard" encoding, so
+     do not use it for non-SRP purposes.
+
+     *Returns:* 0 on success, or an error code.
+
+gnutls_srp_base64_encode
+------------------------
+
+ -- Function: int gnutls_srp_base64_encode (const gnutls_datum_t * DATA,
+          char * RESULT, size_t * RESULT_SIZE)
+     DATA: contain the raw data
+
+     RESULT: the place where base64 data will be copied
+
+     RESULT_SIZE: holds the size of the result
+
+     This function will convert the given data to printable data, using
+     the base64 encoding, as used in the libsrp.  This is the encoding
+     used in SRP password files.  If the provided buffer is not long
+     enough GNUTLS_E_SHORT_MEMORY_BUFFER is returned.
+
+     Warning!  This base64 encoding is not the "standard" encoding, so
+     do not use it for non-SRP purposes.
+
+     *Returns:* 'GNUTLS_E_SHORT_MEMORY_BUFFER' if the buffer given is
+     not long enough, or 0 on success.
+
+gnutls_srp_base64_encode_alloc
+------------------------------
+
+ -- Function: int gnutls_srp_base64_encode_alloc (const gnutls_datum_t *
+          DATA, gnutls_datum_t * RESULT)
+     DATA: contains the raw data
+
+     RESULT: will hold the newly allocated encoded data
+
+     This function will convert the given data to printable data, using
+     the base64 encoding.  This is the encoding used in SRP password
+     files.  This function will allocate the required memory to hold the
+     encoded data.
+
+     You should use 'gnutls_free()' to free the returned data.
+
+     Warning!  This base64 encoding is not the "standard" encoding, so
+     do not use it for non-SRP purposes.
+
+     *Returns:* 0 on success, or an error code.
+
+gnutls_srp_free_client_credentials
+----------------------------------
+
+ -- Function: void gnutls_srp_free_client_credentials
+          (gnutls_srp_client_credentials_t SC)
+     SC: is a 'gnutls_srp_client_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to free (deallocate) it.
+
+gnutls_srp_free_server_credentials
+----------------------------------
+
+ -- Function: void gnutls_srp_free_server_credentials
+          (gnutls_srp_server_credentials_t SC)
+     SC: is a 'gnutls_srp_server_credentials_t' structure.
+
+     This structure is complex enough to manipulate directly thus this
+     helper function is provided in order to free (deallocate) it.
+
+gnutls_srp_server_get_username
+------------------------------
+
+ -- Function: const char * gnutls_srp_server_get_username
+          (gnutls_session_t SESSION)
+     SESSION: is a gnutls session
+
+     This function will return the username of the peer.  This should
+     only be called in case of SRP authentication and in case of a
+     server.  Returns NULL in case of an error.
+
+     *Returns:* SRP username of the peer, or NULL in case of error.
+
+gnutls_srp_set_client_credentials
+---------------------------------
+
+ -- Function: int gnutls_srp_set_client_credentials
+          (gnutls_srp_client_credentials_t RES, const char * USERNAME,
+          const char * PASSWORD)
+     RES: is a 'gnutls_srp_client_credentials_t' structure.
+
+     USERNAME: is the user's userid
+
+     PASSWORD: is the user's password
+
+     This function sets the username and password, in a
+     'gnutls_srp_client_credentials_t' structure.  Those will be used in
+     SRP authentication.  'username' and 'password' should be ASCII
+     strings or UTF-8 strings prepared using the "SASLprep" profile of
+     "stringprep".
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+gnutls_srp_set_client_credentials_function
+------------------------------------------
+
+ -- Function: void gnutls_srp_set_client_credentials_function
+          (gnutls_srp_client_credentials_t CRED,
+          gnutls_srp_client_credentials_function * FUNC)
+     CRED: is a 'gnutls_srp_server_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function can be used to set a callback to retrieve the
+     username and password for client SRP authentication.  The
+     callback's function form is:
+
+     int (*callback)(gnutls_session_t, char** username, char**password);
+
+     The 'username' and 'password' must be allocated using
+     'gnutls_malloc()' .  'username' and 'password' should be ASCII
+     strings or UTF-8 strings prepared using the "SASLprep" profile of
+     "stringprep".
+
+     The callback function will be called once per handshake before the
+     initial hello message is sent.
+
+     The callback should not return a negative error code the second
+     time called, since the handshake procedure will be aborted.
+
+     The callback function should return 0 on success.  -1 indicates an
+     error.
+
+gnutls_srp_set_prime_bits
+-------------------------
+
+ -- Function: void gnutls_srp_set_prime_bits (gnutls_session_t SESSION,
+          unsigned int BITS)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     BITS: is the number of bits
+
+     This function sets the minimum accepted number of bits, for use in
+     an SRP key exchange.  If zero, the default 2048 bits will be used.
+
+     In the client side it sets the minimum accepted number of bits.  If
+     a server sends a prime with less bits than that
+     'GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER' will be returned by the
+     handshake.
+
+     This function has no effect in server side.
+
+     *Since:* 2.6.0
+
+gnutls_srp_set_server_credentials_file
+--------------------------------------
+
+ -- Function: int gnutls_srp_set_server_credentials_file
+          (gnutls_srp_server_credentials_t RES, const char *
+          PASSWORD_FILE, const char * PASSWORD_CONF_FILE)
+     RES: is a 'gnutls_srp_server_credentials_t' structure.
+
+     PASSWORD_FILE: is the SRP password file (tpasswd)
+
+     PASSWORD_CONF_FILE: is the SRP password conf file (tpasswd.conf)
+
+     This function sets the password files, in a
+     'gnutls_srp_server_credentials_t' structure.  Those password files
+     hold usernames and verifiers and will be used for SRP
+     authentication.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+gnutls_srp_set_server_credentials_function
+------------------------------------------
+
+ -- Function: void gnutls_srp_set_server_credentials_function
+          (gnutls_srp_server_credentials_t CRED,
+          gnutls_srp_server_credentials_function * FUNC)
+     CRED: is a 'gnutls_srp_server_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function can be used to set a callback to retrieve the user's
+     SRP credentials.  The callback's function form is:
+
+     int (*callback)(gnutls_session_t, const char* username,
+     gnutls_datum_t* salt, gnutls_datum_t *verifier, gnutls_datum_t* g,
+     gnutls_datum_t* n);
+
+     'username' contains the actual username.  The 'salt' , 'verifier' ,
+     'generator' and 'prime' must be filled in using the
+     'gnutls_malloc()' .  For convenience 'prime' and 'generator' may
+     also be one of the static parameters defined in gnutls.h.
+
+     In case the callback returned a negative number then gnutls will
+     assume that the username does not exist.
+
+     In order to prevent attackers from guessing valid usernames, if a
+     user does not exist, g and n values should be filled in using a
+     random user's parameters.  In that case the callback must return
+     the special value (1).
+
+     The callback function will only be called once per handshake.  The
+     callback function should return 0 on success, while -1 indicates an
+     error.
+
+gnutls_srp_verifier
+-------------------
+
+ -- Function: int gnutls_srp_verifier (const char * USERNAME, const char
+          * PASSWORD, const gnutls_datum_t * SALT, const gnutls_datum_t
+          * GENERATOR, const gnutls_datum_t * PRIME, gnutls_datum_t *
+          RES)
+     USERNAME: is the user's name
+
+     PASSWORD: is the user's password
+
+     SALT: should be some randomly generated bytes
+
+     GENERATOR: is the generator of the group
+
+     PRIME: is the group's prime
+
+     RES: where the verifier will be stored.
+
+     This function will create an SRP verifier, as specified in RFC2945.
+     The 'prime' and 'generator' should be one of the static parameters
+     defined in gnutls/gnutls.h or may be generated.
+
+     The verifier will be allocated with 'gnutls_malloc' () and will be
+     stored in 'res' using binary format.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned, or an
+     error code.
+
+gnutls_store_commitment
+-----------------------
+
+ -- Function: int gnutls_store_commitment (const char* DB_NAME,
+          gnutls_tdb_t TDB, const char* HOST, const char* SERVICE,
+          gnutls_digest_algorithm_t HASH_ALGO, const gnutls_datum_t*
+          HASH, time_t EXPIRATION, unsigned int FLAGS)
+     DB_NAME: A file specifying the stored keys (use NULL for the
+     default)
+
+     TDB: A storage structure or NULL to use the default
+
+     HOST: The peer's name
+
+     SERVICE: non-NULL if this key is specific to a service (e.g.  http)
+
+     HASH_ALGO: The hash algorithm type
+
+     HASH: The raw hash
+
+     EXPIRATION: The expiration time (use 0 to disable expiration)
+
+     FLAGS: should be 0.
+
+     This function will store the provided hash commitment to the list
+     of stored public keys.  The key with the given hash will be
+     considered valid until the provided expiration time.
+
+     The 'store' variable if non-null specifies a custom backend for the
+     storage of entries.  If it is NULL then the default file backend
+     will be used.
+
+     Note that this function is not thread safe with the default
+     backend.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_store_pubkey
+-------------------
+
+ -- Function: int gnutls_store_pubkey (const char* DB_NAME, gnutls_tdb_t
+          TDB, const char* HOST, const char* SERVICE,
+          gnutls_certificate_type_t CERT_TYPE, const gnutls_datum_t *
+          CERT, time_t EXPIRATION, unsigned int FLAGS)
+     DB_NAME: A file specifying the stored keys (use NULL for the
+     default)
+
+     TDB: A storage structure or NULL to use the default
+
+     HOST: The peer's name
+
+     SERVICE: non-NULL if this key is specific to a service (e.g.  http)
+
+     CERT_TYPE: The type of the certificate
+
+     CERT: The data of the certificate
+
+     EXPIRATION: The expiration time (use 0 to disable expiration)
+
+     FLAGS: should be 0.
+
+     This function will store the provided certificate to the list of
+     stored public keys.  The key will be considered valid until the
+     provided expiration time.
+
+     The 'store' variable if non-null specifies a custom backend for the
+     storage of entries.  If it is NULL then the default file backend
+     will be used.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_strerror
+---------------
+
+ -- Function: const char * gnutls_strerror (int ERROR)
+     ERROR: is a GnuTLS error code, a negative error code
+
+     This function is similar to strerror.  The difference is that it
+     accepts an error number returned by a gnutls function; In case of
+     an unknown error a descriptive string is sent instead of 'NULL' .
+
+     Error codes are always a negative error code.
+
+     *Returns:* A string explaining the GnuTLS error message.
+
+gnutls_strerror_name
+--------------------
+
+ -- Function: const char * gnutls_strerror_name (int ERROR)
+     ERROR: is an error returned by a gnutls function.
+
+     Return the GnuTLS error code define as a string.  For example,
+     gnutls_strerror_name (GNUTLS_E_DH_PRIME_UNACCEPTABLE) will return
+     the string "GNUTLS_E_DH_PRIME_UNACCEPTABLE".
+
+     *Returns:* A string corresponding to the symbol name of the error
+     code.
+
+     *Since:* 2.6.0
+
+gnutls_supplemental_get_name
+----------------------------
+
+ -- Function: const char * gnutls_supplemental_get_name
+          (gnutls_supplemental_data_format_type_t TYPE)
+     TYPE: is a supplemental data format type
+
+     Convert a 'gnutls_supplemental_data_format_type_t' value to a
+     string.
+
+     *Returns:* a string that contains the name of the specified
+     supplemental data format type, or 'NULL' for unknown types.
+
+gnutls_tdb_deinit
+-----------------
+
+ -- Function: void gnutls_tdb_deinit (gnutls_tdb_t TDB)
+     TDB: The structure to be deinitialized
+
+     This function will deinitialize a public key trust storage
+     structure.
+
+gnutls_tdb_init
+---------------
+
+ -- Function: int gnutls_tdb_init (gnutls_tdb_t* TDB)
+     TDB: The structure to be initialized
+
+     This function will initialize a public key trust storage structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+gnutls_tdb_set_store_commitment_func
+------------------------------------
+
+ -- Function: void gnutls_tdb_set_store_commitment_func (gnutls_tdb_t
+          TDB, gnutls_tdb_store_commitment_func CSTORE)
+     TDB: The trust storage
+
+     CSTORE: The commitment storage function
+
+     This function will associate a commitment (hash) storage function
+     with the trust storage structure.  The function is of the following
+     form.
+
+     gnutls_tdb_store_commitment_func(const char* db_name, const char*
+     host, const char* service, time_t expiration,
+     gnutls_digest_algorithm_t, const gnutls_datum_t* hash);
+
+gnutls_tdb_set_store_func
+-------------------------
+
+ -- Function: void gnutls_tdb_set_store_func (gnutls_tdb_t TDB,
+          gnutls_tdb_store_func STORE)
+     TDB: The trust storage
+
+     STORE: The storage function
+
+     This function will associate a storage function with the trust
+     storage structure.  The function is of the following form.
+
+     gnutls_tdb_store_func(const char* db_name, const char* host, const
+     char* service, time_t expiration, const gnutls_datum_t* pubkey);
+
+gnutls_tdb_set_verify_func
+--------------------------
+
+ -- Function: void gnutls_tdb_set_verify_func (gnutls_tdb_t TDB,
+          gnutls_tdb_verify_func VERIFY)
+     TDB: The trust storage
+
+     VERIFY: The verification function
+
+     This function will associate a retrieval function with the trust
+     storage structure.  The function is of the following form.
+
+     gnutls_tdb_verify_func(const char* db_name, const char* host, const
+     char* service, const gnutls_datum_t* pubkey);
+
+gnutls_transport_get_ptr
+------------------------
+
+ -- Function: gnutls_transport_ptr_t gnutls_transport_get_ptr
+          (gnutls_session_t SESSION)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     Used to get the first argument of the transport function (like PUSH
+     and PULL). This must have been set using
+     'gnutls_transport_set_ptr()' .
+
+     *Returns:* The first argument of the transport function.
+
+gnutls_transport_get_ptr2
+-------------------------
+
+ -- Function: void gnutls_transport_get_ptr2 (gnutls_session_t SESSION,
+          gnutls_transport_ptr_t * RECV_PTR, gnutls_transport_ptr_t *
+          SEND_PTR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     RECV_PTR: will hold the value for the pull function
+
+     SEND_PTR: will hold the value for the push function
+
+     Used to get the arguments of the transport functions (like PUSH and
+     PULL). These should have been set using
+     'gnutls_transport_set_ptr2()' .
+
+gnutls_transport_set_errno
+--------------------------
+
+ -- Function: void gnutls_transport_set_errno (gnutls_session_t SESSION,
+          int ERR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     ERR: error value to store in session-specific errno variable.
+
+     Store 'err' in the session-specific errno variable.  Useful values
+     for 'err' is EAGAIN and EINTR, other values are treated will be
+     treated as real errors in the push/pull function.
+
+     This function is useful in replacement push and pull functions set
+     by 'gnutls_transport_set_push_function()' and
+     'gnutls_transport_set_pull_function()' under Windows, where the
+     replacements may not have access to the same 'errno' variable that
+     is used by GnuTLS (e.g., the application is linked to msvcr71.dll
+     and gnutls is linked to msvcrt.dll).
+
+gnutls_transport_set_errno_function
+-----------------------------------
+
+ -- Function: void gnutls_transport_set_errno_function (gnutls_session_t
+          SESSION, gnutls_errno_func ERRNO_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     ERRNO_FUNC: a callback function similar to 'write()'
+
+     This is the function where you set a function to retrieve errno
+     after a failed push or pull operation.
+
+     'errno_func' is of the form, int
+     (*gnutls_errno_func)(gnutls_transport_ptr_t); and should return the
+     errno.
+
+     *Since:* 2.12.0
+
+gnutls_transport_set_ptr
+------------------------
+
+ -- Function: void gnutls_transport_set_ptr (gnutls_session_t SESSION,
+          gnutls_transport_ptr_t PTR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PTR: is the value.
+
+     Used to set the first argument of the transport function (for push
+     and pull callbacks).  In berkeley style sockets this function will
+     set the connection descriptor.
+
+gnutls_transport_set_ptr2
+-------------------------
+
+ -- Function: void gnutls_transport_set_ptr2 (gnutls_session_t SESSION,
+          gnutls_transport_ptr_t RECV_PTR, gnutls_transport_ptr_t
+          SEND_PTR)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     RECV_PTR: is the value for the pull function
+
+     SEND_PTR: is the value for the push function
+
+     Used to set the first argument of the transport function (for push
+     and pull callbacks).  In berkeley style sockets this function will
+     set the connection descriptor.  With this function you can use two
+     different pointers for receiving and sending.
+
+gnutls_transport_set_pull_function
+----------------------------------
+
+ -- Function: void gnutls_transport_set_pull_function (gnutls_session_t
+          SESSION, gnutls_pull_func PULL_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PULL_FUNC: a callback function similar to 'read()'
+
+     This is the function where you set a function for gnutls to receive
+     data.  Normally, if you use berkeley style sockets, do not need to
+     use this function since the default recv(2) will probably be ok.
+     The callback should return 0 on connection termination, a positive
+     number indicating the number of bytes received, and -1 on error.
+
+     'gnutls_pull_func' is of the form, ssize_t
+     (*gnutls_pull_func)(gnutls_transport_ptr_t, void*, size_t);
+
+gnutls_transport_set_pull_timeout_function
+------------------------------------------
+
+ -- Function: void gnutls_transport_set_pull_timeout_function
+          (gnutls_session_t SESSION, gnutls_pull_timeout_func FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     FUNC: a callback function
+
+     This is the function where you set a function for gnutls to know
+     whether data are ready to be received.  It should wait for data a
+     given time frame in milliseconds.  The callback should return 0 on
+     timeout, a positive number if data can be received, and -1 on
+     error.  You'll need to override this function if 'select()' is not
+     suitable for the provided transport calls.  The callback function
+     is used in DTLS only.
+
+     'gnutls_pull_timeout_func' is of the form, ssize_t
+     (*gnutls_pull_timeout_func)(gnutls_transport_ptr_t, unsigned int
+     ms);
+
+     *Since:* 3.0
+
+gnutls_transport_set_push_function
+----------------------------------
+
+ -- Function: void gnutls_transport_set_push_function (gnutls_session_t
+          SESSION, gnutls_push_func PUSH_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     PUSH_FUNC: a callback function similar to 'write()'
+
+     This is the function where you set a push function for gnutls to
+     use in order to send data.  If you are going to use berkeley style
+     sockets, you do not need to use this function since the default
+     send(2) will probably be ok.  Otherwise you should specify this
+     function for gnutls to be able to send data.  The callback should
+     return a positive number indicating the bytes sent, and -1 on
+     error.
+
+     'push_func' is of the form, ssize_t
+     (*gnutls_push_func)(gnutls_transport_ptr_t, const void*, size_t);
+
+gnutls_transport_set_vec_push_function
+--------------------------------------
+
+ -- Function: void gnutls_transport_set_vec_push_function
+          (gnutls_session_t SESSION, gnutls_vec_push_func VEC_FUNC)
+     SESSION: is a 'gnutls_session_t' structure.
+
+     VEC_FUNC: a callback function similar to 'writev()'
+
+     Using this function you can override the default writev(2) function
+     for gnutls to send data.  Setting this callback instead of
+     'gnutls_transport_set_push_function()' is recommended since it
+     introduces less overhead in the TLS handshake process.
+
+     'vec_func' is of the form, ssize_t (*gnutls_vec_push_func)
+     (gnutls_transport_ptr_t, const giovec_t * iov, int iovcnt);
+
+     *Since:* 2.12.0
+
+gnutls_verify_stored_pubkey
+---------------------------
+
+ -- Function: int gnutls_verify_stored_pubkey (const char* DB_NAME,
+          gnutls_tdb_t TDB, const char* HOST, const char* SERVICE,
+          gnutls_certificate_type_t CERT_TYPE, const gnutls_datum_t *
+          CERT, unsigned int FLAGS)
+     DB_NAME: A file specifying the stored keys (use NULL for the
+     default)
+
+     TDB: A storage structure or NULL to use the default
+
+     HOST: The peer's name
+
+     SERVICE: non-NULL if this key is specific to a service (e.g.  http)
+
+     CERT_TYPE: The type of the certificate
+
+     CERT: The raw (der) data of the certificate
+
+     FLAGS: should be 0.
+
+     This function will try to verify the provided certificate using a
+     list of stored public keys.  The 'service' field if non-NULL should
+     be a port number.
+
+     The 'retrieve' variable if non-null specifies a custom backend for
+     the retrieval of entries.  If it is NULL then the default file
+     backend will be used.  In POSIX-like systems the file backend uses
+     the $HOME/.gnutls/known_hosts file.
+
+     Note that if the custom storage backend is provided the retrieval
+     function should return 'GNUTLS_E_CERTIFICATE_KEY_MISMATCH' if the
+     host/service pair is found but key doesn't match,
+     'GNUTLS_E_NO_CERTIFICATE_FOUND' if no such host/service with the
+     given key is found, and 0 if it was found.  The storage function
+     should return 0 on success.
+
+     *Returns:* If no associated public key is found then
+     'GNUTLS_E_NO_CERTIFICATE_FOUND' will be returned.  If a key is
+     found but does not match 'GNUTLS_E_CERTIFICATE_KEY_MISMATCH' is
+     returned.  On success, 'GNUTLS_E_SUCCESS' (0) is returned, or a
+     negative error value on other errors.
+
+     *Since:* 3.0
+
index ed72090..1bb8e72 100644 (file)
@@ -1,7 +1,8 @@
 This is gnutls.info, produced by makeinfo version 4.13.90 from
 gnutls.texi.
 
-This manual is last updated 10 May 2012 for version 3.0.21 of GnuTLS.
+This manual is last updated 2 September 2012 for version 3.0.30 of
+GnuTLS.
 
 Copyright (C) 2001-2012 Free Software Foundation, Inc.
 
@@ -2095,7 +2096,8 @@ gnutls_x509_crt_check_issuer
      ISSUER: is the certificate of a possible issuer
 
      This function will check if the given certificate was issued by the
-     given issuer.
+     given issuer.  It checks the DN fields and the authority key
+     identifier and subject key identifier fields match.
 
      *Returns:* It will return true (1) if the given certificate is
      issued by the given issuer, and false (0) if not.  A negative error
@@ -3100,7 +3102,8 @@ gnutls_x509_crt_get_raw_dn
      START: will hold the starting point of the DN
 
      This function will return a pointer to the DER encoded DN structure
-     and the length.
+     and the length.  This points to allocated data that must be free'd
+     using 'gnutls_free()' .
 
      *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
      otherwise a negative error value.  or a negative error code on
@@ -3116,7 +3119,8 @@ gnutls_x509_crt_get_raw_issuer_dn
      START: will hold the starting point of the DN
 
      This function will return a pointer to the DER encoded DN structure
-     and the length.
+     and the length.  This points to allocated data that must be free'd
+     using 'gnutls_free()' .
 
      *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
      otherwise a negative error value.or a negative error code on error.
@@ -3448,7 +3452,7 @@ gnutls_x509_crt_list_import2
 
      This function will convert the given PEM encoded certificate list
      to the native gnutls_x509_crt_t format.  The output will be stored
-     in 'certs' which will be initialized.
+     in 'certs' .  They will be automatically initialized.
 
      If the Certificate is PEM encoded it should have a header of "X509
      CERTIFICATE", or "CERTIFICATE".
@@ -3933,28 +3937,6 @@ gnutls_x509_crt_set_serial
      *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
      otherwise a negative error value.
 
-gnutls_x509_crt_set_subject_alternative_name
---------------------------------------------
-
- -- Function: int gnutls_x509_crt_set_subject_alternative_name
-          (gnutls_x509_crt_t CRT, gnutls_x509_subject_alt_name_t TYPE,
-          const char * DATA_STRING)
-     CRT: a certificate of type 'gnutls_x509_crt_t'
-
-     TYPE: is one of the gnutls_x509_subject_alt_name_t enumerations
-
-     DATA_STRING: The data to be set, a (0) terminated string
-
-     This function will set the subject alternative name certificate
-     extension.  This function assumes that data can be expressed as a
-     null terminated string.
-
-     The name of the function is unfortunate since it is incosistent
-     with 'gnutls_x509_crt_get_subject_alt_name()' .
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
 gnutls_x509_crt_set_subject_alt_name
 ------------------------------------
 
@@ -3980,6 +3962,28 @@ gnutls_x509_crt_set_subject_alt_name
 
      *Since:* 2.6.0
 
+gnutls_x509_crt_set_subject_alternative_name
+--------------------------------------------
+
+ -- Function: int gnutls_x509_crt_set_subject_alternative_name
+          (gnutls_x509_crt_t CRT, gnutls_x509_subject_alt_name_t TYPE,
+          const char * DATA_STRING)
+     CRT: a certificate of type 'gnutls_x509_crt_t'
+
+     TYPE: is one of the gnutls_x509_subject_alt_name_t enumerations
+
+     DATA_STRING: The data to be set, a (0) terminated string
+
+     This function will set the subject alternative name certificate
+     extension.  This function assumes that data can be expressed as a
+     null terminated string.
+
+     The name of the function is unfortunate since it is incosistent
+     with 'gnutls_x509_crt_get_subject_alt_name()' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
 gnutls_x509_crt_set_subject_key_id
 ----------------------------------
 
@@ -4509,8 +4513,9 @@ gnutls_x509_privkey_import
      native 'gnutls_x509_privkey_t' format.  The output will be stored
      in 'key' .
 
-     If the key is PEM encoded it should have a header of "RSA PRIVATE
-     KEY", or "DSA PRIVATE KEY".
+     If the key is PEM encoded it should have a header that contains
+     "PRIVATE KEY". Note that this function falls back to PKCS '8'
+     decoding without password, if the default format fails to import.
 
      *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
      otherwise a negative error value.
@@ -4859,81 +4864,6 @@ gnutls_x509_trust_list_add_named_crt
 
      *Since:* 3.0
 
-gnutls_x509_trust_list_add_system_trust
----------------------------------------
-
- -- Function: int gnutls_x509_trust_list_add_system_trust
-          (gnutls_x509_trust_list_t LIST, unsigned int TL_FLAGS,
-          unsigned int TL_VFLAGS)
-     LIST: The structure of the list
-
-     TL_FLAGS: GNUTLS_TL_*
-
-     TL_VFLAGS: gnutls_certificate_verify_flags if flags specifies
-     GNUTLS_TL_VERIFY_CRL
-
-     This function adds the system's default trusted certificate
-     authorities to the trusted list.
-
-     *Returns:* The number of added elements is returned.
-
-     *Since:* 3.1
-
-gnutls_x509_trust_list_add_trust_file
--------------------------------------
-
- -- Function: int gnutls_x509_trust_list_add_trust_file
-          (gnutls_x509_trust_list_t LIST, const char* CA_FILE, const
-          char* CRL_FILE, gnutls_x509_crt_fmt_t TYPE, unsigned int
-          TL_FLAGS, unsigned int TL_VFLAGS)
-     LIST: The structure of the list
-
-     CA_FILE: A file containing a list of CAs (optional)
-
-     CRL_FILE: A file containing a list of CRLs (optional)
-
-     TYPE: The format of the certificates
-
-     TL_FLAGS: GNUTLS_TL_*
-
-     TL_VFLAGS: gnutls_certificate_verify_flags if flags specifies
-     GNUTLS_TL_VERIFY_CRL
-
-     This function will add the given certificate authorities to the
-     trusted list.  pkcs11 URLs are also accepted, instead of files, by
-     this function.
-
-     *Returns:* The number of added elements is returned.
-
-     *Since:* 3.1
-
-gnutls_x509_trust_list_add_trust_mem
-------------------------------------
-
- -- Function: int gnutls_x509_trust_list_add_trust_mem
-          (gnutls_x509_trust_list_t LIST, const gnutls_datum_t * CAS,
-          const gnutls_datum_t * CRLS, gnutls_x509_crt_fmt_t TYPE,
-          unsigned int TL_FLAGS, unsigned int TL_VFLAGS)
-     LIST: The structure of the list
-
-     CAS: - undescribed -
-
-     CRLS: - undescribed -
-
-     TYPE: The format of the certificates
-
-     TL_FLAGS: GNUTLS_TL_*
-
-     TL_VFLAGS: gnutls_certificate_verify_flags if flags specifies
-     GNUTLS_TL_VERIFY_CRL
-
-     This function will add the given certificate authorities to the
-     trusted list.
-
-     *Returns:* The number of added elements is returned.
-
-     *Since:* 3.1
-
 gnutls_x509_trust_list_deinit
 -----------------------------
 
@@ -5344,6 +5274,24 @@ gnutls_ocsp_req_set_nonce
      *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
      otherwise a negative error code is returned.
 
+gnutls_ocsp_resp_check_crt
+--------------------------
+
+ -- Function: int gnutls_ocsp_resp_check_crt (gnutls_ocsp_resp_t RESP,
+          unsigned int INDX, gnutls_x509_crt_t CRT)
+     RESP: should contain a 'gnutls_ocsp_resp_t' structure
+
+     INDX: Specifies response number to get.  Use (0) to get the first
+     one.
+
+     CRT: The certificate to check
+
+     This function will check whether the OCSP response is about the
+     provided certificate.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
+
 gnutls_ocsp_resp_deinit
 -----------------------
 
@@ -5545,8 +5493,8 @@ gnutls_ocsp_resp_get_single
           time_t * REVOCATION_TIME, unsigned int * REVOCATION_REASON)
      RESP: should contain a 'gnutls_ocsp_resp_t' structure
 
-     INDX: Specifies which extension OID to get.  Use (0) to get the
-     first one.
+     INDX: Specifies response number to get.  Use (0) to get the first
+     one.
 
      DIGEST: output variable with 'gnutls_digest_algorithm_t' hash
      algorithm
@@ -5958,7 +5906,7 @@ gnutls_openpgp_crt_export
 
      FORMAT: One of gnutls_openpgp_crt_fmt_t elements.
 
-     OUTPUT_DATA: will contain the key base64 encoded or raw
+     OUTPUT_DATA: will contain the raw or base64 encoded key
 
      OUTPUT_DATA_SIZE: holds the size of output_data (and will be
      replaced by the actual size of parameters)
@@ -5979,15 +5927,12 @@ gnutls_openpgp_crt_get_auth_subkey
 
      KEYID: the struct to save the keyid.
 
-     FLAG: Non (0) indicates that a valid subkey is always returned.
+     FLAG: Non-zero indicates that a valid subkey is always returned.
 
      Returns the 64-bit keyID of the first valid OpenPGP subkey marked
-     for authentication.  If flag is non (0) and no authentication
+     for authentication.  If flag is non-zero and no authentication
      subkey exists, then a valid subkey will be returned even if it is
-     not marked for authentication.  Returns the 64-bit keyID of the
-     first valid OpenPGP subkey marked for authentication.  If flag is
-     non (0) and no authentication subkey exists, then a valid subkey
-     will be returned even if it is not marked for authentication.
+     not marked for authentication.
 
      *Returns:* 'GNUTLS_E_SUCCESS' on success, or an error code.
 
@@ -6461,6 +6406,9 @@ gnutls_openpgp_crt_set_preferred_key_id
      This allows setting a preferred key id for the given certificate.
      This key will be used by functions that involve key handling.
 
+     If the provided 'keyid' is 'NULL' then the master key is set as
+     preferred.
+
      *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
      otherwise a negative error code is returned.
 
@@ -7024,7 +6972,11 @@ gnutls_openpgp_privkey_set_preferred_key_id
      This allows setting a preferred key id for the given certificate.
      This key will be used by functions that involve key handling.
 
-     *Returns:* On success, 0 is returned, or an error code.
+     If the provided 'keyid' is 'NULL' then the master key is set as
+     preferred.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error code is returned.
 
 gnutls_openpgp_set_recv_key_function
 ------------------------------------
@@ -7039,6 +6991,8 @@ gnutls_openpgp_set_recv_key_function
      This callback is only useful in server side, and will be used if
      the peer sent a key fingerprint instead of a full key.
 
+     The retrieved key must be allocated using 'gnutls_malloc()' .
+
 \1f
 File: gnutls.info,  Node: PKCS 12 API,  Next: PKCS 11 API,  Prev: OpenPGP API,  Up: API reference
 
@@ -7711,33 +7665,6 @@ gnutls_pkcs11_obj_list_import_url
 
      *Since:* 2.12.0
 
-gnutls_pkcs11_obj_list_import_url2
-----------------------------------
-
- -- Function: int gnutls_pkcs11_obj_list_import_url2
-          (gnutls_pkcs11_obj_t ** P_LIST, unsigned int * N_LIST, const
-          char * URL, gnutls_pkcs11_obj_attr_t ATTRS, unsigned int
-          FLAGS)
-     P_LIST: An uninitialized object list (may be NULL)
-
-     N_LIST: It will contain the size of the list.
-
-     URL: A PKCS 11 url identifying a set of objects
-
-     ATTRS: Attributes of type 'gnutls_pkcs11_obj_attr_t' that can be
-     used to limit output
-
-     FLAGS: One of GNUTLS_PKCS11_OBJ_* flags
-
-     This function will initialize and set values to an object list by
-     using all objects identified by the PKCS 11 URL. The output is
-     stored in 'p_list' , which will be initialized.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.1
-
 gnutls_pkcs11_privkey_deinit
 ----------------------------
 
@@ -8098,1215 +8025,3 @@ gnutls_x509_crt_list_import_pkcs11
 
      *Since:* 2.12.0
 
-\1f
-File: gnutls.info,  Node: Abstract key API,  Next: Cryptographic API,  Prev: PKCS 11 API,  Up: API reference
-
-E.8 Abstract key API
-====================
-
-The following functions are to be used for abstract key handling.  Their
-prototypes lie in 'gnutls/abstract.h'.
-
-gnutls_certificate_set_key
---------------------------
-
- -- Function: int gnutls_certificate_set_key
-          (gnutls_certificate_credentials_t RES, const char** NAMES, int
-          NAMES_SIZE, gnutls_pcert_st * PCERT_LIST, int PCERT_LIST_SIZE,
-          gnutls_privkey_t KEY)
-     RES: is a 'gnutls_certificate_credentials_t' structure.
-
-     NAMES: is an array of DNS name of the certificate (NULL if none)
-
-     NAMES_SIZE: holds the size of the names list
-
-     PCERT_LIST: contains a certificate list (path) for the specified
-     private key
-
-     PCERT_LIST_SIZE: holds the size of the certificate list
-
-     KEY: is a gnutls_x509_privkey_t key
-
-     This function sets a certificate/private key pair in the
-     gnutls_certificate_credentials_t structure.  This function may be
-     called more than once, in case multiple keys/certificates exist for
-     the server.  For clients that wants to send more than its own end
-     entity certificate (e.g., also an intermediate CA cert) then put
-     the certificate chain in 'pcert_list' .  The 'pcert_list' and 'key'
-     will become part of the credentials structure and must not be
-     deallocated.  They will be automatically deallocated when 'res' is
-     deinitialized.
-
-     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success, or a negative error
-     code.
-
-     *Since:* 3.0
-
-gnutls_certificate_set_retrieve_function2
------------------------------------------
-
- -- Function: void gnutls_certificate_set_retrieve_function2
-          (gnutls_certificate_credentials_t CRED,
-          gnutls_certificate_retrieve_function2 * FUNC)
-     CRED: is a 'gnutls_certificate_credentials_t' structure.
-
-     FUNC: is the callback function
-
-     This function sets a callback to be called in order to retrieve the
-     certificate to be used in the handshake.
-
-     The callback's function prototype is: int
-     (*callback)(gnutls_session_t, const gnutls_datum_t* req_ca_dn, int
-     nreqs, const gnutls_pk_algorithm_t* pk_algos, int pk_algos_length,
-     gnutls_pcert_st** pcert, unsigned int *pcert_length,
-     gnutls_privkey_t * pkey);
-
-     'req_ca_cert' is only used in X.509 certificates.  Contains a list
-     with the CA names that the server considers trusted.  Normally we
-     should send a certificate that is signed by one of these CAs.
-     These names are DER encoded.  To get a more meaningful value use
-     the function 'gnutls_x509_rdn_get()' .
-
-     'pk_algos' contains a list with server's acceptable signature
-     algorithms.  The certificate returned should support the server's
-     given algorithms.
-
-     'pcert' should contain a single certificate and public or a list of
-     them.
-
-     'pcert_length' is the size of the previous list.
-
-     'pkey' is the private key.
-
-     If the callback function is provided then gnutls will call it, in
-     the handshake, after the certificate request message has been
-     received.
-
-     In server side pk_algos and req_ca_dn are NULL.
-
-     The callback function should set the certificate list to be sent,
-     and return 0 on success.  If no certificate was selected then the
-     number of certificates should be set to zero.  The value (-1)
-     indicates error and the handshake will be terminated.
-
-     *Since:* 3.0
-
-gnutls_pcert_deinit
--------------------
-
- -- Function: void gnutls_pcert_deinit (gnutls_pcert_st * PCERT)
-     PCERT: The structure to be deinitialized
-
-     This function will deinitialize a pcert structure.
-
-     *Since:* 3.0
-
-gnutls_pcert_import_openpgp
----------------------------
-
- -- Function: int gnutls_pcert_import_openpgp (gnutls_pcert_st* PCERT,
-          gnutls_openpgp_crt_t CRT, unsigned int FLAGS)
-     PCERT: The pcert structure
-
-     CRT: The raw certificate to be imported
-
-     FLAGS: zero for now
-
-     This convenience function will import the given certificate to a
-     'gnutls_pcert_st' structure.  The structure must be deinitialized
-     afterwards using 'gnutls_pcert_deinit()' ;
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.0
-
-gnutls_pcert_import_openpgp_raw
--------------------------------
-
- -- Function: int gnutls_pcert_import_openpgp_raw (gnutls_pcert_st *
-          PCERT, const gnutls_datum_t* CERT, gnutls_openpgp_crt_fmt_t
-          FORMAT, gnutls_openpgp_keyid_t KEYID, unsigned int FLAGS)
-     PCERT: The pcert structure
-
-     CERT: The raw certificate to be imported
-
-     FORMAT: The format of the certificate
-
-     KEYID: The key ID to use (NULL for the master key)
-
-     FLAGS: zero for now
-
-     This convenience function will import the given certificate to a
-     'gnutls_pcert_st' structure.  The structure must be deinitialized
-     afterwards using 'gnutls_pcert_deinit()' ;
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.0
-
-gnutls_pcert_import_x509
-------------------------
-
- -- Function: int gnutls_pcert_import_x509 (gnutls_pcert_st* PCERT,
-          gnutls_x509_crt_t CRT, unsigned int FLAGS)
-     PCERT: The pcert structure
-
-     CRT: The raw certificate to be imported
-
-     FLAGS: zero for now
-
-     This convenience function will import the given certificate to a
-     'gnutls_pcert_st' structure.  The structure must be deinitialized
-     afterwards using 'gnutls_pcert_deinit()' ;
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.0
-
-gnutls_pcert_import_x509_raw
-----------------------------
-
- -- Function: int gnutls_pcert_import_x509_raw (gnutls_pcert_st * PCERT,
-          const gnutls_datum_t* CERT, gnutls_x509_crt_fmt_t FORMAT,
-          unsigned int FLAGS)
-     PCERT: The pcert structure
-
-     CERT: The raw certificate to be imported
-
-     FORMAT: The format of the certificate
-
-     FLAGS: zero for now
-
-     This convenience function will import the given certificate to a
-     'gnutls_pcert_st' structure.  The structure must be deinitialized
-     afterwards using 'gnutls_pcert_deinit()' ;
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.0
-
-gnutls_pcert_list_import_x509_raw
----------------------------------
-
- -- Function: int gnutls_pcert_list_import_x509_raw (gnutls_pcert_st *
-          PCERTS, unsigned int * PCERT_MAX, const gnutls_datum_t * DATA,
-          gnutls_x509_crt_fmt_t FORMAT, unsigned int FLAGS)
-     PCERTS: The structures to store the parsed certificate.  Must not
-     be initialized.
-
-     PCERT_MAX: Initially must hold the maximum number of certs.  It
-     will be updated with the number of certs available.
-
-     DATA: The certificates.
-
-     FORMAT: One of DER or PEM.
-
-     FLAGS: must be (0) or an OR'd sequence of
-     gnutls_certificate_import_flags.
-
-     This function will convert the given PEM encoded certificate list
-     to the native gnutls_x509_crt_t format.  The output will be stored
-     in 'certs' .  They will be automatically initialized.
-
-     If the Certificate is PEM encoded it should have a header of "X509
-     CERTIFICATE", or "CERTIFICATE".
-
-     *Returns:* the number of certificates read or a negative error
-     value.
-
-     *Since:* 3.0
-
-gnutls_privkey_decrypt_data
----------------------------
-
- -- Function: int gnutls_privkey_decrypt_data (gnutls_privkey_t KEY,
-          unsigned int FLAGS, const gnutls_datum_t * CIPHERTEXT,
-          gnutls_datum_t * PLAINTEXT)
-     KEY: Holds the key
-
-     FLAGS: zero for now
-
-     CIPHERTEXT: holds the data to be decrypted
-
-     PLAINTEXT: will contain the decrypted data, allocated with
-     'gnutls_malloc()'
-
-     This function will decrypt the given data using the algorithm
-     supported by the private key.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_deinit
----------------------
-
- -- Function: void gnutls_privkey_deinit (gnutls_privkey_t KEY)
-     KEY: The structure to be deinitialized
-
-     This function will deinitialize a private key structure.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_get_pk_algorithm
--------------------------------
-
- -- Function: int gnutls_privkey_get_pk_algorithm (gnutls_privkey_t KEY,
-          unsigned int * BITS)
-     KEY: should contain a 'gnutls_privkey_t' structure
-
-     BITS: If set will return the number of bits of the parameters (may
-     be NULL)
-
-     This function will return the public key algorithm of a private key
-     and if possible will return a number of bits that indicates the
-     security parameter of the key.
-
-     *Returns:* a member of the 'gnutls_pk_algorithm_t' enumeration on
-     success, or a negative error code on error.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_get_type
------------------------
-
- -- Function: gnutls_privkey_type_t gnutls_privkey_get_type
-          (gnutls_privkey_t KEY)
-     KEY: should contain a 'gnutls_privkey_t' structure
-
-     This function will return the type of the private key.  This is
-     actually the type of the subsystem used to set this private key.
-
-     *Returns:* a member of the 'gnutls_privkey_type_t' enumeration on
-     success, or a negative error code on error.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_import_ext
--------------------------
-
- -- Function: int gnutls_privkey_import_ext (gnutls_privkey_t PKEY,
-          gnutls_pk_algorithm_t PK, void* USERDATA,
-          gnutls_privkey_sign_func SIGN_FUNC,
-          gnutls_privkey_decrypt_func DECRYPT_FUNC, unsigned int FLAGS)
-     PKEY: The private key
-
-     PK: The public key algorithm
-
-     USERDATA: private data to be provided to the callbacks
-
-     SIGN_FUNC: callback for signature operations
-
-     DECRYPT_FUNC: callback for decryption operations
-
-     FLAGS: Flags for the import
-
-     This function will associate the given callbacks with the
-     'gnutls_privkey_t' structure.  At least one of the two callbacks
-     must be non-null.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.0
-
-gnutls_privkey_import_openpgp
------------------------------
-
- -- Function: int gnutls_privkey_import_openpgp (gnutls_privkey_t PKEY,
-          gnutls_openpgp_privkey_t KEY, unsigned int FLAGS)
-     PKEY: The private key
-
-     KEY: The private key to be imported
-
-     FLAGS: Flags for the import
-
-     This function will import the given private key to the abstract
-     'gnutls_privkey_t' structure.
-
-     The 'gnutls_openpgp_privkey_t' object must not be deallocated
-     during the lifetime of this structure.  The subkey set as preferred
-     will be used, or the master key otherwise.
-
-     'flags' might be zero or one of
-     'GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE' and
-     'GNUTLS_PRIVKEY_IMPORT_COPY' .
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_import_pkcs11
-----------------------------
-
- -- Function: int gnutls_privkey_import_pkcs11 (gnutls_privkey_t PKEY,
-          gnutls_pkcs11_privkey_t KEY, unsigned int FLAGS)
-     PKEY: The private key
-
-     KEY: The private key to be imported
-
-     FLAGS: Flags for the import
-
-     This function will import the given private key to the abstract
-     'gnutls_privkey_t' structure.
-
-     The 'gnutls_pkcs11_privkey_t' object must not be deallocated during
-     the lifetime of this structure.
-
-     'flags' might be zero or one of
-     'GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE' and
-     'GNUTLS_PRIVKEY_IMPORT_COPY' .
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_import_x509
---------------------------
-
- -- Function: int gnutls_privkey_import_x509 (gnutls_privkey_t PKEY,
-          gnutls_x509_privkey_t KEY, unsigned int FLAGS)
-     PKEY: The private key
-
-     KEY: The private key to be imported
-
-     FLAGS: Flags for the import
-
-     This function will import the given private key to the abstract
-     'gnutls_privkey_t' structure.
-
-     The 'gnutls_x509_privkey_t' object must not be deallocated during
-     the lifetime of this structure.
-
-     'flags' might be zero or one of
-     'GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE' and
-     'GNUTLS_PRIVKEY_IMPORT_COPY' .
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_init
--------------------
-
- -- Function: int gnutls_privkey_init (gnutls_privkey_t * KEY)
-     KEY: The structure to be initialized
-
-     This function will initialize an private key structure.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_sign_data
-------------------------
-
- -- Function: int gnutls_privkey_sign_data (gnutls_privkey_t SIGNER,
-          gnutls_digest_algorithm_t HASH, unsigned int FLAGS, const
-          gnutls_datum_t * DATA, gnutls_datum_t * SIGNATURE)
-     SIGNER: Holds the key
-
-     HASH: should be a digest algorithm
-
-     FLAGS: should be 0 for now
-
-     DATA: holds the data to be signed
-
-     SIGNATURE: will contain the signature allocate with
-     'gnutls_malloc()'
-
-     This function will sign the given data using a signature algorithm
-     supported by the private key.  Signature algorithms are always used
-     together with a hash functions.  Different hash functions may be
-     used for the RSA algorithm, but only the SHA family for the DSA
-     keys.
-
-     Use 'gnutls_pubkey_get_preferred_hash_algorithm()' to determine the
-     hash algorithm.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_privkey_sign_hash
-------------------------
-
- -- Function: int gnutls_privkey_sign_hash (gnutls_privkey_t SIGNER,
-          gnutls_digest_algorithm_t HASH_ALGO, unsigned int FLAGS, const
-          gnutls_datum_t * HASH_DATA, gnutls_datum_t * SIGNATURE)
-     SIGNER: Holds the signer's key
-
-     HASH_ALGO: The hash algorithm used
-
-     FLAGS: zero for now
-
-     HASH_DATA: holds the data to be signed
-
-     SIGNATURE: will contain newly allocated signature
-
-     This function will sign the given hashed data using a signature
-     algorithm supported by the private key.  Signature algorithms are
-     always used together with a hash functions.  Different hash
-     functions may be used for the RSA algorithm, but only SHA-XXX for
-     the DSA keys.
-
-     Use 'gnutls_pubkey_get_preferred_hash_algorithm()' to determine the
-     hash algorithm.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_deinit
---------------------
-
- -- Function: void gnutls_pubkey_deinit (gnutls_pubkey_t KEY)
-     KEY: The structure to be deinitialized
-
-     This function will deinitialize a public key structure.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_encrypt_data
---------------------------
-
- -- Function: int gnutls_pubkey_encrypt_data (gnutls_pubkey_t KEY,
-          unsigned int FLAGS, const gnutls_datum_t * PLAINTEXT,
-          gnutls_datum_t * CIPHERTEXT)
-     KEY: Holds the public key
-
-     FLAGS: should be 0 for now
-
-     PLAINTEXT: The data to be encrypted
-
-     CIPHERTEXT: contains the encrypted data
-
-     This function will encrypt the given data, using the public key.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.0
-
-gnutls_pubkey_export
---------------------
-
- -- Function: int gnutls_pubkey_export (gnutls_pubkey_t KEY,
-          gnutls_x509_crt_fmt_t FORMAT, void * OUTPUT_DATA, size_t *
-          OUTPUT_DATA_SIZE)
-     KEY: Holds the certificate
-
-     FORMAT: the format of output params.  One of PEM or DER.
-
-     OUTPUT_DATA: will contain a certificate PEM or DER encoded
-
-     OUTPUT_DATA_SIZE: holds the size of output_data (and will be
-     replaced by the actual size of parameters)
-
-     This function will export the public key to DER or PEM format.  The
-     contents of the exported data is the SubjectPublicKeyInfo X.509
-     structure.
-
-     If the buffer provided is not long enough to hold the output, then
-     *output_data_size is updated and 'GNUTLS_E_SHORT_MEMORY_BUFFER'
-     will be returned.
-
-     If the structure is PEM encoded, it will have a header of "BEGIN
-     CERTIFICATE".
-
-     *Returns:* In case of failure a negative error code will be
-     returned, and 0 on success.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_get_key_id
-------------------------
-
- -- Function: int gnutls_pubkey_get_key_id (gnutls_pubkey_t KEY,
-          unsigned int FLAGS, unsigned char * OUTPUT_DATA, size_t *
-          OUTPUT_DATA_SIZE)
-     KEY: Holds the public key
-
-     FLAGS: should be 0 for now
-
-     OUTPUT_DATA: will contain the key ID
-
-     OUTPUT_DATA_SIZE: holds the size of output_data (and will be
-     replaced by the actual size of parameters)
-
-     This function will return a unique ID the depends on the public key
-     parameters.  This ID can be used in checking whether a certificate
-     corresponds to the given public key.
-
-     If the buffer provided is not long enough to hold the output, then
-     *output_data_size is updated and 'GNUTLS_E_SHORT_MEMORY_BUFFER'
-     will be returned.  The output will normally be a SHA-1 hash output,
-     which is 20 bytes.
-
-     *Returns:* In case of failure a negative error code will be
-     returned, and 0 on success.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_get_key_usage
----------------------------
-
- -- Function: int gnutls_pubkey_get_key_usage (gnutls_pubkey_t KEY,
-          unsigned int * USAGE)
-     KEY: should contain a 'gnutls_pubkey_t' structure
-
-     USAGE: If set will return the number of bits of the parameters (may
-     be NULL)
-
-     This function will return the key usage of the public key.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_get_openpgp_key_id
---------------------------------
-
- -- Function: int gnutls_pubkey_get_openpgp_key_id (gnutls_pubkey_t KEY,
-          unsigned int FLAGS, unsigned char * OUTPUT_DATA, size_t *
-          OUTPUT_DATA_SIZE, unsigned int * SUBKEY)
-     KEY: Holds the public key
-
-     FLAGS: should be 0 for now
-
-     OUTPUT_DATA: will contain the key ID
-
-     OUTPUT_DATA_SIZE: holds the size of output_data (and will be
-     replaced by the actual size of parameters)
-
-     SUBKEY: Will be non zero if the key ID corresponds to a subkey
-
-     This function will return a unique ID the depends on the public key
-     parameters.  This ID can be used in checking whether a certificate
-     corresponds to the given public key.
-
-     If the buffer provided is not long enough to hold the output, then
-     *output_data_size is updated and 'GNUTLS_E_SHORT_MEMORY_BUFFER'
-     will be returned.  The output will normally be a SHA-1 hash output,
-     which is 20 bytes.
-
-     *Returns:* In case of failure a negative error code will be
-     returned, and 0 on success.
-
-     *Since:* 3.0
-
-gnutls_pubkey_get_pk_algorithm
-------------------------------
-
- -- Function: int gnutls_pubkey_get_pk_algorithm (gnutls_pubkey_t KEY,
-          unsigned int * BITS)
-     KEY: should contain a 'gnutls_pubkey_t' structure
-
-     BITS: If set will return the number of bits of the parameters (may
-     be NULL)
-
-     This function will return the public key algorithm of a public key
-     and if possible will return a number of bits that indicates the
-     security parameter of the key.
-
-     *Returns:* a member of the 'gnutls_pk_algorithm_t' enumeration on
-     success, or a negative error code on error.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_get_pk_dsa_raw
-----------------------------
-
- -- Function: int gnutls_pubkey_get_pk_dsa_raw (gnutls_pubkey_t KEY,
-          gnutls_datum_t * P, gnutls_datum_t * Q, gnutls_datum_t * G,
-          gnutls_datum_t * Y)
-     KEY: Holds the public key
-
-     P: will hold the p
-
-     Q: will hold the q
-
-     G: will hold the g
-
-     Y: will hold the y
-
-     This function will export the DSA public key's parameters found in
-     the given certificate.  The new parameters will be allocated using
-     'gnutls_malloc()' and will be stored in the appropriate datum.
-
-     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
-     error code.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_get_pk_ecc_raw
-----------------------------
-
- -- Function: int gnutls_pubkey_get_pk_ecc_raw (gnutls_pubkey_t KEY,
-          gnutls_ecc_curve_t * CURVE, gnutls_datum_t * X, gnutls_datum_t
-          * Y)
-     KEY: Holds the public key
-
-     CURVE: will hold the curve
-
-     X: will hold x
-
-     Y: will hold y
-
-     This function will export the ECC public key's parameters found in
-     the given certificate.  The new parameters will be allocated using
-     'gnutls_malloc()' and will be stored in the appropriate datum.
-
-     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
-     error code.
-
-     *Since:* 3.0
-
-gnutls_pubkey_get_pk_ecc_x962
------------------------------
-
- -- Function: int gnutls_pubkey_get_pk_ecc_x962 (gnutls_pubkey_t KEY,
-          gnutls_datum_t* PARAMETERS, gnutls_datum_t * ECPOINT)
-     KEY: Holds the public key
-
-     PARAMETERS: DER encoding of an ANSI X9.62 parameters
-
-     ECPOINT: DER encoding of ANSI X9.62 ECPoint
-
-     This function will export the ECC public key's parameters found in
-     the given certificate.  The new parameters will be allocated using
-     'gnutls_malloc()' and will be stored in the appropriate datum.
-
-     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
-     error code.
-
-     *Since:* 3.0
-
-gnutls_pubkey_get_pk_rsa_raw
-----------------------------
-
- -- Function: int gnutls_pubkey_get_pk_rsa_raw (gnutls_pubkey_t KEY,
-          gnutls_datum_t * M, gnutls_datum_t * E)
-     KEY: Holds the certificate
-
-     M: will hold the modulus
-
-     E: will hold the public exponent
-
-     This function will export the RSA public key's parameters found in
-     the given structure.  The new parameters will be allocated using
-     'gnutls_malloc()' and will be stored in the appropriate datum.
-
-     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
-     error code.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_get_preferred_hash_algorithm
-------------------------------------------
-
- -- Function: int gnutls_pubkey_get_preferred_hash_algorithm
-          (gnutls_pubkey_t KEY, gnutls_digest_algorithm_t * HASH,
-          unsigned int * MAND)
-     KEY: Holds the certificate
-
-     HASH: The result of the call with the hash algorithm used for
-     signature
-
-     MAND: If non zero it means that the algorithm MUST use this hash.
-     May be NULL.
-
-     This function will read the certifcate and return the appropriate
-     digest algorithm to use for signing with this certificate.  Some
-     certificates (i.e.  DSA might not be able to sign without the
-     preferred algorithm).
-
-     *Returns:* the 0 if the hash algorithm is found.  A negative error
-     code is returned on error.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_get_verify_algorithm
-----------------------------------
-
- -- Function: int gnutls_pubkey_get_verify_algorithm (gnutls_pubkey_t
-          KEY, const gnutls_datum_t * SIGNATURE,
-          gnutls_digest_algorithm_t * HASH)
-     KEY: Holds the certificate
-
-     SIGNATURE: contains the signature
-
-     HASH: The result of the call with the hash algorithm used for
-     signature
-
-     This function will read the certifcate and the signed data to
-     determine the hash algorithm used to generate the signature.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_import
---------------------
-
- -- Function: int gnutls_pubkey_import (gnutls_pubkey_t KEY, const
-          gnutls_datum_t * DATA, gnutls_x509_crt_fmt_t FORMAT)
-     KEY: The structure to store the parsed public key.
-
-     DATA: The DER or PEM encoded certificate.
-
-     FORMAT: One of DER or PEM
-
-     This function will import the provided public key in a
-     SubjectPublicKeyInfo X.509 structure to a native 'gnutls_pubkey_t'
-     structure.  The output will be stored in 'key' .  If the public key
-     is PEM encoded it should have a header of "PUBLIC KEY".
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_import_dsa_raw
-----------------------------
-
- -- Function: int gnutls_pubkey_import_dsa_raw (gnutls_pubkey_t KEY,
-          const gnutls_datum_t * P, const gnutls_datum_t * Q, const
-          gnutls_datum_t * G, const gnutls_datum_t * Y)
-     KEY: The structure to store the parsed key
-
-     P: holds the p
-
-     Q: holds the q
-
-     G: holds the g
-
-     Y: holds the y
-
-     This function will convert the given DSA raw parameters to the
-     native 'gnutls_pubkey_t' format.  The output will be stored in
-     'key' .
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_import_ecc_raw
-----------------------------
-
- -- Function: int gnutls_pubkey_import_ecc_raw (gnutls_pubkey_t KEY,
-          gnutls_ecc_curve_t CURVE, const gnutls_datum_t * X, const
-          gnutls_datum_t * Y)
-     KEY: The structure to store the parsed key
-
-     CURVE: holds the curve
-
-     X: holds the x
-
-     Y: holds the y
-
-     This function will convert the given elliptic curve parameters to a
-     'gnutls_pubkey_t' .  The output will be stored in 'key' .
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.0
-
-gnutls_pubkey_import_ecc_x962
------------------------------
-
- -- Function: int gnutls_pubkey_import_ecc_x962 (gnutls_pubkey_t KEY,
-          const gnutls_datum_t * PARAMETERS, const gnutls_datum_t *
-          ECPOINT)
-     KEY: The structure to store the parsed key
-
-     PARAMETERS: DER encoding of an ANSI X9.62 parameters
-
-     ECPOINT: DER encoding of ANSI X9.62 ECPoint
-
-     This function will convert the given elliptic curve parameters to a
-     'gnutls_pubkey_t' .  The output will be stored in 'key' .
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 3.0
-
-gnutls_pubkey_import_openpgp
-----------------------------
-
- -- Function: int gnutls_pubkey_import_openpgp (gnutls_pubkey_t KEY,
-          gnutls_openpgp_crt_t CRT, unsigned int FLAGS)
-     KEY: The public key
-
-     CRT: The certificate to be imported
-
-     FLAGS: should be zero
-
-     Imports a public key from an openpgp key.  This function will
-     import the given public key to the abstract 'gnutls_pubkey_t'
-     structure.  The subkey set as preferred will be imported or the
-     master key otherwise.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_import_pkcs11
----------------------------
-
- -- Function: int gnutls_pubkey_import_pkcs11 (gnutls_pubkey_t KEY,
-          gnutls_pkcs11_obj_t OBJ, unsigned int FLAGS)
-     KEY: The public key
-
-     OBJ: The parameters to be imported
-
-     FLAGS: should be zero
-
-     Imports a public key from a pkcs11 key.  This function will import
-     the given public key to the abstract 'gnutls_pubkey_t' structure.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_import_pkcs11_url
--------------------------------
-
- -- Function: int gnutls_pubkey_import_pkcs11_url (gnutls_pubkey_t KEY,
-          const char * URL, unsigned int FLAGS)
-     KEY: A key of type 'gnutls_pubkey_t'
-
-     URL: A PKCS 11 url
-
-     FLAGS: One of GNUTLS_PKCS11_OBJ_* flags
-
-     This function will import a PKCS 11 certificate to a
-     'gnutls_pubkey_t' structure.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_import_privkey
-----------------------------
-
- -- Function: int gnutls_pubkey_import_privkey (gnutls_pubkey_t KEY,
-          gnutls_privkey_t PKEY, unsigned int USAGE, unsigned int FLAGS)
-     KEY: The public key
-
-     PKEY: The private key
-
-     USAGE: GNUTLS_KEY_* key usage flags.
-
-     FLAGS: should be zero
-
-     Imports the public key from a private.  This function will import
-     the given public key to the abstract 'gnutls_pubkey_t' structure.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_import_rsa_raw
-----------------------------
-
- -- Function: int gnutls_pubkey_import_rsa_raw (gnutls_pubkey_t KEY,
-          const gnutls_datum_t * M, const gnutls_datum_t * E)
-     KEY: Is a structure will hold the parameters
-
-     M: holds the modulus
-
-     E: holds the public exponent
-
-     This function will replace the parameters in the given structure.
-     The new parameters should be stored in the appropriate
-     gnutls_datum.
-
-     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an negative error
-     code.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_import_x509
--------------------------
-
- -- Function: int gnutls_pubkey_import_x509 (gnutls_pubkey_t KEY,
-          gnutls_x509_crt_t CRT, unsigned int FLAGS)
-     KEY: The public key
-
-     CRT: The certificate to be imported
-
-     FLAGS: should be zero
-
-     This function will import the given public key to the abstract
-     'gnutls_pubkey_t' structure.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_init
-------------------
-
- -- Function: int gnutls_pubkey_init (gnutls_pubkey_t * KEY)
-     KEY: The structure to be initialized
-
-     This function will initialize an public key structure.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_set_key_usage
----------------------------
-
- -- Function: int gnutls_pubkey_set_key_usage (gnutls_pubkey_t KEY,
-          unsigned int USAGE)
-     KEY: a certificate of type 'gnutls_x509_crt_t'
-
-     USAGE: an ORed sequence of the GNUTLS_KEY_* elements.
-
-     This function will set the key usage flags of the public key.  This
-     is only useful if the key is to be exported to a certificate or
-     certificate request.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_verify_data
--------------------------
-
- -- Function: int gnutls_pubkey_verify_data (gnutls_pubkey_t PUBKEY,
-          unsigned int FLAGS, const gnutls_datum_t * DATA, const
-          gnutls_datum_t * SIGNATURE)
-     PUBKEY: Holds the public key
-
-     FLAGS: should be 0 for now
-
-     DATA: holds the signed data
-
-     SIGNATURE: contains the signature
-
-     This function will verify the given signed data, using the
-     parameters from the certificate.
-
-     *Returns:* In case of a verification failure
-     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
-     code on success.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_verify_data2
---------------------------
-
- -- Function: int gnutls_pubkey_verify_data2 (gnutls_pubkey_t PUBKEY,
-          gnutls_sign_algorithm_t ALGO, unsigned int FLAGS, const
-          gnutls_datum_t * DATA, const gnutls_datum_t * SIGNATURE)
-     PUBKEY: Holds the public key
-
-     ALGO: The signature algorithm used
-
-     FLAGS: should be 0 for now
-
-     DATA: holds the signed data
-
-     SIGNATURE: contains the signature
-
-     This function will verify the given signed data, using the
-     parameters from the certificate.
-
-     *Returns:* In case of a verification failure
-     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
-     code on success.
-
-     *Since:* 3.0
-
-gnutls_pubkey_verify_hash
--------------------------
-
- -- Function: int gnutls_pubkey_verify_hash (gnutls_pubkey_t KEY,
-          unsigned int FLAGS, const gnutls_datum_t * HASH, const
-          gnutls_datum_t * SIGNATURE)
-     KEY: Holds the public key
-
-     FLAGS: should be 0 for now
-
-     HASH: holds the hash digest to be verified
-
-     SIGNATURE: contains the signature
-
-     This function will verify the given signed digest, using the
-     parameters from the public key.  Use 'gnutls_pubkey_verify_hash2()'
-     instead of this function.
-
-     *Returns:* In case of a verification failure
-     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
-     code on success.
-
-     *Since:* 2.12.0
-
-gnutls_pubkey_verify_hash2
---------------------------
-
- -- Function: int gnutls_pubkey_verify_hash2 (gnutls_pubkey_t KEY,
-          gnutls_sign_algorithm_t ALGO, unsigned int FLAGS, const
-          gnutls_datum_t * HASH, const gnutls_datum_t * SIGNATURE)
-     KEY: Holds the public key
-
-     ALGO: The signature algorithm used
-
-     FLAGS: should be 0 for now
-
-     HASH: holds the hash digest to be verified
-
-     SIGNATURE: contains the signature
-
-     This function will verify the given signed digest, using the
-     parameters from the public key.
-
-     *Returns:* In case of a verification failure
-     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
-     code on success.
-
-     *Since:* 3.0
-
-gnutls_x509_crl_privkey_sign
-----------------------------
-
- -- Function: int gnutls_x509_crl_privkey_sign (gnutls_x509_crl_t CRL,
-          gnutls_x509_crt_t ISSUER, gnutls_privkey_t ISSUER_KEY,
-          gnutls_digest_algorithm_t DIG, unsigned int FLAGS)
-     CRL: should contain a gnutls_x509_crl_t structure
-
-     ISSUER: is the certificate of the certificate issuer
-
-     ISSUER_KEY: holds the issuer's private key
-
-     DIG: The message digest to use.  GNUTLS_DIG_SHA1 is the safe choice
-     unless you know what you're doing.
-
-     FLAGS: must be 0
-
-     This function will sign the CRL with the issuer's private key, and
-     will copy the issuer's information into the CRL.
-
-     This must be the last step in a certificate CRL since all the
-     previously set parameters are now signed.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     Since 2.12.0
-
-gnutls_x509_crq_privkey_sign
-----------------------------
-
- -- Function: int gnutls_x509_crq_privkey_sign (gnutls_x509_crq_t CRQ,
-          gnutls_privkey_t KEY, gnutls_digest_algorithm_t DIG, unsigned
-          int FLAGS)
-     CRQ: should contain a 'gnutls_x509_crq_t' structure
-
-     KEY: holds a private key
-
-     DIG: The message digest to use, i.e., 'GNUTLS_DIG_SHA1'
-
-     FLAGS: must be 0
-
-     This function will sign the certificate request with a private key.
-     This must be the same key as the one used in
-     'gnutls_x509_crt_set_key()' since a certificate request is self
-     signed.
-
-     This must be the last step in a certificate request generation
-     since all the previously set parameters are now signed.
-
-     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
-     error code.  'GNUTLS_E_ASN1_VALUE_NOT_FOUND' is returned if you
-     didn't set all information in the certificate request (e.g., the
-     version using 'gnutls_x509_crq_set_version()' ).
-
-     *Since:* 2.12.0
-
-gnutls_x509_crq_set_pubkey
---------------------------
-
- -- Function: int gnutls_x509_crq_set_pubkey (gnutls_x509_crq_t CRQ,
-          gnutls_pubkey_t KEY)
-     CRQ: should contain a 'gnutls_x509_crq_t' structure
-
-     KEY: holds a public key
-
-     This function will set the public parameters from the given public
-     key to the request.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
-gnutls_x509_crt_privkey_sign
-----------------------------
-
- -- Function: int gnutls_x509_crt_privkey_sign (gnutls_x509_crt_t CRT,
-          gnutls_x509_crt_t ISSUER, gnutls_privkey_t ISSUER_KEY,
-          gnutls_digest_algorithm_t DIG, unsigned int FLAGS)
-     CRT: a certificate of type 'gnutls_x509_crt_t'
-
-     ISSUER: is the certificate of the certificate issuer
-
-     ISSUER_KEY: holds the issuer's private key
-
-     DIG: The message digest to use, 'GNUTLS_DIG_SHA1' is a safe choice
-
-     FLAGS: must be 0
-
-     This function will sign the certificate with the issuer's private
-     key, and will copy the issuer's information into the certificate.
-
-     This must be the last step in a certificate generation since all
-     the previously set parameters are now signed.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-gnutls_x509_crt_set_pubkey
---------------------------
-
- -- Function: int gnutls_x509_crt_set_pubkey (gnutls_x509_crt_t CRT,
-          gnutls_pubkey_t KEY)
-     CRT: should contain a 'gnutls_x509_crt_t' structure
-
-     KEY: holds a public key
-
-     This function will set the public parameters from the given public
-     key to the request.
-
-     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
-     otherwise a negative error value.
-
-     *Since:* 2.12.0
-
index 6edccf2..e456486 100644 (file)
@@ -1,7 +1,8 @@
 This is gnutls.info, produced by makeinfo version 4.13.90 from
 gnutls.texi.
 
-This manual is last updated 10 May 2012 for version 3.0.21 of GnuTLS.
+This manual is last updated 2 September 2012 for version 3.0.30 of
+GnuTLS.
 
 Copyright (C) 2001-2012 Free Software Foundation, Inc.
 
@@ -27,6 +28,1222 @@ START-INFO-DIR-ENTRY
 END-INFO-DIR-ENTRY
 
 \1f
+File: gnutls.info,  Node: Abstract key API,  Next: Cryptographic API,  Prev: PKCS 11 API,  Up: API reference
+
+E.8 Abstract key API
+====================
+
+The following functions are to be used for abstract key handling.  Their
+prototypes lie in 'gnutls/abstract.h'.
+
+gnutls_certificate_set_key
+--------------------------
+
+ -- Function: int gnutls_certificate_set_key
+          (gnutls_certificate_credentials_t RES, const char** NAMES, int
+          NAMES_SIZE, gnutls_pcert_st * PCERT_LIST, int PCERT_LIST_SIZE,
+          gnutls_privkey_t KEY)
+     RES: is a 'gnutls_certificate_credentials_t' structure.
+
+     NAMES: is an array of DNS name of the certificate (NULL if none)
+
+     NAMES_SIZE: holds the size of the names list
+
+     PCERT_LIST: contains a certificate list (path) for the specified
+     private key
+
+     PCERT_LIST_SIZE: holds the size of the certificate list
+
+     KEY: is a gnutls_x509_privkey_t key
+
+     This function sets a certificate/private key pair in the
+     gnutls_certificate_credentials_t structure.  This function may be
+     called more than once, in case multiple keys/certificates exist for
+     the server.  For clients that wants to send more than its own end
+     entity certificate (e.g., also an intermediate CA cert) then put
+     the certificate chain in 'pcert_list' .  The 'pcert_list' and 'key'
+     will become part of the credentials structure and must not be
+     deallocated.  They will be automatically deallocated when 'res' is
+     deinitialized.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' (0) on success, or a negative error
+     code.
+
+     *Since:* 3.0
+
+gnutls_certificate_set_retrieve_function2
+-----------------------------------------
+
+ -- Function: void gnutls_certificate_set_retrieve_function2
+          (gnutls_certificate_credentials_t CRED,
+          gnutls_certificate_retrieve_function2 * FUNC)
+     CRED: is a 'gnutls_certificate_credentials_t' structure.
+
+     FUNC: is the callback function
+
+     This function sets a callback to be called in order to retrieve the
+     certificate to be used in the handshake.
+
+     The callback's function prototype is: int
+     (*callback)(gnutls_session_t, const gnutls_datum_t* req_ca_dn, int
+     nreqs, const gnutls_pk_algorithm_t* pk_algos, int pk_algos_length,
+     gnutls_pcert_st** pcert, unsigned int *pcert_length,
+     gnutls_privkey_t * pkey);
+
+     'req_ca_cert' is only used in X.509 certificates.  Contains a list
+     with the CA names that the server considers trusted.  Normally we
+     should send a certificate that is signed by one of these CAs.
+     These names are DER encoded.  To get a more meaningful value use
+     the function 'gnutls_x509_rdn_get()' .
+
+     'pk_algos' contains a list with server's acceptable signature
+     algorithms.  The certificate returned should support the server's
+     given algorithms.
+
+     'pcert' should contain a single certificate and public or a list of
+     them.
+
+     'pcert_length' is the size of the previous list.
+
+     'pkey' is the private key.
+
+     If the callback function is provided then gnutls will call it, in
+     the handshake, after the certificate request message has been
+     received.
+
+     In server side pk_algos and req_ca_dn are NULL.
+
+     The callback function should set the certificate list to be sent,
+     and return 0 on success.  If no certificate was selected then the
+     number of certificates should be set to zero.  The value (-1)
+     indicates error and the handshake will be terminated.
+
+     *Since:* 3.0
+
+gnutls_pcert_deinit
+-------------------
+
+ -- Function: void gnutls_pcert_deinit (gnutls_pcert_st * PCERT)
+     PCERT: The structure to be deinitialized
+
+     This function will deinitialize a pcert structure.
+
+     *Since:* 3.0
+
+gnutls_pcert_import_openpgp
+---------------------------
+
+ -- Function: int gnutls_pcert_import_openpgp (gnutls_pcert_st* PCERT,
+          gnutls_openpgp_crt_t CRT, unsigned int FLAGS)
+     PCERT: The pcert structure
+
+     CRT: The raw certificate to be imported
+
+     FLAGS: zero for now
+
+     This convenience function will import the given certificate to a
+     'gnutls_pcert_st' structure.  The structure must be deinitialized
+     afterwards using 'gnutls_pcert_deinit()' ;
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_pcert_import_openpgp_raw
+-------------------------------
+
+ -- Function: int gnutls_pcert_import_openpgp_raw (gnutls_pcert_st *
+          PCERT, const gnutls_datum_t* CERT, gnutls_openpgp_crt_fmt_t
+          FORMAT, gnutls_openpgp_keyid_t KEYID, unsigned int FLAGS)
+     PCERT: The pcert structure
+
+     CERT: The raw certificate to be imported
+
+     FORMAT: The format of the certificate
+
+     KEYID: The key ID to use (NULL for the master key)
+
+     FLAGS: zero for now
+
+     This convenience function will import the given certificate to a
+     'gnutls_pcert_st' structure.  The structure must be deinitialized
+     afterwards using 'gnutls_pcert_deinit()' ;
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_pcert_import_x509
+------------------------
+
+ -- Function: int gnutls_pcert_import_x509 (gnutls_pcert_st* PCERT,
+          gnutls_x509_crt_t CRT, unsigned int FLAGS)
+     PCERT: The pcert structure
+
+     CRT: The raw certificate to be imported
+
+     FLAGS: zero for now
+
+     This convenience function will import the given certificate to a
+     'gnutls_pcert_st' structure.  The structure must be deinitialized
+     afterwards using 'gnutls_pcert_deinit()' ;
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_pcert_import_x509_raw
+----------------------------
+
+ -- Function: int gnutls_pcert_import_x509_raw (gnutls_pcert_st * PCERT,
+          const gnutls_datum_t* CERT, gnutls_x509_crt_fmt_t FORMAT,
+          unsigned int FLAGS)
+     PCERT: The pcert structure
+
+     CERT: The raw certificate to be imported
+
+     FORMAT: The format of the certificate
+
+     FLAGS: zero for now
+
+     This convenience function will import the given certificate to a
+     'gnutls_pcert_st' structure.  The structure must be deinitialized
+     afterwards using 'gnutls_pcert_deinit()' ;
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_pcert_list_import_x509_raw
+---------------------------------
+
+ -- Function: int gnutls_pcert_list_import_x509_raw (gnutls_pcert_st *
+          PCERTS, unsigned int * PCERT_MAX, const gnutls_datum_t * DATA,
+          gnutls_x509_crt_fmt_t FORMAT, unsigned int FLAGS)
+     PCERTS: The structures to store the parsed certificate.  Must not
+     be initialized.
+
+     PCERT_MAX: Initially must hold the maximum number of certs.  It
+     will be updated with the number of certs available.
+
+     DATA: The certificates.
+
+     FORMAT: One of DER or PEM.
+
+     FLAGS: must be (0) or an OR'd sequence of
+     gnutls_certificate_import_flags.
+
+     This function will convert the given PEM encoded certificate list
+     to the native gnutls_x509_crt_t format.  The output will be stored
+     in 'certs' .  They will be automatically initialized.
+
+     If the Certificate is PEM encoded it should have a header of "X509
+     CERTIFICATE", or "CERTIFICATE".
+
+     *Returns:* the number of certificates read or a negative error
+     value.
+
+     *Since:* 3.0
+
+gnutls_privkey_decrypt_data
+---------------------------
+
+ -- Function: int gnutls_privkey_decrypt_data (gnutls_privkey_t KEY,
+          unsigned int FLAGS, const gnutls_datum_t * CIPHERTEXT,
+          gnutls_datum_t * PLAINTEXT)
+     KEY: Holds the key
+
+     FLAGS: zero for now
+
+     CIPHERTEXT: holds the data to be decrypted
+
+     PLAINTEXT: will contain the decrypted data, allocated with
+     'gnutls_malloc()'
+
+     This function will decrypt the given data using the algorithm
+     supported by the private key.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_deinit
+---------------------
+
+ -- Function: void gnutls_privkey_deinit (gnutls_privkey_t KEY)
+     KEY: The structure to be deinitialized
+
+     This function will deinitialize a private key structure.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_get_pk_algorithm
+-------------------------------
+
+ -- Function: int gnutls_privkey_get_pk_algorithm (gnutls_privkey_t KEY,
+          unsigned int * BITS)
+     KEY: should contain a 'gnutls_privkey_t' structure
+
+     BITS: If set will return the number of bits of the parameters (may
+     be NULL)
+
+     This function will return the public key algorithm of a private key
+     and if possible will return a number of bits that indicates the
+     security parameter of the key.
+
+     *Returns:* a member of the 'gnutls_pk_algorithm_t' enumeration on
+     success, or a negative error code on error.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_get_type
+-----------------------
+
+ -- Function: gnutls_privkey_type_t gnutls_privkey_get_type
+          (gnutls_privkey_t KEY)
+     KEY: should contain a 'gnutls_privkey_t' structure
+
+     This function will return the type of the private key.  This is
+     actually the type of the subsystem used to set this private key.
+
+     *Returns:* a member of the 'gnutls_privkey_type_t' enumeration on
+     success, or a negative error code on error.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_import_ext
+-------------------------
+
+ -- Function: int gnutls_privkey_import_ext (gnutls_privkey_t PKEY,
+          gnutls_pk_algorithm_t PK, void* USERDATA,
+          gnutls_privkey_sign_func SIGN_FUNC,
+          gnutls_privkey_decrypt_func DECRYPT_FUNC, unsigned int FLAGS)
+     PKEY: The private key
+
+     PK: The public key algorithm
+
+     USERDATA: private data to be provided to the callbacks
+
+     SIGN_FUNC: callback for signature operations
+
+     DECRYPT_FUNC: callback for decryption operations
+
+     FLAGS: Flags for the import
+
+     This function will associate the given callbacks with the
+     'gnutls_privkey_t' structure.  At least one of the two callbacks
+     must be non-null.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_privkey_import_openpgp
+-----------------------------
+
+ -- Function: int gnutls_privkey_import_openpgp (gnutls_privkey_t PKEY,
+          gnutls_openpgp_privkey_t KEY, unsigned int FLAGS)
+     PKEY: The private key
+
+     KEY: The private key to be imported
+
+     FLAGS: Flags for the import
+
+     This function will import the given private key to the abstract
+     'gnutls_privkey_t' structure.
+
+     The 'gnutls_openpgp_privkey_t' object must not be deallocated
+     during the lifetime of this structure.  The subkey set as preferred
+     will be used, or the master key otherwise.
+
+     'flags' might be zero or one of
+     'GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE' and
+     'GNUTLS_PRIVKEY_IMPORT_COPY' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_import_pkcs11
+----------------------------
+
+ -- Function: int gnutls_privkey_import_pkcs11 (gnutls_privkey_t PKEY,
+          gnutls_pkcs11_privkey_t KEY, unsigned int FLAGS)
+     PKEY: The private key
+
+     KEY: The private key to be imported
+
+     FLAGS: Flags for the import
+
+     This function will import the given private key to the abstract
+     'gnutls_privkey_t' structure.
+
+     The 'gnutls_pkcs11_privkey_t' object must not be deallocated during
+     the lifetime of this structure.
+
+     'flags' might be zero or one of
+     'GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE' and
+     'GNUTLS_PRIVKEY_IMPORT_COPY' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_import_x509
+--------------------------
+
+ -- Function: int gnutls_privkey_import_x509 (gnutls_privkey_t PKEY,
+          gnutls_x509_privkey_t KEY, unsigned int FLAGS)
+     PKEY: The private key
+
+     KEY: The private key to be imported
+
+     FLAGS: Flags for the import
+
+     This function will import the given private key to the abstract
+     'gnutls_privkey_t' structure.
+
+     The 'gnutls_x509_privkey_t' object must not be deallocated during
+     the lifetime of this structure.
+
+     'flags' might be zero or one of
+     'GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE' and
+     'GNUTLS_PRIVKEY_IMPORT_COPY' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_init
+-------------------
+
+ -- Function: int gnutls_privkey_init (gnutls_privkey_t * KEY)
+     KEY: The structure to be initialized
+
+     This function will initialize an private key structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_sign_data
+------------------------
+
+ -- Function: int gnutls_privkey_sign_data (gnutls_privkey_t SIGNER,
+          gnutls_digest_algorithm_t HASH, unsigned int FLAGS, const
+          gnutls_datum_t * DATA, gnutls_datum_t * SIGNATURE)
+     SIGNER: Holds the key
+
+     HASH: should be a digest algorithm
+
+     FLAGS: should be 0 for now
+
+     DATA: holds the data to be signed
+
+     SIGNATURE: will contain the signature allocate with
+     'gnutls_malloc()'
+
+     This function will sign the given data using a signature algorithm
+     supported by the private key.  Signature algorithms are always used
+     together with a hash functions.  Different hash functions may be
+     used for the RSA algorithm, but only the SHA family for the DSA
+     keys.
+
+     Use 'gnutls_pubkey_get_preferred_hash_algorithm()' to determine the
+     hash algorithm.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_privkey_sign_hash
+------------------------
+
+ -- Function: int gnutls_privkey_sign_hash (gnutls_privkey_t SIGNER,
+          gnutls_digest_algorithm_t HASH_ALGO, unsigned int FLAGS, const
+          gnutls_datum_t * HASH_DATA, gnutls_datum_t * SIGNATURE)
+     SIGNER: Holds the signer's key
+
+     HASH_ALGO: The hash algorithm used
+
+     FLAGS: zero for now
+
+     HASH_DATA: holds the data to be signed
+
+     SIGNATURE: will contain newly allocated signature
+
+     This function will sign the given hashed data using a signature
+     algorithm supported by the private key.  Signature algorithms are
+     always used together with a hash functions.  Different hash
+     functions may be used for the RSA algorithm, but only SHA-XXX for
+     the DSA keys.
+
+     Use 'gnutls_pubkey_get_preferred_hash_algorithm()' to determine the
+     hash algorithm.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_deinit
+--------------------
+
+ -- Function: void gnutls_pubkey_deinit (gnutls_pubkey_t KEY)
+     KEY: The structure to be deinitialized
+
+     This function will deinitialize a public key structure.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_encrypt_data
+--------------------------
+
+ -- Function: int gnutls_pubkey_encrypt_data (gnutls_pubkey_t KEY,
+          unsigned int FLAGS, const gnutls_datum_t * PLAINTEXT,
+          gnutls_datum_t * CIPHERTEXT)
+     KEY: Holds the public key
+
+     FLAGS: should be 0 for now
+
+     PLAINTEXT: The data to be encrypted
+
+     CIPHERTEXT: contains the encrypted data
+
+     This function will encrypt the given data, using the public key.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_pubkey_export
+--------------------
+
+ -- Function: int gnutls_pubkey_export (gnutls_pubkey_t KEY,
+          gnutls_x509_crt_fmt_t FORMAT, void * OUTPUT_DATA, size_t *
+          OUTPUT_DATA_SIZE)
+     KEY: Holds the certificate
+
+     FORMAT: the format of output params.  One of PEM or DER.
+
+     OUTPUT_DATA: will contain a certificate PEM or DER encoded
+
+     OUTPUT_DATA_SIZE: holds the size of output_data (and will be
+     replaced by the actual size of parameters)
+
+     This function will export the public key to DER or PEM format.  The
+     contents of the exported data is the SubjectPublicKeyInfo X.509
+     structure.
+
+     If the buffer provided is not long enough to hold the output, then
+     *output_data_size is updated and 'GNUTLS_E_SHORT_MEMORY_BUFFER'
+     will be returned.
+
+     If the structure is PEM encoded, it will have a header of "BEGIN
+     CERTIFICATE".
+
+     *Returns:* In case of failure a negative error code will be
+     returned, and 0 on success.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_get_key_id
+------------------------
+
+ -- Function: int gnutls_pubkey_get_key_id (gnutls_pubkey_t KEY,
+          unsigned int FLAGS, unsigned char * OUTPUT_DATA, size_t *
+          OUTPUT_DATA_SIZE)
+     KEY: Holds the public key
+
+     FLAGS: should be 0 for now
+
+     OUTPUT_DATA: will contain the key ID
+
+     OUTPUT_DATA_SIZE: holds the size of output_data (and will be
+     replaced by the actual size of parameters)
+
+     This function will return a unique ID the depends on the public key
+     parameters.  This ID can be used in checking whether a certificate
+     corresponds to the given public key.
+
+     If the buffer provided is not long enough to hold the output, then
+     *output_data_size is updated and 'GNUTLS_E_SHORT_MEMORY_BUFFER'
+     will be returned.  The output will normally be a SHA-1 hash output,
+     which is 20 bytes.
+
+     *Returns:* In case of failure a negative error code will be
+     returned, and 0 on success.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_get_key_usage
+---------------------------
+
+ -- Function: int gnutls_pubkey_get_key_usage (gnutls_pubkey_t KEY,
+          unsigned int * USAGE)
+     KEY: should contain a 'gnutls_pubkey_t' structure
+
+     USAGE: If set will return the number of bits of the parameters (may
+     be NULL)
+
+     This function will return the key usage of the public key.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_get_openpgp_key_id
+--------------------------------
+
+ -- Function: int gnutls_pubkey_get_openpgp_key_id (gnutls_pubkey_t KEY,
+          unsigned int FLAGS, unsigned char * OUTPUT_DATA, size_t *
+          OUTPUT_DATA_SIZE, unsigned int * SUBKEY)
+     KEY: Holds the public key
+
+     FLAGS: should be 0 or 'GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT'
+
+     OUTPUT_DATA: will contain the key ID
+
+     OUTPUT_DATA_SIZE: holds the size of output_data (and will be
+     replaced by the actual size of parameters)
+
+     SUBKEY: Will be non zero if the key ID corresponds to a subkey
+
+     This function returns the OpenPGP key ID of the corresponding key.
+     The key is a unique ID that depends on the public key parameters.
+
+     If the flag 'GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT' is specified
+     this function returns the fingerprint of the master key.
+
+     If the buffer provided is not long enough to hold the output, then
+     *output_data_size is updated and 'GNUTLS_E_SHORT_MEMORY_BUFFER'
+     will be returned.  The output is 'GNUTLS_OPENPGP_KEYID_SIZE' bytes
+     long.
+
+     *Returns:* In case of failure a negative error code will be
+     returned, and 0 on success.
+
+     *Since:* 3.0
+
+gnutls_pubkey_get_pk_algorithm
+------------------------------
+
+ -- Function: int gnutls_pubkey_get_pk_algorithm (gnutls_pubkey_t KEY,
+          unsigned int * BITS)
+     KEY: should contain a 'gnutls_pubkey_t' structure
+
+     BITS: If set will return the number of bits of the parameters (may
+     be NULL)
+
+     This function will return the public key algorithm of a public key
+     and if possible will return a number of bits that indicates the
+     security parameter of the key.
+
+     *Returns:* a member of the 'gnutls_pk_algorithm_t' enumeration on
+     success, or a negative error code on error.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_get_pk_dsa_raw
+----------------------------
+
+ -- Function: int gnutls_pubkey_get_pk_dsa_raw (gnutls_pubkey_t KEY,
+          gnutls_datum_t * P, gnutls_datum_t * Q, gnutls_datum_t * G,
+          gnutls_datum_t * Y)
+     KEY: Holds the public key
+
+     P: will hold the p
+
+     Q: will hold the q
+
+     G: will hold the g
+
+     Y: will hold the y
+
+     This function will export the DSA public key's parameters found in
+     the given certificate.  The new parameters will be allocated using
+     'gnutls_malloc()' and will be stored in the appropriate datum.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_get_pk_ecc_raw
+----------------------------
+
+ -- Function: int gnutls_pubkey_get_pk_ecc_raw (gnutls_pubkey_t KEY,
+          gnutls_ecc_curve_t * CURVE, gnutls_datum_t * X, gnutls_datum_t
+          * Y)
+     KEY: Holds the public key
+
+     CURVE: will hold the curve
+
+     X: will hold x
+
+     Y: will hold y
+
+     This function will export the ECC public key's parameters found in
+     the given certificate.  The new parameters will be allocated using
+     'gnutls_malloc()' and will be stored in the appropriate datum.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.
+
+     *Since:* 3.0
+
+gnutls_pubkey_get_pk_ecc_x962
+-----------------------------
+
+ -- Function: int gnutls_pubkey_get_pk_ecc_x962 (gnutls_pubkey_t KEY,
+          gnutls_datum_t* PARAMETERS, gnutls_datum_t * ECPOINT)
+     KEY: Holds the public key
+
+     PARAMETERS: DER encoding of an ANSI X9.62 parameters
+
+     ECPOINT: DER encoding of ANSI X9.62 ECPoint
+
+     This function will export the ECC public key's parameters found in
+     the given certificate.  The new parameters will be allocated using
+     'gnutls_malloc()' and will be stored in the appropriate datum.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.
+
+     *Since:* 3.0
+
+gnutls_pubkey_get_pk_rsa_raw
+----------------------------
+
+ -- Function: int gnutls_pubkey_get_pk_rsa_raw (gnutls_pubkey_t KEY,
+          gnutls_datum_t * M, gnutls_datum_t * E)
+     KEY: Holds the certificate
+
+     M: will hold the modulus
+
+     E: will hold the public exponent
+
+     This function will export the RSA public key's parameters found in
+     the given structure.  The new parameters will be allocated using
+     'gnutls_malloc()' and will be stored in the appropriate datum.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_get_preferred_hash_algorithm
+------------------------------------------
+
+ -- Function: int gnutls_pubkey_get_preferred_hash_algorithm
+          (gnutls_pubkey_t KEY, gnutls_digest_algorithm_t * HASH,
+          unsigned int * MAND)
+     KEY: Holds the certificate
+
+     HASH: The result of the call with the hash algorithm used for
+     signature
+
+     MAND: If non zero it means that the algorithm MUST use this hash.
+     May be NULL.
+
+     This function will read the certifcate and return the appropriate
+     digest algorithm to use for signing with this certificate.  Some
+     certificates (i.e.  DSA might not be able to sign without the
+     preferred algorithm).
+
+     *Returns:* the 0 if the hash algorithm is found.  A negative error
+     code is returned on error.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_get_verify_algorithm
+----------------------------------
+
+ -- Function: int gnutls_pubkey_get_verify_algorithm (gnutls_pubkey_t
+          KEY, const gnutls_datum_t * SIGNATURE,
+          gnutls_digest_algorithm_t * HASH)
+     KEY: Holds the certificate
+
+     SIGNATURE: contains the signature
+
+     HASH: The result of the call with the hash algorithm used for
+     signature
+
+     This function will read the certifcate and the signed data to
+     determine the hash algorithm used to generate the signature.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_import
+--------------------
+
+ -- Function: int gnutls_pubkey_import (gnutls_pubkey_t KEY, const
+          gnutls_datum_t * DATA, gnutls_x509_crt_fmt_t FORMAT)
+     KEY: The structure to store the parsed public key.
+
+     DATA: The DER or PEM encoded certificate.
+
+     FORMAT: One of DER or PEM
+
+     This function will import the provided public key in a
+     SubjectPublicKeyInfo X.509 structure to a native 'gnutls_pubkey_t'
+     structure.  The output will be stored in 'key' .  If the public key
+     is PEM encoded it should have a header of "PUBLIC KEY".
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_import_dsa_raw
+----------------------------
+
+ -- Function: int gnutls_pubkey_import_dsa_raw (gnutls_pubkey_t KEY,
+          const gnutls_datum_t * P, const gnutls_datum_t * Q, const
+          gnutls_datum_t * G, const gnutls_datum_t * Y)
+     KEY: The structure to store the parsed key
+
+     P: holds the p
+
+     Q: holds the q
+
+     G: holds the g
+
+     Y: holds the y
+
+     This function will convert the given DSA raw parameters to the
+     native 'gnutls_pubkey_t' format.  The output will be stored in
+     'key' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_import_ecc_raw
+----------------------------
+
+ -- Function: int gnutls_pubkey_import_ecc_raw (gnutls_pubkey_t KEY,
+          gnutls_ecc_curve_t CURVE, const gnutls_datum_t * X, const
+          gnutls_datum_t * Y)
+     KEY: The structure to store the parsed key
+
+     CURVE: holds the curve
+
+     X: holds the x
+
+     Y: holds the y
+
+     This function will convert the given elliptic curve parameters to a
+     'gnutls_pubkey_t' .  The output will be stored in 'key' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_pubkey_import_ecc_x962
+-----------------------------
+
+ -- Function: int gnutls_pubkey_import_ecc_x962 (gnutls_pubkey_t KEY,
+          const gnutls_datum_t * PARAMETERS, const gnutls_datum_t *
+          ECPOINT)
+     KEY: The structure to store the parsed key
+
+     PARAMETERS: DER encoding of an ANSI X9.62 parameters
+
+     ECPOINT: DER encoding of ANSI X9.62 ECPoint
+
+     This function will convert the given elliptic curve parameters to a
+     'gnutls_pubkey_t' .  The output will be stored in 'key' .
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 3.0
+
+gnutls_pubkey_import_openpgp
+----------------------------
+
+ -- Function: int gnutls_pubkey_import_openpgp (gnutls_pubkey_t KEY,
+          gnutls_openpgp_crt_t CRT, unsigned int FLAGS)
+     KEY: The public key
+
+     CRT: The certificate to be imported
+
+     FLAGS: should be zero
+
+     Imports a public key from an openpgp key.  This function will
+     import the given public key to the abstract 'gnutls_pubkey_t'
+     structure.  The subkey set as preferred will be imported or the
+     master key otherwise.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_import_pkcs11
+---------------------------
+
+ -- Function: int gnutls_pubkey_import_pkcs11 (gnutls_pubkey_t KEY,
+          gnutls_pkcs11_obj_t OBJ, unsigned int FLAGS)
+     KEY: The public key
+
+     OBJ: The parameters to be imported
+
+     FLAGS: should be zero
+
+     Imports a public key from a pkcs11 key.  This function will import
+     the given public key to the abstract 'gnutls_pubkey_t' structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_import_pkcs11_url
+-------------------------------
+
+ -- Function: int gnutls_pubkey_import_pkcs11_url (gnutls_pubkey_t KEY,
+          const char * URL, unsigned int FLAGS)
+     KEY: A key of type 'gnutls_pubkey_t'
+
+     URL: A PKCS 11 url
+
+     FLAGS: One of GNUTLS_PKCS11_OBJ_* flags
+
+     This function will import a PKCS 11 certificate to a
+     'gnutls_pubkey_t' structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_import_privkey
+----------------------------
+
+ -- Function: int gnutls_pubkey_import_privkey (gnutls_pubkey_t KEY,
+          gnutls_privkey_t PKEY, unsigned int USAGE, unsigned int FLAGS)
+     KEY: The public key
+
+     PKEY: The private key
+
+     USAGE: GNUTLS_KEY_* key usage flags.
+
+     FLAGS: should be zero
+
+     Imports the public key from a private.  This function will import
+     the given public key to the abstract 'gnutls_pubkey_t' structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_import_rsa_raw
+----------------------------
+
+ -- Function: int gnutls_pubkey_import_rsa_raw (gnutls_pubkey_t KEY,
+          const gnutls_datum_t * M, const gnutls_datum_t * E)
+     KEY: Is a structure will hold the parameters
+
+     M: holds the modulus
+
+     E: holds the public exponent
+
+     This function will replace the parameters in the given structure.
+     The new parameters should be stored in the appropriate
+     gnutls_datum.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, or an negative error
+     code.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_import_x509
+-------------------------
+
+ -- Function: int gnutls_pubkey_import_x509 (gnutls_pubkey_t KEY,
+          gnutls_x509_crt_t CRT, unsigned int FLAGS)
+     KEY: The public key
+
+     CRT: The certificate to be imported
+
+     FLAGS: should be zero
+
+     This function will import the given public key to the abstract
+     'gnutls_pubkey_t' structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_init
+------------------
+
+ -- Function: int gnutls_pubkey_init (gnutls_pubkey_t * KEY)
+     KEY: The structure to be initialized
+
+     This function will initialize an public key structure.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_set_key_usage
+---------------------------
+
+ -- Function: int gnutls_pubkey_set_key_usage (gnutls_pubkey_t KEY,
+          unsigned int USAGE)
+     KEY: a certificate of type 'gnutls_x509_crt_t'
+
+     USAGE: an ORed sequence of the GNUTLS_KEY_* elements.
+
+     This function will set the key usage flags of the public key.  This
+     is only useful if the key is to be exported to a certificate or
+     certificate request.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_verify_data
+-------------------------
+
+ -- Function: int gnutls_pubkey_verify_data (gnutls_pubkey_t PUBKEY,
+          unsigned int FLAGS, const gnutls_datum_t * DATA, const
+          gnutls_datum_t * SIGNATURE)
+     PUBKEY: Holds the public key
+
+     FLAGS: should be 0 for now
+
+     DATA: holds the signed data
+
+     SIGNATURE: contains the signature
+
+     This function will verify the given signed data, using the
+     parameters from the certificate.
+
+     *Returns:* In case of a verification failure
+     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
+     code on success.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_verify_data2
+--------------------------
+
+ -- Function: int gnutls_pubkey_verify_data2 (gnutls_pubkey_t PUBKEY,
+          gnutls_sign_algorithm_t ALGO, unsigned int FLAGS, const
+          gnutls_datum_t * DATA, const gnutls_datum_t * SIGNATURE)
+     PUBKEY: Holds the public key
+
+     ALGO: The signature algorithm used
+
+     FLAGS: should be 0 for now
+
+     DATA: holds the signed data
+
+     SIGNATURE: contains the signature
+
+     This function will verify the given signed data, using the
+     parameters from the certificate.
+
+     *Returns:* In case of a verification failure
+     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
+     code on success.
+
+     *Since:* 3.0
+
+gnutls_pubkey_verify_hash
+-------------------------
+
+ -- Function: int gnutls_pubkey_verify_hash (gnutls_pubkey_t KEY,
+          unsigned int FLAGS, const gnutls_datum_t * HASH, const
+          gnutls_datum_t * SIGNATURE)
+     KEY: Holds the public key
+
+     FLAGS: should be 0 for now
+
+     HASH: holds the hash digest to be verified
+
+     SIGNATURE: contains the signature
+
+     This function will verify the given signed digest, using the
+     parameters from the public key.
+
+     Deprecated.  This function cannot be easily used securely.  Use
+     'gnutls_pubkey_verify_hash2()' instead.
+
+     *Returns:* In case of a verification failure
+     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
+     code on success.
+
+     *Since:* 2.12.0
+
+gnutls_pubkey_verify_hash2
+--------------------------
+
+ -- Function: int gnutls_pubkey_verify_hash2 (gnutls_pubkey_t KEY,
+          gnutls_sign_algorithm_t ALGO, unsigned int FLAGS, const
+          gnutls_datum_t * HASH, const gnutls_datum_t * SIGNATURE)
+     KEY: Holds the public key
+
+     ALGO: The signature algorithm used
+
+     FLAGS: should be 0 for now
+
+     HASH: holds the hash digest to be verified
+
+     SIGNATURE: contains the signature
+
+     This function will verify the given signed digest, using the
+     parameters from the public key.
+
+     *Returns:* In case of a verification failure
+     'GNUTLS_E_PK_SIG_VERIFY_FAILED' is returned, and zero or positive
+     code on success.
+
+     *Since:* 3.0
+
+gnutls_x509_crl_privkey_sign
+----------------------------
+
+ -- Function: int gnutls_x509_crl_privkey_sign (gnutls_x509_crl_t CRL,
+          gnutls_x509_crt_t ISSUER, gnutls_privkey_t ISSUER_KEY,
+          gnutls_digest_algorithm_t DIG, unsigned int FLAGS)
+     CRL: should contain a gnutls_x509_crl_t structure
+
+     ISSUER: is the certificate of the certificate issuer
+
+     ISSUER_KEY: holds the issuer's private key
+
+     DIG: The message digest to use.  GNUTLS_DIG_SHA1 is the safe choice
+     unless you know what you're doing.
+
+     FLAGS: must be 0
+
+     This function will sign the CRL with the issuer's private key, and
+     will copy the issuer's information into the CRL.
+
+     This must be the last step in a certificate CRL since all the
+     previously set parameters are now signed.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     Since 2.12.0
+
+gnutls_x509_crq_privkey_sign
+----------------------------
+
+ -- Function: int gnutls_x509_crq_privkey_sign (gnutls_x509_crq_t CRQ,
+          gnutls_privkey_t KEY, gnutls_digest_algorithm_t DIG, unsigned
+          int FLAGS)
+     CRQ: should contain a 'gnutls_x509_crq_t' structure
+
+     KEY: holds a private key
+
+     DIG: The message digest to use, i.e., 'GNUTLS_DIG_SHA1'
+
+     FLAGS: must be 0
+
+     This function will sign the certificate request with a private key.
+     This must be the same key as the one used in
+     'gnutls_x509_crt_set_key()' since a certificate request is self
+     signed.
+
+     This must be the last step in a certificate request generation
+     since all the previously set parameters are now signed.
+
+     *Returns:* 'GNUTLS_E_SUCCESS' on success, otherwise a negative
+     error code.  'GNUTLS_E_ASN1_VALUE_NOT_FOUND' is returned if you
+     didn't set all information in the certificate request (e.g., the
+     version using 'gnutls_x509_crq_set_version()' ).
+
+     *Since:* 2.12.0
+
+gnutls_x509_crq_set_pubkey
+--------------------------
+
+ -- Function: int gnutls_x509_crq_set_pubkey (gnutls_x509_crq_t CRQ,
+          gnutls_pubkey_t KEY)
+     CRQ: should contain a 'gnutls_x509_crq_t' structure
+
+     KEY: holds a public key
+
+     This function will set the public parameters from the given public
+     key to the request.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+gnutls_x509_crt_privkey_sign
+----------------------------
+
+ -- Function: int gnutls_x509_crt_privkey_sign (gnutls_x509_crt_t CRT,
+          gnutls_x509_crt_t ISSUER, gnutls_privkey_t ISSUER_KEY,
+          gnutls_digest_algorithm_t DIG, unsigned int FLAGS)
+     CRT: a certificate of type 'gnutls_x509_crt_t'
+
+     ISSUER: is the certificate of the certificate issuer
+
+     ISSUER_KEY: holds the issuer's private key
+
+     DIG: The message digest to use, 'GNUTLS_DIG_SHA1' is a safe choice
+
+     FLAGS: must be 0
+
+     This function will sign the certificate with the issuer's private
+     key, and will copy the issuer's information into the certificate.
+
+     This must be the last step in a certificate generation since all
+     the previously set parameters are now signed.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+gnutls_x509_crt_set_pubkey
+--------------------------
+
+ -- Function: int gnutls_x509_crt_set_pubkey (gnutls_x509_crt_t CRT,
+          gnutls_pubkey_t KEY)
+     CRT: should contain a 'gnutls_x509_crt_t' structure
+
+     KEY: holds a public key
+
+     This function will set the public parameters from the given public
+     key to the request.
+
+     *Returns:* On success, 'GNUTLS_E_SUCCESS' (0) is returned,
+     otherwise a negative error value.
+
+     *Since:* 2.12.0
+
+\1f
 File: gnutls.info,  Node: Cryptographic API,  Next: Compatibility API,  Prev: Abstract key API,  Up: API reference
 
 E.9 Cryptographic API
@@ -1055,7 +2272,7 @@ GNU Free Documentation License
                      Version 1.3, 3 November 2008
 
      Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     'http://fsf.org/'
+     <http://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies
      of this license document, but changing it is not allowed.
@@ -1452,7 +2669,7 @@ GNU Free Documentation License
      the GNU Free Documentation License from time to time.  Such new
      versions will be similar in spirit to the present version, but may
      differ in detail to address new problems or concerns.  See
-     'http://www.gnu.org/copyleft/'.
+     <http://www.gnu.org/copyleft/>.
 
      Each version of the License is given a distinguishing version
      number.  If the Document specifies that a particular numbered
@@ -1537,121 +2754,121 @@ Bibliography
 [CBCATT]
      Bodo Moeller, "Security of CBC Ciphersuites in SSL/TLS: Problems
      and Countermeasures", 2002, available from
-     'http://www.openssl.org/~bodo/tls-cbc.txt'.
+     <http://www.openssl.org/~bodo/tls-cbc.txt>.
 
 [GPGH]
      Mike Ashley, "The GNU Privacy Handbook", 2002, available from
-     'http://www.gnupg.org/gph/en/manual.pdf'.
+     <http://www.gnupg.org/gph/en/manual.pdf>.
 
 [GUTPKI]
      Peter Gutmann, "Everything you never wanted to know about PKI but
      were forced to find out", Available from
-     'http://www.cs.auckland.ac.nz/~pgut001/'.
+     <http://www.cs.auckland.ac.nz/~pgut001/>.
 
 [KEYPIN]
      Chris Evans and Chris Palmer, "Public Key Pinning Extension for
      HTTP", Available from
-     'http://tools.ietf.org/html/draft-ietf-websec-key-pinning-01'.
+     <http://tools.ietf.org/html/draft-ietf-websec-key-pinning-01>.
 
 [NISTSP80057]
      NIST Special Publication 800-57, "Recommendation for Key Management
      - Part 1: General (Revised)", March 2007, available from
-     'http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57-Part1-revised2_Mar08-2007.pdf'.
+     <http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57-Part1-revised2_Mar08-2007.pdf>.
 
 [RFC2246]
      Tim Dierks and Christopher Allen, "The TLS Protocol Version 1.0",
-     January 1999, Available from 'http://www.ietf.org/rfc/rfc2246.txt'.
+     January 1999, Available from <http://www.ietf.org/rfc/rfc2246.txt>.
 
 [RFC4680]
      S. Santesson, "TLS Handshake Message for Supplemental Data",
      September 2006, Available from
-     'http://www.ietf.org/rfc/rfc4680.txt'.
+     <http://www.ietf.org/rfc/rfc4680.txt>.
 
 [RFC4514]
      Kurt D. Zeilenga, "Lightweight Directory Access Protocol (LDAP):
      String Representation of Distinguished Names", June 2006, Available
-     from 'http://www.ietf.org/rfc/rfc4513.txt'.
+     from <http://www.ietf.org/rfc/rfc4513.txt>.
 
 [RFC4346]
      Tim Dierks and Eric Rescorla, "The TLS Protocol Version 1.1", Match
-     2006, Available from 'http://www.ietf.org/rfc/rfc4346.txt'.
+     2006, Available from <http://www.ietf.org/rfc/rfc4346.txt>.
 
 [RFC4347]
      Eric Rescorla and Nagendra Modadugu, "Datagram Transport Layer
      Security", April 2006, Available from
-     'http://www.ietf.org/rfc/rfc4347.txt'.
+     <http://www.ietf.org/rfc/rfc4347.txt>.
 
 [RFC5246]
      Tim Dierks and Eric Rescorla, "The TLS Protocol Version 1.2",
-     August 2008, Available from 'http://www.ietf.org/rfc/rfc5246.txt'.
+     August 2008, Available from <http://www.ietf.org/rfc/rfc5246.txt>.
 
 [RFC2440]
      Jon Callas, Lutz Donnerhacke, Hal Finney and Rodney Thayer,
      "OpenPGP Message Format", November 1998, Available from
-     'http://www.ietf.org/rfc/rfc2440.txt'.
+     <http://www.ietf.org/rfc/rfc2440.txt>.
 
 [RFC4880]
      Jon Callas, Lutz Donnerhacke, Hal Finney, David Shaw and Rodney
      Thayer, "OpenPGP Message Format", November 2007, Available from
-     'http://www.ietf.org/rfc/rfc4880.txt'.
+     <http://www.ietf.org/rfc/rfc4880.txt>.
 
 [RFC4211]
      J. Schaad, "Internet X.509 Public Key Infrastructure Certificate
      Request Message Format (CRMF)", September 2005, Available from
-     'http://www.ietf.org/rfc/rfc4211.txt'.
+     <http://www.ietf.org/rfc/rfc4211.txt>.
 
 [RFC2817]
      Rohit Khare and Scott Lawrence, "Upgrading to TLS Within HTTP/1.1",
-     May 2000, Available from 'http://www.ietf.org/rfc/rfc2817.txt'
+     May 2000, Available from <http://www.ietf.org/rfc/rfc2817.txt>
 
 [RFC2818]
      Eric Rescorla, "HTTP Over TLS", May 2000, Available from
-     'http://www.ietf/rfc/rfc2818.txt'.
+     <http://www.ietf/rfc/rfc2818.txt>.
 
 [RFC2945]
      Tom Wu, "The SRP Authentication and Key Exchange System", September
-     2000, Available from 'http://www.ietf.org/rfc/rfc2945.txt'.
+     2000, Available from <http://www.ietf.org/rfc/rfc2945.txt>.
 
 [RFC2986]
      Magnus Nystrom and Burt Kaliski, "PKCS 10 v1.7: Certification
      Request Syntax Specification", November 2000, Available from
-     'http://www.ietf.org/rfc/rfc2986.txt'.
+     <http://www.ietf.org/rfc/rfc2986.txt>.
 
 [PKIX]
      D. Cooper, S. Santesson, S. Farrel, S. Boeyen, R. Housley, W. Polk,
      "Internet X.509 Public Key Infrastructure Certificate and
      Certificate Revocation List (CRL) Profile", May 2008, available
-     from 'http://www.ietf.org/rfc/rfc5280.txt'.
+     from <http://www.ietf.org/rfc/rfc5280.txt>.
 
 [RFC3749]
      Scott Hollenbeck, "Transport Layer Security Protocol Compression
      Methods", May 2004, available from
-     'http://www.ietf.org/rfc/rfc3749.txt'.
+     <http://www.ietf.org/rfc/rfc3749.txt>.
 
 [RFC3820]
      Steven Tuecke, Von Welch, Doug Engert, Laura Pearlman, and Mary
      Thompson, "Internet X.509 Public Key Infrastructure (PKI) Proxy
      Certificate Profile", June 2004, available from
-     'http://www.ietf.org/rfc/rfc3820'.
+     <http://www.ietf.org/rfc/rfc3820>.
 
 [RFC5746]
      E. Rescorla, M. Ray, S. Dispensa, and N. Oskov, "Transport Layer
      Security (TLS) Renegotiation Indication Extension", February 2010,
-     available from 'http://www.ietf.org/rfc/rfc5746'.
+     available from <http://www.ietf.org/rfc/rfc5746>.
 
 [TLSTKT]
      Joseph Salowey, Hao Zhou, Pasi Eronen, Hannes Tschofenig,
      "Transport Layer Security (TLS) Session Resumption without
      Server-Side State", January 2008, available from
-     'http://www.ietf.org/rfc/rfc5077'.
+     <http://www.ietf.org/rfc/rfc5077>.
 
 [PKCS12]
      RSA Laboratories, "PKCS 12 v1.0: Personal Information Exchange
-     Syntax", June 1999, Available from 'http://www.rsa.com'.
+     Syntax", June 1999, Available from <http://www.rsa.com>.
 
 [PKCS11]
      RSA Laboratories, "PKCS #11 Base Functionality v2.30: Cryptoki –
-     Draft 4", July 2009, Available from 'http://www.rsa.com'.
+     Draft 4", July 2009, Available from <http://www.rsa.com>.
 
 [RESCORLA]
      Eric Rescorla, "SSL and TLS: Designing and Building Secure
@@ -1660,12 +2877,12 @@ Bibliography
 [SELKEY]
      Arjen Lenstra and Eric Verheul, "Selecting Cryptographic Key
      Sizes", 2003, available from
-     'http://www.win.tue.nl/~klenstra/key.pdf'.
+     <http://www.win.tue.nl/~klenstra/key.pdf>.
 
 [SSL3]
      Alan Freier, Philip Karlton and Paul Kocher, "The Secure Sockets
      Layer (SSL) Protocol Version 3.0", August 2011, Available from
-     'http://www.ietf.org/rfc/rfc6101.txt'.
+     <http://www.ietf.org/rfc/rfc6101.txt>.
 
 [STEVENS]
      Richard Stevens, "UNIX Network Programming, Volume 1", Prentice
@@ -1674,49 +2891,49 @@ Bibliography
 [TLSEXT]
      Simon Blake-Wilson, Magnus Nystrom, David Hopwood, Jan Mikkelsen
      and Tim Wright, "Transport Layer Security (TLS) Extensions", June
-     2003, Available from 'http://www.ietf.org/rfc/rfc3546.txt'.
+     2003, Available from <http://www.ietf.org/rfc/rfc3546.txt>.
 
 [TLSPGP]
      Nikos Mavrogiannopoulos, "Using OpenPGP keys for TLS
      authentication", January 2011.  Available from
-     'http://www.ietf.org/rfc/rfc6091.txt'.
+     <http://www.ietf.org/rfc/rfc6091.txt>.
 
 [TLSSRP]
      David Taylor, Trevor Perrin, Tom Wu and Nikos Mavrogiannopoulos,
      "Using SRP for TLS Authentication", November 2007.  Available from
-     'http://www.ietf.org/rfc/rfc5054.txt'.
+     <http://www.ietf.org/rfc/rfc5054.txt>.
 
 [TLSPSK]
      Pasi Eronen and Hannes Tschofenig, "Pre-shared key Ciphersuites for
      TLS", December 2005, Available from
-     'http://www.ietf.org/rfc/rfc4279.txt'.
+     <http://www.ietf.org/rfc/rfc4279.txt>.
 
 [TOMSRP]
      Tom Wu, "The Stanford SRP Authentication Project", Available at
-     'http://srp.stanford.edu/'.
+     <http://srp.stanford.edu/>.
 
 [WEGER]
      Arjen Lenstra and Xiaoyun Wang and Benne de Weger, "Colliding X.509
      Certificates", Cryptology ePrint Archive, Report 2005/067,
-     Available at 'http://eprint.iacr.org/'.
+     Available at <http://eprint.iacr.org/>.
 
 [ECRYPT]
      European Network of Excellence in Cryptology II, "ECRYPT II Yearly
      Report on Algorithms and Keysizes (2009-2010)", Available at
-     'http://www.ecrypt.eu.org/documents/D.SPA.13.pdf'.
+     <http://www.ecrypt.eu.org/documents/D.SPA.13.pdf>.
 
 [RFC5056]
      N. Williams, "On the Use of Channel Bindings to Secure Channels",
-     November 2007, available from 'http://www.ietf.org/rfc/rfc5056'.
+     November 2007, available from <http://www.ietf.org/rfc/rfc5056>.
 
 [RFC5929]
      J. Altman, N. Williams, L. Zhu, "Channel Bindings for TLS", July
-     2010, available from 'http://www.ietf.org/rfc/rfc5929'.
+     2010, available from <http://www.ietf.org/rfc/rfc5929>.
 
 [PKCS11URI]
      J. Pechanec, D. Moffat, "The PKCS#11 URI Scheme", August 2011, Work
      in progress, available from
-     'http://tools.ietf.org/html/draft-pechanec-pkcs11uri-05'.
+     <http://tools.ietf.org/html/draft-pechanec-pkcs11uri-05>.
 
 [ANDERSON]
      R. J. Anderson, "Security Engineering: A Guide to Building
@@ -1724,19 +2941,19 @@ Bibliography
 
 [RFC4821]
      M. Mathis, J. Heffner, "Packetization Layer Path MTU Discovery",
-     March 2007, available from 'http://www.ietf.org/rfc/rfc4821.txt'.
+     March 2007, available from <http://www.ietf.org/rfc/rfc4821.txt>.
 
 [RFC2560]
      M. Myers et al, "X.509 Internet Public Key Infrastructure Online
      Certificate Status Protocol - OCSP", June 1999, Available from
-     'http://www.ietf.org/rfc/rfc2560.txt'.
+     <http://www.ietf.org/rfc/rfc2560.txt>.
 
 [RIVESTCRL]
      R. L. Rivest, "Can We Eliminate Certificate Revocation Lists?",
      Proceedings of Financial Cryptography '98; Springer Lecture Notes
      in Computer Science No.  1465 (Rafael Hirschfeld, ed.), February
      1998), pages 178-183, available from
-     'http://people.csail.mit.edu/rivest/Rivest-CanWeEliminateCertificateRevocationLists.pdf'.
+     <http://people.csail.mit.edu/rivest/Rivest-CanWeEliminateCertificateRevocationLists.pdf>.
 
 \1f
 File: gnutls.info,  Node: Function and Data Index,  Next: Concept Index,  Prev: Bibliography,  Up: Top
@@ -1811,29 +3028,29 @@ Function and Data Index
 * gnutls_certificate_set_verify_flags:   Core TLS API.       (line  558)
 * gnutls_certificate_set_verify_function: Certificate credentials.
                                                              (line  155)
-* gnutls_certificate_set_verify_function <1>: Core TLS API.  (line  571)
-* gnutls_certificate_set_verify_limits:  Core TLS API.       (line  600)
-* gnutls_certificate_set_x509_crl:       Core TLS API.       (line  619)
-* gnutls_certificate_set_x509_crl_file:  Core TLS API.       (line  643)
-* gnutls_certificate_set_x509_crl_mem:   Core TLS API.       (line  665)
-* gnutls_certificate_set_x509_key:       Core TLS API.       (line  687)
-* gnutls_certificate_set_x509_key_file:  Core TLS API.       (line  714)
-* gnutls_certificate_set_x509_key_mem:   Core TLS API.       (line  744)
+* gnutls_certificate_set_verify_function <1>: Core TLS API.  (line  572)
+* gnutls_certificate_set_verify_limits:  Core TLS API.       (line  601)
+* gnutls_certificate_set_x509_crl:       Core TLS API.       (line  620)
+* gnutls_certificate_set_x509_crl_file:  Core TLS API.       (line  644)
+* gnutls_certificate_set_x509_crl_mem:   Core TLS API.       (line  666)
+* gnutls_certificate_set_x509_key:       Core TLS API.       (line  688)
+* gnutls_certificate_set_x509_key_file:  Core TLS API.       (line  715)
+* gnutls_certificate_set_x509_key_mem:   Core TLS API.       (line  745)
 * gnutls_certificate_set_x509_simple_pkcs12_file: Core TLS API.
-                                                             (line  778)
+                                                             (line  779)
 * gnutls_certificate_set_x509_simple_pkcs12_mem: Core TLS API.
-                                                             (line  815)
+                                                             (line  816)
 * gnutls_certificate_set_x509_system_trust: Using a PKCS11 token with TLS.
                                                              (line   14)
 * gnutls_certificate_set_x509_system_trust <1>: Core TLS API.
-                                                             (line  855)
-* gnutls_certificate_set_x509_trust:     Core TLS API.       (line  873)
-* gnutls_certificate_set_x509_trust_file: Core TLS API.      (line  900)
-* gnutls_certificate_set_x509_trust_mem: Core TLS API.       (line  929)
-* gnutls_certificate_type_get:           Core TLS API.       (line  954)
-* gnutls_certificate_type_get_id:        Core TLS API.       (line  967)
-* gnutls_certificate_type_get_name:      Core TLS API.       (line  979)
-* gnutls_certificate_type_list:          Core TLS API.       (line  991)
+                                                             (line  856)
+* gnutls_certificate_set_x509_trust:     Core TLS API.       (line  874)
+* gnutls_certificate_set_x509_trust_file: Core TLS API.      (line  901)
+* gnutls_certificate_set_x509_trust_mem: Core TLS API.       (line  930)
+* gnutls_certificate_type_get:           Core TLS API.       (line  955)
+* gnutls_certificate_type_get_id:        Core TLS API.       (line  968)
+* gnutls_certificate_type_get_name:      Core TLS API.       (line  980)
+* gnutls_certificate_type_list:          Core TLS API.       (line  992)
 * gnutls_certificate_type_set_priority:  Compatibility API.  (line   27)
 * gnutls_certificate_verify_flags:       Verifying a certificate in the context of TLS session.
                                                              (line    6)
@@ -1841,60 +3058,60 @@ Function and Data Index
                                                              (line    6)
 * gnutls_certificate_verify_peers2:      Certificate credentials.
                                                              (line  132)
-* gnutls_certificate_verify_peers2 <1>:  Core TLS API.       (line 1004)
-* gnutls_check_version:                  Core TLS API.       (line 1030)
+* gnutls_certificate_verify_peers2 <1>:  Core TLS API.       (line 1005)
+* gnutls_check_version:                  Core TLS API.       (line 1031)
 * gnutls_cipher_add_auth:                Cryptographic API.  (line   12)
 * gnutls_cipher_decrypt:                 Cryptographic API.  (line   31)
 * gnutls_cipher_decrypt2:                Cryptographic API.  (line   49)
 * gnutls_cipher_deinit:                  Cryptographic API.  (line   72)
 * gnutls_cipher_encrypt:                 Cryptographic API.  (line   83)
 * gnutls_cipher_encrypt2:                Cryptographic API.  (line  101)
-* gnutls_cipher_get:                     Core TLS API.       (line 1047)
+* gnutls_cipher_get:                     Core TLS API.       (line 1048)
 * gnutls_cipher_get_block_size:          Cryptographic API.  (line  124)
-* gnutls_cipher_get_id:                  Core TLS API.       (line 1059)
-* gnutls_cipher_get_key_size:            Core TLS API.       (line 1071)
-* gnutls_cipher_get_name:                Core TLS API.       (line 1083)
+* gnutls_cipher_get_id:                  Core TLS API.       (line 1060)
+* gnutls_cipher_get_key_size:            Core TLS API.       (line 1072)
+* gnutls_cipher_get_name:                Core TLS API.       (line 1084)
 * gnutls_cipher_init:                    Cryptographic API.  (line  137)
-* gnutls_cipher_list:                    Core TLS API.       (line 1095)
+* gnutls_cipher_list:                    Core TLS API.       (line 1096)
 * gnutls_cipher_set_iv:                  Cryptographic API.  (line  160)
 * gnutls_cipher_set_priority:            Compatibility API.  (line   45)
-* gnutls_cipher_suite_get_name:          Core TLS API.       (line 1111)
-* gnutls_cipher_suite_info:              Core TLS API.       (line 1129)
+* gnutls_cipher_suite_get_name:          Core TLS API.       (line 1112)
+* gnutls_cipher_suite_info:              Core TLS API.       (line 1130)
 * gnutls_cipher_tag:                     Cryptographic API.  (line  176)
-* gnutls_compression_get:                Core TLS API.       (line 1159)
-* gnutls_compression_get_id:             Core TLS API.       (line 1171)
-* gnutls_compression_get_name:           Core TLS API.       (line 1183)
-* gnutls_compression_list:               Core TLS API.       (line 1195)
+* gnutls_compression_get:                Core TLS API.       (line 1160)
+* gnutls_compression_get_id:             Core TLS API.       (line 1172)
+* gnutls_compression_get_name:           Core TLS API.       (line 1184)
+* gnutls_compression_list:               Core TLS API.       (line 1196)
 * gnutls_compression_set_priority:       Compatibility API.  (line   63)
-* gnutls_credentials_clear:              Core TLS API.       (line 1206)
+* gnutls_credentials_clear:              Core TLS API.       (line 1207)
 * gnutls_credentials_set:                Session initialization.
                                                              (line   41)
-* gnutls_credentials_set <1>:            Core TLS API.       (line 1214)
-* gnutls_db_check_entry:                 Core TLS API.       (line 1249)
-* gnutls_db_get_ptr:                     Core TLS API.       (line 1265)
-* gnutls_db_remove_session:              Core TLS API.       (line 1276)
-* gnutls_db_set_cache_expiration:        Core TLS API.       (line 1290)
-* gnutls_db_set_ptr:                     Core TLS API.       (line 1302)
-* gnutls_db_set_remove_function:         Core TLS API.       (line 1314)
-* gnutls_db_set_retrieve_function:       Core TLS API.       (line 1329)
-* gnutls_db_set_store_function:          Core TLS API.       (line 1349)
+* gnutls_credentials_set <1>:            Core TLS API.       (line 1215)
+* gnutls_db_check_entry:                 Core TLS API.       (line 1250)
+* gnutls_db_get_ptr:                     Core TLS API.       (line 1266)
+* gnutls_db_remove_session:              Core TLS API.       (line 1277)
+* gnutls_db_set_cache_expiration:        Core TLS API.       (line 1291)
+* gnutls_db_set_ptr:                     Core TLS API.       (line 1303)
+* gnutls_db_set_remove_function:         Core TLS API.       (line 1315)
+* gnutls_db_set_retrieve_function:       Core TLS API.       (line 1330)
+* gnutls_db_set_store_function:          Core TLS API.       (line 1350)
 * gnutls_deinit:                         Data transfer and termination.
                                                              (line  174)
-* gnutls_deinit <1>:                     Core TLS API.       (line 1364)
-* gnutls_dh_get_group:                   Core TLS API.       (line 1374)
-* gnutls_dh_get_peers_public_bits:       Core TLS API.       (line 1394)
-* gnutls_dh_get_prime_bits:              Core TLS API.       (line 1408)
-* gnutls_dh_get_pubkey:                  Core TLS API.       (line 1424)
-* gnutls_dh_get_secret_bits:             Core TLS API.       (line 1441)
-* gnutls_dh_params_cpy:                  Core TLS API.       (line 1454)
-* gnutls_dh_params_deinit:               Core TLS API.       (line 1469)
-* gnutls_dh_params_export_pkcs3:         Core TLS API.       (line 1478)
-* gnutls_dh_params_export_raw:           Core TLS API.       (line 1505)
-* gnutls_dh_params_generate2:            Core TLS API.       (line 1527)
-* gnutls_dh_params_import_pkcs3:         Core TLS API.       (line 1550)
-* gnutls_dh_params_import_raw:           Core TLS API.       (line 1572)
-* gnutls_dh_params_init:                 Core TLS API.       (line 1591)
-* gnutls_dh_set_prime_bits:              Core TLS API.       (line 1602)
+* gnutls_deinit <1>:                     Core TLS API.       (line 1365)
+* gnutls_dh_get_group:                   Core TLS API.       (line 1375)
+* gnutls_dh_get_peers_public_bits:       Core TLS API.       (line 1395)
+* gnutls_dh_get_prime_bits:              Core TLS API.       (line 1409)
+* gnutls_dh_get_pubkey:                  Core TLS API.       (line 1425)
+* gnutls_dh_get_secret_bits:             Core TLS API.       (line 1442)
+* gnutls_dh_params_cpy:                  Core TLS API.       (line 1455)
+* gnutls_dh_params_deinit:               Core TLS API.       (line 1470)
+* gnutls_dh_params_export_pkcs3:         Core TLS API.       (line 1479)
+* gnutls_dh_params_export_raw:           Core TLS API.       (line 1506)
+* gnutls_dh_params_generate2:            Core TLS API.       (line 1528)
+* gnutls_dh_params_import_pkcs3:         Core TLS API.       (line 1551)
+* gnutls_dh_params_import_raw:           Core TLS API.       (line 1573)
+* gnutls_dh_params_init:                 Core TLS API.       (line 1592)
+* gnutls_dh_set_prime_bits:              Core TLS API.       (line 1603)
 * gnutls_dtls_cookie_send:               Datagram TLS API.   (line   11)
 * gnutls_dtls_cookie_verify:             Datagram TLS API.   (line   41)
 * gnutls_dtls_get_data_mtu:              Datagram TLS API.   (line   68)
@@ -1906,44 +3123,44 @@ Function and Data Index
 * gnutls_dtls_set_data_mtu:              Datagram TLS API.   (line  129)
 * gnutls_dtls_set_mtu:                   Datagram TLS API.   (line  152)
 * gnutls_dtls_set_timeouts:              Datagram TLS API.   (line  169)
-* gnutls_ecc_curve_get:                  Core TLS API.       (line 1625)
-* gnutls_ecc_curve_get_name:             Core TLS API.       (line 1639)
-* gnutls_ecc_curve_get_size:             Core TLS API.       (line 1653)
-* gnutls_ecc_curve_list:                 Core TLS API.       (line 1665)
+* gnutls_ecc_curve_get:                  Core TLS API.       (line 1626)
+* gnutls_ecc_curve_get_name:             Core TLS API.       (line 1640)
+* gnutls_ecc_curve_get_size:             Core TLS API.       (line 1654)
+* gnutls_ecc_curve_list:                 Core TLS API.       (line 1666)
 * gnutls_error_is_fatal:                 Data transfer and termination.
                                                              (line   69)
-* gnutls_error_is_fatal <1>:             Core TLS API.       (line 1677)
+* gnutls_error_is_fatal <1>:             Core TLS API.       (line 1678)
 * gnutls_error_to_alert:                 Handling alerts.    (line   66)
-* gnutls_error_to_alert <1>:             Core TLS API.       (line 1695)
-* gnutls_fingerprint:                    Core TLS API.       (line 1714)
-* gnutls_global_deinit:                  Core TLS API.       (line 1741)
-* gnutls_global_init:                    Core TLS API.       (line 1752)
+* gnutls_error_to_alert <1>:             Core TLS API.       (line 1696)
+* gnutls_fingerprint:                    Core TLS API.       (line 1715)
+* gnutls_global_deinit:                  Core TLS API.       (line 1742)
+* gnutls_global_init:                    Core TLS API.       (line 1753)
 * gnutls_global_set_audit_log_function:  Debugging and auditing.
                                                              (line   23)
-* gnutls_global_set_audit_log_function <1>: Core TLS API.    (line 1782)
-* gnutls_global_set_log_function:        Core TLS API.       (line 1801)
-* gnutls_global_set_log_level:           Core TLS API.       (line 1816)
-* gnutls_global_set_mem_functions:       Core TLS API.       (line 1829)
+* gnutls_global_set_audit_log_function <1>: Core TLS API.    (line 1783)
+* gnutls_global_set_log_function:        Core TLS API.       (line 1802)
+* gnutls_global_set_log_level:           Core TLS API.       (line 1817)
+* gnutls_global_set_mem_functions:       Core TLS API.       (line 1830)
 * gnutls_global_set_mutex:               Thread safety.      (line   37)
-* gnutls_global_set_mutex <1>:           Core TLS API.       (line 1861)
-* gnutls_global_set_time_function:       Core TLS API.       (line 1886)
+* gnutls_global_set_mutex <1>:           Core TLS API.       (line 1862)
+* gnutls_global_set_time_function:       Core TLS API.       (line 1887)
 * gnutls_handshake:                      TLS handshake.      (line   10)
-* gnutls_handshake <1>:                  Core TLS API.       (line 1900)
-* gnutls_handshake_get_last_in:          Core TLS API.       (line 1931)
-* gnutls_handshake_get_last_out:         Core TLS API.       (line 1948)
-* gnutls_handshake_set_max_packet_length: Core TLS API.      (line 1965)
+* gnutls_handshake <1>:                  Core TLS API.       (line 1901)
+* gnutls_handshake_get_last_in:          Core TLS API.       (line 1932)
+* gnutls_handshake_get_last_out:         Core TLS API.       (line 1949)
+* gnutls_handshake_set_max_packet_length: Core TLS API.      (line 1966)
 * gnutls_handshake_set_post_client_hello_function: Core TLS API.
-                                                             (line 1983)
-* gnutls_handshake_set_private_extensions: Core TLS API.     (line 2009)
+                                                             (line 1984)
+* gnutls_handshake_set_private_extensions: Core TLS API.     (line 2010)
 * gnutls_hash:                           Cryptographic API.  (line  194)
 * gnutls_hash_deinit:                    Cryptographic API.  (line  212)
 * gnutls_hash_fast:                      Cryptographic API.  (line  226)
 * gnutls_hash_get_len:                   Cryptographic API.  (line  246)
 * gnutls_hash_init:                      Cryptographic API.  (line  260)
 * gnutls_hash_output:                    Cryptographic API.  (line  278)
-* gnutls_hex2bin:                        Core TLS API.       (line 2028)
-* gnutls_hex_decode:                     Core TLS API.       (line 2049)
-* gnutls_hex_encode:                     Core TLS API.       (line 2068)
+* gnutls_hex2bin:                        Core TLS API.       (line 2029)
+* gnutls_hex_decode:                     Core TLS API.       (line 2050)
+* gnutls_hex_encode:                     Core TLS API.       (line 2069)
 * gnutls_hmac:                           Cryptographic API.  (line  291)
 * gnutls_hmac_deinit:                    Cryptographic API.  (line  309)
 * gnutls_hmac_fast:                      Cryptographic API.  (line  323)
@@ -1952,18 +3169,18 @@ Function and Data Index
 * gnutls_hmac_output:                    Cryptographic API.  (line  384)
 * gnutls_init:                           Session initialization.
                                                              (line   14)
-* gnutls_init <1>:                       Core TLS API.       (line 2085)
-* gnutls_key_generate:                   Core TLS API.       (line 2107)
-* gnutls_kx_get:                         Core TLS API.       (line 2124)
-* gnutls_kx_get_id:                      Core TLS API.       (line 2136)
-* gnutls_kx_get_name:                    Core TLS API.       (line 2148)
-* gnutls_kx_list:                        Core TLS API.       (line 2160)
+* gnutls_init <1>:                       Core TLS API.       (line 2086)
+* gnutls_key_generate:                   Core TLS API.       (line 2108)
+* gnutls_kx_get:                         Core TLS API.       (line 2125)
+* gnutls_kx_get_id:                      Core TLS API.       (line 2137)
+* gnutls_kx_get_name:                    Core TLS API.       (line 2149)
+* gnutls_kx_list:                        Core TLS API.       (line 2161)
 * gnutls_kx_set_priority:                Compatibility API.  (line   86)
-* gnutls_mac_get:                        Core TLS API.       (line 2172)
-* gnutls_mac_get_id:                     Core TLS API.       (line 2184)
-* gnutls_mac_get_key_size:               Core TLS API.       (line 2197)
-* gnutls_mac_get_name:                   Core TLS API.       (line 2209)
-* gnutls_mac_list:                       Core TLS API.       (line 2221)
+* gnutls_mac_get:                        Core TLS API.       (line 2173)
+* gnutls_mac_get_id:                     Core TLS API.       (line 2185)
+* gnutls_mac_get_key_size:               Core TLS API.       (line 2198)
+* gnutls_mac_get_name:                   Core TLS API.       (line 2210)
+* gnutls_mac_list:                       Core TLS API.       (line 2222)
 * gnutls_mac_set_priority:               Compatibility API.  (line  104)
 * gnutls_ocsp_req_add_cert:              OCSP API.           (line   12)
 * gnutls_ocsp_req_add_cert_id:           OCSP API.           (line   36)
@@ -1979,56 +3196,57 @@ Function and Data Index
 * gnutls_ocsp_req_randomize_nonce:       OCSP API.           (line  246)
 * gnutls_ocsp_req_set_extension:         OCSP API.           (line  259)
 * gnutls_ocsp_req_set_nonce:             OCSP API.           (line  280)
-* gnutls_ocsp_resp_deinit:               OCSP API.           (line  298)
-* gnutls_ocsp_resp_export:               OCSP API.           (line  306)
-* gnutls_ocsp_resp_get_certs:            OCSP API.           (line  320)
-* gnutls_ocsp_resp_get_extension:        OCSP API.           (line  347)
-* gnutls_ocsp_resp_get_nonce:            OCSP API.           (line  381)
-* gnutls_ocsp_resp_get_produced:         OCSP API.           (line  401)
-* gnutls_ocsp_resp_get_responder:        OCSP API.           (line  413)
-* gnutls_ocsp_resp_get_response:         OCSP API.           (line  433)
-* gnutls_ocsp_resp_get_signature:        OCSP API.           (line  460)
-* gnutls_ocsp_resp_get_signature_algorithm: OCSP API.        (line  474)
-* gnutls_ocsp_resp_get_single:           OCSP API.           (line  488)
-* gnutls_ocsp_resp_get_status:           OCSP API.           (line  556)
-* gnutls_ocsp_resp_get_version:          OCSP API.           (line  568)
-* gnutls_ocsp_resp_import:               OCSP API.           (line  580)
-* gnutls_ocsp_resp_init:                 OCSP API.           (line  596)
-* gnutls_ocsp_resp_print:                OCSP API.           (line  607)
-* gnutls_ocsp_resp_verify:               OCSP API.           (line  630)
-* gnutls_ocsp_resp_verify_direct:        OCSP API.           (line  668)
+* gnutls_ocsp_resp_check_crt:            OCSP API.           (line  298)
+* gnutls_ocsp_resp_deinit:               OCSP API.           (line  316)
+* gnutls_ocsp_resp_export:               OCSP API.           (line  324)
+* gnutls_ocsp_resp_get_certs:            OCSP API.           (line  338)
+* gnutls_ocsp_resp_get_extension:        OCSP API.           (line  365)
+* gnutls_ocsp_resp_get_nonce:            OCSP API.           (line  399)
+* gnutls_ocsp_resp_get_produced:         OCSP API.           (line  419)
+* gnutls_ocsp_resp_get_responder:        OCSP API.           (line  431)
+* gnutls_ocsp_resp_get_response:         OCSP API.           (line  451)
+* gnutls_ocsp_resp_get_signature:        OCSP API.           (line  478)
+* gnutls_ocsp_resp_get_signature_algorithm: OCSP API.        (line  492)
+* gnutls_ocsp_resp_get_single:           OCSP API.           (line  506)
+* gnutls_ocsp_resp_get_status:           OCSP API.           (line  574)
+* gnutls_ocsp_resp_get_version:          OCSP API.           (line  586)
+* gnutls_ocsp_resp_import:               OCSP API.           (line  598)
+* gnutls_ocsp_resp_init:                 OCSP API.           (line  614)
+* gnutls_ocsp_resp_print:                OCSP API.           (line  625)
+* gnutls_ocsp_resp_verify:               OCSP API.           (line  648)
+* gnutls_ocsp_resp_verify_direct:        OCSP API.           (line  686)
 * gnutls_openpgp_crt_check_hostname:     OpenPGP API.        (line  182)
 * gnutls_openpgp_crt_deinit:             OpenPGP API.        (line  197)
 * gnutls_openpgp_crt_export:             OpenPGP API.        (line  205)
 * gnutls_openpgp_crt_get_auth_subkey:    OpenPGP API.        (line  226)
-* gnutls_openpgp_crt_get_creation_time:  OpenPGP API.        (line  248)
-* gnutls_openpgp_crt_get_expiration_time: OpenPGP API.       (line  259)
-* gnutls_openpgp_crt_get_fingerprint:    OpenPGP API.        (line  271)
-* gnutls_openpgp_crt_get_key_id:         OpenPGP API.        (line  288)
-* gnutls_openpgp_crt_get_key_usage:      OpenPGP API.        (line  303)
-* gnutls_openpgp_crt_get_name:           OpenPGP API.        (line  318)
-* gnutls_openpgp_crt_get_pk_algorithm:   OpenPGP API.        (line  339)
-* gnutls_openpgp_crt_get_pk_dsa_raw:     OpenPGP API.        (line  359)
-* gnutls_openpgp_crt_get_pk_rsa_raw:     OpenPGP API.        (line  384)
-* gnutls_openpgp_crt_get_preferred_key_id: OpenPGP API.      (line  405)
-* gnutls_openpgp_crt_get_revoked_status: OpenPGP API.        (line  419)
-* gnutls_openpgp_crt_get_subkey_count:   OpenPGP API.        (line  433)
-* gnutls_openpgp_crt_get_subkey_creation_time: OpenPGP API.  (line  448)
+* gnutls_openpgp_crt_get_creation_time:  OpenPGP API.        (line  245)
+* gnutls_openpgp_crt_get_expiration_time: OpenPGP API.       (line  256)
+* gnutls_openpgp_crt_get_fingerprint:    OpenPGP API.        (line  268)
+* gnutls_openpgp_crt_get_key_id:         OpenPGP API.        (line  285)
+* gnutls_openpgp_crt_get_key_usage:      OpenPGP API.        (line  300)
+* gnutls_openpgp_crt_get_name:           OpenPGP API.        (line  315)
+* gnutls_openpgp_crt_get_pk_algorithm:   OpenPGP API.        (line  336)
+* gnutls_openpgp_crt_get_pk_dsa_raw:     OpenPGP API.        (line  356)
+* gnutls_openpgp_crt_get_pk_rsa_raw:     OpenPGP API.        (line  381)
+* gnutls_openpgp_crt_get_preferred_key_id: OpenPGP API.      (line  402)
+* gnutls_openpgp_crt_get_revoked_status: OpenPGP API.        (line  416)
+* gnutls_openpgp_crt_get_subkey_count:   OpenPGP API.        (line  430)
+* gnutls_openpgp_crt_get_subkey_creation_time: OpenPGP API.  (line  445)
 * gnutls_openpgp_crt_get_subkey_expiration_time: OpenPGP API.
-                                                             (line  463)
-* gnutls_openpgp_crt_get_subkey_fingerprint: OpenPGP API.    (line  479)
-* gnutls_openpgp_crt_get_subkey_id:      OpenPGP API.        (line  501)
-* gnutls_openpgp_crt_get_subkey_idx:     OpenPGP API.        (line  516)
-* gnutls_openpgp_crt_get_subkey_pk_algorithm: OpenPGP API.   (line  531)
-* gnutls_openpgp_crt_get_subkey_pk_dsa_raw: OpenPGP API.     (line  557)
-* gnutls_openpgp_crt_get_subkey_pk_rsa_raw: OpenPGP API.     (line  584)
-* gnutls_openpgp_crt_get_subkey_revoked_status: OpenPGP API. (line  607)
-* gnutls_openpgp_crt_get_subkey_usage:   OpenPGP API.        (line  624)
-* gnutls_openpgp_crt_get_version:        OpenPGP API.        (line  646)
-* gnutls_openpgp_crt_import:             OpenPGP API.        (line  658)
-* gnutls_openpgp_crt_init:               OpenPGP API.        (line  675)
-* gnutls_openpgp_crt_print:              OpenPGP API.        (line  685)
-* gnutls_openpgp_crt_set_preferred_key_id: OpenPGP API.      (line  706)
+                                                             (line  460)
+* gnutls_openpgp_crt_get_subkey_fingerprint: OpenPGP API.    (line  476)
+* gnutls_openpgp_crt_get_subkey_id:      OpenPGP API.        (line  498)
+* gnutls_openpgp_crt_get_subkey_idx:     OpenPGP API.        (line  513)
+* gnutls_openpgp_crt_get_subkey_pk_algorithm: OpenPGP API.   (line  528)
+* gnutls_openpgp_crt_get_subkey_pk_dsa_raw: OpenPGP API.     (line  554)
+* gnutls_openpgp_crt_get_subkey_pk_rsa_raw: OpenPGP API.     (line  581)
+* gnutls_openpgp_crt_get_subkey_revoked_status: OpenPGP API. (line  604)
+* gnutls_openpgp_crt_get_subkey_usage:   OpenPGP API.        (line  621)
+* gnutls_openpgp_crt_get_version:        OpenPGP API.        (line  643)
+* gnutls_openpgp_crt_import:             OpenPGP API.        (line  655)
+* gnutls_openpgp_crt_init:               OpenPGP API.        (line  672)
+* gnutls_openpgp_crt_print:              OpenPGP API.        (line  682)
+* gnutls_openpgp_crt_set_preferred_key_id: OpenPGP API.      (line  703)
 * gnutls_openpgp_crt_verify_ring:        OpenPGP certificates.
                                                              (line   58)
 * gnutls_openpgp_crt_verify_ring <1>:    OpenPGP API.        (line  721)
@@ -2068,19 +3286,19 @@ Function and Data Index
 * gnutls_openpgp_privkey_sec_param:      OpenPGP API.        (line 1253)
 * gnutls_openpgp_privkey_set_preferred_key_id: OpenPGP API.  (line 1268)
 * gnutls_openpgp_privkey_sign_hash:      Compatibility API.  (line  122)
-* gnutls_openpgp_send_cert:              Core TLS API.       (line 2236)
-* gnutls_openpgp_set_recv_key_function:  OpenPGP API.        (line 1283)
+* gnutls_openpgp_send_cert:              Core TLS API.       (line 2237)
+* gnutls_openpgp_set_recv_key_function:  OpenPGP API.        (line 1287)
 * gnutls_pcert_deinit:                   Abstract key API.   (line   96)
 * gnutls_pcert_import_openpgp:           Abstract key API.   (line  106)
 * gnutls_pcert_import_openpgp_raw:       Abstract key API.   (line  126)
 * gnutls_pcert_import_x509:              Abstract key API.   (line  151)
 * gnutls_pcert_import_x509_raw:          Abstract key API.   (line  171)
 * gnutls_pcert_list_import_x509_raw:     Abstract key API.   (line  194)
-* gnutls_pem_base64_decode:              Core TLS API.       (line 2251)
-* gnutls_pem_base64_decode_alloc:        Core TLS API.       (line 2275)
-* gnutls_pem_base64_encode:              Core TLS API.       (line 2297)
-* gnutls_pem_base64_encode_alloc:        Core TLS API.       (line 2320)
-* gnutls_perror:                         Core TLS API.       (line 2341)
+* gnutls_pem_base64_decode:              Core TLS API.       (line 2252)
+* gnutls_pem_base64_decode_alloc:        Core TLS API.       (line 2276)
+* gnutls_pem_base64_encode:              Core TLS API.       (line 2298)
+* gnutls_pem_base64_encode_alloc:        Core TLS API.       (line 2321)
+* gnutls_perror:                         Core TLS API.       (line 2342)
 * gnutls_pkcs11_add_provider:            PKCS 11 API.        (line   12)
 * gnutls_pkcs11_copy_secret_key:         PKCS 11 API.        (line   30)
 * gnutls_pkcs11_copy_x509_crt:           Writing objects.    (line   36)
@@ -2102,26 +3320,25 @@ Function and Data Index
 * gnutls_pkcs11_obj_import_url:          PKCS 11 API.        (line  250)
 * gnutls_pkcs11_obj_init:                PKCS 11 API.        (line  272)
 * gnutls_pkcs11_obj_list_import_url:     PKCS 11 API.        (line  285)
-* gnutls_pkcs11_obj_list_import_url2:    PKCS 11 API.        (line  311)
-* gnutls_pkcs11_privkey_deinit:          PKCS 11 API.        (line  338)
-* gnutls_pkcs11_privkey_export_url:      PKCS 11 API.        (line  347)
-* gnutls_pkcs11_privkey_generate:        PKCS 11 API.        (line  364)
-* gnutls_pkcs11_privkey_get_info:        PKCS 11 API.        (line  389)
-* gnutls_pkcs11_privkey_get_pk_algorithm: PKCS 11 API.       (line  412)
-* gnutls_pkcs11_privkey_import_url:      PKCS 11 API.        (line  428)
-* gnutls_pkcs11_privkey_init:            PKCS 11 API.        (line  448)
+* gnutls_pkcs11_privkey_deinit:          PKCS 11 API.        (line  311)
+* gnutls_pkcs11_privkey_export_url:      PKCS 11 API.        (line  320)
+* gnutls_pkcs11_privkey_generate:        PKCS 11 API.        (line  337)
+* gnutls_pkcs11_privkey_get_info:        PKCS 11 API.        (line  362)
+* gnutls_pkcs11_privkey_get_pk_algorithm: PKCS 11 API.       (line  385)
+* gnutls_pkcs11_privkey_import_url:      PKCS 11 API.        (line  401)
+* gnutls_pkcs11_privkey_init:            PKCS 11 API.        (line  421)
 * gnutls_pkcs11_reinit:                  PKCS11 Initialization.
                                                              (line   55)
-* gnutls_pkcs11_reinit <1>:              PKCS 11 API.        (line  460)
-* gnutls_pkcs11_set_pin_function:        PKCS 11 API.        (line  474)
-* gnutls_pkcs11_set_token_function:      PKCS 11 API.        (line  489)
-* gnutls_pkcs11_token_get_flags:         PKCS 11 API.        (line  503)
-* gnutls_pkcs11_token_get_info:          PKCS 11 API.        (line  521)
-* gnutls_pkcs11_token_get_mechanism:     PKCS 11 API.        (line  544)
-* gnutls_pkcs11_token_get_url:           PKCS 11 API.        (line  564)
-* gnutls_pkcs11_token_init:              PKCS 11 API.        (line  584)
-* gnutls_pkcs11_token_set_pin:           PKCS 11 API.        (line  603)
-* gnutls_pkcs11_type_get_name:           PKCS 11 API.        (line  623)
+* gnutls_pkcs11_reinit <1>:              PKCS 11 API.        (line  433)
+* gnutls_pkcs11_set_pin_function:        PKCS 11 API.        (line  447)
+* gnutls_pkcs11_set_token_function:      PKCS 11 API.        (line  462)
+* gnutls_pkcs11_token_get_flags:         PKCS 11 API.        (line  476)
+* gnutls_pkcs11_token_get_info:          PKCS 11 API.        (line  494)
+* gnutls_pkcs11_token_get_mechanism:     PKCS 11 API.        (line  517)
+* gnutls_pkcs11_token_get_url:           PKCS 11 API.        (line  537)
+* gnutls_pkcs11_token_init:              PKCS 11 API.        (line  557)
+* gnutls_pkcs11_token_set_pin:           PKCS 11 API.        (line  576)
+* gnutls_pkcs11_type_get_name:           PKCS 11 API.        (line  596)
 * gnutls_pkcs12_bag_decrypt:             PKCS 12 API.        (line   12)
 * gnutls_pkcs12_bag_deinit:              PKCS 12 API.        (line   27)
 * gnutls_pkcs12_bag_encrypt:             PKCS 12 API.        (line   35)
@@ -2172,26 +3389,26 @@ Function and Data Index
                                                              (line  209)
 * gnutls_pkcs7_set_crt_raw:              X509 certificate API.
                                                              (line  225)
-* gnutls_pk_algorithm_get_name:          Core TLS API.       (line 2350)
+* gnutls_pk_algorithm_get_name:          Core TLS API.       (line 2351)
 * gnutls_pk_bits_to_sec_param:           Selecting cryptographic key sizes.
                                                              (line   73)
-* gnutls_pk_bits_to_sec_param <1>:       Core TLS API.       (line 2362)
-* gnutls_pk_get_id:                      Core TLS API.       (line 2379)
-* gnutls_pk_get_name:                    Core TLS API.       (line 2394)
-* gnutls_pk_list:                        Core TLS API.       (line 2408)
-* gnutls_pk_to_sign:                     Core TLS API.       (line 2422)
-* gnutls_prf:                            Core TLS API.       (line 2437)
-* gnutls_prf_raw:                        Core TLS API.       (line 2479)
-* gnutls_priority_certificate_type_list: Core TLS API.       (line 2518)
-* gnutls_priority_compression_list:      Core TLS API.       (line 2534)
-* gnutls_priority_deinit:                Core TLS API.       (line 2550)
-* gnutls_priority_ecc_curve_list:        Core TLS API.       (line 2559)
-* gnutls_priority_get_cipher_suite_index: Core TLS API.      (line 2574)
-* gnutls_priority_init:                  Core TLS API.       (line 2597)
-* gnutls_priority_protocol_list:         Core TLS API.       (line 2667)
-* gnutls_priority_set:                   Core TLS API.       (line 2683)
-* gnutls_priority_set_direct:            Core TLS API.       (line 2697)
-* gnutls_priority_sign_list:             Core TLS API.       (line 2718)
+* gnutls_pk_bits_to_sec_param <1>:       Core TLS API.       (line 2363)
+* gnutls_pk_get_id:                      Core TLS API.       (line 2380)
+* gnutls_pk_get_name:                    Core TLS API.       (line 2395)
+* gnutls_pk_list:                        Core TLS API.       (line 2409)
+* gnutls_pk_to_sign:                     Core TLS API.       (line 2423)
+* gnutls_prf:                            Core TLS API.       (line 2438)
+* gnutls_prf_raw:                        Core TLS API.       (line 2480)
+* gnutls_priority_certificate_type_list: Core TLS API.       (line 2519)
+* gnutls_priority_compression_list:      Core TLS API.       (line 2535)
+* gnutls_priority_deinit:                Core TLS API.       (line 2551)
+* gnutls_priority_ecc_curve_list:        Core TLS API.       (line 2560)
+* gnutls_priority_get_cipher_suite_index: Core TLS API.      (line 2575)
+* gnutls_priority_init:                  Core TLS API.       (line 2598)
+* gnutls_priority_protocol_list:         Core TLS API.       (line 2668)
+* gnutls_priority_set:                   Core TLS API.       (line 2684)
+* gnutls_priority_set_direct:            Core TLS API.       (line 2698)
+* gnutls_priority_sign_list:             Core TLS API.       (line 2719)
 * gnutls_privkey_decrypt_data:           Operations.         (line  126)
 * gnutls_privkey_decrypt_data <1>:       Abstract key API.   (line  225)
 * gnutls_privkey_deinit:                 Abstract key API.   (line  248)
@@ -2208,29 +3425,29 @@ Function and Data Index
 * gnutls_privkey_sign_data <1>:          Abstract key API.   (line  412)
 * gnutls_privkey_sign_hash:              Operations.         (line   99)
 * gnutls_privkey_sign_hash <1>:          Abstract key API.   (line  443)
-* gnutls_protocol_get_id:                Core TLS API.       (line 2734)
-* gnutls_protocol_get_name:              Core TLS API.       (line 2746)
-* gnutls_protocol_get_version:           Core TLS API.       (line 2758)
-* gnutls_protocol_list:                  Core TLS API.       (line 2769)
+* gnutls_protocol_get_id:                Core TLS API.       (line 2735)
+* gnutls_protocol_get_name:              Core TLS API.       (line 2747)
+* gnutls_protocol_get_version:           Core TLS API.       (line 2759)
+* gnutls_protocol_list:                  Core TLS API.       (line 2770)
 * gnutls_protocol_set_priority:          Compatibility API.  (line  143)
-* gnutls_psk_allocate_client_credentials: Core TLS API.      (line 2781)
-* gnutls_psk_allocate_server_credentials: Core TLS API.      (line 2794)
-* gnutls_psk_client_get_hint:            Core TLS API.       (line 2807)
-* gnutls_psk_free_client_credentials:    Core TLS API.       (line 2823)
-* gnutls_psk_free_server_credentials:    Core TLS API.       (line 2833)
-* gnutls_psk_server_get_username:        Core TLS API.       (line 2843)
-* gnutls_psk_set_client_credentials:     Core TLS API.       (line 2855)
+* gnutls_psk_allocate_client_credentials: Core TLS API.      (line 2782)
+* gnutls_psk_allocate_server_credentials: Core TLS API.      (line 2795)
+* gnutls_psk_client_get_hint:            Core TLS API.       (line 2808)
+* gnutls_psk_free_client_credentials:    Core TLS API.       (line 2824)
+* gnutls_psk_free_server_credentials:    Core TLS API.       (line 2834)
+* gnutls_psk_server_get_username:        Core TLS API.       (line 2844)
+* gnutls_psk_set_client_credentials:     Core TLS API.       (line 2856)
 * gnutls_psk_set_client_credentials_function: PSK credentials.
                                                              (line   22)
 * gnutls_psk_set_client_credentials_function <1>: Core TLS API.
-                                                             (line 2880)
-* gnutls_psk_set_params_function:        Core TLS API.       (line 2904)
+                                                             (line 2881)
+* gnutls_psk_set_params_function:        Core TLS API.       (line 2905)
 * gnutls_psk_set_server_credentials_file: PSK credentials.   (line   58)
-* gnutls_psk_set_server_credentials_file <1>: Core TLS API.  (line 2918)
-* gnutls_psk_set_server_credentials_function: Core TLS API.  (line 2935)
-* gnutls_psk_set_server_credentials_hint: Core TLS API.      (line 2960)
-* gnutls_psk_set_server_dh_params:       Core TLS API.       (line 2979)
-* gnutls_psk_set_server_params_function: Core TLS API.       (line 2993)
+* gnutls_psk_set_server_credentials_file <1>: Core TLS API.  (line 2919)
+* gnutls_psk_set_server_credentials_function: Core TLS API.  (line 2936)
+* gnutls_psk_set_server_credentials_hint: Core TLS API.      (line 2961)
+* gnutls_psk_set_server_dh_params:       Core TLS API.       (line 2980)
+* gnutls_psk_set_server_params_function: Core TLS API.       (line 2994)
 * gnutls_pubkey_deinit:                  Abstract key API.   (line  473)
 * gnutls_pubkey_encrypt_data:            Operations.         (line   53)
 * gnutls_pubkey_encrypt_data <1>:        Abstract key API.   (line  483)
@@ -2240,55 +3457,55 @@ Function and Data Index
 * gnutls_pubkey_get_key_id:              Abstract key API.   (line  535)
 * gnutls_pubkey_get_key_usage:           Abstract key API.   (line  564)
 * gnutls_pubkey_get_openpgp_key_id:      Abstract key API.   (line  581)
-* gnutls_pubkey_get_pk_algorithm:        Abstract key API.   (line  612)
-* gnutls_pubkey_get_pk_dsa_raw:          Abstract key API.   (line  631)
-* gnutls_pubkey_get_pk_ecc_raw:          Abstract key API.   (line  656)
-* gnutls_pubkey_get_pk_ecc_x962:         Abstract key API.   (line  679)
-* gnutls_pubkey_get_pk_rsa_raw:          Abstract key API.   (line  699)
+* gnutls_pubkey_get_pk_algorithm:        Abstract key API.   (line  614)
+* gnutls_pubkey_get_pk_dsa_raw:          Abstract key API.   (line  633)
+* gnutls_pubkey_get_pk_ecc_raw:          Abstract key API.   (line  658)
+* gnutls_pubkey_get_pk_ecc_x962:         Abstract key API.   (line  681)
+* gnutls_pubkey_get_pk_rsa_raw:          Abstract key API.   (line  701)
 * gnutls_pubkey_get_preferred_hash_algorithm: Abstract key API.
-                                                             (line  719)
-* gnutls_pubkey_get_verify_algorithm:    Abstract key API.   (line  743)
-* gnutls_pubkey_import:                  Abstract key API.   (line  764)
-* gnutls_pubkey_import_dsa_raw:          Abstract key API.   (line  785)
-* gnutls_pubkey_import_ecc_raw:          Abstract key API.   (line  810)
-* gnutls_pubkey_import_ecc_x962:         Abstract key API.   (line  832)
-* gnutls_pubkey_import_openpgp:          Abstract key API.   (line  852)
-* gnutls_pubkey_import_pkcs11:           Abstract key API.   (line  873)
-* gnutls_pubkey_import_pkcs11_url:       Abstract key API.   (line  892)
-* gnutls_pubkey_import_privkey:          Abstract key API.   (line  911)
-* gnutls_pubkey_import_rsa_raw:          Abstract key API.   (line  932)
+                                                             (line  721)
+* gnutls_pubkey_get_verify_algorithm:    Abstract key API.   (line  745)
+* gnutls_pubkey_import:                  Abstract key API.   (line  766)
+* gnutls_pubkey_import_dsa_raw:          Abstract key API.   (line  787)
+* gnutls_pubkey_import_ecc_raw:          Abstract key API.   (line  812)
+* gnutls_pubkey_import_ecc_x962:         Abstract key API.   (line  834)
+* gnutls_pubkey_import_openpgp:          Abstract key API.   (line  854)
+* gnutls_pubkey_import_pkcs11:           Abstract key API.   (line  875)
+* gnutls_pubkey_import_pkcs11_url:       Abstract key API.   (line  894)
+* gnutls_pubkey_import_privkey:          Abstract key API.   (line  913)
+* gnutls_pubkey_import_rsa_raw:          Abstract key API.   (line  934)
 * gnutls_pubkey_import_x509:             Abstract public keys.
                                                              (line   11)
-* gnutls_pubkey_import_x509 <1>:         Abstract key API.   (line  952)
-* gnutls_pubkey_init:                    Abstract key API.   (line  971)
-* gnutls_pubkey_set_key_usage:           Abstract key API.   (line  984)
-* gnutls_pubkey_verify_data:             Abstract key API.   (line 1002)
+* gnutls_pubkey_import_x509 <1>:         Abstract key API.   (line  954)
+* gnutls_pubkey_init:                    Abstract key API.   (line  973)
+* gnutls_pubkey_set_key_usage:           Abstract key API.   (line  986)
+* gnutls_pubkey_verify_data:             Abstract key API.   (line 1004)
 * gnutls_pubkey_verify_data2:            Operations.         (line    9)
-* gnutls_pubkey_verify_data2 <1>:        Abstract key API.   (line 1025)
-* gnutls_pubkey_verify_hash:             Abstract key API.   (line 1050)
+* gnutls_pubkey_verify_data2 <1>:        Abstract key API.   (line 1027)
+* gnutls_pubkey_verify_hash:             Abstract key API.   (line 1052)
 * gnutls_pubkey_verify_hash2:            Operations.         (line   31)
-* gnutls_pubkey_verify_hash2 <1>:        Abstract key API.   (line 1074)
-* gnutls_random_art:                     Core TLS API.       (line 3007)
+* gnutls_pubkey_verify_hash2 <1>:        Abstract key API.   (line 1078)
+* gnutls_random_art:                     Core TLS API.       (line 3008)
 * gnutls_record_check_pending:           Data transfer and termination.
                                                              (line  124)
-* gnutls_record_check_pending <1>:       Core TLS API.       (line 3031)
-* gnutls_record_disable_padding:         Core TLS API.       (line 3044)
+* gnutls_record_check_pending <1>:       Core TLS API.       (line 3032)
+* gnutls_record_disable_padding:         Core TLS API.       (line 3045)
 * gnutls_record_get_direction:           Asynchronous operation.
                                                              (line   40)
-* gnutls_record_get_direction <1>:       Core TLS API.       (line 3059)
+* gnutls_record_get_direction <1>:       Core TLS API.       (line 3060)
 * gnutls_record_get_discarded:           Datagram TLS API.   (line  196)
-* gnutls_record_get_max_size:            Core TLS API.       (line 3079)
+* gnutls_record_get_max_size:            Core TLS API.       (line 3080)
 * gnutls_record_recv:                    Data transfer and termination.
                                                              (line   40)
-* gnutls_record_recv <1>:                Core TLS API.       (line 3091)
+* gnutls_record_recv <1>:                Core TLS API.       (line 3092)
 * gnutls_record_recv_seq:                Data transfer and termination.
                                                              (line   93)
-* gnutls_record_recv_seq <1>:            Core TLS API.       (line 3123)
+* gnutls_record_recv_seq <1>:            Core TLS API.       (line 3124)
 * gnutls_record_send:                    Data transfer and termination.
                                                              (line   12)
-* gnutls_record_send <1>:                Core TLS API.       (line 3150)
-* gnutls_record_set_max_size:            Core TLS API.       (line 3181)
-* gnutls_rehandshake:                    Core TLS API.       (line 3205)
+* gnutls_record_send <1>:                Core TLS API.       (line 3151)
+* gnutls_record_set_max_size:            Core TLS API.       (line 3182)
+* gnutls_rehandshake:                    Core TLS API.       (line 3206)
 * gnutls_rnd:                            Random number generation.
                                                              (line   21)
 * gnutls_rnd <1>:                        Cryptographic API.  (line  397)
@@ -2302,104 +3519,104 @@ Function and Data Index
 * gnutls_rsa_params_import_pkcs1:        Compatibility API.  (line  290)
 * gnutls_rsa_params_import_raw:          Compatibility API.  (line  312)
 * gnutls_rsa_params_init:                Compatibility API.  (line  340)
-* gnutls_safe_renegotiation_status:      Core TLS API.       (line 3236)
-* gnutls_sec_param_get_name:             Core TLS API.       (line 3251)
+* gnutls_safe_renegotiation_status:      Core TLS API.       (line 3237)
+* gnutls_sec_param_get_name:             Core TLS API.       (line 3252)
 * gnutls_sec_param_to_pk_bits:           Selecting cryptographic key sizes.
                                                              (line   57)
-* gnutls_sec_param_to_pk_bits <1>:       Core TLS API.       (line 3265)
-* gnutls_server_name_get:                Core TLS API.       (line 3284)
-* gnutls_server_name_set:                Core TLS API.       (line 3321)
-* gnutls_session_channel_binding:        Core TLS API.       (line 3348)
-* gnutls_session_enable_compatibility_mode: Core TLS API.    (line 3369)
-* gnutls_session_get_data:               Core TLS API.       (line 3383)
-* gnutls_session_get_data2:              Core TLS API.       (line 3407)
-* gnutls_session_get_id:                 Core TLS API.       (line 3429)
-* gnutls_session_get_ptr:                Core TLS API.       (line 3453)
-* gnutls_session_get_random:             Core TLS API.       (line 3465)
+* gnutls_sec_param_to_pk_bits <1>:       Core TLS API.       (line 3266)
+* gnutls_server_name_get:                Core TLS API.       (line 3285)
+* gnutls_server_name_set:                Core TLS API.       (line 3322)
+* gnutls_session_channel_binding:        Core TLS API.       (line 3349)
+* gnutls_session_enable_compatibility_mode: Core TLS API.    (line 3370)
+* gnutls_session_get_data:               Core TLS API.       (line 3384)
+* gnutls_session_get_data2:              Core TLS API.       (line 3408)
+* gnutls_session_get_id:                 Core TLS API.       (line 3430)
+* gnutls_session_get_ptr:                Core TLS API.       (line 3454)
+* gnutls_session_get_random:             Core TLS API.       (line 3466)
 * gnutls_session_is_resumed:             Session resumption. (line   33)
-* gnutls_session_is_resumed <1>:         Core TLS API.       (line 3485)
+* gnutls_session_is_resumed <1>:         Core TLS API.       (line 3486)
 * gnutls_session_resumption_requested:   Session resumption. (line   94)
-* gnutls_session_resumption_requested <1>: Core TLS API.     (line 3496)
-* gnutls_session_set_data:               Core TLS API.       (line 3509)
-* gnutls_session_set_premaster:          Core TLS API.       (line 3532)
-* gnutls_session_set_ptr:                Core TLS API.       (line 3567)
-* gnutls_session_ticket_enable_client:   Core TLS API.       (line 3580)
+* gnutls_session_resumption_requested <1>: Core TLS API.     (line 3497)
+* gnutls_session_set_data:               Core TLS API.       (line 3510)
+* gnutls_session_set_premaster:          Core TLS API.       (line 3533)
+* gnutls_session_set_ptr:                Core TLS API.       (line 3568)
+* gnutls_session_ticket_enable_client:   Core TLS API.       (line 3581)
 * gnutls_session_ticket_enable_server:   Session resumption. (line   66)
-* gnutls_session_ticket_enable_server <1>: Core TLS API.     (line 3595)
+* gnutls_session_ticket_enable_server <1>: Core TLS API.     (line 3596)
 * gnutls_session_ticket_key_generate:    Session resumption. (line   81)
-* gnutls_session_ticket_key_generate <1>: Core TLS API.      (line 3613)
+* gnutls_session_ticket_key_generate <1>: Core TLS API.      (line 3614)
 * gnutls_set_default_export_priority:    Compatibility API.  (line  353)
-* gnutls_set_default_priority:           Core TLS API.       (line 3629)
-* gnutls_sign_algorithm_get_requested:   Core TLS API.       (line 3650)
+* gnutls_set_default_priority:           Core TLS API.       (line 3630)
+* gnutls_sign_algorithm_get_requested:   Core TLS API.       (line 3651)
 * gnutls_sign_callback_get:              Compatibility API.  (line  376)
 * gnutls_sign_callback_set:              Compatibility API.  (line  392)
-* gnutls_sign_get_id:                    Core TLS API.       (line 3677)
-* gnutls_sign_get_name:                  Core TLS API.       (line 3689)
-* gnutls_sign_list:                      Core TLS API.       (line 3701)
-* gnutls_srp_allocate_client_credentials: Core TLS API.      (line 3711)
-* gnutls_srp_allocate_server_credentials: Core TLS API.      (line 3724)
-* gnutls_srp_base64_decode:              Core TLS API.       (line 3737)
-* gnutls_srp_base64_decode_alloc:        Core TLS API.       (line 3759)
-* gnutls_srp_base64_encode:              Core TLS API.       (line 3779)
-* gnutls_srp_base64_encode_alloc:        Core TLS API.       (line 3801)
-* gnutls_srp_free_client_credentials:    Core TLS API.       (line 3822)
-* gnutls_srp_free_server_credentials:    Core TLS API.       (line 3832)
-* gnutls_srp_server_get_username:        Core TLS API.       (line 3842)
-* gnutls_srp_set_client_credentials:     Core TLS API.       (line 3855)
+* gnutls_sign_get_id:                    Core TLS API.       (line 3678)
+* gnutls_sign_get_name:                  Core TLS API.       (line 3690)
+* gnutls_sign_list:                      Core TLS API.       (line 3702)
+* gnutls_srp_allocate_client_credentials: Core TLS API.      (line 3712)
+* gnutls_srp_allocate_server_credentials: Core TLS API.      (line 3725)
+* gnutls_srp_base64_decode:              Core TLS API.       (line 3738)
+* gnutls_srp_base64_decode_alloc:        Core TLS API.       (line 3760)
+* gnutls_srp_base64_encode:              Core TLS API.       (line 3780)
+* gnutls_srp_base64_encode_alloc:        Core TLS API.       (line 3802)
+* gnutls_srp_free_client_credentials:    Core TLS API.       (line 3823)
+* gnutls_srp_free_server_credentials:    Core TLS API.       (line 3833)
+* gnutls_srp_server_get_username:        Core TLS API.       (line 3843)
+* gnutls_srp_set_client_credentials:     Core TLS API.       (line 3856)
 * gnutls_srp_set_client_credentials_function: SRP credentials.
                                                              (line   19)
 * gnutls_srp_set_client_credentials_function <1>: Core TLS API.
-                                                             (line 3876)
-* gnutls_srp_set_prime_bits:             Core TLS API.       (line 3906)
+                                                             (line 3877)
+* gnutls_srp_set_prime_bits:             Core TLS API.       (line 3907)
 * gnutls_srp_set_server_credentials_file: SRP credentials.   (line   53)
-* gnutls_srp_set_server_credentials_file <1>: Core TLS API.  (line 3927)
+* gnutls_srp_set_server_credentials_file <1>: Core TLS API.  (line 3928)
 * gnutls_srp_set_server_credentials_function: SRP credentials.
                                                              (line   70)
 * gnutls_srp_set_server_credentials_function <1>: Core TLS API.
-                                                             (line 3947)
+                                                             (line 3948)
 * gnutls_srp_verifier:                   Authentication using SRP.
                                                              (line   43)
-* gnutls_srp_verifier <1>:               Core TLS API.       (line 3981)
+* gnutls_srp_verifier <1>:               Core TLS API.       (line 3982)
 * gnutls_store_commitment:               Verifying a certificate using trust on first use authentication.
                                                              (line  100)
-* gnutls_store_commitment <1>:           Core TLS API.       (line 4010)
+* gnutls_store_commitment <1>:           Core TLS API.       (line 4011)
 * gnutls_store_pubkey:                   Verifying a certificate using trust on first use authentication.
                                                              (line   62)
-* gnutls_store_pubkey <1>:               Core TLS API.       (line 4050)
-* gnutls_strerror:                       Core TLS API.       (line 4087)
-* gnutls_strerror_name:                  Core TLS API.       (line 4101)
-* gnutls_supplemental_get_name:          Core TLS API.       (line 4116)
-* gnutls_tdb_deinit:                     Core TLS API.       (line 4129)
-* gnutls_tdb_init:                       Core TLS API.       (line 4138)
-* gnutls_tdb_set_store_commitment_func:  Core TLS API.       (line 4149)
-* gnutls_tdb_set_store_func:             Core TLS API.       (line 4166)
-* gnutls_tdb_set_verify_func:            Core TLS API.       (line 4181)
-* gnutls_transport_get_ptr:              Core TLS API.       (line 4196)
-* gnutls_transport_get_ptr2:             Core TLS API.       (line 4209)
+* gnutls_store_pubkey <1>:               Core TLS API.       (line 4051)
+* gnutls_strerror:                       Core TLS API.       (line 4088)
+* gnutls_strerror_name:                  Core TLS API.       (line 4102)
+* gnutls_supplemental_get_name:          Core TLS API.       (line 4117)
+* gnutls_tdb_deinit:                     Core TLS API.       (line 4130)
+* gnutls_tdb_init:                       Core TLS API.       (line 4139)
+* gnutls_tdb_set_store_commitment_func:  Core TLS API.       (line 4150)
+* gnutls_tdb_set_store_func:             Core TLS API.       (line 4167)
+* gnutls_tdb_set_verify_func:            Core TLS API.       (line 4182)
+* gnutls_transport_get_ptr:              Core TLS API.       (line 4197)
+* gnutls_transport_get_ptr2:             Core TLS API.       (line 4210)
 * gnutls_transport_set_errno:            Setting up the transport layer.
                                                              (line   86)
-* gnutls_transport_set_errno <1>:        Core TLS API.       (line 4225)
-* gnutls_transport_set_errno_function:   Core TLS API.       (line 4245)
-* gnutls_transport_set_ptr:              Core TLS API.       (line 4263)
+* gnutls_transport_set_errno <1>:        Core TLS API.       (line 4226)
+* gnutls_transport_set_errno_function:   Core TLS API.       (line 4246)
+* gnutls_transport_set_ptr:              Core TLS API.       (line 4264)
 * gnutls_transport_set_ptr2:             Setting up the transport layer.
                                                              (line   11)
-* gnutls_transport_set_ptr2 <1>:         Core TLS API.       (line 4276)
+* gnutls_transport_set_ptr2 <1>:         Core TLS API.       (line 4277)
 * gnutls_transport_set_pull_function:    Setting up the transport layer.
                                                              (line   63)
-* gnutls_transport_set_pull_function <1>: Core TLS API.      (line 4293)
+* gnutls_transport_set_pull_function <1>: Core TLS API.      (line 4294)
 * gnutls_transport_set_pull_timeout_function: Setting up the transport layer.
                                                              (line  123)
 * gnutls_transport_set_pull_timeout_function <1>: Core TLS API.
-                                                             (line 4311)
+                                                             (line 4312)
 * gnutls_transport_set_push_function:    Setting up the transport layer.
                                                              (line   30)
-* gnutls_transport_set_push_function <1>: Core TLS API.      (line 4334)
+* gnutls_transport_set_push_function <1>: Core TLS API.      (line 4335)
 * gnutls_transport_set_vec_push_function: Setting up the transport layer.
                                                              (line   47)
-* gnutls_transport_set_vec_push_function <1>: Core TLS API.  (line 4354)
+* gnutls_transport_set_vec_push_function <1>: Core TLS API.  (line 4355)
 * gnutls_verify_stored_pubkey:           Verifying a certificate using trust on first use authentication.
                                                              (line   19)
-* gnutls_verify_stored_pubkey <1>:       Core TLS API.       (line 4373)
+* gnutls_verify_stored_pubkey <1>:       Core TLS API.       (line 4374)
 * gnutls_x509_crl_check_issuer:          X509 certificate API.
                                                              (line  240)
 * gnutls_x509_crl_deinit:                X509 certificate API.
@@ -2452,7 +3669,7 @@ Function and Data Index
                                                              (line  761)
 * gnutls_x509_crl_privkey_sign:          PKIX certificate revocation lists.
                                                              (line   77)
-* gnutls_x509_crl_privkey_sign <1>:      Abstract key API.   (line 1099)
+* gnutls_x509_crl_privkey_sign <1>:      Abstract key API.   (line 1103)
 * gnutls_x509_crl_set_authority_key_id:  X509 certificate API.
                                                              (line  781)
 * gnutls_x509_crl_set_crt:               X509 certificate API.
@@ -2524,7 +3741,7 @@ Function and Data Index
                                                              (line 1544)
 * gnutls_x509_crq_print:                 X509 certificate API.
                                                              (line 1556)
-* gnutls_x509_crq_privkey_sign:          Abstract key API.   (line 1127)
+* gnutls_x509_crq_privkey_sign:          Abstract key API.   (line 1131)
 * gnutls_x509_crq_set_attribute_by_oid:  X509 certificate API.
                                                              (line 1578)
 * gnutls_x509_crq_set_basic_constraints: X509 certificate API.
@@ -2546,7 +3763,7 @@ Function and Data Index
 * gnutls_x509_crq_set_private_key_usage_period: X509 certificate API.
                                                              (line 1737)
 * gnutls_x509_crq_set_pubkey:            Operations.         (line  150)
-* gnutls_x509_crq_set_pubkey <1>:        Abstract key API.   (line 1156)
+* gnutls_x509_crq_set_pubkey <1>:        Abstract key API.   (line 1160)
 * gnutls_x509_crq_set_subject_alt_name:  X509 certificate API.
                                                              (line 1754)
 * gnutls_x509_crq_set_version:           X509 certificate API.
@@ -2563,284 +3780,278 @@ Function and Data Index
 * gnutls_x509_crt_check_issuer:          X509 certificate API.
                                                              (line 1856)
 * gnutls_x509_crt_check_revocation:      X509 certificate API.
-                                                             (line 1872)
+                                                             (line 1873)
 * gnutls_x509_crt_cpy_crl_dist_points:   X509 certificate API.
-                                                             (line 1889)
+                                                             (line 1890)
 * gnutls_x509_crt_deinit:                X509 certificate API.
-                                                             (line 1905)
+                                                             (line 1906)
 * gnutls_x509_crt_export:                X509 certificate API.
-                                                             (line 1913)
+                                                             (line 1914)
 * gnutls_x509_crt_get_activation_time:   X509 certificate API.
-                                                             (line 1940)
+                                                             (line 1941)
 * gnutls_x509_crt_get_authority_info_access: X509 certificate API.
-                                                             (line 1952)
+                                                             (line 1953)
 * gnutls_x509_crt_get_authority_key_gn_serial: X509 certificate API.
-                                                             (line 2029)
+                                                             (line 2030)
 * gnutls_x509_crt_get_authority_key_id:  X509 certificate API.
-                                                             (line 2068)
+                                                             (line 2069)
 * gnutls_x509_crt_get_basic_constraints: X509 certificate API.
-                                                             (line 2095)
+                                                             (line 2096)
 * gnutls_x509_crt_get_ca_status:         X509 certificate API.
-                                                             (line 2123)
+                                                             (line 2124)
 * gnutls_x509_crt_get_crl_dist_points:   X509 certificate API.
-                                                             (line 2144)
+                                                             (line 2145)
 * gnutls_x509_crt_get_dn:                X.509 distinguished names.
                                                              (line   14)
 * gnutls_x509_crt_get_dn <1>:            X509 certificate API.
-                                                             (line 2187)
+                                                             (line 2188)
 * gnutls_x509_crt_get_dn_by_oid:         X.509 distinguished names.
                                                              (line   33)
 * gnutls_x509_crt_get_dn_by_oid <1>:     X509 certificate API.
-                                                             (line 2209)
+                                                             (line 2210)
 * gnutls_x509_crt_get_dn_oid:            X.509 distinguished names.
                                                              (line   68)
 * gnutls_x509_crt_get_dn_oid <1>:        X509 certificate API.
-                                                             (line 2247)
+                                                             (line 2248)
 * gnutls_x509_crt_get_expiration_time:   X509 certificate API.
-                                                             (line 2272)
+                                                             (line 2273)
 * gnutls_x509_crt_get_extension_by_oid:  X509 certificate API.
-                                                             (line 2284)
+                                                             (line 2285)
 * gnutls_x509_crt_get_extension_data:    X509 certificate API.
-                                                             (line 2312)
+                                                             (line 2313)
 * gnutls_x509_crt_get_extension_info:    X509 certificate API.
-                                                             (line 2340)
+                                                             (line 2341)
 * gnutls_x509_crt_get_extension_oid:     X509 certificate API.
-                                                             (line 2373)
+                                                             (line 2374)
 * gnutls_x509_crt_get_fingerprint:       X509 certificate API.
-                                                             (line 2399)
+                                                             (line 2400)
 * gnutls_x509_crt_get_issuer:            X509 certificate API.
-                                                             (line 2422)
+                                                             (line 2423)
 * gnutls_x509_crt_get_issuer_alt_name:   X509 certificate API.
-                                                             (line 2440)
+                                                             (line 2441)
 * gnutls_x509_crt_get_issuer_alt_name2:  X509 certificate API.
-                                                             (line 2483)
+                                                             (line 2484)
 * gnutls_x509_crt_get_issuer_alt_othername_oid: X509 certificate API.
-                                                             (line 2521)
+                                                             (line 2522)
 * gnutls_x509_crt_get_issuer_dn:         X509 certificate API.
-                                                             (line 2561)
+                                                             (line 2562)
 * gnutls_x509_crt_get_issuer_dn_by_oid:  X509 certificate API.
-                                                             (line 2583)
+                                                             (line 2584)
 * gnutls_x509_crt_get_issuer_dn_oid:     X509 certificate API.
-                                                             (line 2621)
+                                                             (line 2622)
 * gnutls_x509_crt_get_issuer_unique_id:  X509 certificate API.
-                                                             (line 2646)
+                                                             (line 2647)
 * gnutls_x509_crt_get_key_id:            X509 certificate API.
-                                                             (line 2670)
+                                                             (line 2671)
 * gnutls_x509_crt_get_key_purpose_oid:   X509 certificate API.
-                                                             (line 2697)
+                                                             (line 2698)
 * gnutls_x509_crt_get_key_usage:         X509 certificate API.
-                                                             (line 2727)
+                                                             (line 2728)
 * gnutls_x509_crt_get_pk_algorithm:      X509 certificate API.
-                                                             (line 2751)
+                                                             (line 2752)
 * gnutls_x509_crt_get_pk_dsa_raw:        X509 certificate API.
-                                                             (line 2771)
+                                                             (line 2772)
 * gnutls_x509_crt_get_pk_rsa_raw:        X509 certificate API.
-                                                             (line 2794)
+                                                             (line 2795)
 * gnutls_x509_crt_get_preferred_hash_algorithm: Compatibility API.
                                                              (line  453)
 * gnutls_x509_crt_get_private_key_usage_period: X509 certificate API.
-                                                             (line 2812)
+                                                             (line 2813)
 * gnutls_x509_crt_get_proxy:             X509 certificate API.
-                                                             (line 2834)
+                                                             (line 2835)
 * gnutls_x509_crt_get_raw_dn:            X509 certificate API.
-                                                             (line 2861)
+                                                             (line 2862)
 * gnutls_x509_crt_get_raw_issuer_dn:     X509 certificate API.
-                                                             (line 2877)
+                                                             (line 2879)
 * gnutls_x509_crt_get_serial:            X509 certificate API.
-                                                             (line 2892)
+                                                             (line 2895)
 * gnutls_x509_crt_get_signature:         X509 certificate API.
-                                                             (line 2912)
+                                                             (line 2915)
 * gnutls_x509_crt_get_signature_algorithm: X509 certificate API.
-                                                             (line 2930)
+                                                             (line 2933)
 * gnutls_x509_crt_get_subject:           X.509 distinguished names.
                                                              (line   94)
 * gnutls_x509_crt_get_subject <1>:       X509 certificate API.
-                                                             (line 2944)
+                                                             (line 2947)
 * gnutls_x509_crt_get_subject_alt_name:  X509 certificate API.
-                                                             (line 2962)
+                                                             (line 2965)
 * gnutls_x509_crt_get_subject_alt_name2: X509 certificate API.
-                                                             (line 3002)
+                                                             (line 3005)
 * gnutls_x509_crt_get_subject_alt_othername_oid: X509 certificate API.
-                                                             (line 3038)
+                                                             (line 3041)
 * gnutls_x509_crt_get_subject_key_id:    X509 certificate API.
-                                                             (line 3076)
+                                                             (line 3079)
 * gnutls_x509_crt_get_subject_unique_id: X509 certificate API.
-                                                             (line 3098)
+                                                             (line 3101)
 * gnutls_x509_crt_get_verify_algorithm:  Compatibility API.  (line  480)
 * gnutls_x509_crt_get_version:           X509 certificate API.
-                                                             (line 3120)
+                                                             (line 3123)
 * gnutls_x509_crt_import:                X509 certificate API.
-                                                             (line 3131)
-* gnutls_x509_crt_import_pkcs11:         PKCS 11 API.        (line  639)
-* gnutls_x509_crt_import_pkcs11_url:     PKCS 11 API.        (line  656)
+                                                             (line 3134)
+* gnutls_x509_crt_import_pkcs11:         PKCS 11 API.        (line  612)
+* gnutls_x509_crt_import_pkcs11_url:     PKCS 11 API.        (line  629)
 * gnutls_x509_crt_init:                  X509 certificate API.
-                                                             (line 3152)
+                                                             (line 3155)
 * gnutls_x509_crt_list_import:           X509 certificate API.
-                                                             (line 3163)
+                                                             (line 3166)
 * gnutls_x509_crt_list_import2:          X509 certificate API.
-                                                             (line 3199)
-* gnutls_x509_crt_list_import_pkcs11:    PKCS 11 API.        (line  676)
+                                                             (line 3202)
+* gnutls_x509_crt_list_import_pkcs11:    PKCS 11 API.        (line  649)
 * gnutls_x509_crt_list_verify:           X509 certificate API.
-                                                             (line 3229)
+                                                             (line 3232)
 * gnutls_x509_crt_print:                 X509 certificate API.
-                                                             (line 3271)
-* gnutls_x509_crt_privkey_sign:          Abstract key API.   (line 1173)
+                                                             (line 3274)
+* gnutls_x509_crt_privkey_sign:          Abstract key API.   (line 1177)
 * gnutls_x509_crt_set_activation_time:   X509 certificate API.
-                                                             (line 3296)
+                                                             (line 3299)
 * gnutls_x509_crt_set_authority_info_access: X509 certificate API.
-                                                             (line 3311)
+                                                             (line 3314)
 * gnutls_x509_crt_set_authority_key_id:  X509 certificate API.
-                                                             (line 3337)
+                                                             (line 3340)
 * gnutls_x509_crt_set_basic_constraints: X509 certificate API.
-                                                             (line 3355)
+                                                             (line 3358)
 * gnutls_x509_crt_set_ca_status:         X509 certificate API.
-                                                             (line 3375)
+                                                             (line 3378)
 * gnutls_x509_crt_set_crl_dist_points:   X509 certificate API.
-                                                             (line 3392)
+                                                             (line 3395)
 * gnutls_x509_crt_set_crl_dist_points2:  X509 certificate API.
-                                                             (line 3412)
+                                                             (line 3415)
 * gnutls_x509_crt_set_crq:               X509 certificate API.
-                                                             (line 3437)
+                                                             (line 3440)
 * gnutls_x509_crt_set_crq_extensions:    X509 certificate API.
-                                                             (line 3453)
+                                                             (line 3456)
 * gnutls_x509_crt_set_dn_by_oid:         X509 certificate API.
-                                                             (line 3470)
+                                                             (line 3473)
 * gnutls_x509_crt_set_expiration_time:   X509 certificate API.
-                                                             (line 3499)
+                                                             (line 3502)
 * gnutls_x509_crt_set_extension_by_oid:  X509 certificate API.
-                                                             (line 3513)
+                                                             (line 3516)
 * gnutls_x509_crt_set_issuer_dn_by_oid:  X509 certificate API.
-                                                             (line 3537)
+                                                             (line 3540)
 * gnutls_x509_crt_set_key:               X509 certificate API.
-                                                             (line 3570)
+                                                             (line 3573)
 * gnutls_x509_crt_set_key_purpose_oid:   X509 certificate API.
-                                                             (line 3585)
+                                                             (line 3588)
 * gnutls_x509_crt_set_key_usage:         X509 certificate API.
-                                                             (line 3605)
+                                                             (line 3608)
 * gnutls_x509_crt_set_private_key_usage_period: X509 certificate API.
-                                                             (line 3619)
+                                                             (line 3622)
 * gnutls_x509_crt_set_proxy:             X509 certificate API.
-                                                             (line 3636)
+                                                             (line 3639)
 * gnutls_x509_crt_set_proxy_dn:          X509 certificate API.
-                                                             (line 3659)
+                                                             (line 3662)
 * gnutls_x509_crt_set_pubkey:            Operations.         (line  164)
-* gnutls_x509_crt_set_pubkey <1>:        Abstract key API.   (line 1198)
+* gnutls_x509_crt_set_pubkey <1>:        Abstract key API.   (line 1202)
 * gnutls_x509_crt_set_serial:            X509 certificate API.
-                                                             (line 3685)
+                                                             (line 3688)
 * gnutls_x509_crt_set_subject_alternative_name: X509 certificate API.
-                                                             (line 3704)
+                                                             (line 3732)
 * gnutls_x509_crt_set_subject_alt_name:  X509 certificate API.
-                                                             (line 3726)
+                                                             (line 3707)
 * gnutls_x509_crt_set_subject_key_id:    X509 certificate API.
-                                                             (line 3751)
+                                                             (line 3754)
 * gnutls_x509_crt_set_version:           X509 certificate API.
-                                                             (line 3768)
+                                                             (line 3771)
 * gnutls_x509_crt_sign:                  X509 certificate API.
-                                                             (line 3790)
+                                                             (line 3793)
 * gnutls_x509_crt_sign2:                 X509 certificate API.
-                                                             (line 3807)
+                                                             (line 3810)
 * gnutls_x509_crt_verify:                X509 certificate API.
-                                                             (line 3832)
+                                                             (line 3835)
 * gnutls_x509_crt_verify_data:           Compatibility API.  (line  503)
 * gnutls_x509_crt_verify_hash:           Compatibility API.  (line  526)
 * gnutls_x509_dn_deinit:                 X509 certificate API.
-                                                             (line 3855)
+                                                             (line 3858)
 * gnutls_x509_dn_export:                 X509 certificate API.
-                                                             (line 3866)
+                                                             (line 3869)
 * gnutls_x509_dn_get_rdn_ava:            X.509 distinguished names.
                                                              (line  109)
 * gnutls_x509_dn_get_rdn_ava <1>:        X509 certificate API.
-                                                             (line 3893)
+                                                             (line 3896)
 * gnutls_x509_dn_import:                 X509 certificate API.
-                                                             (line 3916)
+                                                             (line 3919)
 * gnutls_x509_dn_init:                   X509 certificate API.
-                                                             (line 3935)
+                                                             (line 3938)
 * gnutls_x509_dn_oid_known:              X509 certificate API.
-                                                             (line 3951)
+                                                             (line 3954)
 * gnutls_x509_dn_oid_name:               X509 certificate API.
-                                                             (line 3967)
+                                                             (line 3970)
 * gnutls_x509_privkey_cpy:               X509 certificate API.
-                                                             (line 3984)
+                                                             (line 3987)
 * gnutls_x509_privkey_deinit:            X509 certificate API.
-                                                             (line 3999)
+                                                             (line 4002)
 * gnutls_x509_privkey_export:            X509 certificate API.
-                                                             (line 4008)
+                                                             (line 4011)
 * gnutls_x509_privkey_export_dsa_raw:    X509 certificate API.
-                                                             (line 4037)
+                                                             (line 4040)
 * gnutls_x509_privkey_export_ecc_raw:    X509 certificate API.
-                                                             (line 4063)
+                                                             (line 4066)
 * gnutls_x509_privkey_export_pkcs8:      X509 certificate API.
-                                                             (line 4088)
+                                                             (line 4091)
 * gnutls_x509_privkey_export_rsa_raw:    X509 certificate API.
-                                                             (line 4127)
+                                                             (line 4130)
 * gnutls_x509_privkey_export_rsa_raw2:   X509 certificate API.
-                                                             (line 4155)
+                                                             (line 4158)
 * gnutls_x509_privkey_fix:               X509 certificate API.
-                                                             (line 4190)
+                                                             (line 4193)
 * gnutls_x509_privkey_generate:          X509 certificate API.
-                                                             (line 4202)
+                                                             (line 4205)
 * gnutls_x509_privkey_get_key_id:        X509 certificate API.
-                                                             (line 4225)
+                                                             (line 4228)
 * gnutls_x509_privkey_get_pk_algorithm:  X509 certificate API.
-                                                             (line 4252)
+                                                             (line 4255)
 * gnutls_x509_privkey_import:            X509 certificate API.
-                                                             (line 4265)
+                                                             (line 4268)
 * gnutls_x509_privkey_import_dsa_raw:    X509 certificate API.
-                                                             (line 4286)
+                                                             (line 4290)
 * gnutls_x509_privkey_import_ecc_raw:    X509 certificate API.
-                                                             (line 4312)
+                                                             (line 4316)
 * gnutls_x509_privkey_import_pkcs8:      X509 certificate API.
-                                                             (line 4338)
+                                                             (line 4342)
 * gnutls_x509_privkey_import_rsa_raw:    X509 certificate API.
-                                                             (line 4372)
+                                                             (line 4376)
 * gnutls_x509_privkey_import_rsa_raw2:   X509 certificate API.
-                                                             (line 4401)
+                                                             (line 4405)
 * gnutls_x509_privkey_init:              X509 certificate API.
-                                                             (line 4435)
+                                                             (line 4439)
 * gnutls_x509_privkey_sec_param:         X509 certificate API.
-                                                             (line 4446)
+                                                             (line 4450)
 * gnutls_x509_privkey_sign_data:         Compatibility API.  (line  550)
 * gnutls_x509_privkey_sign_hash:         Compatibility API.  (line  587)
 * gnutls_x509_privkey_verify_params:     X509 certificate API.
-                                                             (line 4461)
+                                                             (line 4465)
 * gnutls_x509_rdn_get:                   X509 certificate API.
-                                                             (line 4473)
+                                                             (line 4477)
 * gnutls_x509_rdn_get_by_oid:            X509 certificate API.
-                                                             (line 4493)
+                                                             (line 4497)
 * gnutls_x509_rdn_get_oid:               X509 certificate API.
-                                                             (line 4521)
+                                                             (line 4525)
 * gnutls_x509_trust_list_add_cas:        Verifying X.509 certificate paths.
                                                              (line    9)
 * gnutls_x509_trust_list_add_cas <1>:    X509 certificate API.
-                                                             (line 4544)
+                                                             (line 4548)
 * gnutls_x509_trust_list_add_crls:       Verifying X.509 certificate paths.
                                                              (line   58)
 * gnutls_x509_trust_list_add_crls <1>:   X509 certificate API.
-                                                             (line 4566)
+                                                             (line 4570)
 * gnutls_x509_trust_list_add_named_crt:  Verifying X.509 certificate paths.
                                                              (line   28)
 * gnutls_x509_trust_list_add_named_crt <1>: X509 certificate API.
-                                                             (line 4597)
-* gnutls_x509_trust_list_add_system_trust: X509 certificate API.
-                                                             (line 4630)
-* gnutls_x509_trust_list_add_trust_file: X509 certificate API.
-                                                             (line 4650)
-* gnutls_x509_trust_list_add_trust_mem:  X509 certificate API.
-                                                             (line 4678)
+                                                             (line 4601)
 * gnutls_x509_trust_list_deinit:         X509 certificate API.
-                                                             (line 4705)
+                                                             (line 4634)
 * gnutls_x509_trust_list_get_issuer:     X509 certificate API.
-                                                             (line 4719)
+                                                             (line 4648)
 * gnutls_x509_trust_list_init:           X509 certificate API.
-                                                             (line 4742)
+                                                             (line 4671)
 * gnutls_x509_trust_list_verify_crt:     Verifying X.509 certificate paths.
                                                              (line   86)
 * gnutls_x509_trust_list_verify_crt <1>: X509 certificate API.
-                                                             (line 4759)
+                                                             (line 4688)
 * gnutls_x509_trust_list_verify_named_crt: Verifying X.509 certificate paths.
                                                              (line  112)
 * gnutls_x509_trust_list_verify_named_crt <1>: X509 certificate API.
-                                                             (line 4788)
+                                                             (line 4717)
 
 \1f
 File: gnutls.info,  Node: Concept Index,  Prev: Function and Data Index,  Up: Top
@@ -2851,244 +4062,166 @@ Concept Index
 \0\b[index\0\b]
 * Menu:
 
-* abstract types:                        Abstract key types.  (line   6)
+* abstract types:                        Abstract key types.   (line  6)
 * alert protocol:                        The TLS Alert Protocol.
-                                                              (line   6)
+                                                               (line  6)
 * anonymous authentication:              Anonymous authentication.
-                                                              (line   6)
-* API reference:                         API reference.       (line   6)
-* bad_record_mac:                        On Record Padding.   (line   6)
-* callback functions:                    Callback functions.  (line   6)
+                                                               (line  6)
+* API reference:                         API reference.        (line  6)
+* bad_record_mac:                        On Record Padding.    (line  6)
+* callback functions:                    Callback functions.   (line  6)
 * certificate authentication:            Certificate authentication.
-                                                              (line   6)
+                                                               (line  6)
 * certificate authentication <1>:        More on certificate authentication.
-                                                              (line   6)
+                                                               (line  6)
 * certificate requests:                  PKCS 10 certificate requests.
-                                                              (line   6)
+                                                               (line  6)
 * certificate revocation lists:          PKIX certificate revocation lists.
-                                                              (line   6)
+                                                               (line  6)
 * certificate status:                    OCSP certificate status checking.
-                                                              (line   6)
-* certtool:                              certtool Invocation. (line   6)
-* certtool help:                         certtool Invocation. (line  17)
-* certtool-debug:                        certtool Invocation. (line 112)
-* certtool-get-dh-params:                certtool Invocation. (line 147)
-* certtool-hash:                         certtool Invocation. (line 199)
-* certtool-inder:                        certtool Invocation. (line 206)
-* certtool-inraw:                        certtool Invocation. (line 215)
-* certtool-load-ca-certificate:          certtool Invocation. (line 180)
-* certtool-load-ca-privkey:              certtool Invocation. (line 173)
-* certtool-load-certificate:             certtool Invocation. (line 167)
-* certtool-load-privkey:                 certtool Invocation. (line 155)
-* certtool-load-pubkey:                  certtool Invocation. (line 161)
-* certtool-outder:                       certtool Invocation. (line 221)
-* certtool-outraw:                       certtool Invocation. (line 227)
-* certtool-pkcs-cipher:                  certtool Invocation. (line 240)
-* certtool-sec-param:                    certtool Invocation. (line 233)
-* certtool-to-p12:                       certtool Invocation. (line 187)
-* certtool-verify:                       certtool Invocation. (line 124)
-* certtool-verify-chain:                 certtool Invocation. (line 118)
-* certtool-verify-crl:                   certtool Invocation. (line 136)
-* channel bindings:                      Channel Bindings.    (line   6)
+                                                               (line  6)
+* certtool:                              certtool Invocation.  (line  6)
+* certtool help:                         certtool Invocation.  (line 17)
+* channel bindings:                      Channel Bindings.     (line  6)
 * ciphersuites:                          Supported ciphersuites.
-                                                              (line   6)
+                                                               (line  6)
 * client certificate authentication:     Client Authentication.
-                                                              (line   6)
+                                                               (line  6)
 * compression algorithms:                Compression algorithms used in the record layer.
-                                                              (line   6)
-* contributing:                          Contributing.        (line   6)
+                                                               (line  6)
+* contributing:                          Contributing.         (line  6)
 * CRL:                                   PKIX certificate revocation lists.
-                                                              (line   6)
-* digital signatures:                    Digital signatures.  (line   6)
+                                                               (line  6)
+* digital signatures:                    Digital signatures.   (line  6)
 * download:                              Downloading and installing.
-                                                              (line   6)
+                                                               (line  6)
 * Encrypted keys:                        Managing encrypted keys.
-                                                              (line   6)
-* error codes:                           Error codes.         (line   6)
+                                                               (line  6)
+* error codes:                           Error codes.          (line  6)
 * example programs:                      GnuTLS application examples.
-                                                              (line   6)
+                                                               (line  6)
 * examples:                              GnuTLS application examples.
-                                                              (line   6)
+                                                               (line  6)
 * exporting keying material:             Keying Material Exporters.
-                                                              (line   6)
-* FDL, GNU Free Documentation License:   Copying Information. (line   6)
-* generating parameters:                 Parameter generation.
-                                                              (line   6)
-* GnuTLS client:                         gnutls-cli Invocation.
-                                                              (line   6)
-* GnuTLS debug client:                   gnutls-cli-debug Invocation.
-                                                              (line   6)
-* GnuTLS OCSP tool:                      ocsptool Invocation. (line   6)
-* GnuTLS PKCS #11 tool:                  certtool Invocation. (line   6)
-* GnuTLS PKCS #11 tool <1>:              p11tool Invocation.  (line   6)
-* GnuTLS PSK tool:                       psktool Invocation.  (line   6)
-* GnuTLS server:                         gnutls-serv Invocation.
-                                                              (line   6)
-* GnuTLS SRP tool:                       srptool Invocation.  (line   6)
+                                                               (line  6)
+* FDL, GNU Free Documentation License:   Copying Information.  (line  6)
+* generating parameters:                 Parameter generation. (line  6)
 * gnutls-cli:                            gnutls-cli Invocation.
-                                                              (line   6)
+                                                               (line  6)
 * gnutls-cli help:                       gnutls-cli Invocation.
-                                                              (line  17)
+                                                               (line 17)
 * gnutls-cli-debug:                      gnutls-cli-debug Invocation.
-                                                              (line   6)
-* gnutls-cli-debug <1>:                  gnutls-cli Invocation.
-                                                              (line  95)
+                                                               (line  6)
 * gnutls-cli-debug help:                 gnutls-cli-debug Invocation.
-                                                              (line  21)
-* gnutls-cli-debug-debug:                gnutls-cli-debug Invocation.
-                                                              (line  62)
-* gnutls-cli-list:                       gnutls-cli Invocation.
-                                                              (line 143)
-* gnutls-cli-ocsp:                       gnutls-cli Invocation.
-                                                              (line 109)
-* gnutls-cli-priority:                   gnutls-cli Invocation.
-                                                              (line 133)
-* gnutls-cli-rehandshake:                gnutls-cli Invocation.
-                                                              (line 121)
-* gnutls-cli-resume:                     gnutls-cli Invocation.
-                                                              (line 115)
-* gnutls-cli-starttls:                   gnutls-cli Invocation.
-                                                              (line 127)
-* gnutls-cli-tofu:                       gnutls-cli Invocation.
-                                                              (line 101)
+                                                               (line 21)
 * gnutls-serv:                           gnutls-serv Invocation.
-                                                              (line   6)
+                                                               (line  6)
 * gnutls-serv help:                      gnutls-serv Invocation.
-                                                              (line  16)
-* gnutls-serv-debug:                     gnutls-serv Invocation.
-                                                              (line  87)
-* gnutls-serv-list:                      gnutls-serv Invocation.
-                                                              (line 103)
-* gnutls-serv-priority:                  gnutls-serv Invocation.
-                                                              (line  93)
-* hacking:                               Contributing.        (line   6)
+                                                               (line 16)
+* hacking:                               Contributing.         (line  6)
 * handshake protocol:                    The TLS Handshake Protocol.
-                                                              (line   6)
-* hardware security modules:             Smart cards and HSMs.
-                                                              (line   6)
-* hardware tokens:                       Smart cards and HSMs.
-                                                              (line   6)
+                                                               (line  6)
+* hardware security modules:             Smart cards and HSMs. (line  6)
+* hardware tokens:                       Smart cards and HSMs. (line  6)
 * hash functions:                        Hash and HMAC functions.
-                                                              (line   6)
+                                                               (line  6)
 * HMAC functions:                        Hash and HMAC functions.
-                                                              (line   6)
+                                                               (line  6)
 * installation:                          Downloading and installing.
-                                                              (line   6)
+                                                               (line  6)
 * internal architecture:                 Internal architecture of GnuTLS.
-                                                              (line   6)
+                                                               (line  6)
 * Key pinning:                           Verifying a certificate using trust on first use authentication.
-                                                              (line   6)
+                                                               (line  6)
 * key sizes:                             Selecting cryptographic key sizes.
-                                                              (line   6)
+                                                               (line  6)
 * keying material exporters:             Keying Material Exporters.
-                                                              (line   6)
+                                                               (line  6)
 * maximum fragment length:               Maximum fragment length negotiation.
-                                                              (line   6)
+                                                               (line  6)
 * OCSP:                                  OCSP certificate status checking.
-                                                              (line   6)
-* OCSP Functions:                        OCSP API.            (line   6)
-* ocsptool:                              ocsptool Invocation. (line   6)
-* ocsptool help:                         ocsptool Invocation. (line  16)
-* ocsptool-ask:                          ocsptool Invocation. (line  86)
-* ocsptool-debug:                        ocsptool Invocation. (line  80)
+                                                               (line  6)
+* OCSP Functions:                        OCSP API.             (line  6)
+* ocsptool:                              ocsptool Invocation.  (line  6)
+* ocsptool help:                         ocsptool Invocation.  (line 16)
 * Online Certificate Status Protocol:    OCSP certificate status checking.
-                                                              (line   6)
-* OpenPGP API:                           OpenPGP API.         (line   6)
-* OpenPGP certificates:                  OpenPGP certificates.
-                                                              (line   6)
+                                                               (line  6)
+* OpenPGP API:                           OpenPGP API.          (line  6)
+* OpenPGP certificates:                  OpenPGP certificates. (line  6)
 * OpenPGP server:                        Echo server with OpenPGP authentication.
-                                                              (line   6)
+                                                               (line  6)
 * OpenSSL:                               Compatibility with the OpenSSL library.
-                                                              (line   6)
-* p11tool:                               p11tool Invocation.  (line   6)
-* p11tool help:                          p11tool Invocation.  (line  20)
-* p11tool-debug:                         p11tool Invocation.  (line  96)
-* p11tool-generate-dsa:                  p11tool Invocation.  (line 115)
-* p11tool-generate-ecc:                  p11tool Invocation.  (line 121)
-* p11tool-generate-rsa:                  p11tool Invocation.  (line 109)
-* p11tool-inder:                         p11tool Invocation.  (line 144)
-* p11tool-inraw:                         p11tool Invocation.  (line 150)
-* p11tool-private:                       p11tool Invocation.  (line 127)
-* p11tool-provider:                      p11tool Invocation.  (line 156)
-* p11tool-sec-param:                     p11tool Invocation.  (line 137)
-* p11tool-write:                         p11tool Invocation.  (line 102)
-* parameter generation:                  Parameter generation.
-                                                              (line   6)
+                                                               (line  6)
+* p11tool:                               p11tool Invocation.   (line  6)
+* p11tool help:                          p11tool Invocation.   (line 20)
+* parameter generation:                  Parameter generation. (line  6)
 * PCT:                                   On SSL 2 and older protocols.
-                                                              (line  37)
+                                                               (line 37)
 * PKCS #10:                              PKCS 10 certificate requests.
-                                                              (line   6)
-* PKCS #11 tokens:                       Smart cards and HSMs.
-                                                              (line   6)
+                                                               (line  6)
+* PKCS #11 tokens:                       Smart cards and HSMs. (line  6)
 * PKCS #12:                              Managing encrypted keys.
-                                                              (line  62)
+                                                               (line 62)
 * PKCS #8:                               Managing encrypted keys.
-                                                              (line  22)
-* Priority strings:                      Priority Strings.    (line   6)
+                                                               (line 22)
+* Priority strings:                      Priority Strings.     (line  6)
 * PSK authentication:                    Authentication using PSK.
-                                                              (line   6)
-* psktool:                               psktool Invocation.  (line   6)
-* psktool help:                          psktool Invocation.  (line  16)
-* psktool-debug:                         psktool Invocation.  (line  52)
+                                                               (line  6)
+* psktool:                               psktool Invocation.   (line  6)
+* psktool help:                          psktool Invocation.   (line 16)
 * random numbers:                        Random number generation.
-                                                              (line   6)
-* record padding:                        On Record Padding.   (line   6)
+                                                               (line  6)
+* record padding:                        On Record Padding.    (line  6)
 * record protocol:                       The TLS record protocol.
-                                                              (line   6)
-* renegotiation:                         Safe renegotiation.  (line   6)
-* reporting bugs:                        Bug Reports.         (line   6)
-* resuming sessions:                     Resuming Sessions.   (line   6)
-* resuming sessions <1>:                 Session resumption.  (line   6)
-* safe renegotiation:                    Safe renegotiation.  (line   6)
+                                                               (line  6)
+* renegotiation:                         Safe renegotiation.   (line  6)
+* reporting bugs:                        Bug Reports.          (line  6)
+* resuming sessions:                     Resuming Sessions.    (line  6)
+* resuming sessions <1>:                 Session resumption.   (line  6)
+* safe renegotiation:                    Safe renegotiation.   (line  6)
 * server name indication:                Server name indication.
-                                                              (line   6)
-* session resumption:                    Resuming Sessions.   (line   6)
-* session resumption <1>:                Session resumption.  (line   6)
-* session tickets:                       Session tickets.     (line   6)
+                                                               (line  6)
+* session resumption:                    Resuming Sessions.    (line  6)
+* session resumption <1>:                Session resumption.   (line  6)
+* session tickets:                       Session tickets.      (line  6)
 * Smart card example:                    Client using a smart card with TLS.
-                                                              (line   6)
-* smart cards:                           Smart cards and HSMs.
-                                                              (line   6)
+                                                               (line  6)
+* smart cards:                           Smart cards and HSMs. (line  6)
 * SRP authentication:                    Authentication using SRP.
-                                                              (line   6)
-* srptool:                               srptool Invocation.  (line   6)
-* srptool help:                          srptool Invocation.  (line  23)
-* srptool-create-conf:                   srptool Invocation.  (line  85)
-* srptool-debug:                         srptool Invocation.  (line  66)
-* srptool-passwd-conf:                   srptool Invocation.  (line  78)
-* srptool-verify:                        srptool Invocation.  (line  72)
+                                                               (line  6)
+* srptool:                               srptool Invocation.   (line  6)
+* srptool help:                          srptool Invocation.   (line 23)
 * SSH-style authentication:              Verifying a certificate using trust on first use authentication.
-                                                              (line   6)
+                                                               (line  6)
 * SSL 2:                                 On SSL 2 and older protocols.
-                                                              (line   6)
+                                                               (line  6)
 * symmetric cryptography:                Symmetric cryptography.
-                                                              (line   6)
+                                                               (line  6)
 * symmetric encryption algorithms:       Encryption algorithms used in the record layer.
-                                                              (line   6)
-* thread safety:                         Thread safety.       (line   6)
-* tickets:                               Session tickets.     (line   6)
-* TLS extensions:                        TLS Extensions.      (line   6)
+                                                               (line  6)
+* thread safety:                         Thread safety.        (line  6)
+* tickets:                               Session tickets.      (line  6)
+* TLS extensions:                        TLS Extensions.       (line  6)
 * TLS extensions <1>:                    Maximum fragment length negotiation.
-                                                              (line   6)
+                                                               (line  6)
 * TLS extensions <2>:                    Server name indication.
-                                                              (line   6)
-* TLS extensions <3>:                    Session tickets.     (line   6)
-* TLS layers:                            TLS layers.          (line   6)
-* transport layer:                       The transport layer. (line   6)
-* transport protocol:                    The transport layer. (line   6)
+                                                               (line  6)
+* TLS extensions <3>:                    Session tickets.      (line  6)
+* TLS layers:                            TLS layers.           (line  6)
+* transport layer:                       The transport layer.  (line  6)
+* transport protocol:                    The transport layer.  (line  6)
 * Trust on first use:                    Verifying a certificate using trust on first use authentication.
-                                                              (line   6)
+                                                               (line  6)
 * upgrading:                             Upgrading from previous versions.
-                                                              (line   6)
+                                                               (line  6)
 * verifying certificate paths:           Verifying X.509 certificate paths.
-                                                              (line   6)
+                                                               (line  6)
 * verifying certificate paths <1>:       Verifying a certificate in the context of TLS session.
-                                                              (line   6)
+                                                               (line  6)
 * verifying certificate paths <2>:       Verifying a certificate using trust on first use authentication.
-                                                              (line   6)
-* X.509 certificates:                    X.509 certificates.  (line   6)
+                                                               (line  6)
+* X.509 certificates:                    X.509 certificates.   (line  6)
 * X.509 distinguished name:              X.509 distinguished names.
-                                                              (line   6)
-* X.509 Functions:                       X509 certificate API.
-                                                              (line   6)
+                                                               (line  6)
+* X.509 Functions:                       X509 certificate API. (line  6)
 
index 010549d..70f07f1 100644 (file)
Binary files a/doc/gnutls.pdf and b/doc/gnutls.pdf differ
index 0a2604c..52e427c 100644 (file)
@@ -3,7 +3,6 @@
 @setfilename gnutls.info
 @include version.texi
 @settitle GnuTLS @value{VERSION}
-
 @c don't indent the paragraphs.
 @paragraphindent 0
 
@@ -76,52 +75,52 @@ Documentation License''.
 
 @macro showfuncA{ref}
 @table @code
-@item @ref{\ref\}
+@include functions/\ref\.short
 @end table
 @end macro
 
 @macro showfuncB{ref1,ref2}
 @table @code
-@item @ref{\ref1\}
-@item @ref{\ref2\}
+@include functions/\ref1\.short
+@include functions/\ref2\.short
 @end table
 @end macro
 
 @macro showfuncC{ref1,ref2,ref3}
 @table @code
-@item @ref{\ref1\}
-@item @ref{\ref2\}
-@item @ref{\ref3\}
+@include functions/\ref1\.short
+@include functions/\ref2\.short
+@include functions/\ref3\.short
 @end table
 @end macro
 
 @macro showfuncD{ref1,ref2,ref3,ref4}
 @table @code
-@item @ref{\ref1\}
-@item @ref{\ref2\}
-@item @ref{\ref3\}
-@item @ref{\ref4\}
+@include functions/\ref1\.short
+@include functions/\ref2\.short
+@include functions/\ref3\.short
+@include functions/\ref4\.short
 @end table
 @end macro
 
 @macro showfuncE{ref1,ref2,ref3,ref4,ref5}
 @table @code
-@item @ref{\ref1\}
-@item @ref{\ref2\}
-@item @ref{\ref3\}
-@item @ref{\ref4\}
-@item @ref{\ref5\}
+@include functions/\ref1\.short
+@include functions/\ref2\.short
+@include functions/\ref3\.short
+@include functions/\ref4\.short
+@include functions/\ref5\.short
 @end table
 @end macro
 
 @macro showfuncF{ref1,ref2,ref3,ref4,ref5,ref6}
 @table @code
-@item @ref{\ref1\}
-@item @ref{\ref2\}
-@item @ref{\ref3\}
-@item @ref{\ref4\}
-@item @ref{\ref5\}
-@item @ref{\ref6\}
+@include functions/\ref1\.short
+@include functions/\ref2\.short
+@include functions/\ref3\.short
+@include functions/\ref4\.short
+@include functions/\ref5\.short
+@include functions/\ref6\.short
 @end table
 @end macro
 
index 2300585..91db6b2 100644 (file)
@@ -1,13 +1,12 @@
 @node certtool Invocation
 @section Invoking certtool
 @pindex certtool
-@cindex GnuTLS PKCS #11 tool
 @ignore
 #  -*- buffer-read-only: t -*- vi: set ro:
-# 
+#
 # DO NOT EDIT THIS FILE   (invoke-certtool.texi)
-# 
-# It has been AutoGen-ed  June 30, 2012 at 06:41:47 PM by AutoGen 5.16
+#
+# It has been AutoGen-ed  June  1, 2013 at 01:00:38 PM by AutoGen 5.17.3
 # From the definitions    ../src/certtool-args.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -23,11 +22,13 @@ This software is released under the GNU General Public License, version 3 or lat
 
 
 @anchor{certtool usage}
-@subheading certtool help/usage (-h)
+@subheading certtool help/usage (@option{--help})
 @cindex certtool help
 
 This is the automatically generated usage text for certtool.
-The text printed is the same whether for the @code{help} option (-h) or the @code{more-help} option (-!).  @code{more-help} will print
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
 the usage text by passing it through a pager program.
 @code{more-help} is disabled on platforms without a working
 @code{fork(2)} function.  The @code{PAGER} environment variable is
@@ -36,8 +37,8 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-certtool - GnuTLS PKCS #11 tool - Ver. 3.0.21
-USAGE:  certtool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
+certtool - GnuTLS PKCS #11 tool - Ver. 3.0.30
+USAGE:  lt-certtool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -124,20 +125,17 @@ please send bug reports to:  bug-gnutls@@gnu.org
 
 @anchor{certtool debug}
 @subheading debug option (-d)
-@cindex certtool-debug
 
 This is the ``enable debugging.'' option.
 This option takes an argument number.
 Specifies the debug level.
 @anchor{certtool verify-chain}
 @subheading verify-chain option (-e)
-@cindex certtool-verify-chain
 
 This is the ``verify a pem encoded certificate chain.'' option.
 The last certificate in the chain must be a self signed one.
 @anchor{certtool verify}
 @subheading verify option
-@cindex certtool-verify
 
 This is the ``verify a pem encoded certificate chain using a trusted list.'' option.
 
@@ -152,7 +150,6 @@ load-ca-certificate.
 The trusted certificate list must be loaded with --load-ca-certificate.
 @anchor{certtool verify-crl}
 @subheading verify-crl option
-@cindex certtool-verify-crl
 
 This is the ``verify a crl using a trusted list.'' option.
 
@@ -167,49 +164,42 @@ load-ca-certificate.
 The trusted certificate list must be loaded with --load-ca-certificate.
 @anchor{certtool get-dh-params}
 @subheading get-dh-params option
-@cindex certtool-get-dh-params
 
 This is the ``get the included pkcs #3 encoded diffie-hellman parameters.'' option.
 Returns stored DH parameters in GnuTLS. Those parameters are used in the SRP protocol. The parameters returned by fresh generation
 are more efficient since GnuTLS 3.0.9.
 @anchor{certtool load-privkey}
 @subheading load-privkey option
-@cindex certtool-load-privkey
 
 This is the ``loads a private key file'' option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 @anchor{certtool load-pubkey}
 @subheading load-pubkey option
-@cindex certtool-load-pubkey
 
 This is the ``loads a public key file'' option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 @anchor{certtool load-certificate}
 @subheading load-certificate option
-@cindex certtool-load-certificate
 
 This is the ``loads a certificate file'' option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 @anchor{certtool load-ca-privkey}
 @subheading load-ca-privkey option
-@cindex certtool-load-ca-privkey
 
 This is the ``loads the certificate authority's private key file'' option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 @anchor{certtool load-ca-certificate}
 @subheading load-ca-certificate option
-@cindex certtool-load-ca-certificate
 
 This is the ``loads the certificate authority's certificate file'' option.
 This option takes an argument string.
 This can be either a file or a PKCS #11 URL
 @anchor{certtool to-p12}
 @subheading to-p12 option
-@cindex certtool-to-p12
 
 This is the ``generate a pkcs #12 structure'' option.
 
@@ -224,14 +214,12 @@ load-certificate.
 It requires a certificate, a private key and possibly a CA certificate to be specified.
 @anchor{certtool hash}
 @subheading hash option
-@cindex certtool-hash
 
 This is the ``hash algorithm to use for signing.'' option.
 This option takes an argument string.
 Available hash functions are SHA1, RMD160, SHA256, SHA384, SHA512.
 @anchor{certtool inder}
 @subheading inder option
-@cindex certtool-inder
 
 This is the ``use der format for input certificates and private keys.'' option.
 The input files will be assumed to be in DER or RAW format. 
@@ -239,34 +227,29 @@ Unlike options that in PEM input would allow multiple input data (e.g. multiple
 certificates), when reading in DER format a single data structure is read.
 @anchor{certtool inraw}
 @subheading inraw option
-@cindex certtool-inraw
 
-This is an alias for the inder option,
+This is an alias for the @code{inder} option,
 @pxref{certtool inder, the inder option documentation}.
 
 @anchor{certtool outder}
 @subheading outder option
-@cindex certtool-outder
 
 This is the ``use der format for output certificates and private keys'' option.
 The output will be in DER or RAW format.
 @anchor{certtool outraw}
 @subheading outraw option
-@cindex certtool-outraw
 
-This is an alias for the outder option,
+This is an alias for the @code{outder} option,
 @pxref{certtool outder, the outder option documentation}.
 
 @anchor{certtool sec-param}
 @subheading sec-param option
-@cindex certtool-sec-param
 
 This is the ``specify the security level [low, legacy, normal, high, ultra].'' option.
 This option takes an argument string @file{Security parameter}.
 This is alternative to the bits option.
 @anchor{certtool pkcs-cipher}
 @subheading pkcs-cipher option
-@cindex certtool-pkcs-cipher
 
 This is the ``cipher to use for pkcs #8 and #12 operations'' option.
 This option takes an argument string @file{Cipher}.
@@ -284,7 +267,6 @@ The operation failed or the command syntax was not valid.
 @anchor{certtool See Also}
 @subheading certtool See Also
     p11tool (1)
-
 @anchor{certtool Examples}
 @subheading certtool Examples
 @subheading Generating private keys
@@ -403,7 +385,6 @@ To verify a Certificate Revocation List (CRL) do:
 @example
 $ certtool --verify-crl --load-ca-certificate x509-ca.pem < crl.pem
 @end example
-
 @anchor{certtool Files}
 @subheading certtool Files
 @subheading Certtool's template file format
@@ -561,5 +542,3 @@ signing_key
 #crl_number = 5
 
 @end example
-
-
index 22f9042..f7e8a3f 100644 (file)
@@ -1,13 +1,12 @@
 @node gnutls-cli-debug Invocation
 @section Invoking gnutls-cli-debug
 @pindex gnutls-cli-debug
-@cindex GnuTLS debug client
 @ignore
 #  -*- buffer-read-only: t -*- vi: set ro:
-# 
+#
 # DO NOT EDIT THIS FILE   (invoke-gnutls-cli-debug.texi)
-# 
-# It has been AutoGen-ed  May  9, 2012 at 08:06:11 PM by AutoGen 5.16
+#
+# It has been AutoGen-ed  June  1, 2013 at 01:00:36 PM by AutoGen 5.17.3
 # From the definitions    ../src/cli-debug-args.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -26,11 +25,13 @@ This software is released under the GNU General Public License, version 3 or lat
 
 
 @anchor{gnutls-cli-debug usage}
-@subheading gnutls-cli-debug help/usage (-h)
+@subheading gnutls-cli-debug help/usage (@option{--help})
 @cindex gnutls-cli-debug help
 
 This is the automatically generated usage text for gnutls-cli-debug.
-The text printed is the same whether for the @code{help} option (-h) or the @code{more-help} option (-!).  @code{more-help} will print
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
 the usage text by passing it through a pager program.
 @code{more-help} is disabled on platforms without a working
 @code{fork(2)} function.  The @code{PAGER} environment variable is
@@ -39,8 +40,8 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-gnutls-cli-debug - GnuTLS debug client - Ver. 3.0.21
-USAGE:  gnutls-cli-debug [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... 
+gnutls-cli-debug - GnuTLS debug client - Ver. 3.0.30
+USAGE:  lt-gnutls-cli-debug [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... 
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -73,7 +74,6 @@ please send bug reports to:  bug-gnutls@@gnu.org
 
 @anchor{gnutls-cli-debug debug}
 @subheading debug option (-d)
-@cindex gnutls-cli-debug-debug
 
 This is the ``enable debugging.'' option.
 This option takes an argument number.
@@ -91,7 +91,6 @@ The operation failed or the command syntax was not valid.
 @anchor{gnutls-cli-debug See Also}
 @subheading gnutls-cli-debug See Also
 gnutls-cli(1), gnutls-serv(1)
-
 @anchor{gnutls-cli-debug Examples}
 @subheading gnutls-cli-debug Examples
 @example
@@ -141,4 +140,3 @@ Checking for ZLIB compression support... no
 Checking for max record size... no
 Checking for OpenPGP authentication support... no
 @end example
-
index 4a75ef2..bf701c6 100644 (file)
@@ -1,13 +1,12 @@
 @node gnutls-cli Invocation
 @section Invoking gnutls-cli
 @pindex gnutls-cli
-@cindex GnuTLS client
 @ignore
 #  -*- buffer-read-only: t -*- vi: set ro:
-# 
+#
 # DO NOT EDIT THIS FILE   (invoke-gnutls-cli.texi)
-# 
-# It has been AutoGen-ed  May  9, 2012 at 08:06:11 PM by AutoGen 5.16
+#
+# It has been AutoGen-ed  June  1, 2013 at 01:00:35 PM by AutoGen 5.17.3
 # From the definitions    ../src/cli-args.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -22,11 +21,13 @@ This software is released under the GNU General Public License, version 3 or lat
 
 
 @anchor{gnutls-cli usage}
-@subheading gnutls-cli help/usage (-h)
+@subheading gnutls-cli help/usage (@option{--help})
 @cindex gnutls-cli help
 
 This is the automatically generated usage text for gnutls-cli.
-The text printed is the same whether for the @code{help} option (-h) or the @code{more-help} option (-!).  @code{more-help} will print
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
 the usage text by passing it through a pager program.
 @code{more-help} is disabled on platforms without a working
 @code{fork(2)} function.  The @code{PAGER} environment variable is
@@ -35,8 +36,8 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-gnutls-cli - GnuTLS client - Ver. 3.0.21
-USAGE:  gnutls-cli [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [hostname]
+gnutls-cli - GnuTLS client - Ver. 3.0.30
+USAGE:  lt-gnutls-cli [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [hostname]
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -106,44 +107,37 @@ please send bug reports to:  bug-gnutls@@gnu.org
 
 @anchor{gnutls-cli debug}
 @subheading debug option (-d)
-@cindex gnutls-cli-debug
 
 This is the ``enable debugging.'' option.
 This option takes an argument number.
 Specifies the debug level.
 @anchor{gnutls-cli tofu}
 @subheading tofu option
-@cindex gnutls-cli-tofu
 
 This is the ``enable trust on first use authentication'' option.
 This option will, in addition to certificate authentication, perform authentication based on previously seen public keys, a model similar to SSH authentication.
 @anchor{gnutls-cli ocsp}
 @subheading ocsp option
-@cindex gnutls-cli-ocsp
 
 This is the ``enable ocsp certificate verification'' option.
 This option will enable verification of the peer's certificate using ocsp
 @anchor{gnutls-cli resume}
 @subheading resume option (-r)
-@cindex gnutls-cli-resume
 
 This is the ``establish a session and resume'' option.
 Connect, establish a session, reconnect and resume.
 @anchor{gnutls-cli rehandshake}
 @subheading rehandshake option (-e)
-@cindex gnutls-cli-rehandshake
 
 This is the ``establish a session and rehandshake'' option.
 Connect, establish a session and rehandshake immediately.
 @anchor{gnutls-cli starttls}
 @subheading starttls option (-s)
-@cindex gnutls-cli-starttls
 
 This is the ``connect, establish a plain session and start tls.'' option.
 The TLS session will be initiated when EOF or a SIGALRM is received.
 @anchor{gnutls-cli priority}
 @subheading priority option
-@cindex gnutls-cli-priority
 
 This is the ``priorities string'' option.
 This option takes an argument string.
@@ -155,7 +149,6 @@ Check  the  GnuTLS  manual  on  section  ``Priority strings'' for more
 information on allowed keywords
 @anchor{gnutls-cli list}
 @subheading list option (-l)
-@cindex gnutls-cli-list
 
 This is the ``print a list of the supported algorithms and modes'' option.
 Print a list of the supported algorithms and modes. If a priority string is given then only the enabled ciphersuites are shown.
@@ -172,7 +165,6 @@ The operation failed or the command syntax was not valid.
 @anchor{gnutls-cli See Also}
 @subheading gnutls-cli See Also
 gnutls-cli-debug(1), gnutls-serv(1)
-
 @anchor{gnutls-cli Examples}
 @subheading gnutls-cli Examples
 @subheading Connecting using PSK authentication
@@ -213,4 +205,3 @@ Compression: COMP-NULL
 Elliptic curves: CURVE-SECP384R1, CURVE-SECP521R1
 PK-signatures: SIGN-RSA-SHA384, SIGN-ECDSA-SHA384, SIGN-RSA-SHA512, SIGN-ECDSA-SHA512
 @end example
-
index 8f74262..de14e5c 100644 (file)
@@ -1,13 +1,12 @@
 @node gnutls-serv Invocation
 @section Invoking gnutls-serv
 @pindex gnutls-serv
-@cindex GnuTLS server
 @ignore
 #  -*- buffer-read-only: t -*- vi: set ro:
-# 
+#
 # DO NOT EDIT THIS FILE   (invoke-gnutls-serv.texi)
-# 
-# It has been AutoGen-ed  May  9, 2012 at 08:06:12 PM by AutoGen 5.16
+#
+# It has been AutoGen-ed  June  1, 2013 at 01:00:37 PM by AutoGen 5.17.3
 # From the definitions    ../src/serv-args.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -21,11 +20,13 @@ This software is released under the GNU General Public License, version 3 or lat
 
 
 @anchor{gnutls-serv usage}
-@subheading gnutls-serv help/usage (-h)
+@subheading gnutls-serv help/usage (@option{--help})
 @cindex gnutls-serv help
 
 This is the automatically generated usage text for gnutls-serv.
-The text printed is the same whether for the @code{help} option (-h) or the @code{more-help} option (-!).  @code{more-help} will print
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
 the usage text by passing it through a pager program.
 @code{more-help} is disabled on platforms without a working
 @code{fork(2)} function.  The @code{PAGER} environment variable is
@@ -34,8 +35,8 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-gnutls-serv - GnuTLS server - Ver. 3.0.21
-USAGE:  gnutls-serv [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
+gnutls-serv - GnuTLS server - Ver. 3.0.30
+USAGE:  lt-gnutls-serv [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -98,14 +99,12 @@ please send bug reports to:  bug-gnutls@@gnu.org
 
 @anchor{gnutls-serv debug}
 @subheading debug option (-d)
-@cindex gnutls-serv-debug
 
 This is the ``enable debugging.'' option.
 This option takes an argument number.
 Specifies the debug level.
 @anchor{gnutls-serv priority}
 @subheading priority option
-@cindex gnutls-serv-priority
 
 This is the ``priorities string'' option.
 This option takes an argument string.
@@ -117,7 +116,6 @@ Check  the  GnuTLS  manual  on  section  ``Priority strings'' for more
 information on allowed keywords
 @anchor{gnutls-serv list}
 @subheading list option (-l)
-@cindex gnutls-serv-list
 
 This is the ``print a list of the supported algorithms and modes'' option.
 Print a list of the supported algorithms and modes. If a priority string is given then only the enabled ciphersuites are shown.
@@ -134,7 +132,6 @@ The operation failed or the command syntax was not valid.
 @anchor{gnutls-serv See Also}
 @subheading gnutls-serv See Also
 gnutls-cli-debug(1), gnutls-cli(1)
-
 @anchor{gnutls-serv Examples}
 @subheading gnutls-serv Examples
 Running your own TLS server based on GnuTLS can be useful when
@@ -301,4 +298,3 @@ gnutls-serv --http \
             --srppasswd srp-passwd.txt \
             --pskpasswd psk-passwd.txt
 @end example
-
index 43371a9..7866e6d 100644 (file)
@@ -1,13 +1,12 @@
 @node ocsptool Invocation
 @section Invoking ocsptool
 @pindex ocsptool
-@cindex GnuTLS OCSP tool
 @ignore
 #  -*- buffer-read-only: t -*- vi: set ro:
-# 
+#
 # DO NOT EDIT THIS FILE   (invoke-ocsptool.texi)
-# 
-# It has been AutoGen-ed  May  9, 2012 at 08:06:13 PM by AutoGen 5.16
+#
+# It has been AutoGen-ed  June  1, 2013 at 01:00:41 PM by AutoGen 5.17.3
 # From the definitions    ../src/ocsptool-args.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -23,11 +22,13 @@ This software is released under the GNU General Public License, version 3 or lat
 
 
 @anchor{ocsptool usage}
-@subheading ocsptool help/usage (-h)
+@subheading ocsptool help/usage (@option{--help})
 @cindex ocsptool help
 
 This is the automatically generated usage text for ocsptool.
-The text printed is the same whether for the @code{help} option (-h) or the @code{more-help} option (-!).  @code{more-help} will print
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
 the usage text by passing it through a pager program.
 @code{more-help} is disabled on platforms without a working
 @code{fork(2)} function.  The @code{PAGER} environment variable is
@@ -36,8 +37,8 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-ocsptool - GnuTLS OCSP tool - Ver. 3.0.21
-USAGE:  ocsptool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
+ocsptool - GnuTLS OCSP tool - Ver. 3.0.30
+USAGE:  lt-ocsptool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -93,14 +94,12 @@ please send bug reports to:  bug-gnutls@@gnu.org
 
 @anchor{ocsptool debug}
 @subheading debug option (-d)
-@cindex ocsptool-debug
 
 This is the ``enable debugging.'' option.
 This option takes an argument number.
 Specifies the debug level.
 @anchor{ocsptool ask}
 @subheading ask option
-@cindex ocsptool-ask
 
 This is the ``ask an ocsp/http server on a certificate validity'' option.
 This option takes an optional argument string @file{server name|url}.
@@ -127,7 +126,6 @@ The operation failed or the command syntax was not valid.
 @anchor{ocsptool See Also}
 @subheading ocsptool See Also
     certtool (1)
-
 @anchor{ocsptool Examples}
 @subheading ocsptool Examples
 @subheading Print information about an OCSP request
@@ -258,5 +256,3 @@ $ ocsptool --ask ocsp.CAcert.org --load-issuer issuer.pem \
 
 The request is sent via HTTP to the OCSP server address specified. If the
 address is ommited ocsptool will use the address stored in the certificate.
-
-
index 9555e1b..15bc079 100644 (file)
@@ -1,13 +1,12 @@
 @node p11tool Invocation
 @subsection Invoking p11tool
 @pindex p11tool
-@cindex GnuTLS PKCS #11 tool
 @ignore
 #  -*- buffer-read-only: t -*- vi: set ro:
-# 
+#
 # DO NOT EDIT THIS FILE   (invoke-p11tool.texi)
-# 
-# It has been AutoGen-ed  May  9, 2012 at 08:06:14 PM by AutoGen 5.16
+#
+# It has been AutoGen-ed  June  1, 2013 at 01:00:43 PM by AutoGen 5.17.3
 # From the definitions    ../src/p11tool-args.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -26,11 +25,13 @@ This software is released under the GNU General Public License, version 3 or lat
 
 
 @anchor{p11tool usage}
-@subsubheading p11tool help/usage (-h)
+@subsubheading p11tool help/usage (@option{--help})
 @cindex p11tool help
 
 This is the automatically generated usage text for p11tool.
-The text printed is the same whether for the @code{help} option (-h) or the @code{more-help} option (-!).  @code{more-help} will print
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
 the usage text by passing it through a pager program.
 @code{more-help} is disabled on platforms without a working
 @code{fork(2)} function.  The @code{PAGER} environment variable is
@@ -39,8 +40,8 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-p11tool - GnuTLS PKCS #11 tool - Ver. 3.0.21
-USAGE:  p11tool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [url]
+p11tool - GnuTLS PKCS #11 tool - Ver. 3.0.30
+USAGE:  lt-p11tool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [url]
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -108,38 +109,32 @@ please send bug reports to:  bug-gnutls@@gnu.org
 
 @anchor{p11tool debug}
 @subsubheading debug option (-d)
-@cindex p11tool-debug
 
 This is the ``enable debugging.'' option.
 This option takes an argument number.
 Specifies the debug level.
 @anchor{p11tool write}
 @subsubheading write option
-@cindex p11tool-write
 
 This is the ``writes the loaded objects to a pkcs #11 token'' option.
 It can be used to write private keys, certificates or secret keys to a token.
 @anchor{p11tool generate-rsa}
 @subsubheading generate-rsa option
-@cindex p11tool-generate-rsa
 
 This is the ``generate an rsa private-public key pair'' option.
 Generates an RSA private-public key pair on the specified token.
 @anchor{p11tool generate-dsa}
 @subsubheading generate-dsa option
-@cindex p11tool-generate-dsa
 
 This is the ``generate an rsa private-public key pair'' option.
 Generates an RSA private-public key pair on the specified token.
 @anchor{p11tool generate-ecc}
 @subsubheading generate-ecc option
-@cindex p11tool-generate-ecc
 
 This is the ``generate an rsa private-public key pair'' option.
 Generates an RSA private-public key pair on the specified token.
 @anchor{p11tool private}
 @subsubheading private option
-@cindex p11tool-private
 
 This is the ``marks the object to be written as private'' option.
 
@@ -153,27 +148,23 @@ is enabled by default.
 The written object will require a PIN to be used.
 @anchor{p11tool sec-param}
 @subsubheading sec-param option
-@cindex p11tool-sec-param
 
 This is the ``specify the security level'' option.
 This option takes an argument string @file{Security parameter}.
 This is alternative to the bits option. Available options are [low, legacy, normal, high, ultra].
 @anchor{p11tool inder}
 @subsubheading inder option
-@cindex p11tool-inder
 
 This is the ``use der/raw format for input'' option.
 Use DER/RAW format for input certificates and private keys.
 @anchor{p11tool inraw}
 @subsubheading inraw option
-@cindex p11tool-inraw
 
-This is an alias for the inder option,
+This is an alias for the @code{inder} option,
 @pxref{p11tool inder, the inder option documentation}.
 
 @anchor{p11tool provider}
 @subsubheading provider option
-@cindex p11tool-provider
 
 This is the ``specify the pkcs #11 provider library'' option.
 This option takes an argument file.
@@ -191,7 +182,6 @@ The operation failed or the command syntax was not valid.
 @anchor{p11tool See Also}
 @subsubheading p11tool See Also
     certtool (1)
-
 @anchor{p11tool Examples}
 @subsubheading p11tool Examples
 To view all tokens in your system use:
@@ -213,4 +203,3 @@ $ p11tool --login --write "pkcs11:URL" --load-certificate cert.pem \
 @end example
 Note that some tokens require the same label to be used for the certificate
 and its corresponding private key.
-
index ea5dc74..6fd907b 100644 (file)
@@ -1,13 +1,12 @@
 @node psktool Invocation
 @subsection Invoking psktool
 @pindex psktool
-@cindex GnuTLS PSK tool
 @ignore
 #  -*- buffer-read-only: t -*- vi: set ro:
-# 
+#
 # DO NOT EDIT THIS FILE   (invoke-psktool.texi)
-# 
-# It has been AutoGen-ed  May  9, 2012 at 08:06:14 PM by AutoGen 5.16
+#
+# It has been AutoGen-ed  June  1, 2013 at 01:00:42 PM by AutoGen 5.17.3
 # From the definitions    ../src/psk-args.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -22,11 +21,13 @@ This software is released under the GNU General Public License, version 3 or lat
 
 
 @anchor{psktool usage}
-@subsubheading psktool help/usage (-h)
+@subsubheading psktool help/usage (@option{--help})
 @cindex psktool help
 
 This is the automatically generated usage text for psktool.
-The text printed is the same whether for the @code{help} option (-h) or the @code{more-help} option (-!).  @code{more-help} will print
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
 the usage text by passing it through a pager program.
 @code{more-help} is disabled on platforms without a working
 @code{fork(2)} function.  The @code{PAGER} environment variable is
@@ -35,8 +36,8 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-psktool - GnuTLS PSK tool - Ver. 3.0.21
-USAGE:  psktool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
+psktool - GnuTLS PSK tool - Ver. 3.0.30
+USAGE:  lt-psktool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -64,7 +65,6 @@ please send bug reports to:  bug-gnutls@@gnu.org
 
 @anchor{psktool debug}
 @subsubheading debug option (-d)
-@cindex psktool-debug
 
 This is the ``enable debugging.'' option.
 This option takes an argument number.
@@ -82,7 +82,6 @@ The operation failed or the command syntax was not valid.
 @anchor{psktool See Also}
 @subsubheading psktool See Also
     gnutls-cli-debug (1), gnutls-serv (1), srptool (1), certtool (1)
-
 @anchor{psktool Examples}
 @subsubheading psktool Examples
 To add a user 'psk_identity' in @file{passwd.psk} for use with GnuTLS run:
@@ -96,5 +95,4 @@ $
 @end example
 
 This command will create @file{passwd.psk} if it does not exist
-and will add user 'psk_identity' (you will also be prompted for a password). 
-
+and will add user 'psk_identity' (you will also be prompted for a password).
index 314cde4..ab9cdb2 100644 (file)
@@ -1,13 +1,12 @@
 @node srptool Invocation
 @subsection Invoking srptool
 @pindex srptool
-@cindex GnuTLS SRP tool
 @ignore
 #  -*- buffer-read-only: t -*- vi: set ro:
-# 
+#
 # DO NOT EDIT THIS FILE   (invoke-srptool.texi)
-# 
-# It has been AutoGen-ed  May  9, 2012 at 08:06:13 PM by AutoGen 5.16
+#
+# It has been AutoGen-ed  June  1, 2013 at 01:00:39 PM by AutoGen 5.17.3
 # From the definitions    ../src/srptool-args.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -27,11 +26,13 @@ This software is released under the GNU General Public License, version 3 or lat
 
 
 @anchor{srptool usage}
-@subsubheading srptool help/usage (-h)
+@subsubheading srptool help/usage (@option{--help})
 @cindex srptool help
 
 This is the automatically generated usage text for srptool.
-The text printed is the same whether for the @code{help} option (-h) or the @code{more-help} option (-!).  @code{more-help} will print
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
 the usage text by passing it through a pager program.
 @code{more-help} is disabled on platforms without a working
 @code{fork(2)} function.  The @code{PAGER} environment variable is
@@ -40,8 +41,8 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-srptool - GnuTLS SRP tool - Ver. 3.0.21
-USAGE:  srptool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
+srptool - GnuTLS SRP tool - Ver. 3.0.30
+USAGE:  lt-srptool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
 
    -d, --debug=num            Enable debugging.
                                 - It must be in the range:
@@ -76,27 +77,23 @@ please send bug reports to:  bug-gnutls@@gnu.org
 
 @anchor{srptool debug}
 @subsubheading debug option (-d)
-@cindex srptool-debug
 
 This is the ``enable debugging.'' option.
 This option takes an argument number.
 Specifies the debug level.
 @anchor{srptool verify}
 @subsubheading verify option
-@cindex srptool-verify
 
 This is the ``just verify the password.'' option.
 Verifies the password provided against the password file.
 @anchor{srptool passwd-conf}
 @subsubheading passwd-conf option (-v)
-@cindex srptool-passwd-conf
 
 This is the ``specify a password conf file.'' option.
 This option takes an argument string.
 Specify a filename or a PKCS #11 URL to read the CAs from.
 @anchor{srptool create-conf}
 @subsubheading create-conf option
-@cindex srptool-create-conf
 
 This is the ``generate a password configuration file.'' option.
 This option takes an argument string.
@@ -115,7 +112,6 @@ The operation failed or the command syntax was not valid.
 @anchor{srptool See Also}
 @subsubheading srptool See Also
     gnutls-cli-debug (1), gnutls-serv (1), srptool (1), psktool (1), certtool (1)
-
 @anchor{srptool Examples}
 @subsubheading srptool Examples
 To create @file{tpasswd.conf} which holds the g and n values for SRP protocol
@@ -137,4 +133,3 @@ the one in @file{/etc/tpasswd} you will get an ok.
 @example
 $ srptool --passwd /etc/tpasswd --passwd\-conf /etc/tpasswd.conf --verify -u test
 @end example
-
index bdeca10..02ede14 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,14 +68,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -173,6 +193,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -491,6 +516,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -776,7 +802,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -850,6 +875,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -985,8 +1011,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1005,7 +1031,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1236,6 +1261,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index f871d72..1cf74cb 100644 (file)
@@ -182,6 +182,7 @@ APIMANS += gnutls_dtls_set_timeouts.3
 APIMANS += gnutls_dtls_get_mtu.3
 APIMANS += gnutls_dtls_get_data_mtu.3
 APIMANS += gnutls_dtls_set_mtu.3
+APIMANS += gnutls_dtls_set_data_mtu.3
 APIMANS += gnutls_dtls_get_timeout.3
 APIMANS += gnutls_dtls_cookie_send.3
 APIMANS += gnutls_dtls_cookie_verify.3
@@ -283,6 +284,7 @@ APIMANS += gnutls_session_set_data.3
 APIMANS += gnutls_session_get_data.3
 APIMANS += gnutls_session_get_data2.3
 APIMANS += gnutls_session_get_random.3
+APIMANS += gnutls_session_set_premaster.3
 APIMANS += gnutls_session_get_id.3
 APIMANS += gnutls_session_channel_binding.3
 APIMANS += gnutls_session_is_resumed.3
index 017c9a9..35ac9d4 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -73,14 +90,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -195,6 +215,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -545,6 +570,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -830,7 +856,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -904,6 +929,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1039,8 +1065,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1059,7 +1085,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1290,6 +1315,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1522,11 +1548,12 @@ APIMANS = gnutls_pubkey_init.3 gnutls_pubkey_deinit.3 \
        gnutls_hash_deinit.3 gnutls_hash_get_len.3 gnutls_hash_fast.3 \
        gnutls_rnd.3 gnutls_dtls_set_timeouts.3 gnutls_dtls_get_mtu.3 \
        gnutls_dtls_get_data_mtu.3 gnutls_dtls_set_mtu.3 \
-       gnutls_dtls_get_timeout.3 gnutls_dtls_cookie_send.3 \
-       gnutls_dtls_cookie_verify.3 gnutls_dtls_prestate_set.3 \
-       gnutls_record_get_discarded.3 gnutls_pk_algorithm_get_name.3 \
-       gnutls_init.3 gnutls_deinit.3 gnutls_bye.3 gnutls_handshake.3 \
-       gnutls_rehandshake.3 gnutls_alert_get.3 gnutls_alert_send.3 \
+       gnutls_dtls_set_data_mtu.3 gnutls_dtls_get_timeout.3 \
+       gnutls_dtls_cookie_send.3 gnutls_dtls_cookie_verify.3 \
+       gnutls_dtls_prestate_set.3 gnutls_record_get_discarded.3 \
+       gnutls_pk_algorithm_get_name.3 gnutls_init.3 gnutls_deinit.3 \
+       gnutls_bye.3 gnutls_handshake.3 gnutls_rehandshake.3 \
+       gnutls_alert_get.3 gnutls_alert_send.3 \
        gnutls_alert_send_appropriate.3 gnutls_alert_get_name.3 \
        gnutls_alert_get_strname.3 gnutls_pk_bits_to_sec_param.3 \
        gnutls_sec_param_get_name.3 gnutls_sec_param_to_pk_bits.3 \
@@ -1574,8 +1601,9 @@ APIMANS = gnutls_pubkey_init.3 gnutls_pubkey_deinit.3 \
        gnutls_cipher_suite_get_name.3 gnutls_protocol_get_version.3 \
        gnutls_protocol_get_name.3 gnutls_session_set_data.3 \
        gnutls_session_get_data.3 gnutls_session_get_data2.3 \
-       gnutls_session_get_random.3 gnutls_session_get_id.3 \
-       gnutls_session_channel_binding.3 gnutls_session_is_resumed.3 \
+       gnutls_session_get_random.3 gnutls_session_set_premaster.3 \
+       gnutls_session_get_id.3 gnutls_session_channel_binding.3 \
+       gnutls_session_is_resumed.3 \
        gnutls_session_resumption_requested.3 \
        gnutls_db_set_cache_expiration.3 gnutls_db_remove_session.3 \
        gnutls_db_set_retrieve_function.3 \
@@ -1997,11 +2025,18 @@ clean-libtool:
        -rm -rf .libs _libs
 install-man1: $(dist_man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
-       @list=''; test -n "$(man1dir)" || exit 0; \
-       { for i in $$list; do echo "$$i"; done; \
-       l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
-         sed -n '/\.1[a-z]*$$/p'; \
+       @list1=''; \
+       list2='$(dist_man_MANS)'; \
+       test -n "$(man1dir)" \
+         && test -n "`echo $$list1$$list2`" \
+         || exit 0; \
+       echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+       $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+       { for i in $$list1; do echo "$$i"; done;  \
+       if test -n "$$list2"; then \
+         for i in $$list2; do echo "$$i"; done \
+           | sed -n '/\.1[a-z]*$$/p'; \
+       fi; \
        } | while read p; do \
          if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; echo "$$p"; \
@@ -2033,11 +2068,18 @@ uninstall-man1:
        dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 install-man3: $(dist_man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man3dir)" || $(MKDIR_P) "$(DESTDIR)$(man3dir)"
-       @list=''; test -n "$(man3dir)" || exit 0; \
-       { for i in $$list; do echo "$$i"; done; \
-       l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
-         sed -n '/\.3[a-z]*$$/p'; \
+       @list1=''; \
+       list2='$(dist_man_MANS)'; \
+       test -n "$(man3dir)" \
+         && test -n "`echo $$list1$$list2`" \
+         || exit 0; \
+       echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \
+       $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \
+       { for i in $$list1; do echo "$$i"; done;  \
+       if test -n "$$list2"; then \
+         for i in $$list2; do echo "$$i"; done \
+           | sed -n '/\.3[a-z]*$$/p'; \
+       fi; \
        } | while read p; do \
          if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; echo "$$p"; \
index 8789aa7..368a041 100644 (file)
@@ -1,8 +1,8 @@
-.TH certtool 1 "03 Jul 2012" "3.0.21" "User Commands"
+.TH certtool 1 "01 Jun 2013" "3.0.30" "User Commands"
 .\"
 .\"  DO NOT EDIT THIS FILE   (certtool-args.man)
-.\"  
-.\"  It has been AutoGen-ed  July  3, 2012 at 12:05:40 AM by AutoGen 5.16
+.\"
+.\"  It has been AutoGen-ed  June  1, 2013 at 01:07:09 PM by AutoGen 5.17.3
 .\"  From the definitions    certtool-args.def.tmp
 .\"  and the template file   agman-cmd.tpl
 .\"
@@ -11,7 +11,7 @@ certtool \- GnuTLS PKCS #11 tool
 .SH SYNOPSIS
 .B certtool
 .\" Mixture of short (flag) options and long options
-.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP " [[=| ]\fIvalue\fP]]..."
+.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP "[[=| ]\fIvalue\fP]]..."
 .PP
 All arguments must be options.
 .PP
@@ -42,11 +42,11 @@ Input file.
 Output file.
 .sp
 .TP
-.BR \-s ", " -\-generate\-self\-signed
+.BR \-s ", " \-\-generate\-self\-signed
 Generate a self-signed certificate.
 .sp
 .TP
-.BR \-c ", " -\-generate\-certificate
+.BR \-c ", " \-\-generate\-certificate
 Generate a signed certificate.
 .sp
 .TP
@@ -58,19 +58,19 @@ Generates a proxy certificate.
 Generate a CRL.
 .sp
 .TP
-.BR \-u ", " -\-update\-certificate
+.BR \-u ", " \-\-update\-certificate
 Update a signed certificate.
 .sp
 .TP
-.BR \-p ", " -\-generate\-privkey
+.BR \-p ", " \-\-generate\-privkey
 Generate a private key.
 .sp
 .TP
-.BR \-q ", " -\-generate\-request
+.BR \-q ", " \-\-generate\-request
 Generate a PKCS #10 certificate request.
 .sp
 .TP
-.BR \-e ", " -\-verify\-chain
+.BR \-e ", " \-\-verify\-chain
 Verify a PEM encoded certificate chain..
 .sp
 The last certificate in the chain must be a self signed one.
@@ -136,7 +136,7 @@ This can be either a file or a PKCS #11 URL
 Password to use.
 .sp
 .TP
-.BR \-i ", " -\-certificate\-info
+.BR \-i ", " \-\-certificate\-info
 Print information on the given certificate.
 .sp
 .TP
@@ -152,7 +152,7 @@ Print information on the given OpenPGP certificate.
 Print information on the given OpenPGP keyring structure.
 .sp
 .TP
-.BR \-l ", " -\-crl\-info
+.BR \-l ", " \-\-crl\-info
 Print information on the given CRL structure.
 .sp
 .TP
@@ -176,7 +176,7 @@ Print information on a PKCS #7 structure.
 Convert S/MIME to PKCS #7 structure.
 .sp
 .TP
-.BR \-k ", " -\-key\-info
+.BR \-k ", " \-\-key\-info
 Print information on a private key.
 .sp
 .TP
@@ -203,7 +203,7 @@ It requires a certificate, a private key and possibly a CA certificate to be spe
 Generate a PKCS #8 structure.
 .sp
 .TP
-.BR \-8 ", " -\-pkcs8
+.BR \-8 ", " \-\-pkcs8
 Use PKCS #8 format for private keys.
 .sp
 .TP
@@ -232,8 +232,8 @@ The input files will be assumed to be in DER or RAW format.
 Unlike options that in PEM input would allow multiple input data (e.g. multiple 
 certificates), when reading in DER format a single data structure is read.
 .TP
-.BR \-\-inder
-This is an alias for the inder option.
+.BR \-\-inraw
+This is an alias for the \fI--inder\fR option.
 .TP
 .BR \-\-outder, " \fB\-\-no\-outder\fP"
 Use DER format for output certificates and private keys.
@@ -241,8 +241,8 @@ The \fIno\-outder\fP form will disable the option.
 .sp
 The output will be in DER or RAW format.
 .TP
-.BR \-\-outder
-This is an alias for the outder option.
+.BR \-\-outraw
+This is an alias for the \fI--outder\fR option.
 .TP
 .BR \-\-bits "=\fInumber\fP"
 Specify the number of bits for key generate.
@@ -627,6 +627,10 @@ Successful program execution.
 .TP
 .BR 1 " (EXIT_FAILURE)"
 The operation failed or the command syntax was not valid.
+.TP
+.BR 70 " (EX_SOFTWARE)"
+libopts had an internal operational error.  Please report
+it to autogen-users@lists.sourceforge.net.  Thank you.
 .SH "SEE ALSO"
     p11tool (1)
 .SH "AUTHORS"
index ed998ac..0d2ffd7 100644 (file)
@@ -1,8 +1,8 @@
-.TH gnutls-cli-debug 1 "03 Jul 2012" "3.0.21" "User Commands"
+.TH gnutls-cli-debug 1 "01 Jun 2013" "3.0.30" "User Commands"
 .\"
 .\"  DO NOT EDIT THIS FILE   (cli-debug-args.man)
-.\"  
-.\"  It has been AutoGen-ed  July  3, 2012 at 12:05:47 AM by AutoGen 5.16
+.\"
+.\"  It has been AutoGen-ed  June  1, 2013 at 01:07:14 PM by AutoGen 5.17.3
 .\"  From the definitions    cli-debug-args.def.tmp
 .\"  and the template file   agman-cmd.tpl
 .\"
@@ -11,7 +11,7 @@ gnutls-cli-debug \- GnuTLS debug client
 .SH SYNOPSIS
 .B gnutls-cli-debug
 .\" Mixture of short (flag) options and long options
-.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP " [[=| ]\fIvalue\fP]]..." 
+.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP "[[=| ]\fIvalue\fP]]..." " " ""
 .PP
 Operands and options may be intermixed.  They will be reordered.
 .PP
@@ -37,7 +37,7 @@ in the range  0 through 9999
 .sp
 Specifies the debug level.
 .TP
-.BR \-V ", " -\-verbose
+.BR \-V ", " \-\-verbose
 More verbose output.
 This option may appear an unlimited number of times.
 .sp
@@ -123,6 +123,10 @@ Successful program execution.
 .TP
 .BR 1 " (EXIT_FAILURE)"
 The operation failed or the command syntax was not valid.
+.TP
+.BR 70 " (EX_SOFTWARE)"
+libopts had an internal operational error.  Please report
+it to autogen-users@lists.sourceforge.net.  Thank you.
 .SH "SEE ALSO"
 gnutls\-cli(1), gnutls\-serv(1)
 .SH "AUTHORS"
index c5a96ec..bc74e4d 100644 (file)
@@ -1,8 +1,8 @@
-.TH gnutls-cli 1 "03 Jul 2012" "3.0.21" "User Commands"
+.TH gnutls-cli 1 "01 Jun 2013" "3.0.30" "User Commands"
 .\"
 .\"  DO NOT EDIT THIS FILE   (cli-args.man)
-.\"  
-.\"  It has been AutoGen-ed  July  3, 2012 at 12:05:44 AM by AutoGen 5.16
+.\"
+.\"  It has been AutoGen-ed  June  1, 2013 at 01:07:12 PM by AutoGen 5.17.3
 .\"  From the definitions    cli-args.def.tmp
 .\"  and the template file   agman-cmd.tpl
 .\"
@@ -11,7 +11,7 @@ gnutls-cli \- GnuTLS client
 .SH SYNOPSIS
 .B gnutls-cli
 .\" Mixture of short (flag) options and long options
-.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP " [[=| ]\fIvalue\fP]]..." [hostname]
+.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP "[[=| ]\fIvalue\fP]]..." " " "[hostname]"
 .PP
 Operands and options may be intermixed.  They will be reordered.
 .PP
@@ -33,7 +33,7 @@ in the range  0 through 9999
 .sp
 Specifies the debug level.
 .TP
-.BR \-V ", " -\-verbose
+.BR \-V ", " \-\-verbose
 More verbose output.
 This option may appear an unlimited number of times.
 .sp
@@ -50,12 +50,12 @@ The \fIno\-ocsp\fP form will disable the option.
 .sp
 This option will enable verification of the peer's certificate using ocsp
 .TP
-.BR \-r ", " -\-resume
+.BR \-r ", " \-\-resume
 Establish a session and resume.
 .sp
 Connect, establish a session, reconnect and resume.
 .TP
-.BR \-e ", " -\-rehandshake
+.BR \-e ", " \-\-rehandshake
 Establish a session and rehandshake.
 .sp
 Connect, establish a session and rehandshake immediately.
@@ -64,12 +64,12 @@ Connect, establish a session and rehandshake immediately.
 Don't accept session tickets.
 .sp
 .TP
-.BR \-s ", " -\-starttls
+.BR \-s ", " \-\-starttls
 Connect, establish a plain session and start TLS..
 .sp
 The TLS session will be initiated when EOF or a SIGALRM is received.
 .TP
-.BR \-u ", " -\-udp
+.BR \-u ", " \-\-udp
 Use DTLS (datagram TLS) over UDP.
 .sp
 .TP
@@ -93,7 +93,7 @@ Send CR LF instead of LF.
 Use DER format for certificates to read from.
 .sp
 .TP
-.BR \-f ", " -\-fingerprint
+.BR \-f ", " \-\-fingerprint
 Send the openpgp fingerprint, instead of the key.
 .sp
 .TP
@@ -123,6 +123,7 @@ Priorities string.
 TLS algorithms and protocols to enable. You can
 use predefined sets of ciphersuites such as PERFORMANCE,
 NORMAL, SECURE128, SECURE256.
+.sp
 Check  the  GnuTLS  manual  on  section  \(lqPriority strings\(rq for more
 information on allowed keywords
 .TP
@@ -194,7 +195,7 @@ Benchmark individual software ciphers (no hw acceleration).
 Benchmark ciphers and key exchange methods in TLS.
 .sp
 .TP
-.BR \-l ", " -\-list
+.BR \-l ", " \-\-list
 Print a list of the supported algorithms and modes.
 .sp
 Print a list of the supported algorithms and modes. If a priority string is given then only the enabled ciphersuites are shown.
@@ -265,6 +266,10 @@ Successful program execution.
 .TP
 .BR 1 " (EXIT_FAILURE)"
 The operation failed or the command syntax was not valid.
+.TP
+.BR 70 " (EX_SOFTWARE)"
+libopts had an internal operational error.  Please report
+it to autogen-users@lists.sourceforge.net.  Thank you.
 .SH "SEE ALSO"
 gnutls\-cli\-debug(1), gnutls\-serv(1)
 .SH "AUTHORS"
index 0d1ae43..6b0abef 100644 (file)
@@ -1,8 +1,8 @@
-.TH gnutls-serv 1 "03 Jul 2012" "3.0.21" "User Commands"
+.TH gnutls-serv 1 "01 Jun 2013" "3.0.30" "User Commands"
 .\"
 .\"  DO NOT EDIT THIS FILE   (serv-args.man)
-.\"  
-.\"  It has been AutoGen-ed  July  3, 2012 at 12:05:58 AM by AutoGen 5.16
+.\"
+.\"  It has been AutoGen-ed  June  1, 2013 at 01:07:25 PM by AutoGen 5.17.3
 .\"  From the definitions    serv-args.def.tmp
 .\"  and the template file   agman-cmd.tpl
 .\"
@@ -11,7 +11,7 @@ gnutls-serv \- GnuTLS server
 .SH SYNOPSIS
 .B gnutls-serv
 .\" Mixture of short (flag) options and long options
-.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP " [[=| ]\fIvalue\fP]]..."
+.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP "[[=| ]\fIvalue\fP]]..."
 .PP
 All arguments must be options.
 .PP
@@ -36,11 +36,11 @@ Specifies the debug level.
 Don't accept session tickets.
 .sp
 .TP
-.BR \-g ", " -\-generate
+.BR \-g ", " \-\-generate
 Generate Diffie-Hellman and RSA-export parameters.
 .sp
 .TP
-.BR \-q ", " -\-quiet
+.BR \-q ", " \-\-quiet
 Suppress some messages.
 .sp
 .TP
@@ -56,7 +56,7 @@ Act as an HTTP server.
 Act as an Echo server.
 .sp
 .TP
-.BR \-u ", " -\-udp
+.BR \-u ", " \-\-udp
 Use DTLS (datagram TLS) over UDP.
 .sp
 .TP
@@ -72,11 +72,11 @@ in the range  0 through 17000
 .in -4
 .sp
 .TP
-.BR \-a ", " -\-disable\-client\-cert
+.BR \-a ", " \-\-disable\-client\-cert
 Do not request a client certificate.
 .sp
 .TP
-.BR \-r ", " -\-require\-client\-cert
+.BR \-r ", " \-\-require\-client\-cert
 Require a client certificate.
 .sp
 .TP
@@ -90,6 +90,7 @@ Priorities string.
 TLS algorithms and protocols to enable. You can
 use predefined sets of ciphersuites such as PERFORMANCE,
 NORMAL, SECURE128, SECURE256.
+.sp
 Check  the  GnuTLS  manual  on  section  \(lqPriority strings\(rq for more
 information on allowed keywords
 .TP
@@ -166,7 +167,7 @@ The port to connect to.
 This option takes an integer number as its argument.
 .sp
 .TP
-.BR \-l ", " -\-list
+.BR \-l ", " \-\-list
 Print a list of the supported algorithms and modes.
 .sp
 Print a list of the supported algorithms and modes. If a priority string is given then only the enabled ciphersuites are shown.
@@ -396,6 +397,10 @@ Successful program execution.
 .TP
 .BR 1 " (EXIT_FAILURE)"
 The operation failed or the command syntax was not valid.
+.TP
+.BR 70 " (EX_SOFTWARE)"
+libopts had an internal operational error.  Please report
+it to autogen-users@lists.sourceforge.net.  Thank you.
 .SH "SEE ALSO"
 gnutls\-cli\-debug(1), gnutls\-cli(1)
 .SH "AUTHORS"
index 6d5f461..47b8301 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_alert_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_alert_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_alert_get \- API function
 .SH SYNOPSIS
index 6252b5f..4a0fcbb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_alert_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_alert_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_alert_get_name \- API function
 .SH SYNOPSIS
index 8ce2df0..f6972f8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_alert_get_strname" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_alert_get_strname" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_alert_get_strname \- API function
 .SH SYNOPSIS
index 41fed05..2254485 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_alert_send" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_alert_send" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_alert_send \- API function
 .SH SYNOPSIS
index bf8881d..aa86c5d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_alert_send_appropriate" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_alert_send_appropriate" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_alert_send_appropriate \- API function
 .SH SYNOPSIS
index 3fbc09e..cb78566 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_anon_allocate_client_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_anon_allocate_client_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_anon_allocate_client_credentials \- API function
 .SH SYNOPSIS
index 7650fa7..cbcde21 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_anon_allocate_server_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_anon_allocate_server_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_anon_allocate_server_credentials \- API function
 .SH SYNOPSIS
index 4ffb027..8ad4d3b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_anon_free_client_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_anon_free_client_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_anon_free_client_credentials \- API function
 .SH SYNOPSIS
index 453b0c6..00be4f0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_anon_free_server_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_anon_free_server_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_anon_free_server_credentials \- API function
 .SH SYNOPSIS
index 42a1100..7e69359 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_anon_set_params_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_anon_set_params_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_anon_set_params_function \- API function
 .SH SYNOPSIS
index 4137c70..501907b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_anon_set_server_dh_params" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_anon_set_server_dh_params" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_anon_set_server_dh_params \- API function
 .SH SYNOPSIS
index 9d9ae1d..09a3bff 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_anon_set_server_params_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_anon_set_server_params_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_anon_set_server_params_function \- API function
 .SH SYNOPSIS
index a56c374..5a40dce 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_auth_client_get_type" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_auth_client_get_type" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_auth_client_get_type \- API function
 .SH SYNOPSIS
index bf2fabb..e8645db 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_auth_get_type" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_auth_get_type" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_auth_get_type \- API function
 .SH SYNOPSIS
index ea671d4..d5bdda9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_auth_server_get_type" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_auth_server_get_type" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_auth_server_get_type \- API function
 .SH SYNOPSIS
index b7b4d1a..5cd9a2d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_bye" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_bye" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_bye \- API function
 .SH SYNOPSIS
index 4bc3525..daad6b3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_activation_time_peers" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_activation_time_peers" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_activation_time_peers \- API function
 .SH SYNOPSIS
index 16e68fe..3fb5275 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_allocate_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_allocate_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_allocate_credentials \- API function
 .SH SYNOPSIS
index 8ea035d..1f24091 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_client_get_request_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_client_get_request_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_client_get_request_status \- API function
 .SH SYNOPSIS
index 6ac7581..8fbab0a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_expiration_time_peers" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_expiration_time_peers" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_expiration_time_peers \- API function
 .SH SYNOPSIS
index ea92904..5258284 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_free_ca_names" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_free_ca_names" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_free_ca_names \- API function
 .SH SYNOPSIS
index 4a564b7..f6c79bc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_free_cas" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_free_cas" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_free_cas \- API function
 .SH SYNOPSIS
index 299f700..5c0bd57 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_free_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_free_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_free_credentials \- API function
 .SH SYNOPSIS
index a417fa2..209aca2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_free_crls" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_free_crls" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_free_crls \- API function
 .SH SYNOPSIS
index 5c92138..a366309 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_free_keys" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_free_keys" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_free_keys \- API function
 .SH SYNOPSIS
index 5b7868d..fcba84d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_get_issuer" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_get_issuer" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_get_issuer \- API function
 .SH SYNOPSIS
index 4dd7c23..4d703d9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_get_ours" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_get_ours" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_get_ours \- API function
 .SH SYNOPSIS
@@ -15,7 +15,7 @@ The certificate is in raw (DER) format.  No certificate
 list is being returned. Only the first certificate.
 .SH "RETURNS"
 a pointer to a \fBgnutls_datum_t\fP containing our
-certificates, or \fBNULL\fP in case of an error or if no certificate
+certificate, or \fBNULL\fP in case of an error or if no certificate
 was used.
 .SH "REPORTING BUGS"
 Report bugs to <bug-gnutls@gnu.org>.
index 1142349..97462f6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_get_peers" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_get_peers" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_get_peers \- API function
 .SH SYNOPSIS
index b61b551..054885e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_send_x509_rdn_sequence" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_send_x509_rdn_sequence" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_send_x509_rdn_sequence \- API function
 .SH SYNOPSIS
index 821291c..b53913d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_server_set_request" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_server_set_request" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_server_set_request \- API function
 .SH SYNOPSIS
index c7ba6ac..0f2c981 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_dh_params" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_dh_params" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_dh_params \- API function
 .SH SYNOPSIS
index 2fd28b9..9d7bbd8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_key" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_key" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_key \- API function
 .SH SYNOPSIS
index 0471a3d..c46e2cd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_openpgp_key" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_openpgp_key" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_openpgp_key \- API function
 .SH SYNOPSIS
index 20c789d..07525bc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_openpgp_key_file" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_openpgp_key_file" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_openpgp_key_file \- API function
 .SH SYNOPSIS
index 4ee9625..3a73404 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_openpgp_key_file2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_openpgp_key_file2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_openpgp_key_file2 \- API function
 .SH SYNOPSIS
index 8fe7b88..a315537 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_openpgp_key_mem" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_openpgp_key_mem" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_openpgp_key_mem \- API function
 .SH SYNOPSIS
index 811ea3f..255f118 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_openpgp_key_mem2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_openpgp_key_mem2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_openpgp_key_mem2 \- API function
 .SH SYNOPSIS
index e3d92e9..ed7df8b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_openpgp_keyring_file" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_openpgp_keyring_file" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_openpgp_keyring_file \- API function
 .SH SYNOPSIS
index ca5906c..3dc9239 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_openpgp_keyring_mem" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_openpgp_keyring_mem" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_openpgp_keyring_mem \- API function
 .SH SYNOPSIS
index d44ee1c..72fa691 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_params_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_params_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_params_function \- API function
 .SH SYNOPSIS
index 6858ed2..b28390c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_retrieve_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_retrieve_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_retrieve_function \- API function
 .SH SYNOPSIS
index 164d87a..3f06f1f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_retrieve_function2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_retrieve_function2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_retrieve_function2 \- API function
 .SH SYNOPSIS
index b21b2c1..b617a8b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_rsa_export_params" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_rsa_export_params" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_rsa_export_params \- API function
 .SH SYNOPSIS
index e3b05e5..e602e70 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_verify_flags" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_verify_flags" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_verify_flags \- API function
 .SH SYNOPSIS
@@ -14,7 +14,8 @@ are the flags
 .SH "DESCRIPTION"
 This function will set the flags to be used at verification of the
 certificates.  Flags must be OR of the
-\fBgnutls_certificate_verify_flags\fP enumerations.
+\fBgnutls_certificate_verify_flags\fP enumerations. The default
+for TLS sessions is GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN.
 .SH "REPORTING BUGS"
 Report bugs to <bug-gnutls@gnu.org>.
 .br
index 782c62a..42fe247 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_verify_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_verify_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_verify_function \- API function
 .SH SYNOPSIS
index 44461ce..8933965 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_verify_limits" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_verify_limits" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_verify_limits \- API function
 .SH SYNOPSIS
index e73b9ee..beb6e05 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_crl" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_crl" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_crl \- API function
 .SH SYNOPSIS
index 4221d4a..2bf277d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_crl_file" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_crl_file" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_crl_file \- API function
 .SH SYNOPSIS
index ccb489d..2e4e75f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_crl_mem" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_crl_mem" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_crl_mem \- API function
 .SH SYNOPSIS
index afdfa2f..df2b1ce 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_key" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_key" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_key \- API function
 .SH SYNOPSIS
index 66cf9e9..0cc80f1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_key_file" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_key_file" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_key_file \- API function
 .SH SYNOPSIS
index 29a2682..c9df1f4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_key_mem" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_key_mem" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_key_mem \- API function
 .SH SYNOPSIS
index 5d406c7..ef90f3e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_simple_pkcs12_file" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_simple_pkcs12_file" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_simple_pkcs12_file \- API function
 .SH SYNOPSIS
index 9e9d345..86ad2d3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_simple_pkcs12_mem" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_simple_pkcs12_mem" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_simple_pkcs12_mem \- API function
 .SH SYNOPSIS
index 6dd7695..ea6058d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_system_trust" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_system_trust" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_system_trust \- API function
 .SH SYNOPSIS
index 7ad33b3..eb97ecc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_trust" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_trust" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_trust \- API function
 .SH SYNOPSIS
index 06f33c1..5bd3bca 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_trust_file" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_trust_file" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_trust_file \- API function
 .SH SYNOPSIS
index 7e48bf8..8bb03f3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_set_x509_trust_mem" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_set_x509_trust_mem" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_set_x509_trust_mem \- API function
 .SH SYNOPSIS
index 8592f26..f73316c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_type_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_type_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_type_get \- API function
 .SH SYNOPSIS
index d8e6406..98ba88a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_type_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_type_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_type_get_id \- API function
 .SH SYNOPSIS
index 58732d9..3e9132b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_type_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_type_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_type_get_name \- API function
 .SH SYNOPSIS
index 819e276..cf44e9b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_type_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_type_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_type_list \- API function
 .SH SYNOPSIS
index 3fece9d..fab85ab 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_type_set_priority" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_type_set_priority" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_type_set_priority \- API function
 .SH SYNOPSIS
index a8dfdf4..8db8eee 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_certificate_verify_peers2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_certificate_verify_peers2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_certificate_verify_peers2 \- API function
 .SH SYNOPSIS
index 1b6a46c..4487c10 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_check_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_check_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_check_version \- API function
 .SH SYNOPSIS
index 41e42a0..6f7d83a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_add_auth" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_add_auth" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_add_auth \- API function
 .SH SYNOPSIS
index 9f2ff14..13b562c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_decrypt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_decrypt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_decrypt \- API function
 .SH SYNOPSIS
index fe59f8d..485d3a6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_decrypt2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_decrypt2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_decrypt2 \- API function
 .SH SYNOPSIS
index 71b099e..4448de1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_deinit \- API function
 .SH SYNOPSIS
index 2203742..72e82df 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_encrypt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_encrypt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_encrypt \- API function
 .SH SYNOPSIS
index d3b3132..91ce64a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_encrypt2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_encrypt2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_encrypt2 \- API function
 .SH SYNOPSIS
index d31da30..1e574db 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_get \- API function
 .SH SYNOPSIS
index 0ef93f4..62ebe4b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_get_block_size" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_get_block_size" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_get_block_size \- API function
 .SH SYNOPSIS
index 773b4ea..bf4d525 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_get_id \- API function
 .SH SYNOPSIS
index a86188c..297ecc9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_get_key_size" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_get_key_size" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_get_key_size \- API function
 .SH SYNOPSIS
index 2c7f23a..013786b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_get_name \- API function
 .SH SYNOPSIS
index d96a686..aba3cba 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_init \- API function
 .SH SYNOPSIS
index cae821c..231bc70 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_list \- API function
 .SH SYNOPSIS
index 66d52e0..51f8c4d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_set_iv" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_set_iv" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_set_iv \- API function
 .SH SYNOPSIS
index 3eab045..75e587e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_set_priority" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_set_priority" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_set_priority \- API function
 .SH SYNOPSIS
index 175b55a..178a9ab 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_suite_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_suite_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_suite_get_name \- API function
 .SH SYNOPSIS
index f52c339..c3a28e3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_suite_info" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_suite_info" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_suite_info \- API function
 .SH SYNOPSIS
index 89ac33d..6bc3f9c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_cipher_tag" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_cipher_tag" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_cipher_tag \- API function
 .SH SYNOPSIS
index 1ed0678..8b5d11f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_compression_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_compression_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_compression_get \- API function
 .SH SYNOPSIS
index e9ca17b..1e4187f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_compression_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_compression_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_compression_get_id \- API function
 .SH SYNOPSIS
index 3a3641f..5015773 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_compression_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_compression_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_compression_get_name \- API function
 .SH SYNOPSIS
index 3e2bee3..0938a3a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_compression_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_compression_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_compression_list \- API function
 .SH SYNOPSIS
index 47323dc..72c89d1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_compression_set_priority" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_compression_set_priority" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_compression_set_priority \- API function
 .SH SYNOPSIS
index 0d8b4db..d7f75ed 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_credentials_clear" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_credentials_clear" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_credentials_clear \- API function
 .SH SYNOPSIS
index c0562c3..a20145c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_credentials_set" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_credentials_set" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_credentials_set \- API function
 .SH SYNOPSIS
index 704efac..37b894c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_db_check_entry" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_db_check_entry" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_db_check_entry \- API function
 .SH SYNOPSIS
index 543a514..24ea62a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_db_get_ptr" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_db_get_ptr" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_db_get_ptr \- API function
 .SH SYNOPSIS
index b04f78f..ee080d5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_db_remove_session" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_db_remove_session" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_db_remove_session \- API function
 .SH SYNOPSIS
index 919dab4..c799628 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_db_set_cache_expiration" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_db_set_cache_expiration" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_db_set_cache_expiration \- API function
 .SH SYNOPSIS
index 7ae80a9..6169efc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_db_set_ptr" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_db_set_ptr" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_db_set_ptr \- API function
 .SH SYNOPSIS
index 0c0edbe..65860ad 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_db_set_remove_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_db_set_remove_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_db_set_remove_function \- API function
 .SH SYNOPSIS
index 8937c81..5cbc284 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_db_set_retrieve_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_db_set_retrieve_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_db_set_retrieve_function \- API function
 .SH SYNOPSIS
index adade62..9724eb6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_db_set_store_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_db_set_store_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_db_set_store_function \- API function
 .SH SYNOPSIS
index 7f8a208..346d516 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_deinit \- API function
 .SH SYNOPSIS
index b1620b7..06ce816 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_get_group" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_get_group" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_get_group \- API function
 .SH SYNOPSIS
index 7683c3b..bbd6816 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_get_peers_public_bits" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_get_peers_public_bits" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_get_peers_public_bits \- API function
 .SH SYNOPSIS
index 9738048..a844828 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_get_prime_bits" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_get_prime_bits" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_get_prime_bits \- API function
 .SH SYNOPSIS
index 649f490..e3c6bb6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_get_pubkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_get_pubkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_get_pubkey \- API function
 .SH SYNOPSIS
index 66516b1..a115d06 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_get_secret_bits" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_get_secret_bits" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_get_secret_bits \- API function
 .SH SYNOPSIS
index ebbef33..82a02d4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_params_cpy" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_params_cpy" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_params_cpy \- API function
 .SH SYNOPSIS
index 46e1d5d..0bf9d79 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_params_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_params_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_params_deinit \- API function
 .SH SYNOPSIS
index fc80d4b..f727600 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_params_export_pkcs3" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_params_export_pkcs3" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_params_export_pkcs3 \- API function
 .SH SYNOPSIS
index 153e1fa..90d272c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_params_export_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_params_export_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_params_export_raw \- API function
 .SH SYNOPSIS
index 61ebcd2..265e457 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_params_generate2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_params_generate2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_params_generate2 \- API function
 .SH SYNOPSIS
index a14b574..42339fc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_params_import_pkcs3" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_params_import_pkcs3" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_params_import_pkcs3 \- API function
 .SH SYNOPSIS
index 6046afd..b387c46 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_params_import_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_params_import_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_params_import_raw \- API function
 .SH SYNOPSIS
index 04abf49..d99d8e3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_params_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_params_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_params_init \- API function
 .SH SYNOPSIS
index 3d42e5d..ec7c806 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dh_set_prime_bits" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dh_set_prime_bits" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dh_set_prime_bits \- API function
 .SH SYNOPSIS
index cd6b7ad..5bb564c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dtls_cookie_send" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dtls_cookie_send" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dtls_cookie_send \- API function
 .SH SYNOPSIS
index 1742a3d..90799b1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dtls_cookie_verify" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dtls_cookie_verify" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dtls_cookie_verify \- API function
 .SH SYNOPSIS
index f9fbe40..0548799 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dtls_get_data_mtu" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dtls_get_data_mtu" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dtls_get_data_mtu \- API function
 .SH SYNOPSIS
index a553c4c..7775b8e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dtls_get_mtu" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dtls_get_mtu" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dtls_get_mtu \- API function
 .SH SYNOPSIS
index 177bfb8..2bf2a15 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dtls_get_timeout" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dtls_get_timeout" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dtls_get_timeout \- API function
 .SH SYNOPSIS
index f946565..37f9de3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dtls_prestate_set" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dtls_prestate_set" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dtls_prestate_set \- API function
 .SH SYNOPSIS
diff --git a/doc/manpages/gnutls_dtls_set_data_mtu.3 b/doc/manpages/gnutls_dtls_set_data_mtu.3
new file mode 100644 (file)
index 0000000..5895a2a
--- /dev/null
@@ -0,0 +1,54 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
+.TH "gnutls_dtls_set_data_mtu" 3 "3.0.24" "gnutls" "gnutls"
+.SH NAME
+gnutls_dtls_set_data_mtu \- API function
+.SH SYNOPSIS
+.B #include <gnutls/dtls.h>
+.sp
+.BI "int gnutls_dtls_set_data_mtu(gnutls_session_t " session ", unsigned int " mtu ");"
+.SH ARGUMENTS
+.IP "gnutls_session_t session" 12
+is a \fBgnutls_session_t\fP structure.
+.IP "unsigned int mtu" 12
+The maximum unencrypted transfer unit of the session
+.SH "DESCRIPTION"
+This function will set the maximum size of the *unencrypted* records
+which will be sent over a DTLS session. It is equivalent to calculating
+the DTLS packet overhead with the current encryption parameters, and
+calling \fBgnutls_dtls_set_mtu()\fP with that value. In particular, this means
+that you may need to call this function again after any negotiation or
+renegotiation, in order to ensure that the MTU is still sufficient to
+account for the new protocol overhead.
+.SH "RETURNS"
+\fBGNUTLS_E_SUCCESS\fP (0) on success, or a negative error code.
+.SH "SINCE"
+3.1
+.SH "REPORTING BUGS"
+Report bugs to <bug-gnutls@gnu.org>.
+.br
+General guidelines for reporting bugs: http://www.gnu.org/gethelp/
+.br
+GnuTLS home page: http://www.gnu.org/software/gnutls/
+
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B gnutls
+is maintained as a Texinfo manual.  If the
+.B info
+and
+.B gnutls
+programs are properly installed at your site, the command
+.IP
+.B info gnutls
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/gnutls/manual/
+.PP
index 7ad5f6e..f249ce0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dtls_set_mtu" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dtls_set_mtu" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dtls_set_mtu \- API function
 .SH SYNOPSIS
@@ -10,10 +10,13 @@ gnutls_dtls_set_mtu \- API function
 .IP "gnutls_session_t session" 12
 is a \fBgnutls_session_t\fP structure.
 .IP "unsigned int mtu" 12
-The maximum transfer unit of the interface
+The maximum transfer unit of the transport
 .SH "DESCRIPTION"
-This function will set the maximum transfer unit of the interface
-that DTLS packets are expected to leave from.
+This function will set the maximum transfer unit of the transport
+that DTLS packets are sent over. Note that this should exclude
+the IP (or IPv6) and UDP headers. So for DTLS over IPv6 on an
+Ethenet device with MTU 1500, the DTLS MTU set with this function
+would be 1500 \- 40 (IPV6 header) \- 8 (UDP header) = 1452.
 .SH "SINCE"
 3.0
 .SH "REPORTING BUGS"
index 79ea04d..6468b92 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_dtls_set_timeouts" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_dtls_set_timeouts" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_dtls_set_timeouts \- API function
 .SH SYNOPSIS
index e3d39f3..4222aa9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ecc_curve_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ecc_curve_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ecc_curve_get \- API function
 .SH SYNOPSIS
index 8b5c03c..d7c0f3c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ecc_curve_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ecc_curve_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ecc_curve_get_name \- API function
 .SH SYNOPSIS
index eeb4c9d..a666c47 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ecc_curve_get_size" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ecc_curve_get_size" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ecc_curve_get_size \- API function
 .SH SYNOPSIS
index fb2e355..8adf027 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ecc_curve_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ecc_curve_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ecc_curve_list \- API function
 .SH SYNOPSIS
index 59b2f6a..32a2d40 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_error_is_fatal" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_error_is_fatal" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_error_is_fatal \- API function
 .SH SYNOPSIS
index 844ec5d..1106873 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_error_to_alert" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_error_to_alert" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_error_to_alert \- API function
 .SH SYNOPSIS
index 3bf0e15..f9bcd99 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_fingerprint" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_fingerprint" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_fingerprint \- API function
 .SH SYNOPSIS
index 5aca844..fd0ba2d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_global_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_global_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_global_deinit \- API function
 .SH SYNOPSIS
index c9d22e9..723ea85 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_global_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_global_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_global_init \- API function
 .SH SYNOPSIS
index 713b476..6153fea 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_global_set_audit_log_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_global_set_audit_log_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_global_set_audit_log_function \- API function
 .SH SYNOPSIS
index 08a734d..5e412fa 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_global_set_log_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_global_set_log_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_global_set_log_function \- API function
 .SH SYNOPSIS
index 2e1ceb9..c86de31 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_global_set_log_level" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_global_set_log_level" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_global_set_log_level \- API function
 .SH SYNOPSIS
index b0586af..925a09b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_global_set_mem_functions" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_global_set_mem_functions" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_global_set_mem_functions \- API function
 .SH SYNOPSIS
index 16c4690..4540148 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_global_set_mutex" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_global_set_mutex" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_global_set_mutex \- API function
 .SH SYNOPSIS
index d35203e..9278925 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_global_set_time_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_global_set_time_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_global_set_time_function \- API function
 .SH SYNOPSIS
index d1d068f..49b720d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_handshake" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_handshake" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_handshake \- API function
 .SH SYNOPSIS
index a47f01b..3c9ebce 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_handshake_get_last_in" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_handshake_get_last_in" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_handshake_get_last_in \- API function
 .SH SYNOPSIS
index 97fa261..24d4470 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_handshake_get_last_out" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_handshake_get_last_out" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_handshake_get_last_out \- API function
 .SH SYNOPSIS
index 8d5e35f..fb10ec6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_handshake_set_max_packet_length" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_handshake_set_max_packet_length" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_handshake_set_max_packet_length \- API function
 .SH SYNOPSIS
index bddaeaa..7e7b36c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_handshake_set_post_client_hello_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_handshake_set_post_client_hello_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_handshake_set_post_client_hello_function \- API function
 .SH SYNOPSIS
index 247fc6b..188e8e7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_handshake_set_private_extensions" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_handshake_set_private_extensions" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_handshake_set_private_extensions \- API function
 .SH SYNOPSIS
index 0db63dc..4b4e773 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hash" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hash" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hash \- API function
 .SH SYNOPSIS
index 6e55b01..3e21929 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hash_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hash_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hash_deinit \- API function
 .SH SYNOPSIS
index eb4842e..fe1caef 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hash_fast" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hash_fast" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hash_fast \- API function
 .SH SYNOPSIS
index 8173282..2d16c9b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hash_get_len" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hash_get_len" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hash_get_len \- API function
 .SH SYNOPSIS
index 6899a31..70e694e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hash_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hash_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hash_init \- API function
 .SH SYNOPSIS
index 7af1f4d..4f7c675 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hash_output" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hash_output" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hash_output \- API function
 .SH SYNOPSIS
index c230d87..5f6d915 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hex2bin" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hex2bin" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hex2bin \- API function
 .SH SYNOPSIS
index fb8f248..16c03f7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hex_decode" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hex_decode" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hex_decode \- API function
 .SH SYNOPSIS
index 1e4ec1c..26bdbc3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hex_encode" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hex_encode" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hex_encode \- API function
 .SH SYNOPSIS
index 16172e1..5dede3b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hmac" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hmac" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hmac \- API function
 .SH SYNOPSIS
index 2087c5b..176282b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hmac_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hmac_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hmac_deinit \- API function
 .SH SYNOPSIS
index b29af97..b639477 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hmac_fast" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hmac_fast" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hmac_fast \- API function
 .SH SYNOPSIS
index c7c2c60..3be1052 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hmac_get_len" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hmac_get_len" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hmac_get_len \- API function
 .SH SYNOPSIS
index 0a9ef64..a209c86 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hmac_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hmac_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hmac_init \- API function
 .SH SYNOPSIS
index 0416445..6c38fd5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_hmac_output" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_hmac_output" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_hmac_output \- API function
 .SH SYNOPSIS
index 45c80bf..aa7fa0f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_init \- API function
 .SH SYNOPSIS
@@ -20,7 +20,7 @@ be free'd by calling \fBgnutls_deinit()\fP.  Returns \fBGNUTLS_E_SUCCESS\fP (0)
  \fIflags\fP can be one of \fBGNUTLS_CLIENT\fP and \fBGNUTLS_SERVER\fP. For a DTLS
 entity, the flags \fBGNUTLS_DATAGRAM\fP and  \fBGNUTLS_NONBLOCK\fP are
 also available. The latter flag will enable a non\-blocking
-operation of the DTLS timers.
+operation of the DTLS timers. 
 .SH "RETURNS"
 \fBGNUTLS_E_SUCCESS\fP on success, or an error code.
 .SH "REPORTING BUGS"
index f5adba0..b8ae829 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_key_generate" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_key_generate" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_key_generate \- API function
 .SH SYNOPSIS
index c541ae4..2543ff6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_kx_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_kx_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_kx_get \- API function
 .SH SYNOPSIS
index 82ee71a..faa8921 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_kx_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_kx_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_kx_get_id \- API function
 .SH SYNOPSIS
index 6295199..3a809a2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_kx_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_kx_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_kx_get_name \- API function
 .SH SYNOPSIS
index cfe1807..08eb343 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_kx_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_kx_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_kx_list \- API function
 .SH SYNOPSIS
index c679b34..3f1b0ee 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_kx_set_priority" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_kx_set_priority" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_kx_set_priority \- API function
 .SH SYNOPSIS
index 81480c7..fe0ba8a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_mac_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_mac_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_mac_get \- API function
 .SH SYNOPSIS
index bb8fe84..7aceae7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_mac_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_mac_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_mac_get_id \- API function
 .SH SYNOPSIS
index 689929b..ab83ce9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_mac_get_key_size" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_mac_get_key_size" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_mac_get_key_size \- API function
 .SH SYNOPSIS
index 393590f..b0c5ba8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_mac_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_mac_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_mac_get_name \- API function
 .SH SYNOPSIS
index c6160b5..3e059f4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_mac_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_mac_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_mac_list \- API function
 .SH SYNOPSIS
index 5a88e44..aadd340 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_mac_set_priority" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_mac_set_priority" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_mac_set_priority \- API function
 .SH SYNOPSIS
index 8cb1cda..57f6a34 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_add_cert" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_add_cert" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_add_cert \- API function
 .SH SYNOPSIS
index 68c91d8..036be6f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_add_cert_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_add_cert_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_add_cert_id \- API function
 .SH SYNOPSIS
index 56a59cf..3ca3898 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_deinit \- API function
 .SH SYNOPSIS
index 7896300..ac86096 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_export \- API function
 .SH SYNOPSIS
index 2b006cb..f974241 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_get_cert_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_get_cert_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_get_cert_id \- API function
 .SH SYNOPSIS
index 32101e2..ce04d3b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_get_extension" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_get_extension" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_get_extension \- API function
 .SH SYNOPSIS
index 4ad6b88..570289d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_get_nonce" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_get_nonce" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_get_nonce \- API function
 .SH SYNOPSIS
index 7896bfb..791c6b9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_get_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_get_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_get_version \- API function
 .SH SYNOPSIS
index de83ed4..6b7a666 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_import \- API function
 .SH SYNOPSIS
index a61ff25..d79884a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_init \- API function
 .SH SYNOPSIS
index 715ca9d..17b68b9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_print" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_print" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_print \- API function
 .SH SYNOPSIS
index 9e76426..489686c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_randomize_nonce" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_randomize_nonce" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_randomize_nonce \- API function
 .SH SYNOPSIS
index 2827b6f..331d348 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_set_extension" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_set_extension" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_set_extension \- API function
 .SH SYNOPSIS
index 10962bc..3970978 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_req_set_nonce" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_req_set_nonce" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_req_set_nonce \- API function
 .SH SYNOPSIS
index d2ccb94..4a30323 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_deinit \- API function
 .SH SYNOPSIS
index 850a0de..5bf0c35 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_export \- API function
 .SH SYNOPSIS
index 88903b6..06012d5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_certs" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_certs" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_certs \- API function
 .SH SYNOPSIS
index f8e25a6..67cc4e0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_extension" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_extension" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_extension \- API function
 .SH SYNOPSIS
index f69bf0e..c975e53 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_nonce" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_nonce" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_nonce \- API function
 .SH SYNOPSIS
index 73c3d9c..e14ad04 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_produced" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_produced" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_produced \- API function
 .SH SYNOPSIS
index 13798ff..4995386 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_responder" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_responder" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_responder \- API function
 .SH SYNOPSIS
index c9dc6e6..78025d0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_response" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_response" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_response \- API function
 .SH SYNOPSIS
index 7c589f6..90949e2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_signature" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_signature" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_signature \- API function
 .SH SYNOPSIS
index 4f0427e..a59ab65 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_signature_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_signature_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_signature_algorithm \- API function
 .SH SYNOPSIS
index b1f9d51..92f2a66 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_single" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_single" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_single \- API function
 .SH SYNOPSIS
index dcd147f..9c0dd36 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_status \- API function
 .SH SYNOPSIS
index eeec028..c11ccb2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_get_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_get_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_get_version \- API function
 .SH SYNOPSIS
index bddb47d..f889530 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_import \- API function
 .SH SYNOPSIS
index 44cecc5..b39c2ff 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_init \- API function
 .SH SYNOPSIS
index a0755d1..b2626cc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_print" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_print" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_print \- API function
 .SH SYNOPSIS
index 3f4c436..0d394f8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_verify" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_verify" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_verify \- API function
 .SH SYNOPSIS
index 83aa65c..4a2eb89 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_ocsp_resp_verify_direct" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_ocsp_resp_verify_direct" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_ocsp_resp_verify_direct \- API function
 .SH SYNOPSIS
index 1199dd1..09261bf 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_check_hostname" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_check_hostname" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_check_hostname \- API function
 .SH SYNOPSIS
index 996fe5c..9df4e05 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_deinit \- API function
 .SH SYNOPSIS
index a71cd2c..3c6ab59 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_export \- API function
 .SH SYNOPSIS
index 30cc832..045347c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_auth_subkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_auth_subkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_auth_subkey \- API function
 .SH SYNOPSIS
index 1f41854..63e1679 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_creation_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_creation_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_creation_time \- API function
 .SH SYNOPSIS
index 1cd432c..1f8b9c2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_expiration_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_expiration_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_expiration_time \- API function
 .SH SYNOPSIS
index 41119fc..a312f31 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_fingerprint" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_fingerprint" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_fingerprint \- API function
 .SH SYNOPSIS
index fe4d3e4..7a057df 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_key_id \- API function
 .SH SYNOPSIS
index 509216b..f483902 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_key_usage" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_key_usage" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_key_usage \- API function
 .SH SYNOPSIS
index 3ab7832..43de9a4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_name \- API function
 .SH SYNOPSIS
index 494a97b..903bff4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_pk_algorithm \- API function
 .SH SYNOPSIS
index 0f250f5..35520f1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_pk_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_pk_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_pk_dsa_raw \- API function
 .SH SYNOPSIS
index 39a5701..82f8860 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_pk_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_pk_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_pk_rsa_raw \- API function
 .SH SYNOPSIS
index eb775af..7ede24d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_preferred_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_preferred_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_preferred_key_id \- API function
 .SH SYNOPSIS
index cd5a2ea..bfdd0dc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_revoked_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_revoked_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_revoked_status \- API function
 .SH SYNOPSIS
index 34e75d4..57f4430 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_count" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_count" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_count \- API function
 .SH SYNOPSIS
index 3884918..5c62c37 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_creation_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_creation_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_creation_time \- API function
 .SH SYNOPSIS
index 97a4313..48e2cee 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_expiration_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_expiration_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_expiration_time \- API function
 .SH SYNOPSIS
index 49153f1..3ca65c9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_fingerprint" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_fingerprint" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_fingerprint \- API function
 .SH SYNOPSIS
index 27a093a..47a192f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_id \- API function
 .SH SYNOPSIS
index 0c00bea..d67d824 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_idx" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_idx" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_idx \- API function
 .SH SYNOPSIS
index fd65cd7..4c924dc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_pk_algorithm \- API function
 .SH SYNOPSIS
index 6e8dab4..a733c00 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_pk_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_pk_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_pk_dsa_raw \- API function
 .SH SYNOPSIS
index 20bcf0f..a150b03 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_pk_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_pk_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_pk_rsa_raw \- API function
 .SH SYNOPSIS
index a5d2bc6..3c6e5cd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_revoked_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_revoked_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_revoked_status \- API function
 .SH SYNOPSIS
index 0b0fcd2..7f044cb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_subkey_usage" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_subkey_usage" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_subkey_usage \- API function
 .SH SYNOPSIS
index 61aceb9..de40c05 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_get_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_get_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_get_version \- API function
 .SH SYNOPSIS
index 5217981..e947600 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_import \- API function
 .SH SYNOPSIS
index 84a1160..7adcd34 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_init \- API function
 .SH SYNOPSIS
index 57a92e6..8fc8295 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_print" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_print" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_print \- API function
 .SH SYNOPSIS
index 84ba025..c69985b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_set_preferred_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_set_preferred_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_set_preferred_key_id \- API function
 .SH SYNOPSIS
index 702b154..5af285a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_verify_ring" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_verify_ring" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_verify_ring \- API function
 .SH SYNOPSIS
index d8eedef..aa67c19 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_crt_verify_self" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_crt_verify_self" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_crt_verify_self \- API function
 .SH SYNOPSIS
index 0c1c0a7..b747815 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_keyring_check_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_keyring_check_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_keyring_check_id \- API function
 .SH SYNOPSIS
index 088d6b5..2f9aa6d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_keyring_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_keyring_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_keyring_deinit \- API function
 .SH SYNOPSIS
index 3cde0d7..67d2911 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_keyring_get_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_keyring_get_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_keyring_get_crt \- API function
 .SH SYNOPSIS
index 6d6ebf3..44df810 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_keyring_get_crt_count" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_keyring_get_crt_count" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_keyring_get_crt_count \- API function
 .SH SYNOPSIS
index a67833c..ef38db9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_keyring_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_keyring_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_keyring_import \- API function
 .SH SYNOPSIS
index 3775bfc..c916824 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_keyring_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_keyring_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_keyring_init \- API function
 .SH SYNOPSIS
index 5027c1e..6365149 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_deinit \- API function
 .SH SYNOPSIS
index 72fba95..cc7ff01 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_export \- API function
 .SH SYNOPSIS
index 2b0a4cd..331d546 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_export_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_export_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_export_dsa_raw \- API function
 .SH SYNOPSIS
index bb9d5e0..4560203 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_export_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_export_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_export_rsa_raw \- API function
 .SH SYNOPSIS
index 289fb1a..3dd83fa 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_export_subkey_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_export_subkey_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_export_subkey_dsa_raw \- API function
 .SH SYNOPSIS
index 9176d5e..243407e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_export_subkey_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_export_subkey_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_export_subkey_rsa_raw \- API function
 .SH SYNOPSIS
index 6f42214..d0229dc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_fingerprint" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_fingerprint" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_fingerprint \- API function
 .SH SYNOPSIS
index 9bbd16e..f39b446 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_key_id \- API function
 .SH SYNOPSIS
index 21407e1..44cc4da 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_pk_algorithm \- API function
 .SH SYNOPSIS
index df95ec9..b67cbbe 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_preferred_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_preferred_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_preferred_key_id \- API function
 .SH SYNOPSIS
index fac353d..377e2fc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_revoked_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_revoked_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_revoked_status \- API function
 .SH SYNOPSIS
index c1e0f7c..eae72bb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_subkey_count" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_subkey_count" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_subkey_count \- API function
 .SH SYNOPSIS
index 5aca6b2..64262f6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_subkey_creation_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_subkey_creation_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_subkey_creation_time \- API function
 .SH SYNOPSIS
index 26d9024..f8bc070 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_subkey_fingerprint" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_subkey_fingerprint" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_subkey_fingerprint \- API function
 .SH SYNOPSIS
index 132ff3f..4aadd98 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_subkey_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_subkey_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_subkey_id \- API function
 .SH SYNOPSIS
index 0303dfc..ba92889 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_subkey_idx" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_subkey_idx" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_subkey_idx \- API function
 .SH SYNOPSIS
index f1565ac..8e222de 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_subkey_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_subkey_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_subkey_pk_algorithm \- API function
 .SH SYNOPSIS
index 1323a73..5aadfa3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_get_subkey_revoked_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_get_subkey_revoked_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_get_subkey_revoked_status \- API function
 .SH SYNOPSIS
index d42fbad..54d891e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_import \- API function
 .SH SYNOPSIS
index cc038c9..48fc425 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_init \- API function
 .SH SYNOPSIS
index 40c2949..1d1d68f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_sec_param" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_sec_param" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_sec_param \- API function
 .SH SYNOPSIS
index 3f85659..5570df3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_set_preferred_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_set_preferred_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_set_preferred_key_id \- API function
 .SH SYNOPSIS
index 6e594f7..b3b1356 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_privkey_sign_hash" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_privkey_sign_hash" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_privkey_sign_hash \- API function
 .SH SYNOPSIS
index 105cca0..2b956f8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_send_cert" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_send_cert" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_send_cert \- API function
 .SH SYNOPSIS
index c5f46be..8e88a1e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_openpgp_set_recv_key_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_openpgp_set_recv_key_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_openpgp_set_recv_key_function \- API function
 .SH SYNOPSIS
index 7d53f2a..720b9fd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pcert_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pcert_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pcert_deinit \- API function
 .SH SYNOPSIS
index 0ec763a..7f24dfd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pcert_import_openpgp" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pcert_import_openpgp" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pcert_import_openpgp \- API function
 .SH SYNOPSIS
index a6da6b4..7a36743 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pcert_import_openpgp_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pcert_import_openpgp_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pcert_import_openpgp_raw \- API function
 .SH SYNOPSIS
index 9ba915a..4b21484 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pcert_import_x509" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pcert_import_x509" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pcert_import_x509 \- API function
 .SH SYNOPSIS
index a857fa1..d733fd2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pcert_import_x509_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pcert_import_x509_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pcert_import_x509_raw \- API function
 .SH SYNOPSIS
index 8057bc0..29be543 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pcert_list_import_x509_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pcert_list_import_x509_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pcert_list_import_x509_raw \- API function
 .SH SYNOPSIS
index 813bc72..c14195d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pem_base64_decode" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pem_base64_decode" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pem_base64_decode \- API function
 .SH SYNOPSIS
index 7a4cf72..3b2478f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pem_base64_decode_alloc" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pem_base64_decode_alloc" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pem_base64_decode_alloc \- API function
 .SH SYNOPSIS
index b5c780b..5c32c08 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pem_base64_encode" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pem_base64_encode" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pem_base64_encode \- API function
 .SH SYNOPSIS
index ce719cf..91e551d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pem_base64_encode_alloc" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pem_base64_encode_alloc" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pem_base64_encode_alloc \- API function
 .SH SYNOPSIS
index c69c9e2..584dab9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_perror" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_perror" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_perror \- API function
 .SH SYNOPSIS
index 34ead27..fc72d1e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pk_algorithm_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pk_algorithm_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pk_algorithm_get_name \- API function
 .SH SYNOPSIS
index 0e631b4..de3e5bb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pk_bits_to_sec_param" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pk_bits_to_sec_param" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pk_bits_to_sec_param \- API function
 .SH SYNOPSIS
index 0bed77f..f802100 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pk_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pk_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pk_get_id \- API function
 .SH SYNOPSIS
index a085496..712a785 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pk_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pk_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pk_get_name \- API function
 .SH SYNOPSIS
index a151614..8d8ddaf 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pk_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pk_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pk_list \- API function
 .SH SYNOPSIS
index de5851d..7780a1e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pk_to_sign" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pk_to_sign" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pk_to_sign \- API function
 .SH SYNOPSIS
index 8269419..5ddd897 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_add_provider" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_add_provider" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_add_provider \- API function
 .SH SYNOPSIS
index fd37089..d7d5a70 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_copy_secret_key" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_copy_secret_key" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_copy_secret_key \- API function
 .SH SYNOPSIS
index 3fa5ef0..2e67cae 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_copy_x509_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_copy_x509_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_copy_x509_crt \- API function
 .SH SYNOPSIS
index 0153d94..68f7a91 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_copy_x509_privkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_copy_x509_privkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_copy_x509_privkey \- API function
 .SH SYNOPSIS
index b7714fc..eb8589a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_deinit \- API function
 .SH SYNOPSIS
index c24093b..80092bc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_delete_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_delete_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_delete_url \- API function
 .SH SYNOPSIS
index 98f9503..cf53858 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_init \- API function
 .SH SYNOPSIS
index a62e736..9fefd02 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_obj_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_obj_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_obj_deinit \- API function
 .SH SYNOPSIS
index 02a287c..f91524d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_obj_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_obj_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_obj_export \- API function
 .SH SYNOPSIS
index 0b9d651..3b2372d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_obj_export_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_obj_export_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_obj_export_url \- API function
 .SH SYNOPSIS
index 327f115..81aa5fa 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_obj_get_info" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_obj_get_info" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_obj_get_info \- API function
 .SH SYNOPSIS
index 9b94019..b6bb927 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_obj_get_type" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_obj_get_type" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_obj_get_type \- API function
 .SH SYNOPSIS
index 0c4f248..31a02d8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_obj_import_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_obj_import_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_obj_import_url \- API function
 .SH SYNOPSIS
index 482c317..de8ab86 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_obj_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_obj_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_obj_init \- API function
 .SH SYNOPSIS
index 24c43fe..3ad4bc2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_obj_list_import_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_obj_list_import_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_obj_list_import_url \- API function
 .SH SYNOPSIS
index 08582dd..57e763a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_privkey_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_privkey_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_privkey_deinit \- API function
 .SH SYNOPSIS
index 4ebd9bd..67986cb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_privkey_export_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_privkey_export_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_privkey_export_url \- API function
 .SH SYNOPSIS
index 3644a47..4d36b02 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_privkey_generate" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_privkey_generate" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_privkey_generate \- API function
 .SH SYNOPSIS
index 78651b9..1890bc8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_privkey_get_info" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_privkey_get_info" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_privkey_get_info \- API function
 .SH SYNOPSIS
index 5a55242..ffcaa82 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_privkey_get_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_privkey_get_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_privkey_get_pk_algorithm \- API function
 .SH SYNOPSIS
index 9742a9d..40ed80d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_privkey_import_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_privkey_import_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_privkey_import_url \- API function
 .SH SYNOPSIS
index fd6b7dd..a0f1b1b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_privkey_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_privkey_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_privkey_init \- API function
 .SH SYNOPSIS
index c771d90..011a250 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_reinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_reinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_reinit \- API function
 .SH SYNOPSIS
index b738555..0de0308 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_set_pin_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_set_pin_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_set_pin_function \- API function
 .SH SYNOPSIS
index c1e52cf..e9dfbf3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_set_token_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_set_token_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_set_token_function \- API function
 .SH SYNOPSIS
index fd7a271..752dc35 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_token_get_flags" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_token_get_flags" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_token_get_flags \- API function
 .SH SYNOPSIS
index db48dd0..f55612d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_token_get_info" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_token_get_info" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_token_get_info \- API function
 .SH SYNOPSIS
index d79a65e..8e784c8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_token_get_mechanism" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_token_get_mechanism" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_token_get_mechanism \- API function
 .SH SYNOPSIS
index 0f69c26..80b1c92 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_token_get_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_token_get_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_token_get_url \- API function
 .SH SYNOPSIS
index 2952d60..d33cc89 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_token_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_token_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_token_init \- API function
 .SH SYNOPSIS
index a2bea63..1ab1cd8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_token_set_pin" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_token_set_pin" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_token_set_pin \- API function
 .SH SYNOPSIS
index bb756e0..b17ada6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs11_type_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs11_type_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs11_type_get_name \- API function
 .SH SYNOPSIS
index 32647f8..7dd174b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_decrypt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_decrypt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_decrypt \- API function
 .SH SYNOPSIS
index 7fe4e2b..8273fbd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_deinit \- API function
 .SH SYNOPSIS
index e899242..8828c53 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_encrypt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_encrypt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_encrypt \- API function
 .SH SYNOPSIS
index c5bd4e2..d615933 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_get_count" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_get_count" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_get_count \- API function
 .SH SYNOPSIS
index 2839917..4188455 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_get_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_get_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_get_data \- API function
 .SH SYNOPSIS
index 4dacc6e..7395fc0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_get_friendly_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_get_friendly_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_get_friendly_name \- API function
 .SH SYNOPSIS
index 2499274..0286c6f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_get_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_get_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_get_key_id \- API function
 .SH SYNOPSIS
index f533834..6a5ca6c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_get_type" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_get_type" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_get_type \- API function
 .SH SYNOPSIS
index 314d5cd..fe9cb52 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_init \- API function
 .SH SYNOPSIS
index b3918c4..b1e37e5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_set_crl" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_set_crl" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_set_crl \- API function
 .SH SYNOPSIS
index ae5c3ec..8fd495e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_set_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_set_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_set_crt \- API function
 .SH SYNOPSIS
index ffade60..d608f6d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_set_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_set_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_set_data \- API function
 .SH SYNOPSIS
index c36eb69..62fb1e5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_set_friendly_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_set_friendly_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_set_friendly_name \- API function
 .SH SYNOPSIS
index d6bca9b..89b8d60 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_bag_set_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_bag_set_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_bag_set_key_id \- API function
 .SH SYNOPSIS
index 91d18ae..8981e78 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_deinit \- API function
 .SH SYNOPSIS
index c0272dd..d78648f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_export \- API function
 .SH SYNOPSIS
index 44cd213..4174b9b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_generate_mac" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_generate_mac" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_generate_mac \- API function
 .SH SYNOPSIS
index c668911..4effbe0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_get_bag" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_get_bag" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_get_bag \- API function
 .SH SYNOPSIS
index 48822ae..803cb4b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_import \- API function
 .SH SYNOPSIS
index b47e154..f1e5073 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_init \- API function
 .SH SYNOPSIS
index 71c5c49..b819827 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_set_bag" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_set_bag" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_set_bag \- API function
 .SH SYNOPSIS
index 246effc..ab5d7b9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs12_verify_mac" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs12_verify_mac" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs12_verify_mac \- API function
 .SH SYNOPSIS
index 3841e19..abcaa92 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_deinit \- API function
 .SH SYNOPSIS
index d98c194..21e2c47 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_delete_crl" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_delete_crl" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_delete_crl \- API function
 .SH SYNOPSIS
index 0e6913c..663adbf 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_delete_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_delete_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_delete_crt \- API function
 .SH SYNOPSIS
index 109092b..e127edf 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_export \- API function
 .SH SYNOPSIS
index e70280b..e4f46e0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_get_crl_count" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_get_crl_count" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_get_crl_count \- API function
 .SH SYNOPSIS
index 577a7f0..80b19a0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_get_crl_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_get_crl_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_get_crl_raw \- API function
 .SH SYNOPSIS
index 812260b..d38579a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_get_crt_count" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_get_crt_count" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_get_crt_count \- API function
 .SH SYNOPSIS
index 574594e..224fa59 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_get_crt_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_get_crt_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_get_crt_raw \- API function
 .SH SYNOPSIS
index 71bae74..c010752 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_import \- API function
 .SH SYNOPSIS
index d776699..dae0b2a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_init \- API function
 .SH SYNOPSIS
index ad7f6ea..2d07db4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_set_crl" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_set_crl" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_set_crl \- API function
 .SH SYNOPSIS
index f480d11..602fb80 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_set_crl_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_set_crl_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_set_crl_raw \- API function
 .SH SYNOPSIS
index ef9ab55..11c8bc1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_set_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_set_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_set_crt \- API function
 .SH SYNOPSIS
index ca7ad0b..e502a08 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pkcs7_set_crt_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pkcs7_set_crt_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pkcs7_set_crt_raw \- API function
 .SH SYNOPSIS
index 3665c50..4557a95 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_prf" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_prf" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_prf \- API function
 .SH SYNOPSIS
index 86c8888..d3c66e8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_prf_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_prf_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_prf_raw \- API function
 .SH SYNOPSIS
index 77eb614..ad40146 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_certificate_type_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_certificate_type_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_certificate_type_list \- API function
 .SH SYNOPSIS
index 6930c98..86077b6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_compression_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_compression_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_compression_list \- API function
 .SH SYNOPSIS
index b21337e..4c0bed2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_deinit \- API function
 .SH SYNOPSIS
index ff29b75..01ec91c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_ecc_curve_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_ecc_curve_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_ecc_curve_list \- API function
 .SH SYNOPSIS
index 1d03b2c..369016d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_get_cipher_suite_index" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_get_cipher_suite_index" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_get_cipher_suite_index \- API function
 .SH SYNOPSIS
index d6a6b02..d73baea 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_init \- API function
 .SH SYNOPSIS
index a97e96b..a3fafbc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_protocol_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_protocol_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_protocol_list \- API function
 .SH SYNOPSIS
index 8f230d1..a09411e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_set" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_set" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_set \- API function
 .SH SYNOPSIS
index 4ee3d44..faae111 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_set_direct" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_set_direct" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_set_direct \- API function
 .SH SYNOPSIS
index a615d24..dc1c445 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_priority_sign_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_priority_sign_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_priority_sign_list \- API function
 .SH SYNOPSIS
index d0debfb..022ca32 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_decrypt_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_decrypt_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_decrypt_data \- API function
 .SH SYNOPSIS
index 6b7fff7..077a983 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_deinit \- API function
 .SH SYNOPSIS
index 80ca03b..d7178b4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_get_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_get_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_get_pk_algorithm \- API function
 .SH SYNOPSIS
index 56df681..c9df49e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_get_type" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_get_type" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_get_type \- API function
 .SH SYNOPSIS
index 9d28eb3..d8abd4f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_import_ext" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_import_ext" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_import_ext \- API function
 .SH SYNOPSIS
index 452ef66..50ad4c1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_import_openpgp" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_import_openpgp" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_import_openpgp \- API function
 .SH SYNOPSIS
index 59d15ca..f53228a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_import_pkcs11" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_import_pkcs11" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_import_pkcs11 \- API function
 .SH SYNOPSIS
index 97a160a..cd63a0a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_import_x509" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_import_x509" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_import_x509 \- API function
 .SH SYNOPSIS
index 1ac3ac1..8334968 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_init \- API function
 .SH SYNOPSIS
index 408b1ef..44d6554 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_sign_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_sign_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_sign_data \- API function
 .SH SYNOPSIS
index 15eea5f..06396d1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_privkey_sign_hash" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_privkey_sign_hash" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_privkey_sign_hash \- API function
 .SH SYNOPSIS
index 846b51c..a2a54ad 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_protocol_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_protocol_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_protocol_get_id \- API function
 .SH SYNOPSIS
index acb63f9..21a77ac 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_protocol_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_protocol_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_protocol_get_name \- API function
 .SH SYNOPSIS
index d1e6fcd..b44faac 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_protocol_get_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_protocol_get_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_protocol_get_version \- API function
 .SH SYNOPSIS
index 7cbc644..738fb0b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_protocol_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_protocol_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_protocol_list \- API function
 .SH SYNOPSIS
index b9f630e..83c40a3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_protocol_set_priority" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_protocol_set_priority" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_protocol_set_priority \- API function
 .SH SYNOPSIS
index 52ec4dc..1910351 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_allocate_client_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_allocate_client_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_allocate_client_credentials \- API function
 .SH SYNOPSIS
index e4ff767..b939b8c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_allocate_server_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_allocate_server_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_allocate_server_credentials \- API function
 .SH SYNOPSIS
index ccd2d76..c4bc7d3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_client_get_hint" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_client_get_hint" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_client_get_hint \- API function
 .SH SYNOPSIS
index edb4420..95136ae 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_free_client_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_free_client_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_free_client_credentials \- API function
 .SH SYNOPSIS
index 72ddec7..2bdfdde 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_free_server_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_free_server_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_free_server_credentials \- API function
 .SH SYNOPSIS
index 72d640b..b0080ad 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_server_get_username" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_server_get_username" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_server_get_username \- API function
 .SH SYNOPSIS
index af5cd8b..c4295ea 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_set_client_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_set_client_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_set_client_credentials \- API function
 .SH SYNOPSIS
index b9fae0c..a696b02 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_set_client_credentials_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_set_client_credentials_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_set_client_credentials_function \- API function
 .SH SYNOPSIS
index a9e1375..5fa4262 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_set_params_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_set_params_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_set_params_function \- API function
 .SH SYNOPSIS
index 592b53b..e9b58c0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_set_server_credentials_file" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_set_server_credentials_file" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_set_server_credentials_file \- API function
 .SH SYNOPSIS
index 9116f8c..09a6672 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_set_server_credentials_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_set_server_credentials_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_set_server_credentials_function \- API function
 .SH SYNOPSIS
index ea3b630..9749d6e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_set_server_credentials_hint" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_set_server_credentials_hint" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_set_server_credentials_hint \- API function
 .SH SYNOPSIS
index cf8d939..4e4a9ea 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_set_server_dh_params" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_set_server_dh_params" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_set_server_dh_params \- API function
 .SH SYNOPSIS
index 4aead8a..c1b6754 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_psk_set_server_params_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_psk_set_server_params_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_psk_set_server_params_function \- API function
 .SH SYNOPSIS
index 1a3c5f6..7df9b36 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_deinit \- API function
 .SH SYNOPSIS
index 1f5025c..3c2239a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_encrypt_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_encrypt_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_encrypt_data \- API function
 .SH SYNOPSIS
index 26908ab..1ff3e44 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_export \- API function
 .SH SYNOPSIS
index 49cfe4f..ec30c8a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_key_id \- API function
 .SH SYNOPSIS
index 9da317f..9bb216c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_key_usage" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_key_usage" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_key_usage \- API function
 .SH SYNOPSIS
index 3dce0d4..7d12c5a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_openpgp_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_openpgp_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_openpgp_key_id \- API function
 .SH SYNOPSIS
index 684c035..9ecfb4e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_pk_algorithm \- API function
 .SH SYNOPSIS
index ea5bc4e..d58250e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_pk_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_pk_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_pk_dsa_raw \- API function
 .SH SYNOPSIS
index 6cac528..754be7f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_pk_ecc_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_pk_ecc_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_pk_ecc_raw \- API function
 .SH SYNOPSIS
index e0f59db..d8b6b86 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_pk_ecc_x962" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_pk_ecc_x962" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_pk_ecc_x962 \- API function
 .SH SYNOPSIS
index 33f76c6..9392d75 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_pk_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_pk_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_pk_rsa_raw \- API function
 .SH SYNOPSIS
index cdae666..7d4d1a8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_preferred_hash_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_preferred_hash_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_preferred_hash_algorithm \- API function
 .SH SYNOPSIS
index aba64cf..27eb95a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_get_verify_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_get_verify_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_get_verify_algorithm \- API function
 .SH SYNOPSIS
index b01ab33..1d66648 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import \- API function
 .SH SYNOPSIS
index ee3b938..6c908cf 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_dsa_raw \- API function
 .SH SYNOPSIS
index 6cb0807..9d15b7e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_ecc_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_ecc_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_ecc_raw \- API function
 .SH SYNOPSIS
index 535b03d..4a449e9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_ecc_x962" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_ecc_x962" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_ecc_x962 \- API function
 .SH SYNOPSIS
index 40873ae..12fdf71 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_openpgp" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_openpgp" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_openpgp \- API function
 .SH SYNOPSIS
index a412a52..7c736c6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_pkcs11" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_pkcs11" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_pkcs11 \- API function
 .SH SYNOPSIS
index 392f73d..0fbbe5f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_pkcs11_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_pkcs11_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_pkcs11_url \- API function
 .SH SYNOPSIS
index 7fa6bcb..03155be 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_privkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_privkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_privkey \- API function
 .SH SYNOPSIS
index c892f56..92446b4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_rsa_raw \- API function
 .SH SYNOPSIS
index e89c292..42a74d7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_import_x509" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_import_x509" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_import_x509 \- API function
 .SH SYNOPSIS
index e7e8207..e78e893 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_init \- API function
 .SH SYNOPSIS
index 23fb116..1b6b109 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_set_key_usage" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_set_key_usage" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_set_key_usage \- API function
 .SH SYNOPSIS
index 41659a6..f0e4203 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_verify_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_verify_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_verify_data \- API function
 .SH SYNOPSIS
index 603c2a0..bb5fd4f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_verify_data2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_verify_data2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_verify_data2 \- API function
 .SH SYNOPSIS
index d6efa05..96bfdda 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_verify_hash" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_verify_hash" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_verify_hash \- API function
 .SH SYNOPSIS
index 01b29e0..a896eb0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_pubkey_verify_hash2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_pubkey_verify_hash2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_pubkey_verify_hash2 \- API function
 .SH SYNOPSIS
index a4ad0ac..0322ecf 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_random_art" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_random_art" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_random_art \- API function
 .SH SYNOPSIS
index 2929efe..866debb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_check_pending" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_check_pending" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_check_pending \- API function
 .SH SYNOPSIS
index 9196323..07634af 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_disable_padding" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_disable_padding" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_disable_padding \- API function
 .SH SYNOPSIS
index bab52c2..5a6f3dc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_get_direction" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_get_direction" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_get_direction \- API function
 .SH SYNOPSIS
index e44b163..1a7501f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_get_discarded" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_get_discarded" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_get_discarded \- API function
 .SH SYNOPSIS
index 91ff7f7..0b17c4a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_get_max_size" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_get_max_size" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_get_max_size \- API function
 .SH SYNOPSIS
index 1874054..eacb901 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_recv" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_recv" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_recv \- API function
 .SH SYNOPSIS
index a737ad1..ce54262 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_recv_seq" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_recv_seq" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_recv_seq \- API function
 .SH SYNOPSIS
index 9ef43f2..dc754d1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_send" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_send" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_send \- API function
 .SH SYNOPSIS
@@ -27,7 +27,8 @@ default is \fBsend()\fP) then \fBGNUTLS_E_INTERRUPTED\fP will be returned. If
 \fBGNUTLS_E_INTERRUPTED\fP or \fBGNUTLS_E_AGAIN\fP is returned, you must
 call this function again, with the same parameters; alternatively
 you could provide a \fBNULL\fP pointer for data, and 0 for
-size. cf. \fBgnutls_record_get_direction()\fP.
+size. cf. \fBgnutls_record_get_direction()\fP. The errno value EMSGSIZE
+maps to \fBGNUTLS_E_LARGE_PACKET\fP.
 .SH "RETURNS"
 The number of bytes sent, or a negative error code.  The
 number of bytes sent might be less than  \fIdata_size\fP .  The maximum
index 481c570..0fefc97 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_record_set_max_size" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_record_set_max_size" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_record_set_max_size \- API function
 .SH SYNOPSIS
index 4d533b5..f7130e5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rehandshake" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rehandshake" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rehandshake \- API function
 .SH SYNOPSIS
index a7c04ae..033b85e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rnd" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rnd" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rnd \- API function
 .SH SYNOPSIS
index 7910cfb..9ab4aac 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_export_get_modulus_bits" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_export_get_modulus_bits" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_export_get_modulus_bits \- API function
 .SH SYNOPSIS
index 1587657..c67c9ab 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_export_get_pubkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_export_get_pubkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_export_get_pubkey \- API function
 .SH SYNOPSIS
index f63a607..4bcbac5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_params_cpy" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_params_cpy" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_params_cpy \- API function
 .SH SYNOPSIS
index c24dde7..9e68890 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_params_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_params_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_params_deinit \- API function
 .SH SYNOPSIS
index 969aaca..7e0dc16 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_params_export_pkcs1" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_params_export_pkcs1" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_params_export_pkcs1 \- API function
 .SH SYNOPSIS
@@ -12,12 +12,12 @@ Holds the RSA parameters
 .IP "gnutls_x509_crt_fmt_t format" 12
 the format of output params. One of PEM or DER.
 .IP "unsigned char * params_data" 12
-will contain a PKCS1 RSAPublicKey structure PEM or DER encoded
+will contain a PKCS1 RSAPrivateKey structure PEM or DER encoded
 .IP "size_t * params_data_size" 12
 holds the size of params_data (and will be replaced by the actual size of parameters)
 .SH "DESCRIPTION"
 This function will export the given RSA parameters to a PKCS1
-RSAPublicKey structure. If the buffer provided is not long enough to
+RSAPrivateKey structure. If the buffer provided is not long enough to
 hold the output, then GNUTLS_E_SHORT_MEMORY_BUFFER will be returned.
 
 If the structure is PEM encoded, it will have a header
index 82b9ed6..c6771dd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_params_export_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_params_export_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_params_export_raw \- API function
 .SH SYNOPSIS
index a674305..1d68ce0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_params_generate2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_params_generate2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_params_generate2 \- API function
 .SH SYNOPSIS
index 541d5c3..4866bc7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_params_import_pkcs1" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_params_import_pkcs1" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_params_import_pkcs1 \- API function
 .SH SYNOPSIS
@@ -10,11 +10,11 @@ gnutls_rsa_params_import_pkcs1 \- API function
 .IP "gnutls_rsa_params_t params" 12
 A structure where the parameters will be copied to
 .IP "const gnutls_datum_t * pkcs1_params" 12
-should contain a PKCS1 RSAPublicKey structure PEM or DER encoded
+should contain a PKCS1 RSAPrivateKey structure PEM or DER encoded
 .IP "gnutls_x509_crt_fmt_t format" 12
 the format of params. PEM or DER.
 .SH "DESCRIPTION"
-This function will extract the RSAPublicKey found in a PKCS1 formatted
+This function will extract the RSAPrivateKey found in a PKCS1 formatted
 structure.
 
 If the structure is PEM encoded, it should have a header
index a48aebc..40cf263 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_params_import_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_params_import_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_params_import_raw \- API function
 .SH SYNOPSIS
index 9b2f7f3..f054cb7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_rsa_params_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_rsa_params_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_rsa_params_init \- API function
 .SH SYNOPSIS
index eecd2e8..d5fa22b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_safe_renegotiation_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_safe_renegotiation_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_safe_renegotiation_status \- API function
 .SH SYNOPSIS
index 4816406..49af85a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_sec_param_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_sec_param_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_sec_param_get_name \- API function
 .SH SYNOPSIS
index c449019..ef5e070 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_sec_param_to_pk_bits" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_sec_param_to_pk_bits" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_sec_param_to_pk_bits \- API function
 .SH SYNOPSIS
index 7aa8307..c6f9436 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_server_name_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_server_name_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_server_name_get \- API function
 .SH SYNOPSIS
index c7e22cb..43fb1e1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_server_name_set" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_server_name_set" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_server_name_set \- API function
 .SH SYNOPSIS
index 1a63bd4..dfb8539 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_channel_binding" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_channel_binding" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_channel_binding \- API function
 .SH SYNOPSIS
index 3c40e9c..7913d74 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_enable_compatibility_mode" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_enable_compatibility_mode" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_enable_compatibility_mode \- API function
 .SH SYNOPSIS
index 75f4a50..0e0cc80 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_get_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_get_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_get_data \- API function
 .SH SYNOPSIS
index 3c9e9a6..90c3483 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_get_data2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_get_data2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_get_data2 \- API function
 .SH SYNOPSIS
index 9467dc6..c682d26 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_get_id \- API function
 .SH SYNOPSIS
index a3942ed..dd1b11a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_get_ptr" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_get_ptr" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_get_ptr \- API function
 .SH SYNOPSIS
index 7cdcb81..411ec08 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_get_random" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_get_random" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_get_random \- API function
 .SH SYNOPSIS
index 977e580..76730b1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_is_resumed" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_is_resumed" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_is_resumed \- API function
 .SH SYNOPSIS
index b16467e..98a16a8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_resumption_requested" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_resumption_requested" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_resumption_requested \- API function
 .SH SYNOPSIS
index c9c30c4..1b20f15 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_set_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_set_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_set_data \- API function
 .SH SYNOPSIS
diff --git a/doc/manpages/gnutls_session_set_premaster.3 b/doc/manpages/gnutls_session_set_premaster.3
new file mode 100644 (file)
index 0000000..33c4cbb
--- /dev/null
@@ -0,0 +1,64 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
+.TH "gnutls_session_set_premaster" 3 "3.0.24" "gnutls" "gnutls"
+.SH NAME
+gnutls_session_set_premaster \- API function
+.SH SYNOPSIS
+.B #include <gnutls/gnutls.h>
+.sp
+.BI "int gnutls_session_set_premaster(gnutls_session_t " session ", unsigned int " entity ", gnutls_protocol_t " version ", gnutls_kx_algorithm_t " kx ", gnutls_cipher_algorithm_t " cipher ", gnutls_mac_algorithm_t " mac ", gnutls_compression_method_t " comp ", const gnutls_datum_t* " master ", const gnutls_datum_t * " session_id ");"
+.SH ARGUMENTS
+.IP "gnutls_session_t session" 12
+is a \fBgnutls_session_t\fP structure.
+.IP "unsigned int entity" 12
+GNUTLS_SERVER or GNUTLS_CLIENT
+.IP "gnutls_protocol_t version" 12
+the TLS protocol version
+.IP "gnutls_kx_algorithm_t kx" 12
+the key exchange method
+.IP "gnutls_cipher_algorithm_t cipher" 12
+the cipher
+.IP "gnutls_mac_algorithm_t mac" 12
+the MAC algorithm
+.IP "gnutls_compression_method_t comp" 12
+the compression method
+.IP "const gnutls_datum_t* master" 12
+the master key to use
+.IP "const gnutls_datum_t * session_id" 12
+the session identifier
+.SH "DESCRIPTION"
+This function sets the premaster secret in a session. This is
+a function intended for exceptional uses. Do not use this
+function unless you are implementing a legacy protocol.
+Use \fBgnutls_session_set_data()\fP instead.
+.SH "RETURNS"
+On success, \fBGNUTLS_E_SUCCESS\fP (0) is returned, otherwise
+an error code is returned.
+.SH "REPORTING BUGS"
+Report bugs to <bug-gnutls@gnu.org>.
+.br
+General guidelines for reporting bugs: http://www.gnu.org/gethelp/
+.br
+GnuTLS home page: http://www.gnu.org/software/gnutls/
+
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B gnutls
+is maintained as a Texinfo manual.  If the
+.B info
+and
+.B gnutls
+programs are properly installed at your site, the command
+.IP
+.B info gnutls
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/gnutls/manual/
+.PP
index 62febde..ea0bf86 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_set_ptr" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_set_ptr" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_set_ptr \- API function
 .SH SYNOPSIS
index 4c60698..51ee687 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_ticket_enable_client" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_ticket_enable_client" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_ticket_enable_client \- API function
 .SH SYNOPSIS
index d8ca779..86393e9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_ticket_enable_server" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_ticket_enable_server" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_ticket_enable_server \- API function
 .SH SYNOPSIS
index 96c88ca..32b5ad9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_session_ticket_key_generate" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_session_ticket_key_generate" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_session_ticket_key_generate \- API function
 .SH SYNOPSIS
index 8bb407b..6dab9d0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_set_default_export_priority" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_set_default_export_priority" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_set_default_export_priority \- API function
 .SH SYNOPSIS
index c203e41..bf43c13 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_set_default_priority" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_set_default_priority" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_set_default_priority \- API function
 .SH SYNOPSIS
index 54045b3..354b414 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_sign_algorithm_get_requested" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_sign_algorithm_get_requested" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_sign_algorithm_get_requested \- API function
 .SH SYNOPSIS
index 0b94d34..89cecbd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_sign_callback_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_sign_callback_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_sign_callback_get \- API function
 .SH SYNOPSIS
index f557b51..5fb6881 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_sign_callback_set" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_sign_callback_set" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_sign_callback_set \- API function
 .SH SYNOPSIS
index de6b3e3..8fddd0b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_sign_get_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_sign_get_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_sign_get_id \- API function
 .SH SYNOPSIS
index 01ff75d..a16c929 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_sign_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_sign_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_sign_get_name \- API function
 .SH SYNOPSIS
index 579e111..54477e7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_sign_list" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_sign_list" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_sign_list \- API function
 .SH SYNOPSIS
index 77f2cd7..62aa558 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_allocate_client_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_allocate_client_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_allocate_client_credentials \- API function
 .SH SYNOPSIS
index 8b4fd3c..6f577ba 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_allocate_server_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_allocate_server_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_allocate_server_credentials \- API function
 .SH SYNOPSIS
index b0568f0..bf9a824 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_base64_decode" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_base64_decode" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_base64_decode \- API function
 .SH SYNOPSIS
index 419ecdb..dde5a95 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_base64_decode_alloc" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_base64_decode_alloc" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_base64_decode_alloc \- API function
 .SH SYNOPSIS
index a8c7162..8187e6f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_base64_encode" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_base64_encode" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_base64_encode \- API function
 .SH SYNOPSIS
index de660a9..1f73127 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_base64_encode_alloc" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_base64_encode_alloc" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_base64_encode_alloc \- API function
 .SH SYNOPSIS
index 1dec5e3..0f94461 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_free_client_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_free_client_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_free_client_credentials \- API function
 .SH SYNOPSIS
index ede87f8..bea43a0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_free_server_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_free_server_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_free_server_credentials \- API function
 .SH SYNOPSIS
index e5273c4..4a0ee3e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_server_get_username" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_server_get_username" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_server_get_username \- API function
 .SH SYNOPSIS
index f3f234e..c02266a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_set_client_credentials" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_set_client_credentials" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_set_client_credentials \- API function
 .SH SYNOPSIS
index befe9a4..3570760 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_set_client_credentials_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_set_client_credentials_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_set_client_credentials_function \- API function
 .SH SYNOPSIS
index 8caea06..b912eb5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_set_prime_bits" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_set_prime_bits" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_set_prime_bits \- API function
 .SH SYNOPSIS
index 0157ffe..588979d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_set_server_credentials_file" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_set_server_credentials_file" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_set_server_credentials_file \- API function
 .SH SYNOPSIS
index b6864dd..eec51ac 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_set_server_credentials_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_set_server_credentials_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_set_server_credentials_function \- API function
 .SH SYNOPSIS
index 5c1084e..92fa4dd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_srp_verifier" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_srp_verifier" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_srp_verifier \- API function
 .SH SYNOPSIS
index e56ed86..2f4705d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_store_commitment" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_store_commitment" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_store_commitment \- API function
 .SH SYNOPSIS
index 61bd68a..82faefe 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_store_pubkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_store_pubkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_store_pubkey \- API function
 .SH SYNOPSIS
index b8d3e9a..6e2f315 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_strerror" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_strerror" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_strerror \- API function
 .SH SYNOPSIS
index ab0b30f..c7ad1da 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_strerror_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_strerror_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_strerror_name \- API function
 .SH SYNOPSIS
index f6f4ca1..9b9a545 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_supplemental_get_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_supplemental_get_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_supplemental_get_name \- API function
 .SH SYNOPSIS
index b17cce9..a81cc84 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_tdb_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_tdb_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_tdb_deinit \- API function
 .SH SYNOPSIS
index a272473..5c82d8e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_tdb_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_tdb_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_tdb_init \- API function
 .SH SYNOPSIS
index 0ae219c..dc15ae1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_tdb_set_store_commitment_func" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_tdb_set_store_commitment_func" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_tdb_set_store_commitment_func \- API function
 .SH SYNOPSIS
index 8ce07d8..4aa16cc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_tdb_set_store_func" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_tdb_set_store_func" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_tdb_set_store_func \- API function
 .SH SYNOPSIS
index 82d4efa..c714eae 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_tdb_set_verify_func" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_tdb_set_verify_func" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_tdb_set_verify_func \- API function
 .SH SYNOPSIS
index eb5bbeb..c128db5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_get_ptr" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_get_ptr" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_get_ptr \- API function
 .SH SYNOPSIS
index 7606edd..3521bfb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_get_ptr2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_get_ptr2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_get_ptr2 \- API function
 .SH SYNOPSIS
index d5f71cc..70357de 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_set_errno" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_set_errno" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_set_errno \- API function
 .SH SYNOPSIS
index 3c81fe2..e105e64 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_set_errno_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_set_errno_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_set_errno_function \- API function
 .SH SYNOPSIS
index 0f0d48f..71b21d9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_set_ptr" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_set_ptr" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_set_ptr \- API function
 .SH SYNOPSIS
index df95f8e..014a648 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_set_ptr2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_set_ptr2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_set_ptr2 \- API function
 .SH SYNOPSIS
index ec2002e..00d18a7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_set_pull_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_set_pull_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_set_pull_function \- API function
 .SH SYNOPSIS
index 6aa3fe0..7704e86 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_set_pull_timeout_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_set_pull_timeout_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_set_pull_timeout_function \- API function
 .SH SYNOPSIS
index 9b32b6a..14d4eed 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_set_push_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_set_push_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_set_push_function \- API function
 .SH SYNOPSIS
index 6b38b85..42443ab 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_transport_set_vec_push_function" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_transport_set_vec_push_function" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_transport_set_vec_push_function \- API function
 .SH SYNOPSIS
index 21521af..b29bc3e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_verify_stored_pubkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_verify_stored_pubkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_verify_stored_pubkey \- API function
 .SH SYNOPSIS
index 076e0d6..e1b37f1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_check_issuer" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_check_issuer" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_check_issuer \- API function
 .SH SYNOPSIS
index b11c249..a0472a8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_deinit \- API function
 .SH SYNOPSIS
index 694d7af..10593e5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_export \- API function
 .SH SYNOPSIS
index 4d4e854..c61c9ac 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_authority_key_gn_serial" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_authority_key_gn_serial" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_authority_key_gn_serial \- API function
 .SH SYNOPSIS
index 87132ec..0d36ca7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_authority_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_authority_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_authority_key_id \- API function
 .SH SYNOPSIS
index 2474097..f3774ea 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_crt_count" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_crt_count" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_crt_count \- API function
 .SH SYNOPSIS
index c1ef788..3e93517 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_crt_serial" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_crt_serial" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_crt_serial \- API function
 .SH SYNOPSIS
index a4b11a0..e840640 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_dn_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_dn_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_dn_oid \- API function
 .SH SYNOPSIS
index f3789f8..8662f66 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_extension_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_extension_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_extension_data \- API function
 .SH SYNOPSIS
index 99c6391..1254486 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_extension_info" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_extension_info" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_extension_info \- API function
 .SH SYNOPSIS
index de33ba4..70520e6 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_extension_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_extension_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_extension_oid \- API function
 .SH SYNOPSIS
index 8150b00..38c1afc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_issuer_dn" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_issuer_dn" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_issuer_dn \- API function
 .SH SYNOPSIS
index 4eba216..112c076 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_issuer_dn_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_issuer_dn_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_issuer_dn_by_oid \- API function
 .SH SYNOPSIS
index 1b87996..46f3bea 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_next_update" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_next_update" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_next_update \- API function
 .SH SYNOPSIS
index f033dc4..22a5072 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_number" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_number" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_number \- API function
 .SH SYNOPSIS
index 119ba8f..015ceda 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_raw_issuer_dn" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_raw_issuer_dn" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_raw_issuer_dn \- API function
 .SH SYNOPSIS
index 584218c..0adab50 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_signature" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_signature" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_signature \- API function
 .SH SYNOPSIS
index 6ad2a9c..0b2a3f2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_signature_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_signature_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_signature_algorithm \- API function
 .SH SYNOPSIS
index 1e1b2b1..16c8039 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_this_update" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_this_update" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_this_update \- API function
 .SH SYNOPSIS
index b742c24..cd1e166 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_get_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_get_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_get_version \- API function
 .SH SYNOPSIS
index 8627293..20686dc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_import \- API function
 .SH SYNOPSIS
index f5b6354..adb44c4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_init \- API function
 .SH SYNOPSIS
index b8579b7..33b7560 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_list_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_list_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_list_import \- API function
 .SH SYNOPSIS
index 140b471..a2055f0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_list_import2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_list_import2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_list_import2 \- API function
 .SH SYNOPSIS
index 587f28d..8ed2ddc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_print" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_print" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_print \- API function
 .SH SYNOPSIS
index add0428..c6a2222 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_privkey_sign" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_privkey_sign" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_privkey_sign \- API function
 .SH SYNOPSIS
index 08b92e5..f9c6a14 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_set_authority_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_set_authority_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_set_authority_key_id \- API function
 .SH SYNOPSIS
index 56381e4..463b6f5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_set_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_set_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_set_crt \- API function
 .SH SYNOPSIS
index e01e899..f855b25 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_set_crt_serial" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_set_crt_serial" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_set_crt_serial \- API function
 .SH SYNOPSIS
index e0532c9..0fe900e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_set_next_update" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_set_next_update" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_set_next_update \- API function
 .SH SYNOPSIS
index 6c8d46c..a62eda3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_set_number" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_set_number" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_set_number \- API function
 .SH SYNOPSIS
index 748820e..ab534c9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_set_this_update" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_set_this_update" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_set_this_update \- API function
 .SH SYNOPSIS
index 0124945..7bf4060 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_set_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_set_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_set_version \- API function
 .SH SYNOPSIS
index 810e3fa..1757663 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_sign" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_sign" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_sign \- API function
 .SH SYNOPSIS
index 4802653..09bac4b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_sign2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_sign2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_sign2 \- API function
 .SH SYNOPSIS
index 0429e29..ebb949d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crl_verify" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crl_verify" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crl_verify \- API function
 .SH SYNOPSIS
index 1b9f595..ff78175 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_deinit \- API function
 .SH SYNOPSIS
index cf80c0e..86c97f7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_export \- API function
 .SH SYNOPSIS
index 0b4e6cd..4deffb7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_attribute_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_attribute_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_attribute_by_oid \- API function
 .SH SYNOPSIS
index 2982df2..a36b6ee 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_attribute_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_attribute_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_attribute_data \- API function
 .SH SYNOPSIS
index 83f20f1..9bf6943 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_attribute_info" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_attribute_info" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_attribute_info \- API function
 .SH SYNOPSIS
index 01f8d9a..e1e1987 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_basic_constraints" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_basic_constraints" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_basic_constraints \- API function
 .SH SYNOPSIS
index 613f4d6..60c5ebf 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_challenge_password" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_challenge_password" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_challenge_password \- API function
 .SH SYNOPSIS
index 16feba2..133160e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_dn" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_dn" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_dn \- API function
 .SH SYNOPSIS
index 5959d99..dc872a4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_dn_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_dn_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_dn_by_oid \- API function
 .SH SYNOPSIS
index 768538a..017956c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_dn_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_dn_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_dn_oid \- API function
 .SH SYNOPSIS
index 2ff6bab..5459185 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_extension_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_extension_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_extension_by_oid \- API function
 .SH SYNOPSIS
index 8f916e0..9f07760 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_extension_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_extension_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_extension_data \- API function
 .SH SYNOPSIS
index 81f0b68..c9d412e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_extension_info" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_extension_info" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_extension_info \- API function
 .SH SYNOPSIS
index 39df3e7..c4d1f72 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_key_id \- API function
 .SH SYNOPSIS
index 3d8f7ec..31407a3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_key_purpose_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_key_purpose_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_key_purpose_oid \- API function
 .SH SYNOPSIS
index dd8405f..2db0adb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_key_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_key_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_key_rsa_raw \- API function
 .SH SYNOPSIS
index 9387f53..1aa9330 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_key_usage" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_key_usage" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_key_usage \- API function
 .SH SYNOPSIS
index 13c1250..7cddc64 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_pk_algorithm \- API function
 .SH SYNOPSIS
index b6eb26a..d260c99 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_private_key_usage_period" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_private_key_usage_period" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_private_key_usage_period \- API function
 .SH SYNOPSIS
index bfe4f0b..2e4782e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_subject_alt_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_subject_alt_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_subject_alt_name \- API function
 .SH SYNOPSIS
index ad9b682..b111c4b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_subject_alt_othername_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_subject_alt_othername_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_subject_alt_othername_oid \- API function
 .SH SYNOPSIS
index ac1d714..3d3d86d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_get_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_get_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_get_version \- API function
 .SH SYNOPSIS
index ab21de3..62cba9e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_import \- API function
 .SH SYNOPSIS
index ab5f68b..6274692 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_init \- API function
 .SH SYNOPSIS
index 337a472..3654d8c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_print" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_print" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_print \- API function
 .SH SYNOPSIS
index cbc471e..25a3787 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_privkey_sign" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_privkey_sign" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_privkey_sign \- API function
 .SH SYNOPSIS
index ed3cddf..b066651 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_attribute_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_attribute_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_attribute_by_oid \- API function
 .SH SYNOPSIS
index d2897d1..97e0392 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_basic_constraints" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_basic_constraints" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_basic_constraints \- API function
 .SH SYNOPSIS
index ee3257f..09d57ce 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_challenge_password" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_challenge_password" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_challenge_password \- API function
 .SH SYNOPSIS
index bae269c..c945c3e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_dn_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_dn_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_dn_by_oid \- API function
 .SH SYNOPSIS
index 2a398f7..ff5cf7c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_key" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_key" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_key \- API function
 .SH SYNOPSIS
index c33ea80..06da013 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_key_purpose_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_key_purpose_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_key_purpose_oid \- API function
 .SH SYNOPSIS
index 760481d..324cb7f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_key_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_key_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_key_rsa_raw \- API function
 .SH SYNOPSIS
index a2875f6..e8d18b3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_key_usage" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_key_usage" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_key_usage \- API function
 .SH SYNOPSIS
index e41a2cb..bf313e7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_private_key_usage_period" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_private_key_usage_period" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_private_key_usage_period \- API function
 .SH SYNOPSIS
index 26cd48d..60c422e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_pubkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_pubkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_pubkey \- API function
 .SH SYNOPSIS
index 1513a4a..d3ffa81 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_subject_alt_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_subject_alt_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_subject_alt_name \- API function
 .SH SYNOPSIS
index ade6dc9..d699806 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_set_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_set_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_set_version \- API function
 .SH SYNOPSIS
index ae5c0eb..ede9015 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_sign" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_sign" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_sign \- API function
 .SH SYNOPSIS
index 5e149d8..1d083e4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_sign2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_sign2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_sign2 \- API function
 .SH SYNOPSIS
index 1566579..caa572f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crq_verify" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crq_verify" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crq_verify \- API function
 .SH SYNOPSIS
index c2583c7..807d7ce 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_check_hostname" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_check_hostname" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_check_hostname \- API function
 .SH SYNOPSIS
index cbb0dcd..3c9306b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_check_issuer" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_check_issuer" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_check_issuer \- API function
 .SH SYNOPSIS
index 8b566e5..7bd1f3e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_check_revocation" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_check_revocation" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_check_revocation \- API function
 .SH SYNOPSIS
index 15e28ba..fa73379 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_cpy_crl_dist_points" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_cpy_crl_dist_points" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_cpy_crl_dist_points \- API function
 .SH SYNOPSIS
index 70e6290..9c43138 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_deinit \- API function
 .SH SYNOPSIS
index 03ed886..1feb3b4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_export \- API function
 .SH SYNOPSIS
index 4ba7451..1aa65cd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_activation_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_activation_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_activation_time \- API function
 .SH SYNOPSIS
index dfc412e..db94e07 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_authority_info_access" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_authority_info_access" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_authority_info_access \- API function
 .SH SYNOPSIS
index 8c6a9a0..efe4674 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_authority_key_gn_serial" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_authority_key_gn_serial" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_authority_key_gn_serial \- API function
 .SH SYNOPSIS
index 5140816..820f011 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_authority_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_authority_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_authority_key_id \- API function
 .SH SYNOPSIS
index 9841b12..0e90ce2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_basic_constraints" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_basic_constraints" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_basic_constraints \- API function
 .SH SYNOPSIS
index 79836fe..339ff98 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_ca_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_ca_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_ca_status \- API function
 .SH SYNOPSIS
index ebc543d..ac5c93f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_crl_dist_points" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_crl_dist_points" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_crl_dist_points \- API function
 .SH SYNOPSIS
index 90796c3..9e061d1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_dn" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_dn" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_dn \- API function
 .SH SYNOPSIS
index 8efa93c..aed4900 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_dn_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_dn_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_dn_by_oid \- API function
 .SH SYNOPSIS
index b0a1d33..cc7ee0e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_dn_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_dn_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_dn_oid \- API function
 .SH SYNOPSIS
index c50cc20..744ab11 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_expiration_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_expiration_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_expiration_time \- API function
 .SH SYNOPSIS
index 7ed7841..46b341a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_extension_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_extension_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_extension_by_oid \- API function
 .SH SYNOPSIS
index 66494ef..dfc942f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_extension_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_extension_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_extension_data \- API function
 .SH SYNOPSIS
index d0d57bb..b208a22 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_extension_info" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_extension_info" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_extension_info \- API function
 .SH SYNOPSIS
index acc92b3..4a9db18 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_extension_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_extension_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_extension_oid \- API function
 .SH SYNOPSIS
index 26bde73..222e4bd 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_fingerprint" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_fingerprint" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_fingerprint \- API function
 .SH SYNOPSIS
index ecd362a..f304446 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_issuer" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_issuer" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_issuer \- API function
 .SH SYNOPSIS
index 789e95c..4b19616 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_issuer_alt_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_issuer_alt_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_issuer_alt_name \- API function
 .SH SYNOPSIS
index a216fcc..e12f6b4 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_issuer_alt_name2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_issuer_alt_name2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_issuer_alt_name2 \- API function
 .SH SYNOPSIS
index 794eb2c..7ba8e97 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_issuer_alt_othername_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_issuer_alt_othername_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_issuer_alt_othername_oid \- API function
 .SH SYNOPSIS
index 8c87898..38668ac 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_issuer_dn" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_issuer_dn" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_issuer_dn \- API function
 .SH SYNOPSIS
index c90aa33..28448a5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_issuer_dn_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_issuer_dn_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_issuer_dn_by_oid \- API function
 .SH SYNOPSIS
index e5c4c64..3e38118 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_issuer_dn_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_issuer_dn_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_issuer_dn_oid \- API function
 .SH SYNOPSIS
index 5cd8703..3484d4f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_issuer_unique_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_issuer_unique_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_issuer_unique_id \- API function
 .SH SYNOPSIS
index fe1cccc..7408266 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_key_id \- API function
 .SH SYNOPSIS
index 1bd5776..ebdd29b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_key_purpose_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_key_purpose_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_key_purpose_oid \- API function
 .SH SYNOPSIS
index c4acda8..fe48dac 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_key_usage" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_key_usage" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_key_usage \- API function
 .SH SYNOPSIS
index 7ae71e4..4f021ce 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_pk_algorithm \- API function
 .SH SYNOPSIS
index 82dab04..8775569 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_pk_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_pk_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_pk_dsa_raw \- API function
 .SH SYNOPSIS
index 3eaa9d5..c08b995 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_pk_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_pk_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_pk_rsa_raw \- API function
 .SH SYNOPSIS
index ce85150..6118c10 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_preferred_hash_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_preferred_hash_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_preferred_hash_algorithm \- API function
 .SH SYNOPSIS
index 155a15d..c0caf23 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_private_key_usage_period" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_private_key_usage_period" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_private_key_usage_period \- API function
 .SH SYNOPSIS
index 22861e3..9b508c3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_proxy" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_proxy" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_proxy \- API function
 .SH SYNOPSIS
index 5bf14cc..3844aff 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_raw_dn" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_raw_dn" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_raw_dn \- API function
 .SH SYNOPSIS
@@ -13,7 +13,7 @@ should contain a \fBgnutls_x509_crt_t\fP structure
 will hold the starting point of the DN
 .SH "DESCRIPTION"
 This function will return a pointer to the DER encoded DN structure and
-the length.
+the length. This points to allocated data that must be free'd using \fBgnutls_free()\fP.
 .SH "RETURNS"
 On success, \fBGNUTLS_E_SUCCESS\fP (0) is returned, otherwise a
 negative error value. or a negative error code on error.
index 2d318c2..43648ca 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_raw_issuer_dn" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_raw_issuer_dn" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_raw_issuer_dn \- API function
 .SH SYNOPSIS
@@ -13,7 +13,7 @@ should contain a \fBgnutls_x509_crt_t\fP structure
 will hold the starting point of the DN
 .SH "DESCRIPTION"
 This function will return a pointer to the DER encoded DN structure
-and the length.
+and the length. This points to allocated data that must be free'd using \fBgnutls_free()\fP.
 .SH "RETURNS"
 On success, \fBGNUTLS_E_SUCCESS\fP (0) is returned, otherwise a
 negative error value.or a negative error code on error.
index d62c499..6c1b8f5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_serial" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_serial" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_serial \- API function
 .SH SYNOPSIS
index 7e51000..6228572 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_signature" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_signature" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_signature \- API function
 .SH SYNOPSIS
index 500d625..6d3643e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_signature_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_signature_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_signature_algorithm \- API function
 .SH SYNOPSIS
index 7c35ce5..05bd931 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_subject" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_subject" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_subject \- API function
 .SH SYNOPSIS
index e5990e0..519cb10 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_subject_alt_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_subject_alt_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_subject_alt_name \- API function
 .SH SYNOPSIS
index 1015436..5497921 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_subject_alt_name2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_subject_alt_name2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_subject_alt_name2 \- API function
 .SH SYNOPSIS
index 0f4ec96..d2972ee 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_subject_alt_othername_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_subject_alt_othername_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_subject_alt_othername_oid \- API function
 .SH SYNOPSIS
index b5a874a..28a3ba2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_subject_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_subject_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_subject_key_id \- API function
 .SH SYNOPSIS
index bec24f4..55bec91 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_subject_unique_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_subject_unique_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_subject_unique_id \- API function
 .SH SYNOPSIS
index 697f24f..c19ebe3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_verify_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_verify_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_verify_algorithm \- API function
 .SH SYNOPSIS
index 9e75923..8a2e7b2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_get_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_get_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_get_version \- API function
 .SH SYNOPSIS
index 84d9036..e48779e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_import \- API function
 .SH SYNOPSIS
index b3b16a4..9ddfb49 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_import_pkcs11" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_import_pkcs11" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_import_pkcs11 \- API function
 .SH SYNOPSIS
index 6823cc4..e92a3fb 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_import_pkcs11_url" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_import_pkcs11_url" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_import_pkcs11_url \- API function
 .SH SYNOPSIS
index b3c3062..52ff56a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_init \- API function
 .SH SYNOPSIS
index b07269a..0daf9f1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_list_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_list_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_list_import \- API function
 .SH SYNOPSIS
index fbca587..0cc2eae 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_list_import2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_list_import2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_list_import2 \- API function
 .SH SYNOPSIS
index 45ebf18..edf4376 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_list_import_pkcs11" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_list_import_pkcs11" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_list_import_pkcs11 \- API function
 .SH SYNOPSIS
index e487e69..9aa1649 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_list_verify" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_list_verify" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_list_verify \- API function
 .SH SYNOPSIS
index 70c3cae..0181437 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_print" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_print" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_print \- API function
 .SH SYNOPSIS
index 7b2e213..9ba342f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_privkey_sign" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_privkey_sign" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_privkey_sign \- API function
 .SH SYNOPSIS
index a1ab2eb..e3e833e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_activation_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_activation_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_activation_time \- API function
 .SH SYNOPSIS
index 48659ff..b764725 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_authority_info_access" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_authority_info_access" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_authority_info_access \- API function
 .SH SYNOPSIS
index b04bf98..b2b73bc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_authority_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_authority_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_authority_key_id \- API function
 .SH SYNOPSIS
index 1f55a6a..f258333 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_basic_constraints" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_basic_constraints" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_basic_constraints \- API function
 .SH SYNOPSIS
index 0500cfa..b3e282a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_ca_status" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_ca_status" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_ca_status \- API function
 .SH SYNOPSIS
index a2cea7c..a306011 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_crl_dist_points" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_crl_dist_points" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_crl_dist_points \- API function
 .SH SYNOPSIS
index 1579387..308b03c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_crl_dist_points2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_crl_dist_points2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_crl_dist_points2 \- API function
 .SH SYNOPSIS
index c0f531e..da3a84a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_crq" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_crq" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_crq \- API function
 .SH SYNOPSIS
index 80afaf3..4935ee2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_crq_extensions" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_crq_extensions" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_crq_extensions \- API function
 .SH SYNOPSIS
index 614b741..1015135 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_dn_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_dn_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_dn_by_oid \- API function
 .SH SYNOPSIS
index 4629d93..c5b1ed2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_expiration_time" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_expiration_time" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_expiration_time \- API function
 .SH SYNOPSIS
index 3c48793..dfe455e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_extension_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_extension_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_extension_by_oid \- API function
 .SH SYNOPSIS
index 450a3f7..93d5e06 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_issuer_dn_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_issuer_dn_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_issuer_dn_by_oid \- API function
 .SH SYNOPSIS
index 1c97c63..d6b9d5f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_key" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_key" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_key \- API function
 .SH SYNOPSIS
index a3794fa..4b73543 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_key_purpose_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_key_purpose_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_key_purpose_oid \- API function
 .SH SYNOPSIS
index ae4d302..ce152c1 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_key_usage" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_key_usage" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_key_usage \- API function
 .SH SYNOPSIS
index 92dc92f..0db26e7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_private_key_usage_period" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_private_key_usage_period" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_private_key_usage_period \- API function
 .SH SYNOPSIS
index c2c4012..7432a53 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_proxy" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_proxy" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_proxy \- API function
 .SH SYNOPSIS
index f3e2d16..53f7c7d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_proxy_dn" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_proxy_dn" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_proxy_dn \- API function
 .SH SYNOPSIS
index f70d91a..cd89f49 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_pubkey" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_pubkey" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_pubkey \- API function
 .SH SYNOPSIS
index 8534a13..8ead471 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_serial" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_serial" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_serial \- API function
 .SH SYNOPSIS
index 392dfef..e81ad02 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_subject_alt_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_subject_alt_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_subject_alt_name \- API function
 .SH SYNOPSIS
index 7160aaa..de5a805 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_subject_alternative_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_subject_alternative_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_subject_alternative_name \- API function
 .SH SYNOPSIS
index d9b68e8..e09ffe9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_subject_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_subject_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_subject_key_id \- API function
 .SH SYNOPSIS
index 7514ae0..3da40be 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_set_version" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_set_version" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_set_version \- API function
 .SH SYNOPSIS
index 71fb8dd..c010f98 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_sign" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_sign" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_sign \- API function
 .SH SYNOPSIS
index 98b4f59..d0a33ee 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_sign2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_sign2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_sign2 \- API function
 .SH SYNOPSIS
index 11c3c61..cc4181a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_verify" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_verify" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_verify \- API function
 .SH SYNOPSIS
index 2b8298b..4b5f5f7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_verify_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_verify_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_verify_data \- API function
 .SH SYNOPSIS
index 5c3d82e..5cd1c7d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_crt_verify_hash" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_crt_verify_hash" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_crt_verify_hash \- API function
 .SH SYNOPSIS
index 59e5038..3eb233a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_dn_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_dn_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_dn_deinit \- API function
 .SH SYNOPSIS
index e0bf76b..1be569b 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_dn_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_dn_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_dn_export \- API function
 .SH SYNOPSIS
index cde0ccd..054e965 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_dn_get_rdn_ava" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_dn_get_rdn_ava" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_dn_get_rdn_ava \- API function
 .SH SYNOPSIS
index fff038f..04aec0e 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_dn_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_dn_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_dn_import \- API function
 .SH SYNOPSIS
index 96826cb..32f3752 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_dn_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_dn_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_dn_init \- API function
 .SH SYNOPSIS
index 26fb91f..52e32dc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_dn_oid_known" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_dn_oid_known" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_dn_oid_known \- API function
 .SH SYNOPSIS
index 8280aaa..51dfe0f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_dn_oid_name" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_dn_oid_name" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_dn_oid_name \- API function
 .SH SYNOPSIS
index 30ff58f..418593d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_cpy" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_cpy" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_cpy \- API function
 .SH SYNOPSIS
index 26e1e38..0f3da9a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_deinit \- API function
 .SH SYNOPSIS
index 0372ad3..447b4cf 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_export" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_export" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_export \- API function
 .SH SYNOPSIS
index d926619..fdd7788 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_export_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_export_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_export_dsa_raw \- API function
 .SH SYNOPSIS
index 1d03604..d975f2f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_export_ecc_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_export_ecc_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_export_ecc_raw \- API function
 .SH SYNOPSIS
index 699e514..afe48c9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_export_pkcs8" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_export_pkcs8" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_export_pkcs8 \- API function
 .SH SYNOPSIS
index f520c47..d1c502c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_export_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_export_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_export_rsa_raw \- API function
 .SH SYNOPSIS
index aed3ca3..5eb290f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_export_rsa_raw2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_export_rsa_raw2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_export_rsa_raw2 \- API function
 .SH SYNOPSIS
index 8fa2b90..54d47e9 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_fix" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_fix" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_fix \- API function
 .SH SYNOPSIS
index 2830994..11b487f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_generate" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_generate" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_generate \- API function
 .SH SYNOPSIS
index b553613..1479dec 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_get_key_id" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_get_key_id" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_get_key_id \- API function
 .SH SYNOPSIS
index 0e55ca1..bfc2616 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_get_pk_algorithm" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_get_pk_algorithm" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_get_pk_algorithm \- API function
 .SH SYNOPSIS
index 9459b6d..7f1275a 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_import" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_import" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_import \- API function
 .SH SYNOPSIS
@@ -18,8 +18,9 @@ This function will convert the given DER or PEM encoded key to the
 native \fBgnutls_x509_privkey_t\fP format. The output will be stored in
  \fIkey\fP .
 
-If the key is PEM encoded it should have a header of "RSA PRIVATE
-KEY", or "DSA PRIVATE KEY".
+If the key is PEM encoded it should have a header that contains "PRIVATE
+KEY". Note that this function falls back to PKCS \fB8\fP decoding without
+password, if the default format fails to import.
 .SH "RETURNS"
 On success, \fBGNUTLS_E_SUCCESS\fP (0) is returned, otherwise a
 negative error value.
index a6bc8e2..8af5674 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_import_dsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_import_dsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_import_dsa_raw \- API function
 .SH SYNOPSIS
index 2feea6c..7be3c16 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_import_ecc_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_import_ecc_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_import_ecc_raw \- API function
 .SH SYNOPSIS
index 8137986..93cc0fa 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_import_pkcs8" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_import_pkcs8" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_import_pkcs8 \- API function
 .SH SYNOPSIS
index cb2f7bd..696eac0 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_import_rsa_raw" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_import_rsa_raw" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_import_rsa_raw \- API function
 .SH SYNOPSIS
index 0d82e16..94c6c75 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_import_rsa_raw2" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_import_rsa_raw2" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_import_rsa_raw2 \- API function
 .SH SYNOPSIS
index 50cb0b0..4b06a81 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_init \- API function
 .SH SYNOPSIS
index 626d78c..73892af 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_sec_param" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_sec_param" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_sec_param \- API function
 .SH SYNOPSIS
index 7c41ec0..a36fe46 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_sign_data" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_sign_data" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_sign_data \- API function
 .SH SYNOPSIS
index b724368..4d1d1d5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_sign_hash" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_sign_hash" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_sign_hash \- API function
 .SH SYNOPSIS
index 29dff01..10617ac 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_privkey_verify_params" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_privkey_verify_params" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_privkey_verify_params \- API function
 .SH SYNOPSIS
index 48fcb19..8e66608 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_rdn_get" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_rdn_get" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_rdn_get \- API function
 .SH SYNOPSIS
index 618eaf1..1c1d3f2 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_rdn_get_by_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_rdn_get_by_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_rdn_get_by_oid \- API function
 .SH SYNOPSIS
index 2d70a1d..71bc541 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_rdn_get_oid" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_rdn_get_oid" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_rdn_get_oid \- API function
 .SH SYNOPSIS
index ee0dc9f..d8ac6fc 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_trust_list_add_cas" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_trust_list_add_cas" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_trust_list_add_cas \- API function
 .SH SYNOPSIS
index eb9347d..27b0084 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_trust_list_add_crls" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_trust_list_add_crls" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_trust_list_add_crls \- API function
 .SH SYNOPSIS
index 0e37302..b261a50 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_trust_list_add_named_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_trust_list_add_named_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_trust_list_add_named_crt \- API function
 .SH SYNOPSIS
index c3f811b..7a622d5 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_trust_list_deinit" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_trust_list_deinit" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_trust_list_deinit \- API function
 .SH SYNOPSIS
index 063b47d..665f08d 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_trust_list_get_issuer" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_trust_list_get_issuer" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_trust_list_get_issuer \- API function
 .SH SYNOPSIS
index dfc3183..28cbf2f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_trust_list_init" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_trust_list_init" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_trust_list_init \- API function
 .SH SYNOPSIS
index 4a7b8e9..fc34eb7 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_trust_list_verify_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_trust_list_verify_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_trust_list_verify_crt \- API function
 .SH SYNOPSIS
index ea4532c..d088d1c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by gdoc.
-.TH "gnutls_x509_trust_list_verify_named_crt" 3 "3.0.19" "gnutls" "gnutls"
+.TH "gnutls_x509_trust_list_verify_named_crt" 3 "3.0.24" "gnutls" "gnutls"
 .SH NAME
 gnutls_x509_trust_list_verify_named_crt \- API function
 .SH SYNOPSIS
index ef259c4..4dc837b 100644 (file)
@@ -1,8 +1,8 @@
-.TH ocsptool 1 "03 Jul 2012" "3.0.21" "User Commands"
+.TH ocsptool 1 "01 Jun 2013" "3.0.30" "User Commands"
 .\"
 .\"  DO NOT EDIT THIS FILE   (ocsptool-args.man)
-.\"  
-.\"  It has been AutoGen-ed  July  3, 2012 at 12:05:50 AM by AutoGen 5.16
+.\"
+.\"  It has been AutoGen-ed  June  1, 2013 at 01:07:16 PM by AutoGen 5.17.3
 .\"  From the definitions    ocsptool-args.def.tmp
 .\"  and the template file   agman-cmd.tpl
 .\"
@@ -11,7 +11,7 @@ ocsptool \- GnuTLS OCSP tool
 .SH SYNOPSIS
 .B ocsptool
 .\" Mixture of short (flag) options and long options
-.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP " [[=| ]\fIvalue\fP]]..."
+.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP "[[=| ]\fIvalue\fP]]..."
 .PP
 All arguments must be options.
 .PP
@@ -33,7 +33,7 @@ in the range  0 through 9999
 .sp
 Specifies the debug level.
 .TP
-.BR \-V ", " -\-verbose
+.BR \-V ", " \-\-verbose
 More verbose output.
 This option may appear an unlimited number of times.
 .sp
@@ -53,19 +53,19 @@ load-cert, load-issuer.
 .sp
 Connects to the specified HTTP OCSP server and queries on the validity of the loaded certificate.
 .TP
-.BR \-e ", " -\-verify\-response
+.BR \-e ", " \-\-verify\-response
 Verify response.
 .sp
 .TP
-.BR \-i ", " -\-request\-info
+.BR \-i ", " \-\-request\-info
 Print information on a OCSP request.
 .sp
 .TP
-.BR \-j ", " -\-response\-info
+.BR \-j ", " \-\-response\-info
 Print information on a OCSP response.
 .sp
 .TP
-.BR \-q ", " -\-generate\-request
+.BR \-q ", " \-\-generate\-request
 Generate an OCSP request.
 .sp
 .TP
@@ -294,6 +294,10 @@ Successful program execution.
 .TP
 .BR 1 " (EXIT_FAILURE)"
 The operation failed or the command syntax was not valid.
+.TP
+.BR 70 " (EX_SOFTWARE)"
+libopts had an internal operational error.  Please report
+it to autogen-users@lists.sourceforge.net.  Thank you.
 .SH "SEE ALSO"
     certtool (1)
 .SH "AUTHORS"
index 069e291..0c2829b 100644 (file)
@@ -1,8 +1,8 @@
-.TH p11tool 1 "03 Jul 2012" "3.0.21" "User Commands"
+.TH p11tool 1 "01 Jun 2013" "3.0.30" "User Commands"
 .\"
 .\"  DO NOT EDIT THIS FILE   (p11tool-args.man)
-.\"  
-.\"  It has been AutoGen-ed  July  3, 2012 at 12:05:53 AM by AutoGen 5.16
+.\"
+.\"  It has been AutoGen-ed  June  1, 2013 at 01:07:20 PM by AutoGen 5.17.3
 .\"  From the definitions    p11tool-args.def.tmp
 .\"  and the template file   agman-cmd.tpl
 .\"
@@ -11,7 +11,7 @@ p11tool \- GnuTLS PKCS #11 tool
 .SH SYNOPSIS
 .B p11tool
 .\" Mixture of short (flag) options and long options
-.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP " [[=| ]\fIvalue\fP]]..." [url]
+.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP "[[=| ]\fIvalue\fP]]..." " " "[url]"
 .PP
 Operands and options may be intermixed.  They will be reordered.
 .PP
@@ -141,7 +141,7 @@ Public key file to use.
 Certificate file to use.
 .sp
 .TP
-.BR \-8 ", " -\-pkcs8
+.BR \-8 ", " \-\-pkcs8
 Use PKCS #8 format for private keys.
 .sp
 .TP
@@ -161,8 +161,8 @@ The \fIno\-inder\fP form will disable the option.
 .sp
 Use DER/RAW format for input certificates and private keys.
 .TP
-.BR \-\-inder
-This is an alias for the inder option.
+.BR \-\-inraw
+This is an alias for the \fI--inder\fR option.
 .TP
 .BR \-\-provider "=\fIfile\fP"
 Specify the PKCS #11 provider library.
@@ -216,6 +216,10 @@ Successful program execution.
 .TP
 .BR 1 " (EXIT_FAILURE)"
 The operation failed or the command syntax was not valid.
+.TP
+.BR 70 " (EX_SOFTWARE)"
+libopts had an internal operational error.  Please report
+it to autogen-users@lists.sourceforge.net.  Thank you.
 .SH "SEE ALSO"
     certtool (1)
 .SH "AUTHORS"
index 2d73482..ba95851 100644 (file)
@@ -1,8 +1,8 @@
-.TH psktool 1 "03 Jul 2012" "3.0.21" "User Commands"
+.TH psktool 1 "01 Jun 2013" "3.0.30" "User Commands"
 .\"
 .\"  DO NOT EDIT THIS FILE   (psk-args.man)
-.\"  
-.\"  It has been AutoGen-ed  July  3, 2012 at 12:05:56 AM by AutoGen 5.16
+.\"
+.\"  It has been AutoGen-ed  June  1, 2013 at 01:07:22 PM by AutoGen 5.17.3
 .\"  From the definitions    psk-args.def.tmp
 .\"  and the template file   agman-cmd.tpl
 .\"
@@ -11,7 +11,7 @@ psktool \- GnuTLS PSK tool
 .SH SYNOPSIS
 .B psktool
 .\" Mixture of short (flag) options and long options
-.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP " [[=| ]\fIvalue\fP]]..."
+.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP "[[=| ]\fIvalue\fP]]..."
 .PP
 All arguments must be options.
 .PP
@@ -87,6 +87,10 @@ Successful program execution.
 .TP
 .BR 1 " (EXIT_FAILURE)"
 The operation failed or the command syntax was not valid.
+.TP
+.BR 70 " (EX_SOFTWARE)"
+libopts had an internal operational error.  Please report
+it to autogen-users@lists.sourceforge.net.  Thank you.
 .SH "SEE ALSO"
     gnutls\-cli\-debug (1), gnutls\-serv (1), srptool (1), certtool (1)
 .SH "AUTHORS"
index b47b419..4adbec4 100644 (file)
@@ -1,8 +1,8 @@
-.TH srptool 1 "03 Jul 2012" "3.0.21" "User Commands"
+.TH srptool 1 "01 Jun 2013" "3.0.30" "User Commands"
 .\"
 .\"  DO NOT EDIT THIS FILE   (srptool-args.man)
-.\"  
-.\"  It has been AutoGen-ed  July  3, 2012 at 12:06:02 AM by AutoGen 5.16
+.\"
+.\"  It has been AutoGen-ed  June  1, 2013 at 01:07:28 PM by AutoGen 5.17.3
 .\"  From the definitions    srptool-args.def.tmp
 .\"  and the template file   agman-cmd.tpl
 .\"
@@ -11,7 +11,7 @@ srptool \- GnuTLS SRP tool
 .SH SYNOPSIS
 .B srptool
 .\" Mixture of short (flag) options and long options
-.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP " [[=| ]\fIvalue\fP]]..."
+.RB [ \-\fIflag\fP " [\fIvalue\fP]]... [" \-\-\fIopt\-name\fP "[[=| ]\fIvalue\fP]]..."
 .PP
 All arguments must be options.
 .PP
@@ -37,7 +37,7 @@ in the range  0 through 9999
 .sp
 Specifies the debug level.
 .TP
-.BR \-i ", " -\-index
+.BR \-i ", " \-\-index
 specify the index of the group parameters in tpasswd.conf to use..
 .sp
 .TP
@@ -117,6 +117,10 @@ Successful program execution.
 .TP
 .BR 1 " (EXIT_FAILURE)"
 The operation failed or the command syntax was not valid.
+.TP
+.BR 70 " (EX_SOFTWARE)"
+libopts had an internal operational error.  Please report
+it to autogen-users@lists.sourceforge.net.  Thank you.
 .SH "SEE ALSO"
     gnutls\-cli\-debug (1), gnutls\-serv (1), srptool (1), psktool (1), certtool (1)
 .SH "AUTHORS"
index 61573e4..573ee9b 100644 (file)
@@ -262,6 +262,22 @@ earlier calls.
 negative error code is returned.
 @end deftypefun
 
+@subheading gnutls_ocsp_resp_check_crt
+@anchor{gnutls_ocsp_resp_check_crt}
+@deftypefun {int} {gnutls_ocsp_resp_check_crt} (gnutls_ocsp_resp_t @var{resp}, unsigned int @var{indx}, gnutls_x509_crt_t @var{crt})
+@var{resp}: should contain a @code{gnutls_ocsp_resp_t}  structure
+
+@var{indx}: Specifies response number to get. Use (0) to get the first one.
+
+@var{crt}: The certificate to check
+
+This function will check whether the OCSP response
+is about the provided certificate.
+
+@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
+negative error code is returned.  
+@end deftypefun
+
 @subheading gnutls_ocsp_resp_deinit
 @anchor{gnutls_ocsp_resp_deinit}
 @deftypefun {void} {gnutls_ocsp_resp_deinit} (gnutls_ocsp_resp_t @var{resp})
@@ -442,7 +458,7 @@ on error.
 @deftypefun {int} {gnutls_ocsp_resp_get_single} (gnutls_ocsp_resp_t @var{resp}, unsigned @var{indx}, gnutls_digest_algorithm_t * @var{digest}, gnutls_datum_t * @var{issuer_name_hash}, gnutls_datum_t * @var{issuer_key_hash}, gnutls_datum_t * @var{serial_number}, unsigned int * @var{cert_status}, time_t * @var{this_update}, time_t * @var{next_update}, time_t * @var{revocation_time}, unsigned int * @var{revocation_reason})
 @var{resp}: should contain a @code{gnutls_ocsp_resp_t}  structure
 
-@var{indx}: Specifies which extension OID to get. Use (0) to get the first one.
+@var{indx}: Specifies response number to get. Use (0) to get the first one.
 
 @var{digest}: output variable with @code{gnutls_digest_algorithm_t}  hash algorithm
 
index 116bb9c..ad70afe 100644 (file)
@@ -176,7 +176,7 @@ This function will deinitialize a key structure.
 
 @var{format}: One of gnutls_openpgp_crt_fmt_t elements.
 
-@var{output_data}: will contain the key base64 encoded or raw
+@var{output_data}: will contain the raw or base64 encoded key
 
 @var{output_data_size}: holds the size of output_data (and will
 be replaced by the actual size of parameters)
@@ -195,14 +195,10 @@ If the buffer provided is not long enough to hold the output, then
 
 @var{keyid}: the struct to save the keyid.
 
-@var{flag}: Non (0) indicates that a valid subkey is always returned.
+@var{flag}: Non-zero indicates that a valid subkey is always returned.
 
 Returns the 64-bit keyID of the first valid OpenPGP subkey marked
-for authentication.  If flag is non (0) and no authentication
-subkey exists, then a valid subkey will be returned even if it is
-not marked for authentication.
-Returns the 64-bit keyID of the first valid OpenPGP subkey marked
-for authentication.  If flag is non (0) and no authentication
+for authentication.  If flag is non-zero and no authentication
 subkey exists, then a valid subkey will be returned even if it is
 not marked for authentication.
 
@@ -632,6 +628,9 @@ The output  @code{out} needs to be deallocate using @code{gnutls_free()} .
 This allows setting a preferred key id for the given certificate.
 This key will be used by functions that involve key handling.
 
+If the provided  @code{keyid} is @code{NULL}  then the master key is
+set as preferred.
+
 @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned,
 otherwise a negative error code is returned.
 @end deftypefun
@@ -1131,7 +1130,11 @@ this private key.
 This allows setting a preferred key id for the given certificate.
 This key will be used by functions that involve key handling.
 
-@strong{Returns:} On success, 0 is returned, or an error code.
+If the provided  @code{keyid} is @code{NULL}  then the master key is
+set as preferred.
+
+@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned,
+otherwise a negative error code is returned.
 @end deftypefun
 
 @subheading gnutls_openpgp_set_recv_key_function
@@ -1144,5 +1147,7 @@ This key will be used by functions that involve key handling.
 This funtion will set a key retrieval function for OpenPGP keys. This
 callback is only useful in server side, and will be used if the peer
 sent a key fingerprint instead of a full key.
+
+The retrieved key must be allocated using @code{gnutls_malloc()} .
 @end deftypefun
 
index 788478e..646fa97 100644 (file)
@@ -272,29 +272,6 @@ negative error value.
 @strong{Since:} 2.12.0
 @end deftypefun
 
-@subheading gnutls_pkcs11_obj_list_import_url2
-@anchor{gnutls_pkcs11_obj_list_import_url2}
-@deftypefun {int} {gnutls_pkcs11_obj_list_import_url2} (gnutls_pkcs11_obj_t ** @var{p_list}, unsigned int * @var{n_list}, const char * @var{url}, gnutls_pkcs11_obj_attr_t @var{attrs}, unsigned int @var{flags})
-@var{p_list}: An uninitialized object list (may be NULL)
-
-@var{n_list}: It will contain the size of the list.
-
-@var{url}: A PKCS 11 url identifying a set of objects
-
-@var{attrs}: Attributes of type @code{gnutls_pkcs11_obj_attr_t}  that can be used to limit output
-
-@var{flags}: One of GNUTLS_PKCS11_OBJ_* flags
-
-This function will initialize and set values to an object list
-by using all objects identified by the PKCS 11 URL. The output
-is stored in  @code{p_list} , which will be initialized.
-
-@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
-negative error value.
-
-@strong{Since:} 3.1
-@end deftypefun
-
 @subheading gnutls_pkcs11_privkey_deinit
 @anchor{gnutls_pkcs11_privkey_deinit}
 @deftypefun {void} {gnutls_pkcs11_privkey_deinit} (gnutls_pkcs11_privkey_t @var{key})
index 0e9c9db..853b0ef 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # Everything below here is generic #
 ####################################
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -58,14 +75,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -180,6 +200,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -498,6 +523,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -783,7 +809,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -857,6 +882,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -992,8 +1018,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1012,7 +1038,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1243,6 +1268,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
diff --git a/doc/reference/html/api-index-2-10-0.html b/doc/reference/html/api-index-2-10-0.html
new file mode 100644 (file)
index 0000000..739745d
--- /dev/null
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 2.10.0</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="api-index-2-8-0.html" title="Index of new symbols in 2.8.0">
+<link rel="next" href="api-index-2-12-0.html" title="Index of new symbols in 2.12.0">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-2-8-0.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="api-index-2-12-0.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-2-10-0"></a>Index of new symbols in 2.10.0</h2></div></div></div>
+<div class="index"><div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt>gnutls_certificate_set_verify_function, <a class="indexterm" href="gnutls-gnutls.html#gnutls-certificate-set-verify-function">gnutls_certificate_set_verify_function ()</a>
+</dt>
+<dt>gnutls_cipher_decrypt, <a class="indexterm" href="gnutls-crypto.html#gnutls-cipher-decrypt">gnutls_cipher_decrypt ()</a>
+</dt>
+<dt>gnutls_cipher_deinit, <a class="indexterm" href="gnutls-crypto.html#gnutls-cipher-deinit">gnutls_cipher_deinit ()</a>
+</dt>
+<dt>gnutls_cipher_encrypt, <a class="indexterm" href="gnutls-crypto.html#gnutls-cipher-encrypt">gnutls_cipher_encrypt ()</a>
+</dt>
+<dt>gnutls_cipher_get_block_size, <a class="indexterm" href="gnutls-crypto.html#gnutls-cipher-get-block-size">gnutls_cipher_get_block_size ()</a>
+</dt>
+<dt>gnutls_cipher_init, <a class="indexterm" href="gnutls-crypto.html#gnutls-cipher-init">gnutls_cipher_init ()</a>
+</dt>
+<dt>gnutls_hash, <a class="indexterm" href="gnutls-crypto.html#gnutls-hash">gnutls_hash ()</a>
+</dt>
+<dt>gnutls_hash_deinit, <a class="indexterm" href="gnutls-crypto.html#gnutls-hash-deinit">gnutls_hash_deinit ()</a>
+</dt>
+<dt>gnutls_hash_fast, <a class="indexterm" href="gnutls-crypto.html#gnutls-hash-fast">gnutls_hash_fast ()</a>
+</dt>
+<dt>gnutls_hash_get_len, <a class="indexterm" href="gnutls-crypto.html#gnutls-hash-get-len">gnutls_hash_get_len ()</a>
+</dt>
+<dt>gnutls_hash_init, <a class="indexterm" href="gnutls-crypto.html#gnutls-hash-init">gnutls_hash_init ()</a>
+</dt>
+<dt>gnutls_hash_output, <a class="indexterm" href="gnutls-crypto.html#gnutls-hash-output">gnutls_hash_output ()</a>
+</dt>
+<dt>gnutls_hmac, <a class="indexterm" href="gnutls-crypto.html#gnutls-hmac">gnutls_hmac ()</a>
+</dt>
+<dt>gnutls_hmac_deinit, <a class="indexterm" href="gnutls-crypto.html#gnutls-hmac-deinit">gnutls_hmac_deinit ()</a>
+</dt>
+<dt>gnutls_hmac_fast, <a class="indexterm" href="gnutls-crypto.html#gnutls-hmac-fast">gnutls_hmac_fast ()</a>
+</dt>
+<dt>gnutls_hmac_get_len, <a class="indexterm" href="gnutls-crypto.html#gnutls-hmac-get-len">gnutls_hmac_get_len ()</a>
+</dt>
+<dt>gnutls_hmac_init, <a class="indexterm" href="gnutls-crypto.html#gnutls-hmac-init">gnutls_hmac_init ()</a>
+</dt>
+<dt>gnutls_hmac_output, <a class="indexterm" href="gnutls-crypto.html#gnutls-hmac-output">gnutls_hmac_output ()</a>
+</dt>
+<dt>gnutls_safe_renegotiation_status, <a class="indexterm" href="gnutls-gnutls.html#gnutls-safe-renegotiation-status">gnutls_safe_renegotiation_status ()</a>
+</dt>
+<dt>gnutls_session_ticket_enable_client, <a class="indexterm" href="gnutls-gnutls.html#gnutls-session-ticket-enable-client">gnutls_session_ticket_enable_client ()</a>
+</dt>
+<dt>gnutls_session_ticket_enable_server, <a class="indexterm" href="gnutls-gnutls.html#gnutls-session-ticket-enable-server">gnutls_session_ticket_enable_server ()</a>
+</dt>
+<dt>gnutls_session_ticket_key_generate, <a class="indexterm" href="gnutls-gnutls.html#gnutls-session-ticket-key-generate">gnutls_session_ticket_key_generate ()</a>
+</dt>
+<dt>gnutls_sign_algorithm_get_requested, <a class="indexterm" href="gnutls-gnutls.html#gnutls-sign-algorithm-get-requested">gnutls_sign_algorithm_get_requested ()</a>
+</dt>
+<dt>gnutls_x509_crt_get_issuer_alt_name, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name">gnutls_x509_crt_get_issuer_alt_name ()</a>
+</dt>
+<dt>gnutls_x509_crt_get_issuer_alt_name2, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name2">gnutls_x509_crt_get_issuer_alt_name2 ()</a>
+</dt>
+<dt>gnutls_x509_crt_get_issuer_alt_othername_oid, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-othername-oid">gnutls_x509_crt_get_issuer_alt_othername_oid ()</a>
+</dt>
+</dl>
+</div></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/api-index-2-12-0.html b/doc/reference/html/api-index-2-12-0.html
new file mode 100644 (file)
index 0000000..55edce3
--- /dev/null
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 2.12.0</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="api-index-2-10-0.html" title="Index of new symbols in 2.10.0">
+<link rel="next" href="api-index-3-0.html" title="Index of new symbols in 3.0.x">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-2-10-0.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="api-index-3-0.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-2-12-0"></a>Index of new symbols in 2.12.0</h2></div></div></div>
+<div class="index"><div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt>gnutls_cipher_decrypt2, <a class="indexterm" href="gnutls-crypto.html#gnutls-cipher-decrypt2">gnutls_cipher_decrypt2 ()</a>
+</dt>
+<dt>gnutls_cipher_encrypt2, <a class="indexterm" href="gnutls-crypto.html#gnutls-cipher-encrypt2">gnutls_cipher_encrypt2 ()</a>
+</dt>
+<dt>gnutls_global_set_mutex, <a class="indexterm" href="gnutls-gnutls.html#gnutls-global-set-mutex">gnutls_global_set_mutex ()</a>
+</dt>
+<dt>gnutls_pkcs11_add_provider, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-add-provider">gnutls_pkcs11_add_provider ()</a>
+</dt>
+<dt>gnutls_pkcs11_copy_x509_crt, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt">gnutls_pkcs11_copy_x509_crt ()</a>
+</dt>
+<dt>gnutls_pkcs11_copy_x509_privkey, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey">gnutls_pkcs11_copy_x509_privkey ()</a>
+</dt>
+<dt>gnutls_pkcs11_deinit, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-deinit">gnutls_pkcs11_deinit ()</a>
+</dt>
+<dt>gnutls_pkcs11_delete_url, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-delete-url">gnutls_pkcs11_delete_url ()</a>
+</dt>
+<dt>gnutls_pkcs11_init, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-init">gnutls_pkcs11_init ()</a>
+</dt>
+<dt>gnutls_pkcs11_obj_deinit, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit">gnutls_pkcs11_obj_deinit ()</a>
+</dt>
+<dt>gnutls_pkcs11_obj_export, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export">gnutls_pkcs11_obj_export ()</a>
+</dt>
+<dt>gnutls_pkcs11_obj_export_url, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url">gnutls_pkcs11_obj_export_url ()</a>
+</dt>
+<dt>gnutls_pkcs11_obj_get_info, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info">gnutls_pkcs11_obj_get_info ()</a>
+</dt>
+<dt>gnutls_pkcs11_obj_get_type, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-type">gnutls_pkcs11_obj_get_type ()</a>
+</dt>
+<dt>gnutls_pkcs11_obj_import_url, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url">gnutls_pkcs11_obj_import_url ()</a>
+</dt>
+<dt>gnutls_pkcs11_obj_init, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-init">gnutls_pkcs11_obj_init ()</a>
+</dt>
+<dt>gnutls_pkcs11_obj_list_import_url, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url">gnutls_pkcs11_obj_list_import_url ()</a>
+</dt>
+<dt>gnutls_pkcs11_pin_callback_t, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t">gnutls_pkcs11_pin_callback_t ()</a>
+</dt>
+<dt>gnutls_pkcs11_set_pin_function, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function">gnutls_pkcs11_set_pin_function ()</a>
+</dt>
+<dt>gnutls_pkcs11_set_token_function, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function">gnutls_pkcs11_set_token_function ()</a>
+</dt>
+<dt>gnutls_pkcs11_token_callback_t, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t">gnutls_pkcs11_token_callback_t ()</a>
+</dt>
+<dt>gnutls_pkcs11_token_get_flags, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags">gnutls_pkcs11_token_get_flags ()</a>
+</dt>
+<dt>gnutls_pkcs11_token_get_info, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-info">gnutls_pkcs11_token_get_info ()</a>
+</dt>
+<dt>gnutls_pkcs11_token_get_url, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-url">gnutls_pkcs11_token_get_url ()</a>
+</dt>
+<dt>gnutls_pkcs11_type_get_name, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-pkcs11-type-get-name">gnutls_pkcs11_type_get_name ()</a>
+</dt>
+<dt>gnutls_pk_bits_to_sec_param, <a class="indexterm" href="gnutls-gnutls.html#gnutls-pk-bits-to-sec-param">gnutls_pk_bits_to_sec_param ()</a>
+</dt>
+<dt>gnutls_privkey_decrypt_data, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-decrypt-data">gnutls_privkey_decrypt_data ()</a>
+</dt>
+<dt>gnutls_privkey_deinit, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-deinit">gnutls_privkey_deinit ()</a>
+</dt>
+<dt>gnutls_privkey_get_pk_algorithm, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-get-pk-algorithm">gnutls_privkey_get_pk_algorithm ()</a>
+</dt>
+<dt>gnutls_privkey_get_type, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-get-type">gnutls_privkey_get_type ()</a>
+</dt>
+<dt>gnutls_privkey_import_openpgp, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-import-openpgp">gnutls_privkey_import_openpgp ()</a>
+</dt>
+<dt>gnutls_privkey_import_pkcs11, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-import-pkcs11">gnutls_privkey_import_pkcs11 ()</a>
+</dt>
+<dt>gnutls_privkey_import_x509, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-import-x509">gnutls_privkey_import_x509 ()</a>
+</dt>
+<dt>gnutls_privkey_init, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-init">gnutls_privkey_init ()</a>
+</dt>
+<dt>gnutls_privkey_sign_data, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-sign-data">gnutls_privkey_sign_data ()</a>
+</dt>
+<dt>gnutls_privkey_sign_hash, <a class="indexterm" href="gnutls-abstract.html#gnutls-privkey-sign-hash">gnutls_privkey_sign_hash ()</a>
+</dt>
+<dt>gnutls_pubkey_deinit, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-deinit">gnutls_pubkey_deinit ()</a>
+</dt>
+<dt>gnutls_pubkey_export, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-export">gnutls_pubkey_export ()</a>
+</dt>
+<dt>gnutls_pubkey_get_key_id, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-get-key-id">gnutls_pubkey_get_key_id ()</a>
+</dt>
+<dt>gnutls_pubkey_get_key_usage, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-get-key-usage">gnutls_pubkey_get_key_usage ()</a>
+</dt>
+<dt>gnutls_pubkey_get_pk_algorithm, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm">gnutls_pubkey_get_pk_algorithm ()</a>
+</dt>
+<dt>gnutls_pubkey_get_pk_dsa_raw, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw">gnutls_pubkey_get_pk_dsa_raw ()</a>
+</dt>
+<dt>gnutls_pubkey_get_pk_rsa_raw, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw">gnutls_pubkey_get_pk_rsa_raw ()</a>
+</dt>
+<dt>gnutls_pubkey_get_preferred_hash_algorithm, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm">gnutls_pubkey_get_preferred_hash_algorithm ()</a>
+</dt>
+<dt>gnutls_pubkey_get_verify_algorithm, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-get-verify-algorithm">gnutls_pubkey_get_verify_algorithm ()</a>
+</dt>
+<dt>gnutls_pubkey_import, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-import">gnutls_pubkey_import ()</a>
+</dt>
+<dt>gnutls_pubkey_import_dsa_raw, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-import-dsa-raw">gnutls_pubkey_import_dsa_raw ()</a>
+</dt>
+<dt>gnutls_pubkey_import_openpgp, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-import-openpgp">gnutls_pubkey_import_openpgp ()</a>
+</dt>
+<dt>gnutls_pubkey_import_pkcs11, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11">gnutls_pubkey_import_pkcs11 ()</a>
+</dt>
+<dt>gnutls_pubkey_import_pkcs11_url, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url">gnutls_pubkey_import_pkcs11_url ()</a>
+</dt>
+<dt>gnutls_pubkey_import_rsa_raw, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-import-rsa-raw">gnutls_pubkey_import_rsa_raw ()</a>
+</dt>
+<dt>gnutls_pubkey_import_x509, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-import-x509">gnutls_pubkey_import_x509 ()</a>
+</dt>
+<dt>gnutls_pubkey_init, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-init">gnutls_pubkey_init ()</a>
+</dt>
+<dt>gnutls_pubkey_set_key_usage, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-set-key-usage">gnutls_pubkey_set_key_usage ()</a>
+</dt>
+<dt>gnutls_rnd, <a class="indexterm" href="gnutls-crypto.html#gnutls-rnd">gnutls_rnd ()</a>
+</dt>
+<dt>gnutls_sec_param_get_name, <a class="indexterm" href="gnutls-gnutls.html#gnutls-sec-param-get-name">gnutls_sec_param_get_name ()</a>
+</dt>
+<dt>gnutls_sec_param_to_pk_bits, <a class="indexterm" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits">gnutls_sec_param_to_pk_bits ()</a>
+</dt>
+<dt>gnutls_transport_set_errno_function, <a class="indexterm" href="gnutls-gnutls.html#gnutls-transport-set-errno-function">gnutls_transport_set_errno_function ()</a>
+</dt>
+<dt>gnutls_x509_crq_privkey_sign, <a class="indexterm" href="gnutls-abstract.html#gnutls-x509-crq-privkey-sign">gnutls_x509_crq_privkey_sign ()</a>
+</dt>
+<dt>gnutls_x509_crq_set_pubkey, <a class="indexterm" href="gnutls-abstract.html#gnutls-x509-crq-set-pubkey">gnutls_x509_crq_set_pubkey ()</a>
+</dt>
+<dt>gnutls_x509_crt_import_pkcs11, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11">gnutls_x509_crt_import_pkcs11 ()</a>
+</dt>
+<dt>gnutls_x509_crt_import_pkcs11_url, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11-url">gnutls_x509_crt_import_pkcs11_url ()</a>
+</dt>
+<dt>gnutls_x509_crt_list_import_pkcs11, <a class="indexterm" href="gnutls-pkcs11.html#gnutls-x509-crt-list-import-pkcs11">gnutls_x509_crt_list_import_pkcs11 ()</a>
+</dt>
+<dt>gnutls_x509_crt_set_pubkey, <a class="indexterm" href="gnutls-abstract.html#gnutls-x509-crt-set-pubkey">gnutls_x509_crt_set_pubkey ()</a>
+</dt>
+<dt>gnutls_x509_privkey_export_rsa_raw2, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw2">gnutls_x509_privkey_export_rsa_raw2 ()</a>
+</dt>
+</dl>
+</div></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/api-index-2-4-0.html b/doc/reference/html/api-index-2-4-0.html
new file mode 100644 (file)
index 0000000..94386eb
--- /dev/null
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 2.4.0</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="api-index-deprecated.html" title="Index of deprecated symbols">
+<link rel="next" href="api-index-2-6-0.html" title="Index of new symbols in 2.6.0">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-deprecated.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="api-index-2-6-0.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-2-4-0"></a>Index of new symbols in 2.4.0</h2></div></div></div>
+<div class="index"><div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt>gnutls_certificate_set_openpgp_key_file2, <a class="indexterm" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file2">gnutls_certificate_set_openpgp_key_file2 ()</a>
+</dt>
+<dt>gnutls_certificate_set_openpgp_key_mem2, <a class="indexterm" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem2">gnutls_certificate_set_openpgp_key_mem2 ()</a>
+</dt>
+<dt>gnutls_certificate_set_x509_crl, <a class="indexterm" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl">gnutls_certificate_set_x509_crl ()</a>
+</dt>
+<dt>gnutls_certificate_set_x509_key, <a class="indexterm" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key">gnutls_certificate_set_x509_key ()</a>
+</dt>
+<dt>gnutls_certificate_set_x509_trust, <a class="indexterm" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust">gnutls_certificate_set_x509_trust ()</a>
+</dt>
+<dt>gnutls_hex2bin, <a class="indexterm" href="gnutls-gnutls.html#gnutls-hex2bin">gnutls_hex2bin ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_key_id, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-id">gnutls_openpgp_crt_get_key_id ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_pk_dsa_raw, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw">gnutls_openpgp_crt_get_pk_dsa_raw ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_pk_rsa_raw, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw">gnutls_openpgp_crt_get_pk_rsa_raw ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_revoked_status, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-revoked-status">gnutls_openpgp_crt_get_revoked_status ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_count, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-count">gnutls_openpgp_crt_get_subkey_count ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_creation_time, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time">gnutls_openpgp_crt_get_subkey_creation_time ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_expiration_time, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time">gnutls_openpgp_crt_get_subkey_expiration_time ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_fingerprint, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint">gnutls_openpgp_crt_get_subkey_fingerprint ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_idx, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-idx">gnutls_openpgp_crt_get_subkey_idx ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_pk_algorithm, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm">gnutls_openpgp_crt_get_subkey_pk_algorithm ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_pk_dsa_raw, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw">gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_pk_rsa_raw, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw">gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_revoked_status, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status">gnutls_openpgp_crt_get_subkey_revoked_status ()</a>
+</dt>
+<dt>gnutls_openpgp_crt_get_subkey_usage, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-usage">gnutls_openpgp_crt_get_subkey_usage ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_export, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export">gnutls_openpgp_privkey_export ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_export_dsa_raw, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw">gnutls_openpgp_privkey_export_dsa_raw ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_export_rsa_raw, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw">gnutls_openpgp_privkey_export_rsa_raw ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_export_subkey_dsa_raw, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw">gnutls_openpgp_privkey_export_subkey_dsa_raw ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_export_subkey_rsa_raw, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw">gnutls_openpgp_privkey_export_subkey_rsa_raw ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_fingerprint, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-fingerprint">gnutls_openpgp_privkey_get_fingerprint ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_key_id, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-key-id">gnutls_openpgp_privkey_get_key_id ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_pk_algorithm, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm">gnutls_openpgp_privkey_get_pk_algorithm ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_revoked_status, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-revoked-status">gnutls_openpgp_privkey_get_revoked_status ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_subkey_count, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-count">gnutls_openpgp_privkey_get_subkey_count ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_subkey_creation_time, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time">gnutls_openpgp_privkey_get_subkey_creation_time ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_subkey_expiration_time, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time">gnutls_openpgp_privkey_get_subkey_expiration_time ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_subkey_fingerprint, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint">gnutls_openpgp_privkey_get_subkey_fingerprint ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_subkey_id, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-id">gnutls_openpgp_privkey_get_subkey_id ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_subkey_idx, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx">gnutls_openpgp_privkey_get_subkey_idx ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_subkey_pk_algorithm, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm">gnutls_openpgp_privkey_get_subkey_pk_algorithm ()</a>
+</dt>
+<dt>gnutls_openpgp_privkey_get_subkey_revoked_status, <a class="indexterm" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status">gnutls_openpgp_privkey_get_subkey_revoked_status ()</a>
+</dt>
+<dt>gnutls_psk_client_get_hint, <a class="indexterm" href="gnutls-gnutls.html#gnutls-psk-client-get-hint">gnutls_psk_client_get_hint ()</a>
+</dt>
+<dt>gnutls_psk_set_server_credentials_hint, <a class="indexterm" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-hint">gnutls_psk_set_server_credentials_hint ()</a>
+</dt>
+<dt>gnutls_x509_dn_deinit, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-dn-deinit">gnutls_x509_dn_deinit ()</a>
+</dt>
+<dt>gnutls_x509_dn_import, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-dn-import">gnutls_x509_dn_import ()</a>
+</dt>
+<dt>gnutls_x509_dn_init, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-dn-init">gnutls_x509_dn_init ()</a>
+</dt>
+<dt>gnutls_x509_rdn_get_oid, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-rdn-get-oid">gnutls_x509_rdn_get_oid ()</a>
+</dt>
+</dl>
+</div></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/api-index-2-6-0.html b/doc/reference/html/api-index-2-6-0.html
new file mode 100644 (file)
index 0000000..3a13aa6
--- /dev/null
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 2.6.0</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="api-index-2-4-0.html" title="Index of new symbols in 2.4.0">
+<link rel="next" href="api-index-2-8-0.html" title="Index of new symbols in 2.8.0">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-2-4-0.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="api-index-2-8-0.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-2-6-0"></a>Index of new symbols in 2.6.0</h2></div></div></div>
+<div class="index"><div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt>gnutls_pk_get_id, <a class="indexterm" href="gnutls-gnutls.html#gnutls-pk-get-id">gnutls_pk_get_id ()</a>
+</dt>
+<dt>gnutls_pk_get_name, <a class="indexterm" href="gnutls-gnutls.html#gnutls-pk-get-name">gnutls_pk_get_name ()</a>
+</dt>
+<dt>gnutls_pk_list, <a class="indexterm" href="gnutls-gnutls.html#gnutls-pk-list">gnutls_pk_list ()</a>
+</dt>
+<dt>gnutls_srp_set_prime_bits, <a class="indexterm" href="gnutls-gnutls.html#gnutls-srp-set-prime-bits">gnutls_srp_set_prime_bits ()</a>
+</dt>
+<dt>gnutls_strerror_name, <a class="indexterm" href="gnutls-gnutls.html#gnutls-strerror-name">gnutls_strerror_name ()</a>
+</dt>
+<dt>gnutls_x509_crq_set_key_rsa_raw, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-set-key-rsa-raw">gnutls_x509_crq_set_key_rsa_raw ()</a>
+</dt>
+<dt>gnutls_x509_crt_set_crl_dist_points2, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points2">gnutls_x509_crt_set_crl_dist_points2 ()</a>
+</dt>
+<dt>gnutls_x509_crt_set_subject_alt_name, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name">gnutls_x509_crt_set_subject_alt_name ()</a>
+</dt>
+</dl>
+</div></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/api-index-2-8-0.html b/doc/reference/html/api-index-2-8-0.html
new file mode 100644 (file)
index 0000000..d5b5126
--- /dev/null
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 2.8.0</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="api-index-2-6-0.html" title="Index of new symbols in 2.6.0">
+<link rel="next" href="api-index-2-10-0.html" title="Index of new symbols in 2.10.0">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-2-6-0.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="api-index-2-10-0.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-2-8-0"></a>Index of new symbols in 2.8.0</h2></div></div></div>
+<div class="index"><div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt>gnutls_certificate_set_x509_simple_pkcs12_mem, <a class="indexterm" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem">gnutls_certificate_set_x509_simple_pkcs12_mem ()</a>
+</dt>
+<dt>gnutls_x509_crl_get_authority_key_id, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crl-get-authority-key-id">gnutls_x509_crl_get_authority_key_id ()</a>
+</dt>
+<dt>gnutls_x509_crl_get_extension_data, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crl-get-extension-data">gnutls_x509_crl_get_extension_data ()</a>
+</dt>
+<dt>gnutls_x509_crl_get_extension_info, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crl-get-extension-info">gnutls_x509_crl_get_extension_info ()</a>
+</dt>
+<dt>gnutls_x509_crl_get_extension_oid, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crl-get-extension-oid">gnutls_x509_crl_get_extension_oid ()</a>
+</dt>
+<dt>gnutls_x509_crl_get_number, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crl-get-number">gnutls_x509_crl_get_number ()</a>
+</dt>
+<dt>gnutls_x509_crl_set_authority_key_id, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crl-set-authority-key-id">gnutls_x509_crl_set_authority_key_id ()</a>
+</dt>
+<dt>gnutls_x509_crl_set_number, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crl-set-number">gnutls_x509_crl_set_number ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_attribute_data, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-data">gnutls_x509_crq_get_attribute_data ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_attribute_info, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-info">gnutls_x509_crq_get_attribute_info ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_basic_constraints, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-basic-constraints">gnutls_x509_crq_get_basic_constraints ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_extension_by_oid, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid">gnutls_x509_crq_get_extension_by_oid ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_extension_data, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-extension-data">gnutls_x509_crq_get_extension_data ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_extension_info, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-extension-info">gnutls_x509_crq_get_extension_info ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_key_id, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-key-id">gnutls_x509_crq_get_key_id ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_key_purpose_oid, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-key-purpose-oid">gnutls_x509_crq_get_key_purpose_oid ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_key_rsa_raw, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-key-rsa-raw">gnutls_x509_crq_get_key_rsa_raw ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_key_usage, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-key-usage">gnutls_x509_crq_get_key_usage ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_subject_alt_name, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name">gnutls_x509_crq_get_subject_alt_name ()</a>
+</dt>
+<dt>gnutls_x509_crq_get_subject_alt_othername_oid, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-othername-oid">gnutls_x509_crq_get_subject_alt_othername_oid ()</a>
+</dt>
+<dt>gnutls_x509_crq_print, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-print">gnutls_x509_crq_print ()</a>
+</dt>
+<dt>gnutls_x509_crq_set_basic_constraints, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-set-basic-constraints">gnutls_x509_crq_set_basic_constraints ()</a>
+</dt>
+<dt>gnutls_x509_crq_set_key_purpose_oid, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-set-key-purpose-oid">gnutls_x509_crq_set_key_purpose_oid ()</a>
+</dt>
+<dt>gnutls_x509_crq_set_key_usage, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-set-key-usage">gnutls_x509_crq_set_key_usage ()</a>
+</dt>
+<dt>gnutls_x509_crq_set_subject_alt_name, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crq-set-subject-alt-name">gnutls_x509_crq_set_subject_alt_name ()</a>
+</dt>
+<dt>gnutls_x509_crt_set_crq_extensions, <a class="indexterm" href="gnutls-x509.html#gnutls-x509-crt-set-crq-extensions">gnutls_x509_crt_set_crq_extensions ()</a>
+</dt>
+</dl>
+</div></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/api-index-3-0.html b/doc/reference/html/api-index-3-0.html
new file mode 100644 (file)
index 0000000..8bf18fa
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 3.0.x</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="api-index-2-12-0.html" title="Index of new symbols in 2.12.0">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-2-12-0.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td> </td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-3-0"></a>Index of new symbols in 3.0.x</h2></div></div></div>
+<div class="index"><div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt>gnutls_certificate_set_retrieve_function, <a class="indexterm" href="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function">gnutls_certificate_set_retrieve_function ()</a>
+</dt>
+<dt>gnutls_pubkey_verify_hash, <a class="indexterm" href="gnutls-abstract.html#gnutls-pubkey-verify-hash">gnutls_pubkey_verify_hash ()</a>
+</dt>
+</dl>
+</div></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/api-index-deprecated.html b/doc/reference/html/api-index-deprecated.html
new file mode 100644 (file)
index 0000000..0f06137
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of deprecated symbols</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="api-index-full.html" title="API Index">
+<link rel="next" href="api-index-2-4-0.html" title="Index of new symbols in 2.4.0">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="api-index-2-4-0.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-deprecated"></a>Index of deprecated symbols</h2></div></div></div>
+<div class="index"><div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt>gnutls_certificate_activation_time_peers, <a class="indexterm" href="gnutls-gnutls.html#gnutls-certificate-activation-time-peers">gnutls_certificate_activation_time_peers ()</a>
+</dt>
+<dt>gnutls_certificate_expiration_time_peers, <a class="indexterm" href="gnutls-gnutls.html#gnutls-certificate-expiration-time-peers">gnutls_certificate_expiration_time_peers ()</a>
+</dt>
+</dl>
+</div></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/api-index-full.html b/doc/reference/html/api-index-full.html
new file mode 100644 (file)
index 0000000..cc3a031
--- /dev/null
@@ -0,0 +1,3601 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="gnutls-pkcs12.html" title="pkcs12">
+<link rel="next" href="api-index-deprecated.html" title="Index of deprecated symbols">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gnutls-pkcs12.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="api-index-deprecated.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#idxA">A</a>
+                      | 
+                   <a class="shortcut" href="#idxB">B</a>
+                      | 
+                   <a class="shortcut" href="#idxC">C</a>
+                      | 
+                   <a class="shortcut" href="#idxD">D</a>
+                      | 
+                   <a class="shortcut" href="#idxE">E</a>
+                      | 
+                   <a class="shortcut" href="#idxF">F</a>
+                      | 
+                   <a class="shortcut" href="#idxG">G</a>
+                      | 
+                   <a class="shortcut" href="#idxH">H</a>
+                      | 
+                   <a class="shortcut" href="#idxI">I</a>
+                      | 
+                   <a class="shortcut" href="#idxK">K</a>
+                      | 
+                   <a class="shortcut" href="#idxL">L</a>
+                      | 
+                   <a class="shortcut" href="#idxM">M</a>
+                      | 
+                   <a class="shortcut" href="#idxO">O</a>
+                      | 
+                   <a class="shortcut" href="#idxP">P</a>
+                      | 
+                   <a class="shortcut" href="#idxR">R</a>
+                      | 
+                   <a class="shortcut" href="#idxS">S</a>
+                      | 
+                   <a class="shortcut" href="#idxT">T</a>
+                      | 
+                   <a class="shortcut" href="#idxV">V</a>
+                      | 
+                   <a class="shortcut" href="#idxW">W</a>
+                      | 
+                   <a class="shortcut" href="#idxX">X</a>
+</td></tr>
+</table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-full"></a>API Index</h2></div></div></div>
+<a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t">gnutls_alert_description_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-get" title="gnutls_alert_get ()">gnutls_alert_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-get-name" title="gnutls_alert_get_name ()">gnutls_alert_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-level-t" title="enum gnutls_alert_level_t">gnutls_alert_level_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-send" title="gnutls_alert_send ()">gnutls_alert_send</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-send-appropriate" title="gnutls_alert_send_appropriate ()">gnutls_alert_send_appropriate</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()">gnutls_alloc_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-allocate-client-credentials" title="gnutls_anon_allocate_client_credentials ()">gnutls_anon_allocate_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-allocate-server-credentials" title="gnutls_anon_allocate_server_credentials ()">gnutls_anon_allocate_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-free-client-credentials" title="gnutls_anon_free_client_credentials ()">gnutls_anon_free_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-free-server-credentials" title="gnutls_anon_free_server_credentials ()">gnutls_anon_free_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-set-params-function" title="gnutls_anon_set_params_function ()">gnutls_anon_set_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-dh-params" title="gnutls_anon_set_server_dh_params ()">gnutls_anon_set_server_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-params-function" title="gnutls_anon_set_server_params_function ()">gnutls_anon_set_server_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-auth-client-get-type" title="gnutls_auth_client_get_type ()">gnutls_auth_client_get_type</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-auth-get-type" title="gnutls_auth_get_type ()">gnutls_auth_get_type</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-auth-server-get-type" title="gnutls_auth_server_get_type ()">gnutls_auth_server_get_type</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxB"></a><h3 class="title">B</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-bye" title="gnutls_bye ()">gnutls_bye</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxC"></a><h3 class="title">C</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-calloc" title="gnutls_calloc">gnutls_calloc</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-calloc-function" title="gnutls_calloc_function ()">gnutls_calloc_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-activation-time-peers" title="gnutls_certificate_activation_time_peers ()">gnutls_certificate_activation_time_peers</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-allocate-credentials" title="gnutls_certificate_allocate_credentials ()">gnutls_certificate_allocate_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-client-get-request-status" title="gnutls_certificate_client_get_request_status ()">gnutls_certificate_client_get_request_status</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-credentials-st" title="struct gnutls_certificate_credentials_st">gnutls_certificate_credentials_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-expiration-time-peers" title="gnutls_certificate_expiration_time_peers ()">gnutls_certificate_expiration_time_peers</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-cas" title="gnutls_certificate_free_cas ()">gnutls_certificate_free_cas</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-ca-names" title="gnutls_certificate_free_ca_names ()">gnutls_certificate_free_ca_names</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-credentials" title="gnutls_certificate_free_credentials ()">gnutls_certificate_free_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-crls" title="gnutls_certificate_free_crls ()">gnutls_certificate_free_crls</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-keys" title="gnutls_certificate_free_keys ()">gnutls_certificate_free_keys</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-ours" title="gnutls_certificate_get_ours ()">gnutls_certificate_get_ours</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()">gnutls_certificate_get_peers</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-certificate-import-flags" title="enum gnutls_certificate_import_flags">gnutls_certificate_import_flags</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t">gnutls_certificate_print_formats_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-request-t" title="enum gnutls_certificate_request_t">gnutls_certificate_request_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()">gnutls_certificate_send_x509_rdn_sequence</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-server-set-request" title="gnutls_certificate_server_set_request ()">gnutls_certificate_server_set_request</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-dh-params" title="gnutls_certificate_set_dh_params ()">gnutls_certificate_set_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key" title="gnutls_certificate_set_openpgp_key ()">gnutls_certificate_set_openpgp_key</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-file" title="gnutls_certificate_set_openpgp_keyring_file ()">gnutls_certificate_set_openpgp_keyring_file</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-mem" title="gnutls_certificate_set_openpgp_keyring_mem ()">gnutls_certificate_set_openpgp_keyring_mem</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file" title="gnutls_certificate_set_openpgp_key_file ()">gnutls_certificate_set_openpgp_key_file</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file2" title="gnutls_certificate_set_openpgp_key_file2 ()">gnutls_certificate_set_openpgp_key_file2</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem" title="gnutls_certificate_set_openpgp_key_mem ()">gnutls_certificate_set_openpgp_key_mem</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem2" title="gnutls_certificate_set_openpgp_key_mem2 ()">gnutls_certificate_set_openpgp_key_mem2</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-params-function" title="gnutls_certificate_set_params_function ()">gnutls_certificate_set_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function" title="gnutls_certificate_set_retrieve_function ()">gnutls_certificate_set_retrieve_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()">gnutls_certificate_set_verify_flags</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-function" title="gnutls_certificate_set_verify_function ()">gnutls_certificate_set_verify_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-limits" title="gnutls_certificate_set_verify_limits ()">gnutls_certificate_set_verify_limits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl" title="gnutls_certificate_set_x509_crl ()">gnutls_certificate_set_x509_crl</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-file" title="gnutls_certificate_set_x509_crl_file ()">gnutls_certificate_set_x509_crl_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-mem" title="gnutls_certificate_set_x509_crl_mem ()">gnutls_certificate_set_x509_crl_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()">gnutls_certificate_set_x509_key</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file" title="gnutls_certificate_set_x509_key_file ()">gnutls_certificate_set_x509_key_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem" title="gnutls_certificate_set_x509_key_mem ()">gnutls_certificate_set_x509_key_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-file" title="gnutls_certificate_set_x509_simple_pkcs12_file ()">gnutls_certificate_set_x509_simple_pkcs12_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem" title="gnutls_certificate_set_x509_simple_pkcs12_mem ()">gnutls_certificate_set_x509_simple_pkcs12_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust" title="gnutls_certificate_set_x509_trust ()">gnutls_certificate_set_x509_trust</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-file" title="gnutls_certificate_set_x509_trust_file ()">gnutls_certificate_set_x509_trust_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-mem" title="gnutls_certificate_set_x509_trust_mem ()">gnutls_certificate_set_x509_trust_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-status-t" title="enum gnutls_certificate_status_t">gnutls_certificate_status_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get" title="gnutls_certificate_type_get ()">gnutls_certificate_type_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get-id" title="gnutls_certificate_type_get_id ()">gnutls_certificate_type_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get-name" title="gnutls_certificate_type_get_name ()">gnutls_certificate_type_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-list" title="gnutls_certificate_type_list ()">gnutls_certificate_type_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t">gnutls_certificate_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags">gnutls_certificate_verify_flags</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()">gnutls_certificate_verify_peers2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-check-version" title="gnutls_check_version ()">gnutls_check_version</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t">gnutls_cipher_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR:CAPS" title="GNUTLS_CIPHER_ARCFOUR">GNUTLS_CIPHER_ARCFOUR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt" title="gnutls_cipher_decrypt ()">gnutls_cipher_decrypt</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt2" title="gnutls_cipher_decrypt2 ()">gnutls_cipher_decrypt2</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-deinit" title="gnutls_cipher_deinit ()">gnutls_cipher_deinit</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt" title="gnutls_cipher_encrypt ()">gnutls_cipher_encrypt</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt2" title="gnutls_cipher_encrypt2 ()">gnutls_cipher_encrypt2</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-get" title="gnutls_cipher_get ()">gnutls_cipher_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-get-block-size" title="gnutls_cipher_get_block_size ()">gnutls_cipher_get_block_size</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-id" title="gnutls_cipher_get_id ()">gnutls_cipher_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-key-size" title="gnutls_cipher_get_key_size ()">gnutls_cipher_get_key_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-name" title="gnutls_cipher_get_name ()">gnutls_cipher_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t">gnutls_cipher_hd_t</a>, typedef in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-init" title="gnutls_cipher_init ()">gnutls_cipher_init</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-list" title="gnutls_cipher_list ()">gnutls_cipher_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-128-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_128_CBC">GNUTLS_CIPHER_RIJNDAEL_128_CBC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-256-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_256_CBC">GNUTLS_CIPHER_RIJNDAEL_256_CBC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_CBC">GNUTLS_CIPHER_RIJNDAEL_CBC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-suite-get-name" title="gnutls_cipher_suite_get_name ()">gnutls_cipher_suite_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-suite-info" title="gnutls_cipher_suite_info ()">gnutls_cipher_suite_info</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-close-request-t" title="enum gnutls_close_request_t">gnutls_close_request_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-get" title="gnutls_compression_get ()">gnutls_compression_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-get-id" title="gnutls_compression_get_id ()">gnutls_compression_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-get-name" title="gnutls_compression_get_name ()">gnutls_compression_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-list" title="gnutls_compression_list ()">gnutls_compression_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t">gnutls_compression_method_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-credentials-clear" title="gnutls_credentials_clear ()">gnutls_credentials_clear</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-credentials-set" title="gnutls_credentials_set ()">gnutls_credentials_set</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t">gnutls_credentials_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cred-set" title="gnutls_cred_set">gnutls_cred_set</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_AA_COMPROMISE">GNUTLS_CRL_REASON_AA_COMPROMISE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS" title="GNUTLS_CRL_REASON_AFFILIATION_CHANGED">GNUTLS_CRL_REASON_AFFILIATION_CHANGED</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_CA_COMPROMISE">GNUTLS_CRL_REASON_CA_COMPROMISE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS" title="GNUTLS_CRL_REASON_CERTIFICATE_HOLD">GNUTLS_CRL_REASON_CERTIFICATE_HOLD</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS" title="GNUTLS_CRL_REASON_CESSATION_OF_OPERATION">GNUTLS_CRL_REASON_CESSATION_OF_OPERATION</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_KEY_COMPROMISE">GNUTLS_CRL_REASON_KEY_COMPROMISE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS" title="GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN">GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEDED:CAPS" title="GNUTLS_CRL_REASON_SUPERSEDED">GNUTLS_CRL_REASON_SUPERSEDED</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEEDED:CAPS" title="GNUTLS_CRL_REASON_SUPERSEEDED">GNUTLS_CRL_REASON_SUPERSEEDED</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-UNUSED:CAPS" title="GNUTLS_CRL_REASON_UNUSED">GNUTLS_CRL_REASON_UNUSED</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<a name="idxD"></a><h3 class="title">D</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry" title="gnutls_db_check_entry ()">gnutls_db_check_entry</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-get-ptr" title="gnutls_db_get_ptr ()">gnutls_db_get_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-remove-func" title="gnutls_db_remove_func ()">gnutls_db_remove_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-remove-session" title="gnutls_db_remove_session ()">gnutls_db_remove_session</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-retr-func" title="gnutls_db_retr_func ()">gnutls_db_retr_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-cache-expiration" title="gnutls_db_set_cache_expiration ()">gnutls_db_set_cache_expiration</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-ptr" title="gnutls_db_set_ptr ()">gnutls_db_set_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-remove-function" title="gnutls_db_set_remove_function ()">gnutls_db_set_remove_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-retrieve-function" title="gnutls_db_set_retrieve_function ()">gnutls_db_set_retrieve_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-store-function" title="gnutls_db_set_store_function ()">gnutls_db_set_store_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-store-func" title="gnutls_db_store_func ()">gnutls_db_store_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()">gnutls_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-group" title="gnutls_dh_get_group ()">gnutls_dh_get_group</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-peers-public-bits" title="gnutls_dh_get_peers_public_bits ()">gnutls_dh_get_peers_public_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-prime-bits" title="gnutls_dh_get_prime_bits ()">gnutls_dh_get_prime_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-pubkey" title="gnutls_dh_get_pubkey ()">gnutls_dh_get_pubkey</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-secret-bits" title="gnutls_dh_get_secret_bits ()">gnutls_dh_get_secret_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-cpy" title="gnutls_dh_params_cpy ()">gnutls_dh_params_cpy</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-deinit" title="gnutls_dh_params_deinit ()">gnutls_dh_params_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export-pkcs3" title="gnutls_dh_params_export_pkcs3 ()">gnutls_dh_params_export_pkcs3</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export-raw" title="gnutls_dh_params_export_raw ()">gnutls_dh_params_export_raw</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-generate2" title="gnutls_dh_params_generate2 ()">gnutls_dh_params_generate2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-pkcs3" title="gnutls_dh_params_import_pkcs3 ()">gnutls_dh_params_import_pkcs3</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-raw" title="gnutls_dh_params_import_raw ()">gnutls_dh_params_import_raw</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-init" title="gnutls_dh_params_init ()">gnutls_dh_params_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-int" title="struct gnutls_dh_params_int">gnutls_dh_params_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t">gnutls_dh_params_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-set-prime-bits" title="gnutls_dh_set_prime_bits ()">gnutls_dh_set_prime_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t">gnutls_digest_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA:CAPS" title="GNUTLS_DIG_SHA">GNUTLS_DIG_SHA</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxE"></a><h3 class="title">E</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-errno-func" title="gnutls_errno_func ()">gnutls_errno_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-error-is-fatal" title="gnutls_error_is_fatal ()">gnutls_error_is_fatal</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-error-to-alert" title="gnutls_error_to_alert ()">gnutls_error_to_alert</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN">GNUTLS_E_AGAIN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MAX:CAPS" title="GNUTLS_E_APPLICATION_ERROR_MAX">GNUTLS_E_APPLICATION_ERROR_MAX</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MIN:CAPS" title="GNUTLS_E_APPLICATION_ERROR_MIN">GNUTLS_E_APPLICATION_ERROR_MIN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-ERROR:CAPS" title="GNUTLS_E_ASN1_DER_ERROR">GNUTLS_E_ASN1_DER_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-OVERFLOW:CAPS" title="GNUTLS_E_ASN1_DER_OVERFLOW">GNUTLS_E_ASN1_DER_OVERFLOW</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-ELEMENT-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_ELEMENT_NOT_FOUND">GNUTLS_E_ASN1_ELEMENT_NOT_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-GENERIC-ERROR:CAPS" title="GNUTLS_E_ASN1_GENERIC_ERROR">GNUTLS_E_ASN1_GENERIC_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-IDENTIFIER-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND">GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-SYNTAX-ERROR:CAPS" title="GNUTLS_E_ASN1_SYNTAX_ERROR">GNUTLS_E_ASN1_SYNTAX_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-ERROR:CAPS" title="GNUTLS_E_ASN1_TAG_ERROR">GNUTLS_E_ASN1_TAG_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-IMPLICIT:CAPS" title="GNUTLS_E_ASN1_TAG_IMPLICIT">GNUTLS_E_ASN1_TAG_IMPLICIT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TYPE-ANY-ERROR:CAPS" title="GNUTLS_E_ASN1_TYPE_ANY_ERROR">GNUTLS_E_ASN1_TYPE_ANY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_FOUND">GNUTLS_E_ASN1_VALUE_NOT_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-VALID:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_VALID">GNUTLS_E_ASN1_VALUE_NOT_VALID</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-DECODING-ERROR:CAPS" title="GNUTLS_E_BASE64_DECODING_ERROR">GNUTLS_E_BASE64_DECODING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-ENCODING-ERROR:CAPS" title="GNUTLS_E_BASE64_ENCODING_ERROR">GNUTLS_E_BASE64_ENCODING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-UNEXPECTED-HEADER-ERROR:CAPS" title="GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR">GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_ERROR">GNUTLS_E_CERTIFICATE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-COMPRESSION-FAILED:CAPS" title="GNUTLS_E_COMPRESSION_FAILED">GNUTLS_E_COMPRESSION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CONSTRAINT-ERROR:CAPS" title="GNUTLS_E_CONSTRAINT_ERROR">GNUTLS_E_CONSTRAINT_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-DEVICE-ERROR:CAPS" title="GNUTLS_E_CRYPTODEV_DEVICE_ERROR">GNUTLS_E_CRYPTODEV_DEVICE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-IOCTL-ERROR:CAPS" title="GNUTLS_E_CRYPTODEV_IOCTL_ERROR">GNUTLS_E_CRYPTODEV_IOCTL_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTO-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_CRYPTO_ALREADY_REGISTERED">GNUTLS_E_CRYPTO_ALREADY_REGISTERED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTO-INIT-FAILED:CAPS" title="GNUTLS_E_CRYPTO_INIT_FAILED">GNUTLS_E_CRYPTO_INIT_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DB-ERROR:CAPS" title="GNUTLS_E_DB_ERROR">GNUTLS_E_DB_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECOMPRESSION-FAILED:CAPS" title="GNUTLS_E_DECOMPRESSION_FAILED">GNUTLS_E_DECOMPRESSION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_DECRYPTION_FAILED">GNUTLS_E_DECRYPTION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS" title="GNUTLS_E_DH_PRIME_UNACCEPTABLE">GNUTLS_E_DH_PRIME_UNACCEPTABLE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ENCRYPTION-FAILED:CAPS" title="GNUTLS_E_ENCRYPTION_FAILED">GNUTLS_E_ENCRYPTION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ERROR-IN-FINISHED-PACKET:CAPS" title="GNUTLS_E_ERROR_IN_FINISHED_PACKET">GNUTLS_E_ERROR_IN_FINISHED_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS" title="GNUTLS_E_EXPIRED">GNUTLS_E_EXPIRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS" title="GNUTLS_E_FATAL_ALERT_RECEIVED">GNUTLS_E_FATAL_ALERT_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-FILE-ERROR:CAPS" title="GNUTLS_E_FILE_ERROR">GNUTLS_E_FILE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS" title="GNUTLS_E_GOT_APPLICATION_DATA">GNUTLS_E_GOT_APPLICATION_DATA</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS" title="GNUTLS_E_HANDSHAKE_TOO_LARGE">GNUTLS_E_HANDSHAKE_TOO_LARGE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-HASH-FAILED:CAPS" title="GNUTLS_E_HASH_FAILED">GNUTLS_E_HASH_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-IA-VERIFY-FAILED:CAPS" title="GNUTLS_E_IA_VERIFY_FAILED">GNUTLS_E_IA_VERIFY_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ILLEGAL-SRP-USERNAME:CAPS" title="GNUTLS_E_ILLEGAL_SRP_USERNAME">GNUTLS_E_ILLEGAL_SRP_USERNAME</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-CRYPTO-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY">GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-GCRYPT-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY">GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-LIBTASN1-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY">GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CRED:CAPS" title="GNUTLS_E_INSUFFICIENT_CRED">GNUTLS_E_INSUFFICIENT_CRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CREDENTIALS:CAPS" title="GNUTLS_E_INSUFFICIENT_CREDENTIALS">GNUTLS_E_INSUFFICIENT_CREDENTIALS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CRED:CAPS" title="GNUTLS_E_INSUFICIENT_CRED">GNUTLS_E_INSUFICIENT_CRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CREDENTIALS:CAPS" title="GNUTLS_E_INSUFICIENT_CREDENTIALS">GNUTLS_E_INSUFICIENT_CREDENTIALS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERNAL-ERROR:CAPS" title="GNUTLS_E_INTERNAL_ERROR">GNUTLS_E_INTERNAL_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED">GNUTLS_E_INTERRUPTED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD:CAPS" title="GNUTLS_E_INVALID_PASSWORD">GNUTLS_E_INVALID_PASSWORD</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST">GNUTLS_E_INVALID_REQUEST</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-SESSION:CAPS" title="GNUTLS_E_INVALID_SESSION">GNUTLS_E_INVALID_SESSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEY-USAGE-VIOLATION:CAPS" title="GNUTLS_E_KEY_USAGE_VIOLATION">GNUTLS_E_KEY_USAGE_VIOLATION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS" title="GNUTLS_E_LARGE_PACKET">GNUTLS_E_LARGE_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-LOCKING-ERROR:CAPS" title="GNUTLS_E_LOCKING_ERROR">GNUTLS_E_LOCKING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MAC-VERIFY-FAILED:CAPS" title="GNUTLS_E_MAC_VERIFY_FAILED">GNUTLS_E_MAC_VERIFY_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MEMORY-ERROR:CAPS" title="GNUTLS_E_MEMORY_ERROR">GNUTLS_E_MEMORY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MPI-PRINT-FAILED:CAPS" title="GNUTLS_E_MPI_PRINT_FAILED">GNUTLS_E_MPI_PRINT_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MPI-SCAN-FAILED:CAPS" title="GNUTLS_E_MPI_SCAN_FAILED">GNUTLS_E_MPI_SCAN_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS" title="GNUTLS_E_NO_CERTIFICATE_FOUND">GNUTLS_E_NO_CERTIFICATE_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CIPHER-SUITES:CAPS" title="GNUTLS_E_NO_CIPHER_SUITES">GNUTLS_E_NO_CIPHER_SUITES</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-COMPRESSION-ALGORITHMS:CAPS" title="GNUTLS_E_NO_COMPRESSION_ALGORITHMS">GNUTLS_E_NO_COMPRESSION_ALGORITHMS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-DH-PARAMS:CAPS" title="GNUTLS_E_NO_TEMPORARY_DH_PARAMS">GNUTLS_E_NO_TEMPORARY_DH_PARAMS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-RSA-PARAMS:CAPS" title="GNUTLS_E_NO_TEMPORARY_RSA_PARAMS">GNUTLS_E_NO_TEMPORARY_RSA_PARAMS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-FINGERPRINT-UNSUPPORTED:CAPS" title="GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED">GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-GETKEY-FAILED:CAPS" title="GNUTLS_E_OPENPGP_GETKEY_FAILED">GNUTLS_E_OPENPGP_GETKEY_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-KEYRING-ERROR:CAPS" title="GNUTLS_E_OPENPGP_KEYRING_ERROR">GNUTLS_E_OPENPGP_KEYRING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-SUBKEY-ERROR:CAPS" title="GNUTLS_E_OPENPGP_SUBKEY_ERROR">GNUTLS_E_OPENPGP_SUBKEY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-UID-REVOKED:CAPS" title="GNUTLS_E_OPENPGP_UID_REVOKED">GNUTLS_E_OPENPGP_UID_REVOKED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR">GNUTLS_E_PARSING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-ATTRIBUTE-ERROR:CAPS" title="GNUTLS_E_PKCS11_ATTRIBUTE_ERROR">GNUTLS_E_PKCS11_ATTRIBUTE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-DATA-ERROR:CAPS" title="GNUTLS_E_PKCS11_DATA_ERROR">GNUTLS_E_PKCS11_DATA_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-DEVICE-ERROR:CAPS" title="GNUTLS_E_PKCS11_DEVICE_ERROR">GNUTLS_E_PKCS11_DEVICE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-ERROR:CAPS" title="GNUTLS_E_PKCS11_ERROR">GNUTLS_E_PKCS11_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-KEY-ERROR:CAPS" title="GNUTLS_E_PKCS11_KEY_ERROR">GNUTLS_E_PKCS11_KEY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-LOAD-ERROR:CAPS" title="GNUTLS_E_PKCS11_LOAD_ERROR">GNUTLS_E_PKCS11_LOAD_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-ERROR:CAPS" title="GNUTLS_E_PKCS11_PIN_ERROR">GNUTLS_E_PKCS11_PIN_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-EXPIRED:CAPS" title="GNUTLS_E_PKCS11_PIN_EXPIRED">GNUTLS_E_PKCS11_PIN_EXPIRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-LOCKED:CAPS" title="GNUTLS_E_PKCS11_PIN_LOCKED">GNUTLS_E_PKCS11_PIN_LOCKED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SESSION-ERROR:CAPS" title="GNUTLS_E_PKCS11_SESSION_ERROR">GNUTLS_E_PKCS11_SESSION_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SIGNATURE-ERROR:CAPS" title="GNUTLS_E_PKCS11_SIGNATURE_ERROR">GNUTLS_E_PKCS11_SIGNATURE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SLOT-ERROR:CAPS" title="GNUTLS_E_PKCS11_SLOT_ERROR">GNUTLS_E_PKCS11_SLOT_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-TOKEN-ERROR:CAPS" title="GNUTLS_E_PKCS11_TOKEN_ERROR">GNUTLS_E_PKCS11_TOKEN_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-UNSUPPORTED-FEATURE-ERROR:CAPS" title="GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR">GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-USER-ERROR:CAPS" title="GNUTLS_E_PKCS11_USER_ERROR">GNUTLS_E_PKCS11_USER_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS1-WRONG-PAD:CAPS" title="GNUTLS_E_PKCS1_WRONG_PAD">GNUTLS_E_PKCS1_WRONG_PAD</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_PK_DECRYPTION_FAILED">GNUTLS_E_PK_DECRYPTION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-ENCRYPTION-FAILED:CAPS" title="GNUTLS_E_PK_ENCRYPTION_FAILED">GNUTLS_E_PK_ENCRYPTION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIGN-FAILED:CAPS" title="GNUTLS_E_PK_SIGN_FAILED">GNUTLS_E_PK_SIGN_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" title="GNUTLS_E_PK_SIG_VERIFY_FAILED">GNUTLS_E_PK_SIG_VERIFY_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PULL-ERROR:CAPS" title="GNUTLS_E_PULL_ERROR">GNUTLS_E_PULL_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PUSH-ERROR:CAPS" title="GNUTLS_E_PUSH_ERROR">GNUTLS_E_PUSH_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RANDOM-FAILED:CAPS" title="GNUTLS_E_RANDOM_FAILED">GNUTLS_E_RANDOM_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-EXTENSION:CAPS" title="GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION">GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS" title="GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER">GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECORD-LIMIT-REACHED:CAPS" title="GNUTLS_E_RECORD_LIMIT_REACHED">GNUTLS_E_RECORD_LIMIT_REACHED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE">GNUTLS_E_REHANDSHAKE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SAFE-RENEGOTIATION-FAILED:CAPS" title="GNUTLS_E_SAFE_RENEGOTIATION_FAILED">GNUTLS_E_SAFE_RENEGOTIATION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER">GNUTLS_E_SHORT_MEMORY_BUFFER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-ERROR:CAPS" title="GNUTLS_E_SRP_PWD_ERROR">GNUTLS_E_SRP_PWD_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-PARSING-ERROR:CAPS" title="GNUTLS_E_SRP_PWD_PARSING_ERROR">GNUTLS_E_SRP_PWD_PARSING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS">GNUTLS_E_SUCCESS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-EMPTY-PACKETS:CAPS" title="GNUTLS_E_TOO_MANY_EMPTY_PACKETS">GNUTLS_E_TOO_MANY_EMPTY_PACKETS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-HANDSHAKE-PACKET:CAPS" title="GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET">GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET:CAPS" title="GNUTLS_E_UNEXPECTED_PACKET">GNUTLS_E_UNEXPECTED_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET-LENGTH:CAPS" title="GNUTLS_E_UNEXPECTED_PACKET_LENGTH">GNUTLS_E_UNEXPECTED_PACKET_LENGTH</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE">GNUTLS_E_UNIMPLEMENTED_FEATURE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_ALGORITHM">GNUTLS_E_UNKNOWN_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_SUITE">GNUTLS_E_UNKNOWN_CIPHER_SUITE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_TYPE">GNUTLS_E_UNKNOWN_CIPHER_TYPE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM">GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_HASH_ALGORITHM">GNUTLS_E_UNKNOWN_HASH_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-BAG-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE">GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-CONTENT-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE">GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PK-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_PK_ALGORITHM">GNUTLS_E_UNKNOWN_PK_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-SRP-USERNAME:CAPS" title="GNUTLS_E_UNKNOWN_SRP_USERNAME">GNUTLS_E_UNKNOWN_SRP_USERNAME</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSAFE-RENEGOTIATION-DENIED:CAPS" title="GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED">GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-CERTIFICATE-TYPE:CAPS" title="GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE">GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-SIGNATURE-ALGORITHM:CAPS" title="GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM">GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-VERSION-PACKET:CAPS" title="GNUTLS_E_UNSUPPORTED_VERSION_PACKET">GNUTLS_E_UNSUPPORTED_VERSION_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNWANTED-ALGORITHM:CAPS" title="GNUTLS_E_UNWANTED_ALGORITHM">GNUTLS_E_UNWANTED_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS" title="GNUTLS_E_WARNING_ALERT_RECEIVED">GNUTLS_E_WARNING_ALERT_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_FPHF_RECEIVED">GNUTLS_E_WARNING_IA_FPHF_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_IPHF_RECEIVED">GNUTLS_E_WARNING_IA_IPHF_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-CERTIFICATE-ERROR:CAPS" title="GNUTLS_E_X509_CERTIFICATE_ERROR">GNUTLS_E_X509_CERTIFICATE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNKNOWN-SAN:CAPS" title="GNUTLS_E_X509_UNKNOWN_SAN">GNUTLS_E_X509_UNKNOWN_SAN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-ATTRIBUTE:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE">GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-CRITICAL-EXTENSION:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION">GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-OID:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_OID">GNUTLS_E_X509_UNSUPPORTED_OID</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxF"></a><h3 class="title">F</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fingerprint" title="gnutls_fingerprint ()">gnutls_fingerprint</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free">gnutls_free</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-free-function" title="gnutls_free_function ()">gnutls_free_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS" title="GNUTLS_FSAN_APPEND">GNUTLS_FSAN_APPEND</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS" title="GNUTLS_FSAN_SET">GNUTLS_FSAN_SET</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<a name="idxG"></a><h3 class="title">G</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()">gnutls_global_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()">gnutls_global_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-function" title="gnutls_global_set_log_function ()">gnutls_global_set_log_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-level" title="gnutls_global_set_log_level ()">gnutls_global_set_log_level</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-mem-functions" title="gnutls_global_set_mem_functions ()">gnutls_global_set_mem_functions</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-mutex" title="gnutls_global_set_mutex ()">gnutls_global_set_mutex</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxH"></a><h3 class="title">H</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">gnutls_handshake</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t">gnutls_handshake_description_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-get-last-in" title="gnutls_handshake_get_last_in ()">gnutls_handshake_get_last_in</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-get-last-out" title="gnutls_handshake_get_last_out ()">gnutls_handshake_get_last_out</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func" title="gnutls_handshake_post_client_hello_func ()">gnutls_handshake_post_client_hello_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-max-packet-length" title="gnutls_handshake_set_max_packet_length ()">gnutls_handshake_set_max_packet_length</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-post-client-hello-function" title="gnutls_handshake_set_post_client_hello_function ()">gnutls_handshake_set_post_client_hello_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-private-extensions" title="gnutls_handshake_set_private_extensions ()">gnutls_handshake_set_private_extensions</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash" title="gnutls_hash ()">gnutls_hash</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-deinit" title="gnutls_hash_deinit ()">gnutls_hash_deinit</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-fast" title="gnutls_hash_fast ()">gnutls_hash_fast</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-get-len" title="gnutls_hash_get_len ()">gnutls_hash_get_len</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t">gnutls_hash_hd_t</a>, typedef in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-init" title="gnutls_hash_init ()">gnutls_hash_init</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-output" title="gnutls_hash_output ()">gnutls_hash_output</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#HAVE-SSIZE-T:CAPS" title="HAVE_SSIZE_T">HAVE_SSIZE_T</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-hex2bin" title="gnutls_hex2bin ()">gnutls_hex2bin</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-hex-decode" title="gnutls_hex_decode ()">gnutls_hex_decode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-hex-encode" title="gnutls_hex_encode ()">gnutls_hex_encode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac" title="gnutls_hmac ()">gnutls_hmac</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-deinit" title="gnutls_hmac_deinit ()">gnutls_hmac_deinit</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-fast" title="gnutls_hmac_fast ()">gnutls_hmac_fast</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-get-len" title="gnutls_hmac_get_len ()">gnutls_hmac_get_len</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t">gnutls_hmac_hd_t</a>, typedef in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-init" title="gnutls_hmac_init ()">gnutls_hmac_init</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-output" title="gnutls_hmac_output ()">gnutls_hmac_output</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<a name="idxI"></a><h3 class="title">I</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()">gnutls_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-is-secure-function" title="gnutls_is_secure_function ()">gnutls_is_secure_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxK"></a><h3 class="title">K</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS" title="GNUTLS_KEY_CRL_SIGN">GNUTLS_KEY_CRL_SIGN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_DATA_ENCIPHERMENT">GNUTLS_KEY_DATA_ENCIPHERMENT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS" title="GNUTLS_KEY_DECIPHER_ONLY">GNUTLS_KEY_DECIPHER_ONLY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE">GNUTLS_KEY_DIGITAL_SIGNATURE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS" title="GNUTLS_KEY_ENCIPHER_ONLY">GNUTLS_KEY_ENCIPHER_ONLY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS" title="GNUTLS_KEY_KEY_AGREEMENT">GNUTLS_KEY_KEY_AGREEMENT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS" title="GNUTLS_KEY_KEY_CERT_SIGN">GNUTLS_KEY_KEY_CERT_SIGN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT">GNUTLS_KEY_KEY_ENCIPHERMENT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS" title="GNUTLS_KEY_NON_REPUDIATION">GNUTLS_KEY_NON_REPUDIATION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-ANY:CAPS" title="GNUTLS_KP_ANY">GNUTLS_KP_ANY</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-CODE-SIGNING:CAPS" title="GNUTLS_KP_CODE_SIGNING">GNUTLS_KP_CODE_SIGNING</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-EMAIL-PROTECTION:CAPS" title="GNUTLS_KP_EMAIL_PROTECTION">GNUTLS_KP_EMAIL_PROTECTION</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-OCSP-SIGNING:CAPS" title="GNUTLS_KP_OCSP_SIGNING">GNUTLS_KP_OCSP_SIGNING</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-TIME-STAMPING:CAPS" title="GNUTLS_KP_TIME_STAMPING">GNUTLS_KP_TIME_STAMPING</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-CLIENT:CAPS" title="GNUTLS_KP_TLS_WWW_CLIENT">GNUTLS_KP_TLS_WWW_CLIENT</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS" title="GNUTLS_KP_TLS_WWW_SERVER">GNUTLS_KP_TLS_WWW_SERVER</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t">gnutls_kx_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-get" title="gnutls_kx_get ()">gnutls_kx_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-get-id" title="gnutls_kx_get_id ()">gnutls_kx_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-get-name" title="gnutls_kx_get_name ()">gnutls_kx_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-list" title="gnutls_kx_list ()">gnutls_kx_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxL"></a><h3 class="title">L</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()">gnutls_log_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t">gnutls_mac_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-get" title="gnutls_mac_get ()">gnutls_mac_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-get-id" title="gnutls_mac_get_id ()">gnutls_mac_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-get-key-size" title="gnutls_mac_get_key_size ()">gnutls_mac_get_key_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-get-name" title="gnutls_mac_get_name ()">gnutls_mac_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-list" title="gnutls_mac_list ()">gnutls_mac_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAC-SHA:CAPS" title="GNUTLS_MAC_SHA">GNUTLS_MAC_SHA</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc">gnutls_malloc</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-ALGORITHM-NUM:CAPS" title="GNUTLS_MAX_ALGORITHM_NUM">GNUTLS_MAX_ALGORITHM_NUM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID:CAPS" title="GNUTLS_MAX_SESSION_ID">GNUTLS_MAX_SESSION_ID</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#mutex-deinit-func" title="mutex_deinit_func ()">mutex_deinit_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()">mutex_init_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#mutex-lock-func" title="mutex_lock_func ()">mutex_lock_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#mutex-unlock-func" title="mutex_unlock_func ()">mutex_unlock_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxO"></a><h3 class="title">O</h3>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-LDAP-DC:CAPS" title="GNUTLS_OID_LDAP_DC">GNUTLS_OID_LDAP_DC</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-LDAP-UID:CAPS" title="GNUTLS_OID_LDAP_UID">GNUTLS_OID_LDAP_UID</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKCS9-EMAIL:CAPS" title="GNUTLS_OID_PKCS9_EMAIL">GNUTLS_OID_PKCS9_EMAIL</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS" title="GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP">GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS" title="GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE">GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS" title="GNUTLS_OID_PKIX_DATE_OF_BIRTH">GNUTLS_OID_PKIX_DATE_OF_BIRTH</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-GENDER:CAPS" title="GNUTLS_OID_PKIX_GENDER">GNUTLS_OID_PKIX_GENDER</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS" title="GNUTLS_OID_PKIX_PLACE_OF_BIRTH">GNUTLS_OID_PKIX_PLACE_OF_BIRTH</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-COMMON-NAME:CAPS" title="GNUTLS_OID_X520_COMMON_NAME">GNUTLS_OID_X520_COMMON_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-COUNTRY-NAME:CAPS" title="GNUTLS_OID_X520_COUNTRY_NAME">GNUTLS_OID_X520_COUNTRY_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-DN-QUALIFIER:CAPS" title="GNUTLS_OID_X520_DN_QUALIFIER">GNUTLS_OID_X520_DN_QUALIFIER</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS" title="GNUTLS_OID_X520_GENERATION_QUALIFIER">GNUTLS_OID_X520_GENERATION_QUALIFIER</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-GIVEN-NAME:CAPS" title="GNUTLS_OID_X520_GIVEN_NAME">GNUTLS_OID_X520_GIVEN_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-INITIALS:CAPS" title="GNUTLS_OID_X520_INITIALS">GNUTLS_OID_X520_INITIALS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-LOCALITY-NAME:CAPS" title="GNUTLS_OID_X520_LOCALITY_NAME">GNUTLS_OID_X520_LOCALITY_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-NAME:CAPS" title="GNUTLS_OID_X520_NAME">GNUTLS_OID_X520_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS" title="GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME">GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS" title="GNUTLS_OID_X520_ORGANIZATION_NAME">GNUTLS_OID_X520_ORGANIZATION_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-POSTALCODE:CAPS" title="GNUTLS_OID_X520_POSTALCODE">GNUTLS_OID_X520_POSTALCODE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-PSEUDONYM:CAPS" title="GNUTLS_OID_X520_PSEUDONYM">GNUTLS_OID_X520_PSEUDONYM</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS" title="GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME">GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-SURNAME:CAPS" title="GNUTLS_OID_X520_SURNAME">GNUTLS_OID_X520_SURNAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-TITLE:CAPS" title="GNUTLS_OID_X520_TITLE">GNUTLS_OID_X520_TITLE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname" title="gnutls_openpgp_crt_check_hostname ()">gnutls_openpgp_crt_check_hostname</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-deinit" title="gnutls_openpgp_crt_deinit ()">gnutls_openpgp_crt_deinit</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-export" title="gnutls_openpgp_crt_export ()">gnutls_openpgp_crt_export</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t">gnutls_openpgp_crt_fmt_t</a>, enum in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()">gnutls_openpgp_crt_get_auth_subkey</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-creation-time" title="gnutls_openpgp_crt_get_creation_time ()">gnutls_openpgp_crt_get_creation_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-expiration-time" title="gnutls_openpgp_crt_get_expiration_time ()">gnutls_openpgp_crt_get_expiration_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-fingerprint" title="gnutls_openpgp_crt_get_fingerprint ()">gnutls_openpgp_crt_get_fingerprint</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-id" title="gnutls_openpgp_crt_get_key_id ()">gnutls_openpgp_crt_get_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-usage" title="gnutls_openpgp_crt_get_key_usage ()">gnutls_openpgp_crt_get_key_usage</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-name" title="gnutls_openpgp_crt_get_name ()">gnutls_openpgp_crt_get_name</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-algorithm" title="gnutls_openpgp_crt_get_pk_algorithm ()">gnutls_openpgp_crt_get_pk_algorithm</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw" title="gnutls_openpgp_crt_get_pk_dsa_raw ()">gnutls_openpgp_crt_get_pk_dsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw" title="gnutls_openpgp_crt_get_pk_rsa_raw ()">gnutls_openpgp_crt_get_pk_rsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-preferred-key-id" title="gnutls_openpgp_crt_get_preferred_key_id ()">gnutls_openpgp_crt_get_preferred_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-revoked-status" title="gnutls_openpgp_crt_get_revoked_status ()">gnutls_openpgp_crt_get_revoked_status</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-count" title="gnutls_openpgp_crt_get_subkey_count ()">gnutls_openpgp_crt_get_subkey_count</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time" title="gnutls_openpgp_crt_get_subkey_creation_time ()">gnutls_openpgp_crt_get_subkey_creation_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time" title="gnutls_openpgp_crt_get_subkey_expiration_time ()">gnutls_openpgp_crt_get_subkey_expiration_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint" title="gnutls_openpgp_crt_get_subkey_fingerprint ()">gnutls_openpgp_crt_get_subkey_fingerprint</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-id" title="gnutls_openpgp_crt_get_subkey_id ()">gnutls_openpgp_crt_get_subkey_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-idx" title="gnutls_openpgp_crt_get_subkey_idx ()">gnutls_openpgp_crt_get_subkey_idx</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm" title="gnutls_openpgp_crt_get_subkey_pk_algorithm ()">gnutls_openpgp_crt_get_subkey_pk_algorithm</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_dsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_rsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status" title="gnutls_openpgp_crt_get_subkey_revoked_status ()">gnutls_openpgp_crt_get_subkey_revoked_status</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-usage" title="gnutls_openpgp_crt_get_subkey_usage ()">gnutls_openpgp_crt_get_subkey_usage</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-version" title="gnutls_openpgp_crt_get_version ()">gnutls_openpgp_crt_get_version</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-import" title="gnutls_openpgp_crt_import ()">gnutls_openpgp_crt_import</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-init" title="gnutls_openpgp_crt_init ()">gnutls_openpgp_crt_init</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-int" title="struct gnutls_openpgp_crt_int">gnutls_openpgp_crt_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-print" title="gnutls_openpgp_crt_print ()">gnutls_openpgp_crt_print</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id" title="gnutls_openpgp_crt_set_preferred_key_id ()">gnutls_openpgp_crt_set_preferred_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-status-t" title="enum gnutls_openpgp_crt_status_t">gnutls_openpgp_crt_status_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t">gnutls_openpgp_crt_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-verify-ring" title="gnutls_openpgp_crt_verify_ring ()">gnutls_openpgp_crt_verify_ring</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-verify-self" title="gnutls_openpgp_crt_verify_self ()">gnutls_openpgp_crt_verify_self</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t">gnutls_openpgp_keyid_t</a>, typedef in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-check-id" title="gnutls_openpgp_keyring_check_id ()">gnutls_openpgp_keyring_check_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-deinit" title="gnutls_openpgp_keyring_deinit ()">gnutls_openpgp_keyring_deinit</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt" title="gnutls_openpgp_keyring_get_crt ()">gnutls_openpgp_keyring_get_crt</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt-count" title="gnutls_openpgp_keyring_get_crt_count ()">gnutls_openpgp_keyring_get_crt_count</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-import" title="gnutls_openpgp_keyring_import ()">gnutls_openpgp_keyring_import</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-init" title="gnutls_openpgp_keyring_init ()">gnutls_openpgp_keyring_init</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-int" title="struct gnutls_openpgp_keyring_int">gnutls_openpgp_keyring_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t">gnutls_openpgp_keyring_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-deinit" title="gnutls_openpgp_privkey_deinit ()">gnutls_openpgp_privkey_deinit</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export" title="gnutls_openpgp_privkey_export ()">gnutls_openpgp_privkey_export</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw" title="gnutls_openpgp_privkey_export_dsa_raw ()">gnutls_openpgp_privkey_export_dsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw" title="gnutls_openpgp_privkey_export_rsa_raw ()">gnutls_openpgp_privkey_export_rsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw" title="gnutls_openpgp_privkey_export_subkey_dsa_raw ()">gnutls_openpgp_privkey_export_subkey_dsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw" title="gnutls_openpgp_privkey_export_subkey_rsa_raw ()">gnutls_openpgp_privkey_export_subkey_rsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-fingerprint" title="gnutls_openpgp_privkey_get_fingerprint ()">gnutls_openpgp_privkey_get_fingerprint</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-key-id" title="gnutls_openpgp_privkey_get_key_id ()">gnutls_openpgp_privkey_get_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm" title="gnutls_openpgp_privkey_get_pk_algorithm ()">gnutls_openpgp_privkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-preferred-key-id" title="gnutls_openpgp_privkey_get_preferred_key_id ()">gnutls_openpgp_privkey_get_preferred_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-revoked-status" title="gnutls_openpgp_privkey_get_revoked_status ()">gnutls_openpgp_privkey_get_revoked_status</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-count" title="gnutls_openpgp_privkey_get_subkey_count ()">gnutls_openpgp_privkey_get_subkey_count</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time" title="gnutls_openpgp_privkey_get_subkey_creation_time ()">gnutls_openpgp_privkey_get_subkey_creation_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time" title="gnutls_openpgp_privkey_get_subkey_expiration_time ()">gnutls_openpgp_privkey_get_subkey_expiration_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint" title="gnutls_openpgp_privkey_get_subkey_fingerprint ()">gnutls_openpgp_privkey_get_subkey_fingerprint</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-id" title="gnutls_openpgp_privkey_get_subkey_id ()">gnutls_openpgp_privkey_get_subkey_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx" title="gnutls_openpgp_privkey_get_subkey_idx ()">gnutls_openpgp_privkey_get_subkey_idx</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm" title="gnutls_openpgp_privkey_get_subkey_pk_algorithm ()">gnutls_openpgp_privkey_get_subkey_pk_algorithm</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status" title="gnutls_openpgp_privkey_get_subkey_revoked_status ()">gnutls_openpgp_privkey_get_subkey_revoked_status</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-import" title="gnutls_openpgp_privkey_import ()">gnutls_openpgp_privkey_import</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-init" title="gnutls_openpgp_privkey_init ()">gnutls_openpgp_privkey_init</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-int" title="struct gnutls_openpgp_privkey_int">gnutls_openpgp_privkey_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-set-preferred-key-id" title="gnutls_openpgp_privkey_set_preferred_key_id ()">gnutls_openpgp_privkey_set_preferred_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t">gnutls_openpgp_privkey_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()">gnutls_openpgp_recv_key_func</a>, user_function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-send-cert" title="gnutls_openpgp_send_cert ()">gnutls_openpgp_send_cert</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function" title="gnutls_openpgp_set_recv_key_function ()">gnutls_openpgp_set_recv_key_function</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<a name="idxP"></a><h3 class="title">P</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-params-type-t" title="enum gnutls_params_type_t">gnutls_params_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode" title="gnutls_pem_base64_decode ()">gnutls_pem_base64_decode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode-alloc" title="gnutls_pem_base64_decode_alloc ()">gnutls_pem_base64_decode_alloc</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode" title="gnutls_pem_base64_encode ()">gnutls_pem_base64_encode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode-alloc" title="gnutls_pem_base64_encode_alloc ()">gnutls_pem_base64_encode_alloc</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-perror" title="gnutls_perror ()">gnutls_perror</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" title="gnutls_pkcs11_add_provider ()">gnutls_pkcs11_add_provider</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt" title="gnutls_pkcs11_copy_x509_crt ()">gnutls_pkcs11_copy_x509_crt</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey" title="gnutls_pkcs11_copy_x509_privkey ()">gnutls_pkcs11_copy_x509_privkey</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-deinit" title="gnutls_pkcs11_deinit ()">gnutls_pkcs11_deinit</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-delete-url" title="gnutls_pkcs11_delete_url ()">gnutls_pkcs11_delete_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO">GNUTLS_PKCS11_FLAG_AUTO</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL">GNUTLS_PKCS11_FLAG_MANUAL</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-init" title="gnutls_pkcs11_init ()">gnutls_pkcs11_init</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-MAX-PIN-LEN:CAPS" title="GNUTLS_PKCS11_MAX_PIN_LEN">GNUTLS_PKCS11_MAX_PIN_LEN</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t">gnutls_pkcs11_obj_attr_t</a>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" title="gnutls_pkcs11_obj_deinit ()">gnutls_pkcs11_obj_deinit</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export" title="gnutls_pkcs11_obj_export ()">gnutls_pkcs11_obj_export</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url" title="gnutls_pkcs11_obj_export_url ()">gnutls_pkcs11_obj_export_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_LOGIN">GNUTLS_PKCS11_OBJ_FLAG_LOGIN</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE">GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED">GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info" title="gnutls_pkcs11_obj_get_info ()">gnutls_pkcs11_obj_get_info</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-type" title="gnutls_pkcs11_obj_get_type ()">gnutls_pkcs11_obj_get_type</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url" title="gnutls_pkcs11_obj_import_url ()">gnutls_pkcs11_obj_import_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t">gnutls_pkcs11_obj_info_t</a>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-init" title="gnutls_pkcs11_obj_init ()">gnutls_pkcs11_obj_init</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url" title="gnutls_pkcs11_obj_list_import_url ()">gnutls_pkcs11_obj_list_import_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-st" title="struct gnutls_pkcs11_obj_st">gnutls_pkcs11_obj_st</a>, struct in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t">gnutls_pkcs11_obj_t</a>, typedef in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t">gnutls_pkcs11_obj_type_t</a>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()">gnutls_pkcs11_pin_callback_t</a>, user_function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit" title="gnutls_pkcs11_privkey_deinit ()">gnutls_pkcs11_privkey_deinit</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-url" title="gnutls_pkcs11_privkey_export_url ()">gnutls_pkcs11_privkey_export_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-info" title="gnutls_pkcs11_privkey_get_info ()">gnutls_pkcs11_privkey_get_info</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-pk-algorithm" title="gnutls_pkcs11_privkey_get_pk_algorithm ()">gnutls_pkcs11_privkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-import-url" title="gnutls_pkcs11_privkey_import_url ()">gnutls_pkcs11_privkey_import_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-init" title="gnutls_pkcs11_privkey_init ()">gnutls_pkcs11_privkey_init</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-st" title="struct gnutls_pkcs11_privkey_st">gnutls_pkcs11_privkey_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t">gnutls_pkcs11_privkey_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()">gnutls_pkcs11_set_pin_function</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" title="gnutls_pkcs11_set_token_function ()">gnutls_pkcs11_set_token_function</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()">gnutls_pkcs11_token_callback_t</a>, user_function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags" title="gnutls_pkcs11_token_get_flags ()">gnutls_pkcs11_token_get_flags</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-info" title="gnutls_pkcs11_token_get_info ()">gnutls_pkcs11_token_get_info</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-url" title="gnutls_pkcs11_token_get_url ()">gnutls_pkcs11_token_get_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS" title="GNUTLS_PKCS11_TOKEN_HW">GNUTLS_PKCS11_TOKEN_HW</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t" title="enum gnutls_pkcs11_token_info_t">gnutls_pkcs11_token_info_t</a>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-type-get-name" title="gnutls_pkcs11_type_get_name ()">gnutls_pkcs11_type_get_name</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-decrypt" title="gnutls_pkcs12_bag_decrypt ()">gnutls_pkcs12_bag_decrypt</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-deinit" title="gnutls_pkcs12_bag_deinit ()">gnutls_pkcs12_bag_deinit</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-encrypt" title="gnutls_pkcs12_bag_encrypt ()">gnutls_pkcs12_bag_encrypt</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-count" title="gnutls_pkcs12_bag_get_count ()">gnutls_pkcs12_bag_get_count</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-data" title="gnutls_pkcs12_bag_get_data ()">gnutls_pkcs12_bag_get_data</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-friendly-name" title="gnutls_pkcs12_bag_get_friendly_name ()">gnutls_pkcs12_bag_get_friendly_name</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-key-id" title="gnutls_pkcs12_bag_get_key_id ()">gnutls_pkcs12_bag_get_key_id</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-type" title="gnutls_pkcs12_bag_get_type ()">gnutls_pkcs12_bag_get_type</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-init" title="gnutls_pkcs12_bag_init ()">gnutls_pkcs12_bag_init</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-int" title="struct gnutls_pkcs12_bag_int">gnutls_pkcs12_bag_int</a>, struct in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crl" title="gnutls_pkcs12_bag_set_crl ()">gnutls_pkcs12_bag_set_crl</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crt" title="gnutls_pkcs12_bag_set_crt ()">gnutls_pkcs12_bag_set_crt</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()">gnutls_pkcs12_bag_set_data</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-friendly-name" title="gnutls_pkcs12_bag_set_friendly_name ()">gnutls_pkcs12_bag_set_friendly_name</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-key-id" title="gnutls_pkcs12_bag_set_key_id ()">gnutls_pkcs12_bag_set_key_id</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t">gnutls_pkcs12_bag_t</a>, typedef in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t">gnutls_pkcs12_bag_type_t</a>, enum in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-deinit" title="gnutls_pkcs12_deinit ()">gnutls_pkcs12_deinit</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-export" title="gnutls_pkcs12_export ()">gnutls_pkcs12_export</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-generate-mac" title="gnutls_pkcs12_generate_mac ()">gnutls_pkcs12_generate_mac</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-get-bag" title="gnutls_pkcs12_get_bag ()">gnutls_pkcs12_get_bag</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-import" title="gnutls_pkcs12_import ()">gnutls_pkcs12_import</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-init" title="gnutls_pkcs12_init ()">gnutls_pkcs12_init</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-int" title="struct gnutls_pkcs12_int">gnutls_pkcs12_int</a>, struct in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-set-bag" title="gnutls_pkcs12_set_bag ()">gnutls_pkcs12_set_bag</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t">gnutls_pkcs12_t</a>, typedef in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-verify-mac" title="gnutls_pkcs12_verify_mac ()">gnutls_pkcs12_verify_mac</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-deinit" title="gnutls_pkcs7_deinit ()">gnutls_pkcs7_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-delete-crl" title="gnutls_pkcs7_delete_crl ()">gnutls_pkcs7_delete_crl</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-delete-crt" title="gnutls_pkcs7_delete_crt ()">gnutls_pkcs7_delete_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-export" title="gnutls_pkcs7_export ()">gnutls_pkcs7_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-get-crl-count" title="gnutls_pkcs7_get_crl_count ()">gnutls_pkcs7_get_crl_count</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-get-crl-raw" title="gnutls_pkcs7_get_crl_raw ()">gnutls_pkcs7_get_crl_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-get-crt-count" title="gnutls_pkcs7_get_crt_count ()">gnutls_pkcs7_get_crt_count</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-get-crt-raw" title="gnutls_pkcs7_get_crt_raw ()">gnutls_pkcs7_get_crt_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-import" title="gnutls_pkcs7_import ()">gnutls_pkcs7_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-init" title="gnutls_pkcs7_init ()">gnutls_pkcs7_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-int" title="struct gnutls_pkcs7_int">gnutls_pkcs7_int</a>, struct in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crl" title="gnutls_pkcs7_set_crl ()">gnutls_pkcs7_set_crl</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crl-raw" title="gnutls_pkcs7_set_crl_raw ()">gnutls_pkcs7_set_crl_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crt" title="gnutls_pkcs7_set_crt ()">gnutls_pkcs7_set_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crt-raw" title="gnutls_pkcs7_set_crt_raw ()">gnutls_pkcs7_set_crt_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t">gnutls_pkcs7_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t">gnutls_pkcs_encrypt_flags_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-get-name" title="gnutls_pk_algorithm_get_name ()">gnutls_pk_algorithm_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t">gnutls_pk_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-bits-to-sec-param" title="gnutls_pk_bits_to_sec_param ()">gnutls_pk_bits_to_sec_param</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-get-id" title="gnutls_pk_get_id ()">gnutls_pk_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-get-name" title="gnutls_pk_get_name ()">gnutls_pk_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-list" title="gnutls_pk_list ()">gnutls_pk_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-prf" title="gnutls_prf ()">gnutls_prf</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-prf-raw" title="gnutls_prf_raw ()">gnutls_prf_raw</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-deinit" title="gnutls_priority_deinit ()">gnutls_priority_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-init" title="gnutls_priority_init ()">gnutls_priority_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-set" title="gnutls_priority_set ()">gnutls_priority_set</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-set-direct" title="gnutls_priority_set_direct ()">gnutls_priority_set_direct</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-st" title="struct gnutls_priority_st">gnutls_priority_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t">gnutls_priority_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-data" title="gnutls_privkey_decrypt_data ()">gnutls_privkey_decrypt_data</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit" title="gnutls_privkey_deinit ()">gnutls_privkey_deinit</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-get-pk-algorithm" title="gnutls_privkey_get_pk_algorithm ()">gnutls_privkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-get-type" title="gnutls_privkey_get_type ()">gnutls_privkey_get_type</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-openpgp" title="gnutls_privkey_import_openpgp ()">gnutls_privkey_import_openpgp</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-pkcs11" title="gnutls_privkey_import_pkcs11 ()">gnutls_privkey_import_pkcs11</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-x509" title="gnutls_privkey_import_x509 ()">gnutls_privkey_import_x509</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-init" title="gnutls_privkey_init ()">gnutls_privkey_init</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data" title="gnutls_privkey_sign_data ()">gnutls_privkey_sign_data</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash" title="gnutls_privkey_sign_hash ()">gnutls_privkey_sign_hash</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-st" title="struct gnutls_privkey_st">gnutls_privkey_st</a>, struct in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t">gnutls_privkey_t</a>, typedef in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-type-t" title="enum gnutls_privkey_type_t">gnutls_privkey_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-id" title="gnutls_protocol_get_id ()">gnutls_protocol_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-name" title="gnutls_protocol_get_name ()">gnutls_protocol_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-version" title="gnutls_protocol_get_version ()">gnutls_protocol_get_version</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-list" title="gnutls_protocol_list ()">gnutls_protocol_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t">gnutls_protocol_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-allocate-client-credentials" title="gnutls_psk_allocate_client_credentials ()">gnutls_psk_allocate_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-allocate-server-credentials" title="gnutls_psk_allocate_server_credentials ()">gnutls_psk_allocate_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-client-get-hint" title="gnutls_psk_client_get_hint ()">gnutls_psk_client_get_hint</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-free-client-credentials" title="gnutls_psk_free_client_credentials ()">gnutls_psk_free_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-free-server-credentials" title="gnutls_psk_free_server_credentials ()">gnutls_psk_free_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-key-flags" title="enum gnutls_psk_key_flags">gnutls_psk_key_flags</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-server-get-username" title="gnutls_psk_server_get_username ()">gnutls_psk_server_get_username</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials" title="gnutls_psk_set_client_credentials ()">gnutls_psk_set_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function" title="gnutls_psk_set_client_credentials_function ()">gnutls_psk_set_client_credentials_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-params-function" title="gnutls_psk_set_params_function ()">gnutls_psk_set_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-file" title="gnutls_psk_set_server_credentials_file ()">gnutls_psk_set_server_credentials_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function" title="gnutls_psk_set_server_credentials_function ()">gnutls_psk_set_server_credentials_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-hint" title="gnutls_psk_set_server_credentials_hint ()">gnutls_psk_set_server_credentials_hint</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-dh-params" title="gnutls_psk_set_server_dh_params ()">gnutls_psk_set_server_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-params-function" title="gnutls_psk_set_server_params_function ()">gnutls_psk_set_server_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-deinit" title="gnutls_pubkey_deinit ()">gnutls_pubkey_deinit</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export" title="gnutls_pubkey_export ()">gnutls_pubkey_export</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-id" title="gnutls_pubkey_get_key_id ()">gnutls_pubkey_get_key_id</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-usage" title="gnutls_pubkey_get_key_usage ()">gnutls_pubkey_get_key_usage</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm" title="gnutls_pubkey_get_pk_algorithm ()">gnutls_pubkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw" title="gnutls_pubkey_get_pk_dsa_raw ()">gnutls_pubkey_get_pk_dsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw" title="gnutls_pubkey_get_pk_rsa_raw ()">gnutls_pubkey_get_pk_rsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()">gnutls_pubkey_get_preferred_hash_algorithm</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-verify-algorithm" title="gnutls_pubkey_get_verify_algorithm ()">gnutls_pubkey_get_verify_algorithm</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import" title="gnutls_pubkey_import ()">gnutls_pubkey_import</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-dsa-raw" title="gnutls_pubkey_import_dsa_raw ()">gnutls_pubkey_import_dsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-openpgp" title="gnutls_pubkey_import_openpgp ()">gnutls_pubkey_import_openpgp</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11" title="gnutls_pubkey_import_pkcs11 ()">gnutls_pubkey_import_pkcs11</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url" title="gnutls_pubkey_import_pkcs11_url ()">gnutls_pubkey_import_pkcs11_url</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-rsa-raw" title="gnutls_pubkey_import_rsa_raw ()">gnutls_pubkey_import_rsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()">gnutls_pubkey_import_x509</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-init" title="gnutls_pubkey_init ()">gnutls_pubkey_init</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-set-key-usage" title="gnutls_pubkey_set_key_usage ()">gnutls_pubkey_set_key_usage</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-st" title="struct gnutls_pubkey_st">gnutls_pubkey_st</a>, struct in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t">gnutls_pubkey_t</a>, typedef in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-verify-hash" title="gnutls_pubkey_verify_hash ()">gnutls_pubkey_verify_hash</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pull-func" title="gnutls_pull_func ()">gnutls_pull_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()">gnutls_push_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxR"></a><h3 class="title">R</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-read" title="gnutls_read">gnutls_read</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-realloc" title="gnutls_realloc">gnutls_realloc</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-realloc-function" title="gnutls_realloc_function ()">gnutls_realloc_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-check-pending" title="gnutls_record_check_pending ()">gnutls_record_check_pending</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-disable-padding" title="gnutls_record_disable_padding ()">gnutls_record_disable_padding</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()">gnutls_record_get_direction</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-size" title="gnutls_record_get_max_size ()">gnutls_record_get_max_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()">gnutls_record_recv</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()">gnutls_record_send</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-size" title="gnutls_record_set_max_size ()">gnutls_record_set_max_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-rehandshake" title="gnutls_rehandshake ()">gnutls_rehandshake</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-rnd" title="gnutls_rnd ()">gnutls_rnd</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-rnd-level-t" title="enum gnutls_rnd_level_t">gnutls_rnd_level_t</a>, enum in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-rsa-params-t" title="gnutls_rsa_params_t">gnutls_rsa_params_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxS"></a><h3 class="title">S</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-safe-renegotiation-status" title="gnutls_safe_renegotiation_status ()">gnutls_safe_renegotiation_status</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-secure-malloc" title="gnutls_secure_malloc">gnutls_secure_malloc</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-get-name" title="gnutls_sec_param_get_name ()">gnutls_sec_param_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t">gnutls_sec_param_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()">gnutls_sec_param_to_pk_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-server-name-get" title="gnutls_server_name_get ()">gnutls_server_name_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-server-name-set" title="gnutls_server_name_set ()">gnutls_server_name_set</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-server-name-type-t" title="enum gnutls_server_name_type_t">gnutls_server_name_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-enable-compatibility-mode" title="gnutls_session_enable_compatibility_mode ()">gnutls_session_enable_compatibility_mode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-data" title="gnutls_session_get_data ()">gnutls_session_get_data</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-data2" title="gnutls_session_get_data2 ()">gnutls_session_get_data2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-id" title="gnutls_session_get_id ()">gnutls_session_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-ptr" title="gnutls_session_get_ptr ()">gnutls_session_get_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-int" title="struct gnutls_session_int">gnutls_session_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-is-resumed" title="gnutls_session_is_resumed ()">gnutls_session_is_resumed</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-data" title="gnutls_session_set_data ()">gnutls_session_set_data</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-ptr" title="gnutls_session_set_ptr ()">gnutls_session_set_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t">gnutls_session_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-enable-client" title="gnutls_session_ticket_enable_client ()">gnutls_session_ticket_enable_client</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-enable-server" title="gnutls_session_ticket_enable_server ()">gnutls_session_ticket_enable_server</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-key-generate" title="gnutls_session_ticket_key_generate ()">gnutls_session_ticket_key_generate</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-set-default-priority" title="gnutls_set_default_priority ()">gnutls_set_default_priority</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-get-name" title="gnutls_sign_algorithm_get_name">gnutls_sign_algorithm_get_name</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-get-requested" title="gnutls_sign_algorithm_get_requested ()">gnutls_sign_algorithm_get_requested</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t">gnutls_sign_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-get-id" title="gnutls_sign_get_id ()">gnutls_sign_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-get-name" title="gnutls_sign_get_name ()">gnutls_sign_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-list" title="gnutls_sign_list ()">gnutls_sign_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-1024-group-generator" title="gnutls_srp_1024_group_generator">gnutls_srp_1024_group_generator</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-1024-group-prime" title="gnutls_srp_1024_group_prime">gnutls_srp_1024_group_prime</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-1536-group-generator" title="gnutls_srp_1536_group_generator">gnutls_srp_1536_group_generator</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-1536-group-prime" title="gnutls_srp_1536_group_prime">gnutls_srp_1536_group_prime</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-2048-group-generator" title="gnutls_srp_2048_group_generator">gnutls_srp_2048_group_generator</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-2048-group-prime" title="gnutls_srp_2048_group_prime">gnutls_srp_2048_group_prime</a>, variable in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-allocate-client-credentials" title="gnutls_srp_allocate_client_credentials ()">gnutls_srp_allocate_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-allocate-server-credentials" title="gnutls_srp_allocate_server_credentials ()">gnutls_srp_allocate_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode" title="gnutls_srp_base64_decode ()">gnutls_srp_base64_decode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode-alloc" title="gnutls_srp_base64_decode_alloc ()">gnutls_srp_base64_decode_alloc</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode" title="gnutls_srp_base64_encode ()">gnutls_srp_base64_encode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode-alloc" title="gnutls_srp_base64_encode_alloc ()">gnutls_srp_base64_encode_alloc</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-free-client-credentials" title="gnutls_srp_free_client_credentials ()">gnutls_srp_free_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-free-server-credentials" title="gnutls_srp_free_server_credentials ()">gnutls_srp_free_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-server-get-username" title="gnutls_srp_server_get_username ()">gnutls_srp_server_get_username</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-client-credentials" title="gnutls_srp_set_client_credentials ()">gnutls_srp_set_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-client-credentials-function" title="gnutls_srp_set_client_credentials_function ()">gnutls_srp_set_client_credentials_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-prime-bits" title="gnutls_srp_set_prime_bits ()">gnutls_srp_set_prime_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-credentials-file" title="gnutls_srp_set_server_credentials_file ()">gnutls_srp_set_server_credentials_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-credentials-function" title="gnutls_srp_set_server_credentials_function ()">gnutls_srp_set_server_credentials_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-verifier" title="gnutls_srp_verifier ()">gnutls_srp_verifier</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-strdup" title="gnutls_strdup ()">gnutls_strdup</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-strerror" title="gnutls_strerror ()">gnutls_strerror</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-strerror-name" title="gnutls_strerror_name ()">gnutls_strerror_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t" title="enum gnutls_supplemental_data_format_type_t">gnutls_supplemental_data_format_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxT"></a><h3 class="title">T</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-get-ptr" title="gnutls_transport_get_ptr ()">gnutls_transport_get_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-get-ptr2" title="gnutls_transport_get_ptr2 ()">gnutls_transport_get_ptr2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t">gnutls_transport_ptr_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-errno" title="gnutls_transport_set_errno ()">gnutls_transport_set_errno</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-errno-function" title="gnutls_transport_set_errno_function ()">gnutls_transport_set_errno_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr" title="gnutls_transport_set_ptr ()">gnutls_transport_set_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()">gnutls_transport_set_ptr2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-function" title="gnutls_transport_set_pull_function ()">gnutls_transport_set_pull_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-push-function" title="gnutls_transport_set_push_function ()">gnutls_transport_set_push_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxV"></a><h3 class="title">V</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-vec-push-func" title="gnutls_vec_push_func ()">gnutls_vec_push_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION:CAPS" title="GNUTLS_VERSION">GNUTLS_VERSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-MAJOR:CAPS" title="GNUTLS_VERSION_MAJOR">GNUTLS_VERSION_MAJOR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-MINOR:CAPS" title="GNUTLS_VERSION_MINOR">GNUTLS_VERSION_MINOR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-NUMBER:CAPS" title="GNUTLS_VERSION_NUMBER">GNUTLS_VERSION_NUMBER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-PATCH:CAPS" title="GNUTLS_VERSION_PATCH">GNUTLS_VERSION_PATCH</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxW"></a><h3 class="title">W</h3>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-write" title="gnutls_write">gnutls_write</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxX"></a><h3 class="title">X</h3>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-check-issuer" title="gnutls_x509_crl_check_issuer ()">gnutls_x509_crl_check_issuer</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-deinit" title="gnutls_x509_crl_deinit ()">gnutls_x509_crl_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-export" title="gnutls_x509_crl_export ()">gnutls_x509_crl_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-authority-key-id" title="gnutls_x509_crl_get_authority_key_id ()">gnutls_x509_crl_get_authority_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-certificate" title="gnutls_x509_crl_get_certificate">gnutls_x509_crl_get_certificate</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-certificate-count" title="gnutls_x509_crl_get_certificate_count">gnutls_x509_crl_get_certificate_count</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-crt-count" title="gnutls_x509_crl_get_crt_count ()">gnutls_x509_crl_get_crt_count</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-crt-serial" title="gnutls_x509_crl_get_crt_serial ()">gnutls_x509_crl_get_crt_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-dn-oid" title="gnutls_x509_crl_get_dn_oid ()">gnutls_x509_crl_get_dn_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-data" title="gnutls_x509_crl_get_extension_data ()">gnutls_x509_crl_get_extension_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-info" title="gnutls_x509_crl_get_extension_info ()">gnutls_x509_crl_get_extension_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-oid" title="gnutls_x509_crl_get_extension_oid ()">gnutls_x509_crl_get_extension_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn" title="gnutls_x509_crl_get_issuer_dn ()">gnutls_x509_crl_get_issuer_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn-by-oid" title="gnutls_x509_crl_get_issuer_dn_by_oid ()">gnutls_x509_crl_get_issuer_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-next-update" title="gnutls_x509_crl_get_next_update ()">gnutls_x509_crl_get_next_update</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-number" title="gnutls_x509_crl_get_number ()">gnutls_x509_crl_get_number</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-signature" title="gnutls_x509_crl_get_signature ()">gnutls_x509_crl_get_signature</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-signature-algorithm" title="gnutls_x509_crl_get_signature_algorithm ()">gnutls_x509_crl_get_signature_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-this-update" title="gnutls_x509_crl_get_this_update ()">gnutls_x509_crl_get_this_update</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-version" title="gnutls_x509_crl_get_version ()">gnutls_x509_crl_get_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-import" title="gnutls_x509_crl_import ()">gnutls_x509_crl_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-init" title="gnutls_x509_crl_init ()">gnutls_x509_crl_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-int" title="struct gnutls_x509_crl_int">gnutls_x509_crl_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-print" title="gnutls_x509_crl_print ()">gnutls_x509_crl_print</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crl-privkey-sign" title="gnutls_x509_crl_privkey_sign ()">gnutls_x509_crl_privkey_sign</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-authority-key-id" title="gnutls_x509_crl_set_authority_key_id ()">gnutls_x509_crl_set_authority_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-crt" title="gnutls_x509_crl_set_crt ()">gnutls_x509_crl_set_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-crt-serial" title="gnutls_x509_crl_set_crt_serial ()">gnutls_x509_crl_set_crt_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-next-update" title="gnutls_x509_crl_set_next_update ()">gnutls_x509_crl_set_next_update</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-number" title="gnutls_x509_crl_set_number ()">gnutls_x509_crl_set_number</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-this-update" title="gnutls_x509_crl_set_this_update ()">gnutls_x509_crl_set_this_update</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-version" title="gnutls_x509_crl_set_version ()">gnutls_x509_crl_set_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-sign2" title="gnutls_x509_crl_sign2 ()">gnutls_x509_crl_sign2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t">gnutls_x509_crl_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-verify" title="gnutls_x509_crl_verify ()">gnutls_x509_crl_verify</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-deinit" title="gnutls_x509_crq_deinit ()">gnutls_x509_crq_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-export" title="gnutls_x509_crq_export ()">gnutls_x509_crq_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-by-oid" title="gnutls_x509_crq_get_attribute_by_oid ()">gnutls_x509_crq_get_attribute_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-data" title="gnutls_x509_crq_get_attribute_data ()">gnutls_x509_crq_get_attribute_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-info" title="gnutls_x509_crq_get_attribute_info ()">gnutls_x509_crq_get_attribute_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-basic-constraints" title="gnutls_x509_crq_get_basic_constraints ()">gnutls_x509_crq_get_basic_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-challenge-password" title="gnutls_x509_crq_get_challenge_password ()">gnutls_x509_crq_get_challenge_password</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn" title="gnutls_x509_crq_get_dn ()">gnutls_x509_crq_get_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn-by-oid" title="gnutls_x509_crq_get_dn_by_oid ()">gnutls_x509_crq_get_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn-oid" title="gnutls_x509_crq_get_dn_oid ()">gnutls_x509_crq_get_dn_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid" title="gnutls_x509_crq_get_extension_by_oid ()">gnutls_x509_crq_get_extension_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-data" title="gnutls_x509_crq_get_extension_data ()">gnutls_x509_crq_get_extension_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-info" title="gnutls_x509_crq_get_extension_info ()">gnutls_x509_crq_get_extension_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-id" title="gnutls_x509_crq_get_key_id ()">gnutls_x509_crq_get_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-purpose-oid" title="gnutls_x509_crq_get_key_purpose_oid ()">gnutls_x509_crq_get_key_purpose_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-rsa-raw" title="gnutls_x509_crq_get_key_rsa_raw ()">gnutls_x509_crq_get_key_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-usage" title="gnutls_x509_crq_get_key_usage ()">gnutls_x509_crq_get_key_usage</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-pk-algorithm" title="gnutls_x509_crq_get_pk_algorithm ()">gnutls_x509_crq_get_pk_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" title="gnutls_x509_crq_get_subject_alt_name ()">gnutls_x509_crq_get_subject_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-othername-oid" title="gnutls_x509_crq_get_subject_alt_othername_oid ()">gnutls_x509_crq_get_subject_alt_othername_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-version" title="gnutls_x509_crq_get_version ()">gnutls_x509_crq_get_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-import" title="gnutls_x509_crq_import ()">gnutls_x509_crq_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-init" title="gnutls_x509_crq_init ()">gnutls_x509_crq_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-int" title="struct gnutls_x509_crq_int">gnutls_x509_crq_int</a>, struct in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-print" title="gnutls_x509_crq_print ()">gnutls_x509_crq_print</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crq-privkey-sign" title="gnutls_x509_crq_privkey_sign ()">gnutls_x509_crq_privkey_sign</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-attribute-by-oid" title="gnutls_x509_crq_set_attribute_by_oid ()">gnutls_x509_crq_set_attribute_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-basic-constraints" title="gnutls_x509_crq_set_basic_constraints ()">gnutls_x509_crq_set_basic_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-challenge-password" title="gnutls_x509_crq_set_challenge_password ()">gnutls_x509_crq_set_challenge_password</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-dn-by-oid" title="gnutls_x509_crq_set_dn_by_oid ()">gnutls_x509_crq_set_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key" title="gnutls_x509_crq_set_key ()">gnutls_x509_crq_set_key</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-purpose-oid" title="gnutls_x509_crq_set_key_purpose_oid ()">gnutls_x509_crq_set_key_purpose_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-rsa-raw" title="gnutls_x509_crq_set_key_rsa_raw ()">gnutls_x509_crq_set_key_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-usage" title="gnutls_x509_crq_set_key_usage ()">gnutls_x509_crq_set_key_usage</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crq-set-pubkey" title="gnutls_x509_crq_set_pubkey ()">gnutls_x509_crq_set_pubkey</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-subject-alt-name" title="gnutls_x509_crq_set_subject_alt_name ()">gnutls_x509_crq_set_subject_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-version" title="gnutls_x509_crq_set_version ()">gnutls_x509_crq_set_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-sign2" title="gnutls_x509_crq_sign2 ()">gnutls_x509_crq_sign2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t">gnutls_x509_crq_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-hostname" title="gnutls_x509_crt_check_hostname ()">gnutls_x509_crt_check_hostname</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-issuer" title="gnutls_x509_crt_check_issuer ()">gnutls_x509_crt_check_issuer</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-revocation" title="gnutls_x509_crt_check_revocation ()">gnutls_x509_crt_check_revocation</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-cpy-crl-dist-points" title="gnutls_x509_crt_cpy_crl_dist_points ()">gnutls_x509_crt_cpy_crl_dist_points</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()">gnutls_x509_crt_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-export" title="gnutls_x509_crt_export ()">gnutls_x509_crt_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t">gnutls_x509_crt_fmt_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-activation-time" title="gnutls_x509_crt_get_activation_time ()">gnutls_x509_crt_get_activation_time</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-authority-key-id" title="gnutls_x509_crt_get_authority_key_id ()">gnutls_x509_crt_get_authority_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-basic-constraints" title="gnutls_x509_crt_get_basic_constraints ()">gnutls_x509_crt_get_basic_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-ca-status" title="gnutls_x509_crt_get_ca_status ()">gnutls_x509_crt_get_ca_status</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-crl-dist-points" title="gnutls_x509_crt_get_crl_dist_points ()">gnutls_x509_crt_get_crl_dist_points</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn" title="gnutls_x509_crt_get_dn ()">gnutls_x509_crt_get_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn-by-oid" title="gnutls_x509_crt_get_dn_by_oid ()">gnutls_x509_crt_get_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn-oid" title="gnutls_x509_crt_get_dn_oid ()">gnutls_x509_crt_get_dn_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-expiration-time" title="gnutls_x509_crt_get_expiration_time ()">gnutls_x509_crt_get_expiration_time</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid" title="gnutls_x509_crt_get_extension_by_oid ()">gnutls_x509_crt_get_extension_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-data" title="gnutls_x509_crt_get_extension_data ()">gnutls_x509_crt_get_extension_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-info" title="gnutls_x509_crt_get_extension_info ()">gnutls_x509_crt_get_extension_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-oid" title="gnutls_x509_crt_get_extension_oid ()">gnutls_x509_crt_get_extension_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-fingerprint" title="gnutls_x509_crt_get_fingerprint ()">gnutls_x509_crt_get_fingerprint</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer" title="gnutls_x509_crt_get_issuer ()">gnutls_x509_crt_get_issuer</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" title="gnutls_x509_crt_get_issuer_alt_name ()">gnutls_x509_crt_get_issuer_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name2" title="gnutls_x509_crt_get_issuer_alt_name2 ()">gnutls_x509_crt_get_issuer_alt_name2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-othername-oid" title="gnutls_x509_crt_get_issuer_alt_othername_oid ()">gnutls_x509_crt_get_issuer_alt_othername_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn" title="gnutls_x509_crt_get_issuer_dn ()">gnutls_x509_crt_get_issuer_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-by-oid" title="gnutls_x509_crt_get_issuer_dn_by_oid ()">gnutls_x509_crt_get_issuer_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-oid" title="gnutls_x509_crt_get_issuer_dn_oid ()">gnutls_x509_crt_get_issuer_dn_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-id" title="gnutls_x509_crt_get_key_id ()">gnutls_x509_crt_get_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-purpose-oid" title="gnutls_x509_crt_get_key_purpose_oid ()">gnutls_x509_crt_get_key_purpose_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-usage" title="gnutls_x509_crt_get_key_usage ()">gnutls_x509_crt_get_key_usage</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-algorithm" title="gnutls_x509_crt_get_pk_algorithm ()">gnutls_x509_crt_get_pk_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-dsa-raw" title="gnutls_x509_crt_get_pk_dsa_raw ()">gnutls_x509_crt_get_pk_dsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-rsa-raw" title="gnutls_x509_crt_get_pk_rsa_raw ()">gnutls_x509_crt_get_pk_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-proxy" title="gnutls_x509_crt_get_proxy ()">gnutls_x509_crt_get_proxy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-raw-dn" title="gnutls_x509_crt_get_raw_dn ()">gnutls_x509_crt_get_raw_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-raw-issuer-dn" title="gnutls_x509_crt_get_raw_issuer_dn ()">gnutls_x509_crt_get_raw_issuer_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-serial" title="gnutls_x509_crt_get_serial ()">gnutls_x509_crt_get_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-signature" title="gnutls_x509_crt_get_signature ()">gnutls_x509_crt_get_signature</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-signature-algorithm" title="gnutls_x509_crt_get_signature_algorithm ()">gnutls_x509_crt_get_signature_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject" title="gnutls_x509_crt_get_subject ()">gnutls_x509_crt_get_subject</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()">gnutls_x509_crt_get_subject_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name2" title="gnutls_x509_crt_get_subject_alt_name2 ()">gnutls_x509_crt_get_subject_alt_name2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid" title="gnutls_x509_crt_get_subject_alt_othername_oid ()">gnutls_x509_crt_get_subject_alt_othername_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-key-id" title="gnutls_x509_crt_get_subject_key_id ()">gnutls_x509_crt_get_subject_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-version" title="gnutls_x509_crt_get_version ()">gnutls_x509_crt_get_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-import" title="gnutls_x509_crt_import ()">gnutls_x509_crt_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11" title="gnutls_x509_crt_import_pkcs11 ()">gnutls_x509_crt_import_pkcs11</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11-url" title="gnutls_x509_crt_import_pkcs11_url ()">gnutls_x509_crt_import_pkcs11_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-init" title="gnutls_x509_crt_init ()">gnutls_x509_crt_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-int" title="struct gnutls_x509_crt_int">gnutls_x509_crt_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-import" title="gnutls_x509_crt_list_import ()">gnutls_x509_crt_list_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-list-import-pkcs11" title="gnutls_x509_crt_list_import_pkcs11 ()">gnutls_x509_crt_list_import_pkcs11</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-verify" title="gnutls_x509_crt_list_verify ()">gnutls_x509_crt_list_verify</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-print" title="gnutls_x509_crt_print ()">gnutls_x509_crt_print</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crt-privkey-sign" title="gnutls_x509_crt_privkey_sign ()">gnutls_x509_crt_privkey_sign</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-activation-time" title="gnutls_x509_crt_set_activation_time ()">gnutls_x509_crt_set_activation_time</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-authority-key-id" title="gnutls_x509_crt_set_authority_key_id ()">gnutls_x509_crt_set_authority_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-basic-constraints" title="gnutls_x509_crt_set_basic_constraints ()">gnutls_x509_crt_set_basic_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-ca-status" title="gnutls_x509_crt_set_ca_status ()">gnutls_x509_crt_set_ca_status</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points" title="gnutls_x509_crt_set_crl_dist_points ()">gnutls_x509_crt_set_crl_dist_points</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points2" title="gnutls_x509_crt_set_crl_dist_points2 ()">gnutls_x509_crt_set_crl_dist_points2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crq" title="gnutls_x509_crt_set_crq ()">gnutls_x509_crt_set_crq</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crq-extensions" title="gnutls_x509_crt_set_crq_extensions ()">gnutls_x509_crt_set_crq_extensions</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid" title="gnutls_x509_crt_set_dn_by_oid ()">gnutls_x509_crt_set_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-expiration-time" title="gnutls_x509_crt_set_expiration_time ()">gnutls_x509_crt_set_expiration_time</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-extension-by-oid" title="gnutls_x509_crt_set_extension_by_oid ()">gnutls_x509_crt_set_extension_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-issuer-dn-by-oid" title="gnutls_x509_crt_set_issuer_dn_by_oid ()">gnutls_x509_crt_set_issuer_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key" title="gnutls_x509_crt_set_key ()">gnutls_x509_crt_set_key</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key-purpose-oid" title="gnutls_x509_crt_set_key_purpose_oid ()">gnutls_x509_crt_set_key_purpose_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key-usage" title="gnutls_x509_crt_set_key_usage ()">gnutls_x509_crt_set_key_usage</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-proxy" title="gnutls_x509_crt_set_proxy ()">gnutls_x509_crt_set_proxy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-proxy-dn" title="gnutls_x509_crt_set_proxy_dn ()">gnutls_x509_crt_set_proxy_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crt-set-pubkey" title="gnutls_x509_crt_set_pubkey ()">gnutls_x509_crt_set_pubkey</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-serial" title="gnutls_x509_crt_set_serial ()">gnutls_x509_crt_set_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alternative-name" title="gnutls_x509_crt_set_subject_alternative_name ()">gnutls_x509_crt_set_subject_alternative_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" title="gnutls_x509_crt_set_subject_alt_name ()">gnutls_x509_crt_set_subject_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-key-id" title="gnutls_x509_crt_set_subject_key_id ()">gnutls_x509_crt_set_subject_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-version" title="gnutls_x509_crt_set_version ()">gnutls_x509_crt_set_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-sign" title="gnutls_x509_crt_sign ()">gnutls_x509_crt_sign</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-sign2" title="gnutls_x509_crt_sign2 ()">gnutls_x509_crt_sign2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t">gnutls_x509_crt_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-verify" title="gnutls_x509_crt_verify ()">gnutls_x509_crt_verify</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-deinit" title="gnutls_x509_dn_deinit ()">gnutls_x509_dn_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-export" title="gnutls_x509_dn_export ()">gnutls_x509_dn_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()">gnutls_x509_dn_get_rdn_ava</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-import" title="gnutls_x509_dn_import ()">gnutls_x509_dn_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-init" title="gnutls_x509_dn_init ()">gnutls_x509_dn_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()">gnutls_x509_dn_oid_known</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t">gnutls_x509_dn_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-cpy" title="gnutls_x509_privkey_cpy ()">gnutls_x509_privkey_cpy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-deinit" title="gnutls_x509_privkey_deinit ()">gnutls_x509_privkey_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export" title="gnutls_x509_privkey_export ()">gnutls_x509_privkey_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-dsa-raw" title="gnutls_x509_privkey_export_dsa_raw ()">gnutls_x509_privkey_export_dsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-pkcs8" title="gnutls_x509_privkey_export_pkcs8 ()">gnutls_x509_privkey_export_pkcs8</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw" title="gnutls_x509_privkey_export_rsa_raw ()">gnutls_x509_privkey_export_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw2" title="gnutls_x509_privkey_export_rsa_raw2 ()">gnutls_x509_privkey_export_rsa_raw2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-fix" title="gnutls_x509_privkey_fix ()">gnutls_x509_privkey_fix</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-generate" title="gnutls_x509_privkey_generate ()">gnutls_x509_privkey_generate</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-key-id" title="gnutls_x509_privkey_get_key_id ()">gnutls_x509_privkey_get_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-pk-algorithm" title="gnutls_x509_privkey_get_pk_algorithm ()">gnutls_x509_privkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import" title="gnutls_x509_privkey_import ()">gnutls_x509_privkey_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-dsa-raw" title="gnutls_x509_privkey_import_dsa_raw ()">gnutls_x509_privkey_import_dsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-pkcs8" title="gnutls_x509_privkey_import_pkcs8 ()">gnutls_x509_privkey_import_pkcs8</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw" title="gnutls_x509_privkey_import_rsa_raw ()">gnutls_x509_privkey_import_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw2" title="gnutls_x509_privkey_import_rsa_raw2 ()">gnutls_x509_privkey_import_rsa_raw2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-init" title="gnutls_x509_privkey_init ()">gnutls_x509_privkey_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-int" title="struct gnutls_x509_privkey_int">gnutls_x509_privkey_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t">gnutls_x509_privkey_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get" title="gnutls_x509_rdn_get ()">gnutls_x509_rdn_get</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get-by-oid" title="gnutls_x509_rdn_get_by_oid ()">gnutls_x509_rdn_get_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get-oid" title="gnutls_x509_rdn_get_oid ()">gnutls_x509_rdn_get_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t">gnutls_x509_subject_alt_name_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index e7c5711..ac1b58a 100644 (file)
 <a name="gnutls-abstract.synopsis"></a><h2>Synopsis</h2>
 <pre class="synopsis">struct              <a class="link" href="gnutls-abstract.html#gnutls-pubkey-st" title="struct gnutls_pubkey_st">gnutls_pubkey_st</a>;
 typedef             <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t">gnutls_pubkey_t</a>;
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-init" title="gnutls_pubkey_init ()">gnutls_pubkey_init</a>                  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> *key</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-abstract.html#gnutls-pubkey-deinit" title="gnutls_pubkey_deinit ()">gnutls_pubkey_deinit</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm" title="gnutls_pubkey_get_pk_algorithm ()">gnutls_pubkey_get_pk_algorithm</a>      (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *bits</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()">gnutls_pubkey_import_x509</a>           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-init" title="gnutls_pubkey_init ()">gnutls_pubkey_init</a>                  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> *key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-abstract.html#gnutls-pubkey-deinit" title="gnutls_pubkey_deinit ()">gnutls_pubkey_deinit</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm" title="gnutls_pubkey_get_pk_algorithm ()">gnutls_pubkey_get_pk_algorithm</a>      (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()">gnutls_pubkey_import_x509</a>           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11" title="gnutls_pubkey_import_pkcs11 ()">gnutls_pubkey_import_pkcs11</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11" title="gnutls_pubkey_import_pkcs11 ()">gnutls_pubkey_import_pkcs11</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-openpgp" title="gnutls_pubkey_import_openpgp ()">gnutls_pubkey_import_openpgp</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-openpgp" title="gnutls_pubkey_import_openpgp ()">gnutls_pubkey_import_openpgp</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()">gnutls_pubkey_get_preferred_hash_algorithm</a>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()">gnutls_pubkey_get_preferred_hash_algorithm</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *mand</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw" title="gnutls_pubkey_get_pk_rsa_raw ()">gnutls_pubkey_get_pk_rsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *m</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *e</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw" title="gnutls_pubkey_get_pk_dsa_raw ()">gnutls_pubkey_get_pk_dsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *p</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *q</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *g</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *y</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-export" title="gnutls_pubkey_export ()">gnutls_pubkey_export</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *mand</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw" title="gnutls_pubkey_get_pk_rsa_raw ()">gnutls_pubkey_get_pk_rsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw" title="gnutls_pubkey_get_pk_dsa_raw ()">gnutls_pubkey_get_pk_dsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-export" title="gnutls_pubkey_export ()">gnutls_pubkey_export</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *output_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *output_data_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-id" title="gnutls_pubkey_get_key_id ()">gnutls_pubkey_get_key_id</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *output_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *output_data_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-usage" title="gnutls_pubkey_get_key_usage ()">gnutls_pubkey_get_key_usage</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *usage</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-set-key-usage" title="gnutls_pubkey_set_key_usage ()">gnutls_pubkey_set_key_usage</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> usage</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import" title="gnutls_pubkey_import ()">gnutls_pubkey_import</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-id" title="gnutls_pubkey_get_key_id ()">gnutls_pubkey_get_key_id</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-usage" title="gnutls_pubkey_get_key_usage ()">gnutls_pubkey_get_key_usage</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *usage</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-set-key-usage" title="gnutls_pubkey_set_key_usage ()">gnutls_pubkey_set_key_usage</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import" title="gnutls_pubkey_import ()">gnutls_pubkey_import</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url" title="gnutls_pubkey_import_pkcs11_url ()">gnutls_pubkey_import_pkcs11_url</a>     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *url</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-dsa-raw" title="gnutls_pubkey_import_dsa_raw ()">gnutls_pubkey_import_dsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *p</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *q</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *g</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *y</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-rsa-raw" title="gnutls_pubkey_import_rsa_raw ()">gnutls_pubkey_import_rsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *m</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *e</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crt-set-pubkey" title="gnutls_x509_crt_set_pubkey ()">gnutls_x509_crt_set_pubkey</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url" title="gnutls_pubkey_import_pkcs11_url ()">gnutls_pubkey_import_pkcs11_url</a>     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-dsa-raw" title="gnutls_pubkey_import_dsa_raw ()">gnutls_pubkey_import_dsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *y</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-rsa-raw" title="gnutls_pubkey_import_rsa_raw ()">gnutls_pubkey_import_rsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crt-set-pubkey" title="gnutls_x509_crt_set_pubkey ()">gnutls_x509_crt_set_pubkey</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crq-set-pubkey" title="gnutls_x509_crq_set_pubkey ()">gnutls_x509_crq_set_pubkey</a>          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crq-set-pubkey" title="gnutls_x509_crq_set_pubkey ()">gnutls_x509_crq_set_pubkey</a>          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-verify-hash" title="gnutls_pubkey_verify_hash ()">gnutls_pubkey_verify_hash</a>           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *hash</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *signature</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-verify-algorithm" title="gnutls_pubkey_get_verify_algorithm ()">gnutls_pubkey_get_verify_algorithm</a>  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *signature</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-verify-hash" title="gnutls_pubkey_verify_hash ()">gnutls_pubkey_verify_hash</a>           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hash</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *signature</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-verify-algorithm" title="gnutls_pubkey_get_verify_algorithm ()">gnutls_pubkey_get_verify_algorithm</a>  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *signature</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>);
 struct              <a class="link" href="gnutls-abstract.html#gnutls-privkey-st" title="struct gnutls_privkey_st">gnutls_privkey_st</a>;
 typedef             <a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t">gnutls_privkey_t</a>;
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-init" title="gnutls_privkey_init ()">gnutls_privkey_init</a>                 (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> *key</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit" title="gnutls_privkey_deinit ()">gnutls_privkey_deinit</a>               (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-get-pk-algorithm" title="gnutls_privkey_get_pk_algorithm ()">gnutls_privkey_get_pk_algorithm</a>     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-init" title="gnutls_privkey_init ()">gnutls_privkey_init</a>                 (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> *key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit" title="gnutls_privkey_deinit ()">gnutls_privkey_deinit</a>               (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-get-pk-algorithm" title="gnutls_privkey_get_pk_algorithm ()">gnutls_privkey_get_pk_algorithm</a>     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-privkey-type-t" title="enum gnutls_privkey_type_t"><span class="returnvalue">gnutls_privkey_type_t</span></a> <a class="link" href="gnutls-abstract.html#gnutls-privkey-get-type" title="gnutls_privkey_get_type ()">gnutls_privkey_get_type</a>           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);
 #define             <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</a>
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-pkcs11" title="gnutls_privkey_import_pkcs11 ()">gnutls_privkey_import_pkcs11</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-pkcs11" title="gnutls_privkey_import_pkcs11 ()">gnutls_privkey_import_pkcs11</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-x509" title="gnutls_privkey_import_x509 ()">gnutls_privkey_import_x509</a>          (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-x509" title="gnutls_privkey_import_x509 ()">gnutls_privkey_import_x509</a>          (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-openpgp" title="gnutls_privkey_import_openpgp ()">gnutls_privkey_import_openpgp</a>       (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-openpgp" title="gnutls_privkey_import_openpgp ()">gnutls_privkey_import_openpgp</a>       (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data" title="gnutls_privkey_sign_data ()">gnutls_privkey_sign_data</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data" title="gnutls_privkey_sign_data ()">gnutls_privkey_sign_data</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *signature</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash" title="gnutls_privkey_sign_hash ()">gnutls_privkey_sign_hash</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *signature</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash" title="gnutls_privkey_sign_hash ()">gnutls_privkey_sign_hash</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash_algo</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *hash_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *signature</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-data" title="gnutls_privkey_decrypt_data ()">gnutls_privkey_decrypt_data</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *ciphertext</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *plaintext</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crt-privkey-sign" title="gnutls_x509_crt_privkey_sign ()">gnutls_x509_crt_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hash_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *signature</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-data" title="gnutls_privkey_decrypt_data ()">gnutls_privkey_decrypt_data</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *ciphertext</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *plaintext</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crt-privkey-sign" title="gnutls_x509_crt_privkey_sign ()">gnutls_x509_crt_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crl-privkey-sign" title="gnutls_x509_crl_privkey_sign ()">gnutls_x509_crl_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crl-privkey-sign" title="gnutls_x509_crl_privkey_sign ()">gnutls_x509_crl_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crq-privkey-sign" title="gnutls_x509_crq_privkey_sign ()">gnutls_x509_crq_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crq-privkey-sign" title="gnutls_x509_crq_privkey_sign ()">gnutls_x509_crq_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -172,7 +172,7 @@ typedef             <a class="link" href="gnutls-abstract.html#gnutls-privkey-t"
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-init"></a><h3>gnutls_pubkey_init ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_init                  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> *key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_init                  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> *key</code></em>);</pre>
 <p>
 This function will initialize an public key structure.
 </p>
@@ -195,7 +195,7 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-deinit"></a><h3>gnutls_pubkey_deinit ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_pubkey_deinit                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pubkey_deinit                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);</pre>
 <p>
 This function will deinitialize a public key structure.
 </p>
@@ -211,8 +211,8 @@ This function will deinitialize a public key structure.
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-get-pk-algorithm"></a><h3>gnutls_pubkey_get_pk_algorithm ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_get_pk_algorithm      (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *bits</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_pk_algorithm      (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
 <p>
 This function will return the public key algorithm of a public
 key and if possible will return a number of bits that indicates
@@ -241,9 +241,9 @@ success, or a negative error code on error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-import-x509"></a><h3>gnutls_pubkey_import_x509 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_import_x509           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_x509           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will import the given public key to the abstract
 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> structure.
@@ -275,9 +275,9 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-import-pkcs11"></a><h3>gnutls_pubkey_import_pkcs11 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_import_pkcs11         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_pkcs11         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 Imports a public key from a pkcs11 key. This function will import
 the given public key to the abstract <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> structure.
@@ -309,9 +309,9 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-import-openpgp"></a><h3>gnutls_pubkey_import_openpgp ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_import_openpgp        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_openpgp        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 Imports a public key from an openpgp key. This function will import
 the given public key to the abstract <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>
@@ -345,10 +345,10 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-get-preferred-hash-algorithm"></a><h3>gnutls_pubkey_get_preferred_hash_algorithm ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_get_preferred_hash_algorithm
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_preferred_hash_algorithm
                                                         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *mand</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *mand</code></em>);</pre>
 <p>
 This function will read the certifcate and return the appropriate digest
 algorithm to use for signing with this certificate. Some certificates (i.e.
@@ -381,9 +381,9 @@ returned on error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-get-pk-rsa-raw"></a><h3>gnutls_pubkey_get_pk_rsa_raw ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_get_pk_rsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *m</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *e</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_pk_rsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
 <p>
 This function will export the RSA public key's parameters found in
 the given structure.  The new parameters will be allocated using
@@ -416,11 +416,11 @@ the given structure.  The new parameters will be allocated using
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-get-pk-dsa-raw"></a><h3>gnutls_pubkey_get_pk_dsa_raw ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_get_pk_dsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *p</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *q</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *g</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *y</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_pk_dsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
 <p>
 This function will export the DSA public key's parameters found in
 the given certificate.  The new parameters will be allocated using
@@ -461,10 +461,10 @@ the given certificate.  The new parameters will be allocated using
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-export"></a><h3>gnutls_pubkey_export ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_export                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_export                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *output_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *output_data_size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
 <p>
 This function will export the public key to DER or PEM format.
 The contents of the exported data is the SubjectPublicKeyInfo
@@ -511,10 +511,10 @@ returned, and 0 on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-get-key-id"></a><h3>gnutls_pubkey_get_key_id ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_get_key_id            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *output_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *output_data_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_key_id            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
 <p>
 This function will return a unique ID the depends on the public
 key parameters. This ID can be used in checking whether a
@@ -558,8 +558,8 @@ returned, and 0 on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-get-key-usage"></a><h3>gnutls_pubkey_get_key_usage ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_get_key_usage         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *usage</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_key_usage         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *usage</code></em>);</pre>
 <p>
 This function will return the key usage of the public key.
 </p>
@@ -586,8 +586,8 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-set-key-usage"></a><h3>gnutls_pubkey_set_key_usage ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_set_key_usage         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> usage</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_set_key_usage         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);</pre>
 <p>
 This function will set the key usage flags of the public key. This
 is only useful if the key is to be exported to a certificate or
@@ -617,8 +617,8 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-import"></a><h3>gnutls_pubkey_import ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_import                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
 <p>
 This function will import the provided public key in
@@ -654,9 +654,9 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-import-pkcs11-url"></a><h3>gnutls_pubkey_import_pkcs11_url ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_import_pkcs11_url     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *url</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_pkcs11_url     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will import a PKCS 11 certificate to a <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>
 structure.
@@ -689,11 +689,11 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-import-dsa-raw"></a><h3>gnutls_pubkey_import_dsa_raw ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_import_dsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *p</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *q</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *g</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *y</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_dsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
 <p>
 This function will convert the given DSA raw parameters to the
 native <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> format.  The output will be stored
@@ -734,9 +734,9 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-import-rsa-raw"></a><h3>gnutls_pubkey_import_rsa_raw ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_import_rsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *m</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *e</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_rsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
 <p>
 This function will replace the parameters in the given structure.
 The new parameters should be stored in the appropriate
@@ -769,7 +769,7 @@ gnutls_datum.
 <hr>
 <div class="refsect2">
 <a name="gnutls-x509-crt-set-pubkey"></a><h3>gnutls_x509_crt_set_pubkey ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_x509_crt_set_pubkey          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_pubkey          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);</pre>
 <p>
 This function will set the public parameters from the given public
@@ -798,7 +798,7 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-x509-crq-set-pubkey"></a><h3>gnutls_x509_crq_set_pubkey ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_x509_crq_set_pubkey          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_pubkey          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);</pre>
 <p>
 This function will set the public parameters from the given public
@@ -827,10 +827,10 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-verify-hash"></a><h3>gnutls_pubkey_verify_hash ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_verify_hash           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *hash</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *signature</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_verify_hash           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hash</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *signature</code></em>);</pre>
 <p>
 This function will verify the given signed digest, using the
 parameters from the public key.
@@ -866,8 +866,8 @@ is returned, and zero or positive code on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pubkey-get-verify-algorithm"></a><h3>gnutls_pubkey_get_verify_algorithm ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pubkey_get_verify_algorithm  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *signature</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_verify_algorithm  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *signature</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>);</pre>
 <p>
 This function will read the certifcate and the signed data to
@@ -915,7 +915,7 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-init"></a><h3>gnutls_privkey_init ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_privkey_init                 (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> *key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_init                 (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> *key</code></em>);</pre>
 <p>
 This function will initialize an private key structure.
 </p>
@@ -938,7 +938,7 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-deinit"></a><h3>gnutls_privkey_deinit ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_privkey_deinit               (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_privkey_deinit               (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);</pre>
 <p>
 This function will deinitialize a private key structure.
 </p>
@@ -954,8 +954,8 @@ This function will deinitialize a private key structure.
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-get-pk-algorithm"></a><h3>gnutls_privkey_get_pk_algorithm ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_privkey_get_pk_algorithm     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *bits</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_get_pk_algorithm     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
 <p>
 This function will return the public key algorithm of a private
 key and if possible will return a number of bits that indicates
@@ -1016,9 +1016,9 @@ success, or a negative error code on error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-import-pkcs11"></a><h3>gnutls_privkey_import_pkcs11 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_privkey_import_pkcs11        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_import_pkcs11        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will import the given private key to the abstract
 <a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> structure.
@@ -1029,7 +1029,7 @@ during the lifetime of this structure.
 </p>
 <p>
 <em class="parameter"><code>flags</code></em> might be zero or one of <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>
-and <GTKDOCLINK HREF="GNUTLS-PRIVKEY-IMPORT-COPY:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code></GTKDOCLINK>.
+and <code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1058,9 +1058,9 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-import-x509"></a><h3>gnutls_privkey_import_x509 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_privkey_import_x509          (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_import_x509          (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will import the given private key to the abstract
 <a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> structure.
@@ -1071,7 +1071,7 @@ during the lifetime of this structure.
 </p>
 <p>
 <em class="parameter"><code>flags</code></em> might be zero or one of <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>
-and <GTKDOCLINK HREF="GNUTLS-PRIVKEY-IMPORT-COPY:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code></GTKDOCLINK>.
+and <code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1100,9 +1100,9 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-import-openpgp"></a><h3>gnutls_privkey_import_openpgp ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_privkey_import_openpgp       (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_import_openpgp       (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will import the given private key to the abstract
 <a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> structure.
@@ -1114,7 +1114,7 @@ preferred will be used, or the master key otherwise.
 </p>
 <p>
 <em class="parameter"><code>flags</code></em> might be zero or one of <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>
-and <GTKDOCLINK HREF="GNUTLS-PRIVKEY-IMPORT-COPY:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code></GTKDOCLINK>.
+and <code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1143,11 +1143,11 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-sign-data"></a><h3>gnutls_privkey_sign_data ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_privkey_sign_data            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_sign_data            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *signature</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *signature</code></em>);</pre>
 <p>
 This function will sign the given data using a signature algorithm
 supported by the private key. Signature algorithms are always used
@@ -1194,11 +1194,11 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-sign-hash"></a><h3>gnutls_privkey_sign_hash ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_privkey_sign_hash            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_sign_hash            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash_algo</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *hash_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *signature</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hash_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *signature</code></em>);</pre>
 <p>
 This function will sign the given hashed data using a signature algorithm
 supported by the private key. Signature algorithms are always used
@@ -1244,10 +1244,10 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-privkey-decrypt-data"></a><h3>gnutls_privkey_decrypt_data ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_privkey_decrypt_data         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *ciphertext</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *plaintext</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_decrypt_data         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *ciphertext</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *plaintext</code></em>);</pre>
 <p>
 This function will decrypt the given data using the algorithm
 supported by the private key.
@@ -1284,11 +1284,11 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-x509-crt-privkey-sign"></a><h3>gnutls_x509_crt_privkey_sign ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_x509_crt_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will sign the certificate with the issuer's private key, and
 will copy the issuer's information into the certificate.
@@ -1332,11 +1332,11 @@ negative error value.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-x509-crl-privkey-sign"></a><h3>gnutls_x509_crl_privkey_sign ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_x509_crl_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will sign the CRL with the issuer's private key, and
 will copy the issuer's information into the CRL.
@@ -1380,10 +1380,10 @@ Since 2.12.0</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-x509-crq-privkey-sign"></a><h3>gnutls_x509_crq_privkey_sign ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_x509_crq_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will sign the certificate request with a private key.
 This must be the same key as the one used in
@@ -1432,4 +1432,4 @@ information in the certificate request (e.g., the version using
 <hr>
           Generated by GTK-Doc V1.18</div>
 </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/gnutls-crypto.html b/doc/reference/html/gnutls-crypto.html
new file mode 100644 (file)
index 0000000..fd82ab0
--- /dev/null
@@ -0,0 +1,800 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>crypto</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="intro.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="gnutls-openpgp.html" title="openpgp">
+<link rel="next" href="gnutls-pkcs11.html" title="pkcs11">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gnutls-openpgp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="intro.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="gnutls-pkcs11.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gnutls-crypto.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gnutls-crypto.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gnutls-crypto"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-crypto.top_of_page"></a>crypto</span></h2>
+<p>crypto</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gnutls-crypto.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">typedef             <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t">gnutls_cipher_hd_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-cipher-init" title="gnutls_cipher_init ()">gnutls_cipher_init</a>                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> *handle</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> cipher</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *iv</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt" title="gnutls_cipher_encrypt ()">gnutls_cipher_encrypt</a>               (<em class="parameter"><code>const <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt" title="gnutls_cipher_decrypt ()">gnutls_cipher_decrypt</a>               (<em class="parameter"><code>const <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ciphertext</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt2" title="gnutls_cipher_decrypt2 ()">gnutls_cipher_decrypt2</a>              (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *ciphertext</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt2" title="gnutls_cipher_encrypt2 ()">gnutls_cipher_encrypt2</a>              (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ciphertext</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-crypto.html#gnutls-cipher-deinit" title="gnutls_cipher_deinit ()">gnutls_cipher_deinit</a>                (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-cipher-get-block-size" title="gnutls_cipher_get_block_size ()">gnutls_cipher_get_block_size</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);
+typedef             <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t">gnutls_hash_hd_t</a>;
+typedef             <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t">gnutls_hmac_hd_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-hmac-init" title="gnutls_hmac_init ()">gnutls_hmac_init</a>                    (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> *dig</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *key</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> keylen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-hmac" title="gnutls_hmac ()">gnutls_hmac</a>                         (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-crypto.html#gnutls-hmac-output" title="gnutls_hmac_output ()">gnutls_hmac_output</a>                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-crypto.html#gnutls-hmac-deinit" title="gnutls_hmac_deinit ()">gnutls_hmac_deinit</a>                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-hmac-get-len" title="gnutls_hmac_get_len ()">gnutls_hmac_get_len</a>                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-hmac-fast" title="gnutls_hmac_fast ()">gnutls_hmac_fast</a>                    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *key</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> keylen</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-hash-init" title="gnutls_hash_init ()">gnutls_hash_init</a>                    (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> *dig</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algorithm</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-hash" title="gnutls_hash ()">gnutls_hash</a>                         (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-crypto.html#gnutls-hash-output" title="gnutls_hash_output ()">gnutls_hash_output</a>                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-crypto.html#gnutls-hash-deinit" title="gnutls_hash_deinit ()">gnutls_hash_deinit</a>                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-hash-get-len" title="gnutls_hash_get_len ()">gnutls_hash_get_len</a>                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algorithm</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-hash-fast" title="gnutls_hash_fast ()">gnutls_hash_fast</a>                    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algorithm</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);
+enum                <a class="link" href="gnutls-crypto.html#gnutls-rnd-level-t" title="enum gnutls_rnd_level_t">gnutls_rnd_level_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-crypto.html#gnutls-rnd" title="gnutls_rnd ()">gnutls_rnd</a>                          (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-rnd-level-t" title="enum gnutls_rnd_level_t"><span class="type">gnutls_rnd_level_t</span></a> level</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> len</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gnutls-crypto.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gnutls-crypto.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gnutls-cipher-hd-t"></a><h3>gnutls_cipher_hd_t</h3>
+<pre class="programlisting">  typedef struct api_cipher_hd_st *gnutls_cipher_hd_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-init"></a><h3>gnutls_cipher_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_cipher_init                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> *handle</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> cipher</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *iv</code></em>);</pre>
+<p>
+This function will initialize an context that can be used for
+encryption/decryption of data. This will effectively use the
+current crypto backend in use by gnutls or the cryptographic
+accelerator in use.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cipher</code></em> :</span></p></td>
+<td>the encryption algorithm to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The key to be used for encryption</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>iv</code></em> :</span></p></td>
+<td>The IV to use (if not applicable set NULL)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-encrypt"></a><h3>gnutls_cipher_encrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_cipher_encrypt               (<em class="parameter"><code>const <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);</pre>
+<p>
+This function will encrypt the given data using the algorithm
+specified by the context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the data to encrypt</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>textlen</code></em> :</span></p></td>
+<td>The length of data to encrypt</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-decrypt"></a><h3>gnutls_cipher_decrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_cipher_decrypt               (<em class="parameter"><code>const <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ciphertext</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>);</pre>
+<p>
+This function will decrypt the given data using the algorithm
+specified by the context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ciphertext</code></em> :</span></p></td>
+<td>the data to encrypt</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ciphertextlen</code></em> :</span></p></td>
+<td>The length of data to encrypt</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-decrypt2"></a><h3>gnutls_cipher_decrypt2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_cipher_decrypt2              (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *ciphertext</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);</pre>
+<p>
+This function will decrypt the given data using the algorithm
+specified by the context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ciphertext</code></em> :</span></p></td>
+<td>the data to encrypt</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ciphertextlen</code></em> :</span></p></td>
+<td>The length of data to encrypt</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the decrypted data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>textlen</code></em> :</span></p></td>
+<td>The available length for decrypted data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-encrypt2"></a><h3>gnutls_cipher_encrypt2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_cipher_encrypt2              (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ciphertext</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>);</pre>
+<p>
+This function will encrypt the given data using the algorithm
+specified by the context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the data to encrypt</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>textlen</code></em> :</span></p></td>
+<td>The length of data to encrypt</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ciphertext</code></em> :</span></p></td>
+<td>the encrypted data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ciphertextlen</code></em> :</span></p></td>
+<td>The available length for encrypted data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-deinit"></a><h3>gnutls_cipher_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_cipher_deinit                (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>);</pre>
+<p>
+This function will deinitialize all resources occupied by the given
+encryption context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> structure.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-get-block-size"></a><h3>gnutls_cipher_get_block_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_cipher_get_block_size        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);</pre>
+<p>
+Get block size for encryption algorithm.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algorithm</code></em> :</span></p></td>
+<td>is an encryption algorithm</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>block size for encryption algorithm.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-hd-t"></a><h3>gnutls_hash_hd_t</h3>
+<pre class="programlisting">  typedef struct hash_hd_st *gnutls_hash_hd_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-hd-t"></a><h3>gnutls_hmac_hd_t</h3>
+<pre class="programlisting">  typedef struct hmac_hd_st *gnutls_hmac_hd_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-init"></a><h3>gnutls_hmac_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hmac_init                    (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> *dig</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *key</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> keylen</code></em>);</pre>
+<p>
+This function will initialize an context that can be used to
+produce a Message Authentication Code (MAC) of data.  This will
+effectively use the current crypto backend in use by gnutls or the
+cryptographic accelerator in use.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dig</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algorithm</code></em> :</span></p></td>
+<td>the HMAC algorithm to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The key to be used for encryption</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keylen</code></em> :</span></p></td>
+<td>The length of the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac"></a><h3>gnutls_hmac ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hmac                         (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);</pre>
+<p>
+This function will hash the given data using the algorithm
+specified by the context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the data to hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>textlen</code></em> :</span></p></td>
+<td>The length of data to hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-output"></a><h3>gnutls_hmac_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_hmac_output                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>
+This function will output the current MAC value.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>digest</code></em> :</span></p></td>
+<td>is the output value of the MAC</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-deinit"></a><h3>gnutls_hmac_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_hmac_deinit                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>
+This function will deinitialize all resources occupied by
+the given hmac context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>digest</code></em> :</span></p></td>
+<td>is the output value of the MAC</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-get-len"></a><h3>gnutls_hmac_get_len ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hmac_get_len                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);</pre>
+<p>
+This function will return the length of the output data
+of the given hmac algorithm.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algorithm</code></em> :</span></p></td>
+<td>the hmac algorithm to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The length or zero on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-fast"></a><h3>gnutls_hmac_fast ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hmac_fast                    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *key</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> keylen</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>
+This convenience function will hash the given data and return output
+on a single call.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algorithm</code></em> :</span></p></td>
+<td>the hash algorithm to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the key to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keylen</code></em> :</span></p></td>
+<td>The length of the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the data to hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>textlen</code></em> :</span></p></td>
+<td>The length of data to hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>digest</code></em> :</span></p></td>
+<td>is the output value of the hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-init"></a><h3>gnutls_hash_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hash_init                    (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> *dig</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algorithm</code></em>);</pre>
+<p>
+This function will initialize an context that can be used to
+produce a Message Digest of data.  This will effectively use the
+current crypto backend in use by gnutls or the cryptographic
+accelerator in use.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dig</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algorithm</code></em> :</span></p></td>
+<td>the hash algorithm to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash"></a><h3>gnutls_hash ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hash                         (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);</pre>
+<p>
+This function will hash the given data using the algorithm
+specified by the context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the data to hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>textlen</code></em> :</span></p></td>
+<td>The length of data to hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-output"></a><h3>gnutls_hash_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_hash_output                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>
+This function will output the current hash value.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>digest</code></em> :</span></p></td>
+<td>is the output value of the hash</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-deinit"></a><h3>gnutls_hash_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_hash_deinit                  (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>
+This function will deinitialize all resources occupied by
+the given hash context.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>is a <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>digest</code></em> :</span></p></td>
+<td>is the output value of the hash</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-get-len"></a><h3>gnutls_hash_get_len ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hash_get_len                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algorithm</code></em>);</pre>
+<p>
+This function will return the length of the output data
+of the given hash algorithm.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algorithm</code></em> :</span></p></td>
+<td>the hash algorithm to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The length or zero on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-fast"></a><h3>gnutls_hash_fast ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hash_fast                    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algorithm</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>
+This convenience function will hash the given data and return output
+on a single call.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algorithm</code></em> :</span></p></td>
+<td>the hash algorithm to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the data to hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>textlen</code></em> :</span></p></td>
+<td>The length of data to hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>digest</code></em> :</span></p></td>
+<td>is the output value of the hash</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-rnd-level-t"></a><h3>enum gnutls_rnd_level_t</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_RND_NONCE = 0,
+    GNUTLS_RND_RANDOM = 1,
+    GNUTLS_RND_KEY = 2
+} gnutls_rnd_level_t;
+</pre>
+<p>
+Enumeration of random quality levels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-RND-NONCE:CAPS"></a><span class="term"><code class="literal">GNUTLS_RND_NONCE</code></span></p></td>
+<td>Non-predictable random number.  Fatal in parts
+  of session if broken, i.e., vulnerable to statistical analysis.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-RND-RANDOM:CAPS"></a><span class="term"><code class="literal">GNUTLS_RND_RANDOM</code></span></p></td>
+<td>Pseudo-random cryptographic random number.
+  Fatal in session if broken.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-RND-KEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_RND_KEY</code></span></p></td>
+<td>Fatal in many sessions if broken.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-rnd"></a><h3>gnutls_rnd ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_rnd                          (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-rnd-level-t" title="enum gnutls_rnd_level_t"><span class="type">gnutls_rnd_level_t</span></a> level</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> len</code></em>);</pre>
+<p>
+This function will generate random data and store it to output
+buffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>level</code></em> :</span></p></td>
+<td>a security level</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>place to store random bytes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
+<td>The requested size</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Zero or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index 7e9b6a9..200308b 100644 (file)
@@ -69,7 +69,7 @@ enum                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t">gnutls_x509_crt_fmt_t</a>;
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t">gnutls_certificate_print_formats_t</a>;
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t">gnutls_pk_algorithm_t</a>;
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-get-name" title="gnutls_pk_algorithm_get_name ()">gnutls_pk_algorithm_get_name</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algorithm</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-get-name" title="gnutls_pk_algorithm_get_name ()">gnutls_pk_algorithm_get_name</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algorithm</code></em>);
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t">gnutls_sign_algorithm_t</a>;
 #define             <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-get-name" title="gnutls_sign_algorithm_get_name">gnutls_sign_algorithm_get_name</a>
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t">gnutls_sec_param_t</a>;
@@ -82,51 +82,51 @@ struct              <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey
 typedef             <a class="link" href="gnutls-gnutls.html#gnutls-rsa-params-t" title="gnutls_rsa_params_t">gnutls_rsa_params_t</a>;
 struct              <a class="link" href="gnutls-gnutls.html#gnutls-priority-st" title="struct gnutls_priority_st">gnutls_priority_st</a>;
 typedef             <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t">gnutls_priority_t</a>;
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()">gnutls_init</a>                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> *session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()">gnutls_deinit</a>                       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-bye" title="gnutls_bye ()">gnutls_bye</a>                          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()">gnutls_init</a>                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> *session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()">gnutls_deinit</a>                       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-bye" title="gnutls_bye ()">gnutls_bye</a>                          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-close-request-t" title="enum gnutls_close_request_t"><span class="type">gnutls_close_request_t</span></a> how</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">gnutls_handshake</a>                    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-rehandshake" title="gnutls_rehandshake ()">gnutls_rehandshake</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">gnutls_handshake</a>                    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-rehandshake" title="gnutls_rehandshake ()">gnutls_rehandshake</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="returnvalue">gnutls_alert_description_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-alert-get" title="gnutls_alert_get ()">gnutls_alert_get</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-alert-send" title="gnutls_alert_send ()">gnutls_alert_send</a>                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-alert-send" title="gnutls_alert_send ()">gnutls_alert_send</a>                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-level-t" title="enum gnutls_alert_level_t"><span class="type">gnutls_alert_level_t</span></a> level</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> desc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-alert-send-appropriate" title="gnutls_alert_send_appropriate ()">gnutls_alert_send_appropriate</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> err</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-alert-get-name" title="gnutls_alert_get_name ()">gnutls_alert_get_name</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> alert</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-alert-send-appropriate" title="gnutls_alert_send_appropriate ()">gnutls_alert_send_appropriate</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> err</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-alert-get-name" title="gnutls_alert_get_name ()">gnutls_alert_get_name</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> alert</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>  <a class="link" href="gnutls-gnutls.html#gnutls-pk-bits-to-sec-param" title="gnutls_pk_bits_to_sec_param ()">gnutls_pk_bits_to_sec_param</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algo</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> bits</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-get-name" title="gnutls_sec_param_get_name ()">gnutls_sec_param_get_name</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> param</code></em>);
-unsigned <GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>        <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()">gnutls_sec_param_to_pk_bits</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algo</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-get-name" title="gnutls_sec_param_get_name ()">gnutls_sec_param_get_name</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> param</code></em>);
+unsigned <span class="returnvalue">int</span>        <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()">gnutls_sec_param_to_pk_bits</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algo</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> param</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-cipher-get" title="gnutls_cipher_get ()">gnutls_cipher_get</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="returnvalue">gnutls_kx_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-kx-get" title="gnutls_kx_get ()">gnutls_kx_get</a>                     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="returnvalue">gnutls_mac_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-mac-get" title="gnutls_mac_get ()">gnutls_mac_get</a>                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="returnvalue">gnutls_compression_method_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-compression-get" title="gnutls_compression_get ()">gnutls_compression_get</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="returnvalue">gnutls_certificate_type_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get" title="gnutls_certificate_type_get ()">gnutls_certificate_type_get</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-get-requested" title="gnutls_sign_algorithm_get_requested ()">gnutls_sign_algorithm_get_requested</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> indx</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-get-requested" title="gnutls_sign_algorithm_get_requested ()">gnutls_sign_algorithm_get_requested</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> indx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> *algo</code></em>);
-<GTKDOCLINK HREF="size-t"><span class="returnvalue">size_t</span></GTKDOCLINK>              <a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-key-size" title="gnutls_cipher_get_key_size ()">gnutls_cipher_get_key_size</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);
-<GTKDOCLINK HREF="size-t"><span class="returnvalue">size_t</span></GTKDOCLINK>              <a class="link" href="gnutls-gnutls.html#gnutls-mac-get-key-size" title="gnutls_mac_get_key_size ()">gnutls_mac_get_key_size</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-name" title="gnutls_cipher_get_name ()">gnutls_cipher_get_name</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-mac-get-name" title="gnutls_mac_get_name ()">gnutls_mac_get_name</a>                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-compression-get-name" title="gnutls_compression_get_name ()">gnutls_compression_get_name</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> algorithm</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-kx-get-name" title="gnutls_kx_get_name ()">gnutls_kx_get_name</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> algorithm</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get-name" title="gnutls_certificate_type_get_name ()">gnutls_certificate_type_get_name</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> type</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-pk-get-name" title="gnutls_pk_get_name ()">gnutls_pk_get_name</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algorithm</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-sign-get-name" title="gnutls_sign_get_name ()">gnutls_sign_get_name</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algorithm</code></em>);
-<a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="returnvalue">gnutls_mac_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-mac-get-id" title="gnutls_mac_get_id ()">gnutls_mac_get_id</a>                (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);
-<a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="returnvalue">gnutls_compression_method_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-compression-get-id" title="gnutls_compression_get_id ()">gnutls_compression_get_id</a>   (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);
-<a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-id" title="gnutls_cipher_get_id ()">gnutls_cipher_get_id</a>          (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);
-<a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="returnvalue">gnutls_kx_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-kx-get-id" title="gnutls_kx_get_id ()">gnutls_kx_get_id</a>                  (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);
-<a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="returnvalue">gnutls_protocol_t</span></a>   <a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-id" title="gnutls_protocol_get_id ()">gnutls_protocol_get_id</a>              (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);
+<span class="returnvalue">size_t</span>              <a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-key-size" title="gnutls_cipher_get_key_size ()">gnutls_cipher_get_key_size</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);
+<span class="returnvalue">size_t</span>              <a class="link" href="gnutls-gnutls.html#gnutls-mac-get-key-size" title="gnutls_mac_get_key_size ()">gnutls_mac_get_key_size</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-name" title="gnutls_cipher_get_name ()">gnutls_cipher_get_name</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-mac-get-name" title="gnutls_mac_get_name ()">gnutls_mac_get_name</a>                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-compression-get-name" title="gnutls_compression_get_name ()">gnutls_compression_get_name</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> algorithm</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-kx-get-name" title="gnutls_kx_get_name ()">gnutls_kx_get_name</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> algorithm</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get-name" title="gnutls_certificate_type_get_name ()">gnutls_certificate_type_get_name</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> type</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-pk-get-name" title="gnutls_pk_get_name ()">gnutls_pk_get_name</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algorithm</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-sign-get-name" title="gnutls_sign_get_name ()">gnutls_sign_get_name</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algorithm</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="returnvalue">gnutls_mac_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-mac-get-id" title="gnutls_mac_get_id ()">gnutls_mac_get_id</a>                (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="returnvalue">gnutls_compression_method_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-compression-get-id" title="gnutls_compression_get_id ()">gnutls_compression_get_id</a>   (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-id" title="gnutls_cipher_get_id ()">gnutls_cipher_get_id</a>          (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="returnvalue">gnutls_kx_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-kx-get-id" title="gnutls_kx_get_id ()">gnutls_kx_get_id</a>                  (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="returnvalue">gnutls_protocol_t</span></a>   <a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-id" title="gnutls_protocol_get_id ()">gnutls_protocol_get_id</a>              (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="returnvalue">gnutls_certificate_type_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get-id" title="gnutls_certificate_type_get_id ()">gnutls_certificate_type_get_id</a>
-                                                        (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);
-<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-pk-get-id" title="gnutls_pk_get_id ()">gnutls_pk_get_id</a>                  (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);
-<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="returnvalue">gnutls_sign_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-sign-get-id" title="gnutls_sign_get_id ()">gnutls_sign_get_id</a>              (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);
+                                                        (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-pk-get-id" title="gnutls_pk_get_id ()">gnutls_pk_get_id</a>                  (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="returnvalue">gnutls_sign_algorithm_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-sign-get-id" title="gnutls_sign_get_id ()">gnutls_sign_get_id</a>              (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
 const <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a> * <a class="link" href="gnutls-gnutls.html#gnutls-cipher-list" title="gnutls_cipher_list ()">gnutls_cipher_list</a>    (<em class="parameter"><code><span class="type">void</span></code></em>);
 const <a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="returnvalue">gnutls_mac_algorithm_t</span></a> * <a class="link" href="gnutls-gnutls.html#gnutls-mac-list" title="gnutls_mac_list ()">gnutls_mac_list</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
 const <a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="returnvalue">gnutls_compression_method_t</span></a> * <a class="link" href="gnutls-gnutls.html#gnutls-compression-list" title="gnutls_compression_list ()">gnutls_compression_list</a>
@@ -137,199 +137,199 @@ const <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title=
 const <a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="returnvalue">gnutls_kx_algorithm_t</span></a> * <a class="link" href="gnutls-gnutls.html#gnutls-kx-list" title="gnutls_kx_list ()">gnutls_kx_list</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
 const <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> * <a class="link" href="gnutls-gnutls.html#gnutls-pk-list" title="gnutls_pk_list ()">gnutls_pk_list</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
 const <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="returnvalue">gnutls_sign_algorithm_t</span></a> * <a class="link" href="gnutls-gnutls.html#gnutls-sign-list" title="gnutls_sign_list ()">gnutls_sign_list</a>        (<em class="parameter"><code><span class="type">void</span></code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-cipher-suite-info" title="gnutls_cipher_suite_info ()">gnutls_cipher_suite_info</a>            (<em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> idx</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *cs_id</code></em>,
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-cipher-suite-info" title="gnutls_cipher_suite_info ()">gnutls_cipher_suite_info</a>            (<em class="parameter"><code><span class="type">size_t</span> idx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *cs_id</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> *kx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> *cipher</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> *mac</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> *min_version</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-error-is-fatal" title="gnutls_error_is_fatal ()">gnutls_error_is_fatal</a>               (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> error</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-error-to-alert" title="gnutls_error_to_alert ()">gnutls_error_to_alert</a>               (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> err</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *level</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-perror" title="gnutls_perror ()">gnutls_perror</a>                       (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> error</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-strerror" title="gnutls_strerror ()">gnutls_strerror</a>                     (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> error</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-strerror-name" title="gnutls_strerror_name ()">gnutls_strerror_name</a>                (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> error</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-private-extensions" title="gnutls_handshake_set_private_extensions ()">gnutls_handshake_set_private_extensions</a>
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-error-is-fatal" title="gnutls_error_is_fatal ()">gnutls_error_is_fatal</a>               (<em class="parameter"><code><span class="type">int</span> error</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-error-to-alert" title="gnutls_error_to_alert ()">gnutls_error_to_alert</a>               (<em class="parameter"><code><span class="type">int</span> err</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> *level</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-perror" title="gnutls_perror ()">gnutls_perror</a>                       (<em class="parameter"><code><span class="type">int</span> error</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-strerror" title="gnutls_strerror ()">gnutls_strerror</a>                     (<em class="parameter"><code><span class="type">int</span> error</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-strerror-name" title="gnutls_strerror_name ()">gnutls_strerror_name</a>                (<em class="parameter"><code><span class="type">int</span> error</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-private-extensions" title="gnutls_handshake_set_private_extensions ()">gnutls_handshake_set_private_extensions</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> allow</code></em>);
+                                                         <em class="parameter"><code><span class="type">int</span> allow</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><span class="returnvalue">gnutls_handshake_description_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-handshake-get-last-out" title="gnutls_handshake_get_last_out ()">gnutls_handshake_get_last_out</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><span class="returnvalue">gnutls_handshake_description_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-handshake-get-last-in" title="gnutls_handshake_get_last_in ()">gnutls_handshake_get_last_in</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()">gnutls_record_send</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> data_size</code></em>);
-<GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()">gnutls_record_recv</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> data_size</code></em>);
+<span class="returnvalue">ssize_t</span>             <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()">gnutls_record_send</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>);
+<span class="returnvalue">ssize_t</span>             <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()">gnutls_record_recv</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>);
 #define             <a class="link" href="gnutls-gnutls.html#gnutls-read" title="gnutls_read">gnutls_read</a>
 #define             <a class="link" href="gnutls-gnutls.html#gnutls-write" title="gnutls_write">gnutls_write</a>
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-session-enable-compatibility-mode" title="gnutls_session_enable_compatibility_mode ()">gnutls_session_enable_compatibility_mode</a>
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-session-enable-compatibility-mode" title="gnutls_session_enable_compatibility_mode ()">gnutls_session_enable_compatibility_mode</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-record-disable-padding" title="gnutls_record_disable_padding ()">gnutls_record_disable_padding</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()">gnutls_record_get_direction</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="size-t"><span class="returnvalue">size_t</span></GTKDOCLINK>              <a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-size" title="gnutls_record_get_max_size ()">gnutls_record_get_max_size</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             <a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-size" title="gnutls_record_set_max_size ()">gnutls_record_set_max_size</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> size</code></em>);
-<GTKDOCLINK HREF="size-t"><span class="returnvalue">size_t</span></GTKDOCLINK>              <a class="link" href="gnutls-gnutls.html#gnutls-record-check-pending" title="gnutls_record_check_pending ()">gnutls_record_check_pending</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-prf" title="gnutls_prf ()">gnutls_prf</a>                          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> label_size</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *label</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> server_random_first</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> extra_size</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *extra</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> outsize</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *out</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-prf-raw" title="gnutls_prf_raw ()">gnutls_prf_raw</a>                      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> label_size</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *label</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> seed_size</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *seed</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> outsize</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *out</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-record-disable-padding" title="gnutls_record_disable_padding ()">gnutls_record_disable_padding</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()">gnutls_record_get_direction</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">size_t</span>              <a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-size" title="gnutls_record_get_max_size ()">gnutls_record_get_max_size</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">ssize_t</span>             <a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-size" title="gnutls_record_set_max_size ()">gnutls_record_set_max_size</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> size</code></em>);
+<span class="returnvalue">size_t</span>              <a class="link" href="gnutls-gnutls.html#gnutls-record-check-pending" title="gnutls_record_check_pending ()">gnutls_record_check_pending</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-prf" title="gnutls_prf ()">gnutls_prf</a>                          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> label_size</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> server_random_first</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> extra_size</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *extra</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> outsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *out</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-prf-raw" title="gnutls_prf_raw ()">gnutls_prf_raw</a>                      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> label_size</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> seed_size</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *seed</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> outsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *out</code></em>);
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-server-name-type-t" title="enum gnutls_server_name_type_t">gnutls_server_name_type_t</a>;
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-server-name-set" title="gnutls_server_name_set ()">gnutls_server_name_set</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-server-name-set" title="gnutls_server_name_set ()">gnutls_server_name_set</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-server-name-type-t" title="enum gnutls_server_name_type_t"><span class="type">gnutls_server_name_type_t</span></a> type</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *name</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> name_length</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-server-name-get" title="gnutls_server_name_get ()">gnutls_server_name_get</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *data_length</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *type</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> indx</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-safe-renegotiation-status" title="gnutls_safe_renegotiation_status ()">gnutls_safe_renegotiation_status</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+                                                         <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> name_length</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-server-name-get" title="gnutls_server_name_get ()">gnutls_server_name_get</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *data_length</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *type</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> indx</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-safe-renegotiation-status" title="gnutls_safe_renegotiation_status ()">gnutls_safe_renegotiation_status</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t" title="enum gnutls_supplemental_data_format_type_t">gnutls_supplemental_data_format_type_t</a>;
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-key-generate" title="gnutls_session_ticket_key_generate ()">gnutls_session_ticket_key_generate</a>  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *key</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-enable-client" title="gnutls_session_ticket_enable_client ()">gnutls_session_ticket_enable_client</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-enable-server" title="gnutls_session_ticket_enable_server ()">gnutls_session_ticket_enable_server</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *key</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-priority-init" title="gnutls_priority_init ()">gnutls_priority_init</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> *priority_cache</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *priorities</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> **err_pos</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-priority-deinit" title="gnutls_priority_deinit ()">gnutls_priority_deinit</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> priority_cache</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-priority-set" title="gnutls_priority_set ()">gnutls_priority_set</a>                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-key-generate" title="gnutls_session_ticket_key_generate ()">gnutls_session_ticket_key_generate</a>  (<em class="parameter"><code><span class="type">gnutls_datum_t</span> *key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-enable-client" title="gnutls_session_ticket_enable_client ()">gnutls_session_ticket_enable_client</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-enable-server" title="gnutls_session_ticket_enable_server ()">gnutls_session_ticket_enable_server</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-priority-init" title="gnutls_priority_init ()">gnutls_priority_init</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> *priority_cache</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *priorities</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-priority-deinit" title="gnutls_priority_deinit ()">gnutls_priority_deinit</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> priority_cache</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-priority-set" title="gnutls_priority_set ()">gnutls_priority_set</a>                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> priority</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-priority-set-direct" title="gnutls_priority_set_direct ()">gnutls_priority_set_direct</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *priorities</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> **err_pos</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-set-default-priority" title="gnutls_set_default_priority ()">gnutls_set_default_priority</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-cipher-suite-get-name" title="gnutls_cipher_suite_get_name ()">gnutls_cipher_suite_get_name</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> kx_algorithm</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-priority-set-direct" title="gnutls_priority_set_direct ()">gnutls_priority_set_direct</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *priorities</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-set-default-priority" title="gnutls_set_default_priority ()">gnutls_set_default_priority</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-cipher-suite-get-name" title="gnutls_cipher_suite_get_name ()">gnutls_cipher_suite_get_name</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> kx_algorithm</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> cipher_algorithm</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac_algorithm</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="returnvalue">gnutls_protocol_t</span></a>   <a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-version" title="gnutls_protocol_get_version ()">gnutls_protocol_get_version</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-name" title="gnutls_protocol_get_name ()">gnutls_protocol_get_name</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> version</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-set-data" title="gnutls_session_set_data ()">gnutls_session_set_data</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *session_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> session_data_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-get-data" title="gnutls_session_get_data ()">gnutls_session_get_data</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *session_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *session_data_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-get-data2" title="gnutls_session_get_data2 ()">gnutls_session_get_data2</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-name" title="gnutls_protocol_get_name ()">gnutls_protocol_get_name</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> version</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-set-data" title="gnutls_session_set_data ()">gnutls_session_set_data</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *session_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> session_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-get-data" title="gnutls_session_get_data ()">gnutls_session_get_data</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *session_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *session_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-get-data2" title="gnutls_session_get_data2 ()">gnutls_session_get_data2</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *data</code></em>);
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID:CAPS" title="GNUTLS_MAX_SESSION_ID">GNUTLS_MAX_SESSION_ID</a>
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-get-id" title="gnutls_session_get_id ()">gnutls_session_get_id</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *session_id</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *session_id_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-is-resumed" title="gnutls_session_is_resumed ()">gnutls_session_is_resumed</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#gnutls-db-store-func" title="gnutls_db_store_func ()">*gnutls_db_store_func</a>)             (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> key</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> data</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#gnutls-db-remove-func" title="gnutls_db_remove_func ()">*gnutls_db_remove_func</a>)            (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> key</code></em>);
-<GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t</span></GTKDOCLINK>      (<a class="link" href="gnutls-gnutls.html#gnutls-db-retr-func" title="gnutls_db_retr_func ()">*gnutls_db_retr_func</a>)              (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> key</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-cache-expiration" title="gnutls_db_set_cache_expiration ()">gnutls_db_set_cache_expiration</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> seconds</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-db-remove-session" title="gnutls_db_remove_session ()">gnutls_db_remove_session</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-retrieve-function" title="gnutls_db_set_retrieve_function ()">gnutls_db_set_retrieve_function</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-get-id" title="gnutls_session_get_id ()">gnutls_session_get_id</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *session_id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *session_id_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-session-is-resumed" title="gnutls_session_is_resumed ()">gnutls_session_is_resumed</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#gnutls-db-store-func" title="gnutls_db_store_func ()">*gnutls_db_store_func</a>)             (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> data</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#gnutls-db-remove-func" title="gnutls_db_remove_func ()">*gnutls_db_remove_func</a>)            (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> key</code></em>);
+<span class="returnvalue">gnutls_datum_t</span>      (<a class="link" href="gnutls-gnutls.html#gnutls-db-retr-func" title="gnutls_db_retr_func ()">*gnutls_db_retr_func</a>)              (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-cache-expiration" title="gnutls_db_set_cache_expiration ()">gnutls_db_set_cache_expiration</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> seconds</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-db-remove-session" title="gnutls_db_remove_session ()">gnutls_db_remove_session</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-retrieve-function" title="gnutls_db_set_retrieve_function ()">gnutls_db_set_retrieve_function</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-retr-func" title="gnutls_db_retr_func ()"><span class="type">gnutls_db_retr_func</span></a> retr_func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-remove-function" title="gnutls_db_set_remove_function ()">gnutls_db_set_remove_function</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-remove-function" title="gnutls_db_set_remove_function ()">gnutls_db_set_remove_function</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-remove-func" title="gnutls_db_remove_func ()"><span class="type">gnutls_db_remove_func</span></a> rem_func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-store-function" title="gnutls_db_set_store_function ()">gnutls_db_set_store_function</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-store-function" title="gnutls_db_set_store_function ()">gnutls_db_set_store_function</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-store-func" title="gnutls_db_store_func ()"><span class="type">gnutls_db_store_func</span></a> store_func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-ptr" title="gnutls_db_set_ptr ()">gnutls_db_set_ptr</a>                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *ptr</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              <a class="link" href="gnutls-gnutls.html#gnutls-db-get-ptr" title="gnutls_db_get_ptr ()">gnutls_db_get_ptr</a>                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry" title="gnutls_db_check_entry ()">gnutls_db_check_entry</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> session_entry</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func" title="gnutls_handshake_post_client_hello_func ()">*gnutls_handshake_post_client_hello_func</a>)
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-db-set-ptr" title="gnutls_db_set_ptr ()">gnutls_db_set_ptr</a>                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);
+<span class="returnvalue">void</span> *              <a class="link" href="gnutls-gnutls.html#gnutls-db-get-ptr" title="gnutls_db_get_ptr ()">gnutls_db_get_ptr</a>                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry" title="gnutls_db_check_entry ()">gnutls_db_check_entry</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> session_entry</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func" title="gnutls_handshake_post_client_hello_func ()">*gnutls_handshake_post_client_hello_func</a>)
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> Param1</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-post-client-hello-function" title="gnutls_handshake_set_post_client_hello_function ()">gnutls_handshake_set_post_client_hello_function</a>
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-post-client-hello-function" title="gnutls_handshake_set_post_client_hello_function ()">gnutls_handshake_set_post_client_hello_function</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func" title="gnutls_handshake_post_client_hello_func ()"><span class="type">gnutls_handshake_post_client_hello_func</span></a> func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-max-packet-length" title="gnutls_handshake_set_max_packet_length ()">gnutls_handshake_set_max_packet_length</a>
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-max-packet-length" title="gnutls_handshake_set_max_packet_length ()">gnutls_handshake_set_max_packet_length</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> max</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-check-version" title="gnutls_check_version ()">gnutls_check_version</a>                (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *req_version</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-credentials-clear" title="gnutls_credentials_clear ()">gnutls_credentials_clear</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-credentials-set" title="gnutls_credentials_set ()">gnutls_credentials_set</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> max</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-check-version" title="gnutls_check_version ()">gnutls_check_version</a>                (<em class="parameter"><code>const <span class="type">char</span> *req_version</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-credentials-clear" title="gnutls_credentials_clear ()">gnutls_credentials_clear</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-credentials-set" title="gnutls_credentials_set ()">gnutls_credentials_set</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t"><span class="type">gnutls_credentials_type_t</span></a> type</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *cred</code></em>);
+                                                         <em class="parameter"><code><span class="type">void</span> *cred</code></em>);
 #define             <a class="link" href="gnutls-gnutls.html#gnutls-cred-set" title="gnutls_cred_set">gnutls_cred_set</a>
 struct              <a class="link" href="gnutls-gnutls.html#gnutls-certificate-credentials-st" title="struct gnutls_certificate_credentials_st">gnutls_certificate_credentials_st</a>;
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-free-server-credentials" title="gnutls_anon_free_server_credentials ()">gnutls_anon_free_server_credentials</a> (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-anon-allocate-server-credentials" title="gnutls_anon_allocate_server_credentials ()">gnutls_anon_allocate_server_credentials</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> *sc</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-dh-params" title="gnutls_anon_set_server_dh_params ()">gnutls_anon_set_server_dh_params</a>    (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> res</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-free-server-credentials" title="gnutls_anon_free_server_credentials ()">gnutls_anon_free_server_credentials</a> (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-anon-allocate-server-credentials" title="gnutls_anon_allocate_server_credentials ()">gnutls_anon_allocate_server_credentials</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> *sc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-dh-params" title="gnutls_anon_set_server_dh_params ()">gnutls_anon_set_server_dh_params</a>    (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-params-function" title="gnutls_anon_set_server_params_function ()">gnutls_anon_set_server_params_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-free-client-credentials" title="gnutls_anon_free_client_credentials ()">gnutls_anon_free_client_credentials</a> (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-client-credentials-t"><span class="type">gnutls_anon_client_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-anon-allocate-client-credentials" title="gnutls_anon_allocate_client_credentials ()">gnutls_anon_allocate_client_credentials</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-client-credentials-t"><span class="type">gnutls_anon_client_credentials_t</span></GTKDOCLINK> *sc</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-credentials" title="gnutls_certificate_free_credentials ()">gnutls_certificate_free_credentials</a> (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-allocate-credentials" title="gnutls_certificate_allocate_credentials ()">gnutls_certificate_allocate_credentials</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> *res</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-keys" title="gnutls_certificate_free_keys ()">gnutls_certificate_free_keys</a>        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-cas" title="gnutls_certificate_free_cas ()">gnutls_certificate_free_cas</a>         (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-ca-names" title="gnutls_certificate_free_ca_names ()">gnutls_certificate_free_ca_names</a>    (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-crls" title="gnutls_certificate_free_crls ()">gnutls_certificate_free_crls</a>        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-dh-params" title="gnutls_certificate_set_dh_params ()">gnutls_certificate_set_dh_params</a>    (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-params-function" title="gnutls_anon_set_server_params_function ()">gnutls_anon_set_server_params_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-free-client-credentials" title="gnutls_anon_free_client_credentials ()">gnutls_anon_free_client_credentials</a> (<em class="parameter"><code><span class="type">gnutls_anon_client_credentials_t</span> sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-anon-allocate-client-credentials" title="gnutls_anon_allocate_client_credentials ()">gnutls_anon_allocate_client_credentials</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_anon_client_credentials_t</span> *sc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-credentials" title="gnutls_certificate_free_credentials ()">gnutls_certificate_free_credentials</a> (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-allocate-credentials" title="gnutls_certificate_allocate_credentials ()">gnutls_certificate_allocate_credentials</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> *res</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-keys" title="gnutls_certificate_free_keys ()">gnutls_certificate_free_keys</a>        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-cas" title="gnutls_certificate_free_cas ()">gnutls_certificate_free_cas</a>         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-ca-names" title="gnutls_certificate_free_ca_names ()">gnutls_certificate_free_ca_names</a>    (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-crls" title="gnutls_certificate_free_crls ()">gnutls_certificate_free_crls</a>        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-dh-params" title="gnutls_certificate_set_dh_params ()">gnutls_certificate_set_dh_params</a>    (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()">gnutls_certificate_set_verify_flags</a> (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-limits" title="gnutls_certificate_set_verify_limits ()">gnutls_certificate_set_verify_limits</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> max_bits</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> max_depth</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-file" title="gnutls_certificate_set_x509_trust_file ()">gnutls_certificate_set_x509_trust_file</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *cafile</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()">gnutls_certificate_set_verify_flags</a> (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-limits" title="gnutls_certificate_set_verify_limits ()">gnutls_certificate_set_verify_limits</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> max_bits</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> max_depth</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-file" title="gnutls_certificate_set_x509_trust_file ()">gnutls_certificate_set_x509_trust_file</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *cafile</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-mem" title="gnutls_certificate_set_x509_trust_mem ()">gnutls_certificate_set_x509_trust_mem</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *ca</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-mem" title="gnutls_certificate_set_x509_trust_mem ()">gnutls_certificate_set_x509_trust_mem</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *ca</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-file" title="gnutls_certificate_set_x509_crl_file ()">gnutls_certificate_set_x509_crl_file</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *crlfile</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-file" title="gnutls_certificate_set_x509_crl_file ()">gnutls_certificate_set_x509_crl_file</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *crlfile</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-mem" title="gnutls_certificate_set_x509_crl_mem ()">gnutls_certificate_set_x509_crl_mem</a> (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *CRL</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-mem" title="gnutls_certificate_set_x509_crl_mem ()">gnutls_certificate_set_x509_crl_mem</a> (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *CRL</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file" title="gnutls_certificate_set_x509_key_file ()">gnutls_certificate_set_x509_key_file</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *certfile</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *keyfile</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file" title="gnutls_certificate_set_x509_key_file ()">gnutls_certificate_set_x509_key_file</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem" title="gnutls_certificate_set_x509_key_mem ()">gnutls_certificate_set_x509_key_mem</a> (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *cert</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *key</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem" title="gnutls_certificate_set_x509_key_mem ()">gnutls_certificate_set_x509_key_mem</a> (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()">gnutls_certificate_send_x509_rdn_sequence</a>
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()">gnutls_certificate_send_x509_rdn_sequence</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> status</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-file" title="gnutls_certificate_set_x509_simple_pkcs12_file ()">gnutls_certificate_set_x509_simple_pkcs12_file</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *pkcs12file</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> status</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-file" title="gnutls_certificate_set_x509_simple_pkcs12_file ()">gnutls_certificate_set_x509_simple_pkcs12_file</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pkcs12file</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem" title="gnutls_certificate_set_x509_simple_pkcs12_mem ()">gnutls_certificate_set_x509_simple_pkcs12_mem</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *p12blob</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem" title="gnutls_certificate_set_x509_simple_pkcs12_mem ()">gnutls_certificate_set_x509_simple_pkcs12_mem</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p12blob</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password</code></em>);
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);
 typedef             <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t">gnutls_x509_privkey_t</a>;
 struct              <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-int" title="struct gnutls_x509_crl_int">gnutls_x509_crl_int</a>;
 typedef             <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t">gnutls_x509_crl_t</a>;
@@ -337,34 +337,34 @@ struct              <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-int
 typedef             <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t">gnutls_x509_crt_t</a>;
 struct              <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-int" title="struct gnutls_openpgp_keyring_int">gnutls_openpgp_keyring_int</a>;
 typedef             <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t">gnutls_openpgp_keyring_t</a>;
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()">gnutls_certificate_set_x509_key</a>     (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()">gnutls_certificate_set_x509_key</a>     (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *cert_list</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> cert_list_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> cert_list_size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust" title="gnutls_certificate_set_x509_trust ()">gnutls_certificate_set_x509_trust</a>   (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust" title="gnutls_certificate_set_x509_trust ()">gnutls_certificate_set_x509_trust</a>   (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *ca_list</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> ca_list_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl" title="gnutls_certificate_set_x509_crl ()">gnutls_certificate_set_x509_crl</a>     (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> ca_list_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl" title="gnutls_certificate_set_x509_crl ()">gnutls_certificate_set_x509_crl</a>     (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl_list</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> crl_list_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()">gnutls_global_init</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()">gnutls_global_deinit</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()">*mutex_init_func</a>)                  (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> **mutex</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#mutex-lock-func" title="mutex_lock_func ()">*mutex_lock_func</a>)                  (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> **mutex</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#mutex-unlock-func" title="mutex_unlock_func ()">*mutex_unlock_func</a>)                (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> **mutex</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#mutex-deinit-func" title="mutex_deinit_func ()">*mutex_deinit_func</a>)                (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> **mutex</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-global-set-mutex" title="gnutls_global_set_mutex ()">gnutls_global_set_mutex</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()"><span class="type">mutex_init_func</span></a> init</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> crl_list_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()">gnutls_global_init</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()">gnutls_global_deinit</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()">*mutex_init_func</a>)                  (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#mutex-lock-func" title="mutex_lock_func ()">*mutex_lock_func</a>)                  (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#mutex-unlock-func" title="mutex_unlock_func ()">*mutex_unlock_func</a>)                (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#mutex-deinit-func" title="mutex_deinit_func ()">*mutex_deinit_func</a>)                (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-global-set-mutex" title="gnutls_global_set_mutex ()">gnutls_global_set_mutex</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()"><span class="type">mutex_init_func</span></a> init</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-deinit-func" title="mutex_deinit_func ()"><span class="type">mutex_deinit_func</span></a> deinit</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-lock-func" title="mutex_lock_func ()"><span class="type">mutex_lock_func</span></a> lock</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-unlock-func" title="mutex_unlock_func ()"><span class="type">mutex_unlock_func</span></a> unlock</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              (<a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()">*gnutls_alloc_function</a>)            (<em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param1</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              (<a class="link" href="gnutls-gnutls.html#gnutls-calloc-function" title="gnutls_calloc_function ()">*gnutls_calloc_function</a>)           (<em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param2</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#gnutls-is-secure-function" title="gnutls_is_secure_function ()">*gnutls_is_secure_function</a>)        (<em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                (<a class="link" href="gnutls-gnutls.html#gnutls-free-function" title="gnutls_free_function ()">*gnutls_free_function</a>)             (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              (<a class="link" href="gnutls-gnutls.html#gnutls-realloc-function" title="gnutls_realloc_function ()">*gnutls_realloc_function</a>)          (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param2</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-global-set-mem-functions" title="gnutls_global_set_mem_functions ()">gnutls_global_set_mem_functions</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()"><span class="type">gnutls_alloc_function</span></a> alloc_func</code></em>,
+<span class="returnvalue">void</span> *              (<a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()">*gnutls_alloc_function</a>)            (<em class="parameter"><code><span class="type">size_t</span> Param1</code></em>);
+<span class="returnvalue">void</span> *              (<a class="link" href="gnutls-gnutls.html#gnutls-calloc-function" title="gnutls_calloc_function ()">*gnutls_calloc_function</a>)           (<em class="parameter"><code><span class="type">size_t</span> Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> Param2</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#gnutls-is-secure-function" title="gnutls_is_secure_function ()">*gnutls_is_secure_function</a>)        (<em class="parameter"><code>const <span class="type">void</span> *Param1</code></em>);
+<span class="returnvalue">void</span>                (<a class="link" href="gnutls-gnutls.html#gnutls-free-function" title="gnutls_free_function ()">*gnutls_free_function</a>)             (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>);
+<span class="returnvalue">void</span> *              (<a class="link" href="gnutls-gnutls.html#gnutls-realloc-function" title="gnutls_realloc_function ()">*gnutls_realloc_function</a>)          (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> Param2</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-global-set-mem-functions" title="gnutls_global_set_mem_functions ()">gnutls_global_set_mem_functions</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()"><span class="type">gnutls_alloc_function</span></a> alloc_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()"><span class="type">gnutls_alloc_function</span></a> secure_alloc_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-is-secure-function" title="gnutls_is_secure_function ()"><span class="type">gnutls_is_secure_function</span></a> is_secure_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-realloc-function" title="gnutls_realloc_function ()"><span class="type">gnutls_realloc_function</span></a> realloc_func</code></em>,
@@ -374,147 +374,147 @@ extern gnutls_alloc_function <a class="link" href="gnutls-gnutls.html#gnutls-sec
 extern gnutls_realloc_function <a class="link" href="gnutls-gnutls.html#gnutls-realloc" title="gnutls_realloc">gnutls_realloc</a>;
 extern gnutls_calloc_function <a class="link" href="gnutls-gnutls.html#gnutls-calloc" title="gnutls_calloc">gnutls_calloc</a>;
 extern gnutls_free_function <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free">gnutls_free</a>;
-<GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *              (<a class="link" href="gnutls-gnutls.html#gnutls-strdup" title="gnutls_strdup ()">*gnutls_strdup</a>)                    (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *Param1</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                (<a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()">*gnutls_log_func</a>)                  (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> Param1</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *Param2</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-function" title="gnutls_global_set_log_function ()">gnutls_global_set_log_function</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()"><span class="type">gnutls_log_func</span></a> log_func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-level" title="gnutls_global_set_log_level ()">gnutls_global_set_log_level</a>         (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> level</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-init" title="gnutls_dh_params_init ()">gnutls_dh_params_init</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> *dh_params</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-deinit" title="gnutls_dh_params_deinit ()">gnutls_dh_params_deinit</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-raw" title="gnutls_dh_params_import_raw ()">gnutls_dh_params_import_raw</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *prime</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *generator</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-pkcs3" title="gnutls_dh_params_import_pkcs3 ()">gnutls_dh_params_import_pkcs3</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *pkcs3_params</code></em>,
+<span class="returnvalue">char</span> *              (<a class="link" href="gnutls-gnutls.html#gnutls-strdup" title="gnutls_strdup ()">*gnutls_strdup</a>)                    (<em class="parameter"><code>const <span class="type">char</span> *Param1</code></em>);
+<span class="returnvalue">void</span>                (<a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()">*gnutls_log_func</a>)                  (<em class="parameter"><code><span class="type">int</span> Param1</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *Param2</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-function" title="gnutls_global_set_log_function ()">gnutls_global_set_log_function</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()"><span class="type">gnutls_log_func</span></a> log_func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-level" title="gnutls_global_set_log_level ()">gnutls_global_set_log_level</a>         (<em class="parameter"><code><span class="type">int</span> level</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-init" title="gnutls_dh_params_init ()">gnutls_dh_params_init</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> *dh_params</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-deinit" title="gnutls_dh_params_deinit ()">gnutls_dh_params_deinit</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-raw" title="gnutls_dh_params_import_raw ()">gnutls_dh_params_import_raw</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *prime</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *generator</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-pkcs3" title="gnutls_dh_params_import_pkcs3 ()">gnutls_dh_params_import_pkcs3</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *pkcs3_params</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-generate2" title="gnutls_dh_params_generate2 ()">gnutls_dh_params_generate2</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> bits</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export-pkcs3" title="gnutls_dh_params_export_pkcs3 ()">gnutls_dh_params_export_pkcs3</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-generate2" title="gnutls_dh_params_generate2 ()">gnutls_dh_params_generate2</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export-pkcs3" title="gnutls_dh_params_export_pkcs3 ()">gnutls_dh_params_export_pkcs3</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *params_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *params_data_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export-raw" title="gnutls_dh_params_export_raw ()">gnutls_dh_params_export_raw</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *prime</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *generator</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *bits</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-cpy" title="gnutls_dh_params_cpy ()">gnutls_dh_params_cpy</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dst</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *params_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *params_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export-raw" title="gnutls_dh_params_export_raw ()">gnutls_dh_params_export_raw</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *prime</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *generator</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-cpy" title="gnutls_dh_params_cpy ()">gnutls_dh_params_cpy</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dst</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> src</code></em>);
-<GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             (<a class="link" href="gnutls-gnutls.html#gnutls-pull-func" title="gnutls_pull_func ()">*gnutls_pull_func</a>)                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param2</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param3</code></em>);
-<GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             (<a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()">*gnutls_push_func</a>)                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param2</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param3</code></em>);
-<GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             (<a class="link" href="gnutls-gnutls.html#gnutls-vec-push-func" title="gnutls_vec_push_func ()">*gnutls_vec_push_func</a>)             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="giovec-t"><span class="type">giovec_t</span></GTKDOCLINK> *iov</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> iovcnt</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (<a class="link" href="gnutls-gnutls.html#gnutls-errno-func" title="gnutls_errno_func ()">*gnutls_errno_func</a>)                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr" title="gnutls_transport_set_ptr ()">gnutls_transport_set_ptr</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">ssize_t</span>             (<a class="link" href="gnutls-gnutls.html#gnutls-pull-func" title="gnutls_pull_func ()">*gnutls_pull_func</a>)                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *Param2</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> Param3</code></em>);
+<span class="returnvalue">ssize_t</span>             (<a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()">*gnutls_push_func</a>)                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *Param2</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> Param3</code></em>);
+<span class="returnvalue">ssize_t</span>             (<a class="link" href="gnutls-gnutls.html#gnutls-vec-push-func" title="gnutls_vec_push_func ()">*gnutls_vec_push_func</a>)             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">giovec_t</span> *iov</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> iovcnt</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-gnutls.html#gnutls-errno-func" title="gnutls_errno_func ()">*gnutls_errno_func</a>)                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr" title="gnutls_transport_set_ptr ()">gnutls_transport_set_ptr</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> ptr</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()">gnutls_transport_set_ptr2</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()">gnutls_transport_set_ptr2</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> recv_ptr</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> send_ptr</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="returnvalue">gnutls_transport_ptr_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-transport-get-ptr" title="gnutls_transport_get_ptr ()">gnutls_transport_get_ptr</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-get-ptr2" title="gnutls_transport_get_ptr2 ()">gnutls_transport_get_ptr2</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-get-ptr2" title="gnutls_transport_get_ptr2 ()">gnutls_transport_get_ptr2</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> *recv_ptr</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> *send_ptr</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-push-function" title="gnutls_transport_set_push_function ()">gnutls_transport_set_push_function</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-push-function" title="gnutls_transport_set_push_function ()">gnutls_transport_set_push_function</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()"><span class="type">gnutls_push_func</span></a> push_func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-function" title="gnutls_transport_set_pull_function ()">gnutls_transport_set_pull_function</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-function" title="gnutls_transport_set_pull_function ()">gnutls_transport_set_pull_function</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pull-func" title="gnutls_pull_func ()"><span class="type">gnutls_pull_func</span></a> pull_func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-errno-function" title="gnutls_transport_set_errno_function ()">gnutls_transport_set_errno_function</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-errno-function" title="gnutls_transport_set_errno_function ()">gnutls_transport_set_errno_function</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-errno-func" title="gnutls_errno_func ()"><span class="type">gnutls_errno_func</span></a> errno_func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-errno" title="gnutls_transport_set_errno ()">gnutls_transport_set_errno</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> err</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-session-set-ptr" title="gnutls_session_set_ptr ()">gnutls_session_set_ptr</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *ptr</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              <a class="link" href="gnutls-gnutls.html#gnutls-session-get-ptr" title="gnutls_session_get_ptr ()">gnutls_session_get_ptr</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-send-cert" title="gnutls_openpgp_send_cert ()">gnutls_openpgp_send_cert</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-errno" title="gnutls_transport_set_errno ()">gnutls_transport_set_errno</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> err</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-session-set-ptr" title="gnutls_session_set_ptr ()">gnutls_session_set_ptr</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);
+<span class="returnvalue">void</span> *              <a class="link" href="gnutls-gnutls.html#gnutls-session-get-ptr" title="gnutls_session_get_ptr ()">gnutls_session_get_ptr</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-send-cert" title="gnutls_openpgp_send_cert ()">gnutls_openpgp_send_cert</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-status-t" title="enum gnutls_openpgp_crt_status_t"><span class="type">gnutls_openpgp_crt_status_t</span></a> status</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-fingerprint" title="gnutls_fingerprint ()">gnutls_fingerprint</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algo</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-free-client-credentials" title="gnutls_srp_free_client_credentials ()">gnutls_srp_free_client_credentials</a>  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-allocate-client-credentials" title="gnutls_srp_allocate_client_credentials ()">gnutls_srp_allocate_client_credentials</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> *sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-client-credentials" title="gnutls_srp_set_client_credentials ()">gnutls_srp_set_client_credentials</a>   (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *username</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-free-server-credentials" title="gnutls_srp_free_server_credentials ()">gnutls_srp_free_server_credentials</a>  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-allocate-server-credentials" title="gnutls_srp_allocate_server_credentials ()">gnutls_srp_allocate_server_credentials</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> *sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-credentials-file" title="gnutls_srp_set_server_credentials_file ()">gnutls_srp_set_server_credentials_file</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password_file</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password_conf_file</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-srp-server-get-username" title="gnutls_srp_server_get_username ()">gnutls_srp_server_get_username</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-prime-bits" title="gnutls_srp_set_prime_bits ()">gnutls_srp_set_prime_bits</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> bits</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-verifier" title="gnutls_srp_verifier ()">gnutls_srp_verifier</a>                 (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *username</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *salt</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *generator</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *prime</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *res</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-fingerprint" title="gnutls_fingerprint ()">gnutls_fingerprint</a>                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algo</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-free-client-credentials" title="gnutls_srp_free_client_credentials ()">gnutls_srp_free_client_credentials</a>  (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-allocate-client-credentials" title="gnutls_srp_allocate_client_credentials ()">gnutls_srp_allocate_client_credentials</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> *sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-client-credentials" title="gnutls_srp_set_client_credentials ()">gnutls_srp_set_client_credentials</a>   (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *username</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-free-server-credentials" title="gnutls_srp_free_server_credentials ()">gnutls_srp_free_server_credentials</a>  (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-allocate-server-credentials" title="gnutls_srp_allocate_server_credentials ()">gnutls_srp_allocate_server_credentials</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> *sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-credentials-file" title="gnutls_srp_set_server_credentials_file ()">gnutls_srp_set_server_credentials_file</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password_file</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password_conf_file</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-srp-server-get-username" title="gnutls_srp_server_get_username ()">gnutls_srp_server_get_username</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-prime-bits" title="gnutls_srp_set_prime_bits ()">gnutls_srp_set_prime_bits</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-verifier" title="gnutls_srp_verifier ()">gnutls_srp_verifier</a>                 (<em class="parameter"><code>const <span class="type">char</span> *username</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *salt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *generator</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *prime</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *res</code></em>);
 extern const gnutls_datum_t <a class="link" href="gnutls-gnutls.html#gnutls-srp-2048-group-prime" title="gnutls_srp_2048_group_prime">gnutls_srp_2048_group_prime</a>;
 extern const gnutls_datum_t <a class="link" href="gnutls-gnutls.html#gnutls-srp-2048-group-generator" title="gnutls_srp_2048_group_generator">gnutls_srp_2048_group_generator</a>;
 extern const gnutls_datum_t <a class="link" href="gnutls-gnutls.html#gnutls-srp-1536-group-prime" title="gnutls_srp_1536_group_prime">gnutls_srp_1536_group_prime</a>;
 extern const gnutls_datum_t <a class="link" href="gnutls-gnutls.html#gnutls-srp-1536-group-generator" title="gnutls_srp_1536_group_generator">gnutls_srp_1536_group_generator</a>;
 extern const gnutls_datum_t <a class="link" href="gnutls-gnutls.html#gnutls-srp-1024-group-prime" title="gnutls_srp_1024_group_prime">gnutls_srp_1024_group_prime</a>;
 extern const gnutls_datum_t <a class="link" href="gnutls-gnutls.html#gnutls-srp-1024-group-generator" title="gnutls_srp_1024_group_generator">gnutls_srp_1024_group_generator</a>;
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-credentials-function" title="gnutls_srp_set_server_credentials_function ()">gnutls_srp_set_server_credentials_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-function"><span class="type">gnutls_srp_server_credentials_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-client-credentials-function" title="gnutls_srp_set_client_credentials_function ()">gnutls_srp_set_client_credentials_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-function"><span class="type">gnutls_srp_client_credentials_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode" title="gnutls_srp_base64_encode ()">gnutls_srp_base64_encode</a>            (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode-alloc" title="gnutls_srp_base64_encode_alloc ()">gnutls_srp_base64_encode_alloc</a>      (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *result</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode" title="gnutls_srp_base64_decode ()">gnutls_srp_base64_decode</a>            (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *b64_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode-alloc" title="gnutls_srp_base64_decode_alloc ()">gnutls_srp_base64_decode_alloc</a>      (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *b64_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *result</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-credentials-function" title="gnutls_srp_set_server_credentials_function ()">gnutls_srp_set_server_credentials_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_srp_server_credentials_function</span> *func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-client-credentials-function" title="gnutls_srp_set_client_credentials_function ()">gnutls_srp_set_client_credentials_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_srp_client_credentials_function</span> *func</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode" title="gnutls_srp_base64_encode ()">gnutls_srp_base64_encode</a>            (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode-alloc" title="gnutls_srp_base64_encode_alloc ()">gnutls_srp_base64_encode_alloc</a>      (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *result</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode" title="gnutls_srp_base64_decode ()">gnutls_srp_base64_decode</a>            (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *b64_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode-alloc" title="gnutls_srp_base64_decode_alloc ()">gnutls_srp_base64_decode_alloc</a>      (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *b64_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *result</code></em>);
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-psk-key-flags" title="enum gnutls_psk_key_flags">gnutls_psk_key_flags</a>;
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-free-client-credentials" title="gnutls_psk_free_client_credentials ()">gnutls_psk_free_client_credentials</a>  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-allocate-client-credentials" title="gnutls_psk_allocate_client_credentials ()">gnutls_psk_allocate_client_credentials</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> *sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials" title="gnutls_psk_set_client_credentials ()">gnutls_psk_set_client_credentials</a>   (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *username</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *key</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-free-client-credentials" title="gnutls_psk_free_client_credentials ()">gnutls_psk_free_client_credentials</a>  (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-allocate-client-credentials" title="gnutls_psk_allocate_client_credentials ()">gnutls_psk_allocate_client_credentials</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> *sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials" title="gnutls_psk_set_client_credentials ()">gnutls_psk_set_client_credentials</a>   (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *username</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-psk-key-flags" title="enum gnutls_psk_key_flags"><span class="type">gnutls_psk_key_flags</span></a> flags</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-free-server-credentials" title="gnutls_psk_free_server_credentials ()">gnutls_psk_free_server_credentials</a>  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-allocate-server-credentials" title="gnutls_psk_allocate_server_credentials ()">gnutls_psk_allocate_server_credentials</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> *sc</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-file" title="gnutls_psk_set_server_credentials_file ()">gnutls_psk_set_server_credentials_file</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password_file</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-hint" title="gnutls_psk_set_server_credentials_hint ()">gnutls_psk_set_server_credentials_hint</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *hint</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-psk-server-get-username" title="gnutls_psk_server_get_username ()">gnutls_psk_server_get_username</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        <a class="link" href="gnutls-gnutls.html#gnutls-psk-client-get-hint" title="gnutls_psk_client_get_hint ()">gnutls_psk_client_get_hint</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function" title="gnutls_psk_set_server_credentials_function ()">gnutls_psk_set_server_credentials_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-function"><span class="type">gnutls_psk_server_credentials_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function" title="gnutls_psk_set_client_credentials_function ()">gnutls_psk_set_client_credentials_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-function"><span class="type">gnutls_psk_client_credentials_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-hex-encode" title="gnutls_hex_encode ()">gnutls_hex_encode</a>                   (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-hex-decode" title="gnutls_hex_decode ()">gnutls_hex_decode</a>                   (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *hex_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-dh-params" title="gnutls_psk_set_server_dh_params ()">gnutls_psk_set_server_dh_params</a>     (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-free-server-credentials" title="gnutls_psk_free_server_credentials ()">gnutls_psk_free_server_credentials</a>  (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-allocate-server-credentials" title="gnutls_psk_allocate_server_credentials ()">gnutls_psk_allocate_server_credentials</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> *sc</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-file" title="gnutls_psk_set_server_credentials_file ()">gnutls_psk_set_server_credentials_file</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password_file</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-hint" title="gnutls_psk_set_server_credentials_hint ()">gnutls_psk_set_server_credentials_hint</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *hint</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-psk-server-get-username" title="gnutls_psk_server_get_username ()">gnutls_psk_server_get_username</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-gnutls.html#gnutls-psk-client-get-hint" title="gnutls_psk_client_get_hint ()">gnutls_psk_client_get_hint</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function" title="gnutls_psk_set_server_credentials_function ()">gnutls_psk_set_server_credentials_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_psk_server_credentials_function</span> *func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function" title="gnutls_psk_set_client_credentials_function ()">gnutls_psk_set_client_credentials_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_psk_client_credentials_function</span> *func</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-hex-encode" title="gnutls_hex_encode ()">gnutls_hex_encode</a>                   (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-hex-decode" title="gnutls_hex_decode ()">gnutls_hex_decode</a>                   (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hex_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-dh-params" title="gnutls_psk_set_server_dh_params ()">gnutls_psk_set_server_dh_params</a>     (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-params-function" title="gnutls_psk_set_server_params_function ()">gnutls_psk_set_server_params_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-params-function" title="gnutls_psk_set_server_params_function ()">gnutls_psk_set_server_params_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);
 enum                <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t">gnutls_x509_subject_alt_name_t</a>;
 struct              <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-int" title="struct gnutls_openpgp_crt_int">gnutls_openpgp_crt_int</a>;
 typedef             <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t">gnutls_openpgp_crt_t</a>;
@@ -526,50 +526,50 @@ enum                <a class="link" href="gnutls-gnutls.html#gnutls-privkey-type
 <a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t"><span class="returnvalue">gnutls_credentials_type_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-auth-get-type" title="gnutls_auth_get_type ()">gnutls_auth_get_type</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t"><span class="returnvalue">gnutls_credentials_type_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-auth-server-get-type" title="gnutls_auth_server_get_type ()">gnutls_auth_server_get_type</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
 <a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t"><span class="returnvalue">gnutls_credentials_type_t</span></a> <a class="link" href="gnutls-gnutls.html#gnutls-auth-client-get-type" title="gnutls_auth_client_get_type ()">gnutls_auth_client_get_type</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-dh-set-prime-bits" title="gnutls_dh_set_prime_bits ()">gnutls_dh_set_prime_bits</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> bits</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-secret-bits" title="gnutls_dh_get_secret_bits ()">gnutls_dh_get_secret_bits</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-peers-public-bits" title="gnutls_dh_get_peers_public_bits ()">gnutls_dh_get_peers_public_bits</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-prime-bits" title="gnutls_dh_get_prime_bits ()">gnutls_dh_get_prime_bits</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-group" title="gnutls_dh_get_group ()">gnutls_dh_get_group</a>                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *raw_gen</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *raw_prime</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-pubkey" title="gnutls_dh_get_pubkey ()">gnutls_dh_get_pubkey</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *raw_key</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function" title="gnutls_certificate_set_retrieve_function ()">gnutls_certificate_set_retrieve_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-retrieve-function"><span class="type">gnutls_certificate_retrieve_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-function" title="gnutls_certificate_set_verify_function ()">gnutls_certificate_set_verify_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-verify-function"><span class="type">gnutls_certificate_verify_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-server-set-request" title="gnutls_certificate_server_set_request ()">gnutls_certificate_server_set_request</a>
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-dh-set-prime-bits" title="gnutls_dh_set_prime_bits ()">gnutls_dh_set_prime_bits</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-secret-bits" title="gnutls_dh_get_secret_bits ()">gnutls_dh_get_secret_bits</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-peers-public-bits" title="gnutls_dh_get_peers_public_bits ()">gnutls_dh_get_peers_public_bits</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-prime-bits" title="gnutls_dh_get_prime_bits ()">gnutls_dh_get_prime_bits</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-group" title="gnutls_dh_get_group ()">gnutls_dh_get_group</a>                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *raw_gen</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *raw_prime</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-dh-get-pubkey" title="gnutls_dh_get_pubkey ()">gnutls_dh_get_pubkey</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *raw_key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function" title="gnutls_certificate_set_retrieve_function ()">gnutls_certificate_set_retrieve_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_certificate_retrieve_function</span> *func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-function" title="gnutls_certificate_set_verify_function ()">gnutls_certificate_set_verify_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_certificate_verify_function</span> *func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-server-set-request" title="gnutls_certificate_server_set_request ()">gnutls_certificate_server_set_request</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-request-t" title="enum gnutls_certificate_request_t"><span class="type">gnutls_certificate_request_t</span></a> req</code></em>);
-const <GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t</span></GTKDOCLINK> * <a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()">gnutls_certificate_get_peers</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *list_size</code></em>);
-const <GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t</span></GTKDOCLINK> * <a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-ours" title="gnutls_certificate_get_ours ()">gnutls_certificate_get_ours</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="time-t"><span class="returnvalue">time_t</span></GTKDOCLINK>              <a class="link" href="gnutls-gnutls.html#gnutls-certificate-activation-time-peers" title="gnutls_certificate_activation_time_peers ()">gnutls_certificate_activation_time_peers</a>
+const <span class="returnvalue">gnutls_datum_t</span> * <a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()">gnutls_certificate_get_peers</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *list_size</code></em>);
+const <span class="returnvalue">gnutls_datum_t</span> * <a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-ours" title="gnutls_certificate_get_ours ()">gnutls_certificate_get_ours</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-gnutls.html#gnutls-certificate-activation-time-peers" title="gnutls_certificate_activation_time_peers ()">gnutls_certificate_activation_time_peers</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="time-t"><span class="returnvalue">time_t</span></GTKDOCLINK>              <a class="link" href="gnutls-gnutls.html#gnutls-certificate-expiration-time-peers" title="gnutls_certificate_expiration_time_peers ()">gnutls_certificate_expiration_time_peers</a>
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-gnutls.html#gnutls-certificate-expiration-time-peers" title="gnutls_certificate_expiration_time_peers ()">gnutls_certificate_expiration_time_peers</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-client-get-request-status" title="gnutls_certificate_client_get_request_status ()">gnutls_certificate_client_get_request_status</a>
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-client-get-request-status" title="gnutls_certificate_client_get_request_status ()">gnutls_certificate_client_get_request_status</a>
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()">gnutls_certificate_verify_peers2</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *status</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode" title="gnutls_pem_base64_encode ()">gnutls_pem_base64_encode</a>            (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *msg</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode" title="gnutls_pem_base64_decode ()">gnutls_pem_base64_decode</a>            (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *header</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *b64_data</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode-alloc" title="gnutls_pem_base64_encode_alloc ()">gnutls_pem_base64_encode_alloc</a>      (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *msg</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *result</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode-alloc" title="gnutls_pem_base64_decode_alloc ()">gnutls_pem_base64_decode_alloc</a>      (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *header</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *b64_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *result</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()">gnutls_certificate_verify_peers2</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *status</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode" title="gnutls_pem_base64_encode ()">gnutls_pem_base64_encode</a>            (<em class="parameter"><code>const <span class="type">char</span> *msg</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode" title="gnutls_pem_base64_decode ()">gnutls_pem_base64_decode</a>            (<em class="parameter"><code>const <span class="type">char</span> *header</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *b64_data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode-alloc" title="gnutls_pem_base64_encode_alloc ()">gnutls_pem_base64_encode_alloc</a>      (<em class="parameter"><code>const <span class="type">char</span> *msg</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *result</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode-alloc" title="gnutls_pem_base64_decode_alloc ()">gnutls_pem_base64_decode_alloc</a>      (<em class="parameter"><code>const <span class="type">char</span> *header</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *b64_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *result</code></em>);
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE">GNUTLS_KEY_DIGITAL_SIGNATURE</a>
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS" title="GNUTLS_KEY_NON_REPUDIATION">GNUTLS_KEY_NON_REPUDIATION</a>
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT">GNUTLS_KEY_KEY_ENCIPHERMENT</a>
@@ -579,17 +579,17 @@ const <GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS" title="GNUTLS_KEY_CRL_SIGN">GNUTLS_KEY_CRL_SIGN</a>
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS" title="GNUTLS_KEY_ENCIPHER_ONLY">GNUTLS_KEY_ENCIPHER_ONLY</a>
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS" title="GNUTLS_KEY_DECIPHER_ONLY">GNUTLS_KEY_DECIPHER_ONLY</a>
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-params-function" title="gnutls_certificate_set_params_function ()">gnutls_certificate_set_params_function</a>
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-set-params-function" title="gnutls_anon_set_params_function ()">gnutls_anon_set_params_function</a>     (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-params-function" title="gnutls_psk_set_params_function ()">gnutls_psk_set_params_function</a>      (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);
-<GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 <a class="link" href="gnutls-gnutls.html#gnutls-hex2bin" title="gnutls_hex2bin ()">gnutls_hex2bin</a>                      (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *hex_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> hex_size</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *bin_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *bin_size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-params-function" title="gnutls_certificate_set_params_function ()">gnutls_certificate_set_params_function</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-anon-set-params-function" title="gnutls_anon_set_params_function ()">gnutls_anon_set_params_function</a>     (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-params-function" title="gnutls_psk_set_params_function ()">gnutls_psk_set_params_function</a>      (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-gnutls.html#gnutls-hex2bin" title="gnutls_hex2bin ()">gnutls_hex2bin</a>                      (<em class="parameter"><code>const <span class="type">char</span> *hex_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> hex_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *bin_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *bin_size</code></em>);
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS">GNUTLS_E_SUCCESS</a>
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM">GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM</a>
 #define             <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_TYPE">GNUTLS_E_UNKNOWN_CIPHER_TYPE</a>
@@ -738,7 +738,7 @@ const <GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t
 <hr>
 <div class="refsect2">
 <a name="GNUTLS-VERSION:CAPS"></a><h3>GNUTLS_VERSION</h3>
-<pre class="programlisting">#define GNUTLS_VERSION "3.0.21"
+<pre class="programlisting">#define GNUTLS_VERSION "3.0.30"
 </pre>
 <p>
 </p>
@@ -762,7 +762,7 @@ const <GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t
 <hr>
 <div class="refsect2">
 <a name="GNUTLS-VERSION-PATCH:CAPS"></a><h3>GNUTLS_VERSION_PATCH</h3>
-<pre class="programlisting">#define GNUTLS_VERSION_PATCH 21
+<pre class="programlisting">#define GNUTLS_VERSION_PATCH 30
 </pre>
 <p>
 </p>
@@ -770,7 +770,7 @@ const <GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t
 <hr>
 <div class="refsect2">
 <a name="GNUTLS-VERSION-NUMBER:CAPS"></a><h3>GNUTLS_VERSION_NUMBER</h3>
-<pre class="programlisting">#define GNUTLS_VERSION_NUMBER 0x030015
+<pre class="programlisting">#define GNUTLS_VERSION_NUMBER 0x03001e
 </pre>
 <p>
 </p>
@@ -1693,13 +1693,16 @@ Enumeration of different TLS handshake packets.
 <div class="refsect2">
 <a name="gnutls-certificate-status-t"></a><h3>enum gnutls_certificate_status_t</h3>
 <pre class="programlisting">typedef enum {
-    GNUTLS_CERT_INVALID = 2,
-    GNUTLS_CERT_REVOKED = 32,
-    GNUTLS_CERT_SIGNER_NOT_FOUND = 64,
-    GNUTLS_CERT_SIGNER_NOT_CA = 128,
-    GNUTLS_CERT_INSECURE_ALGORITHM = 256,
-    GNUTLS_CERT_NOT_ACTIVATED = 512,
-    GNUTLS_CERT_EXPIRED = 1024
+    GNUTLS_CERT_INVALID = 1&lt;&lt;1,
+    GNUTLS_CERT_REVOKED = 1&lt;&lt;5,
+    GNUTLS_CERT_SIGNER_NOT_FOUND = 1&lt;&lt;6,
+    GNUTLS_CERT_SIGNER_NOT_CA = 1&lt;&lt;7,
+    GNUTLS_CERT_INSECURE_ALGORITHM = 1&lt;&lt;8,
+    GNUTLS_CERT_NOT_ACTIVATED = 1&lt;&lt;9,
+    GNUTLS_CERT_EXPIRED = 1&lt;&lt;10,
+    GNUTLS_CERT_SIGNATURE_FAILURE = 1&lt;&lt;11,
+    GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED = 1&lt;&lt;12,
+    GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE = 1&lt;&lt;15,
 } gnutls_certificate_status_t;
 </pre>
 <p>
@@ -1752,6 +1755,21 @@ certificate verification.
 <td>The certificate has expired.
 </td>
 </tr>
+<tr>
+<td><p><a name="GNUTLS-CERT-SIGNATURE-FAILURE:CAPS"></a><span class="term"><code class="literal">GNUTLS_CERT_SIGNATURE_FAILURE</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-CERT-REVOCATION-DATA-SUPERSEDED:CAPS"></a><span class="term"><code class="literal">GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED</code></span></p></td>
+<td>The revocation data are old and have been superseded.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-CERT-REVOCATION-DATA-ISSUED-IN-FUTURE:CAPS"></a><span class="term"><code class="literal">GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE</code></span></p></td>
+<td>The revocation data have a future issue date.
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2064,7 +2082,7 @@ Enumeration of different public-key algorithms.
 <hr>
 <div class="refsect2">
 <a name="gnutls-pk-algorithm-get-name"></a><h3>gnutls_pk_algorithm_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_pk_algorithm_get_name        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_pk_algorithm_get_name        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algorithm</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> value to a string.
 </p>
@@ -2078,7 +2096,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title=
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a string that contains the name of the specified public
-key algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+key algorithm, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -2342,8 +2360,8 @@ Enumeration of security parameters for passive attacks.
 <hr>
 <div class="refsect2">
 <a name="gnutls-init"></a><h3>gnutls_init ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_init                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> *session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_init                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> *session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function initializes the current session to null. Every
 session must be initialized before use, so internal structures can
@@ -2351,8 +2369,8 @@ be allocated.  This function allocates structures which can only
 be free'd by calling <a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()"><code class="function">gnutls_deinit()</code></a>.  Returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success.
 </p>
 <p>
-<em class="parameter"><code>flags</code></em> can be one of <GTKDOCLINK HREF="GNUTLS-CLIENT:CAPS"><code class="literal">GNUTLS_CLIENT</code></GTKDOCLINK> and <GTKDOCLINK HREF="GNUTLS-SERVER:CAPS"><code class="literal">GNUTLS_SERVER</code></GTKDOCLINK>. For a DTLS
-entity, the flags <GTKDOCLINK HREF="GNUTLS-DATAGRAM:CAPS"><code class="literal">GNUTLS_DATAGRAM</code></GTKDOCLINK> and  <GTKDOCLINK HREF="GNUTLS-NONBLOCK:CAPS"><code class="literal">GNUTLS_NONBLOCK</code></GTKDOCLINK> are
+<em class="parameter"><code>flags</code></em> can be one of <code class="literal">GNUTLS_CLIENT</code> and <code class="literal">GNUTLS_SERVER</code>. For a DTLS
+entity, the flags <code class="literal">GNUTLS_DATAGRAM</code> and  <code class="literal">GNUTLS_NONBLOCK</code> are
 also available. The latter flag will enable a non-blocking
 operation of the DTLS timers.
 </p>
@@ -2378,7 +2396,7 @@ operation of the DTLS timers.
 <hr>
 <div class="refsect2">
 <a name="gnutls-deinit"></a><h3>gnutls_deinit ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_deinit                       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_deinit                       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function clears all buffers associated with the <em class="parameter"><code>session</code></em>.
 This function will also remove session data from the session
@@ -2395,7 +2413,7 @@ database if the session was terminated abnormally.
 <hr>
 <div class="refsect2">
 <a name="gnutls-bye"></a><h3>gnutls_bye ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_bye                          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_bye                          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-close-request-t" title="enum gnutls_close_request_t"><span class="type">gnutls_close_request_t</span></a> how</code></em>);</pre>
 <p>
 Terminates the current TLS/SSL connection. The connection should
@@ -2449,7 +2467,7 @@ function documentation for entire semantics.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-handshake"></a><h3>gnutls_handshake ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_handshake                    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_handshake                    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function does the handshake of the TLS/SSL protocol, and
 initializes the TLS connection.
@@ -2494,7 +2512,7 @@ some data were pending.
 <hr>
 <div class="refsect2">
 <a name="gnutls-rehandshake"></a><h3>gnutls_rehandshake ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_rehandshake                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_rehandshake                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function will renegotiate security parameters with the
 client.  This should only be called in case of a server.
@@ -2567,7 +2585,7 @@ If no alert has been received the returned value is undefined.
 <hr>
 <div class="refsect2">
 <a name="gnutls-alert-send"></a><h3>gnutls_alert_send ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_alert_send                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_alert_send                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-level-t" title="enum gnutls_alert_level_t"><span class="type">gnutls_alert_level_t</span></a> level</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> desc</code></em>);</pre>
 <p>
@@ -2607,8 +2625,8 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-alert-send-appropriate"></a><h3>gnutls_alert_send_appropriate ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_alert_send_appropriate       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> err</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_alert_send_appropriate       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> err</code></em>);</pre>
 <p>
 Sends an alert to the peer depending on the error code returned by
 a gnutls function. This function will call <a class="link" href="gnutls-gnutls.html#gnutls-error-to-alert" title="gnutls_error_to_alert ()"><code class="function">gnutls_error_to_alert()</code></a>
@@ -2644,10 +2662,10 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-alert-get-name"></a><h3>gnutls_alert_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_alert_get_name               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> alert</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_alert_get_name               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> alert</code></em>);</pre>
 <p>
 This function will return a string that describes the given alert
-number, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.  See <a class="link" href="gnutls-gnutls.html#gnutls-alert-get" title="gnutls_alert_get ()"><code class="function">gnutls_alert_get()</code></a>.
+number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.  See <a class="link" href="gnutls-gnutls.html#gnutls-alert-get" title="gnutls_alert_get ()"><code class="function">gnutls_alert_get()</code></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2667,7 +2685,7 @@ number, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDO
 <div class="refsect2">
 <a name="gnutls-pk-bits-to-sec-param"></a><h3>gnutls_pk_bits_to_sec_param ()</h3>
 <pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>  gnutls_pk_bits_to_sec_param         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algo</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> bits</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);</pre>
 <p>
 This is the inverse of <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()"><code class="function">gnutls_sec_param_to_pk_bits()</code></a>. Given an algorithm
 and the number of bits, it will return the security parameter. This is
@@ -2695,7 +2713,7 @@ a rough indication.
 <hr>
 <div class="refsect2">
 <a name="gnutls-sec-param-get-name"></a><h3>gnutls_sec_param_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_sec_param_get_name           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> param</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_sec_param_get_name           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> param</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> value to a string.
 </p>
@@ -2709,7 +2727,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="en
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a pointer to a string that contains the name of the
-specified security level, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+specified security level, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -2718,7 +2736,7 @@ specified security level, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">
 <hr>
 <div class="refsect2">
 <a name="gnutls-sec-param-to-pk-bits"></a><h3>gnutls_sec_param_to_pk_bits ()</h3>
-<pre class="programlisting">unsigned <GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>        gnutls_sec_param_to_pk_bits         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algo</code></em>,
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>        gnutls_sec_param_to_pk_bits         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algo</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> param</code></em>);</pre>
 <p>
 When generating private and public key pairs a difficult question
@@ -2860,8 +2878,8 @@ type.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-sign-algorithm-get-requested"></a><h3>gnutls_sign_algorithm_get_requested ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_sign_algorithm_get_requested (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> indx</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_sign_algorithm_get_requested (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> indx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> *algo</code></em>);</pre>
 <p>
 Returns the signature algorithm specified by index that was
@@ -2902,7 +2920,7 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-cipher-get-key-size"></a><h3>gnutls_cipher_get_key_size ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="size-t"><span class="returnvalue">size_t</span></GTKDOCLINK>              gnutls_cipher_get_key_size          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">size_t</span>              gnutls_cipher_get_key_size          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);</pre>
 <p>
 Get key size for cipher.
 </p>
@@ -2924,7 +2942,7 @@ the given cipher is invalid.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-mac-get-key-size"></a><h3>gnutls_mac_get_key_size ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="size-t"><span class="returnvalue">size_t</span></GTKDOCLINK>              gnutls_mac_get_key_size             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">size_t</span>              gnutls_mac_get_key_size             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);</pre>
 <p>
 Get size of MAC key.
 </p>
@@ -2946,7 +2964,7 @@ given MAC algorithm is invalid.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-cipher-get-name"></a><h3>gnutls_cipher_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_cipher_get_name              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_cipher_get_name              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> type to a string.
 </p>
@@ -2960,7 +2978,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" ti
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a pointer to a string that contains the name of the
-specified cipher, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+specified cipher, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -2968,7 +2986,7 @@ specified cipher, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</co
 <hr>
 <div class="refsect2">
 <a name="gnutls-mac-get-name"></a><h3>gnutls_mac_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_mac_get_name                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_mac_get_name                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> algorithm</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> value to a string.
 </p>
@@ -2982,7 +3000,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a string that contains the name of the specified MAC
-algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+algorithm, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -2990,7 +3008,7 @@ algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GT
 <hr>
 <div class="refsect2">
 <a name="gnutls-compression-get-name"></a><h3>gnutls_compression_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_compression_get_name         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_compression_get_name         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> algorithm</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> value to a string.
 </p>
@@ -3004,7 +3022,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t"
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a pointer to a string that contains the name of the
-specified compression algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+specified compression algorithm, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3012,7 +3030,7 @@ specified compression algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="li
 <hr>
 <div class="refsect2">
 <a name="gnutls-kx-get-name"></a><h3>gnutls_kx_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_kx_get_name                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_kx_get_name                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> algorithm</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> value to a string.
 </p>
@@ -3026,7 +3044,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title=
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a pointer to a string that contains the name of the
-specified key exchange algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+specified key exchange algorithm, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3034,7 +3052,7 @@ specified key exchange algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="l
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-type-get-name"></a><h3>gnutls_certificate_type_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_certificate_type_get_name    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> type</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_certificate_type_get_name    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> type</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> type to a string.
 </p>
@@ -3048,7 +3066,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" ti
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a string that contains the name of the specified
-certificate type, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> in case of unknown types.</td>
+certificate type, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of unknown types.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3056,7 +3074,7 @@ certificate type, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</co
 <hr>
 <div class="refsect2">
 <a name="gnutls-pk-get-name"></a><h3>gnutls_pk_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_pk_get_name                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_pk_get_name                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algorithm</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> value to a string.
 </p>
@@ -3070,7 +3088,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title=
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a pointer to a string that contains the name of the
-specified public key algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+specified public key algorithm, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3079,7 +3097,7 @@ specified public key algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="lit
 <hr>
 <div class="refsect2">
 <a name="gnutls-sign-get-name"></a><h3>gnutls_sign_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_sign_get_name                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algorithm</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_sign_get_name                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algorithm</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> value to a string.
 </p>
@@ -3093,7 +3111,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" titl
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a string that contains the name of the specified sign
-algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+algorithm, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3101,7 +3119,7 @@ algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GT
 <hr>
 <div class="refsect2">
 <a name="gnutls-mac-get-id"></a><h3>gnutls_mac_get_id ()</h3>
-<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="returnvalue">gnutls_mac_algorithm_t</span></a> gnutls_mac_get_id                (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="returnvalue">gnutls_mac_algorithm_t</span></a> gnutls_mac_get_id                (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
 <p>
 Convert a string to a <a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> value.  The names are
 compared in a case insensitive way.
@@ -3124,7 +3142,7 @@ algorithm string, or <a class="link" href="gnutls-gnutls.html#GNUTLS-MAC-UNKNOWN
 <hr>
 <div class="refsect2">
 <a name="gnutls-compression-get-id"></a><h3>gnutls_compression_get_id ()</h3>
-<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="returnvalue">gnutls_compression_method_t</span></a> gnutls_compression_get_id   (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="returnvalue">gnutls_compression_method_t</span></a> gnutls_compression_get_id   (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
 <p>
 The names are compared in a case insensitive way.
 </p>
@@ -3146,7 +3164,7 @@ The names are compared in a case insensitive way.
 <hr>
 <div class="refsect2">
 <a name="gnutls-cipher-get-id"></a><h3>gnutls_cipher_get_id ()</h3>
-<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a> gnutls_cipher_get_id          (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a> gnutls_cipher_get_id          (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
 <p>
 The names are compared in a case insensitive way.
 </p>
@@ -3168,7 +3186,7 @@ the specified cipher, or <a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-
 <hr>
 <div class="refsect2">
 <a name="gnutls-kx-get-id"></a><h3>gnutls_kx_get_id ()</h3>
-<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="returnvalue">gnutls_kx_algorithm_t</span></a> gnutls_kx_get_id                  (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="returnvalue">gnutls_kx_algorithm_t</span></a> gnutls_kx_get_id                  (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
 <p>
 Convert a string to a <a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> value.  The names are
 compared in a case insensitive way.
@@ -3191,7 +3209,7 @@ on error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-protocol-get-id"></a><h3>gnutls_protocol_get_id ()</h3>
-<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="returnvalue">gnutls_protocol_t</span></a>   gnutls_protocol_get_id              (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="returnvalue">gnutls_protocol_t</span></a>   gnutls_protocol_get_id              (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
 <p>
 The names are compared in a case insensitive way.
 </p>
@@ -3214,7 +3232,7 @@ The names are compared in a case insensitive way.
 <div class="refsect2">
 <a name="gnutls-certificate-type-get-id"></a><h3>gnutls_certificate_type_get_id ()</h3>
 <pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="returnvalue">gnutls_certificate_type_t</span></a> gnutls_certificate_type_get_id
-                                                        (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);</pre>
+                                                        (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
 <p>
 The names are compared in a case insensitive way.
 </p>
@@ -3236,7 +3254,7 @@ string certificate type, or <a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-
 <hr>
 <div class="refsect2">
 <a name="gnutls-pk-get-id"></a><h3>gnutls_pk_get_id ()</h3>
-<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_pk_get_id                  (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_pk_get_id                  (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
 <p>
 Convert a string to a <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> value.  The names are
 compared in a case insensitive way.  For example,
@@ -3261,7 +3279,7 @@ algorithm string, or <a class="link" href="gnutls-gnutls.html#GNUTLS-PK-UNKNOWN:
 <hr>
 <div class="refsect2">
 <a name="gnutls-sign-get-id"></a><h3>gnutls_sign_get_id ()</h3>
-<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="returnvalue">gnutls_sign_algorithm_t</span></a> gnutls_sign_get_id              (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *name</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="returnvalue">gnutls_sign_algorithm_t</span></a> gnutls_sign_get_id              (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
 <p>
 The names are compared in a case insensitive way.
 </p>
@@ -3368,7 +3386,7 @@ indicating the available protocols.</td>
 <p>
 Get a list of certificate types.  Note that to be able to use
 OpenPGP certificates, you must link to libgnutls-extra and call
-<GTKDOCLINK HREF="gnutls-global-init-extra"><code class="function">gnutls_global_init_extra()</code></GTKDOCLINK>.
+<code class="function">gnutls_global_init_extra()</code>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -3437,8 +3455,8 @@ integers indicating the available ciphers.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-cipher-suite-info"></a><h3>gnutls_cipher_suite_info ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_cipher_suite_info            (<em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> idx</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *cs_id</code></em>,
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_cipher_suite_info            (<em class="parameter"><code><span class="type">size_t</span> idx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *cs_id</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> *kx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> *cipher</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> *mac</code></em>,
@@ -3462,25 +3480,25 @@ idx=1 and so on until the function returns NULL.
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>kx</code></em> :</span></p></td>
-<td>output variable indicating key exchange algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+<td>output variable indicating key exchange algorithm, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cipher</code></em> :</span></p></td>
-<td>output variable indicating cipher, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+<td>output variable indicating cipher, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mac</code></em> :</span></p></td>
-<td>output variable indicating MAC algorithm, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+<td>output variable indicating MAC algorithm, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>min_version</code></em> :</span></p></td>
-<td>output variable indicating TLS protocol version, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+<td>output variable indicating TLS protocol version, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the name of <em class="parameter"><code>idx</code></em> cipher suite, and set the information
 about the cipher suite in the output variables.  If <em class="parameter"><code>idx</code></em> is out of
-bounds, <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> is returned.</td>
+bounds, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3488,7 +3506,7 @@ bounds, <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLI
 <hr>
 <div class="refsect2">
 <a name="gnutls-error-is-fatal"></a><h3>gnutls_error_is_fatal ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_error_is_fatal               (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> error</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_error_is_fatal               (<em class="parameter"><code><span class="type">int</span> error</code></em>);</pre>
 <p>
 If a GnuTLS function returns a negative error code you may feed that
 value to this function to see if the error condition is fatal. 
@@ -3518,8 +3536,8 @@ the record layer or the handshake layer.
 <hr>
 <div class="refsect2">
 <a name="gnutls-error-to-alert"></a><h3>gnutls_error_to_alert ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_error_to_alert               (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> err</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *level</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_error_to_alert               (<em class="parameter"><code><span class="type">int</span> err</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> *level</code></em>);</pre>
 <p>
 Get an alert depending on the error code returned by a gnutls
 function.  All alerts sent by this function should be considered
@@ -3552,9 +3570,9 @@ internal error is returned.
 <hr>
 <div class="refsect2">
 <a name="gnutls-perror"></a><h3>gnutls_perror ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_perror                       (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> error</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_perror                       (<em class="parameter"><code><span class="type">int</span> error</code></em>);</pre>
 <p>
-This function is like <GTKDOCLINK HREF="perror"><code class="function">perror()</code></GTKDOCLINK>. The only difference is that it
+This function is like <code class="function">perror()</code>. The only difference is that it
 accepts an error number returned by a gnutls function.
 </p>
 <div class="variablelist"><table border="0">
@@ -3568,11 +3586,11 @@ accepts an error number returned by a gnutls function.
 <hr>
 <div class="refsect2">
 <a name="gnutls-strerror"></a><h3>gnutls_strerror ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_strerror                     (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> error</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_strerror                     (<em class="parameter"><code><span class="type">int</span> error</code></em>);</pre>
 <p>
 This function is similar to strerror.  The difference is that it
 accepts an error number returned by a gnutls function; In case of
-an unknown error a descriptive string is sent instead of <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.
+an unknown error a descriptive string is sent instead of <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
 </p>
 <p>
 Error codes are always a negative error code.
@@ -3594,7 +3612,7 @@ Error codes are always a negative error code.
 <hr>
 <div class="refsect2">
 <a name="gnutls-strerror-name"></a><h3>gnutls_strerror_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_strerror_name                (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> error</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_strerror_name                (<em class="parameter"><code><span class="type">int</span> error</code></em>);</pre>
 <p>
 Return the GnuTLS error code define as a string.  For example,
 gnutls_strerror_name (GNUTLS_E_DH_PRIME_UNACCEPTABLE) will return
@@ -3619,9 +3637,9 @@ code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-handshake-set-private-extensions"></a><h3>gnutls_handshake_set_private_extensions ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_handshake_set_private_extensions
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_handshake_set_private_extensions
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> allow</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">int</span> allow</code></em>);</pre>
 <p>
 This function will enable or disable the use of private cipher
 suites (the ones that start with 0xFF).  By default or if <em class="parameter"><code>allow</code></em>
@@ -3710,23 +3728,23 @@ available handshake descriptions.
 <hr>
 <div class="refsect2">
 <a name="gnutls-record-send"></a><h3>gnutls_record_send ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             gnutls_record_send                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> data_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>             gnutls_record_send                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>);</pre>
 <p>
-This function has the similar semantics with <GTKDOCLINK HREF="send"><code class="function">send()</code></GTKDOCLINK>.  The only
+This function has the similar semantics with <code class="function">send()</code>.  The only
 difference is that it accepts a GnuTLS session, and uses different
 error codes.
-Note that if the send buffer is full, <GTKDOCLINK HREF="send"><code class="function">send()</code></GTKDOCLINK> will block this
-function.  See the <GTKDOCLINK HREF="send"><code class="function">send()</code></GTKDOCLINK> documentation for full information.  You
+Note that if the send buffer is full, <code class="function">send()</code> will block this
+function.  See the <code class="function">send()</code> documentation for full information.  You
 can replace the default push function by using
-<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()"><code class="function">gnutls_transport_set_ptr2()</code></a> with a call to <GTKDOCLINK HREF="send"><code class="function">send()</code></GTKDOCLINK> with a
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()"><code class="function">gnutls_transport_set_ptr2()</code></a> with a call to <code class="function">send()</code> with a
 MSG_DONTWAIT flag if blocking is a problem.
 If the EINTR is returned by the internal push function (the
-default is <GTKDOCLINK HREF="send"><code class="function">send()</code></GTKDOCLINK>) then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> will be returned. If
+default is <code class="function">send()</code>) then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> will be returned. If
 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> is returned, you must
 call this function again, with the same parameters; alternatively
-you could provide a <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> pointer for data, and 0 for
+you could provide a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> pointer for data, and 0 for
 size. cf. <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()"><code class="function">gnutls_record_get_direction()</code></a>. The errno value EMSGSIZE
 maps to <a class="link" href="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS" title="GNUTLS_E_LARGE_PACKET"><code class="literal">GNUTLS_E_LARGE_PACKET</code></a>.
 </p>
@@ -3758,11 +3776,11 @@ on the negotiated maximum record size.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-record-recv"></a><h3>gnutls_record_recv ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             gnutls_record_recv                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> data_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>             gnutls_record_recv                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>);</pre>
 <p>
-This function has the similar semantics with <GTKDOCLINK HREF="recv"><code class="function">recv()</code></GTKDOCLINK>.  The only
+This function has the similar semantics with <code class="function">recv()</code>.  The only
 difference is that it accepts a GnuTLS session, and uses different
 error codes.
 In the special case that a server requests a renegotiation, the
@@ -3770,8 +3788,8 @@ client may receive an error code of <a class="link" href="gnutls-gnutls.html#GNU
 message may be simply ignored, replied with an alert
 <a class="link" href="gnutls-gnutls.html#GNUTLS-A-NO-RENEGOTIATION:CAPS"><code class="literal">GNUTLS_A_NO_RENEGOTIATION</code></a>, or replied with a new handshake,
 depending on the client's will.
-If <GTKDOCLINK HREF="EINTR:CAPS"><code class="literal">EINTR</code></GTKDOCLINK> is returned by the internal push function (the default
-is <GTKDOCLINK HREF="recv"><code class="function">recv()</code></GTKDOCLINK>) then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> will be returned.  If
+If <code class="literal">EINTR</code> is returned by the internal push function (the default
+is <code class="function">recv()</code>) then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> will be returned.  If
 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> is returned, you must
 call this function again to get the data.  See also
 <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()"><code class="function">gnutls_record_get_direction()</code></a>.
@@ -3822,7 +3840,7 @@ The number of bytes received might be less than the requested <em class="paramet
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-enable-compatibility-mode"></a><h3>gnutls_session_enable_compatibility_mode ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_session_enable_compatibility_mode
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_session_enable_compatibility_mode
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function can be used to disable certain (security) features in
@@ -3845,7 +3863,7 @@ everything out there, need to call this function.
 <hr>
 <div class="refsect2">
 <a name="gnutls-record-disable-padding"></a><h3>gnutls_record_disable_padding ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_record_disable_padding       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_record_disable_padding       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Used to disabled padding in TLS 1.0 and above.  Normally you do not
 need to use this function, but there are buggy clients that
@@ -3867,14 +3885,14 @@ out there, need to call this function.
 <hr>
 <div class="refsect2">
 <a name="gnutls-record-get-direction"></a><h3>gnutls_record_get_direction ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_record_get_direction         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_record_get_direction         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function provides information about the internals of the
 record protocol and is only useful if a prior gnutls function call
 (e.g.  <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()"><code class="function">gnutls_handshake()</code></a>) was interrupted for some reason, that
 is, if a function returned <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> or
-<a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a>.  In such a case, you might want to call <GTKDOCLINK HREF="select"><code class="function">select()</code></GTKDOCLINK>
-or <GTKDOCLINK HREF="poll"><code class="function">poll()</code></GTKDOCLINK> before calling the interrupted gnutls function again.  To
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a>.  In such a case, you might want to call <code class="function">select()</code>
+or <code class="function">poll()</code> before calling the interrupted gnutls function again.  To
 tell you whether a file descriptor should be selected for either
 reading or writing, <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()"><code class="function">gnutls_record_get_direction()</code></a> returns 0 if the
 interrupted function was trying to read data, and 1 if it was
@@ -3897,7 +3915,7 @@ trying to write data.
 <hr>
 <div class="refsect2">
 <a name="gnutls-record-get-max-size"></a><h3>gnutls_record_get_max_size ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="size-t"><span class="returnvalue">size_t</span></GTKDOCLINK>              gnutls_record_get_max_size          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">size_t</span>              gnutls_record_get_max_size          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Get the record size.  The maximum record size is negotiated by the
 client after the first handshake message.
@@ -3919,8 +3937,8 @@ client after the first handshake message.
 <hr>
 <div class="refsect2">
 <a name="gnutls-record-set-max-size"></a><h3>gnutls_record_set_max_size ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             gnutls_record_set_max_size          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>             gnutls_record_set_max_size          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> size</code></em>);</pre>
 <p>
 This function sets the maximum record packet size in this
 connection.  This property can only be set to clients.  The server
@@ -3958,7 +3976,7 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-record-check-pending"></a><h3>gnutls_record_check_pending ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="size-t"><span class="returnvalue">size_t</span></GTKDOCLINK>              gnutls_record_check_pending         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">size_t</span>              gnutls_record_check_pending         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function checks if there are unread data
 in the gnutls buffers. If the return value is
@@ -3982,14 +4000,14 @@ is guarranteed not to block.
 <hr>
 <div class="refsect2">
 <a name="gnutls-prf"></a><h3>gnutls_prf ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_prf                          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> label_size</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *label</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> server_random_first</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> extra_size</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *extra</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> outsize</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *out</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_prf                          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> label_size</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> server_random_first</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> extra_size</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *extra</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> outsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *out</code></em>);</pre>
 <p>
 Apply the TLS Pseudo-Random-Function (PRF) on the master secret
 and the provided data, seeded with the client and server random fields.
@@ -4056,13 +4074,13 @@ The output is placed in <em class="parameter"><code>out</code></em>, which must
 <hr>
 <div class="refsect2">
 <a name="gnutls-prf-raw"></a><h3>gnutls_prf_raw ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_prf_raw                      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> label_size</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *label</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> seed_size</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *seed</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> outsize</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *out</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_prf_raw                      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> label_size</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> seed_size</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *seed</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> outsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *out</code></em>);</pre>
 <p>
 Apply the TLS Pseudo-Random-Function (PRF) on the master secret
 and the provided data.
@@ -4144,10 +4162,10 @@ Enumeration of different server name types.
 <hr>
 <div class="refsect2">
 <a name="gnutls-server-name-set"></a><h3>gnutls_server_name_set ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_server_name_set              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_server_name_set              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-server-name-type-t" title="enum gnutls_server_name_type_t"><span class="type">gnutls_server_name_type_t</span></a> type</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *name</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> name_length</code></em>);</pre>
+                                                         <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> name_length</code></em>);</pre>
 <p>
 This function is to be used by clients that want to inform (via a
 TLS extension mechanism) the server of the name they connected to.
@@ -4190,11 +4208,11 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-server-name-get"></a><h3>gnutls_server_name_get ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_server_name_get              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *data_length</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *type</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> indx</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_server_name_get              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *data_length</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *type</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> indx</code></em>);</pre>
 <p>
 This function will allow you to get the name indication (if any), a
 client has sent.  The name indication may be any of the enumeration
@@ -4250,7 +4268,7 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-safe-renegotiation-status"></a><h3>gnutls_safe_renegotiation_status ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_safe_renegotiation_status    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_safe_renegotiation_status    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Can be used to check whether safe renegotiation is being used
 in the current session.
@@ -4293,7 +4311,7 @@ Enumeration of different supplemental data types (RFC 4680).
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-ticket-key-generate"></a><h3>gnutls_session_ticket_key_generate ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_session_ticket_key_generate  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_session_ticket_key_generate  (<em class="parameter"><code><span class="type">gnutls_datum_t</span> *key</code></em>);</pre>
 <p>
 Generate a random key to encrypt security parameters within
 SessionTicket.
@@ -4303,7 +4321,7 @@ SessionTicket.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>is a pointer to a <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> which will contain a newly
+<td>is a pointer to a <span class="type">gnutls_datum_t</span> which will contain a newly
 created key.</td>
 </tr>
 <tr>
@@ -4318,7 +4336,7 @@ error code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-ticket-enable-client"></a><h3>gnutls_session_ticket_enable_client ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_session_ticket_enable_client (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_session_ticket_enable_client (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Request that the client should attempt session resumption using
 SessionTicket.
@@ -4342,8 +4360,8 @@ error code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-ticket-enable-server"></a><h3>gnutls_session_ticket_enable_server ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_session_ticket_enable_server (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_session_ticket_enable_server (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>);</pre>
 <p>
 Request that the server should attempt session resumption using
 SessionTicket.  <em class="parameter"><code>key</code></em> must be initialized with
@@ -4372,15 +4390,15 @@ error code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-priority-init"></a><h3>gnutls_priority_init ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_priority_init                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> *priority_cache</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *priorities</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> **err_pos</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_priority_init                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> *priority_cache</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *priorities</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>);</pre>
 <p>
 Sets priorities for the ciphers, key exchange methods, macs and
 compression methods.
 </p>
 <p>
-The <GTKDOCLINK HREF="priorities"><span class="type">priorities</span></GTKDOCLINK> option allows you to specify a colon
+The <span class="type">priorities</span> option allows you to specify a colon
 separated list of the cipher priorities to enable.
 Some keywords are defined to provide quick access
 to common preferences.
@@ -4448,14 +4466,14 @@ enabled, SSL3.0 is disabled, and libz compression enabled.
 "NONE:+VERS-TLS-ALL:+AES-128-CBC:+ECDHE-RSA:+SHA1:+COMP-NULL:+SIGN-RSA-SHA1:+CURVE-SECP256R1", 
 </p>
 <p>
-"NORMAL:<GTKDOCLINK HREF="COMPAT:CAPS"><code class="literal">COMPAT</code></GTKDOCLINK>" is the most compatible mode.
+"NORMAL:<code class="literal">COMPAT</code>" is the most compatible mode.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>priority_cache</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-prioritity-t"><span class="type">gnutls_prioritity_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_prioritity_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>priorities</code></em> :</span></p></td>
@@ -4476,7 +4494,7 @@ enabled, SSL3.0 is disabled, and libz compression enabled.
 <hr>
 <div class="refsect2">
 <a name="gnutls-priority-deinit"></a><h3>gnutls_priority_deinit ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_priority_deinit              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> priority_cache</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_priority_deinit              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> priority_cache</code></em>);</pre>
 <p>
 Deinitializes the priority cache.
 </p>
@@ -4484,14 +4502,14 @@ Deinitializes the priority cache.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>priority_cache</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-prioritity-t"><span class="type">gnutls_prioritity_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_prioritity_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-priority-set"></a><h3>gnutls_priority_set ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_priority_set                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_priority_set                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> priority</code></em>);</pre>
 <p>
 Sets the priorities to use on the ciphers, key exchange methods,
@@ -4519,9 +4537,9 @@ macs and compression methods.
 <hr>
 <div class="refsect2">
 <a name="gnutls-priority-set-direct"></a><h3>gnutls_priority_set_direct ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_priority_set_direct          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *priorities</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> **err_pos</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_priority_set_direct          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *priorities</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>);</pre>
 <p>
 Sets the priorities to use on the ciphers, key exchange methods,
 macs and compression methods.  This function avoids keeping a
@@ -4554,7 +4572,7 @@ TLS session.  For documentation check the <a class="link" href="gnutls-gnutls.ht
 <hr>
 <div class="refsect2">
 <a name="gnutls-set-default-priority"></a><h3>gnutls_set_default_priority ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_set_default_priority         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_set_default_priority         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Sets some default priority on the ciphers, key exchange methods,
 macs and compression methods.
@@ -4590,7 +4608,7 @@ use (which is recommended), you should use
 <hr>
 <div class="refsect2">
 <a name="gnutls-cipher-suite-get-name"></a><h3>gnutls_cipher_suite_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_cipher_suite_get_name        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> kx_algorithm</code></em>,
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_cipher_suite_get_name        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> kx_algorithm</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> cipher_algorithm</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac_algorithm</code></em>);</pre>
 <p>
@@ -4615,7 +4633,7 @@ SSL depending of the protocol in use.
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a string that contains the name of a TLS cipher suite,
-specified by the given algorithms, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+specified by the given algorithms, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -4644,7 +4662,7 @@ Get TLS version, a <a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" t
 <hr>
 <div class="refsect2">
 <a name="gnutls-protocol-get-name"></a><h3>gnutls_protocol_get_name ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_protocol_get_name            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> version</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_protocol_get_name            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> version</code></em>);</pre>
 <p>
 Convert a <a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> value to a string.
 </p>
@@ -4658,7 +4676,7 @@ Convert a <a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enu
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a string that contains the name of the specified TLS
-version (e.g., "TLS1.0"), or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+version (e.g., "TLS1.0"), or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -4666,9 +4684,9 @@ version (e.g., "TLS1.0"), or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-set-data"></a><h3>gnutls_session_set_data ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_session_set_data             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *session_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> session_data_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_session_set_data             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *session_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> session_data_size</code></em>);</pre>
 <p>
 Sets all session parameters, in order to resume a previously
 established session.  The session data given must be the one
@@ -4706,9 +4724,9 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-get-data"></a><h3>gnutls_session_get_data ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_session_get_data             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *session_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *session_data_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_session_get_data             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *session_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *session_data_size</code></em>);</pre>
 <p>
 Returns all session parameters, in order to support resuming.  The
 client should call this, and keep the returned session, if he
@@ -4746,8 +4764,8 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-get-data2"></a><h3>gnutls_session_get_data2 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_session_get_data2            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_session_get_data2            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *data</code></em>);</pre>
 <p>
 Returns all session parameters, in order to support resuming.  The
 client should call this, and keep the returned session, if he wants
@@ -4790,9 +4808,9 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-get-id"></a><h3>gnutls_session_get_id ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_session_get_id               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *session_id</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *session_id_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_session_get_id               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *session_id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *session_id_size</code></em>);</pre>
 <p>
 Returns the current session id. This can be used if you want to
 check if the next session you tried to resume was actually
@@ -4830,7 +4848,7 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-is-resumed"></a><h3>gnutls_session_is_resumed ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_session_is_resumed           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_session_is_resumed           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Check whether session is resumed or not.
 </p>
@@ -4852,33 +4870,33 @@ a new session.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-store-func"></a><h3>gnutls_db_store_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*gnutls_db_store_func)             (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> key</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> data</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*gnutls_db_store_func)             (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> data</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-remove-func"></a><h3>gnutls_db_remove_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*gnutls_db_remove_func)            (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*gnutls_db_remove_func)            (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> key</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-retr-func"></a><h3>gnutls_db_retr_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t</span></GTKDOCLINK>      (*gnutls_db_retr_func)              (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gnutls_datum_t</span>      (*gnutls_db_retr_func)              (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> key</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-set-cache-expiration"></a><h3>gnutls_db_set_cache_expiration ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_db_set_cache_expiration      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> seconds</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_db_set_cache_expiration      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> seconds</code></em>);</pre>
 <p>
 Set the expiration time for resumed sessions. The default is 3600
 (one hour) at the time of this writing.
@@ -4900,7 +4918,7 @@ Set the expiration time for resumed sessions. The default is 3600
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-remove-session"></a><h3>gnutls_db_remove_session ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_db_remove_session            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_db_remove_session            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function will remove the current session data from the
 session database.  This will prevent future handshakes reusing
@@ -4922,7 +4940,7 @@ sessions.
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-set-retrieve-function"></a><h3>gnutls_db_set_retrieve_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_db_set_retrieve_function     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_db_set_retrieve_function     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-retr-func" title="gnutls_db_retr_func ()"><span class="type">gnutls_db_retr_func</span></a> retr_func</code></em>);</pre>
 <p>
 Sets the function that will be used to retrieve data from the
@@ -4955,7 +4973,7 @@ The first argument to <em class="parameter"><code>retr_func</code></em> will be
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-set-remove-function"></a><h3>gnutls_db_set_remove_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_db_set_remove_function       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_db_set_remove_function       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-remove-func" title="gnutls_db_remove_func ()"><span class="type">gnutls_db_remove_func</span></a> rem_func</code></em>);</pre>
 <p>
 Sets the function that will be used to remove data from the
@@ -4982,7 +5000,7 @@ The first argument to <em class="parameter"><code>rem_func</code></em> will be n
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-set-store-function"></a><h3>gnutls_db_set_store_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_db_set_store_function        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_db_set_store_function        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-store-func" title="gnutls_db_store_func ()"><span class="type">gnutls_db_store_func</span></a> store_func</code></em>);</pre>
 <p>
 Sets the function that will be used to store data in the resumed
@@ -5009,8 +5027,8 @@ The first argument to <em class="parameter"><code>store_func</code></em> will be
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-set-ptr"></a><h3>gnutls_db_set_ptr ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_db_set_ptr                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *ptr</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_db_set_ptr                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);</pre>
 <p>
 Sets the pointer that will be provided to db store, retrieve and
 delete functions, as the first argument.
@@ -5032,7 +5050,7 @@ delete functions, as the first argument.
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-get-ptr"></a><h3>gnutls_db_get_ptr ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              gnutls_db_get_ptr                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> *              gnutls_db_get_ptr                   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Get db function pointer.
 </p>
@@ -5054,8 +5072,8 @@ delete functions, as the first argument.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-db-check-entry"></a><h3>gnutls_db_check_entry ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_db_check_entry               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> session_entry</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_db_check_entry               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> session_entry</code></em>);</pre>
 <p>
 Check if database entry has expired.  This function is to be used
 when you want to clear unnecessary sessions which occupy space in
@@ -5083,7 +5101,7 @@ expired or 0 otherwise.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-handshake-post-client-hello-func"></a><h3>gnutls_handshake_post_client_hello_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*gnutls_handshake_post_client_hello_func)
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*gnutls_handshake_post_client_hello_func)
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> Param1</code></em>);</pre>
 <p>
 </p>
@@ -5091,7 +5109,7 @@ expired or 0 otherwise.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-handshake-set-post-client-hello-function"></a><h3>gnutls_handshake_set_post_client_hello_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_handshake_set_post_client_hello_function
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_handshake_set_post_client_hello_function
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func" title="gnutls_handshake_post_client_hello_func ()"><span class="type">gnutls_handshake_post_client_hello_func</span></a> func</code></em>);</pre>
 <p>
@@ -5131,9 +5149,9 @@ there is a man-in-the-middle attack being performed.
 <hr>
 <div class="refsect2">
 <a name="gnutls-handshake-set-max-packet-length"></a><h3>gnutls_handshake_set_max_packet_length ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_handshake_set_max_packet_length
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_handshake_set_max_packet_length
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> max</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">size_t</span> max</code></em>);</pre>
 <p>
 This function will set the maximum size of all handshake messages.
 Handshakes over this size are rejected with
@@ -5162,7 +5180,7 @@ limit Denial of Service attacks.
 <hr>
 <div class="refsect2">
 <a name="gnutls-check-version"></a><h3>gnutls_check_version ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_check_version                (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *req_version</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_check_version                (<em class="parameter"><code>const <span class="type">char</span> *req_version</code></em>);</pre>
 <p>
 Check GnuTLS Library version.
 </p>
@@ -5174,14 +5192,14 @@ See <a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION:CAPS" title="GNUTLS_
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>req_version</code></em> :</span></p></td>
-<td>version string to compare with, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>.</td>
+<td>version string to compare with, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>Check that the version of the library is at
 minimum the one given as a string in <em class="parameter"><code>req_version</code></em> and return the
-actual version string of the library; return <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> if the
-condition is not met.  If <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> is passed to this function no
+actual version string of the library; return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
+condition is not met.  If <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is passed to this function no
 check is done and only the version string is returned.</td>
 </tr>
 </tbody>
@@ -5190,7 +5208,7 @@ check is done and only the version string is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-credentials-clear"></a><h3>gnutls_credentials_clear ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_credentials_clear            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_credentials_clear            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Clears all the credentials previously set in this session.
 </p>
@@ -5205,9 +5223,9 @@ Clears all the credentials previously set in this session.
 <hr>
 <div class="refsect2">
 <a name="gnutls-credentials-set"></a><h3>gnutls_credentials_set ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_credentials_set              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_credentials_set              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t"><span class="type">gnutls_credentials_type_t</span></a> type</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *cred</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">void</span> *cred</code></em>);</pre>
 <p>
 Sets the needed credentials for the specified type.  Eg username,
 password - or public and private keys etc.  The <em class="parameter"><code>cred</code></em> parameter is
@@ -5222,17 +5240,17 @@ until you call <a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gn
 </p>
 <p>
 For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-ANON:CAPS"><code class="literal">GNUTLS_CRD_ANON</code></a>, <em class="parameter"><code>cred</code></em> should be
-<GTKDOCLINK HREF="gnutls-anon-client-credentials-t"><span class="type">gnutls_anon_client_credentials_t</span></GTKDOCLINK> in case of a client.  In case of
-a server it should be <GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK>.
+<span class="type">gnutls_anon_client_credentials_t</span> in case of a client.  In case of
+a server it should be <span class="type">gnutls_anon_server_credentials_t</span>.
 </p>
 <p>
-For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-SRP:CAPS"><code class="literal">GNUTLS_CRD_SRP</code></a>, <em class="parameter"><code>cred</code></em> should be <GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK>
-in case of a client, and <GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK>, in case
+For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-SRP:CAPS"><code class="literal">GNUTLS_CRD_SRP</code></a>, <em class="parameter"><code>cred</code></em> should be <span class="type">gnutls_srp_client_credentials_t</span>
+in case of a client, and <span class="type">gnutls_srp_server_credentials_t</span>, in case
 of a server.
 </p>
 <p>
 For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-CERTIFICATE:CAPS"><code class="literal">GNUTLS_CRD_CERTIFICATE</code></a>, <em class="parameter"><code>cred</code></em> should be
-<GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK>.
+<span class="type">gnutls_certificate_credentials_t</span>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -5275,7 +5293,7 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-anon-free-server-credentials"></a><h3>gnutls_anon_free_server_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_anon_free_server_credentials (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_anon_free_server_credentials (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to free (deallocate) it.
@@ -5284,15 +5302,15 @@ helper function is provided in order to free (deallocate) it.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_anon_server_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-anon-allocate-server-credentials"></a><h3>gnutls_anon_allocate_server_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_anon_allocate_server_credentials
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> *sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_anon_allocate_server_credentials
+                                                        (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> *sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to allocate it.
@@ -5302,7 +5320,7 @@ helper function is provided in order to allocate it.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a pointer to a <GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a pointer to a <span class="type">gnutls_anon_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -5315,7 +5333,7 @@ helper function is provided in order to allocate it.
 <hr>
 <div class="refsect2">
 <a name="gnutls-anon-set-server-dh-params"></a><h3>gnutls_anon_set_server_dh_params ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_anon_set_server_dh_params    (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> res</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_anon_set_server_dh_params    (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
 <p>
 This function will set the Diffie-Hellman parameters for an
@@ -5339,9 +5357,9 @@ Anonymous Diffie-Hellman cipher suites.
 <hr>
 <div class="refsect2">
 <a name="gnutls-anon-set-server-params-function"></a><h3>gnutls_anon_set_server_params_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_anon_set_server_params_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_anon_set_server_params_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
 <p>
 This function will set a callback in order for the server to get
 the Diffie-Hellman parameters for anonymous authentication.  The
@@ -5364,7 +5382,7 @@ callback should return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS
 <hr>
 <div class="refsect2">
 <a name="gnutls-anon-free-client-credentials"></a><h3>gnutls_anon_free_client_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_anon_free_client_credentials (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-client-credentials-t"><span class="type">gnutls_anon_client_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_anon_free_client_credentials (<em class="parameter"><code><span class="type">gnutls_anon_client_credentials_t</span> sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to free (deallocate) it.
@@ -5373,15 +5391,15 @@ helper function is provided in order to free (deallocate) it.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-anon-client-credentials-t"><span class="type">gnutls_anon_client_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_anon_client_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-anon-allocate-client-credentials"></a><h3>gnutls_anon_allocate_client_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_anon_allocate_client_credentials
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-client-credentials-t"><span class="type">gnutls_anon_client_credentials_t</span></GTKDOCLINK> *sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_anon_allocate_client_credentials
+                                                        (<em class="parameter"><code><span class="type">gnutls_anon_client_credentials_t</span> *sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus
 this helper function is provided in order to allocate it.
@@ -5391,7 +5409,7 @@ this helper function is provided in order to allocate it.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a pointer to a <GTKDOCLINK HREF="gnutls-anon-client-credentials-t"><span class="type">gnutls_anon_client_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a pointer to a <span class="type">gnutls_anon_client_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -5404,7 +5422,7 @@ this helper function is provided in order to allocate it.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-free-credentials"></a><h3>gnutls_certificate_free_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_free_credentials (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_free_credentials (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to free (deallocate) it.
@@ -5418,15 +5436,15 @@ function).
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-allocate-credentials"></a><h3>gnutls_certificate_allocate_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_allocate_credentials
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> *res</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_allocate_credentials
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> *res</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to allocate it.
@@ -5436,7 +5454,7 @@ helper function is provided in order to allocate it.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a pointer to a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a pointer to a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -5449,7 +5467,7 @@ helper function is provided in order to allocate it.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-free-keys"></a><h3>gnutls_certificate_free_keys ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_free_keys        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_free_keys        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
 <p>
 This function will delete all the keys and the certificates associated
 with the given credentials. This function must not be called when a
@@ -5459,14 +5477,14 @@ TLS negotiation that uses the credentials is in progress.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-free-cas"></a><h3>gnutls_certificate_free_cas ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_free_cas         (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_free_cas         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
 <p>
 This function will delete all the CAs associated with the given
 credentials. Servers that do not use
@@ -5477,14 +5495,14 @@ memory.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-free-ca-names"></a><h3>gnutls_certificate_free_ca_names ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_free_ca_names    (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_free_ca_names    (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
 <p>
 This function will delete all the CA name in the given
 credentials. Clients may call this to save some memory since in
@@ -5501,14 +5519,14 @@ clients.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-free-crls"></a><h3>gnutls_certificate_free_crls ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_free_crls        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_free_crls        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
 <p>
 This function will delete all the CRLs associated
 with the given credentials.
@@ -5517,14 +5535,14 @@ with the given credentials.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-dh-params"></a><h3>gnutls_certificate_set_dh_params ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_set_dh_params    (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_set_dh_params    (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
 <p>
 This function will set the Diffie-Hellman parameters for a
@@ -5551,12 +5569,13 @@ you must change the parameters stored in the certificate first.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-verify-flags"></a><h3>gnutls_certificate_set_verify_flags ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_set_verify_flags (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> flags</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_set_verify_flags (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 <p>
 This function will set the flags to be used at verification of the
 certificates.  Flags must be OR of the
-<a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags"><span class="type">gnutls_certificate_verify_flags</span></a> enumerations.
+<a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags"><span class="type">gnutls_certificate_verify_flags</span></a> enumerations. The default
+for TLS sessions is GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -5575,10 +5594,10 @@ certificates.  Flags must be OR of the
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-verify-limits"></a><h3>gnutls_certificate_set_verify_limits ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_set_verify_limits
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> max_bits</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> max_depth</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_set_verify_limits
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> max_bits</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> max_depth</code></em>);</pre>
 <p>
 This function will set some upper limits for the default
 verification function, <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>, to avoid
@@ -5606,9 +5625,9 @@ limits.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-trust-file"></a><h3>gnutls_certificate_set_x509_trust_file ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_trust_file
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *cafile</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_trust_file
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *cafile</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);</pre>
 <p>
 This function adds the trusted CAs in order to verify client or
@@ -5623,7 +5642,7 @@ the client if a certificate request is sent. This can be disabled
 using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()"><code class="function">gnutls_certificate_send_x509_rdn_sequence()</code></a>.
 </p>
 <p>
-This function can also accept PKCS <GTKDOCLINK HREF="11:CAPS"><span class="type">11</span></GTKDOCLINK> URLs. In that case it
+This function can also accept PKCS <span class="type">11</span> URLs. In that case it
 will import all certificates that are marked as trusted.
 </p>
 <div class="variablelist"><table border="0">
@@ -5631,7 +5650,7 @@ will import all certificates that are marked as trusted.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cred</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cafile</code></em> :</span></p></td>
@@ -5652,9 +5671,9 @@ error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-trust-mem"></a><h3>gnutls_certificate_set_x509_trust_mem ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_trust_mem
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *ca</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_trust_mem
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *ca</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);</pre>
 <p>
 This function adds the trusted CAs in order to verify client or
@@ -5673,7 +5692,7 @@ a certificate request is sent. This can be disabled using
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ca</code></em> :</span></p></td>
@@ -5694,9 +5713,9 @@ on error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-crl-file"></a><h3>gnutls_certificate_set_x509_crl_file ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_crl_file
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *crlfile</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_crl_file
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *crlfile</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);</pre>
 <p>
 This function adds the trusted CRLs in order to verify client or server
@@ -5710,7 +5729,7 @@ This function may be called multiple times.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>crlfile</code></em> :</span></p></td>
@@ -5730,8 +5749,8 @@ This function may be called multiple times.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-crl-mem"></a><h3>gnutls_certificate_set_x509_crl_mem ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_crl_mem (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *CRL</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_crl_mem (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *CRL</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);</pre>
 <p>
 This function adds the trusted CRLs in order to verify client or
@@ -5745,7 +5764,7 @@ multiple times.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>CRL</code></em> :</span></p></td>
@@ -5765,10 +5784,10 @@ multiple times.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-key-file"></a><h3>gnutls_certificate_set_x509_key_file ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_key_file
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *certfile</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *keyfile</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_key_file
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);</pre>
 <p>
 This function sets a certificate/private key pair in the
@@ -5779,7 +5798,7 @@ entity certificate, e.g., also an intermediate CA cert, then the
 <em class="parameter"><code>certfile</code></em> must contain the ordered certificate chain.
 </p>
 <p>
-This function can also accept PKCS <GTKDOCLINK HREF="11:CAPS"><span class="type">11</span></GTKDOCLINK> URLs at <em class="parameter"><code>keyfile</code></em> and <em class="parameter"><code>certfile</code></em>. In that case it
+This function can also accept PKCS <span class="type">11</span> URLs at <em class="parameter"><code>keyfile</code></em> and <em class="parameter"><code>certfile</code></em>. In that case it
 will import the private key and certificate indicated by the URLs.
 </p>
 <div class="variablelist"><table border="0">
@@ -5787,7 +5806,7 @@ will import the private key and certificate indicated by the URLs.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>certfile</code></em> :</span></p></td>
@@ -5813,9 +5832,9 @@ the specified private key, in PKCS7 format, or a list of certificates</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-key-mem"></a><h3>gnutls_certificate_set_x509_key_mem ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_key_mem (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *cert</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *key</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_key_mem (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>);</pre>
 <p>
 This function sets a certificate/private key pair in the
@@ -5833,15 +5852,15 @@ If the certificate and the private key are given in PEM encoding
 then the strings that hold their values must be null terminated.
 </p>
 <p>
-The <em class="parameter"><code>key</code></em> may be <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> if you are using a sign callback, see
-<GTKDOCLINK HREF="gnutls-sign-callback-set"><code class="function">gnutls_sign_callback_set()</code></GTKDOCLINK>.
+The <em class="parameter"><code>key</code></em> may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if you are using a sign callback, see
+<code class="function">gnutls_sign_callback_set()</code>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
@@ -5849,7 +5868,7 @@ The <em class="parameter"><code>key</code></em> may be <GTKDOCLINK HREF="NULL:CA
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>is the private key, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK>
+<td>is the private key, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
 </td>
 </tr>
 <tr>
@@ -5867,9 +5886,9 @@ The <em class="parameter"><code>key</code></em> may be <GTKDOCLINK HREF="NULL:CA
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-send-x509-rdn-sequence"></a><h3>gnutls_certificate_send_x509_rdn_sequence ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_send_x509_rdn_sequence
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_send_x509_rdn_sequence
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> status</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">int</span> status</code></em>);</pre>
 <p>
 If status is non zero, this function will order gnutls not to send
 the rdnSequence in the certificate request message. That is the
@@ -5898,11 +5917,11 @@ methods other than certificate with X.509 certificates.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-simple-pkcs12-file"></a><h3>gnutls_certificate_set_x509_simple_pkcs12_file ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_simple_pkcs12_file
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *pkcs12file</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_simple_pkcs12_file
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pkcs12file</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password</code></em>);</pre>
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);</pre>
 <p>
 This function sets a certificate/private key pair and/or a CRL in
 the gnutls_certificate_credentials_t structure.  This function may
@@ -5910,15 +5929,15 @@ be called more than once (in case multiple keys/certificates exist
 for the server).
 </p>
 <p>
-PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> files with a MAC, encrypted bags and PKCS #8
+PKCS<span class="type">12</span> files with a MAC, encrypted bags and PKCS #8
 private keys are supported. However,
 only password based security, and the same password for all
 operations, are supported.
 </p>
 <p>
-PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> file may contain many keys and/or certificates, and there
+PKCS<span class="type">12</span> file may contain many keys and/or certificates, and there
 is no way to identify which key/certificate pair you want.  You
-should make sure the PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> file only contain one key/certificate
+should make sure the PKCS<span class="type">12</span> file only contain one key/certificate
 pair and/or one CRL.
 </p>
 <p>
@@ -5932,11 +5951,11 @@ all.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pkcs12file</code></em> :</span></p></td>
-<td>filename of file containing PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> blob.</td>
+<td>filename of file containing PKCS<span class="type">12</span> blob.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -5944,7 +5963,7 @@ all.
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
-<td>optional password used to decrypt PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> file, bags and keys.</td>
+<td>optional password used to decrypt PKCS<span class="type">12</span> file, bags and keys.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -5957,11 +5976,11 @@ all.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-simple-pkcs12-mem"></a><h3>gnutls_certificate_set_x509_simple_pkcs12_mem ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_simple_pkcs12_mem
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *p12blob</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_simple_pkcs12_mem
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p12blob</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> type</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password</code></em>);</pre>
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);</pre>
 <p>
 This function sets a certificate/private key pair and/or a CRL in
 the gnutls_certificate_credentials_t structure.  This function may
@@ -5969,15 +5988,15 @@ be called more than once (in case multiple keys/certificates exist
 for the server).
 </p>
 <p>
-MAC:ed PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> files are supported.  Encrypted PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> bags are
+MAC:ed PKCS<span class="type">12</span> files are supported.  Encrypted PKCS<span class="type">12</span> bags are
 supported.  Encrypted PKCS#8 private keys are supported.  However,
 only password based security, and the same password for all
 operations, are supported.
 </p>
 <p>
-PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> file may contain many keys and/or certificates, and there
+PKCS<span class="type">12</span> file may contain many keys and/or certificates, and there
 is no way to identify which key/certificate pair you want.  You
-should make sure the PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> file only contain one key/certificate
+should make sure the PKCS<span class="type">12</span> file only contain one key/certificate
 pair and/or one CRL.
 </p>
 <p>
@@ -5991,11 +6010,11 @@ all.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p12blob</code></em> :</span></p></td>
-<td>the PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> blob.</td>
+<td>the PKCS<span class="type">12</span> blob.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -6003,7 +6022,7 @@ all.
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
-<td>optional password used to decrypt PKCS<GTKDOCLINK HREF="12:CAPS"><span class="type">12</span></GTKDOCLINK> file, bags and keys.</td>
+<td>optional password used to decrypt PKCS<span class="type">12</span> file, bags and keys.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -6070,9 +6089,9 @@ all.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-key"></a><h3>gnutls_certificate_set_x509_key ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_key     (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_key     (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *cert_list</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> cert_list_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> cert_list_size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);</pre>
 <p>
 This function sets a certificate/private key pair in the
@@ -6087,7 +6106,7 @@ the certificate chain in <em class="parameter"><code>cert_list</code></em>.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cert_list</code></em> :</span></p></td>
@@ -6113,9 +6132,9 @@ the certificate chain in <em class="parameter"><code>cert_list</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-trust"></a><h3>gnutls_certificate_set_x509_trust ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_trust   (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_trust   (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *ca_list</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> ca_list_size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">int</span> ca_list_size</code></em>);</pre>
 <p>
 This function adds the trusted CAs in order to verify client
 or server certificates. In case of a client this is not required
@@ -6133,7 +6152,7 @@ a certificate request is sent. This can be disabled using
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ca_list</code></em> :</span></p></td>
@@ -6155,9 +6174,9 @@ on error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-x509-crl"></a><h3>gnutls_certificate_set_x509_crl ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_set_x509_crl     (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_x509_crl     (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl_list</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> crl_list_size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">int</span> crl_list_size</code></em>);</pre>
 <p>
 This function adds the trusted CRLs in order to verify client or
 server certificates.  In case of a client this is not required to
@@ -6170,7 +6189,7 @@ multiple times.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>crl_list</code></em> :</span></p></td>
@@ -6192,7 +6211,7 @@ multiple times.
 <hr>
 <div class="refsect2">
 <a name="gnutls-global-init"></a><h3>gnutls_global_init ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_global_init                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_global_init                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 This function initializes the global data to defaults.  
 In order to free resources you may call <a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()"><code class="function">gnutls_global_deinit()</code></a> 
@@ -6231,7 +6250,7 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-global-deinit"></a><h3>gnutls_global_deinit ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_global_deinit                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_global_deinit                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 This function deinitializes the global data, that were initialized
 using <a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()"><code class="function">gnutls_global_init()</code></a>.
@@ -6244,35 +6263,35 @@ Note!  This function is not thread safe.  See the discussion for
 <hr>
 <div class="refsect2">
 <a name="mutex-init-func"></a><h3>mutex_init_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*mutex_init_func)                  (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> **mutex</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*mutex_init_func)                  (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="mutex-lock-func"></a><h3>mutex_lock_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*mutex_lock_func)                  (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> **mutex</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*mutex_lock_func)                  (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="mutex-unlock-func"></a><h3>mutex_unlock_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*mutex_unlock_func)                (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> **mutex</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*mutex_unlock_func)                (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="mutex-deinit-func"></a><h3>mutex_deinit_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*mutex_deinit_func)                (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> **mutex</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*mutex_deinit_func)                (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-global-set-mutex"></a><h3>gnutls_global_set_mutex ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_global_set_mutex             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()"><span class="type">mutex_init_func</span></a> init</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_global_set_mutex             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()"><span class="type">mutex_init_func</span></a> init</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-deinit-func" title="mutex_deinit_func ()"><span class="type">mutex_deinit_func</span></a> deinit</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-lock-func" title="mutex_lock_func ()"><span class="type">mutex_lock_func</span></a> lock</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-unlock-func" title="mutex_unlock_func ()"><span class="type">mutex_unlock_func</span></a> unlock</code></em>);</pre>
@@ -6312,44 +6331,44 @@ This function must be called before <a class="link" href="gnutls-gnutls.html#gnu
 <hr>
 <div class="refsect2">
 <a name="gnutls-alloc-function"></a><h3>gnutls_alloc_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              (*gnutls_alloc_function)            (<em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param1</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> *              (*gnutls_alloc_function)            (<em class="parameter"><code><span class="type">size_t</span> Param1</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-calloc-function"></a><h3>gnutls_calloc_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              (*gnutls_calloc_function)           (<em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param2</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> *              (*gnutls_calloc_function)           (<em class="parameter"><code><span class="type">size_t</span> Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> Param2</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-is-secure-function"></a><h3>gnutls_is_secure_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*gnutls_is_secure_function)        (<em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*gnutls_is_secure_function)        (<em class="parameter"><code>const <span class="type">void</span> *Param1</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-free-function"></a><h3>gnutls_free_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                (*gnutls_free_function)             (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*gnutls_free_function)             (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-realloc-function"></a><h3>gnutls_realloc_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              (*gnutls_realloc_function)          (<em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param2</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> *              (*gnutls_realloc_function)          (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> Param2</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-global-set-mem-functions"></a><h3>gnutls_global_set_mem_functions ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_global_set_mem_functions     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()"><span class="type">gnutls_alloc_function</span></a> alloc_func</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_global_set_mem_functions     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()"><span class="type">gnutls_alloc_function</span></a> alloc_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()"><span class="type">gnutls_alloc_function</span></a> secure_alloc_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-is-secure-function" title="gnutls_is_secure_function ()"><span class="type">gnutls_is_secure_function</span></a> is_secure_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-realloc-function" title="gnutls_realloc_function ()"><span class="type">gnutls_realloc_function</span></a> realloc_func</code></em>,
@@ -6357,7 +6376,7 @@ This function must be called before <a class="link" href="gnutls-gnutls.html#gnu
 <p>
 This is the function where you set the memory allocation functions
 gnutls is going to use. By default the libc's allocation functions
-(<GTKDOCLINK HREF="malloc"><code class="function">malloc()</code></GTKDOCLINK>, <GTKDOCLINK HREF="free"><code class="function">free()</code></GTKDOCLINK>), are used by gnutls, to allocate both sensitive
+(<code class="function">malloc()</code>, <code class="function">free()</code>), are used by gnutls, to allocate both sensitive
 and not sensitive data.  This function is provided to set the
 memory allocation functions to something other than the defaults
 </p>
@@ -6370,7 +6389,7 @@ This function is not thread safe.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>alloc_func</code></em> :</span></p></td>
-<td>it's the default memory allocation function. Like <GTKDOCLINK HREF="malloc"><code class="function">malloc()</code></GTKDOCLINK>.</td>
+<td>it's the default memory allocation function. Like <code class="function">malloc()</code>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>secure_alloc_func</code></em> :</span></p></td>
@@ -6446,22 +6465,22 @@ The deallocation function used is the one set by
 <hr>
 <div class="refsect2">
 <a name="gnutls-strdup"></a><h3>gnutls_strdup ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *              (*gnutls_strdup)                    (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *Param1</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">char</span> *              (*gnutls_strdup)                    (<em class="parameter"><code>const <span class="type">char</span> *Param1</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-log-func"></a><h3>gnutls_log_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                (*gnutls_log_func)                  (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> Param1</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *Param2</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*gnutls_log_func)                  (<em class="parameter"><code><span class="type">int</span> Param1</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *Param2</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-global-set-log-function"></a><h3>gnutls_global_set_log_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_global_set_log_function      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()"><span class="type">gnutls_log_func</span></a> log_func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_global_set_log_function      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()"><span class="type">gnutls_log_func</span></a> log_func</code></em>);</pre>
 <p>
 This is the function where you set the logging function gnutls is
 going to use.  This function only accepts a character array.
@@ -6483,7 +6502,7 @@ void (*gnutls_log_func)( int level, const char*);
 <hr>
 <div class="refsect2">
 <a name="gnutls-global-set-log-level"></a><h3>gnutls_global_set_log_level ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_global_set_log_level         (<em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> level</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_global_set_log_level         (<em class="parameter"><code><span class="type">int</span> level</code></em>);</pre>
 <p>
 This is the function that allows you to set the log level.  The
 level is an integer between 0 and 9.  Higher values mean more
@@ -6504,7 +6523,7 @@ Use a log level over 10 to enable all debugging options.
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-params-init"></a><h3>gnutls_dh_params_init ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_params_init               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> *dh_params</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_params_init               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> *dh_params</code></em>);</pre>
 <p>
 This function will initialize the DH parameters structure.
 </p>
@@ -6526,7 +6545,7 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-params-deinit"></a><h3>gnutls_dh_params_deinit ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_dh_params_deinit             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_dh_params_deinit             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
 <p>
 This function will deinitialize the DH parameters structure.
 </p>
@@ -6541,9 +6560,9 @@ This function will deinitialize the DH parameters structure.
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-params-import-raw"></a><h3>gnutls_dh_params_import_raw ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_params_import_raw         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *prime</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *generator</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_params_import_raw         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *prime</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *generator</code></em>);</pre>
 <p>
 This function will replace the pair of prime and generator for use
 in the Diffie-Hellman key exchange.  The new parameters should be
@@ -6575,8 +6594,8 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-params-import-pkcs3"></a><h3>gnutls_dh_params_import_pkcs3 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_params_import_pkcs3       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *pkcs3_params</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_params_import_pkcs3       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *pkcs3_params</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
 <p>
 This function will extract the DHParams found in a PKCS3 formatted
@@ -6612,8 +6631,8 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-params-generate2"></a><h3>gnutls_dh_params_generate2 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_params_generate2          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> bits</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_params_generate2          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);</pre>
 <p>
 This function will generate a new pair of prime and generator for use in
 the Diffie-Hellman key exchange. The new parameters will be allocated using
@@ -6649,10 +6668,10 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-params-export-pkcs3"></a><h3>gnutls_dh_params_export_pkcs3 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_params_export_pkcs3       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_params_export_pkcs3       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *params_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *params_data_size</code></em>);</pre>
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *params_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *params_data_size</code></em>);</pre>
 <p>
 This function will export the given dh parameters to a PKCS3
 DHParams structure. This is the format generated by "openssl dhparam" tool.
@@ -6693,10 +6712,10 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-params-export-raw"></a><h3>gnutls_dh_params_export_raw ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_params_export_raw         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *prime</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *generator</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *bits</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_params_export_raw         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *prime</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *generator</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
 <p>
 This function will export the pair of prime and generator for use
 in the Diffie-Hellman key exchange.  The new parameters will be
@@ -6733,7 +6752,7 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-params-cpy"></a><h3>gnutls_dh_params_cpy ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_params_cpy                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dst</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_params_cpy                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dst</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> src</code></em>);</pre>
 <p>
 This function will copy the DH parameters structure from source
@@ -6761,41 +6780,41 @@ otherwise a negative error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pull-func"></a><h3>gnutls_pull_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             (*gnutls_pull_func)                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param2</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param3</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>             (*gnutls_pull_func)                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *Param2</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> Param3</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-push-func"></a><h3>gnutls_push_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             (*gnutls_push_func)                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *Param2</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> Param3</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>             (*gnutls_push_func)                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *Param2</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> Param3</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-vec-push-func"></a><h3>gnutls_vec_push_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="ssize-t"><span class="returnvalue">ssize_t</span></GTKDOCLINK>             (*gnutls_vec_push_func)             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="giovec-t"><span class="type">giovec_t</span></GTKDOCLINK> *iov</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> iovcnt</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>             (*gnutls_vec_push_func)             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">giovec_t</span> *iov</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> iovcnt</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-errno-func"></a><h3>gnutls_errno_func ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 (*gnutls_errno_func)                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*gnutls_errno_func)                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>);</pre>
 <p>
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-transport-set-ptr"></a><h3>gnutls_transport_set_ptr ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_transport_set_ptr            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_transport_set_ptr            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> ptr</code></em>);</pre>
 <p>
 Used to set the first argument of the transport function (for push
@@ -6819,7 +6838,7 @@ connection descriptor.
 <hr>
 <div class="refsect2">
 <a name="gnutls-transport-set-ptr2"></a><h3>gnutls_transport_set_ptr2 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_transport_set_ptr2           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_transport_set_ptr2           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> recv_ptr</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> send_ptr</code></em>);</pre>
 <p>
@@ -6872,7 +6891,7 @@ PUSH and PULL).  This must have been set using
 <hr>
 <div class="refsect2">
 <a name="gnutls-transport-get-ptr2"></a><h3>gnutls_transport_get_ptr2 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_transport_get_ptr2           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_transport_get_ptr2           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> *recv_ptr</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> *send_ptr</code></em>);</pre>
 <p>
@@ -6901,7 +6920,7 @@ and PULL).  These should have been set using
 <hr>
 <div class="refsect2">
 <a name="gnutls-transport-set-push-function"></a><h3>gnutls_transport_set_push_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_transport_set_push_function  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_transport_set_push_function  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()"><span class="type">gnutls_push_func</span></a> push_func</code></em>);</pre>
 <p>
 This is the function where you set a push function for gnutls to
@@ -6925,7 +6944,7 @@ ssize_t (*gnutls_push_func)(gnutls_transport_ptr_t, const void*, size_t);
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>push_func</code></em> :</span></p></td>
-<td>a callback function similar to <GTKDOCLINK HREF="write"><code class="function">write()</code></GTKDOCLINK>
+<td>a callback function similar to <code class="function">write()</code>
 </td>
 </tr>
 </tbody>
@@ -6934,7 +6953,7 @@ ssize_t (*gnutls_push_func)(gnutls_transport_ptr_t, const void*, size_t);
 <hr>
 <div class="refsect2">
 <a name="gnutls-transport-set-pull-function"></a><h3>gnutls_transport_set_pull_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_transport_set_pull_function  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_transport_set_pull_function  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pull-func" title="gnutls_pull_func ()"><span class="type">gnutls_pull_func</span></a> pull_func</code></em>);</pre>
 <p>
 This is the function where you set a function for gnutls to receive
@@ -6956,7 +6975,7 @@ ssize_t (*gnutls_pull_func)(gnutls_transport_ptr_t, void*, size_t);
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pull_func</code></em> :</span></p></td>
-<td>a callback function similar to <GTKDOCLINK HREF="read"><code class="function">read()</code></GTKDOCLINK>
+<td>a callback function similar to <code class="function">read()</code>
 </td>
 </tr>
 </tbody>
@@ -6965,7 +6984,7 @@ ssize_t (*gnutls_pull_func)(gnutls_transport_ptr_t, void*, size_t);
 <hr>
 <div class="refsect2">
 <a name="gnutls-transport-set-errno-function"></a><h3>gnutls_transport_set_errno_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_transport_set_errno_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_transport_set_errno_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-errno-func" title="gnutls_errno_func ()"><span class="type">gnutls_errno_func</span></a> errno_func</code></em>);</pre>
 <p>
 This is the function where you set a function to retrieve errno
@@ -6985,7 +7004,7 @@ and should return the errno.
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>errno_func</code></em> :</span></p></td>
-<td>a callback function similar to <GTKDOCLINK HREF="write"><code class="function">write()</code></GTKDOCLINK>
+<td>a callback function similar to <code class="function">write()</code>
 </td>
 </tr>
 </tbody>
@@ -6995,8 +7014,8 @@ and should return the errno.
 <hr>
 <div class="refsect2">
 <a name="gnutls-transport-set-errno"></a><h3>gnutls_transport_set_errno ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_transport_set_errno          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> err</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_transport_set_errno          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> err</code></em>);</pre>
 <p>
 Store <em class="parameter"><code>err</code></em> in the session-specific errno variable.  Useful values
 for <em class="parameter"><code>err</code></em> is EAGAIN and EINTR, other values are treated will be
@@ -7027,8 +7046,8 @@ msvcr71.dll and gnutls is linked to msvcrt.dll).
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-set-ptr"></a><h3>gnutls_session_set_ptr ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_session_set_ptr              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *ptr</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_session_set_ptr              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);</pre>
 <p>
 This function will set (associate) the user given pointer <em class="parameter"><code>ptr</code></em> to
 the session structure.  This is pointer can be accessed with
@@ -7051,7 +7070,7 @@ the session structure.  This is pointer can be accessed with
 <hr>
 <div class="refsect2">
 <a name="gnutls-session-get-ptr"></a><h3>gnutls_session_get_ptr ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK> *              gnutls_session_get_ptr              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> *              gnutls_session_get_ptr              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Get user pointer for session.  Useful in callbacks.  This is the
   pointer set with <a class="link" href="gnutls-gnutls.html#gnutls-session-set-ptr" title="gnutls_session_set_ptr ()"><code class="function">gnutls_session_set_ptr()</code></a>.
@@ -7066,7 +7085,7 @@ Get user pointer for session.  Useful in callbacks.  This is the
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the user given pointer from the session structure, or
-<GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> if it was never set.</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it was never set.</td>
 </tr>
 </tbody>
 </table></div>
@@ -7074,7 +7093,7 @@ Get user pointer for session.  Useful in callbacks.  This is the
 <hr>
 <div class="refsect2">
 <a name="gnutls-openpgp-send-cert"></a><h3>gnutls_openpgp_send_cert ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_openpgp_send_cert            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_send_cert            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-status-t" title="enum gnutls_openpgp_crt_status_t"><span class="type">gnutls_openpgp_crt_status_t</span></a> status</code></em>);</pre>
 <p>
 This function will order gnutls to send the key fingerprint
@@ -7099,10 +7118,10 @@ that the server can obtain the client's key.
 <hr>
 <div class="refsect2">
 <a name="gnutls-fingerprint"></a><h3>gnutls_fingerprint ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_fingerprint                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algo</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_fingerprint                  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algo</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
 <p>
 This function will calculate a fingerprint (actually a hash), of
 the given data.  The result is not printable data.  You should
@@ -7145,7 +7164,7 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-free-client-credentials"></a><h3>gnutls_srp_free_client_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_srp_free_client_credentials  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_srp_free_client_credentials  (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus
 this helper function is provided in order to free (deallocate) it.
@@ -7154,15 +7173,15 @@ this helper function is provided in order to free (deallocate) it.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_srp_client_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-allocate-client-credentials"></a><h3>gnutls_srp_allocate_client_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_allocate_client_credentials
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> *sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_allocate_client_credentials
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> *sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus
 this helper function is provided in order to allocate it.
@@ -7172,7 +7191,7 @@ this helper function is provided in order to allocate it.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a pointer to a <GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a pointer to a <span class="type">gnutls_srp_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -7185,12 +7204,12 @@ error code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-set-client-credentials"></a><h3>gnutls_srp_set_client_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_set_client_credentials   (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *username</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_set_client_credentials   (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *username</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);</pre>
 <p>
 This function sets the username and password, in a
-<GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> structure.  Those will be used in
+<span class="type">gnutls_srp_client_credentials_t</span> structure.  Those will be used in
 SRP authentication.  <em class="parameter"><code>username</code></em> and <em class="parameter"><code>password</code></em> should be ASCII
 strings or UTF-8 strings prepared using the "SASLprep" profile of
 "stringprep".
@@ -7200,7 +7219,7 @@ strings or UTF-8 strings prepared using the "SASLprep" profile of
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_srp_client_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>username</code></em> :</span></p></td>
@@ -7221,7 +7240,7 @@ error code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-free-server-credentials"></a><h3>gnutls_srp_free_server_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_srp_free_server_credentials  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_srp_free_server_credentials  (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus
 this helper function is provided in order to free (deallocate) it.
@@ -7230,15 +7249,15 @@ this helper function is provided in order to free (deallocate) it.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_srp_server_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-allocate-server-credentials"></a><h3>gnutls_srp_allocate_server_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_allocate_server_credentials
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> *sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_allocate_server_credentials
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> *sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to allocate it.
@@ -7248,7 +7267,7 @@ helper function is provided in order to allocate it.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a pointer to a <GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a pointer to a <span class="type">gnutls_srp_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -7261,13 +7280,13 @@ error code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-set-server-credentials-file"></a><h3>gnutls_srp_set_server_credentials_file ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_set_server_credentials_file
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password_file</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password_conf_file</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_set_server_credentials_file
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password_file</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password_conf_file</code></em>);</pre>
 <p>
 This function sets the password files, in a
-<GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> structure.  Those password files
+<span class="type">gnutls_srp_server_credentials_t</span> structure.  Those password files
 hold usernames and verifiers and will be used for SRP
 authentication.
 </p>
@@ -7276,7 +7295,7 @@ authentication.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_srp_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>password_file</code></em> :</span></p></td>
@@ -7297,7 +7316,7 @@ error code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-server-get-username"></a><h3>gnutls_srp_server_get_username ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_srp_server_get_username      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_srp_server_get_username      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function will return the username of the peer.  This should
 only be called in case of SRP authentication and in case of a
@@ -7320,8 +7339,8 @@ server.  Returns NULL in case of an error.
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-set-prime-bits"></a><h3>gnutls_srp_set_prime_bits ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_srp_set_prime_bits           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> bits</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_srp_set_prime_bits           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);</pre>
 <p>
 This function sets the minimum accepted number of bits, for use in
 an SRP key exchange.  If zero, the default 2048 bits will be used.
@@ -7353,12 +7372,12 @@ This function has no effect in server side.
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-verifier"></a><h3>gnutls_srp_verifier ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_verifier                 (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *username</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *salt</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *generator</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *prime</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *res</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_verifier                 (<em class="parameter"><code>const <span class="type">char</span> *username</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *salt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *generator</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *prime</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *res</code></em>);</pre>
 <p>
 This function will create an SRP verifier, as specified in
 RFC2945.  The <em class="parameter"><code>prime</code></em> and <em class="parameter"><code>generator</code></em> should be one of the static
@@ -7454,9 +7473,9 @@ error code.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-set-server-credentials-function"></a><h3>gnutls_srp_set_server_credentials_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_srp_set_server_credentials_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-server-credentials-function"><span class="type">gnutls_srp_server_credentials_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_srp_set_server_credentials_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_srp_server_credentials_function</span> *func</code></em>);</pre>
 <p>
 This function can be used to set a callback to retrieve the user's
 SRP credentials.  The callback's function form is:
@@ -7492,7 +7511,7 @@ The callback function should return 0 on success, while
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cred</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_srp_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -7504,9 +7523,9 @@ The callback function should return 0 on success, while
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-set-client-credentials-function"></a><h3>gnutls_srp_set_client_credentials_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_srp_set_client_credentials_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-t"><span class="type">gnutls_srp_client_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-srp-client-credentials-function"><span class="type">gnutls_srp_client_credentials_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_srp_set_client_credentials_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_srp_client_credentials_function</span> *func</code></em>);</pre>
 <p>
 This function can be used to set a callback to retrieve the
 username and password for client SRP authentication.  The
@@ -7538,7 +7557,7 @@ The callback function should return 0 on success.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cred</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-srp-server-credentials-t"><span class="type">gnutls_srp_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_srp_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -7550,9 +7569,9 @@ The callback function should return 0 on success.
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-base64-encode"></a><h3>gnutls_srp_base64_encode ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_base64_encode            (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_base64_encode            (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
 <p>
 This function will convert the given data to printable data, using
 the base64 encoding, as used in the libsrp.  This is the encoding
@@ -7590,8 +7609,8 @@ long enough, or 0 on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-base64-encode-alloc"></a><h3>gnutls_srp_base64_encode_alloc ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_base64_encode_alloc      (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *result</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_base64_encode_alloc      (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *result</code></em>);</pre>
 <p>
 This function will convert the given data to printable data, using
 the base64 encoding.  This is the encoding used in SRP password
@@ -7626,9 +7645,9 @@ do not use it for non-SRP purposes.
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-base64-decode"></a><h3>gnutls_srp_base64_decode ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_base64_decode            (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *b64_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_base64_decode            (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *b64_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
 <p>
 This function will decode the given encoded data, using the base64
 encoding found in libsrp.
@@ -7667,8 +7686,8 @@ long enough, or 0 on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-srp-base64-decode-alloc"></a><h3>gnutls_srp_base64_decode_alloc ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_srp_base64_decode_alloc      (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *b64_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *result</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_srp_base64_decode_alloc      (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *b64_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *result</code></em>);</pre>
 <p>
 This function will decode the given encoded data. The decoded data
 will be allocated, and stored into result.  It will decode using
@@ -7729,7 +7748,7 @@ Enumeration of different PSK key flags.
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-free-client-credentials"></a><h3>gnutls_psk_free_client_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_psk_free_client_credentials  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_psk_free_client_credentials  (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to free (deallocate) it.
@@ -7738,15 +7757,15 @@ helper function is provided in order to free (deallocate) it.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_psk_client_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-allocate-client-credentials"></a><h3>gnutls_psk_allocate_client_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_psk_allocate_client_credentials
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> *sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_psk_allocate_client_credentials
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> *sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to allocate it.
@@ -7756,7 +7775,7 @@ helper function is provided in order to allocate it.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a pointer to a <GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a pointer to a <span class="type">gnutls_psk_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -7769,9 +7788,9 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-set-client-credentials"></a><h3>gnutls_psk_set_client_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_psk_set_client_credentials   (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *username</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *key</code></em>,
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_psk_set_client_credentials   (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *username</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-psk-key-flags" title="enum gnutls_psk_key_flags"><span class="type">gnutls_psk_key_flags</span></a> flags</code></em>);</pre>
 <p>
 This function sets the username and password, in a
@@ -7786,7 +7805,7 @@ key can be either in raw byte format or in Hex format (without the
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_psk_client_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>username</code></em> :</span></p></td>
@@ -7812,7 +7831,7 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-free-server-credentials"></a><h3>gnutls_psk_free_server_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_psk_free_server_credentials  (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_psk_free_server_credentials  (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to free (deallocate) it.
@@ -7821,15 +7840,15 @@ helper function is provided in order to free (deallocate) it.
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_psk_server_credentials_t</span> structure.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-allocate-server-credentials"></a><h3>gnutls_psk_allocate_server_credentials ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_psk_allocate_server_credentials
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> *sc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_psk_allocate_server_credentials
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> *sc</code></em>);</pre>
 <p>
 This structure is complex enough to manipulate directly thus this
 helper function is provided in order to allocate it.
@@ -7839,7 +7858,7 @@ helper function is provided in order to allocate it.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
-<td>is a pointer to a <GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a pointer to a <span class="type">gnutls_psk_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -7852,12 +7871,12 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-set-server-credentials-file"></a><h3>gnutls_psk_set_server_credentials_file ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_psk_set_server_credentials_file
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *password_file</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_psk_set_server_credentials_file
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password_file</code></em>);</pre>
 <p>
 This function sets the password file, in a
-<GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><code class="literal">gnutls_psk_server_credentials_t</code></GTKDOCLINK> structure.  This password file
+<code class="literal">gnutls_psk_server_credentials_t</code> structure.  This password file
 holds usernames and keys and will be used for PSK authentication.
 </p>
 <div class="variablelist"><table border="0">
@@ -7865,7 +7884,7 @@ holds usernames and keys and will be used for PSK authentication.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_psk_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>password_file</code></em> :</span></p></td>
@@ -7882,12 +7901,12 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-set-server-credentials-hint"></a><h3>gnutls_psk_set_server_credentials_hint ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_psk_set_server_credentials_hint
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *hint</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_psk_set_server_credentials_hint
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *hint</code></em>);</pre>
 <p>
 This function sets the identity hint, in a
-<GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><code class="literal">gnutls_psk_server_credentials_t</code></GTKDOCLINK> structure.  This hint is sent to
+<code class="literal">gnutls_psk_server_credentials_t</code> structure.  This hint is sent to
 the client to help it chose a good PSK credential (i.e., username
 and password).
 </p>
@@ -7896,7 +7915,7 @@ and password).
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_psk_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>hint</code></em> :</span></p></td>
@@ -7914,7 +7933,7 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-server-get-username"></a><h3>gnutls_psk_server_get_username ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_psk_server_get_username      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_psk_server_get_username      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This should only be called in case of PSK authentication and in
 case of a server.
@@ -7928,7 +7947,7 @@ case of a server.
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the username of the peer, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> in case of an error.</td>
+<td>the username of the peer, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error.</td>
 </tr>
 </tbody>
 </table></div>
@@ -7936,7 +7955,7 @@ case of a server.
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-client-get-hint"></a><h3>gnutls_psk_client_get_hint ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="char"><span class="returnvalue">char</span></GTKDOCLINK> *        gnutls_psk_client_get_hint          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_psk_client_get_hint          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 The PSK identity hint may give the client help in deciding which
 username to use.  This should only be called in case of PSK
@@ -7951,7 +7970,7 @@ authentication and in case of a client.
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the identity hint of the peer, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> in case of an error.</td>
+<td>the identity hint of the peer, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error.</td>
 </tr>
 </tbody>
 </table></div>
@@ -7960,9 +7979,9 @@ authentication and in case of a client.
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-set-server-credentials-function"></a><h3>gnutls_psk_set_server_credentials_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_psk_set_server_credentials_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-function"><span class="type">gnutls_psk_server_credentials_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_psk_set_server_credentials_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_psk_server_credentials_function</span> *func</code></em>);</pre>
 <p>
 This function can be used to set a callback to retrieve the user's PSK credentials.
 The callback's function form is:
@@ -7987,7 +8006,7 @@ an error.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cred</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_psk_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -7999,9 +8018,9 @@ an error.
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-set-client-credentials-function"></a><h3>gnutls_psk_set_client_credentials_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_psk_set_client_credentials_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-t"><span class="type">gnutls_psk_client_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-client-credentials-function"><span class="type">gnutls_psk_client_credentials_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_psk_set_client_credentials_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_psk_client_credentials_function</span> *func</code></em>);</pre>
 <p>
 This function can be used to set a callback to retrieve the username and
 password for client PSK authentication.
@@ -8026,7 +8045,7 @@ The callback function should return 0 on success.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cred</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_psk_server_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -8038,9 +8057,9 @@ The callback function should return 0 on success.
 <hr>
 <div class="refsect2">
 <a name="gnutls-hex-encode"></a><h3>gnutls_hex_encode ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_hex_encode                   (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hex_encode                   (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
 <p>
 This function will convert the given data to printable data, using
 the hex encoding, as used in the PSK password files.
@@ -8072,9 +8091,9 @@ long enough, or 0 on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-hex-decode"></a><h3>gnutls_hex_decode ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_hex_decode                   (<em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *hex_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hex_decode                   (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hex_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
 <p>
 This function will decode the given encoded data, using the hex
 encoding used by PSK password files.
@@ -8109,7 +8128,7 @@ long enough, or 0 on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-set-server-dh-params"></a><h3>gnutls_psk_set_server_dh_params ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_psk_set_server_dh_params     (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_psk_set_server_dh_params     (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
 <p>
 This function will set the Diffie-Hellman parameters for an
@@ -8133,9 +8152,9 @@ Diffie-Hellman exchange with PSK cipher suites.
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-set-server-params-function"></a><h3>gnutls_psk_set_server_params_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_psk_set_server_params_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_psk_set_server_params_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
 <p>
 This function will set a callback in order for the server to get
 the Diffie-Hellman parameters for PSK authentication.  The callback
@@ -8146,7 +8165,7 @@ should return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" ti
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -8380,8 +8399,8 @@ schema, a <a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" ti
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-set-prime-bits"></a><h3>gnutls_dh_set_prime_bits ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_dh_set_prime_bits            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> bits</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_dh_set_prime_bits            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);</pre>
 <p>
 This function sets the number of bits, for use in a Diffie-Hellman
 key exchange.  This is used both in DH ephemeral and DH anonymous
@@ -8417,7 +8436,7 @@ This function has no effect in server side.
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-get-secret-bits"></a><h3>gnutls_dh_get_secret_bits ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_get_secret_bits           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_get_secret_bits           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function will return the bits used in the last Diffie-Hellman
 key exchange with the peer.  Should be used for both anonymous and
@@ -8441,7 +8460,7 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-get-peers-public-bits"></a><h3>gnutls_dh_get_peers_public_bits ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_get_peers_public_bits     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_get_peers_public_bits     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Get the Diffie-Hellman public key bit size.  Can be used for both
 anonymous and ephemeral Diffie-Hellman.
@@ -8464,7 +8483,7 @@ key exchange with the peer, or a negative error code in case of error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-get-prime-bits"></a><h3>gnutls_dh_get_prime_bits ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_get_prime_bits            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_get_prime_bits            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 This function will return the bits of the prime used in the last
 Diffie-Hellman key exchange with the peer.  Should be used for both
@@ -8491,9 +8510,9 @@ failure.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-get-group"></a><h3>gnutls_dh_get_group ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_get_group                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *raw_gen</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *raw_prime</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_get_group                 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *raw_gen</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *raw_prime</code></em>);</pre>
 <p>
 This function will return the group parameters used in the last
 Diffie-Hellman key exchange with the peer.  These are the prime and
@@ -8527,8 +8546,8 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-dh-get-pubkey"></a><h3>gnutls_dh_get_pubkey ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_dh_get_pubkey                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *raw_key</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_dh_get_pubkey                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *raw_key</code></em>);</pre>
 <p>
 This function will return the peer's public key used in the last
 Diffie-Hellman key exchange.  This function should be used for both
@@ -8557,13 +8576,13 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-retrieve-function"></a><h3>gnutls_certificate_set_retrieve_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_set_retrieve_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-retrieve-function"><span class="type">gnutls_certificate_retrieve_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_set_retrieve_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_certificate_retrieve_function</span> *func</code></em>);</pre>
 <p>
 This function sets a callback to be called in order to retrieve the
 certificate to be used in the handshake. You are advised
-to use <GTKDOCLINK HREF="gnutls-certificate-set-retrieve-function2"><code class="function">gnutls_certificate_set_retrieve_function2()</code></GTKDOCLINK> because it
+to use <code class="function">gnutls_certificate_set_retrieve_function2()</code> because it
 is much more efficient in the processing it requires from gnutls.
 </p>
 <p>
@@ -8603,7 +8622,7 @@ indicates error and the handshake will be terminated.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cred</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -8616,9 +8635,9 @@ indicates error and the handshake will be terminated.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-verify-function"></a><h3>gnutls_certificate_set_verify_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_set_verify_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> cred</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-verify-function"><span class="type">gnutls_certificate_verify_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_set_verify_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_certificate_verify_function</span> *func</code></em>);</pre>
 <p>
 This function sets a callback to be called when peer's certificate
 has been received in order to verify it on receipt rather than
@@ -8644,7 +8663,7 @@ or non-zero to terminate.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cred</code></em> :</span></p></td>
-<td>is a <GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> structure.</td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -8657,7 +8676,7 @@ or non-zero to terminate.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-server-set-request"></a><h3>gnutls_certificate_server_set_request ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_server_set_request
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_server_set_request
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-request-t" title="enum gnutls_certificate_request_t"><span class="type">gnutls_certificate_request_t</span></a> req</code></em>);</pre>
 <p>
@@ -8684,8 +8703,8 @@ function then the client will not be asked to send a certificate.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-get-peers"></a><h3>gnutls_certificate_get_peers ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t</span></GTKDOCLINK> * gnutls_certificate_get_peers     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *list_size</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">gnutls_datum_t</span> * gnutls_certificate_get_peers     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *list_size</code></em>);</pre>
 <p>
 Get the peer's raw certificate (chain) as sent by the peer.  These
 certificates are in raw format (DER encoded for X.509).  In case of
@@ -8710,8 +8729,8 @@ format.
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to a <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> containing our
-certificates, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> in case of an error or if no certificate
+<td>a pointer to a <span class="type">gnutls_datum_t</span> containing our
+certificates, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error or if no certificate
 was used.</td>
 </tr>
 </tbody>
@@ -8720,7 +8739,7 @@ was used.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-get-ours"></a><h3>gnutls_certificate_get_ours ()</h3>
-<pre class="programlisting">const <GTKDOCLINK HREF="gnutls-datum-t"><span class="returnvalue">gnutls_datum_t</span></GTKDOCLINK> * gnutls_certificate_get_ours      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">gnutls_datum_t</span> * gnutls_certificate_get_ours      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Gets the certificate as sent to the peer in the last handshake.
 The certificate is in raw (DER) format.  No certificate
@@ -8735,8 +8754,8 @@ list is being returned. Only the first certificate.
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to a <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> containing our
-certificate, or <GTKDOCLINK HREF="NULL:CAPS"><code class="literal">NULL</code></GTKDOCLINK> in case of an error or if no certificate
+<td>a pointer to a <span class="type">gnutls_datum_t</span> containing our
+certificate, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error or if no certificate
 was used.</td>
 </tr>
 </tbody>
@@ -8745,7 +8764,7 @@ was used.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-activation-time-peers"></a><h3>gnutls_certificate_activation_time_peers ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="time-t"><span class="returnvalue">time_t</span></GTKDOCLINK>              gnutls_certificate_activation_time_peers
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_certificate_activation_time_peers
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
 <h3 class="title">Warning</h3>
@@ -8772,7 +8791,7 @@ This is the creation time for openpgp keys.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-expiration-time-peers"></a><h3>gnutls_certificate_expiration_time_peers ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="time-t"><span class="returnvalue">time_t</span></GTKDOCLINK>              gnutls_certificate_expiration_time_peers
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_certificate_expiration_time_peers
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
 <h3 class="title">Warning</h3>
@@ -8798,7 +8817,7 @@ This function will return the peer's certificate expiration time.
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-client-get-request-status"></a><h3>gnutls_certificate_client_get_request_status ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_client_get_request_status
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_client_get_request_status
                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
 <p>
 Get whether client certificate is requested or not.
@@ -8822,8 +8841,8 @@ error.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-verify-peers2"></a><h3>gnutls_certificate_verify_peers2 ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_certificate_verify_peers2    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="int"><span class="type">int</span></GTKDOCLINK> *status</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_verify_peers2    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *status</code></em>);</pre>
 <p>
 This function will try to verify the peer's certificate and return
 its status (trusted, invalid etc.).  The value of <em class="parameter"><code>status</code></em> should
@@ -8862,10 +8881,10 @@ the credentials as trusted CAs.
 <hr>
 <div class="refsect2">
 <a name="gnutls-pem-base64-encode"></a><h3>gnutls_pem_base64_encode ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pem_base64_encode            (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *msg</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pem_base64_encode            (<em class="parameter"><code>const <span class="type">char</span> *msg</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
 <p>
 This function will convert the given data to printable data, using
 the base64 encoding. This is the encoding used in PEM messages.
@@ -8905,10 +8924,10 @@ not long enough, or 0 on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pem-base64-decode"></a><h3>gnutls_pem_base64_decode ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pem_base64_decode            (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *header</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *b64_data</code></em>,
-                                                         <em class="parameter"><code>unsigned <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *result</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *result_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pem_base64_decode            (<em class="parameter"><code>const <span class="type">char</span> *header</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *b64_data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
 <p>
 This function will decode the given encoded data.  If the header
 given is non null this function will search for "-----BEGIN header"
@@ -8946,9 +8965,9 @@ not long enough, or 0 on success.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pem-base64-encode-alloc"></a><h3>gnutls_pem_base64_encode_alloc ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pem_base64_encode_alloc      (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *msg</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *result</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pem_base64_encode_alloc      (<em class="parameter"><code>const <span class="type">char</span> *msg</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *result</code></em>);</pre>
 <p>
 This function will convert the given data to printable data, using
 the base64 encoding.  This is the encoding used in PEM messages.
@@ -8984,9 +9003,9 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-pem-base64-decode-alloc"></a><h3>gnutls_pem_base64_decode_alloc ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_pem_base64_decode_alloc      (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *header</code></em>,
-                                                         <em class="parameter"><code>const <GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *b64_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-datum-t"><span class="type">gnutls_datum_t</span></GTKDOCLINK> *result</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pem_base64_decode_alloc      (<em class="parameter"><code>const <span class="type">char</span> *header</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *b64_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *result</code></em>);</pre>
 <p>
 This function will decode the given encoded data. The decoded data
 will be allocated, and stored into result.  If the header given is
@@ -9095,9 +9114,9 @@ an error code is returned.</td>
 <hr>
 <div class="refsect2">
 <a name="gnutls-certificate-set-params-function"></a><h3>gnutls_certificate_set_params_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_certificate_set_params_function
-                                                        (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-certificate-credentials-t"><span class="type">gnutls_certificate_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_certificate_set_params_function
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
 <p>
 This function will set a callback in order for the server to get
 the Diffie-Hellman or RSA parameters for certificate
@@ -9120,8 +9139,8 @@ authentication.  The callback should return <a class="link" href="gnutls-gnutls.
 <hr>
 <div class="refsect2">
 <a name="gnutls-anon-set-params-function"></a><h3>gnutls_anon_set_params_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_anon_set_params_function     (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-anon-server-credentials-t"><span class="type">gnutls_anon_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_anon_set_params_function     (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
 <p>
 This function will set a callback in order for the server to get
 the Diffie-Hellman or RSA parameters for anonymous authentication.
@@ -9144,8 +9163,8 @@ The callback should return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUC
 <hr>
 <div class="refsect2">
 <a name="gnutls-psk-set-params-function"></a><h3>gnutls_psk_set_params_function ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="void"><span class="returnvalue">void</span></GTKDOCLINK>                gnutls_psk_set_params_function      (<em class="parameter"><code><GTKDOCLINK HREF="gnutls-psk-server-credentials-t"><span class="type">gnutls_psk_server_credentials_t</span></GTKDOCLINK> res</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="gnutls-params-function"><span class="type">gnutls_params_function</span></GTKDOCLINK> *func</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_psk_set_params_function      (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
 <p>
 This function will set a callback in order for the server to get
 the Diffie-Hellman or RSA parameters for PSK authentication.  The
@@ -9168,10 +9187,10 @@ callback should return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS
 <hr>
 <div class="refsect2">
 <a name="gnutls-hex2bin"></a><h3>gnutls_hex2bin ()</h3>
-<pre class="programlisting"><GTKDOCLINK HREF="int"><span class="returnvalue">int</span></GTKDOCLINK>                 gnutls_hex2bin                      (<em class="parameter"><code>const <GTKDOCLINK HREF="char"><span class="type">char</span></GTKDOCLINK> *hex_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> hex_size</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="void"><span class="type">void</span></GTKDOCLINK> *bin_data</code></em>,
-                                                         <em class="parameter"><code><GTKDOCLINK HREF="size-t"><span class="type">size_t</span></GTKDOCLINK> *bin_size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_hex2bin                      (<em class="parameter"><code>const <span class="type">char</span> *hex_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> hex_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *bin_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *bin_size</code></em>);</pre>
 <p>
 Convert a buffer with hex data to binary data.
 </p>
@@ -10242,4 +10261,4 @@ on return will hold actual length of <em class="parameter"><code>bin_data</code>
 <hr>
           Generated by GTK-Doc V1.18</div>
 </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/gnutls-openpgp.html b/doc/reference/html/gnutls-openpgp.html
new file mode 100644 (file)
index 0000000..6332016
--- /dev/null
@@ -0,0 +1,2721 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>openpgp</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="intro.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="gnutls-x509.html" title="x509">
+<link rel="next" href="gnutls-crypto.html" title="crypto">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gnutls-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="intro.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="gnutls-crypto.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gnutls-openpgp.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gnutls-openpgp.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gnutls-openpgp"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-openpgp.top_of_page"></a>openpgp</span></h2>
+<p>openpgp</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gnutls-openpgp.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">enum                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t">gnutls_openpgp_crt_fmt_t</a>;
+typedef             <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t">gnutls_openpgp_keyid_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-init" title="gnutls_openpgp_crt_init ()">gnutls_openpgp_crt_init</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-deinit" title="gnutls_openpgp_crt_deinit ()">gnutls_openpgp_crt_deinit</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-import" title="gnutls_openpgp_crt_import ()">gnutls_openpgp_crt_import</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-export" title="gnutls_openpgp_crt_export ()">gnutls_openpgp_crt_export</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-print" title="gnutls_openpgp_crt_print ()">gnutls_openpgp_crt_print</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-usage" title="gnutls_openpgp_crt_get_key_usage ()">gnutls_openpgp_crt_get_key_usage</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-fingerprint" title="gnutls_openpgp_crt_get_fingerprint ()">gnutls_openpgp_crt_get_fingerprint</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint" title="gnutls_openpgp_crt_get_subkey_fingerprint ()">gnutls_openpgp_crt_get_subkey_fingerprint</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-name" title="gnutls_openpgp_crt_get_name ()">gnutls_openpgp_crt_get_name</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-algorithm" title="gnutls_openpgp_crt_get_pk_algorithm ()">gnutls_openpgp_crt_get_pk_algorithm</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-version" title="gnutls_openpgp_crt_get_version ()">gnutls_openpgp_crt_get_version</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-creation-time" title="gnutls_openpgp_crt_get_creation_time ()">gnutls_openpgp_crt_get_creation_time</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-expiration-time" title="gnutls_openpgp_crt_get_expiration_time ()">gnutls_openpgp_crt_get_expiration_time</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-id" title="gnutls_openpgp_crt_get_key_id ()">gnutls_openpgp_crt_get_key_id</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname" title="gnutls_openpgp_crt_check_hostname ()">gnutls_openpgp_crt_check_hostname</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-revoked-status" title="gnutls_openpgp_crt_get_revoked_status ()">gnutls_openpgp_crt_get_revoked_status</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-count" title="gnutls_openpgp_crt_get_subkey_count ()">gnutls_openpgp_crt_get_subkey_count</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-idx" title="gnutls_openpgp_crt_get_subkey_idx ()">gnutls_openpgp_crt_get_subkey_idx</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status" title="gnutls_openpgp_crt_get_subkey_revoked_status ()">gnutls_openpgp_crt_get_subkey_revoked_status</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm" title="gnutls_openpgp_crt_get_subkey_pk_algorithm ()">gnutls_openpgp_crt_get_subkey_pk_algorithm</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time" title="gnutls_openpgp_crt_get_subkey_creation_time ()">gnutls_openpgp_crt_get_subkey_creation_time</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time" title="gnutls_openpgp_crt_get_subkey_expiration_time ()">gnutls_openpgp_crt_get_subkey_expiration_time</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-id" title="gnutls_openpgp_crt_get_subkey_id ()">gnutls_openpgp_crt_get_subkey_id</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-usage" title="gnutls_openpgp_crt_get_subkey_usage ()">gnutls_openpgp_crt_get_subkey_usage</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_dsa_raw</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_rsa_raw</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw" title="gnutls_openpgp_crt_get_pk_dsa_raw ()">gnutls_openpgp_crt_get_pk_dsa_raw</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw" title="gnutls_openpgp_crt_get_pk_rsa_raw ()">gnutls_openpgp_crt_get_pk_rsa_raw</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-preferred-key-id" title="gnutls_openpgp_crt_get_preferred_key_id ()">gnutls_openpgp_crt_get_preferred_key_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id" title="gnutls_openpgp_crt_set_preferred_key_id ()">gnutls_openpgp_crt_set_preferred_key_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-init" title="gnutls_openpgp_privkey_init ()">gnutls_openpgp_privkey_init</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> *key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-deinit" title="gnutls_openpgp_privkey_deinit ()">gnutls_openpgp_privkey_deinit</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm" title="gnutls_openpgp_privkey_get_pk_algorithm ()">gnutls_openpgp_privkey_get_pk_algorithm</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-import" title="gnutls_openpgp_privkey_import ()">gnutls_openpgp_privkey_import</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-fingerprint" title="gnutls_openpgp_privkey_get_fingerprint ()">gnutls_openpgp_privkey_get_fingerprint</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint" title="gnutls_openpgp_privkey_get_subkey_fingerprint ()">gnutls_openpgp_privkey_get_subkey_fingerprint</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-key-id" title="gnutls_openpgp_privkey_get_key_id ()">gnutls_openpgp_privkey_get_key_id</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-count" title="gnutls_openpgp_privkey_get_subkey_count ()">gnutls_openpgp_privkey_get_subkey_count</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx" title="gnutls_openpgp_privkey_get_subkey_idx ()">gnutls_openpgp_privkey_get_subkey_idx</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status" title="gnutls_openpgp_privkey_get_subkey_revoked_status ()">gnutls_openpgp_privkey_get_subkey_revoked_status</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-revoked-status" title="gnutls_openpgp_privkey_get_revoked_status ()">gnutls_openpgp_privkey_get_revoked_status</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm" title="gnutls_openpgp_privkey_get_subkey_pk_algorithm ()">gnutls_openpgp_privkey_get_subkey_pk_algorithm</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time" title="gnutls_openpgp_privkey_get_subkey_expiration_time ()">gnutls_openpgp_privkey_get_subkey_expiration_time</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-id" title="gnutls_openpgp_privkey_get_subkey_id ()">gnutls_openpgp_privkey_get_subkey_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time" title="gnutls_openpgp_privkey_get_subkey_creation_time ()">gnutls_openpgp_privkey_get_subkey_creation_time</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw" title="gnutls_openpgp_privkey_export_subkey_dsa_raw ()">gnutls_openpgp_privkey_export_subkey_dsa_raw</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw" title="gnutls_openpgp_privkey_export_subkey_rsa_raw ()">gnutls_openpgp_privkey_export_subkey_rsa_raw</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw" title="gnutls_openpgp_privkey_export_dsa_raw ()">gnutls_openpgp_privkey_export_dsa_raw</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw" title="gnutls_openpgp_privkey_export_rsa_raw ()">gnutls_openpgp_privkey_export_rsa_raw</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export" title="gnutls_openpgp_privkey_export ()">gnutls_openpgp_privkey_export</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-set-preferred-key-id" title="gnutls_openpgp_privkey_set_preferred_key_id ()">gnutls_openpgp_privkey_set_preferred_key_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-preferred-key-id" title="gnutls_openpgp_privkey_get_preferred_key_id ()">gnutls_openpgp_privkey_get_preferred_key_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()">gnutls_openpgp_crt_get_auth_subkey</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flag</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-init" title="gnutls_openpgp_keyring_init ()">gnutls_openpgp_keyring_init</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> *keyring</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-deinit" title="gnutls_openpgp_keyring_deinit ()">gnutls_openpgp_keyring_deinit</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-import" title="gnutls_openpgp_keyring_import ()">gnutls_openpgp_keyring_import</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-check-id" title="gnutls_openpgp_keyring_check_id ()">gnutls_openpgp_keyring_check_id</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-verify-ring" title="gnutls_openpgp_crt_verify_ring ()">gnutls_openpgp_crt_verify_ring</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-verify-self" title="gnutls_openpgp_crt_verify_self ()">gnutls_openpgp_crt_verify_self</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt" title="gnutls_openpgp_keyring_get_crt ()">gnutls_openpgp_keyring_get_crt</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *cert</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt-count" title="gnutls_openpgp_keyring_get_crt_count ()">gnutls_openpgp_keyring_get_crt_count</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()">*gnutls_openpgp_recv_key_func</a>)     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const unsigned <span class="type">char</span> *keyfpr</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> keyfpr_length</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function" title="gnutls_openpgp_set_recv_key_function ()">gnutls_openpgp_set_recv_key_function</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()"><span class="type">gnutls_openpgp_recv_key_func</span></a> func</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key" title="gnutls_certificate_set_openpgp_key ()">gnutls_certificate_set_openpgp_key</a>  (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file" title="gnutls_certificate_set_openpgp_key_file ()">gnutls_certificate_set_openpgp_key_file</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem" title="gnutls_certificate_set_openpgp_key_mem ()">gnutls_certificate_set_openpgp_key_mem</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file2" title="gnutls_certificate_set_openpgp_key_file2 ()">gnutls_certificate_set_openpgp_key_file2</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem2" title="gnutls_certificate_set_openpgp_key_mem2 ()">gnutls_certificate_set_openpgp_key_mem2</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-mem" title="gnutls_certificate_set_openpgp_keyring_mem ()">gnutls_certificate_set_openpgp_keyring_mem</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
+                                                         <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> dlen</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-file" title="gnutls_certificate_set_openpgp_keyring_file ()">gnutls_certificate_set_openpgp_keyring_file</a>
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *file</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gnutls-openpgp.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gnutls-openpgp.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-fmt-t"></a><h3>enum gnutls_openpgp_crt_fmt_t</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_OPENPGP_FMT_RAW,
+    GNUTLS_OPENPGP_FMT_BASE64
+} gnutls_openpgp_crt_fmt_t;
+</pre>
+<p>
+Enumeration of different OpenPGP key formats.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-OPENPGP-FMT-RAW:CAPS"></a><span class="term"><code class="literal">GNUTLS_OPENPGP_FMT_RAW</code></span></p></td>
+<td>OpenPGP certificate in raw format.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-OPENPGP-FMT-BASE64:CAPS"></a><span class="term"><code class="literal">GNUTLS_OPENPGP_FMT_BASE64</code></span></p></td>
+<td>OpenPGP certificate in base64 format.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyid-t"></a><h3>gnutls_openpgp_keyid_t</h3>
+<pre class="programlisting">  typedef unsigned char gnutls_openpgp_keyid_t[GNUTLS_OPENPGP_KEYID_SIZE];
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-init"></a><h3>gnutls_openpgp_crt_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_init             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *key</code></em>);</pre>
+<p>
+This function will initialize an OpenPGP key structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-deinit"></a><h3>gnutls_openpgp_crt_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_crt_deinit           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<p>
+This function will deinitialize a key structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-import"></a><h3>gnutls_openpgp_crt_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_import           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This function will convert the given RAW or Base64 encoded key to
+the native <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> format. The output will be stored
+in 'key'.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to store the parsed key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The RAW or BASE64 encoded key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of gnutls_openpgp_crt_fmt_t elements.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-export"></a><h3>gnutls_openpgp_crt_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_export           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will convert the given key to RAW or Base64 format.
+If the buffer provided is not long enough to hold the output, then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Holds the key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of gnutls_openpgp_crt_fmt_t elements.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain the raw or base64 encoded key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will
+be replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-print"></a><h3>gnutls_openpgp_crt_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_print            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);</pre>
+<p>
+This function will pretty print an OpenPGP certificate, suitable
+for display to a human.
+</p>
+<p>
+The format should be (0) for future compatibility.
+</p>
+<p>
+The output <em class="parameter"><code>out</code></em> needs to be deallocate using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>The structure to be printed</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>Indicate the format to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>out</code></em> :</span></p></td>
+<td>Newly allocated datum with (0) terminated string.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-key-usage"></a><h3>gnutls_openpgp_crt_get_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_key_usage    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>);</pre>
+<p>
+This function will return certificate's key usage, by checking the
+key algorithm. The key usage value will ORed values of the:
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE"><code class="literal">GNUTLS_KEY_DIGITAL_SIGNATURE</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_KEY_ENCIPHERMENT</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>should contain a gnutls_openpgp_crt_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
+<td>where the key usage bits will be stored</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-fingerprint"></a><h3>gnutls_openpgp_crt_get_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_fingerprint  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
+<p>
+Get key fingerprint.  Depending on the algorithm, the fingerprint
+can be 16 or 20 bytes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the raw data that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fpr</code></em> :</span></p></td>
+<td>the buffer to save the fingerprint, must hold at least 20 bytes.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fprlen</code></em> :</span></p></td>
+<td>the integer to save the length of the fingerprint.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, 0 is returned.  Otherwise, an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-fingerprint"></a><h3>gnutls_openpgp_crt_get_subkey_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_subkey_fingerprint
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
+<p>
+Get key fingerprint of a subkey.  Depending on the algorithm, the
+fingerprint can be 16 or 20 bytes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the raw data that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fpr</code></em> :</span></p></td>
+<td>the buffer to save the fingerprint, must hold at least 20 bytes.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fprlen</code></em> :</span></p></td>
+<td>the integer to save the length of the fingerprint.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, 0 is returned.  Otherwise, an error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-name"></a><h3>gnutls_openpgp_crt_get_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_name         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+Extracts the userID from the parsed OpenPGP key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index of the ID to extract</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name, may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+to only get the <em class="parameter"><code>sizeof_buf</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>holds the maximum size of <em class="parameter"><code>buf</code></em>, on return hold the
+actual/required size of <em class="parameter"><code>buf</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, and if the index of the ID
+does not exist <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>, or an
+error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-pk-algorithm"></a><h3>gnutls_openpgp_crt_get_pk_algorithm ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_openpgp_crt_get_pk_algorithm
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>
+This function will return the public key algorithm of an OpenPGP
+certificate.
+</p>
+<p>
+If bits is non null, it should have enough size to hold the parameters
+size in bits. For RSA the bits returned is the modulus.
+For DSA the bits returned are of the public exponent.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>is an OpenPGP key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
+<td>if bits is non null it will hold the size of the parameters' in bits</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
+success, or GNUTLS_PK_UNKNOWN on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-version"></a><h3>gnutls_openpgp_crt_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_version      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<p>
+Extract the version of the OpenPGP key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the version number is returned, or a negative error code on errors.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-creation-time"></a><h3>gnutls_openpgp_crt_get_creation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_crt_get_creation_time
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<p>
+Get key creation time.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the timestamp when the OpenPGP key was created.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-expiration-time"></a><h3>gnutls_openpgp_crt_get_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_crt_get_expiration_time
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<p>
+Get key expiration time.  A value of '0' means that the key doesn't
+expire at all.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the time when the OpenPGP key expires.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-key-id"></a><h3>gnutls_openpgp_crt_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_key_id       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+Get key id string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the buffer to save the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the 64-bit keyID of the OpenPGP key.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-check-hostname"></a><h3>gnutls_openpgp_crt_check_hostname ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_check_hostname   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>);</pre>
+<p>
+This function will check if the given key's owner matches the
+given hostname. This is a basic implementation of the matching
+described in RFC2818 (HTTPS), which takes into account wildcards.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hostname</code></em> :</span></p></td>
+<td>A null terminated string that contains a DNS name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-revoked-status"></a><h3>gnutls_openpgp_crt_get_revoked_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_revoked_status
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<p>
+Get revocation status of key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>true (1) if the key has been revoked, or false (0) if it
+has not.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-count"></a><h3>gnutls_openpgp_crt_get_subkey_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_subkey_count (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<p>
+This function will return the number of subkeys present in the
+given OpenPGP certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>is an OpenPGP key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of subkeys, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-idx"></a><h3>gnutls_openpgp_crt_get_subkey_idx ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_subkey_idx   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+Get subkey's index.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the index of the subkey or a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-revoked-status"></a><h3>gnutls_openpgp_crt_get_subkey_revoked_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_subkey_revoked_status
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<p>
+Get subkey revocation status.  A negative error code indicates an error.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>is the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>true (1) if the key has been revoked, or false (0) if it
+has not.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-pk-algorithm"></a><h3>gnutls_openpgp_crt_get_subkey_pk_algorithm ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_openpgp_crt_get_subkey_pk_algorithm
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>
+This function will return the public key algorithm of a subkey of an OpenPGP
+certificate.
+</p>
+<p>
+If bits is non null, it should have enough size to hold the
+parameters size in bits.  For RSA the bits returned is the modulus.
+For DSA the bits returned are of the public exponent.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>is an OpenPGP key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>is the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
+<td>if bits is non null it will hold the size of the parameters' in bits</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
+success, or GNUTLS_PK_UNKNOWN on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-creation-time"></a><h3>gnutls_openpgp_crt_get_subkey_creation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_crt_get_subkey_creation_time
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<p>
+Get subkey creation time.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the timestamp when the OpenPGP sub-key was created.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-expiration-time"></a><h3>gnutls_openpgp_crt_get_subkey_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_crt_get_subkey_expiration_time
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<p>
+Get subkey expiration time.  A value of '0' means that the key
+doesn't expire at all.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the time when the OpenPGP key expires.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-id"></a><h3>gnutls_openpgp_crt_get_subkey_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_subkey_id    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+Get the subkey's key-id.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the buffer to save the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the 64-bit keyID of the OpenPGP key.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-usage"></a><h3>gnutls_openpgp_crt_get_subkey_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_subkey_usage (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>);</pre>
+<p>
+This function will return certificate's key usage, by checking the
+key algorithm.  The key usage value will ORed values of
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE"><code class="literal">GNUTLS_KEY_DIGITAL_SIGNATURE</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_KEY_ENCIPHERMENT</code></a>.
+</p>
+<p>
+A negative error code may be returned in case of parsing error.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>should contain a gnutls_openpgp_crt_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
+<td>where the key usage bits will be stored</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>key usage value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-pk-dsa-raw"></a><h3>gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_subkey_pk_dsa_raw
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
+<p>
+This function will export the DSA public key's parameters found in
+the given certificate.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>Is the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the p</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the q</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
+<td>will hold the g</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>will hold the y</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-pk-rsa-raw"></a><h3>gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_subkey_pk_rsa_raw
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
+<p>
+This function will export the RSA public key's parameters found in
+the given structure.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>Is the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>will hold the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>will hold the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-pk-dsa-raw"></a><h3>gnutls_openpgp_crt_get_pk_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_pk_dsa_raw   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
+<p>
+This function will export the DSA public key's parameters found in
+the given certificate.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the p</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the q</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
+<td>will hold the g</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>will hold the y</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-pk-rsa-raw"></a><h3>gnutls_openpgp_crt_get_pk_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_pk_rsa_raw   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
+<p>
+This function will export the RSA public key's parameters found in
+the given structure.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>will hold the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>will hold the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-preferred-key-id"></a><h3>gnutls_openpgp_crt_get_preferred_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_preferred_key_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+Get preferred key id.  If it hasn't been set it returns
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST"><code class="literal">GNUTLS_E_INVALID_REQUEST</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the struct to save the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the 64-bit preferred keyID of the OpenPGP key.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-set-preferred-key-id"></a><h3>gnutls_openpgp_crt_set_preferred_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_set_preferred_key_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+This allows setting a preferred key id for the given certificate.
+This key will be used by functions that involve key handling.
+</p>
+<p>
+If the provided <em class="parameter"><code>keyid</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then the master key is
+set as preferred.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the selected keyid</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-init"></a><h3>gnutls_openpgp_privkey_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_init         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> *key</code></em>);</pre>
+<p>
+This function will initialize an OpenPGP key structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-deinit"></a><h3>gnutls_openpgp_privkey_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_privkey_deinit       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
+<p>
+This function will deinitialize a key structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-pk-algorithm"></a><h3>gnutls_openpgp_privkey_get_pk_algorithm ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_openpgp_privkey_get_pk_algorithm
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>
+This function will return the public key algorithm of an OpenPGP
+certificate.
+</p>
+<p>
+If bits is non null, it should have enough size to hold the parameters
+size in bits. For RSA the bits returned is the modulus.
+For DSA the bits returned are of the public exponent.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>is an OpenPGP key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
+<td>if bits is non null it will hold the size of the parameters' in bits</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
+success, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-import"></a><h3>gnutls_openpgp_privkey_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_import       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will convert the given RAW or Base64 encoded key to
+the native gnutls_openpgp_privkey_t format.  The output will be
+stored in 'key'.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to store the parsed key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The RAW or BASE64 encoded key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> elements.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
+<td>not used for now</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>should be (0)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-fingerprint"></a><h3>gnutls_openpgp_privkey_get_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_fingerprint
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
+<p>
+Get the fingerprint of the OpenPGP key. Depends on the
+algorithm, the fingerprint can be 16 or 20 bytes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the raw data that contains the OpenPGP secret key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fpr</code></em> :</span></p></td>
+<td>the buffer to save the fingerprint, must hold at least 20 bytes.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fprlen</code></em> :</span></p></td>
+<td>the integer to save the length of the fingerprint.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, 0 is returned, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-fingerprint"></a><h3>gnutls_openpgp_privkey_get_subkey_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_subkey_fingerprint
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
+<p>
+Get the fingerprint of an OpenPGP subkey.  Depends on the
+algorithm, the fingerprint can be 16 or 20 bytes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the raw data that contains the OpenPGP secret key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fpr</code></em> :</span></p></td>
+<td>the buffer to save the fingerprint, must hold at least 20 bytes.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fprlen</code></em> :</span></p></td>
+<td>the integer to save the length of the fingerprint.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, 0 is returned, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-key-id"></a><h3>gnutls_openpgp_privkey_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_key_id   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+Get key-id.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP secret key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the buffer to save the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the 64-bit keyID of the OpenPGP key.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-count"></a><h3>gnutls_openpgp_privkey_get_subkey_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_subkey_count
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
+<p>
+This function will return the number of subkeys present in the
+given OpenPGP certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>is an OpenPGP key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of subkeys, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-idx"></a><h3>gnutls_openpgp_privkey_get_subkey_idx ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_subkey_idx
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+Get index of subkey.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP private key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the index of the subkey or a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-revoked-status"></a><h3>gnutls_openpgp_privkey_get_subkey_revoked_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_subkey_revoked_status
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<p>
+Get revocation status of key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP private key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>is the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>true (1) if the key has been revoked, or false (0) if it
+has not, or a negative error code indicates an error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-revoked-status"></a><h3>gnutls_openpgp_privkey_get_revoked_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_revoked_status
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
+<p>
+Get revocation status of key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP private key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>true (1) if the key has been revoked, or false (0) if it
+has not, or a negative error code indicates an error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-pk-algorithm"></a><h3>gnutls_openpgp_privkey_get_subkey_pk_algorithm ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_openpgp_privkey_get_subkey_pk_algorithm
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>
+This function will return the public key algorithm of a subkey of an OpenPGP
+certificate.
+</p>
+<p>
+If bits is non null, it should have enough size to hold the parameters
+size in bits. For RSA the bits returned is the modulus.
+For DSA the bits returned are of the public exponent.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>is an OpenPGP key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>is the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
+<td>if bits is non null it will hold the size of the parameters' in bits</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
+success, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-expiration-time"></a><h3>gnutls_openpgp_privkey_get_subkey_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_privkey_get_subkey_expiration_time
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<p>
+Get subkey expiration time.  A value of '0' means that the key
+doesn't expire at all.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP private key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the time when the OpenPGP key expires.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-id"></a><h3>gnutls_openpgp_privkey_get_subkey_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_subkey_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+Get the key-id for the subkey.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP secret key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the buffer to save the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the 64-bit keyID of the OpenPGP key.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-creation-time"></a><h3>gnutls_openpgp_privkey_get_subkey_creation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_privkey_get_subkey_creation_time
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<p>
+Get subkey creation time.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP private key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the timestamp when the OpenPGP key was created.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export-subkey-dsa-raw"></a><h3>gnutls_openpgp_privkey_export_subkey_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_export_subkey_dsa_raw
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);</pre>
+<p>
+This function will export the DSA private key's parameters found
+in the given certificate.  The new parameters will be allocated
+using <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>Is the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the p</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the q</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
+<td>will hold the g</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>will hold the y</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>will hold the x</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export-subkey-rsa-raw"></a><h3>gnutls_openpgp_privkey_export_subkey_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_export_subkey_rsa_raw
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);</pre>
+<p>
+This function will export the RSA private key's parameters found in
+the given structure.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>Is the subkey index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>will hold the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>will hold the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
+<td>will hold the private exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the first prime (p)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the second prime (q)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>u</code></em> :</span></p></td>
+<td>will hold the coefficient</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export-dsa-raw"></a><h3>gnutls_openpgp_privkey_export_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_export_dsa_raw
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);</pre>
+<p>
+This function will export the DSA private key's parameters found in
+the given certificate.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the p</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the q</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
+<td>will hold the g</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>will hold the y</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>will hold the x</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export-rsa-raw"></a><h3>gnutls_openpgp_privkey_export_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_export_rsa_raw
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);</pre>
+<p>
+This function will export the RSA private key's parameters found in
+the given structure.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>will hold the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>will hold the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
+<td>will hold the private exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the first prime (p)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the second prime (q)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>u</code></em> :</span></p></td>
+<td>will hold the coefficient</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export"></a><h3>gnutls_openpgp_privkey_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_export       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will convert the given key to RAW or Base64 format.
+If the buffer provided is not long enough to hold the output, then
+GNUTLS_E_SHORT_MEMORY_BUFFER will be returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Holds the key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of gnutls_openpgp_crt_fmt_t elements.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
+<td>the password that will be used to encrypt the key. (unused for now)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>(0) for future compatibility</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain the key base64 encoded or raw</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-set-preferred-key-id"></a><h3>gnutls_openpgp_privkey_set_preferred_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_set_preferred_key_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+This allows setting a preferred key id for the given certificate.
+This key will be used by functions that involve key handling.
+</p>
+<p>
+If the provided <em class="parameter"><code>keyid</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then the master key is
+set as preferred.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the selected keyid</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-preferred-key-id"></a><h3>gnutls_openpgp_privkey_get_preferred_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_privkey_get_preferred_key_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
+<p>
+Get the preferred key-id for the key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the struct to save the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the 64-bit preferred keyID of the OpenPGP key, or if it
+hasn't been set it returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST"><code class="literal">GNUTLS_E_INVALID_REQUEST</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-auth-subkey"></a><h3>gnutls_openpgp_crt_get_auth_subkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_get_auth_subkey  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flag</code></em>);</pre>
+<p>
+Returns the 64-bit keyID of the first valid OpenPGP subkey marked
+for authentication.  If flag is non-zero and no authentication
+subkey exists, then a valid subkey will be returned even if it is
+not marked for authentication.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>the structure that contains the OpenPGP public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>the struct to save the keyid.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>Non-zero indicates that a valid subkey is always returned.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-init"></a><h3>gnutls_openpgp_keyring_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_keyring_init         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> *keyring</code></em>);</pre>
+<p>
+This function will initialize an keyring structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyring</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-deinit"></a><h3>gnutls_openpgp_keyring_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_keyring_deinit       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>);</pre>
+<p>
+This function will deinitialize a keyring structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>keyring</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-import"></a><h3>gnutls_openpgp_keyring_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_keyring_import       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This function will convert the given RAW or Base64 encoded keyring
+to the native <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> format.  The output will be
+stored in 'keyring'.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyring</code></em> :</span></p></td>
+<td>The structure to store the parsed key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The RAW or BASE64 encoded keyring.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of <span class="type">gnutls_openpgp_keyring_fmt</span> elements.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-check-id"></a><h3>gnutls_openpgp_keyring_check_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_keyring_check_id     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+Check if a given key ID exists in the keyring.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ring</code></em> :</span></p></td>
+<td>holds the keyring to check against</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
+<td>will hold the keyid to check for.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>unused (should be 0)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success (if keyid exists) and a
+negative error code on failure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-verify-ring"></a><h3>gnutls_openpgp_crt_verify_ring ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_verify_ring      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<p>
+Verify all signatures in the key, using the given set of keys
+(keyring).
+</p>
+<p>
+The key verification output will be put in <em class="parameter"><code>verify</code></em> and will be one
+or more of the <a class="link" href="gnutls-gnutls.html#gnutls-certificate-status-t" title="enum gnutls_certificate_status_t"><span class="type">gnutls_certificate_status_t</span></a> enumerated elements
+bitwise or'd.
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-INVALID:CAPS"><code class="literal">GNUTLS_CERT_INVALID</code></a>: A signature on the key is invalid.
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-REVOKED:CAPS"><code class="literal">GNUTLS_CERT_REVOKED</code></a>: The key has been revoked.
+</p>
+<p>
+Note that this function does not verify using any "web of trust".
+You may use GnuPG for that purpose, or any other external PGP
+application.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that holds the key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyring</code></em> :</span></p></td>
+<td>holds the keyring to check against</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>unused (should be 0)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>verify</code></em> :</span></p></td>
+<td>will hold the certificate verification output.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-verify-self"></a><h3>gnutls_openpgp_crt_verify_self ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_crt_verify_self      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<p>
+Verifies the self signature in the key.  The key verification
+output will be put in <em class="parameter"><code>verify</code></em> and will be one or more of the
+gnutls_certificate_status_t enumerated elements bitwise or'd.
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-INVALID:CAPS"><code class="literal">GNUTLS_CERT_INVALID</code></a>: The self signature on the key is invalid.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the structure that holds the key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>unused (should be 0)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>verify</code></em> :</span></p></td>
+<td>will hold the key verification output.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-get-crt"></a><h3>gnutls_openpgp_keyring_get_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_keyring_get_crt      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *cert</code></em>);</pre>
+<p>
+This function will extract an OpenPGP certificate from the given
+keyring.  If the index given is out of range
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned. The
+returned structure needs to be deinited.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ring</code></em> :</span></p></td>
+<td>Holds the keyring.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index of the certificate to export</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>An uninitialized <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-get-crt-count"></a><h3>gnutls_openpgp_keyring_get_crt_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_openpgp_keyring_get_crt_count
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>);</pre>
+<p>
+This function will return the number of OpenPGP certificates
+present in the given keyring.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ring</code></em> :</span></p></td>
+<td>is an OpenPGP key ring</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of subkeys, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-recv-key-func"></a><h3>gnutls_openpgp_recv_key_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*gnutls_openpgp_recv_key_func)     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code>const unsigned <span class="type">char</span> *keyfpr</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> keyfpr_length</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *key</code></em>);</pre>
+<p>
+A callback of this type is used to retrieve OpenPGP keys.  Only
+useful on the server, and will only be used if the peer send a key
+fingerprint instead of a full key.  See also
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function" title="gnutls_openpgp_set_recv_key_function ()"><code class="function">gnutls_openpgp_set_recv_key_function()</code></a>.
+</p>
+<p>
+The variable <em class="parameter"><code>key</code></em> must be allocated using <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
+<td>a TLS session</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyfpr</code></em> :</span></p></td>
+<td>key fingerprint</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyfpr_length</code></em> :</span></p></td>
+<td>length of key fingerprint</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>output key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (zero) is returned,
+otherwise an error code is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-set-recv-key-function"></a><h3>gnutls_openpgp_set_recv_key_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_set_recv_key_function
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()"><span class="type">gnutls_openpgp_recv_key_func</span></a> func</code></em>);</pre>
+<p>
+This funtion will set a key retrieval function for OpenPGP keys. This
+callback is only useful in server side, and will be used if the peer
+sent a key fingerprint instead of a full key.
+</p>
+<p>
+The retrieved key must be allocated using <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
+<td>a TLS session</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>the callback</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key"></a><h3>gnutls_certificate_set_openpgp_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_openpgp_key  (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>);</pre>
+<p>
+This function sets a certificate/private key pair in the
+gnutls_certificate_credentials_t structure.  This function may be
+called more than once (in case multiple keys/certificates exist
+for the server).
+</p>
+<p>
+Note that this function requires that the preferred key ids have
+been set and be used. See <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id" title="gnutls_openpgp_crt_set_preferred_key_id ()"><code class="function">gnutls_openpgp_crt_set_preferred_key_id()</code></a>.
+Otherwise the master key will be used.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>contains an openpgp public key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
+<td>is an openpgp private key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key-file"></a><h3>gnutls_certificate_set_openpgp_key_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_openpgp_key_file
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This funtion is used to load OpenPGP keys into the GnuTLS
+credentials structure. The file should contain at least one valid non encrypted subkey.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>the destination context to save the data.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>certfile</code></em> :</span></p></td>
+<td>the file that contains the public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyfile</code></em> :</span></p></td>
+<td>the file that contains the secret key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of the keys</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key-mem"></a><h3>gnutls_certificate_set_openpgp_key_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_openpgp_key_mem
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This funtion is used to load OpenPGP keys into the GnuTLS credential 
+structure. The datum should contain at least one valid non encrypted subkey.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>the destination context to save the data.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>the datum that contains the public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the datum that contains the secret key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of the keys</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key-file2"></a><h3>gnutls_certificate_set_openpgp_key_file2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_openpgp_key_file2
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This funtion is used to load OpenPGP keys into the GnuTLS credential 
+structure. The file should contain at least one valid non encrypted subkey.
+</p>
+<p>
+The special keyword "auto" is also accepted as <em class="parameter"><code>subkey_id</code></em>.  In that
+case the <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()"><code class="function">gnutls_openpgp_crt_get_auth_subkey()</code></a> will be used to
+retrieve the subkey.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>the destination context to save the data.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>certfile</code></em> :</span></p></td>
+<td>the file that contains the public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyfile</code></em> :</span></p></td>
+<td>the file that contains the secret key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>subkey_id</code></em> :</span></p></td>
+<td>a hex encoded subkey id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of the keys</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key-mem2"></a><h3>gnutls_certificate_set_openpgp_key_mem2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_openpgp_key_mem2
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This funtion is used to load OpenPGP keys into the GnuTLS
+credentials structure. The datum should contain at least one valid non encrypted subkey.
+</p>
+<p>
+The special keyword "auto" is also accepted as <em class="parameter"><code>subkey_id</code></em>.  In that
+case the <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()"><code class="function">gnutls_openpgp_crt_get_auth_subkey()</code></a> will be used to
+retrieve the subkey.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>the destination context to save the data.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>the datum that contains the public key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the datum that contains the secret key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>subkey_id</code></em> :</span></p></td>
+<td>a hex encoded subkey id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of the keys</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-keyring-mem"></a><h3>gnutls_certificate_set_openpgp_keyring_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_openpgp_keyring_mem
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
+                                                         <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> dlen</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+The function is used to set keyrings that will be used internally
+by various OpenPGP functions. For example to find a key when it
+is needed for an operations. The keyring will also be used at the
+verification functions.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
+<td>A certificate credentials structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>buffer with keyring data.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dlen</code></em> :</span></p></td>
+<td>length of data buffer.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of the keyring</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-keyring-file"></a><h3>gnutls_certificate_set_openpgp_keyring_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_certificate_set_openpgp_keyring_file
+                                                        (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *file</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+The function is used to set keyrings that will be used internally
+by various OpenPGP functions. For example to find a key when it
+is needed for an operations. The keyring will also be used at the
+verification functions.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
+<td>A certificate credentials structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>file</code></em> :</span></p></td>
+<td>filename of the keyring.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>format of keyring.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/gnutls-pkcs11.html b/doc/reference/html/gnutls-pkcs11.html
new file mode 100644 (file)
index 0000000..f5d6758
--- /dev/null
@@ -0,0 +1,1467 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>pkcs11</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="intro.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="gnutls-crypto.html" title="crypto">
+<link rel="next" href="gnutls-pkcs12.html" title="pkcs12">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gnutls-crypto.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="intro.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="gnutls-pkcs12.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gnutls-pkcs11.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gnutls-pkcs11.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gnutls-pkcs11"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-pkcs11.top_of_page"></a>pkcs11</span></h2>
+<p>pkcs11</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gnutls-pkcs11.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-MAX-PIN-LEN:CAPS" title="GNUTLS_PKCS11_MAX_PIN_LEN">GNUTLS_PKCS11_MAX_PIN_LEN</a>
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()">*gnutls_pkcs11_token_callback_t</a>)   (<em class="parameter"><code><span class="type">void</span> *const userdata</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *const label</code></em>,
+                                                         <em class="parameter"><code><span class="type">unsigned </span> retry</code></em>);
+<span class="returnvalue">int</span>                 (<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()">*gnutls_pkcs11_pin_callback_t</a>)     (<em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> attempt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *token_label</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *pin</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> pin_max</code></em>);
+struct              <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-st" title="struct gnutls_pkcs11_obj_st">gnutls_pkcs11_obj_st</a>;
+typedef             <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t">gnutls_pkcs11_obj_t</a>;
+#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL">GNUTLS_PKCS11_FLAG_MANUAL</a>
+#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO">GNUTLS_PKCS11_FLAG_AUTO</a>
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-init" title="gnutls_pkcs11_init ()">gnutls_pkcs11_init</a>                  (<em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *deprecated_config_file</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-deinit" title="gnutls_pkcs11_deinit ()">gnutls_pkcs11_deinit</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" title="gnutls_pkcs11_set_token_function ()">gnutls_pkcs11_set_token_function</a>    (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()"><span class="type">gnutls_pkcs11_token_callback_t</span></a> fn</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()">gnutls_pkcs11_set_pin_function</a>      (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()"><span class="type">gnutls_pkcs11_pin_callback_t</span></a> fn</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" title="gnutls_pkcs11_add_provider ()">gnutls_pkcs11_add_provider</a>          (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *params</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-init" title="gnutls_pkcs11_obj_init ()">gnutls_pkcs11_obj_init</a>              (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> *obj</code></em>);
+#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_LOGIN">GNUTLS_PKCS11_OBJ_FLAG_LOGIN</a>
+#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED">GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</a>
+#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE">GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE</a>
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url" title="gnutls_pkcs11_obj_import_url ()">gnutls_pkcs11_obj_import_url</a>        (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url" title="gnutls_pkcs11_obj_export_url ()">gnutls_pkcs11_obj_export_url</a>        (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_pkcs11_url_type_t</span> detailed</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" title="gnutls_pkcs11_obj_deinit ()">gnutls_pkcs11_obj_deinit</a>            (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export" title="gnutls_pkcs11_obj_export ()">gnutls_pkcs11_obj_export</a>            (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt" title="gnutls_pkcs11_copy_x509_crt ()">gnutls_pkcs11_copy_x509_crt</a>         (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey" title="gnutls_pkcs11_copy_x509_privkey ()">gnutls_pkcs11_copy_x509_privkey</a>     (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-delete-url" title="gnutls_pkcs11_delete_url ()">gnutls_pkcs11_delete_url</a>            (<em class="parameter"><code>const <span class="type">char</span> *object_url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t">gnutls_pkcs11_obj_info_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info" title="gnutls_pkcs11_obj_get_info ()">gnutls_pkcs11_obj_get_info</a>          (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t"><span class="type">gnutls_pkcs11_obj_info_t</span></a> itype</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);
+enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t">gnutls_pkcs11_obj_attr_t</a>;
+enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t" title="enum gnutls_pkcs11_token_info_t">gnutls_pkcs11_token_info_t</a>;
+enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t">gnutls_pkcs11_obj_type_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-url" title="gnutls_pkcs11_token_get_url ()">gnutls_pkcs11_token_get_url</a>         (<em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_pkcs11_url_type_t</span> detailed</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-info" title="gnutls_pkcs11_token_get_info ()">gnutls_pkcs11_token_get_info</a>        (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t" title="enum gnutls_pkcs11_token_info_t"><span class="type">gnutls_pkcs11_token_info_t</span></a> ttype</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);
+#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS" title="GNUTLS_PKCS11_TOKEN_HW">GNUTLS_PKCS11_TOKEN_HW</a>
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags" title="gnutls_pkcs11_token_get_flags ()">gnutls_pkcs11_token_get_flags</a>       (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url" title="gnutls_pkcs11_obj_list_import_url ()">gnutls_pkcs11_obj_list_import_url</a>   (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> *p_list</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *const n_list</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t"><span class="type">gnutls_pkcs11_obj_attr_t</span></a> attrs</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11" title="gnutls_x509_crt_import_pkcs11 ()">gnutls_x509_crt_import_pkcs11</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> pkcs11_crt</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11-url" title="gnutls_x509_crt_import_pkcs11_url ()">gnutls_x509_crt_import_pkcs11_url</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="returnvalue">gnutls_pkcs11_obj_type_t</span></a> <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-type" title="gnutls_pkcs11_obj_get_type ()">gnutls_pkcs11_obj_get_type</a>     (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>);
+const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-type-get-name" title="gnutls_pkcs11_type_get_name ()">gnutls_pkcs11_type_get_name</a>         (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="type">gnutls_pkcs11_obj_type_t</span></a> type</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-list-import-pkcs11" title="gnutls_x509_crt_list_import_pkcs11 ()">gnutls_x509_crt_list_import_pkcs11</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *certs</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> cert_max</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> * const objs</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-init" title="gnutls_pkcs11_privkey_init ()">gnutls_pkcs11_privkey_init</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> *key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit" title="gnutls_pkcs11_privkey_deinit ()">gnutls_pkcs11_privkey_deinit</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-pk-algorithm" title="gnutls_pkcs11_privkey_get_pk_algorithm ()">gnutls_pkcs11_privkey_get_pk_algorithm</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-info" title="gnutls_pkcs11_privkey_get_info ()">gnutls_pkcs11_privkey_get_info</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t"><span class="type">gnutls_pkcs11_obj_info_t</span></a> itype</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-import-url" title="gnutls_pkcs11_privkey_import_url ()">gnutls_pkcs11_privkey_import_url</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-url" title="gnutls_pkcs11_privkey_export_url ()">gnutls_pkcs11_privkey_export_url</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_pkcs11_url_type_t</span> detailed</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs11.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs11.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-MAX-PIN-LEN:CAPS"></a><h3>GNUTLS_PKCS11_MAX_PIN_LEN</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_MAX_PIN_LEN 32
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-callback-t"></a><h3>gnutls_pkcs11_token_callback_t ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*gnutls_pkcs11_token_callback_t)   (<em class="parameter"><code><span class="type">void</span> *const userdata</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *const label</code></em>,
+                                                         <em class="parameter"><code><span class="type">unsigned </span> retry</code></em>);</pre>
+<p>
+Token callback function. The callback will be used to ask the user
+to re-insert the token with given (null terminated) label.  The
+callback should return zero if token has been inserted by user and
+a negative error code otherwise.  It might be called multiple times
+if the token is not detected and the retry counter will be
+increased.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
+<td>user-controlled data from <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" title="gnutls_pkcs11_set_token_function ()"><code class="function">gnutls_pkcs11_set_token_function()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
+<td>token label.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>retry</code></em> :</span></p></td>
+<td>retry counter, initially 0.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success or a negative error code
+on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-pin-callback-t"></a><h3>gnutls_pkcs11_pin_callback_t ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 (*gnutls_pkcs11_pin_callback_t)     (<em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> attempt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *token_label</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *pin</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> pin_max</code></em>);</pre>
+<p>
+Callback function type for PKCS<span class="type">11</span> PIN entry.  It is set by
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()"><code class="function">gnutls_pkcs11_set_pin_function()</code></a>.
+</p>
+<p>
+The callback should provides the PIN code to unlock the token with
+label <em class="parameter"><code>token_label</code></em>, specified by the URL <em class="parameter"><code>token_url</code></em>.
+</p>
+<p>
+The PIN code, as a NUL-terminated ASCII string, should be copied
+into the <em class="parameter"><code>pin</code></em> buffer (of maximum size <em class="parameter"><code>pin_max</code></em>), and return 0 to
+indicate success.  Alternatively, the callback may return a
+negative gnutls error code to indicate failure and cancel PIN entry
+(in which case, the contents of the <em class="parameter"><code>pin</code></em> parameter are ignored).
+</p>
+<p>
+When a PIN is required, the callback will be invoked repeatedly
+(and indefinitely) until either the returned PIN code is correct,
+the callback returns failure, or the token refuses login (e.g. when
+the token is locked due to too many incorrect PINs!).  For the
+first such invocation, the <em class="parameter"><code>attempt</code></em> counter will have value zero;
+it will increase by one for each subsequent attempt.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
+<td>user-controlled data from <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()"><code class="function">gnutls_pkcs11_set_pin_function()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attempt</code></em> :</span></p></td>
+<td>pin-attempt counter, initially 0.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
+<td>PKCS11 URL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>token_label</code></em> :</span></p></td>
+<td>label of PKCS11 token.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>a <span class="type">gnutls_pkcs11_pin_flag_t</span> flag.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pin</code></em> :</span></p></td>
+<td>buffer to hold PIN, of size <em class="parameter"><code>pin_max</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pin_max</code></em> :</span></p></td>
+<td>size of <em class="parameter"><code>pin</code></em> buffer.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-st"></a><h3>struct gnutls_pkcs11_obj_st</h3>
+<pre class="programlisting">struct gnutls_pkcs11_obj_st;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-t"></a><h3>gnutls_pkcs11_obj_t</h3>
+<pre class="programlisting">typedef struct gnutls_pkcs11_obj_st *gnutls_pkcs11_obj_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-FLAG-MANUAL:CAPS"></a><h3>GNUTLS_PKCS11_FLAG_MANUAL</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_FLAG_MANUAL 0     /* Manual loading of libraries */
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-FLAG-AUTO:CAPS"></a><h3>GNUTLS_PKCS11_FLAG_AUTO</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_FLAG_AUTO 1       /* Automatically load libraries by reading /etc/gnutls/pkcs11.conf */
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-init"></a><h3>gnutls_pkcs11_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_init                  (<em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *deprecated_config_file</code></em>);</pre>
+<p>
+This function will initialize the PKCS 11 subsystem in gnutls. It will
+read configuration files if <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO"><code class="literal">GNUTLS_PKCS11_FLAG_AUTO</code></a> is used or allow
+you to independently load PKCS 11 modules using <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" title="gnutls_pkcs11_add_provider ()"><code class="function">gnutls_pkcs11_add_provider()</code></a>
+if <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL"><code class="literal">GNUTLS_PKCS11_FLAG_MANUAL</code></a> is specified.
+</p>
+<p>
+Normally you don't need to call this function since it is being called
+by <a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()"><code class="function">gnutls_global_init()</code></a> using the <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO"><code class="literal">GNUTLS_PKCS11_FLAG_AUTO</code></a>. If other option
+is required then it must be called before it.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL"><code class="literal">GNUTLS_PKCS11_FLAG_MANUAL</code></a> or <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO"><code class="literal">GNUTLS_PKCS11_FLAG_AUTO</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>deprecated_config_file</code></em> :</span></p></td>
+<td>either NULL or the location of a deprecated
+configuration file</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-deinit"></a><h3>gnutls_pkcs11_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_deinit                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+This function will deinitialize the PKCS 11 subsystem in gnutls.
+</p>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-set-token-function"></a><h3>gnutls_pkcs11_set_token_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_set_token_function    (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()"><span class="type">gnutls_pkcs11_token_callback_t</span></a> fn</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+<p>
+This function will set a callback function to be used when a token
+needs to be inserted to continue PKCS 11 operations.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
+<td>The token callback</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
+<td>data to be supplied to callback</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-set-pin-function"></a><h3>gnutls_pkcs11_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_set_pin_function      (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()"><span class="type">gnutls_pkcs11_pin_callback_t</span></a> fn</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+<p>
+This function will set a callback function to be used when a PIN is
+required for PKCS 11 operations.  See
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()"><code class="function">gnutls_pkcs11_pin_callback_t()</code></a> on how the callback should behave.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
+<td>The PIN callback, a <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()"><code class="function">gnutls_pkcs11_pin_callback_t()</code></a> function.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
+<td>data to be supplied to callback</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-add-provider"></a><h3>gnutls_pkcs11_add_provider ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_add_provider          (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *params</code></em>);</pre>
+<p>
+This function will load and add a PKCS 11 module to the module
+list used in gnutls. After this function is called the module will
+be used for PKCS 11 operations.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>The filename of the module</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>should be NULL</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-init"></a><h3>gnutls_pkcs11_obj_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_obj_init              (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> *obj</code></em>);</pre>
+<p>
+This function will initialize a pkcs11 certificate structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_FLAG_LOGIN</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_FLAG_LOGIN (1&lt;&lt;0)     /* force login in the token for the operation */
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED (1&lt;&lt;1)      /* object marked as trusted */
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE (1&lt;&lt;2)    /* object marked as sensitive (unexportable) */
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-import-url"></a><h3>gnutls_pkcs11_obj_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_obj_import_url        (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will "import" a PKCS 11 URL identifying a certificate
+key to the <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> structure. This does not involve any
+parsing (such as X.509 or OpenPGP) since the <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> is
+format agnostic. Only data are transferred.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>The structure to store the parsed certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>a PKCS 11 url identifying the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-export-url"></a><h3>gnutls_pkcs11_obj_export_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_obj_export_url        (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_pkcs11_url_type_t</span> detailed</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
+<p>
+This function will export a URL identifying the given certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>Holds the PKCS 11 certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>detailed</code></em> :</span></p></td>
+<td>non zero if a detailed URL is required</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>will contain an allocated url</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-deinit"></a><h3>gnutls_pkcs11_obj_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_obj_deinit            (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>);</pre>
+<p>
+This function will deinitialize a certificate structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-export"></a><h3>gnutls_pkcs11_obj_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_obj_export            (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the PKCS11 object data.  It is normal for
+data to be inaccesible and in that case <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST"><code class="literal">GNUTLS_E_INVALID_REQUEST</code></a>
+will be returned.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*output_data_size is updated and GNUTLS_E_SHORT_MEMORY_BUFFER will
+be returned.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header
+of "BEGIN CERTIFICATE".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>Holds the object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a certificate PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>In case of failure a negative error code will be
+returned, and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-x509-crt"></a><h3>gnutls_pkcs11_copy_x509_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_copy_x509_crt         (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will copy a certificate into a PKCS <span class="type">11</span> token specified by
+a URL. The certificate can be marked as trusted or not.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
+<td>A PKCS <span class="type">11</span> URL specifying a token</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>A certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
+<td>A name to be used for the stored data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>One of GNUTLS_PKCS11_OBJ_FLAG_*</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-x509-privkey"></a><h3>gnutls_pkcs11_copy_x509_privkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_copy_x509_privkey     (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will copy a private key into a PKCS <span class="type">11</span> token specified by
+a URL. It is highly recommended flags to contain <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE</code></a>
+unless there is a strong reason not to.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
+<td>A PKCS <span class="type">11</span> URL specifying a token</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>A private key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
+<td>A name to be used for the stored data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
+<td>One of GNUTLS_KEY_*</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-delete-url"></a><h3>gnutls_pkcs11_delete_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_delete_url            (<em class="parameter"><code>const <span class="type">char</span> *object_url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will delete objects matching the given URL.
+Note that not all tokens support the delete operation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_url</code></em> :</span></p></td>
+<td>The URL of the object to delete.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, the number of objects deleted is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-info-t"></a><h3>enum gnutls_pkcs11_obj_info_t</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_PKCS11_OBJ_ID_HEX = 1,
+    GNUTLS_PKCS11_OBJ_LABEL,
+    GNUTLS_PKCS11_OBJ_TOKEN_LABEL,
+    GNUTLS_PKCS11_OBJ_TOKEN_SERIAL,
+    GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER,
+    GNUTLS_PKCS11_OBJ_TOKEN_MODEL,
+    GNUTLS_PKCS11_OBJ_ID,
+    /* the pkcs11 provider library info  */
+    GNUTLS_PKCS11_OBJ_LIBRARY_VERSION,
+    GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION,
+    GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER
+} gnutls_pkcs11_obj_info_t;
+</pre>
+<p>
+Enumeration of several object information types.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ID-HEX:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ID_HEX</code></span></p></td>
+<td>The object ID in hex.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-LABEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_LABEL</code></span></p></td>
+<td>The object label.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-LABEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_TOKEN_LABEL</code></span></p></td>
+<td>The token's label.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-SERIAL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_TOKEN_SERIAL</code></span></p></td>
+<td>The token's serial number.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-MANUFACTURER:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER</code></span></p></td>
+<td>The token's manufacturer.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-MODEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_TOKEN_MODEL</code></span></p></td>
+<td>The token's model.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ID:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ID</code></span></p></td>
+<td>The object ID.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-VERSION:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_LIBRARY_VERSION</code></span></p></td>
+<td>The library's used to access the object version.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-DESCRIPTION:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION</code></span></p></td>
+<td>The library's used to access the object description (name).
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-MANUFACTURER:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER</code></span></p></td>
+<td>The library's used to access the object manufacturer name.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-get-info"></a><h3>gnutls_pkcs11_obj_get_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_obj_get_info          (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t"><span class="type">gnutls_pkcs11_obj_info_t</span></a> itype</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
+<p>
+This function will return information about the PKCS11 certificate
+such as the label, id as well as token information where the key is
+stored. When output is text it returns null terminated string
+although <em class="parameter"><code>output_size</code></em> contains the size of the actual data only.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td>
+<td>Denotes the type of information requested</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>where output will be stored</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_size</code></em> :</span></p></td>
+<td>contains the maximum size of the output and will be overwritten with actual</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-attr-t"></a><h3>enum gnutls_pkcs11_obj_attr_t</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL = 1,   /* all certificates */
+    GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED,   /* certificates marked as trusted */
+    GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY,      /* certificates with corresponding private key */
+    GNUTLS_PKCS11_OBJ_ATTR_PUBKEY,        /* public keys */
+    GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY,       /* private keys */
+    GNUTLS_PKCS11_OBJ_ATTR_ALL,    /* everything! */
+    GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA,
+} gnutls_pkcs11_obj_attr_t;
+</pre>
+<p>
+Enumeration of several attributes for object enumeration.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-ALL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL</code></span></p></td>
+<td>Specify all certificates.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED</code></span></p></td>
+<td>Specify all certificates marked as trusted.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-WITH-PRIVKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY</code></span></p></td>
+<td>Specify all certificates with a corresponding private key.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-PUBKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_PUBKEY</code></span></p></td>
+<td>Specify all public keys.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-PRIVKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY</code></span></p></td>
+<td>Specify all private keys.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-ALL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_ALL</code></span></p></td>
+<td>Specify all objects.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED-CA:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA</code></span></p></td>
+<td>Specify all certificates marked as trusted and are CAs.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-info-t"></a><h3>enum gnutls_pkcs11_token_info_t</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_PKCS11_TOKEN_LABEL,
+    GNUTLS_PKCS11_TOKEN_SERIAL,
+    GNUTLS_PKCS11_TOKEN_MANUFACTURER,
+    GNUTLS_PKCS11_TOKEN_MODEL
+} gnutls_pkcs11_token_info_t;
+</pre>
+<p>
+Enumeration of types for retrieving token information.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-TOKEN-LABEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_TOKEN_LABEL</code></span></p></td>
+<td>The token's label
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-TOKEN-SERIAL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_TOKEN_SERIAL</code></span></p></td>
+<td>The token's serial number
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-TOKEN-MANUFACTURER:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_TOKEN_MANUFACTURER</code></span></p></td>
+<td>The token's manufacturer
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-TOKEN-MODEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_TOKEN_MODEL</code></span></p></td>
+<td>The token's model
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-type-t"></a><h3>enum gnutls_pkcs11_obj_type_t</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_PKCS11_OBJ_UNKNOWN,
+    GNUTLS_PKCS11_OBJ_X509_CRT,
+    GNUTLS_PKCS11_OBJ_PUBKEY,
+    GNUTLS_PKCS11_OBJ_PRIVKEY,
+    GNUTLS_PKCS11_OBJ_SECRET_KEY,
+    GNUTLS_PKCS11_OBJ_DATA
+} gnutls_pkcs11_obj_type_t;
+</pre>
+<p>
+Enumeration of object types.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_UNKNOWN</code></span></p></td>
+<td>Unknown PKCS11 object.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-X509-CRT:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_X509_CRT</code></span></p></td>
+<td>X.509 certificate.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-PUBKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_PUBKEY</code></span></p></td>
+<td>Public key.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-PRIVKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_PRIVKEY</code></span></p></td>
+<td>Private key.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-SECRET-KEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_SECRET_KEY</code></span></p></td>
+<td>Secret key.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS11-OBJ-DATA:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_DATA</code></span></p></td>
+<td>Data object.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-url"></a><h3>gnutls_pkcs11_token_get_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_token_get_url         (<em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_pkcs11_url_type_t</span> detailed</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
+<p>
+This function will return the URL for each token available
+in system. The url has to be released using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>sequence number starting from 0</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>detailed</code></em> :</span></p></td>
+<td>non zero if a detailed URL is required</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>will contain an allocated url</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> if the sequence number
+exceeds the available tokens, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-info"></a><h3>gnutls_pkcs11_token_get_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_token_get_info        (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t" title="enum gnutls_pkcs11_token_info_t"><span class="type">gnutls_pkcs11_token_info_t</span></a> ttype</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
+<p>
+This function will return information about the PKCS 11 token such
+as the label, id, etc.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>should contain a PKCS 11 URL</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ttype</code></em> :</span></p></td>
+<td>Denotes the type of information requested</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>where output will be stored</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_size</code></em> :</span></p></td>
+<td>contains the maximum size of the output and will be overwritten with actual</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success or a negative error code
+on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-HW:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_HW</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_HW 1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-flags"></a><h3>gnutls_pkcs11_token_get_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_token_get_flags       (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *flags</code></em>);</pre>
+<p>
+This function will return information about the PKCS 11 token flags.
+The flags from the <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t" title="enum gnutls_pkcs11_token_info_t"><code class="literal">gnutls_pkcs11_token_info_t</code></a> enumeration.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>should contain a PKCS 11 URL</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>The output flags (GNUTLS_PKCS11_TOKEN_*)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-list-import-url"></a><h3>gnutls_pkcs11_obj_list_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_obj_list_import_url   (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> *p_list</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *const n_list</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t"><span class="type">gnutls_pkcs11_obj_attr_t</span></a> attrs</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will initialize and set values to an object list
+by using all objects identified by a PKCS 11 URL.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p_list</code></em> :</span></p></td>
+<td>An uninitialized object list (may be NULL)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_list</code></em> :</span></p></td>
+<td>initially should hold the maximum size of the list. Will contain the actual size.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>A PKCS 11 url identifying a set of objects</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attrs</code></em> :</span></p></td>
+<td>Attributes of type <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t"><span class="type">gnutls_pkcs11_obj_attr_t</span></a> that can be used to limit output</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-import-pkcs11"></a><h3>gnutls_x509_crt_import_pkcs11 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_import_pkcs11       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> pkcs11_crt</code></em>);</pre>
+<p>
+This function will import a PKCS 11 certificate to a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>A certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs11_crt</code></em> :</span></p></td>
+<td>A PKCS 11 object that contains a certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-import-pkcs11-url"></a><h3>gnutls_x509_crt_import_pkcs11_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_import_pkcs11_url   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will import a PKCS 11 certificate directly from a token
+without involving the <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> structure. This function will
+fail if the certificate stored is not of X.509 type.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>A certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>A PKCS 11 url</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-get-type"></a><h3>gnutls_pkcs11_obj_get_type ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="returnvalue">gnutls_pkcs11_obj_type_t</span></a> gnutls_pkcs11_obj_get_type     (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>);</pre>
+<p>
+This function will return the type of the certificate being
+stored in the structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>Holds the PKCS 11 object</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The type of the certificate.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-type-get-name"></a><h3>gnutls_pkcs11_type_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_pkcs11_type_get_name         (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="type">gnutls_pkcs11_obj_type_t</span></a> type</code></em>);</pre>
+<p>
+This function will return a human readable description of the
+PKCS11 object type <em class="parameter"><code>obj</code></em>.  It will return "Unknown" for unknown
+types.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>Holds the PKCS 11 object type, a <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="type">gnutls_pkcs11_obj_type_t</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>human readable string labeling the PKCS11 object type
+<em class="parameter"><code>type</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-list-import-pkcs11"></a><h3>gnutls_x509_crt_list_import_pkcs11 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_list_import_pkcs11  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *certs</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> cert_max</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> * const objs</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will import a PKCS 11 certificate list to a list of 
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure. These must not be initialized.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>certs</code></em> :</span></p></td>
+<td>A list of certificates of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert_max</code></em> :</span></p></td>
+<td>The maximum size of the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>objs</code></em> :</span></p></td>
+<td>A list of PKCS 11 objects</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>0 for now</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-init"></a><h3>gnutls_pkcs11_privkey_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_privkey_init          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> *key</code></em>);</pre>
+<p>
+This function will initialize an private key structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-deinit"></a><h3>gnutls_pkcs11_privkey_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_privkey_deinit        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>);</pre>
+<p>
+This function will deinitialize a private key structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-get-pk-algorithm"></a><h3>gnutls_pkcs11_privkey_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_privkey_get_pk_algorithm
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>
+This function will return the public key algorithm of a private
+key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
+<td>if bits is non null it will hold the size of the parameters' in bits</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
+success, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-get-info"></a><h3>gnutls_pkcs11_privkey_get_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_privkey_get_info      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t"><span class="type">gnutls_pkcs11_obj_info_t</span></a> itype</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
+<p>
+This function will return information about the PKCS 11 private key such
+as the label, id as well as token information where the key is stored. When
+output is text it returns null terminated string although <span class="type">output_size</span> contains
+the size of the actual data only.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td>
+<td>Denotes the type of information requested</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>where output will be stored</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_size</code></em> :</span></p></td>
+<td>contains the maximum size of the output and will be overwritten with actual</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-import-url"></a><h3>gnutls_pkcs11_privkey_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_privkey_import_url    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> pkey</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will "import" a PKCS 11 URL identifying a private
+key to the <a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> structure. In reality since
+in most cases keys cannot be exported, the private key structure
+is being associated with the available operations on the token.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
+<td>The structure to store the parsed key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>a PKCS 11 url identifying the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>sequence of GNUTLS_PKCS_PRIVKEY_*</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-export-url"></a><h3>gnutls_pkcs11_privkey_export_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs11_privkey_export_url    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_pkcs11_url_type_t</span> detailed</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
+<p>
+This function will export a URL identifying the given key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Holds the PKCS 11 key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>detailed</code></em> :</span></p></td>
+<td>non zero if a detailed URL is required</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
+<td>will contain an allocated url</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/gnutls-pkcs12.html b/doc/reference/html/gnutls-pkcs12.html
new file mode 100644 (file)
index 0000000..8b62845
--- /dev/null
@@ -0,0 +1,859 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>pkcs12</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="intro.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="gnutls-pkcs11.html" title="pkcs11">
+<link rel="next" href="api-index-full.html" title="API Index">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gnutls-pkcs11.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="intro.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gnutls-pkcs12.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gnutls-pkcs12.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gnutls-pkcs12"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-pkcs12.top_of_page"></a>pkcs12</span></h2>
+<p>pkcs12</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gnutls-pkcs12.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-int" title="struct gnutls_pkcs12_int">gnutls_pkcs12_int</a>;
+typedef             <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t">gnutls_pkcs12_t</a>;
+struct              <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-int" title="struct gnutls_pkcs12_bag_int">gnutls_pkcs12_bag_int</a>;
+typedef             <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t">gnutls_pkcs12_bag_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-init" title="gnutls_pkcs12_init ()">gnutls_pkcs12_init</a>                  (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> *pkcs12</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-deinit" title="gnutls_pkcs12_deinit ()">gnutls_pkcs12_deinit</a>                (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-import" title="gnutls_pkcs12_import ()">gnutls_pkcs12_import</a>                (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-export" title="gnutls_pkcs12_export ()">gnutls_pkcs12_export</a>                (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-get-bag" title="gnutls_pkcs12_get_bag ()">gnutls_pkcs12_get_bag</a>               (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-set-bag" title="gnutls_pkcs12_set_bag ()">gnutls_pkcs12_set_bag</a>               (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-generate-mac" title="gnutls_pkcs12_generate_mac ()">gnutls_pkcs12_generate_mac</a>          (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-verify-mac" title="gnutls_pkcs12_verify_mac ()">gnutls_pkcs12_verify_mac</a>            (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-decrypt" title="gnutls_pkcs12_bag_decrypt ()">gnutls_pkcs12_bag_decrypt</a>           (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-encrypt" title="gnutls_pkcs12_bag_encrypt ()">gnutls_pkcs12_bag_encrypt</a>           (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+enum                <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t">gnutls_pkcs12_bag_type_t</a>;
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t"><span class="returnvalue">gnutls_pkcs12_bag_type_t</span></a> <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-type" title="gnutls_pkcs12_bag_get_type ()">gnutls_pkcs12_bag_get_type</a>     (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-data" title="gnutls_pkcs12_bag_get_data ()">gnutls_pkcs12_bag_get_data</a>          (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *data</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()">gnutls_pkcs12_bag_set_data</a>          (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t"><span class="type">gnutls_pkcs12_bag_type_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crl" title="gnutls_pkcs12_bag_set_crl ()">gnutls_pkcs12_bag_set_crl</a>           (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crt" title="gnutls_pkcs12_bag_set_crt ()">gnutls_pkcs12_bag_set_crt</a>           (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-init" title="gnutls_pkcs12_bag_init ()">gnutls_pkcs12_bag_init</a>              (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> *bag</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-deinit" title="gnutls_pkcs12_bag_deinit ()">gnutls_pkcs12_bag_deinit</a>            (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-count" title="gnutls_pkcs12_bag_get_count ()">gnutls_pkcs12_bag_get_count</a>         (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-key-id" title="gnutls_pkcs12_bag_get_key_id ()">gnutls_pkcs12_bag_get_key_id</a>        (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *id</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-key-id" title="gnutls_pkcs12_bag_set_key_id ()">gnutls_pkcs12_bag_set_key_id</a>        (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *id</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-friendly-name" title="gnutls_pkcs12_bag_get_friendly_name ()">gnutls_pkcs12_bag_get_friendly_name</a> (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **name</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-friendly-name" title="gnutls_pkcs12_bag_set_friendly_name ()">gnutls_pkcs12_bag_set_friendly_name</a> (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs12.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs12.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gnutls-pkcs12-int"></a><h3>struct gnutls_pkcs12_int</h3>
+<pre class="programlisting">struct gnutls_pkcs12_int;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-t"></a><h3>gnutls_pkcs12_t</h3>
+<pre class="programlisting">  typedef struct gnutls_pkcs12_int *gnutls_pkcs12_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-int"></a><h3>struct gnutls_pkcs12_bag_int</h3>
+<pre class="programlisting">struct gnutls_pkcs12_bag_int;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-t"></a><h3>gnutls_pkcs12_bag_t</h3>
+<pre class="programlisting">  typedef struct gnutls_pkcs12_bag_int *gnutls_pkcs12_bag_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-init"></a><h3>gnutls_pkcs12_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_init                  (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> *pkcs12</code></em>);</pre>
+<p>
+This function will initialize a PKCS12 structure. PKCS12 structures
+usually contain lists of X.509 Certificates and X.509 Certificate
+revocation lists.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs12</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-deinit"></a><h3>gnutls_pkcs12_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs12_deinit                (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>);</pre>
+<p>
+This function will deinitialize a PKCS12 structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs12</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-import"></a><h3>gnutls_pkcs12_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_import                (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will convert the given DER or PEM encoded PKCS12
+to the native gnutls_pkcs12_t format. The output will be stored in 'pkcs12'.
+</p>
+<p>
+If the PKCS12 is PEM encoded it should have a header of "PKCS12".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs12</code></em> :</span></p></td>
+<td>The structure to store the parsed PKCS12.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The DER or PEM encoded PKCS12.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of DER or PEM</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>an ORed sequence of gnutls_privkey_pkcs8_flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-export"></a><h3>gnutls_pkcs12_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_export                (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the pkcs12 structure to DER or PEM format.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*output_data_size will be updated and GNUTLS_E_SHORT_MEMORY_BUFFER
+will be returned.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header
+of "BEGIN PKCS12".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs12</code></em> :</span></p></td>
+<td>Holds the pkcs12 structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of output params. One of PEM or DER.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a structure PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>In case of failure a negative error code will be
+returned, and 0 on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-get-bag"></a><h3>gnutls_pkcs12_get_bag ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_get_bag               (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);</pre>
+<p>
+This function will return a Bag from the PKCS12 structure.
+</p>
+<p>
+After the last Bag has been read
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs12</code></em> :</span></p></td>
+<td>should contain a gnutls_pkcs12_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>contains the index of the bag to extract</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>An initialized bag, where the contents of the bag will be copied</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-set-bag"></a><h3>gnutls_pkcs12_set_bag ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_set_bag               (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);</pre>
+<p>
+This function will insert a Bag into the PKCS12 structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs12</code></em> :</span></p></td>
+<td>should contain a gnutls_pkcs12_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>An initialized bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-generate-mac"></a><h3>gnutls_pkcs12_generate_mac ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_generate_mac          (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>
+This function will generate a MAC for the PKCS12 structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs12</code></em> :</span></p></td>
+<td>should contain a gnutls_pkcs12_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pass</code></em> :</span></p></td>
+<td>The password for the MAC</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-verify-mac"></a><h3>gnutls_pkcs12_verify_mac ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_verify_mac            (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>
+This function will verify the MAC for the PKCS12 structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs12</code></em> :</span></p></td>
+<td>should contain a gnutls_pkcs12_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pass</code></em> :</span></p></td>
+<td>The password for the MAC</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-decrypt"></a><h3>gnutls_pkcs12_bag_decrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_decrypt           (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>
+This function will decrypt the given encrypted bag and return 0 on
+success.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pass</code></em> :</span></p></td>
+<td>The password used for encryption, must be ASCII.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-encrypt"></a><h3>gnutls_pkcs12_bag_encrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_encrypt           (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will encrypt the given bag.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pass</code></em> :</span></p></td>
+<td>The password used for encryption, must be ASCII</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>should be one of <a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><span class="type">gnutls_pkcs_encrypt_flags_t</span></a> elements bitwise or'd</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-type-t"></a><h3>enum gnutls_pkcs12_bag_type_t</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_BAG_EMPTY = 0,
+    GNUTLS_BAG_PKCS8_ENCRYPTED_KEY = 1,
+    GNUTLS_BAG_PKCS8_KEY = 2,
+    GNUTLS_BAG_CERTIFICATE = 3,
+    GNUTLS_BAG_CRL = 4,
+    GNUTLS_BAG_SECRET = 5,      /* Secret data. Underspecified in pkcs-12,
+                                 * gnutls extension. We use the PKCS-9
+                                 * random nonce ID 1.2.840.113549.1.9.25.3
+                                 * to store randomly generated keys.
+                                 */
+    GNUTLS_BAG_ENCRYPTED = 10,
+    GNUTLS_BAG_UNKNOWN = 20
+} gnutls_pkcs12_bag_type_t;
+</pre>
+<p>
+Enumeration of different PKCS 12 bag types.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-BAG-EMPTY:CAPS"></a><span class="term"><code class="literal">GNUTLS_BAG_EMPTY</code></span></p></td>
+<td>Empty PKCS-12 bag.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-BAG-PKCS8-ENCRYPTED-KEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_BAG_PKCS8_ENCRYPTED_KEY</code></span></p></td>
+<td>PKCS-12 bag with PKCS-8 encrypted key.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-BAG-PKCS8-KEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_BAG_PKCS8_KEY</code></span></p></td>
+<td>PKCS-12 bag with PKCS-8 key.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-BAG-CERTIFICATE:CAPS"></a><span class="term"><code class="literal">GNUTLS_BAG_CERTIFICATE</code></span></p></td>
+<td>PKCS-12 bag with certificate.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-BAG-CRL:CAPS"></a><span class="term"><code class="literal">GNUTLS_BAG_CRL</code></span></p></td>
+<td>PKCS-12 bag with CRL.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-BAG-SECRET:CAPS"></a><span class="term"><code class="literal">GNUTLS_BAG_SECRET</code></span></p></td>
+<td>PKCS-12 bag with secret PKCS-9 keys.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-BAG-ENCRYPTED:CAPS"></a><span class="term"><code class="literal">GNUTLS_BAG_ENCRYPTED</code></span></p></td>
+<td>Encrypted PKCS-12 bag.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-BAG-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GNUTLS_BAG_UNKNOWN</code></span></p></td>
+<td>Unknown PKCS-12 bag.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-type"></a><h3>gnutls_pkcs12_bag_get_type ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t"><span class="returnvalue">gnutls_pkcs12_bag_type_t</span></a> gnutls_pkcs12_bag_get_type     (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>);</pre>
+<p>
+This function will return the bag's type.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>The element of the bag to get the type</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>One of the <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t"><span class="type">gnutls_pkcs12_bag_type_t</span></a> enumerations.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-data"></a><h3>gnutls_pkcs12_bag_get_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_get_data          (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *data</code></em>);</pre>
+<p>
+This function will return the bag's data. The data is a constant
+that is stored into the bag.  Should not be accessed after the bag
+is deleted.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>The element of the bag to get the data from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>where the bag's data will be. Should be treated as constant.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-data"></a><h3>gnutls_pkcs12_bag_set_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_set_data          (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t"><span class="type">gnutls_pkcs12_bag_type_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>);</pre>
+<p>
+This function will insert the given data of the given type into
+the bag.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>The data's type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to be copied.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the index of the added bag on success, or a negative
+value on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-crl"></a><h3>gnutls_pkcs12_bag_set_crl ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_set_crl           (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>
+This function will insert the given CRL into the
+bag. This is just a wrapper over <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()"><code class="function">gnutls_pkcs12_bag_set_data()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>the CRL to be copied.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the index of the added bag on success, or a negative error code
+on failure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-crt"></a><h3>gnutls_pkcs12_bag_set_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_set_crt           (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>);</pre>
+<p>
+This function will insert the given certificate into the
+bag. This is just a wrapper over <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()"><code class="function">gnutls_pkcs12_bag_set_data()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>the certificate to be copied.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the index of the added bag on success, or a negative
+value on failure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-init"></a><h3>gnutls_pkcs12_bag_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_init              (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> *bag</code></em>);</pre>
+<p>
+This function will initialize a PKCS12 bag structure. PKCS12 Bags
+usually contain private keys, lists of X.509 Certificates and X.509
+Certificate revocation lists.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-deinit"></a><h3>gnutls_pkcs12_bag_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs12_bag_deinit            (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);</pre>
+<p>
+This function will deinitialize a PKCS12 Bag structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-count"></a><h3>gnutls_pkcs12_bag_get_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_get_count         (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);</pre>
+<p>
+This function will return the number of the elements withing the bag.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Number of elements in bag, or an negative error code on
+error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-key-id"></a><h3>gnutls_pkcs12_bag_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_get_key_id        (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *id</code></em>);</pre>
+<p>
+This function will return the key ID, of the specified bag element.
+The key ID is usually used to distinguish the local private key and
+the certificate pair.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>The bag's element to add the id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>where the ID will be copied (to be treated as const)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-key-id"></a><h3>gnutls_pkcs12_bag_set_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_set_key_id        (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *id</code></em>);</pre>
+<p>
+This function will add the given key ID, to the specified, by the
+index, bag element. The key ID will be encoded as a 'Local key
+identifier' bag attribute, which is usually used to distinguish
+the local private key and the certificate pair.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>The bag's element to add the id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>the ID</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-friendly-name"></a><h3>gnutls_pkcs12_bag_get_friendly_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_get_friendly_name (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **name</code></em>);</pre>
+<p>
+This function will return the friendly name, of the specified bag
+element.  The key ID is usually used to distinguish the local
+private key and the certificate pair.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>The bag's element to add the id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>will hold a pointer to the name (to be treated as const)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-friendly-name"></a><h3>gnutls_pkcs12_bag_set_friendly_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs12_bag_set_friendly_name (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
+<p>
+This function will add the given key friendly name, to the
+specified, by the index, bag element. The name will be encoded as
+a 'Friendly name' bag attribute, which is usually used to set a
+user name to the local private key and the certificate pair.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bag</code></em> :</span></p></td>
+<td>The bag</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>The bag's element to add the id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/gnutls-x509.html b/doc/reference/html/gnutls-x509.html
new file mode 100644 (file)
index 0000000..3120852
--- /dev/null
@@ -0,0 +1,8485 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>x509</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="intro.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="gnutls-abstract.html" title="abstract">
+<link rel="next" href="gnutls-openpgp.html" title="openpgp">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gnutls-abstract.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="intro.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="gnutls-openpgp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gnutls-x509.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gnutls-x509.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gnutls-x509"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-x509.top_of_page"></a>x509</span></h2>
+<p>x509</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gnutls-x509.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-COUNTRY-NAME:CAPS" title="GNUTLS_OID_X520_COUNTRY_NAME">GNUTLS_OID_X520_COUNTRY_NAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS" title="GNUTLS_OID_X520_ORGANIZATION_NAME">GNUTLS_OID_X520_ORGANIZATION_NAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS" title="GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME">GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-COMMON-NAME:CAPS" title="GNUTLS_OID_X520_COMMON_NAME">GNUTLS_OID_X520_COMMON_NAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-LOCALITY-NAME:CAPS" title="GNUTLS_OID_X520_LOCALITY_NAME">GNUTLS_OID_X520_LOCALITY_NAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS" title="GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME">GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-INITIALS:CAPS" title="GNUTLS_OID_X520_INITIALS">GNUTLS_OID_X520_INITIALS</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS" title="GNUTLS_OID_X520_GENERATION_QUALIFIER">GNUTLS_OID_X520_GENERATION_QUALIFIER</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-SURNAME:CAPS" title="GNUTLS_OID_X520_SURNAME">GNUTLS_OID_X520_SURNAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-GIVEN-NAME:CAPS" title="GNUTLS_OID_X520_GIVEN_NAME">GNUTLS_OID_X520_GIVEN_NAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-TITLE:CAPS" title="GNUTLS_OID_X520_TITLE">GNUTLS_OID_X520_TITLE</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-DN-QUALIFIER:CAPS" title="GNUTLS_OID_X520_DN_QUALIFIER">GNUTLS_OID_X520_DN_QUALIFIER</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-PSEUDONYM:CAPS" title="GNUTLS_OID_X520_PSEUDONYM">GNUTLS_OID_X520_PSEUDONYM</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-POSTALCODE:CAPS" title="GNUTLS_OID_X520_POSTALCODE">GNUTLS_OID_X520_POSTALCODE</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-NAME:CAPS" title="GNUTLS_OID_X520_NAME">GNUTLS_OID_X520_NAME</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-LDAP-DC:CAPS" title="GNUTLS_OID_LDAP_DC">GNUTLS_OID_LDAP_DC</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-LDAP-UID:CAPS" title="GNUTLS_OID_LDAP_UID">GNUTLS_OID_LDAP_UID</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-PKCS9-EMAIL:CAPS" title="GNUTLS_OID_PKCS9_EMAIL">GNUTLS_OID_PKCS9_EMAIL</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS" title="GNUTLS_OID_PKIX_DATE_OF_BIRTH">GNUTLS_OID_PKIX_DATE_OF_BIRTH</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS" title="GNUTLS_OID_PKIX_PLACE_OF_BIRTH">GNUTLS_OID_PKIX_PLACE_OF_BIRTH</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-GENDER:CAPS" title="GNUTLS_OID_PKIX_GENDER">GNUTLS_OID_PKIX_GENDER</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS" title="GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP">GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS" title="GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE">GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS" title="GNUTLS_KP_TLS_WWW_SERVER">GNUTLS_KP_TLS_WWW_SERVER</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-CLIENT:CAPS" title="GNUTLS_KP_TLS_WWW_CLIENT">GNUTLS_KP_TLS_WWW_CLIENT</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-KP-CODE-SIGNING:CAPS" title="GNUTLS_KP_CODE_SIGNING">GNUTLS_KP_CODE_SIGNING</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-KP-EMAIL-PROTECTION:CAPS" title="GNUTLS_KP_EMAIL_PROTECTION">GNUTLS_KP_EMAIL_PROTECTION</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-KP-TIME-STAMPING:CAPS" title="GNUTLS_KP_TIME_STAMPING">GNUTLS_KP_TIME_STAMPING</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-KP-OCSP-SIGNING:CAPS" title="GNUTLS_KP_OCSP_SIGNING">GNUTLS_KP_OCSP_SIGNING</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-KP-ANY:CAPS" title="GNUTLS_KP_ANY">GNUTLS_KP_ANY</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS" title="GNUTLS_FSAN_SET">GNUTLS_FSAN_SET</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS" title="GNUTLS_FSAN_APPEND">GNUTLS_FSAN_APPEND</a>
+enum                <a class="link" href="gnutls-x509.html#gnutls-certificate-import-flags" title="enum gnutls_certificate_import_flags">gnutls_certificate_import_flags</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-init" title="gnutls_x509_crt_init ()">gnutls_x509_crt_init</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *cert</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()">gnutls_x509_crt_deinit</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-import" title="gnutls_x509_crt_import ()">gnutls_x509_crt_import</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-import" title="gnutls_x509_crt_list_import ()">gnutls_x509_crt_list_import</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *certs</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *cert_max</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-export" title="gnutls_x509_crt_export ()">gnutls_x509_crt_export</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn" title="gnutls_x509_crt_get_issuer_dn ()">gnutls_x509_crt_get_issuer_dn</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-oid" title="gnutls_x509_crt_get_issuer_dn_oid ()">gnutls_x509_crt_get_issuer_dn_oid</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-by-oid" title="gnutls_x509_crt_get_issuer_dn_by_oid ()">gnutls_x509_crt_get_issuer_dn_by_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn" title="gnutls_x509_crt_get_dn ()">gnutls_x509_crt_get_dn</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn-oid" title="gnutls_x509_crt_get_dn_oid ()">gnutls_x509_crt_get_dn_oid</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn-by-oid" title="gnutls_x509_crt_get_dn_by_oid ()">gnutls_x509_crt_get_dn_by_oid</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-hostname" title="gnutls_x509_crt_check_hostname ()">gnutls_x509_crt_check_hostname</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-signature-algorithm" title="gnutls_x509_crt_get_signature_algorithm ()">gnutls_x509_crt_get_signature_algorithm</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-signature" title="gnutls_x509_crt_get_signature ()">gnutls_x509_crt_get_signature</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *sig</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_sig</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-version" title="gnutls_x509_crt_get_version ()">gnutls_x509_crt_get_version</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-id" title="gnutls_x509_crt_get_key_id ()">gnutls_x509_crt_get_key_id</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-authority-key-id" title="gnutls_x509_crt_set_authority_key_id ()">gnutls_x509_crt_set_authority_key_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-authority-key-id" title="gnutls_x509_crt_get_authority_key_id ()">gnutls_x509_crt_get_authority_key_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *id_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-key-id" title="gnutls_x509_crt_get_subject_key_id ()">gnutls_x509_crt_get_subject_key_id</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-UNUSED:CAPS" title="GNUTLS_CRL_REASON_UNUSED">GNUTLS_CRL_REASON_UNUSED</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_KEY_COMPROMISE">GNUTLS_CRL_REASON_KEY_COMPROMISE</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_CA_COMPROMISE">GNUTLS_CRL_REASON_CA_COMPROMISE</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS" title="GNUTLS_CRL_REASON_AFFILIATION_CHANGED">GNUTLS_CRL_REASON_AFFILIATION_CHANGED</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEDED:CAPS" title="GNUTLS_CRL_REASON_SUPERSEDED">GNUTLS_CRL_REASON_SUPERSEDED</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEEDED:CAPS" title="GNUTLS_CRL_REASON_SUPERSEEDED">GNUTLS_CRL_REASON_SUPERSEEDED</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS" title="GNUTLS_CRL_REASON_CESSATION_OF_OPERATION">GNUTLS_CRL_REASON_CESSATION_OF_OPERATION</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS" title="GNUTLS_CRL_REASON_CERTIFICATE_HOLD">GNUTLS_CRL_REASON_CERTIFICATE_HOLD</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS" title="GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN">GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN</a>
+#define             <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_AA_COMPROMISE">GNUTLS_CRL_REASON_AA_COMPROMISE</a>
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-crl-dist-points" title="gnutls_x509_crt_get_crl_dist_points ()">gnutls_x509_crt_get_crl_dist_points</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *reason_flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points2" title="gnutls_x509_crt_set_crl_dist_points2 ()">gnutls_x509_crt_set_crl_dist_points2</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> reason_flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points" title="gnutls_x509_crt_set_crl_dist_points ()">gnutls_x509_crt_set_crl_dist_points</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data_string</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> reason_flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-cpy-crl-dist-points" title="gnutls_x509_crt_cpy_crl_dist_points ()">gnutls_x509_crt_cpy_crl_dist_points</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> dst</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> src</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-activation-time" title="gnutls_x509_crt_get_activation_time ()">gnutls_x509_crt_get_activation_time</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-expiration-time" title="gnutls_x509_crt_get_expiration_time ()">gnutls_x509_crt_get_expiration_time</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-serial" title="gnutls_x509_crt_get_serial ()">gnutls_x509_crt_get_serial</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-algorithm" title="gnutls_x509_crt_get_pk_algorithm ()">gnutls_x509_crt_get_pk_algorithm</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-rsa-raw" title="gnutls_x509_crt_get_pk_rsa_raw ()">gnutls_x509_crt_get_pk_rsa_raw</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-dsa-raw" title="gnutls_x509_crt_get_pk_dsa_raw ()">gnutls_x509_crt_get_pk_dsa_raw</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()">gnutls_x509_crt_get_subject_alt_name</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *san</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *san_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name2" title="gnutls_x509_crt_get_subject_alt_name2 ()">gnutls_x509_crt_get_subject_alt_name2</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *san</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *san_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *san_type</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid" title="gnutls_x509_crt_get_subject_alt_othername_oid ()">gnutls_x509_crt_get_subject_alt_othername_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" title="gnutls_x509_crt_get_issuer_alt_name ()">gnutls_x509_crt_get_issuer_alt_name</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ian</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ian_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name2" title="gnutls_x509_crt_get_issuer_alt_name2 ()">gnutls_x509_crt_get_issuer_alt_name2</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ian</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ian_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *ian_type</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-othername-oid" title="gnutls_x509_crt_get_issuer_alt_othername_oid ()">gnutls_x509_crt_get_issuer_alt_othername_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-ca-status" title="gnutls_x509_crt_get_ca_status ()">gnutls_x509_crt_get_ca_status</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-basic-constraints" title="gnutls_x509_crt_get_basic_constraints ()">gnutls_x509_crt_get_basic_constraints</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *ca</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-usage" title="gnutls_x509_crt_get_key_usage ()">gnutls_x509_crt_get_key_usage</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key-usage" title="gnutls_x509_crt_set_key_usage ()">gnutls_x509_crt_set_key_usage</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-proxy" title="gnutls_x509_crt_get_proxy ()">gnutls_x509_crt_get_proxy</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **policyLanguage</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **policy</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_policy</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()">gnutls_x509_dn_oid_known</a>            (<em class="parameter"><code>const <span class="type">char</span> *oid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-oid" title="gnutls_x509_crt_get_extension_oid ()">gnutls_x509_crt_get_extension_oid</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid" title="gnutls_x509_crt_get_extension_by_oid ()">gnutls_x509_crt_get_extension_by_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-info" title="gnutls_x509_crt_get_extension_info ()">gnutls_x509_crt_get_extension_info</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-data" title="gnutls_x509_crt_get_extension_data ()">gnutls_x509_crt_get_extension_data</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-extension-by-oid" title="gnutls_x509_crt_set_extension_by_oid ()">gnutls_x509_crt_set_extension_by_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> sizeof_buf</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid" title="gnutls_x509_crt_set_dn_by_oid ()">gnutls_x509_crt_set_dn_by_oid</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-issuer-dn-by-oid" title="gnutls_x509_crt_set_issuer_dn_by_oid ()">gnutls_x509_crt_set_issuer_dn_by_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-version" title="gnutls_x509_crt_set_version ()">gnutls_x509_crt_set_version</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> version</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key" title="gnutls_x509_crt_set_key ()">gnutls_x509_crt_set_key</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-ca-status" title="gnutls_x509_crt_set_ca_status ()">gnutls_x509_crt_set_ca_status</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> ca</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-basic-constraints" title="gnutls_x509_crt_set_basic_constraints ()">gnutls_x509_crt_set_basic_constraints</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> ca</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> pathLenConstraint</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alternative-name" title="gnutls_x509_crt_set_subject_alternative_name ()">gnutls_x509_crt_set_subject_alternative_name</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *data_string</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" title="gnutls_x509_crt_set_subject_alt_name ()">gnutls_x509_crt_set_subject_alt_name</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-sign" title="gnutls_x509_crt_sign ()">gnutls_x509_crt_sign</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> issuer_key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-sign2" title="gnutls_x509_crt_sign2 ()">gnutls_x509_crt_sign2</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> issuer_key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-activation-time" title="gnutls_x509_crt_set_activation_time ()">gnutls_x509_crt_set_activation_time</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> act_time</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-expiration-time" title="gnutls_x509_crt_set_expiration_time ()">gnutls_x509_crt_set_expiration_time</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> exp_time</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-serial" title="gnutls_x509_crt_set_serial ()">gnutls_x509_crt_set_serial</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *serial</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> serial_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-key-id" title="gnutls_x509_crt_set_subject_key_id ()">gnutls_x509_crt_set_subject_key_id</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-proxy-dn" title="gnutls_x509_crt_set_proxy_dn ()">gnutls_x509_crt_set_proxy_dn</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> eecrt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-proxy" title="gnutls_x509_crt_set_proxy ()">gnutls_x509_crt_set_proxy</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> pathLenConstraint</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *policyLanguage</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *policy</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> sizeof_policy</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-print" title="gnutls_x509_crt_print ()">gnutls_x509_crt_print</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-print" title="gnutls_x509_crl_print ()">gnutls_x509_crl_print</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-raw-issuer-dn" title="gnutls_x509_crt_get_raw_issuer_dn ()">gnutls_x509_crt_get_raw_issuer_dn</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *start</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-raw-dn" title="gnutls_x509_crt_get_raw_dn ()">gnutls_x509_crt_get_raw_dn</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *start</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get" title="gnutls_x509_rdn_get ()">gnutls_x509_rdn_get</a>                 (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *idn</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get-oid" title="gnutls_x509_rdn_get_oid ()">gnutls_x509_rdn_get_oid</a>             (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *idn</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get-by-oid" title="gnutls_x509_rdn_get_by_oid ()">gnutls_x509_rdn_get_by_oid</a>          (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *idn</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+typedef             <a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t">gnutls_x509_dn_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject" title="gnutls_x509_crt_get_subject ()">gnutls_x509_crt_get_subject</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer" title="gnutls_x509_crt_get_issuer ()">gnutls_x509_crt_get_issuer</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()">gnutls_x509_dn_get_rdn_ava</a>          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> irdn</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> iava</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_x509_ava_st</span> *ava</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-dn-init" title="gnutls_x509_dn_init ()">gnutls_x509_dn_init</a>                 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-dn-import" title="gnutls_x509_dn_import ()">gnutls_x509_dn_import</a>               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-dn-export" title="gnutls_x509_dn_export ()">gnutls_x509_dn_export</a>               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-x509.html#gnutls-x509-dn-deinit" title="gnutls_x509_dn_deinit ()">gnutls_x509_dn_deinit</a>               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-init" title="gnutls_x509_crl_init ()">gnutls_x509_crl_init</a>                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-x509.html#gnutls-x509-crl-deinit" title="gnutls_x509_crl_deinit ()">gnutls_x509_crl_deinit</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-import" title="gnutls_x509_crl_import ()">gnutls_x509_crl_import</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-export" title="gnutls_x509_crl_export ()">gnutls_x509_crl_export</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn" title="gnutls_x509_crl_get_issuer_dn ()">gnutls_x509_crl_get_issuer_dn</a>       (<em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn-by-oid" title="gnutls_x509_crl_get_issuer_dn_by_oid ()">gnutls_x509_crl_get_issuer_dn_by_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-dn-oid" title="gnutls_x509_crl_get_dn_oid ()">gnutls_x509_crl_get_dn_oid</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-signature-algorithm" title="gnutls_x509_crl_get_signature_algorithm ()">gnutls_x509_crl_get_signature_algorithm</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-signature" title="gnutls_x509_crl_get_signature ()">gnutls_x509_crl_get_signature</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *sig</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_sig</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-version" title="gnutls_x509_crl_get_version ()">gnutls_x509_crl_get_version</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-this-update" title="gnutls_x509_crl_get_this_update ()">gnutls_x509_crl_get_this_update</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);
+<span class="returnvalue">time_t</span>              <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-next-update" title="gnutls_x509_crl_get_next_update ()">gnutls_x509_crl_get_next_update</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-crt-count" title="gnutls_x509_crl_get_crt_count ()">gnutls_x509_crl_get_crt_count</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-crt-serial" title="gnutls_x509_crl_get_crt_serial ()">gnutls_x509_crl_get_crt_serial</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *serial</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *serial_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> *t</code></em>);
+#define             <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-certificate-count" title="gnutls_x509_crl_get_certificate_count">gnutls_x509_crl_get_certificate_count</a>
+#define             <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-certificate" title="gnutls_x509_crl_get_certificate">gnutls_x509_crl_get_certificate</a>
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-check-issuer" title="gnutls_x509_crl_check_issuer ()">gnutls_x509_crl_check_issuer</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-version" title="gnutls_x509_crl_set_version ()">gnutls_x509_crl_set_version</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> version</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-sign2" title="gnutls_x509_crl_sign2 ()">gnutls_x509_crl_sign2</a>               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> issuer_key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-this-update" title="gnutls_x509_crl_set_this_update ()">gnutls_x509_crl_set_this_update</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> act_time</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-next-update" title="gnutls_x509_crl_set_next_update ()">gnutls_x509_crl_set_next_update</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> exp_time</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-crt-serial" title="gnutls_x509_crl_set_crt_serial ()">gnutls_x509_crl_set_crt_serial</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *serial</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> serial_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> revocation_time</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-crt" title="gnutls_x509_crl_set_crt ()">gnutls_x509_crl_set_crt</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> revocation_time</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-authority-key-id" title="gnutls_x509_crl_get_authority_key_id ()">gnutls_x509_crl_get_authority_key_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *id_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-number" title="gnutls_x509_crl_get_number ()">gnutls_x509_crl_get_number</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-oid" title="gnutls_x509_crl_get_extension_oid ()">gnutls_x509_crl_get_extension_oid</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-info" title="gnutls_x509_crl_get_extension_info ()">gnutls_x509_crl_get_extension_info</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-data" title="gnutls_x509_crl_get_extension_data ()">gnutls_x509_crl_get_extension_data</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-authority-key-id" title="gnutls_x509_crl_set_authority_key_id ()">gnutls_x509_crl_set_authority_key_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-number" title="gnutls_x509_crl_set_number ()">gnutls_x509_crl_set_number</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *nr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> nr_size</code></em>);
+struct              <a class="link" href="gnutls-x509.html#gnutls-pkcs7-int" title="struct gnutls_pkcs7_int">gnutls_pkcs7_int</a>;
+typedef             <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t">gnutls_pkcs7_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-init" title="gnutls_pkcs7_init ()">gnutls_pkcs7_init</a>                   (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> *pkcs7</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-x509.html#gnutls-pkcs7-deinit" title="gnutls_pkcs7_deinit ()">gnutls_pkcs7_deinit</a>                 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-import" title="gnutls_pkcs7_import ()">gnutls_pkcs7_import</a>                 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-export" title="gnutls_pkcs7_export ()">gnutls_pkcs7_export</a>                 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-get-crt-count" title="gnutls_pkcs7_get_crt_count ()">gnutls_pkcs7_get_crt_count</a>          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-get-crt-raw" title="gnutls_pkcs7_get_crt_raw ()">gnutls_pkcs7_get_crt_raw</a>            (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *certificate</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *certificate_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crt-raw" title="gnutls_pkcs7_set_crt_raw ()">gnutls_pkcs7_set_crt_raw</a>            (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *crt</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crt" title="gnutls_pkcs7_set_crt ()">gnutls_pkcs7_set_crt</a>                (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-delete-crt" title="gnutls_pkcs7_delete_crt ()">gnutls_pkcs7_delete_crt</a>             (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-get-crl-raw" title="gnutls_pkcs7_get_crl_raw ()">gnutls_pkcs7_get_crl_raw</a>            (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *crl_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-get-crl-count" title="gnutls_pkcs7_get_crl_count ()">gnutls_pkcs7_get_crl_count</a>          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crl-raw" title="gnutls_pkcs7_set_crl_raw ()">gnutls_pkcs7_set_crl_raw</a>            (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *crl</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crl" title="gnutls_pkcs7_set_crl ()">gnutls_pkcs7_set_crl</a>                (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-pkcs7-delete-crl" title="gnutls_pkcs7_delete_crl ()">gnutls_pkcs7_delete_crl</a>             (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>);
+enum                <a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags">gnutls_certificate_verify_flags</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-issuer" title="gnutls_x509_crt_check_issuer ()">gnutls_x509_crt_check_issuer</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-verify" title="gnutls_x509_crt_list_verify ()">gnutls_x509_crt_list_verify</a>         (<em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *cert_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> cert_list_length</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *CA_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> CA_list_length</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *CRL_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> CRL_list_length</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-verify" title="gnutls_x509_crt_verify ()">gnutls_x509_crt_verify</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *CA_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> CA_list_length</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crl-verify" title="gnutls_x509_crl_verify ()">gnutls_x509_crl_verify</a>              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *CA_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> CA_list_length</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-revocation" title="gnutls_x509_crt_check_revocation ()">gnutls_x509_crt_check_revocation</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> crl_list_length</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-fingerprint" title="gnutls_x509_crt_get_fingerprint ()">gnutls_x509_crt_get_fingerprint</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algo</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-purpose-oid" title="gnutls_x509_crt_get_key_purpose_oid ()">gnutls_x509_crt_get_key_purpose_oid</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key-purpose-oid" title="gnutls_x509_crt_set_key_purpose_oid ()">gnutls_x509_crt_set_key_purpose_oid</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);
+enum                <a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t">gnutls_pkcs_encrypt_flags_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-init" title="gnutls_x509_privkey_init ()">gnutls_x509_privkey_init</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> *key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-deinit" title="gnutls_x509_privkey_deinit ()">gnutls_x509_privkey_deinit</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-cpy" title="gnutls_x509_privkey_cpy ()">gnutls_x509_privkey_cpy</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> dst</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> src</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import" title="gnutls_x509_privkey_import ()">gnutls_x509_privkey_import</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-pkcs8" title="gnutls_x509_privkey_import_pkcs8 ()">gnutls_x509_privkey_import_pkcs8</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw" title="gnutls_x509_privkey_import_rsa_raw ()">gnutls_x509_privkey_import_rsa_raw</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *u</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw2" title="gnutls_x509_privkey_import_rsa_raw2 ()">gnutls_x509_privkey_import_rsa_raw2</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *u</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e1</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e2</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-fix" title="gnutls_x509_privkey_fix ()">gnutls_x509_privkey_fix</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-dsa-raw" title="gnutls_x509_privkey_export_dsa_raw ()">gnutls_x509_privkey_export_dsa_raw</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-dsa-raw" title="gnutls_x509_privkey_import_dsa_raw ()">gnutls_x509_privkey_import_dsa_raw</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *y</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *x</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-pk-algorithm" title="gnutls_x509_privkey_get_pk_algorithm ()">gnutls_x509_privkey_get_pk_algorithm</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-key-id" title="gnutls_x509_privkey_get_key_id ()">gnutls_x509_privkey_get_key_id</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-generate" title="gnutls_x509_privkey_generate ()">gnutls_x509_privkey_generate</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algo</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export" title="gnutls_x509_privkey_export ()">gnutls_x509_privkey_export</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-pkcs8" title="gnutls_x509_privkey_export_pkcs8 ()">gnutls_x509_privkey_export_pkcs8</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw2" title="gnutls_x509_privkey_export_rsa_raw2 ()">gnutls_x509_privkey_export_rsa_raw2</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e1</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e2</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw" title="gnutls_x509_privkey_export_rsa_raw ()">gnutls_x509_privkey_export_rsa_raw</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);
+struct              <a class="link" href="gnutls-x509.html#gnutls-x509-crq-int" title="struct gnutls_x509_crq_int">gnutls_x509_crq_int</a>;
+typedef             <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t">gnutls_x509_crq_t</a>;
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-print" title="gnutls_x509_crq_print ()">gnutls_x509_crq_print</a>               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-init" title="gnutls_x509_crq_init ()">gnutls_x509_crq_init</a>                (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> *crq</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gnutls-x509.html#gnutls-x509-crq-deinit" title="gnutls_x509_crq_deinit ()">gnutls_x509_crq_deinit</a>              (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-import" title="gnutls_x509_crq_import ()">gnutls_x509_crq_import</a>              (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn" title="gnutls_x509_crq_get_dn ()">gnutls_x509_crq_get_dn</a>              (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn-oid" title="gnutls_x509_crq_get_dn_oid ()">gnutls_x509_crq_get_dn_oid</a>          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn-by-oid" title="gnutls_x509_crq_get_dn_by_oid ()">gnutls_x509_crq_get_dn_by_oid</a>       (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-dn-by-oid" title="gnutls_x509_crq_set_dn_by_oid ()">gnutls_x509_crq_set_dn_by_oid</a>       (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_data</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-version" title="gnutls_x509_crq_set_version ()">gnutls_x509_crq_set_version</a>         (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> version</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-version" title="gnutls_x509_crq_get_version ()">gnutls_x509_crq_get_version</a>         (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key" title="gnutls_x509_crq_set_key ()">gnutls_x509_crq_set_key</a>             (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-sign2" title="gnutls_x509_crq_sign2 ()">gnutls_x509_crq_sign2</a>               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-challenge-password" title="gnutls_x509_crq_set_challenge_password ()">gnutls_x509_crq_set_challenge_password</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-challenge-password" title="gnutls_x509_crq_get_challenge_password ()">gnutls_x509_crq_get_challenge_password</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *pass</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_pass</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-attribute-by-oid" title="gnutls_x509_crq_set_attribute_by_oid ()">gnutls_x509_crq_set_attribute_by_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> sizeof_buf</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-by-oid" title="gnutls_x509_crq_get_attribute_by_oid ()">gnutls_x509_crq_get_attribute_by_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-export" title="gnutls_x509_crq_export ()">gnutls_x509_crq_export</a>              (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crq" title="gnutls_x509_crt_set_crq ()">gnutls_x509_crt_set_crq</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crq-extensions" title="gnutls_x509_crt_set_crq_extensions ()">gnutls_x509_crt_set_crq_extensions</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-rsa-raw" title="gnutls_x509_crq_set_key_rsa_raw ()">gnutls_x509_crq_set_key_rsa_raw</a>     (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-subject-alt-name" title="gnutls_x509_crq_set_subject_alt_name ()">gnutls_x509_crq_set_subject_alt_name</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> nt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-usage" title="gnutls_x509_crq_set_key_usage ()">gnutls_x509_crq_set_key_usage</a>       (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-basic-constraints" title="gnutls_x509_crq_set_basic_constraints ()">gnutls_x509_crq_set_basic_constraints</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> ca</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> pathLenConstraint</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-purpose-oid" title="gnutls_x509_crq_set_key_purpose_oid ()">gnutls_x509_crq_set_key_purpose_oid</a> (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-purpose-oid" title="gnutls_x509_crq_get_key_purpose_oid ()">gnutls_x509_crq_get_key_purpose_oid</a> (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-data" title="gnutls_x509_crq_get_extension_data ()">gnutls_x509_crq_get_extension_data</a>  (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-info" title="gnutls_x509_crq_get_extension_info ()">gnutls_x509_crq_get_extension_info</a>  (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-data" title="gnutls_x509_crq_get_attribute_data ()">gnutls_x509_crq_get_attribute_data</a>  (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-info" title="gnutls_x509_crq_get_attribute_info ()">gnutls_x509_crq_get_attribute_info</a>  (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-pk-algorithm" title="gnutls_x509_crq_get_pk_algorithm ()">gnutls_x509_crq_get_pk_algorithm</a>    (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-id" title="gnutls_x509_crq_get_key_id ()">gnutls_x509_crq_get_key_id</a>          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-rsa-raw" title="gnutls_x509_crq_get_key_rsa_raw ()">gnutls_x509_crq_get_key_rsa_raw</a>     (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-usage" title="gnutls_x509_crq_get_key_usage ()">gnutls_x509_crq_get_key_usage</a>       (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-basic-constraints" title="gnutls_x509_crq_get_basic_constraints ()">gnutls_x509_crq_get_basic_constraints</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *ca</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" title="gnutls_x509_crq_get_subject_alt_name ()">gnutls_x509_crq_get_subject_alt_name</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *ret_type</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-othername-oid" title="gnutls_x509_crq_get_subject_alt_othername_oid ()">gnutls_x509_crq_get_subject_alt_othername_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid" title="gnutls_x509_crq_get_extension_by_oid ()">gnutls_x509_crq_get_extension_by_oid</a>
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gnutls-x509.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gnutls-x509.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-COUNTRY-NAME:CAPS"></a><h3>GNUTLS_OID_X520_COUNTRY_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_COUNTRY_NAME               "2.5.4.6"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS"></a><h3>GNUTLS_OID_X520_ORGANIZATION_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_ORGANIZATION_NAME "2.5.4.10"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS"></a><h3>GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME "2.5.4.11"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-COMMON-NAME:CAPS"></a><h3>GNUTLS_OID_X520_COMMON_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_COMMON_NAME                "2.5.4.3"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-LOCALITY-NAME:CAPS"></a><h3>GNUTLS_OID_X520_LOCALITY_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_LOCALITY_NAME              "2.5.4.7"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS"></a><h3>GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME "2.5.4.8"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-INITIALS:CAPS"></a><h3>GNUTLS_OID_X520_INITIALS</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_INITIALS           "2.5.4.43"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS"></a><h3>GNUTLS_OID_X520_GENERATION_QUALIFIER</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_GENERATION_QUALIFIER "2.5.4.44"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-SURNAME:CAPS"></a><h3>GNUTLS_OID_X520_SURNAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_SURNAME                    "2.5.4.4"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-GIVEN-NAME:CAPS"></a><h3>GNUTLS_OID_X520_GIVEN_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_GIVEN_NAME         "2.5.4.42"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-TITLE:CAPS"></a><h3>GNUTLS_OID_X520_TITLE</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_TITLE                      "2.5.4.12"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-DN-QUALIFIER:CAPS"></a><h3>GNUTLS_OID_X520_DN_QUALIFIER</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_DN_QUALIFIER               "2.5.4.46"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-PSEUDONYM:CAPS"></a><h3>GNUTLS_OID_X520_PSEUDONYM</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_PSEUDONYM          "2.5.4.65"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-POSTALCODE:CAPS"></a><h3>GNUTLS_OID_X520_POSTALCODE</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_POSTALCODE              "2.5.4.17"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-NAME:CAPS"></a><h3>GNUTLS_OID_X520_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_NAME                    "2.5.4.41"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-LDAP-DC:CAPS"></a><h3>GNUTLS_OID_LDAP_DC</h3>
+<pre class="programlisting">#define GNUTLS_OID_LDAP_DC                 "0.9.2342.19200300.100.1.25"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-LDAP-UID:CAPS"></a><h3>GNUTLS_OID_LDAP_UID</h3>
+<pre class="programlisting">#define GNUTLS_OID_LDAP_UID                        "0.9.2342.19200300.100.1.1"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKCS9-EMAIL:CAPS"></a><h3>GNUTLS_OID_PKCS9_EMAIL</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKCS9_EMAIL                     "1.2.840.113549.1.9.1"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS"></a><h3>GNUTLS_OID_PKIX_DATE_OF_BIRTH</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_DATE_OF_BIRTH              "1.3.6.1.5.5.7.9.1"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS"></a><h3>GNUTLS_OID_PKIX_PLACE_OF_BIRTH</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_PLACE_OF_BIRTH             "1.3.6.1.5.5.7.9.2"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-GENDER:CAPS"></a><h3>GNUTLS_OID_PKIX_GENDER</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_GENDER                     "1.3.6.1.5.5.7.9.3"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS"></a><h3>GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP "1.3.6.1.5.5.7.9.4"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS"></a><h3>GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE "1.3.6.1.5.5.7.9.5"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-TLS-WWW-SERVER:CAPS"></a><h3>GNUTLS_KP_TLS_WWW_SERVER</h3>
+<pre class="programlisting">#define GNUTLS_KP_TLS_WWW_SERVER           "1.3.6.1.5.5.7.3.1"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-TLS-WWW-CLIENT:CAPS"></a><h3>GNUTLS_KP_TLS_WWW_CLIENT</h3>
+<pre class="programlisting">#define GNUTLS_KP_TLS_WWW_CLIENT                "1.3.6.1.5.5.7.3.2"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-CODE-SIGNING:CAPS"></a><h3>GNUTLS_KP_CODE_SIGNING</h3>
+<pre class="programlisting">#define GNUTLS_KP_CODE_SIGNING                     "1.3.6.1.5.5.7.3.3"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-EMAIL-PROTECTION:CAPS"></a><h3>GNUTLS_KP_EMAIL_PROTECTION</h3>
+<pre class="programlisting">#define GNUTLS_KP_EMAIL_PROTECTION         "1.3.6.1.5.5.7.3.4"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-TIME-STAMPING:CAPS"></a><h3>GNUTLS_KP_TIME_STAMPING</h3>
+<pre class="programlisting">#define GNUTLS_KP_TIME_STAMPING                    "1.3.6.1.5.5.7.3.8"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-OCSP-SIGNING:CAPS"></a><h3>GNUTLS_KP_OCSP_SIGNING</h3>
+<pre class="programlisting">#define GNUTLS_KP_OCSP_SIGNING                     "1.3.6.1.5.5.7.3.9"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-ANY:CAPS"></a><h3>GNUTLS_KP_ANY</h3>
+<pre class="programlisting">#define GNUTLS_KP_ANY                              "2.5.29.37.0"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FSAN-SET:CAPS"></a><h3>GNUTLS_FSAN_SET</h3>
+<pre class="programlisting">#define GNUTLS_FSAN_SET 0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FSAN-APPEND:CAPS"></a><h3>GNUTLS_FSAN_APPEND</h3>
+<pre class="programlisting">#define GNUTLS_FSAN_APPEND 1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-import-flags"></a><h3>enum gnutls_certificate_import_flags</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED = 1,
+    GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED = 2
+} gnutls_certificate_import_flags;
+</pre>
+<p>
+Enumeration of different certificate import flags.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-X509-CRT-LIST-IMPORT-FAIL-IF-EXCEED:CAPS"></a><span class="term"><code class="literal">GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED</code></span></p></td>
+<td>Fail if the
+  certificates in the buffer are more than the space allocated for
+  certificates. The error code will be <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a>.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-X509-CRT-LIST-FAIL-IF-UNSORTED:CAPS"></a><span class="term"><code class="literal">GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED</code></span></p></td>
+<td>Fail if the certificates
+  in the buffer are not ordered starting from subject to issuer.
+  The error code will be <code class="literal">GNUTLS_E_CERTIFICATE_LIST_UNSORTED</code>.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-init"></a><h3>gnutls_x509_crt_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_init                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *cert</code></em>);</pre>
+<p>
+This function will initialize an X.509 certificate structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-deinit"></a><h3>gnutls_x509_crt_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_x509_crt_deinit              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);</pre>
+<p>
+This function will deinitialize a certificate structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>The structure to be deinitialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-import"></a><h3>gnutls_x509_crt_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_import              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This function will convert the given DER or PEM encoded Certificate
+to the native gnutls_x509_crt_t format. The output will be stored
+in <em class="parameter"><code>cert</code></em>.
+</p>
+<p>
+If the Certificate is PEM encoded it should have a header of "X509
+CERTIFICATE", or "CERTIFICATE".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>The structure to store the parsed certificate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The DER or PEM encoded certificate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of DER or PEM</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-list-import"></a><h3>gnutls_x509_crt_list_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_list_import         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *certs</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *cert_max</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will convert the given PEM encoded certificate list
+to the native gnutls_x509_crt_t format. The output will be stored
+in <em class="parameter"><code>certs</code></em>.  They will be automatically initialized.
+</p>
+<p>
+The flag <a class="link" href="gnutls-x509.html#GNUTLS-X509-CRT-LIST-IMPORT-FAIL-IF-EXCEED:CAPS"><code class="literal">GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED</code></a> will cause
+import to fail if the certificates in the provided buffer are more
+than the available structures. The <a class="link" href="gnutls-x509.html#GNUTLS-X509-CRT-LIST-FAIL-IF-UNSORTED:CAPS"><code class="literal">GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED</code></a>
+flag will cause the function to fail if the provided list is not
+sorted from subject to issuer.
+</p>
+<p>
+If the Certificate is PEM encoded it should have a header of "X509
+CERTIFICATE", or "CERTIFICATE".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>certs</code></em> :</span></p></td>
+<td>The structures to store the parsed certificate. Must not be initialized.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert_max</code></em> :</span></p></td>
+<td>Initially must hold the maximum number of certs. It will be updated with the number of certs available.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The PEM encoded certificate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of DER or PEM.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>must be (0) or an OR'd sequence of gnutls_certificate_import_flags.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of certificates read or a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-export"></a><h3>gnutls_x509_crt_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_export              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the certificate to DER or PEM format.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*output_data_size is updated and GNUTLS_E_SHORT_MEMORY_BUFFER will
+be returned.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header
+of "BEGIN CERTIFICATE".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of output params. One of PEM or DER.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a certificate PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>In case of failure a negative error code will be
+returned, and 0 on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-dn"></a><h3>gnutls_x509_crt_get_issuer_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_issuer_dn       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>
+This function will copy the name of the Certificate issuer in the
+provided buffer. The name will be in the form
+"C=xxxx,O=yyyy,CN=zzzz" as described in RFC4514. The output string
+will be ASCII or UTF-8 encoded, depending on the certificate data.
+</p>
+<p>
+If <em class="parameter"><code>buf</code></em> is null then only the size will be filled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>GNUTLS_E_SHORT_MEMORY_BUFFER if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em> will be updated with
+the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-dn-oid"></a><h3>gnutls_x509_crt_get_issuer_dn_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_issuer_dn_oid   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>
+This function will extract the OIDs of the name of the Certificate
+issuer specified by the given index.
+</p>
+<p>
+If <em class="parameter"><code>oid</code></em> is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em> will not
+account for the trailing null.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>This specifies which OID to return. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a buffer to hold the OID (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>GNUTLS_E_SHORT_MEMORY_BUFFER if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>oid_size</code></em> will be updated
+with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-dn-by-oid"></a><h3>gnutls_x509_crt_get_issuer_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_issuer_dn_by_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>
+This function will extract the part of the name of the Certificate
+issuer specified by the given OID. The output, if the raw flag is not
+used, will be encoded as described in RFC4514. Thus a string that is
+ASCII or UTF-8 encoded, depending on the certificate data.
+</p>
+<p>
+Some helper macros with popular OIDs can be found in gnutls/x509.h
+If raw flag is (0), this function will only return known OIDs as
+text. Other OIDs will be DER encoded, as described in RFC4514 --
+in hex format with a '#' prefix.  You can check about known OIDs
+using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.
+</p>
+<p>
+If <em class="parameter"><code>buf</code></em> is null then only the size will be filled. If the <em class="parameter"><code>raw_flag</code></em>
+is not specified the output is always null terminated, although the
+<em class="parameter"><code>buf_size</code></em> will not include the null character.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>In case multiple same OIDs exist in the RDN, this specifies which to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>If non (0) returns the raw DER data of the DN part.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>GNUTLS_E_SHORT_MEMORY_BUFFER if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em> will be updated
+with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-dn"></a><h3>gnutls_x509_crt_get_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_dn              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>
+This function will copy the name of the Certificate in the provided
+buffer. The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.
+</p>
+<p>
+If <em class="parameter"><code>buf</code></em> is null then only the size will be filled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em> will be updated
+with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-dn-oid"></a><h3>gnutls_x509_crt_get_dn_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_dn_oid          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>
+This function will extract the OIDs of the name of the Certificate
+subject specified by the given index.
+</p>
+<p>
+If <em class="parameter"><code>oid</code></em> is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em> will not
+account for the trailing null.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>This specifies which OID to return. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a buffer to hold the OID (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the <em class="parameter"><code>oid_size</code></em> will be updated
+with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-dn-by-oid"></a><h3>gnutls_x509_crt_get_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_dn_by_oid       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>
+This function will extract the part of the name of the Certificate
+subject specified by the given OID. The output, if the raw flag is
+not used, will be encoded as described in RFC4514. Thus a string
+that is ASCII or UTF-8 encoded, depending on the certificate data.
+</p>
+<p>
+Some helper macros with popular OIDs can be found in gnutls/x509.h
+If raw flag is (0), this function will only return known OIDs as
+text. Other OIDs will be DER encoded, as described in RFC4514 --
+in hex format with a '#' prefix.  You can check about known OIDs
+using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.
+</p>
+<p>
+If <em class="parameter"><code>buf</code></em> is null then only the size will be filled. If the <em class="parameter"><code>raw_flag</code></em>
+is not specified the output is always null terminated, although the
+<em class="parameter"><code>buf_size</code></em> will not include the null character.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>In case multiple same OIDs exist in the RDN, this specifies which to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>If non (0) returns the raw DER data of the DN part.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer where the DN part will be copied (may be null).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the *buf_size will be updated
+with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-hostname"></a><h3>gnutls_x509_crt_check_hostname ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_check_hostname      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>);</pre>
+<p>
+This function will check if the given certificate's subject matches
+the given hostname.  This is a basic implementation of the matching
+described in RFC2818 (HTTPS), which takes into account wildcards,
+and the DNSName/IPAddress subject alternative name PKIX extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain an gnutls_x509_crt_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hostname</code></em> :</span></p></td>
+<td>A null terminated string that contains a DNS name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>non (0) for a successful match, and (0) on failure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-signature-algorithm"></a><h3>gnutls_x509_crt_get_signature_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_signature_algorithm
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);</pre>
+<p>
+This function will return a value of the <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a>
+enumeration that is the signature algorithm that has been used to
+sign this certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> value, or a negative error code on
+error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-signature"></a><h3>gnutls_x509_crt_get_signature ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_signature       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *sig</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_sig</code></em>);</pre>
+<p>
+This function will extract the signature field of a certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sig</code></em> :</span></p></td>
+<td>a pointer where the signature part will be copied (may be null).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_sig</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>sig</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. and a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-version"></a><h3>gnutls_x509_crt_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_version         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);</pre>
+<p>
+This function will return the version of the specified Certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>version of certificate, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-key-id"></a><h3>gnutls_x509_crt_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_key_id          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will return a unique ID the depends on the public
+key parameters. This ID can be used in checking whether a
+certificate corresponds to the given private key.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*output_data_size is updated and GNUTLS_E_SHORT_MEMORY_BUFFER will
+be returned.  The output will normally be a SHA-1 hash output,
+which is 20 bytes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>should be 0 for now</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain the key ID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>In case of failure a negative error code will be
+returned, and 0 on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-authority-key-id"></a><h3>gnutls_x509_crt_set_authority_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_authority_key_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);</pre>
+<p>
+This function will set the X.509 certificate's authority key ID extension.
+Only the keyIdentifier field can be set with this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>The key ID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id_size</code></em> :</span></p></td>
+<td>Holds the size of the serial field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-authority-key-id"></a><h3>gnutls_x509_crt_get_authority_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_authority_key_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *id_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the X.509v3 certificate authority's key
+identifier.  This is obtained by the X.509 Authority Key
+identifier extension field (2.5.29.35). Note that this function
+only returns the keyIdentifier field of the extension and
+<code class="literal">GNUTLS_E_X509_UNSUPPORTED_EXTENSION</code>, if the extension contains
+the name and serial number of the certificate. In that case
+<code class="function">gnutls_x509_crt_get_authority_key_gn_serial()</code> may be used.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>The place where the identifier will be copied</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id_size</code></em> :</span></p></td>
+<td>Holds the size of the id field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+if the extension is not present, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-key-id"></a><h3>gnutls_x509_crt_get_subject_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_subject_key_id  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the X.509v3 certificate's subject key
+identifier.  This is obtained by the X.509 Subject Key identifier
+extension field (2.5.29.14).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>The place where the identifier will be copied</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret_size</code></em> :</span></p></td>
+<td>Holds the size of the result field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+if the extension is not present, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-UNUSED:CAPS"></a><h3>GNUTLS_CRL_REASON_UNUSED</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_UNUSED 128
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS"></a><h3>GNUTLS_CRL_REASON_KEY_COMPROMISE</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_KEY_COMPROMISE 64
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS"></a><h3>GNUTLS_CRL_REASON_CA_COMPROMISE</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_CA_COMPROMISE 32
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS"></a><h3>GNUTLS_CRL_REASON_AFFILIATION_CHANGED</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_AFFILIATION_CHANGED 16
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-SUPERSEDED:CAPS"></a><h3>GNUTLS_CRL_REASON_SUPERSEDED</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_SUPERSEDED 8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-SUPERSEEDED:CAPS"></a><h3>GNUTLS_CRL_REASON_SUPERSEEDED</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_SUPERSEEDED GNUTLS_CRL_REASON_SUPERSEDED
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS"></a><h3>GNUTLS_CRL_REASON_CESSATION_OF_OPERATION</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_CESSATION_OF_OPERATION 4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS"></a><h3>GNUTLS_CRL_REASON_CERTIFICATE_HOLD</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_CERTIFICATE_HOLD 2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS"></a><h3>GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN 1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS"></a><h3>GNUTLS_CRL_REASON_AA_COMPROMISE</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_AA_COMPROMISE 32768
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-crl-dist-points"></a><h3>gnutls_x509_crt_get_crl_dist_points ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_crl_dist_points (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *reason_flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function retrieves the CRL distribution points (2.5.29.31),
+contained in the given certificate in the X509v3 Certificate
+Extensions.
+</p>
+<p>
+<em class="parameter"><code>reason_flags</code></em> should be an ORed sequence of
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-UNUSED:CAPS" title="GNUTLS_CRL_REASON_UNUSED"><code class="literal">GNUTLS_CRL_REASON_UNUSED</code></a>, <a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_KEY_COMPROMISE"><code class="literal">GNUTLS_CRL_REASON_KEY_COMPROMISE</code></a>,
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_CA_COMPROMISE"><code class="literal">GNUTLS_CRL_REASON_CA_COMPROMISE</code></a>,
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS" title="GNUTLS_CRL_REASON_AFFILIATION_CHANGED"><code class="literal">GNUTLS_CRL_REASON_AFFILIATION_CHANGED</code></a>,
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEEDED:CAPS" title="GNUTLS_CRL_REASON_SUPERSEEDED"><code class="literal">GNUTLS_CRL_REASON_SUPERSEEDED</code></a>,
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS" title="GNUTLS_CRL_REASON_CESSATION_OF_OPERATION"><code class="literal">GNUTLS_CRL_REASON_CESSATION_OF_OPERATION</code></a>,
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS" title="GNUTLS_CRL_REASON_CERTIFICATE_HOLD"><code class="literal">GNUTLS_CRL_REASON_CERTIFICATE_HOLD</code></a>,
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS" title="GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN"><code class="literal">GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN</code></a>,
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS" title="GNUTLS_CRL_REASON_AA_COMPROMISE"><code class="literal">GNUTLS_CRL_REASON_AA_COMPROMISE</code></a>, or (0) for all possible reasons.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the distribution point (0 for the first one, 1 for the second etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>is the place where the distribution point will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret_size</code></em> :</span></p></td>
+<td>holds the size of ret.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>reason_flags</code></em> :</span></p></td>
+<td>Revocation reasons flags.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> and updates <em class="parameter"><code>ret_size</code></em> if
+<em class="parameter"><code>ret_size</code></em> is not enough to hold the distribution point, or the
+type of the distribution point if everything was ok. The type is
+one of the enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><code class="literal">gnutls_x509_subject_alt_name_t</code></a>.  If the
+certificate does not have an Alternative name with the specified
+sequence number then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is
+returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-crl-dist-points2"></a><h3>gnutls_x509_crt_set_crl_dist_points2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_crl_dist_points2
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> reason_flags</code></em>);</pre>
+<p>
+This function will set the CRL distribution points certificate extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>is one of the gnutls_x509_subject_alt_name_t enumerations</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The data to be set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data_size</code></em> :</span></p></td>
+<td>The data size</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>reason_flags</code></em> :</span></p></td>
+<td>revocation reasons</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-crl-dist-points"></a><h3>gnutls_x509_crt_set_crl_dist_points ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_crl_dist_points (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data_string</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> reason_flags</code></em>);</pre>
+<p>
+This function will set the CRL distribution points certificate extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>is one of the gnutls_x509_subject_alt_name_t enumerations</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data_string</code></em> :</span></p></td>
+<td>The data to be set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>reason_flags</code></em> :</span></p></td>
+<td>revocation reasons</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-cpy-crl-dist-points"></a><h3>gnutls_x509_crt_cpy_crl_dist_points ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_cpy_crl_dist_points (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> dst</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> src</code></em>);</pre>
+<p>
+This function will copy the CRL distribution points certificate
+extension, from the source to the destination certificate.
+This may be useful to copy from a CA certificate to issued ones.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dst</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>the certificate where the dist points will be copied from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-activation-time"></a><h3>gnutls_x509_crt_get_activation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_x509_crt_get_activation_time (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);</pre>
+<p>
+This function will return the time this Certificate was or will be
+activated.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>activation time, or (time_t)-1 on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-expiration-time"></a><h3>gnutls_x509_crt_get_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_x509_crt_get_expiration_time (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>);</pre>
+<p>
+This function will return the time this Certificate was or will be
+expired.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>expiration time, or (time_t)-1 on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-serial"></a><h3>gnutls_x509_crt_get_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_serial          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>
+This function will return the X.509 certificate's serial number.
+This is obtained by the X509 Certificate serialNumber field. Serial
+is not always a 32 or 64bit number. Some CAs use large serial
+numbers, thus it may be wise to handle it as something uint8_t.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
+<td>The place where the serial number will be copied</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>result_size</code></em> :</span></p></td>
+<td>Holds the size of the result field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-algorithm"></a><h3>gnutls_x509_crt_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_pk_algorithm    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>
+This function will return the public key algorithm of an X.509
+certificate.
+</p>
+<p>
+If bits is non null, it should have enough size to hold the parameters
+size in bits. For RSA the bits returned is the modulus.
+For DSA the bits returned are of the public
+exponent.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
+<td>if bits is non null it will hold the size of the parameters' in bits</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
+success, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-rsa-raw"></a><h3>gnutls_x509_crt_get_pk_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_pk_rsa_raw      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
+<p>
+This function will export the RSA public key's parameters found in
+the given structure.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>will hold the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>will hold the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-dsa-raw"></a><h3>gnutls_x509_crt_get_pk_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_pk_dsa_raw      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
+<p>
+This function will export the DSA public key's parameters found in
+the given certificate.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the p</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the q</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
+<td>will hold the g</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>will hold the y</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-alt-name"></a><h3>gnutls_x509_crt_get_subject_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_subject_alt_name
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *san</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *san_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function retrieves the Alternative Name (2.5.29.17), contained
+in the given certificate in the X509v3 Certificate Extensions.
+</p>
+<p>
+When the SAN type is otherName, it will extract the data in the
+otherName's value field, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> is returned.
+You may use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid" title="gnutls_x509_crt_get_subject_alt_othername_oid ()"><code class="function">gnutls_x509_crt_get_subject_alt_othername_oid()</code></a> to get
+the corresponding OID and the "virtual" SAN types (e.g.,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>).
+</p>
+<p>
+If an otherName OID is known, the data will be decoded.  Otherwise
+the returned data will be DER encoded, and you will have to decode
+it yourself.  Currently, only the RFC 3920 id-on-xmppAddr SAN is
+recognized.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>san</code></em> :</span></p></td>
+<td>is the place where the alternative name will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>san_size</code></em> :</span></p></td>
+<td>holds the size of san.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the alternative subject name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>.  It will return
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if <em class="parameter"><code>san_size</code></em> is not large enough to
+hold the value.  In that case <em class="parameter"><code>san_size</code></em> will be updated with the
+required size.  If the certificate does not have an Alternative
+name with the specified sequence number then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-alt-name2"></a><h3>gnutls_x509_crt_get_subject_alt_name2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_subject_alt_name2
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *san</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *san_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *san_type</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the alternative names, contained in the
+given certificate. It is the same as
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()"><code class="function">gnutls_x509_crt_get_subject_alt_name()</code></a> except for the fact that it
+will return the type of the alternative name in <em class="parameter"><code>san_type</code></em> even if
+the function fails for some reason (i.e.  the buffer provided is
+not enough).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>san</code></em> :</span></p></td>
+<td>is the place where the alternative name will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>san_size</code></em> :</span></p></td>
+<td>holds the size of ret.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>san_type</code></em> :</span></p></td>
+<td>holds the type of the alternative name (one of gnutls_x509_subject_alt_name_t).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the alternative subject name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>.  It will return
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if <em class="parameter"><code>san_size</code></em> is not large enough
+to hold the value.  In that case <em class="parameter"><code>san_size</code></em> will be updated with
+the required size.  If the certificate does not have an
+Alternative name with the specified sequence number then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-alt-othername-oid"></a><h3>gnutls_x509_crt_get_subject_alt_othername_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_subject_alt_othername_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>
+This function will extract the type OID of an otherName Subject
+Alternative Name, contained in the given certificate, and return
+the type as an enumerated element.
+</p>
+<p>
+This function is only useful if
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()"><code class="function">gnutls_x509_crt_get_subject_alt_name()</code></a> returned
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a>.
+</p>
+<p>
+If <em class="parameter"><code>oid</code></em> is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em> will not
+account for the trailing null.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>is the place where the otherName OID will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid_size</code></em> :</span></p></td>
+<td>holds the size of ret.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the alternative subject name type on success, one of the
+enumerated gnutls_x509_subject_alt_name_t.  For supported OIDs, it
+will return one of the virtual (GNUTLS_SAN_OTHERNAME_*) types,
+e.g. <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> for
+unknown OIDs.  It will return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if
+<em class="parameter"><code>ian_size</code></em> is not large enough to hold the value.  In that case
+<em class="parameter"><code>ian_size</code></em> will be updated with the required size.  If the
+certificate does not have an Alternative name with the specified
+sequence number and with the otherName type then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-alt-name"></a><h3>gnutls_x509_crt_get_issuer_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_issuer_alt_name (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ian</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ian_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function retrieves the Issuer Alternative Name (2.5.29.18),
+contained in the given certificate in the X509v3 Certificate
+Extensions.
+</p>
+<p>
+When the SAN type is otherName, it will extract the data in the
+otherName's value field, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> is returned.
+You may use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid" title="gnutls_x509_crt_get_subject_alt_othername_oid ()"><code class="function">gnutls_x509_crt_get_subject_alt_othername_oid()</code></a> to get
+the corresponding OID and the "virtual" SAN types (e.g.,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>).
+</p>
+<p>
+If an otherName OID is known, the data will be decoded.  Otherwise
+the returned data will be DER encoded, and you will have to decode
+it yourself.  Currently, only the RFC 3920 id-on-xmppAddr Issuer
+AltName is recognized.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ian</code></em> :</span></p></td>
+<td>is the place where the alternative name will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ian_size</code></em> :</span></p></td>
+<td>holds the size of ian.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the alternative issuer name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>.  It will return
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if <em class="parameter"><code>ian_size</code></em> is not large enough
+to hold the value.  In that case <em class="parameter"><code>ian_size</code></em> will be updated with
+the required size.  If the certificate does not have an
+Alternative name with the specified sequence number then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-alt-name2"></a><h3>gnutls_x509_crt_get_issuer_alt_name2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_issuer_alt_name2
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ian</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ian_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *ian_type</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the alternative names, contained in the
+given certificate. It is the same as
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" title="gnutls_x509_crt_get_issuer_alt_name ()"><code class="function">gnutls_x509_crt_get_issuer_alt_name()</code></a> except for the fact that it
+will return the type of the alternative name in <em class="parameter"><code>ian_type</code></em> even if
+the function fails for some reason (i.e.  the buffer provided is
+not enough).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ian</code></em> :</span></p></td>
+<td>is the place where the alternative name will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ian_size</code></em> :</span></p></td>
+<td>holds the size of ret.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ian_type</code></em> :</span></p></td>
+<td>holds the type of the alternative name (one of gnutls_x509_subject_alt_name_t).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the alternative issuer name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>.  It will return
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if <em class="parameter"><code>ian_size</code></em> is not large enough
+to hold the value.  In that case <em class="parameter"><code>ian_size</code></em> will be updated with
+the required size.  If the certificate does not have an
+Alternative name with the specified sequence number then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-alt-othername-oid"></a><h3>gnutls_x509_crt_get_issuer_alt_othername_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_issuer_alt_othername_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>);</pre>
+<p>
+This function will extract the type OID of an otherName Subject
+Alternative Name, contained in the given certificate, and return
+the type as an enumerated element.
+</p>
+<p>
+If <em class="parameter"><code>oid</code></em> is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em> will not
+account for the trailing null.
+</p>
+<p>
+This function is only useful if
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" title="gnutls_x509_crt_get_issuer_alt_name ()"><code class="function">gnutls_x509_crt_get_issuer_alt_name()</code></a> returned
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>is the place where the otherName OID will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret_size</code></em> :</span></p></td>
+<td>holds the size of ret.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the alternative issuer name type on success, one of the
+enumerated gnutls_x509_subject_alt_name_t.  For supported OIDs, it
+will return one of the virtual (GNUTLS_SAN_OTHERNAME_*) types,
+e.g. <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> for
+unknown OIDs.  It will return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if
+<em class="parameter"><code>ret_size</code></em> is not large enough to hold the value.  In that case
+<em class="parameter"><code>ret_size</code></em> will be updated with the required size.  If the
+certificate does not have an Alternative name with the specified
+sequence number and with the otherName type then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-ca-status"></a><h3>gnutls_x509_crt_get_ca_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_ca_status       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return certificates CA status, by reading the
+basicConstraints X.509 extension (2.5.29.19). If the certificate is
+a CA a positive value will be returned, or (0) if the certificate
+does not have CA flag set.
+</p>
+<p>
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-basic-constraints" title="gnutls_x509_crt_get_basic_constraints ()"><code class="function">gnutls_x509_crt_get_basic_constraints()</code></a> if you want to read the
+pathLenConstraint field too.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A negative error code may be returned in case of parsing error.
+If the certificate does not contain the basicConstraints extension
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-basic-constraints"></a><h3>gnutls_x509_crt_get_basic_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_basic_constraints
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *ca</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>);</pre>
+<p>
+This function will read the certificate's basic constraints, and
+return the certificates CA status.  It reads the basicConstraints
+X.509 extension (2.5.29.19).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ca</code></em> :</span></p></td>
+<td>pointer to output integer indicating CA status, may be NULL,
+value is 1 if the certificate CA flag is set, 0 otherwise.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pathlen</code></em> :</span></p></td>
+<td>pointer to output integer indicating path length (may be
+NULL), non-negative error codes indicate a present pathLenConstraint
+field and the actual value, -1 indicate that the field is absent.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>If the certificate is a CA a positive value will be
+returned, or (0) if the certificate does not have CA flag set.  A
+negative error code may be returned in case of errors.  If the
+certificate does not contain the basicConstraints extension
+GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-key-usage"></a><h3>gnutls_x509_crt_get_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_key_usage       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return certificate's key usage, by reading the
+keyUsage X.509 extension (2.5.29.15). The key usage value will ORed
+values of the: <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE"><code class="literal">GNUTLS_KEY_DIGITAL_SIGNATURE</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS" title="GNUTLS_KEY_NON_REPUDIATION"><code class="literal">GNUTLS_KEY_NON_REPUDIATION</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_KEY_ENCIPHERMENT</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_DATA_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_DATA_ENCIPHERMENT</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS" title="GNUTLS_KEY_KEY_AGREEMENT"><code class="literal">GNUTLS_KEY_KEY_AGREEMENT</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS" title="GNUTLS_KEY_KEY_CERT_SIGN"><code class="literal">GNUTLS_KEY_KEY_CERT_SIGN</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS" title="GNUTLS_KEY_CRL_SIGN"><code class="literal">GNUTLS_KEY_CRL_SIGN</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS" title="GNUTLS_KEY_ENCIPHER_ONLY"><code class="literal">GNUTLS_KEY_ENCIPHER_ONLY</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS" title="GNUTLS_KEY_DECIPHER_ONLY"><code class="literal">GNUTLS_KEY_DECIPHER_ONLY</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
+<td>where the key usage bits will be stored</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the certificate key usage, or a negative error code in case of
+parsing error.  If the certificate does not contain the keyUsage
+extension <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be
+returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-key-usage"></a><h3>gnutls_x509_crt_set_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_key_usage       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);</pre>
+<p>
+This function will set the keyUsage certificate extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>usage</code></em> :</span></p></td>
+<td>an ORed sequence of the GNUTLS_KEY_* elements.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-proxy"></a><h3>gnutls_x509_crt_get_proxy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_proxy           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **policyLanguage</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> **policy</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_policy</code></em>);</pre>
+<p>
+This function will get information from a proxy certificate.  It
+reads the ProxyCertInfo X.509 extension (1.3.6.1.5.5.7.1.14).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pathlen</code></em> :</span></p></td>
+<td>pointer to output integer indicating path length (may be
+NULL), non-negative error codes indicate a present pCPathLenConstraint
+field and the actual value, -1 indicate that the field is absent.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>policyLanguage</code></em> :</span></p></td>
+<td>output variable with OID of policy language</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>policy</code></em> :</span></p></td>
+<td>output variable with policy data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_policy</code></em> :</span></p></td>
+<td>output variable size of policy data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-oid-known"></a><h3>gnutls_x509_dn_oid_known ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_dn_oid_known            (<em class="parameter"><code>const <span class="type">char</span> *oid</code></em>);</pre>
+<p>
+This function will inform about known DN OIDs. This is useful since
+functions like <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid" title="gnutls_x509_crt_set_dn_by_oid ()"><code class="function">gnutls_x509_crt_set_dn_by_oid()</code></a> use the information
+on known OIDs to properly encode their input. Object Identifiers
+that are not known are not encoded by these functions, and their
+input is stored directly into the ASN.1 structure. In that case of
+unknown OIDs, you have the responsibility of DER encoding your
+data.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identifier in a null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>1 on known OIDs and 0 otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-oid"></a><h3>gnutls_x509_crt_get_extension_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_extension_oid   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>
+This function will return the requested extension OID in the certificate.
+The extension OID will be stored as a string in the provided buffer.
+</p>
+<p>
+The <em class="parameter"><code>oid</code></em> returned will be null terminated, although <em class="parameter"><code>oid_size</code></em> will not
+account for the trailing null.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which extension OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the OID (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.  If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-by-oid"></a><h3>gnutls_x509_crt_get_extension_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_extension_by_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the extension specified by the OID in the
+certificate.  The extensions will be returned as binary data DER
+encoded, in the provided buffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>In case multiple same OIDs exist in the extensions, this specifies which to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned. If the certificate does not
+contain the specified extension
+GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-info"></a><h3>gnutls_x509_crt_get_extension_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_extension_info  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the requested extension OID in the
+certificate, and the critical flag for it.  The extension OID will
+be stored as a string in the provided buffer.  Use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-data" title="gnutls_x509_crt_get_extension_data ()"><code class="function">gnutls_x509_crt_get_extension_data()</code></a> to extract the data.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+<em class="parameter"><code>oid_size</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be
+returned. The <em class="parameter"><code>oid</code></em> returned will be null terminated, although 
+<em class="parameter"><code>oid_size</code></em> will not account for the trailing null.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which extension OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the OID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid_size</code></em> :</span></p></td>
+<td>initially holds the maximum size of <em class="parameter"><code>oid</code></em>, on return
+holds actual size of <em class="parameter"><code>oid</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>output variable with critical flag, may be NULL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.  If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-data"></a><h3>gnutls_x509_crt_get_extension_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_extension_data  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);</pre>
+<p>
+This function will return the requested extension data in the
+certificate.  The extension data will be stored as a string in the
+provided buffer.
+</p>
+<p>
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-info" title="gnutls_x509_crt_get_extension_info ()"><code class="function">gnutls_x509_crt_get_extension_info()</code></a> to extract the OID and
+critical flag.  Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid" title="gnutls_x509_crt_get_extension_by_oid ()"><code class="function">gnutls_x509_crt_get_extension_by_oid()</code></a> instead,
+if you want to get data indexed by the extension OID rather than
+sequence.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which extension OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the data (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_data</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.  If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-extension-by-oid"></a><h3>gnutls_x509_crt_set_extension_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_extension_by_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> sizeof_buf</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>
+This function will set an the extension, by the specified OID, in
+the certificate.  The extension data should be binary data DER
+encoded.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a DER encoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>should be non (0) if the extension is to be marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-dn-by-oid"></a><h3>gnutls_x509_crt_set_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_dn_by_oid       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);</pre>
+<p>
+This function will set the part of the name of the Certificate
+subject, specified by the given OID. The input string should be
+ASCII or UTF-8 encoded.
+</p>
+<p>
+Some helper macros with popular OIDs can be found in gnutls/x509.h
+With this function you can only set the known OIDs. You can test
+for known OIDs using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>. For OIDs that are
+not known (by gnutls) you should properly DER encode your data,
+and call this function with <em class="parameter"><code>raw_flag</code></em> set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identifier in a null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>must be 0, or 1 if the data are DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>a pointer to the name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_name</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>name</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-issuer-dn-by-oid"></a><h3>gnutls_x509_crt_set_issuer_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_issuer_dn_by_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);</pre>
+<p>
+This function will set the part of the name of the Certificate
+issuer, specified by the given OID.  The input string should be
+ASCII or UTF-8 encoded.
+</p>
+<p>
+Some helper macros with popular OIDs can be found in gnutls/x509.h
+With this function you can only set the known OIDs. You can test
+for known OIDs using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>. For OIDs that are
+not known (by gnutls) you should properly DER encode your data,
+and call this function with <em class="parameter"><code>raw_flag</code></em> set.
+</p>
+<p>
+Normally you do not need to call this function, since the signing
+operation will copy the signer's name as the issuer of the
+certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identifier in a null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>must be 0, or 1 if the data are DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>a pointer to the name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_name</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>name</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-version"></a><h3>gnutls_x509_crt_set_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_version         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> version</code></em>);</pre>
+<p>
+This function will set the version of the certificate.  This must
+be one for X.509 version 1, and so on.  Plain certificates without
+extensions must have version set to one.
+</p>
+<p>
+To create well-formed certificates, you must specify version 3 if
+you use any certificate extensions.  Extensions are created by
+functions such as <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" title="gnutls_x509_crt_set_subject_alt_name ()"><code class="function">gnutls_x509_crt_set_subject_alt_name()</code></a>
+or <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key-usage" title="gnutls_x509_crt_set_key_usage ()"><code class="function">gnutls_x509_crt_set_key_usage()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>version</code></em> :</span></p></td>
+<td>holds the version number. For X.509v1 certificates must be 1.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-key"></a><h3>gnutls_x509_crt_set_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_key             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);</pre>
+<p>
+This function will set the public parameters from the given
+private key to the certificate. Only RSA keys are currently
+supported.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>holds a private key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-ca-status"></a><h3>gnutls_x509_crt_set_ca_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_ca_status       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> ca</code></em>);</pre>
+<p>
+This function will set the basicConstraints certificate extension.
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-basic-constraints" title="gnutls_x509_crt_set_basic_constraints ()"><code class="function">gnutls_x509_crt_set_basic_constraints()</code></a> if you want to control
+the pathLenConstraint field too.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ca</code></em> :</span></p></td>
+<td>true(1) or false(0). Depending on the Certificate authority status.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-basic-constraints"></a><h3>gnutls_x509_crt_set_basic_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_basic_constraints
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> ca</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> pathLenConstraint</code></em>);</pre>
+<p>
+This function will set the basicConstraints certificate extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ca</code></em> :</span></p></td>
+<td>true(1) or false(0). Depending on the Certificate authority status.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pathLenConstraint</code></em> :</span></p></td>
+<td>non-negative error codes indicate maximum length of path,
+and negative error codes indicate that the pathLenConstraints field should
+not be present.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-subject-alternative-name"></a><h3>gnutls_x509_crt_set_subject_alternative_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_subject_alternative_name
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *data_string</code></em>);</pre>
+<p>
+This function will set the subject alternative name certificate
+extension. This function assumes that data can be expressed as a null
+terminated string.
+</p>
+<p>
+The name of the function is unfortunate since it is incosistent with
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()"><code class="function">gnutls_x509_crt_get_subject_alt_name()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>is one of the gnutls_x509_subject_alt_name_t enumerations</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data_string</code></em> :</span></p></td>
+<td>The data to be set, a (0) terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-subject-alt-name"></a><h3>gnutls_x509_crt_set_subject_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_subject_alt_name
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will set the subject alternative name certificate
+extension. It can set the following types:
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>: as a text string
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>: as a text string
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS"><code class="literal">GNUTLS_SAN_URI</code></a>: as a text string
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"><code class="literal">GNUTLS_SAN_IPADDRESS</code></a>: as a binary IP address (4 or 16 bytes)
+</p>
+<p>
+Other values can be set as binary values with the proper DER encoding.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>is one of the gnutls_x509_subject_alt_name_t enumerations</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The data to be set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data_size</code></em> :</span></p></td>
+<td>The size of data to be set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>GNUTLS_FSAN_SET to clear previous data or GNUTLS_FSAN_APPEND to append.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-sign"></a><h3>gnutls_x509_crt_sign ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_sign                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> issuer_key</code></em>);</pre>
+<p>
+This function is the same a <a class="link" href="gnutls-x509.html#gnutls-x509-crt-sign2" title="gnutls_x509_crt_sign2 ()"><code class="function">gnutls_x509_crt_sign2()</code></a> with no flags,
+and SHA1 as the hash algorithm.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>issuer</code></em> :</span></p></td>
+<td>is the certificate of the certificate issuer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>issuer_key</code></em> :</span></p></td>
+<td>holds the issuer's private key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-sign2"></a><h3>gnutls_x509_crt_sign2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_sign2               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> issuer_key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will sign the certificate with the issuer's private key, and
+will copy the issuer's information into the certificate.
+</p>
+<p>
+This must be the last step in a certificate generation since all
+the previously set parameters are now signed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>issuer</code></em> :</span></p></td>
+<td>is the certificate of the certificate issuer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>issuer_key</code></em> :</span></p></td>
+<td>holds the issuer's private key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dig</code></em> :</span></p></td>
+<td>The message digest to use, <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA1:CAPS"><code class="literal">GNUTLS_DIG_SHA1</code></a> is a safe choice</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>must be 0</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-activation-time"></a><h3>gnutls_x509_crt_set_activation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_activation_time (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> act_time</code></em>);</pre>
+<p>
+This function will set the time this Certificate was or will be
+activated.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>act_time</code></em> :</span></p></td>
+<td>The actual time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-expiration-time"></a><h3>gnutls_x509_crt_set_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_expiration_time (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> exp_time</code></em>);</pre>
+<p>
+This function will set the time this Certificate will expire.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>exp_time</code></em> :</span></p></td>
+<td>The actual time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-serial"></a><h3>gnutls_x509_crt_set_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_serial          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *serial</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> serial_size</code></em>);</pre>
+<p>
+This function will set the X.509 certificate's serial number.
+Serial is not always a 32 or 64bit number.  Some CAs use large
+serial numbers, thus it may be wise to handle it as something
+uint8_t.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serial</code></em> :</span></p></td>
+<td>The serial number</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serial_size</code></em> :</span></p></td>
+<td>Holds the size of the serial field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-subject-key-id"></a><h3>gnutls_x509_crt_set_subject_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_subject_key_id  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);</pre>
+<p>
+This function will set the X.509 certificate's subject key ID
+extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>The key ID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id_size</code></em> :</span></p></td>
+<td>Holds the size of the serial field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-proxy-dn"></a><h3>gnutls_x509_crt_set_proxy_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_proxy_dn        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> eecrt</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);</pre>
+<p>
+This function will set the subject in <em class="parameter"><code>crt</code></em> to the end entity's
+<em class="parameter"><code>eecrt</code></em> subject name, and add a single Common Name component <em class="parameter"><code>name</code></em>
+of size <em class="parameter"><code>sizeof_name</code></em>.  This corresponds to the required proxy
+certificate naming style.  Note that if <em class="parameter"><code>name</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, you MUST
+set it later by using <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid" title="gnutls_x509_crt_set_dn_by_oid ()"><code class="function">gnutls_x509_crt_set_dn_by_oid()</code></a> or similar.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a gnutls_x509_crt_t structure with the new proxy cert</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>eecrt</code></em> :</span></p></td>
+<td>the end entity certificate that will be issuing the proxy</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>must be 0, or 1 if the CN is DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>a pointer to the CN name, may be NULL (but MUST then be added later)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_name</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>name</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-proxy"></a><h3>gnutls_x509_crt_set_proxy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_proxy           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> pathLenConstraint</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *policyLanguage</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *policy</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> sizeof_policy</code></em>);</pre>
+<p>
+This function will set the proxyCertInfo extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pathLenConstraint</code></em> :</span></p></td>
+<td>non-negative error codes indicate maximum length of path,
+and negative error codes indicate that the pathLenConstraints field should
+not be present.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>policyLanguage</code></em> :</span></p></td>
+<td>OID describing the language of <em class="parameter"><code>policy</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>policy</code></em> :</span></p></td>
+<td>uint8_t byte array with policy language, can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_policy</code></em> :</span></p></td>
+<td>size of <em class="parameter"><code>policy</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-print"></a><h3>gnutls_x509_crt_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_print               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);</pre>
+<p>
+This function will pretty print a X.509 certificate, suitable for
+display to a human.
+</p>
+<p>
+If the format is <a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-PRINT-FULL:CAPS"><code class="literal">GNUTLS_CRT_PRINT_FULL</code></a> then all fields of the
+certificate will be output, on multiple lines.  The
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-PRINT-ONELINE:CAPS"><code class="literal">GNUTLS_CRT_PRINT_ONELINE</code></a> format will generate one line with some
+selected fields, which is useful for logging purposes.
+</p>
+<p>
+The output <em class="parameter"><code>out</code></em> needs to be deallocate using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>The structure to be printed</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>Indicate the format to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>out</code></em> :</span></p></td>
+<td>Newly allocated datum with (0) terminated string.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-print"></a><h3>gnutls_x509_crl_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_print               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);</pre>
+<p>
+This function will pretty print a X.509 certificate revocation
+list, suitable for display to a human.
+</p>
+<p>
+The output <em class="parameter"><code>out</code></em> needs to be deallocate using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>The structure to be printed</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>Indicate the format to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>out</code></em> :</span></p></td>
+<td>Newly allocated datum with (0) terminated string.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-raw-issuer-dn"></a><h3>gnutls_x509_crt_get_raw_issuer_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_raw_issuer_dn   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *start</code></em>);</pre>
+<p>
+This function will return a pointer to the DER encoded DN structure
+and the length. This points to allocated data that must be free'd using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>will hold the starting point of the DN</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-raw-dn"></a><h3>gnutls_x509_crt_get_raw_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_raw_dn          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *start</code></em>);</pre>
+<p>
+This function will return a pointer to the DER encoded DN structure and
+the length. This points to allocated data that must be free'd using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>will hold the starting point of the DN</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-rdn-get"></a><h3>gnutls_x509_rdn_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_rdn_get                 (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *idn</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+This function will return the name of the given RDN sequence.  The
+name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as described in
+RFC4514.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idn</code></em> :</span></p></td>
+<td>should contain a DER encoded RDN sequence</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the peer's name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, or
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> is returned and *<em class="parameter"><code>sizeof_buf</code></em> is
+updated if the provided buffer is not long enough, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-rdn-get-oid"></a><h3>gnutls_x509_rdn_get_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_rdn_get_oid             (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *idn</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+This function will return the specified Object identifier, of the
+RDN sequence.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idn</code></em> :</span></p></td>
+<td>should contain a DER encoded RDN sequence</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Indicates which OID to return. Use 0 for the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the peer's name OID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, or
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> is returned and *<em class="parameter"><code>sizeof_buf</code></em> is
+updated if the provided buffer is not long enough, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-rdn-get-by-oid"></a><h3>gnutls_x509_rdn_get_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_rdn_get_by_oid          (<em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *idn</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+This function will return the name of the given Object identifier,
+of the RDN sequence.  The name will be encoded using the rules
+from RFC4514.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idn</code></em> :</span></p></td>
+<td>should contain a DER encoded RDN sequence</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>an Object Identifier</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>In case multiple same OIDs exist in the RDN indicates which
+to send. Use 0 for the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>If non (0) then the raw DER data are returned.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the peer's name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, or
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> is returned and *<em class="parameter"><code>sizeof_buf</code></em> is
+updated if the provided buffer is not long enough, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-t"></a><h3>gnutls_x509_dn_t</h3>
+<pre class="programlisting">  typedef void *gnutls_x509_dn_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject"></a><h3>gnutls_x509_crt_get_subject ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_subject         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);</pre>
+<p>
+Return the Certificate's Subject DN as an uint8_t data type.  You
+may use <a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()"><code class="function">gnutls_x509_dn_get_rdn_ava()</code></a> to decode the DN. 
+</p>
+<p>
+Note that <em class="parameter"><code>dn</code></em> should be treated as constant. Because points 
+into the <em class="parameter"><code>cert</code></em> object, you may not deallocate <em class="parameter"><code>cert</code></em> 
+and continue to access <em class="parameter"><code>dn</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dn</code></em> :</span></p></td>
+<td>output variable with pointer to uint8_t DN.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Returns 0 on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer"></a><h3>gnutls_x509_crt_get_issuer ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_issuer          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);</pre>
+<p>
+Return the Certificate's Issuer DN as an uint8_t data type.  You may
+use <a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()"><code class="function">gnutls_x509_dn_get_rdn_ava()</code></a> to decode the DN.
+</p>
+<p>
+Note that <em class="parameter"><code>dn</code></em> should be treated as constant. Because points 
+into the <em class="parameter"><code>cert</code></em> object, you may not deallocate <em class="parameter"><code>cert</code></em> 
+and continue to access <em class="parameter"><code>dn</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dn</code></em> :</span></p></td>
+<td>output variable with pointer to uint8_t DN</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Returns 0 on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-get-rdn-ava"></a><h3>gnutls_x509_dn_get_rdn_ava ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_dn_get_rdn_ava          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> irdn</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> iava</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_x509_ava_st</span> *ava</code></em>);</pre>
+<p>
+Get pointers to data within the DN.
+</p>
+<p>
+Note that <em class="parameter"><code>ava</code></em> will contain pointers into the <em class="parameter"><code>dn</code></em> structure, so you
+should not modify any data or deallocate it.  Note also that the DN
+in turn points into the original certificate structure, and thus
+you may not deallocate the certificate and continue to access <em class="parameter"><code>dn</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dn</code></em> :</span></p></td>
+<td>input variable with uint8_t DN pointer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>irdn</code></em> :</span></p></td>
+<td>index of RDN</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>iava</code></em> :</span></p></td>
+<td>index of AVA.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ava</code></em> :</span></p></td>
+<td>Pointer to structure which will hold output information.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Returns 0 on success, or an error code.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-init"></a><h3>gnutls_x509_dn_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_dn_init                 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);</pre>
+<p>
+This function initializes a <a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> structure.
+</p>
+<p>
+The object returned must be deallocated using
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-deinit" title="gnutls_x509_dn_deinit ()"><code class="function">gnutls_x509_dn_deinit()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dn</code></em> :</span></p></td>
+<td>the object to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-import"></a><h3>gnutls_x509_dn_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_dn_import               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>);</pre>
+<p>
+This function parses an RDN sequence and stores the result to a
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> structure. The structure must have been initialized
+with <a class="link" href="gnutls-x509.html#gnutls-x509-dn-init" title="gnutls_x509_dn_init ()"><code class="function">gnutls_x509_dn_init()</code></a>. You may use <a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()"><code class="function">gnutls_x509_dn_get_rdn_ava()</code></a> to
+decode the DN.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dn</code></em> :</span></p></td>
+<td>the structure that will hold the imported DN</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>should contain a DER encoded RDN sequence</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-export"></a><h3>gnutls_x509_dn_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_dn_export               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the DN to DER or PEM format.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>output_data_size</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a>
+will be returned.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header
+of "BEGIN NAME".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dn</code></em> :</span></p></td>
+<td>Holds the uint8_t DN object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of output params. One of PEM or DER.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a DN PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-deinit"></a><h3>gnutls_x509_dn_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_x509_dn_deinit               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>);</pre>
+<p>
+This function deallocates the DN object as returned by
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-import" title="gnutls_x509_dn_import ()"><code class="function">gnutls_x509_dn_import()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>dn</code></em> :</span></p></td>
+<td>a DN uint8_t object pointer.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-init"></a><h3>gnutls_x509_crl_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_init                (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl</code></em>);</pre>
+<p>
+This function will initialize a CRL structure. CRL stands for
+Certificate Revocation List. A revocation list usually contains
+lists of certificate serial numbers that have been revoked by an
+Authority. The revocation lists are always signed with the
+authority's private key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-deinit"></a><h3>gnutls_x509_crl_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_x509_crl_deinit              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>
+This function will deinitialize a CRL structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-import"></a><h3>gnutls_x509_crl_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_import              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This function will convert the given DER or PEM encoded CRL
+to the native <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> format. The output will be stored in 'crl'.
+</p>
+<p>
+If the CRL is PEM encoded it should have a header of "X509 CRL".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>The structure to store the parsed CRL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The DER or PEM encoded CRL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of DER or PEM</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-export"></a><h3>gnutls_x509_crl_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_export              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the revocation list to DER or PEM format.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be returned.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header
+of "BEGIN X509 CRL".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>Holds the revocation list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of output params. One of PEM or DER.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a private key PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will
+be replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. and a negative error code on failure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-issuer-dn"></a><h3>gnutls_x509_crl_get_issuer_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_issuer_dn       (<em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+This function will copy the name of the CRL issuer in the provided
+buffer. The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.
+</p>
+<p>
+If buf is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then only the size will be filled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the peer's name (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the sizeof_buf will be updated
+with the required size, and 0 on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-issuer-dn-by-oid"></a><h3>gnutls_x509_crl_get_issuer_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_issuer_dn_by_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+This function will extract the part of the name of the CRL issuer
+specified by the given OID. The output will be encoded as described
+in RFC4514. The output string will be ASCII or UTF-8 encoded,
+depending on the certificate data.
+</p>
+<p>
+Some helper macros with popular OIDs can be found in gnutls/x509.h
+If raw flag is (0), this function will only return known OIDs as
+text. Other OIDs will be DER encoded, as described in RFC4514 -- in
+hex format with a '#' prefix.  You can check about known OIDs
+using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.
+</p>
+<p>
+If buf is null then only the size will be filled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>In case multiple same OIDs exist in the RDN, this specifies which to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>If non (0) returns the raw DER data of the DN part.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the peer's name (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the sizeof_buf will be updated
+with the required size, and 0 on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-dn-oid"></a><h3>gnutls_x509_crl_get_dn_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_dn_oid          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);</pre>
+<p>
+This function will extract the requested OID of the name of the CRL
+issuer, specified by the given index.
+</p>
+<p>
+If oid is null then only the size will be filled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which DN OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_oid</code></em> :</span></p></td>
+<td>initially holds the size of 'oid'</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the sizeof_oid will be updated
+with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-signature-algorithm"></a><h3>gnutls_x509_crl_get_signature_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_signature_algorithm
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>
+This function will return a value of the <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a>
+enumeration that is the signature algorithm.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-signature"></a><h3>gnutls_x509_crl_get_signature ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_signature       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *sig</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_sig</code></em>);</pre>
+<p>
+This function will extract the signature field of a CRL.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sig</code></em> :</span></p></td>
+<td>a pointer where the signature part will be copied (may be null).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_sig</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>sig</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. and a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-version"></a><h3>gnutls_x509_crl_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_version         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>
+This function will return the version of the specified CRL.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The version number, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-this-update"></a><h3>gnutls_x509_crl_get_this_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_x509_crl_get_this_update     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>
+This function will return the time this CRL was issued.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>when the CRL was issued, or (time_t)-1 on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-next-update"></a><h3>gnutls_x509_crl_get_next_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_x509_crl_get_next_update     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>
+This function will return the time the next CRL will be issued.
+This field is optional in a CRL so it might be normal to get an
+error instead.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>when the next CRL will be issued, or (time_t)-1 on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-crt-count"></a><h3>gnutls_x509_crl_get_crt_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_crt_count       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>
+This function will return the number of revoked certificates in the
+given CRL.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>number of certificates, a negative error code on failure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-crt-serial"></a><h3>gnutls_x509_crl_get_crt_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_crt_serial      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *serial</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *serial_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> *t</code></em>);</pre>
+<p>
+This function will retrieve the serial number of the specified, by
+the index, revoked certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>the index of the certificate to extract (starting from 0)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serial</code></em> :</span></p></td>
+<td>where the serial number will be copied</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serial_size</code></em> :</span></p></td>
+<td>initially holds the size of serial</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
+<td>if non null, will hold the time this certificate was revoked</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value. and a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-certificate-count"></a><h3>gnutls_x509_crl_get_certificate_count</h3>
+<pre class="programlisting">#define gnutls_x509_crl_get_certificate_count gnutls_x509_crl_get_crt_count
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-certificate"></a><h3>gnutls_x509_crl_get_certificate</h3>
+<pre class="programlisting">#define gnutls_x509_crl_get_certificate gnutls_x509_crl_get_crt_serial
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-check-issuer"></a><h3>gnutls_x509_crl_check_issuer ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_check_issuer        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>);</pre>
+<p>
+This function will check if the given CRL was issued by the given
+issuer certificate.  It will return true (1) if the given CRL was
+issued by the given issuer, and false (0) if not.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>is the CRL to be checked</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>issuer</code></em> :</span></p></td>
+<td>is the certificate of a possible issuer</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-version"></a><h3>gnutls_x509_crl_set_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_set_version         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> version</code></em>);</pre>
+<p>
+This function will set the version of the CRL. This
+must be one for CRL version 1, and so on. The CRLs generated
+by gnutls should have a version number of 2.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>version</code></em> :</span></p></td>
+<td>holds the version number. For CRLv1 crls must be 1.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-sign2"></a><h3>gnutls_x509_crl_sign2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_sign2               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> issuer_key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will sign the CRL with the issuer's private key, and
+will copy the issuer's information into the CRL.
+</p>
+<p>
+This must be the last step in a certificate CRL since all
+the previously set parameters are now signed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>issuer</code></em> :</span></p></td>
+<td>is the certificate of the certificate issuer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>issuer_key</code></em> :</span></p></td>
+<td>holds the issuer's private key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dig</code></em> :</span></p></td>
+<td>The message digest to use. GNUTLS_DIG_SHA1 is the safe choice unless you know what you're doing.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>must be 0</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-this-update"></a><h3>gnutls_x509_crl_set_this_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_set_this_update     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> act_time</code></em>);</pre>
+<p>
+This function will set the time this CRL was issued.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>act_time</code></em> :</span></p></td>
+<td>The actual time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-next-update"></a><h3>gnutls_x509_crl_set_next_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_set_next_update     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> exp_time</code></em>);</pre>
+<p>
+This function will set the time this CRL will be updated.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>exp_time</code></em> :</span></p></td>
+<td>The actual time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-crt-serial"></a><h3>gnutls_x509_crl_set_crt_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_set_crt_serial      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *serial</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> serial_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> revocation_time</code></em>);</pre>
+<p>
+This function will set a revoked certificate's serial number to the CRL.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serial</code></em> :</span></p></td>
+<td>The revoked certificate's serial number</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serial_size</code></em> :</span></p></td>
+<td>Holds the size of the serial field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>revocation_time</code></em> :</span></p></td>
+<td>The time this certificate was revoked</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-crt"></a><h3>gnutls_x509_crl_set_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_set_crt             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><span class="type">time_t</span> revocation_time</code></em>);</pre>
+<p>
+This function will set a revoked certificate's serial number to the CRL.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crl_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> with the revoked certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>revocation_time</code></em> :</span></p></td>
+<td>The time this certificate was revoked</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-authority-key-id"></a><h3>gnutls_x509_crl_get_authority_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_authority_key_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *id_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the CRL authority's key identifier.  This
+is obtained by the X.509 Authority Key identifier extension field
+(2.5.29.35).  Note that this function 
+only returns the keyIdentifier field of the extension and
+<code class="literal">GNUTLS_E_X509_UNSUPPORTED_EXTENSION</code>, if the extension contains
+the name and serial number of the certificate. In that case
+<code class="function">gnutls_x509_crl_get_authority_key_gn_serial()</code> may be used.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>The place where the identifier will be copied</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id_size</code></em> :</span></p></td>
+<td>Holds the size of the result field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical
+(may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-number"></a><h3>gnutls_x509_crl_get_number ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_number          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the CRL number extension.  This is
+obtained by the CRL Number extension field (2.5.29.20).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>The place where the number will be copied</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret_size</code></em> :</span></p></td>
+<td>Holds the size of the result field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical
+(may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-extension-oid"></a><h3>gnutls_x509_crl_get_extension_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_extension_oid   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);</pre>
+<p>
+This function will return the requested extension OID in the CRL.
+The extension OID will be stored as a string in the provided
+buffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which extension OID to send, use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the OID (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_oid</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.  If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-extension-info"></a><h3>gnutls_x509_crl_get_extension_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_extension_info  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the requested extension OID in the CRL,
+and the critical flag for it.  The extension OID will be stored as
+a string in the provided buffer.  Use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-data" title="gnutls_x509_crl_get_extension_data ()"><code class="function">gnutls_x509_crl_get_extension_data()</code></a> to extract the data.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>sizeof_oid</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be
+returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which extension OID to send, use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the OID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_oid</code></em> :</span></p></td>
+<td>initially holds the maximum size of <em class="parameter"><code>oid</code></em>, on return
+holds actual size of <em class="parameter"><code>oid</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>output variable with critical flag, may be NULL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.  If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-extension-data"></a><h3>gnutls_x509_crl_get_extension_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_get_extension_data  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);</pre>
+<p>
+This function will return the requested extension data in the CRL.
+The extension data will be stored as a string in the provided
+buffer.
+</p>
+<p>
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-info" title="gnutls_x509_crl_get_extension_info ()"><code class="function">gnutls_x509_crl_get_extension_info()</code></a> to extract the OID and
+critical flag.  Use <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-info" title="gnutls_x509_crl_get_extension_info ()"><code class="function">gnutls_x509_crl_get_extension_info()</code></a> instead,
+if you want to get data indexed by the extension OID rather than
+sequence.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which extension OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the data (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_data</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.  If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-authority-key-id"></a><h3>gnutls_x509_crl_set_authority_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_set_authority_key_id
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *id</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);</pre>
+<p>
+This function will set the CRL's authority key ID extension.  Only
+the keyIdentifier field can be set with this function. This may
+be used by an authority that holds multiple private keys, to distinguish
+the used key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>a CRL of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>The key ID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id_size</code></em> :</span></p></td>
+<td>Holds the size of the serial field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-number"></a><h3>gnutls_x509_crl_set_number ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_set_number          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *nr</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> nr_size</code></em>);</pre>
+<p>
+This function will set the CRL's number extension. This
+is to be used as a unique and monotonic number assigned to
+the CRL by the authority.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>a CRL of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nr</code></em> :</span></p></td>
+<td>The CRL number</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nr_size</code></em> :</span></p></td>
+<td>Holds the size of the nr field.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-int"></a><h3>struct gnutls_pkcs7_int</h3>
+<pre class="programlisting">struct gnutls_pkcs7_int;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-t"></a><h3>gnutls_pkcs7_t</h3>
+<pre class="programlisting">  typedef struct gnutls_pkcs7_int *gnutls_pkcs7_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-init"></a><h3>gnutls_pkcs7_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_init                   (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> *pkcs7</code></em>);</pre>
+<p>
+This function will initialize a PKCS7 structure. PKCS7 structures
+usually contain lists of X.509 Certificates and X.509 Certificate
+revocation lists.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-deinit"></a><h3>gnutls_pkcs7_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs7_deinit                 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>);</pre>
+<p>
+This function will deinitialize a PKCS7 structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-import"></a><h3>gnutls_pkcs7_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_import                 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This function will convert the given DER or PEM encoded PKCS7 to
+the native <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> format.  The output will be stored in
+<em class="parameter"><code>pkcs7</code></em>.
+</p>
+<p>
+If the PKCS7 is PEM encoded it should have a header of "PKCS7".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>The structure to store the parsed PKCS7.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The DER or PEM encoded PKCS7.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of DER or PEM</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-export"></a><h3>gnutls_pkcs7_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_export                 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the pkcs7 structure to DER or PEM format.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>output_data_size</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a>
+will be returned.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header
+of "BEGIN PKCS7".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>Holds the pkcs7 structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of output params. One of PEM or DER.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a structure PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-get-crt-count"></a><h3>gnutls_pkcs7_get_crt_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_get_crt_count          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>);</pre>
+<p>
+This function will return the number of certifcates in the PKCS7
+or RFC2630 certificate set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-get-crt-raw"></a><h3>gnutls_pkcs7_get_crt_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_get_crt_raw            (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *certificate</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *certificate_size</code></em>);</pre>
+<p>
+This function will return a certificate of the PKCS7 or RFC2630
+certificate set.
+</p>
+<p>
+After the last certificate has been read
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a gnutls_pkcs7_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>contains the index of the certificate to extract</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>certificate</code></em> :</span></p></td>
+<td>the contents of the certificate will be copied
+there (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>certificate_size</code></em> :</span></p></td>
+<td>should hold the size of the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.  If the provided buffer is not long enough,
+then <em class="parameter"><code>certificate_size</code></em> is updated and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-set-crt-raw"></a><h3>gnutls_pkcs7_set_crt_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_set_crt_raw            (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *crt</code></em>);</pre>
+<p>
+This function will add a certificate to the PKCS7 or RFC2630
+certificate set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>the DER encoded certificate to be added</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-set-crt"></a><h3>gnutls_pkcs7_set_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_set_crt                (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>);</pre>
+<p>
+This function will add a parsed certificate to the PKCS7 or
+RFC2630 certificate set.  This is a wrapper function over
+<a class="link" href="gnutls-x509.html#gnutls-pkcs7-set-crt-raw" title="gnutls_pkcs7_set_crt_raw ()"><code class="function">gnutls_pkcs7_set_crt_raw()</code></a> .
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>the certificate to be copied.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-delete-crt"></a><h3>gnutls_pkcs7_delete_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_delete_crt             (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>);</pre>
+<p>
+This function will delete a certificate from a PKCS7 or RFC2630
+certificate set.  Index starts from 0. Returns 0 on success.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a gnutls_pkcs7_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>the index of the certificate to delete</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-get-crl-raw"></a><h3>gnutls_pkcs7_get_crl_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_get_crl_raw            (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *crl</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *crl_size</code></em>);</pre>
+<p>
+This function will return a crl of the PKCS7 or RFC2630 crl set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>contains the index of the crl to extract</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>the contents of the crl will be copied there (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl_size</code></em> :</span></p></td>
+<td>should hold the size of the crl</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.  If the provided buffer is not long enough,
+then <em class="parameter"><code>crl_size</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> is
+returned.  After the last crl has been read
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-get-crl-count"></a><h3>gnutls_pkcs7_get_crl_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_get_crl_count          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>);</pre>
+<p>
+This function will return the number of certifcates in the PKCS7
+or RFC2630 crl set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a gnutls_pkcs7_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-set-crl-raw"></a><h3>gnutls_pkcs7_set_crl_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_set_crl_raw            (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *crl</code></em>);</pre>
+<p>
+This function will add a crl to the PKCS7 or RFC2630 crl set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>the DER encoded crl to be added</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-set-crl"></a><h3>gnutls_pkcs7_set_crl ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_set_crl                (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>
+This function will add a parsed CRL to the PKCS7 or RFC2630 crl
+set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>the DER encoded crl to be added</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs7-delete-crl"></a><h3>gnutls_pkcs7_delete_crl ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pkcs7_delete_crl             (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> pkcs7</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>);</pre>
+<p>
+This function will delete a crl from a PKCS7 or RFC2630 crl set.
+Index starts from 0. Returns 0 on success.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pkcs7</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-pkcs7-t" title="gnutls_pkcs7_t"><span class="type">gnutls_pkcs7_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>the index of the crl to delete</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-verify-flags"></a><h3>enum gnutls_certificate_verify_flags</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_VERIFY_DISABLE_CA_SIGN = 1,
+    GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT = 2,
+    GNUTLS_VERIFY_DO_NOT_ALLOW_SAME = 4,
+    GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT = 8,
+    GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2 = 16,
+    GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5 = 32,
+    GNUTLS_VERIFY_DISABLE_TIME_CHECKS = 64,
+    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;
+</pre>
+<p>
+Enumeration of different certificate verify flags.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-DISABLE-CA-SIGN:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_DISABLE_CA_SIGN</code></span></p></td>
+<td>If set a signer does not have to be
+  a certificate authority. This flag should normaly be disabled,
+  unless you know what this means.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-ALLOW-X509-V1-CA-CRT:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT</code></span></p></td>
+<td>Allow trusted CA certificates
+  with version 1. This is safer than <a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-ANY-X509-V1-CA-CRT:CAPS"><code class="literal">GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT</code></a>,
+  and should be used instead. That way only signers in your trusted list
+  will be allowed to have certificates of version 1. This is the default.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-DO-NOT-ALLOW-SAME:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_DO_NOT_ALLOW_SAME</code></span></p></td>
+<td>If a certificate is not signed by
+  anyone trusted but exists in the trusted CA list do not treat it
+  as trusted.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-ALLOW-ANY-X509-V1-CA-CRT:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT</code></span></p></td>
+<td>Allow CA certificates that
+  have version 1 (both root and intermediate). This might be
+  dangerous since those haven't the basicConstraints
+  extension. Must be used in combination with
+  <a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-X509-V1-CA-CRT:CAPS"><code class="literal">GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT</code></a>.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD2:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2</code></span></p></td>
+<td>Allow certificates to be signed
+  using the broken MD2 algorithm.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD5:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5</code></span></p></td>
+<td>Allow certificates to be signed
+  using the broken MD5 algorithm.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-DISABLE-TIME-CHECKS:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_DISABLE_TIME_CHECKS</code></span></p></td>
+<td>Disable checking of activation
+  and expiration validity periods of certificate chains. Don't set
+  this unless you understand the security implications.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-DISABLE-TRUSTED-TIME-CHECKS:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS</code></span></p></td>
+<td>If set a signer in the trusted
+  list is never checked for expiration or activation.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-DO-NOT-ALLOW-X509-V1-CA-CRT:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT</code></span></p></td>
+<td>Do not allow trusted CA
+  certificates that have version 1.  This option is to be used
+  to deprecate all certificates of version 1.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-DISABLE-CRL-CHECKS:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_DISABLE_CRL_CHECKS</code></span></p></td>
+<td>Disable checking for validity
+  using certificate revocation lists.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-VERIFY-ALLOW-UNSORTED-CHAIN:CAPS"></a><span class="term"><code class="literal">GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN</code></span></p></td>
+<td>A certificate chain is tolerated
+  if unsorted (the case with many TLS servers out there).
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-issuer"></a><h3>gnutls_x509_crt_check_issuer ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_check_issuer        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>);</pre>
+<p>
+This function will check if the given certificate was issued by the
+given issuer. It checks the DN fields and the authority
+key identifier and subject key identifier fields match.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>is the certificate to be checked</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>issuer</code></em> :</span></p></td>
+<td>is the certificate of a possible issuer</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>It will return true (1) if the given certificate is issued
+by the given issuer, and false (0) if not.  A negative error code is
+returned in case of an error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-list-verify"></a><h3>gnutls_x509_crt_list_verify ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_list_verify         (<em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *cert_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> cert_list_length</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *CA_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> CA_list_length</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *CRL_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> CRL_list_length</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<p>
+This function will try to verify the given certificate list and
+return its status.  If no flags are specified (0), this function
+will use the basicConstraints (2.5.29.19) PKIX extension. This
+means that only a certificate authority is allowed to sign a
+certificate.
+</p>
+<p>
+You must also check the peer's name in order to check if the verified
+certificate belongs to the actual peer.
+</p>
+<p>
+The certificate verification output will be put in <em class="parameter"><code>verify</code></em> and will
+be one or more of the gnutls_certificate_status_t enumerated
+elements bitwise or'd.  For a more detailed verification status use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-verify" title="gnutls_x509_crt_verify ()"><code class="function">gnutls_x509_crt_verify()</code></a> per list element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert_list</code></em> :</span></p></td>
+<td>is the certificate list to be verified</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert_list_length</code></em> :</span></p></td>
+<td>holds the number of certificate in cert_list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>CA_list</code></em> :</span></p></td>
+<td>is the CA list which will be used in verification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>CA_list_length</code></em> :</span></p></td>
+<td>holds the number of CA certificate in CA_list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>CRL_list</code></em> :</span></p></td>
+<td>holds a list of CRLs.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>CRL_list_length</code></em> :</span></p></td>
+<td>the length of CRL list.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>verify</code></em> :</span></p></td>
+<td>will hold the certificate verification output.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-verify"></a><h3>gnutls_x509_crt_verify ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_verify              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *CA_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> CA_list_length</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<p>
+This function will try to verify the given certificate and return
+its status.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>is the certificate to be verified</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>CA_list</code></em> :</span></p></td>
+<td>is one certificate that is considered to be trusted one</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>CA_list_length</code></em> :</span></p></td>
+<td>holds the number of CA certificate in CA_list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>verify</code></em> :</span></p></td>
+<td>will hold the certificate verification output.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-verify"></a><h3>gnutls_x509_crl_verify ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_verify              (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *CA_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> CA_list_length</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<p>
+This function will try to verify the given crl and return its status.
+See <a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-verify" title="gnutls_x509_crt_list_verify ()"><code class="function">gnutls_x509_crt_list_verify()</code></a> for a detailed description of
+return values. Note that since GnuTLS 3.1.4 this function includes
+the time checks.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
+<td>is the crl to be verified</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>CA_list</code></em> :</span></p></td>
+<td>is a certificate list that is considered to be trusted one</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>CA_list_length</code></em> :</span></p></td>
+<td>holds the number of CA certificates in CA_list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>verify</code></em> :</span></p></td>
+<td>will hold the crl verification output.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-revocation"></a><h3>gnutls_x509_crt_check_revocation ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_check_revocation    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> crl_list_length</code></em>);</pre>
+<p>
+This function will return check if the given certificate is
+revoked.  It is assumed that the CRLs have been verified before.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl_list</code></em> :</span></p></td>
+<td>should contain a list of gnutls_x509_crl_t structures</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crl_list_length</code></em> :</span></p></td>
+<td>the length of the crl_list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if the certificate is NOT revoked, and 1 if it is.  A
+negative error code is returned on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-fingerprint"></a><h3>gnutls_x509_crt_get_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_fingerprint     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algo</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>
+This function will calculate and copy the certificate's fingerprint
+in the provided buffer.
+</p>
+<p>
+If the buffer is null then only the size will be filled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algo</code></em> :</span></p></td>
+<td>is a digest algorithm</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the fingerprint (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the *buf_size will be updated
+with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-key-purpose-oid"></a><h3>gnutls_x509_crt_get_key_purpose_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_get_key_purpose_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will extract the key purpose OIDs of the Certificate
+specified by the given index.  These are stored in the Extended Key
+Usage extension (2.5.29.37) See the GNUTLS_KP_* definitions for
+human readable names.
+</p>
+<p>
+If <em class="parameter"><code>oid</code></em> is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em> will not
+account for the trailing null.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>This specifies which OID to return. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a buffer to hold the OID (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid_size</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>output flag to indicate criticality of extension</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the *oid_size will be updated
+with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-key-purpose-oid"></a><h3>gnutls_x509_crt_set_key_purpose_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_key_purpose_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> cert</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>
+This function will set the key purpose OIDs of the Certificate.
+These are stored in the Extended Key Usage extension (2.5.29.37)
+See the GNUTLS_KP_* definitions for human readable names.
+</p>
+<p>
+Subsequent calls to this function will append OIDs to the OID list.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a null terminated string that holds the OID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>Whether this extension will be critical or not</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+otherwise a negative error code is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs-encrypt-flags-t"></a><h3>enum gnutls_pkcs_encrypt_flags_t</h3>
+<pre class="programlisting">typedef enum {
+    GNUTLS_PKCS_PLAIN = 1,
+    GNUTLS_PKCS8_PLAIN = GNUTLS_PKCS_PLAIN,
+    GNUTLS_PKCS_USE_PKCS12_3DES = 2,
+    GNUTLS_PKCS8_USE_PKCS12_3DES = GNUTLS_PKCS_USE_PKCS12_3DES,
+    GNUTLS_PKCS_USE_PKCS12_ARCFOUR = 4,
+    GNUTLS_PKCS8_USE_PKCS12_ARCFOUR = GNUTLS_PKCS_USE_PKCS12_ARCFOUR,
+    GNUTLS_PKCS_USE_PKCS12_RC2_40 = 8,
+    GNUTLS_PKCS8_USE_PKCS12_RC2_40 = GNUTLS_PKCS_USE_PKCS12_RC2_40,
+    GNUTLS_PKCS_USE_PBES2_3DES = 16,
+    GNUTLS_PKCS_USE_PBES2_AES_128 = 32,
+    GNUTLS_PKCS_USE_PBES2_AES_192 = 64,
+    GNUTLS_PKCS_USE_PBES2_AES_256 = 128
+} gnutls_pkcs_encrypt_flags_t;
+</pre>
+<p>
+Enumeration of different PKCS encryption flags.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GNUTLS-PKCS-PLAIN:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS_PLAIN</code></span></p></td>
+<td>Unencrypted private key.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS8-PLAIN:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS8_PLAIN</code></span></p></td>
+<td>Same as <a class="link" href="gnutls-x509.html#GNUTLS-PKCS-PLAIN:CAPS"><code class="literal">GNUTLS_PKCS_PLAIN</code></a>.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS-USE-PKCS12-3DES:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS_USE_PKCS12_3DES</code></span></p></td>
+<td>PKCS-12 3DES.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS8-USE-PKCS12-3DES:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS8_USE_PKCS12_3DES</code></span></p></td>
+<td>Same as <a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-3DES:CAPS"><code class="literal">GNUTLS_PKCS_USE_PKCS12_3DES</code></a>.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS_USE_PKCS12_ARCFOUR</code></span></p></td>
+<td>PKCS-12 ARCFOUR.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS8-USE-PKCS12-ARCFOUR:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS8_USE_PKCS12_ARCFOUR</code></span></p></td>
+<td>Same as <a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS"><code class="literal">GNUTLS_PKCS_USE_PKCS12_ARCFOUR</code></a>.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS_USE_PKCS12_RC2_40</code></span></p></td>
+<td>PKCS-12 RC2-40.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS8-USE-PKCS12-RC2-40:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS8_USE_PKCS12_RC2_40</code></span></p></td>
+<td>Same as <a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS"><code class="literal">GNUTLS_PKCS_USE_PKCS12_RC2_40</code></a>.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS-USE-PBES2-3DES:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS_USE_PBES2_3DES</code></span></p></td>
+<td>PBES2 3DES.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS-USE-PBES2-AES-128:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS_USE_PBES2_AES_128</code></span></p></td>
+<td>PBES2 AES-128.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS-USE-PBES2-AES-192:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS_USE_PBES2_AES_192</code></span></p></td>
+<td>PBES2 AES-192.
+</td>
+</tr>
+<tr>
+<td><p><a name="GNUTLS-PKCS-USE-PBES2-AES-256:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS_USE_PBES2_AES_256</code></span></p></td>
+<td>PBES2 AES-256.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-init"></a><h3>gnutls_x509_privkey_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_init            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> *key</code></em>);</pre>
+<p>
+This function will initialize an private key structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-deinit"></a><h3>gnutls_x509_privkey_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_x509_privkey_deinit          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);</pre>
+<p>
+This function will deinitialize a private key structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to be deinitialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-cpy"></a><h3>gnutls_x509_privkey_cpy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_cpy             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> dst</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> src</code></em>);</pre>
+<p>
+This function will copy a private key from source to destination
+key. Destination has to be initialized.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dst</code></em> :</span></p></td>
+<td>The destination key, which should be initialized.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>The source key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-import"></a><h3>gnutls_x509_privkey_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_import          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This function will convert the given DER or PEM encoded key to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> format. The output will be stored in
+<em class="parameter"><code>key</code></em> .
+</p>
+<p>
+If the key is PEM encoded it should have a header that contains "PRIVATE
+KEY". Note that this function falls back to PKCS #8 decoding without
+password, if the default format fails to import.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to store the parsed key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The DER or PEM encoded certificate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of DER or PEM</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-import-pkcs8"></a><h3>gnutls_x509_privkey_import_pkcs8 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_import_pkcs8    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will convert the given DER or PEM encoded PKCS8 2.0
+encrypted key to the native gnutls_x509_privkey_t format. The
+output will be stored in <em class="parameter"><code>key</code></em>.  Both RSA and DSA keys can be
+imported, and flags can only be used to indicate an unencrypted
+key.
+</p>
+<p>
+The <em class="parameter"><code>password</code></em> can be either ASCII or UTF-8 in the default PBES2
+encryption schemas, or ASCII for the PKCS12 schemas.
+</p>
+<p>
+If the Certificate is PEM encoded it should have a header of
+"ENCRYPTED PRIVATE KEY", or "PRIVATE KEY". You only need to
+specify the flags if the key is DER encoded, since in that case
+the encryption status cannot be auto-detected.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to store the parsed key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The DER or PEM encoded key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of DER or PEM</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
+<td>the password to decrypt the key (if it is encrypted).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>0 if encrypted or GNUTLS_PKCS_PLAIN if not encrypted.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-import-rsa-raw"></a><h3>gnutls_x509_privkey_import_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_import_rsa_raw  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *u</code></em>);</pre>
+<p>
+This function will convert the given RSA raw parameters to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> format.  The output will be stored in
+<em class="parameter"><code>key</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to store the parsed key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>holds the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>holds the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
+<td>holds the private exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>holds the first prime (p)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>holds the second prime (q)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>u</code></em> :</span></p></td>
+<td>holds the coefficient</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-import-rsa-raw2"></a><h3>gnutls_x509_privkey_import_rsa_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_import_rsa_raw2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *u</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e1</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e2</code></em>);</pre>
+<p>
+This function will convert the given RSA raw parameters to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> format.  The output will be stored in
+<em class="parameter"><code>key</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to store the parsed key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>holds the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>holds the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
+<td>holds the private exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>holds the first prime (p)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>holds the second prime (q)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>u</code></em> :</span></p></td>
+<td>holds the coefficient</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e1</code></em> :</span></p></td>
+<td>holds e1 = d mod (p-1)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e2</code></em> :</span></p></td>
+<td>holds e2 = d mod (q-1)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-fix"></a><h3>gnutls_x509_privkey_fix ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_fix             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);</pre>
+<p>
+This function will recalculate the secondary parameters in a key.
+In RSA keys, this can be the coefficient and exponent1,2.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Holds the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-export-dsa-raw"></a><h3>gnutls_x509_privkey_export_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_export_dsa_raw  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);</pre>
+<p>
+This function will export the DSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>a structure that holds the DSA parameters</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the p</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the q</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
+<td>will hold the g</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>will hold the y</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>will hold the x</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-import-dsa-raw"></a><h3>gnutls_x509_privkey_import_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_import_dsa_raw  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *g</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *y</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *x</code></em>);</pre>
+<p>
+This function will convert the given DSA raw parameters to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> format.  The output will be stored
+in <em class="parameter"><code>key</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The structure to store the parsed key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>holds the p</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>holds the q</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
+<td>holds the g</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>holds the y</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>holds the x</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-get-pk-algorithm"></a><h3>gnutls_x509_privkey_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_get_pk_algorithm
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);</pre>
+<p>
+This function will return the public key algorithm of a private
+key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
+success, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-get-key-id"></a><h3>gnutls_x509_privkey_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_get_key_id      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will return a unique ID the depends on the public key
+parameters. This ID can be used in checking whether a certificate
+corresponds to the given key.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>output_data_size</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will
+be returned.  The output will normally be a SHA-1 hash output,
+which is 20 bytes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Holds the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>should be 0 for now</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain the key ID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-generate"></a><h3>gnutls_x509_privkey_generate ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_generate        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> algo</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will generate a random private key. Note that this
+function must be called on an empty private key.
+</p>
+<p>
+Do not set the number of bits directly, use <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()"><code class="function">gnutls_sec_param_to_pk_bits()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>algo</code></em> :</span></p></td>
+<td>is one of the algorithms in <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
+<td>the size of the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>unused for now.  Must be 0.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-export"></a><h3>gnutls_x509_privkey_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_export          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the private key to a PKCS1 structure for
+RSA keys, or an integer sequence for DSA keys.  The DSA keys are in
+the same format with the parameters used by openssl.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>output_data_size</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a>
+will be returned.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header
+of "BEGIN RSA PRIVATE KEY".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Holds the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of output params. One of PEM or DER.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a private key PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-export-pkcs8"></a><h3>gnutls_x509_privkey_export_pkcs8 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_export_pkcs8    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the private key to a PKCS8 structure.
+Both RSA and DSA keys can be exported. For DSA keys we use
+PKCS <span class="type">11</span> definitions. If the flags do not specify the encryption
+cipher, then the default 3DES (PBES2) will be used.
+</p>
+<p>
+The <em class="parameter"><code>password</code></em> can be either ASCII or UTF-8 in the default PBES2
+encryption schemas, or ASCII for the PKCS12 schemas.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*output_data_size is updated and GNUTLS_E_SHORT_MEMORY_BUFFER will
+be returned.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header
+of "BEGIN ENCRYPTED PRIVATE KEY" or "BEGIN PRIVATE KEY" if
+encryption is not used.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Holds the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of output params. One of PEM or DER.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
+<td>the password that will be used to encrypt the key.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>an ORed sequence of gnutls_pkcs_encrypt_flags_t</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a private key PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>In case of failure a negative error code will be
+returned, and 0 on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-export-rsa-raw2"></a><h3>gnutls_x509_privkey_export_rsa_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_export_rsa_raw2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e1</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e2</code></em>);</pre>
+<p>
+This function will export the RSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>a structure that holds the rsa parameters</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>will hold the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>will hold the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
+<td>will hold the private exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the first prime (p)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the second prime (q)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>u</code></em> :</span></p></td>
+<td>will hold the coefficient</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e1</code></em> :</span></p></td>
+<td>will hold e1 = d mod (p-1)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e2</code></em> :</span></p></td>
+<td>will hold e2 = d mod (q-1)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-export-rsa-raw"></a><h3>gnutls_x509_privkey_export_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_privkey_export_rsa_raw  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);</pre>
+<p>
+This function will export the RSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>a structure that holds the rsa parameters</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>will hold the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>will hold the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
+<td>will hold the private exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>will hold the first prime (p)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
+<td>will hold the second prime (q)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>u</code></em> :</span></p></td>
+<td>will hold the coefficient</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-int"></a><h3>struct gnutls_x509_crq_int</h3>
+<pre class="programlisting">struct gnutls_x509_crq_int;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-t"></a><h3>gnutls_x509_crq_t</h3>
+<pre class="programlisting">  typedef struct gnutls_x509_crq_int *gnutls_x509_crq_t;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-print"></a><h3>gnutls_x509_crq_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_print               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);</pre>
+<p>
+This function will pretty print a certificate request, suitable for
+display to a human.
+</p>
+<p>
+The output <em class="parameter"><code>out</code></em> needs to be deallocate using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>The structure to be printed</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>Indicate the format to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>out</code></em> :</span></p></td>
+<td>Newly allocated datum with (0) terminated string.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-init"></a><h3>gnutls_x509_crq_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_init                (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> *crq</code></em>);</pre>
+<p>
+This function will initialize a PKCS<span class="type">10</span> certificate request
+structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-deinit"></a><h3>gnutls_x509_crq_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_x509_crq_deinit              (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>
+This function will deinitialize a PKCS<span class="type">10</span> certificate request
+structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>The structure to be initialized</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-import"></a><h3>gnutls_x509_crq_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_import              (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>
+This function will convert the given DER or PEM encoded certificate
+request to a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure.  The output will be
+stored in <em class="parameter"><code>crq</code></em>.
+</p>
+<p>
+If the Certificate is PEM encoded it should have a header of "NEW
+CERTIFICATE REQUEST".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>The structure to store the parsed certificate request.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The DER or PEM encoded certificate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>One of DER or PEM</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-dn"></a><h3>gnutls_x509_crq_get_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_dn              (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+This function will copy the name of the Certificate request subject
+to the provided buffer.  The name will be in the form
+"C=xxxx,O=yyyy,CN=zzzz" as described in RFC 2253. The output string
+<em class="parameter"><code>buf</code></em> will be ASCII or UTF-8 encoded, depending on the certificate
+data.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is not
+long enough, and in that case the *<em class="parameter"><code>sizeof_buf</code></em> will be updated with
+the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-dn-oid"></a><h3>gnutls_x509_crq_get_dn_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_dn_oid          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);</pre>
+<p>
+This function will extract the requested OID of the name of the
+certificate request subject, specified by the given index.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crq_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which DN OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_oid</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the *<em class="parameter"><code>sizeof_oid</code></em> will be
+updated with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-dn-by-oid"></a><h3>gnutls_x509_crq_get_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_dn_by_oid       (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+This function will extract the part of the name of the Certificate
+request subject, specified by the given OID. The output will be
+encoded as described in RFC2253. The output string will be ASCII
+or UTF-8 encoded, depending on the certificate data.
+</p>
+<p>
+Some helper macros with popular OIDs can be found in gnutls/x509.h
+If raw flag is (0), this function will only return known OIDs as
+text. Other OIDs will be DER encoded, as described in RFC2253 --
+in hex format with a '#' prefix.  You can check about known OIDs
+using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a gnutls_x509_crq_t structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>In case multiple same OIDs exist in the RDN, this specifies
+which to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>If non (0) returns the raw DER data of the DN part.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the *<em class="parameter"><code>sizeof_buf</code></em> will be
+updated with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-dn-by-oid"></a><h3>gnutls_x509_crq_set_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_dn_by_oid       (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_data</code></em>);</pre>
+<p>
+This function will set the part of the name of the Certificate
+request subject, specified by the given OID.  The input string
+should be ASCII or UTF-8 encoded.
+</p>
+<p>
+Some helper macros with popular OIDs can be found in gnutls/x509.h
+With this function you can only set the known OIDs.  You can test
+for known OIDs using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.  For OIDs that are
+not known (by gnutls) you should properly DER encode your data, and
+call this function with raw_flag set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identifier in a (0)-terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>raw_flag</code></em> :</span></p></td>
+<td>must be 0, or 1 if the data are DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a pointer to the input data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_data</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-version"></a><h3>gnutls_x509_crq_set_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_version         (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> version</code></em>);</pre>
+<p>
+This function will set the version of the certificate request.  For
+version 1 requests this must be one.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>version</code></em> :</span></p></td>
+<td>holds the version number, for v1 Requests must be 1</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-version"></a><h3>gnutls_x509_crq_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_version         (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>
+This function will return the version of the specified Certificate
+request.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>version of certificate request, or a negative error code on
+error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-key"></a><h3>gnutls_x509_crq_set_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_key             (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);</pre>
+<p>
+This function will set the public parameters from the given private
+key to the request.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>holds a private key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-sign2"></a><h3>gnutls_x509_crq_sign2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_sign2               (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will sign the certificate request with a private key.
+This must be the same key as the one used in
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key" title="gnutls_x509_crt_set_key ()"><code class="function">gnutls_x509_crt_set_key()</code></a> since a certificate request is self
+signed.
+</p>
+<p>
+This must be the last step in a certificate request generation
+since all the previously set parameters are now signed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>holds a private key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dig</code></em> :</span></p></td>
+<td>The message digest to use, i.e., <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA1:CAPS"><code class="literal">GNUTLS_DIG_SHA1</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>must be 0</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise a negative error code.
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_FOUND"><code class="literal">GNUTLS_E_ASN1_VALUE_NOT_FOUND</code></a> is returned if you didn't set all
+information in the certificate request (e.g., the version using
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-version" title="gnutls_x509_crq_set_version ()"><code class="function">gnutls_x509_crq_set_version()</code></a>).</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-challenge-password"></a><h3>gnutls_x509_crq_set_challenge_password ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_challenge_password
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>
+This function will set a challenge password to be used when
+revoking the request.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pass</code></em> :</span></p></td>
+<td>holds a (0)-terminated password</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-challenge-password"></a><h3>gnutls_x509_crq_get_challenge_password ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_challenge_password
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">char</span> *pass</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_pass</code></em>);</pre>
+<p>
+This function will return the challenge password in the request.
+The challenge password is intended to be used for requesting a
+revocation of the certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pass</code></em> :</span></p></td>
+<td>will hold a (0)-terminated password string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_pass</code></em> :</span></p></td>
+<td>Initially holds the size of <em class="parameter"><code>pass</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-attribute-by-oid"></a><h3>gnutls_x509_crq_set_attribute_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_attribute_by_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> sizeof_buf</code></em>);</pre>
+<p>
+This function will set the attribute in the certificate request
+specified by the given Object ID.  The attribute must be be DER
+encoded.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in (0)-terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure that holds the attribute data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-attribute-by-oid"></a><h3>gnutls_x509_crq_get_attribute_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_attribute_by_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>
+This function will return the attribute in the certificate request
+specified by the given Object ID.  The attribute will be DER
+encoded.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in (0)-terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>In case multiple same OIDs exist in the attribute list, this
+specifies which to send, use (0) to get the first one</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the attribute data (may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-export"></a><h3>gnutls_x509_crq_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_export              (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will export the certificate request to a PEM or DER
+encoded PKCS10 structure.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be returned and
+*<em class="parameter"><code>output_data_size</code></em> will be updated.
+</p>
+<p>
+If the structure is PEM encoded, it will have a header of "BEGIN
+NEW CERTIFICATE REQUEST".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format of output params. One of PEM or DER.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain a certificate request PEM or DER encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-crq"></a><h3>gnutls_x509_crt_set_crq ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_crq             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>
+This function will set the name and public parameters as well as
+the extensions from the given certificate request to the certificate. 
+Only RSA keys are currently supported.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>holds a certificate request</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-crq-extensions"></a><h3>gnutls_x509_crt_set_crq_extensions ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_crq_extensions  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>
+This function will set extensions from the given request to the
+certificate.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>holds a certificate request</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-key-rsa-raw"></a><h3>gnutls_x509_crq_set_key_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_key_rsa_raw     (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
+<p>
+This function will set the public parameters from the given private
+key to the request. Only RSA keys are currently supported.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>holds the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>holds the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-subject-alt-name"></a><h3>gnutls_x509_crq_set_subject_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_subject_alt_name
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> nt</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+This function will set the subject alternative name certificate
+extension.  It can set the following types:
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>: as a text string
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>: as a text string
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS"><code class="literal">GNUTLS_SAN_URI</code></a>: as a text string
+</p>
+<p>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"><code class="literal">GNUTLS_SAN_IPADDRESS</code></a>: as a binary IP address (4 or 16 bytes)
+</p>
+<p>
+Other values can be set as binary values with the proper DER encoding.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>a certificate request of type <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nt</code></em> :</span></p></td>
+<td>is one of the <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> enumerations</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The data to be set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data_size</code></em> :</span></p></td>
+<td>The size of data to be set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS" title="GNUTLS_FSAN_SET"><code class="literal">GNUTLS_FSAN_SET</code></a> to clear previous data or
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS" title="GNUTLS_FSAN_APPEND"><code class="literal">GNUTLS_FSAN_APPEND</code></a> to append.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-key-usage"></a><h3>gnutls_x509_crq_set_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_key_usage       (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);</pre>
+<p>
+This function will set the keyUsage certificate extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>a certificate request of type <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>usage</code></em> :</span></p></td>
+<td>an ORed sequence of the GNUTLS_KEY_* elements.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-basic-constraints"></a><h3>gnutls_x509_crq_set_basic_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_basic_constraints
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> ca</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> pathLenConstraint</code></em>);</pre>
+<p>
+This function will set the basicConstraints certificate extension.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>a certificate request of type <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ca</code></em> :</span></p></td>
+<td>true(1) or false(0) depending on the Certificate authority status.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pathLenConstraint</code></em> :</span></p></td>
+<td>non-negative error codes indicate maximum length of path,
+and negative error codes indicate that the pathLenConstraints field should
+not be present.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-key-purpose-oid"></a><h3>gnutls_x509_crq_set_key_purpose_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_key_purpose_oid (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>
+This function will set the key purpose OIDs of the Certificate.
+These are stored in the Extended Key Usage extension (2.5.29.37)
+See the GNUTLS_KP_* definitions for human readable names.
+</p>
+<p>
+Subsequent calls to this function will append OIDs to the OID list.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a (0)-terminated string that holds the OID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>Whether this extension will be critical or not</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-key-purpose-oid"></a><h3>gnutls_x509_crq_get_key_purpose_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_key_purpose_oid (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will extract the key purpose OIDs of the Certificate
+specified by the given index.  These are stored in the Extended Key
+Usage extension (2.5.29.37).  See the GNUTLS_KP_* definitions for
+human readable names.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>This specifies which OID to return, use (0) to get the first one</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a buffer to hold the OID (may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_oid</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>output variable with critical flag, may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if the provided buffer is
+not long enough, and in that case the *<em class="parameter"><code>sizeof_oid</code></em> will be
+updated with the required size.  On success 0 is returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-extension-data"></a><h3>gnutls_x509_crq_get_extension_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_extension_data  (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);</pre>
+<p>
+This function will return the requested extension data in the
+certificate.  The extension data will be stored as a string in the
+provided buffer.
+</p>
+<p>
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-info" title="gnutls_x509_crq_get_extension_info ()"><code class="function">gnutls_x509_crq_get_extension_info()</code></a> to extract the OID and
+critical flag.  Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid" title="gnutls_x509_crq_get_extension_by_oid ()"><code class="function">gnutls_x509_crq_get_extension_by_oid()</code></a> instead,
+if you want to get data indexed by the extension OID rather than
+sequence.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which extension OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the data (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_data</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.  If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-extension-info"></a><h3>gnutls_x509_crq_get_extension_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_extension_info  (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the requested extension OID in the
+certificate, and the critical flag for it.  The extension OID will
+be stored as a string in the provided buffer.  Use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-data" title="gnutls_x509_crq_get_extension_data ()"><code class="function">gnutls_x509_crq_get_extension_data()</code></a> to extract the data.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>sizeof_oid</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be
+returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which extension OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the OID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_oid</code></em> :</span></p></td>
+<td>initially holds the maximum size of <em class="parameter"><code>oid</code></em>, on return
+holds actual size of <em class="parameter"><code>oid</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>output variable with critical flag, may be NULL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.  If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-attribute-data"></a><h3>gnutls_x509_crq_get_attribute_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_attribute_data  (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);</pre>
+<p>
+This function will return the requested attribute data in the
+certificate request.  The attribute data will be stored as a string in the
+provided buffer.
+</p>
+<p>
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-info" title="gnutls_x509_crq_get_attribute_info ()"><code class="function">gnutls_x509_crq_get_attribute_info()</code></a> to extract the OID.
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-by-oid" title="gnutls_x509_crq_get_attribute_by_oid ()"><code class="function">gnutls_x509_crq_get_attribute_by_oid()</code></a> instead,
+if you want to get data indexed by the attribute OID rather than
+sequence.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which attribute OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the data (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_data</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>oid</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.  If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-attribute-info"></a><h3>gnutls_x509_crq_get_attribute_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_attribute_info  (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);</pre>
+<p>
+This function will return the requested attribute OID in the
+certificate, and the critical flag for it.  The attribute OID will
+be stored as a string in the provided buffer.  Use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-data" title="gnutls_x509_crq_get_attribute_data ()"><code class="function">gnutls_x509_crq_get_attribute_data()</code></a> to extract the data.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>sizeof_oid</code></em> is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be
+returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>Specifies which attribute OID to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the OID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_oid</code></em> :</span></p></td>
+<td>initially holds the maximum size of <em class="parameter"><code>oid</code></em>, on return
+holds actual size of <em class="parameter"><code>oid</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.  If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-pk-algorithm"></a><h3>gnutls_x509_crq_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_pk_algorithm    (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>
+This function will return the public key algorithm of a PKCS<span class="type">10</span>
+certificate request.
+</p>
+<p>
+If bits is non-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, it should have enough size to hold the
+parameters size in bits.  For RSA the bits returned is the modulus.
+For DSA the bits returned are of the public exponent.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
+<td>if bits is non-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> it will hold the size of the parameters' in bits</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
+success, or a negative error code on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-key-id"></a><h3>gnutls_x509_crq_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_key_id          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>
+This function will return a unique ID the depends on the public key
+parameters.  This ID can be used in checking whether a certificate
+corresponds to the given private key.
+</p>
+<p>
+If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>output_data_size</code></em> is updated and GNUTLS_E_SHORT_MEMORY_BUFFER will
+be returned.  The output will normally be a SHA-1 hash output,
+which is 20 bytes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>a certificate of type <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>should be 0 for now</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
+<td>will contain the key ID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
+<td>holds the size of output_data (and will be
+replaced by the actual size of parameters)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>In case of failure a negative error code will be
+returned, and 0 on success.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-key-rsa-raw"></a><h3>gnutls_x509_crq_get_key_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_key_rsa_raw     (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
+                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
+<p>
+This function will export the RSA public key's parameters found in
+the given structure.  The new parameters will be allocated using
+<a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>Holds the certificate</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>will hold the modulus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
+<td>will hold the public exponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-key-usage"></a><h3>gnutls_x509_crq_get_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_key_usage       (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return certificate's key usage, by reading the
+keyUsage X.509 extension (2.5.29.15).  The key usage value will
+ORed values of the: <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE"><code class="literal">GNUTLS_KEY_DIGITAL_SIGNATURE</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS" title="GNUTLS_KEY_NON_REPUDIATION"><code class="literal">GNUTLS_KEY_NON_REPUDIATION</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_KEY_ENCIPHERMENT</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_DATA_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_DATA_ENCIPHERMENT</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS" title="GNUTLS_KEY_KEY_AGREEMENT"><code class="literal">GNUTLS_KEY_KEY_AGREEMENT</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS" title="GNUTLS_KEY_KEY_CERT_SIGN"><code class="literal">GNUTLS_KEY_KEY_CERT_SIGN</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS" title="GNUTLS_KEY_CRL_SIGN"><code class="literal">GNUTLS_KEY_CRL_SIGN</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS" title="GNUTLS_KEY_ENCIPHER_ONLY"><code class="literal">GNUTLS_KEY_ENCIPHER_ONLY</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS" title="GNUTLS_KEY_DECIPHER_ONLY"><code class="literal">GNUTLS_KEY_DECIPHER_ONLY</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
+<td>where the key usage bits will be stored</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the certificate key usage, or a negative error code in case of
+parsing error.  If the certificate does not contain the keyUsage
+extension <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be
+returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-basic-constraints"></a><h3>gnutls_x509_crq_get_basic_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_basic_constraints
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *ca</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>);</pre>
+<p>
+This function will read the certificate's basic constraints, and
+return the certificates CA status.  It reads the basicConstraints
+X.509 extension (2.5.29.19).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ca</code></em> :</span></p></td>
+<td>pointer to output integer indicating CA status, may be NULL,
+value is 1 if the certificate CA flag is set, 0 otherwise.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pathlen</code></em> :</span></p></td>
+<td>pointer to output integer indicating path length (may be
+NULL), non-negative error codes indicate a present pathLenConstraint
+field and the actual value, -1 indicate that the field is absent.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>If the certificate is a CA a positive value will be
+returned, or (0) if the certificate does not have CA flag set.
+A negative error code may be returned in case of errors.  If the
+certificate does not contain the basicConstraints extension
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-subject-alt-name"></a><h3>gnutls_x509_crq_get_subject_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_subject_alt_name
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *ret_type</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the alternative names, contained in the
+given certificate.  It is the same as
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" title="gnutls_x509_crq_get_subject_alt_name ()"><code class="function">gnutls_x509_crq_get_subject_alt_name()</code></a> except for the fact that it
+will return the type of the alternative name in <em class="parameter"><code>ret_type</code></em> even if
+the function fails for some reason (i.e.  the buffer provided is
+not enough).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the alt name, 0 for the
+first one, 1 for the second etc.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>is the place where the alternative name will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret_size</code></em> :</span></p></td>
+<td>holds the size of ret.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret_type</code></em> :</span></p></td>
+<td>holds the <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> name type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical
+(may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the alternative subject name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>.  It will return
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if <em class="parameter"><code>ret_size</code></em> is not large enough to
+hold the value.  In that case <em class="parameter"><code>ret_size</code></em> will be updated with the
+required size.  If the certificate request does not have an
+Alternative name with the specified sequence number then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-subject-alt-othername-oid"></a><h3>gnutls_x509_crq_get_subject_alt_othername_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_subject_alt_othername_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>);</pre>
+<p>
+This function will extract the type OID of an otherName Subject
+Alternative Name, contained in the given certificate, and return
+the type as an enumerated element.
+</p>
+<p>
+This function is only useful if
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" title="gnutls_x509_crq_get_subject_alt_name ()"><code class="function">gnutls_x509_crq_get_subject_alt_name()</code></a> returned
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
+<td>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>is the place where the otherName OID will be copied to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret_size</code></em> :</span></p></td>
+<td>holds the size of ret.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the alternative subject name type on success, one of the
+enumerated gnutls_x509_subject_alt_name_t.  For supported OIDs,
+it will return one of the virtual (GNUTLS_SAN_OTHERNAME_*) types,
+e.g. <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> for
+unknown OIDs.  It will return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> if
+<em class="parameter"><code>ret_size</code></em> is not large enough to hold the value.  In that case
+<em class="parameter"><code>ret_size</code></em> will be updated with the required size.  If the
+certificate does not have an Alternative name with the specified
+sequence number and with the otherName type then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> is returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-extension-by-oid"></a><h3>gnutls_x509_crq_get_extension_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_get_extension_by_oid
+                                                        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+                                                         <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+                                                         <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>,
+                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>
+This function will return the extension specified by the OID in
+the certificate.  The extensions will be returned as binary data
+DER encoded, in the provided buffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
+<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>oid</code></em> :</span></p></td>
+<td>holds an Object Identified in null terminated string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indx</code></em> :</span></p></td>
+<td>In case multiple same OIDs exist in the extensions, this
+specifies which to send. Use (0) to get the first one.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a pointer to a structure to hold the name (may be null)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
+<td>initially holds the size of <em class="parameter"><code>buf</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>critical</code></em> :</span></p></td>
+<td>will be non (0) if the extension is marked as critical</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error code in case of an error.  If the certificate does not
+contain the specified extension
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 2.8.0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/gnutls.devhelp2 b/doc/reference/html/gnutls.devhelp2
new file mode 100644 (file)
index 0000000..15f8b13
--- /dev/null
@@ -0,0 +1,1164 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="GnuTLS API Reference Manual" link="index.html" author="" name="gnutls" version="2" language="c">
+  <chapters>
+    <sub name="GnuTLS API Reference Manual" link="intro.html">
+      <sub name="gnutls" link="gnutls-gnutls.html"/>
+      <sub name="abstract" link="gnutls-abstract.html"/>
+      <sub name="x509" link="gnutls-x509.html"/>
+      <sub name="openpgp" link="gnutls-openpgp.html"/>
+      <sub name="crypto" link="gnutls-crypto.html"/>
+      <sub name="pkcs11" link="gnutls-pkcs11.html"/>
+      <sub name="pkcs12" link="gnutls-pkcs12.html"/>
+    </sub>
+    <sub name="API Index" link="api-index-full.html"/>
+    <sub name="Index of deprecated symbols" link="api-index-deprecated.html"/>
+    <sub name="Index of new symbols in 2.4.0" link="api-index-2-4-0.html"/>
+    <sub name="Index of new symbols in 2.6.0" link="api-index-2-6-0.html"/>
+    <sub name="Index of new symbols in 2.8.0" link="api-index-2-8-0.html"/>
+    <sub name="Index of new symbols in 2.10.0" link="api-index-2-10-0.html"/>
+    <sub name="Index of new symbols in 2.12.0" link="api-index-2-12-0.html"/>
+    <sub name="Index of new symbols in 3.0.x" link="api-index-3-0.html"/>
+  </chapters>
+  <functions>
+    <keyword type="macro" name="HAVE_SSIZE_T" link="gnutls-gnutls.html#HAVE-SSIZE-T:CAPS"/>
+    <keyword type="macro" name="GNUTLS_VERSION" link="gnutls-gnutls.html#GNUTLS-VERSION:CAPS"/>
+    <keyword type="macro" name="GNUTLS_VERSION_MAJOR" link="gnutls-gnutls.html#GNUTLS-VERSION-MAJOR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_VERSION_MINOR" link="gnutls-gnutls.html#GNUTLS-VERSION-MINOR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_VERSION_PATCH" link="gnutls-gnutls.html#GNUTLS-VERSION-PATCH:CAPS"/>
+    <keyword type="macro" name="GNUTLS_VERSION_NUMBER" link="gnutls-gnutls.html#GNUTLS-VERSION-NUMBER:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CIPHER_RIJNDAEL_128_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-128-CBC:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CIPHER_RIJNDAEL_256_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-256-CBC:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CIPHER_RIJNDAEL_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-CBC:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CIPHER_ARCFOUR" link="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR:CAPS"/>
+    <keyword type="enum" name="enum gnutls_cipher_algorithm_t" link="gnutls-gnutls.html#gnutls-cipher-algorithm-t"/>
+    <keyword type="enum" name="enum gnutls_kx_algorithm_t" link="gnutls-gnutls.html#gnutls-kx-algorithm-t"/>
+    <keyword type="enum" name="enum gnutls_params_type_t" link="gnutls-gnutls.html#gnutls-params-type-t"/>
+    <keyword type="enum" name="enum gnutls_credentials_type_t" link="gnutls-gnutls.html#gnutls-credentials-type-t"/>
+    <keyword type="macro" name="GNUTLS_MAC_SHA" link="gnutls-gnutls.html#GNUTLS-MAC-SHA:CAPS"/>
+    <keyword type="macro" name="GNUTLS_DIG_SHA" link="gnutls-gnutls.html#GNUTLS-DIG-SHA:CAPS"/>
+    <keyword type="enum" name="enum gnutls_mac_algorithm_t" link="gnutls-gnutls.html#gnutls-mac-algorithm-t"/>
+    <keyword type="enum" name="enum gnutls_digest_algorithm_t" link="gnutls-gnutls.html#gnutls-digest-algorithm-t"/>
+    <keyword type="macro" name="GNUTLS_MAX_ALGORITHM_NUM" link="gnutls-gnutls.html#GNUTLS-MAX-ALGORITHM-NUM:CAPS"/>
+    <keyword type="enum" name="enum gnutls_compression_method_t" link="gnutls-gnutls.html#gnutls-compression-method-t"/>
+    <keyword type="enum" name="enum gnutls_alert_level_t" link="gnutls-gnutls.html#gnutls-alert-level-t"/>
+    <keyword type="enum" name="enum gnutls_alert_description_t" link="gnutls-gnutls.html#gnutls-alert-description-t"/>
+    <keyword type="enum" name="enum gnutls_handshake_description_t" link="gnutls-gnutls.html#gnutls-handshake-description-t"/>
+    <keyword type="enum" name="enum gnutls_certificate_status_t" link="gnutls-gnutls.html#gnutls-certificate-status-t"/>
+    <keyword type="enum" name="enum gnutls_certificate_request_t" link="gnutls-gnutls.html#gnutls-certificate-request-t"/>
+    <keyword type="enum" name="enum gnutls_openpgp_crt_status_t" link="gnutls-gnutls.html#gnutls-openpgp-crt-status-t"/>
+    <keyword type="enum" name="enum gnutls_close_request_t" link="gnutls-gnutls.html#gnutls-close-request-t"/>
+    <keyword type="enum" name="enum gnutls_protocol_t" link="gnutls-gnutls.html#gnutls-protocol-t"/>
+    <keyword type="enum" name="enum gnutls_certificate_type_t" link="gnutls-gnutls.html#gnutls-certificate-type-t"/>
+    <keyword type="enum" name="enum gnutls_x509_crt_fmt_t" link="gnutls-gnutls.html#gnutls-x509-crt-fmt-t"/>
+    <keyword type="enum" name="enum gnutls_certificate_print_formats_t" link="gnutls-gnutls.html#gnutls-certificate-print-formats-t"/>
+    <keyword type="enum" name="enum gnutls_pk_algorithm_t" link="gnutls-gnutls.html#gnutls-pk-algorithm-t"/>
+    <keyword type="function" name="gnutls_pk_algorithm_get_name ()" link="gnutls-gnutls.html#gnutls-pk-algorithm-get-name"/>
+    <keyword type="enum" name="enum gnutls_sign_algorithm_t" link="gnutls-gnutls.html#gnutls-sign-algorithm-t"/>
+    <keyword type="macro" name="gnutls_sign_algorithm_get_name" link="gnutls-gnutls.html#gnutls-sign-algorithm-get-name"/>
+    <keyword type="enum" name="enum gnutls_sec_param_t" link="gnutls-gnutls.html#gnutls-sec-param-t"/>
+    <keyword type="typedef" name="gnutls_transport_ptr_t" link="gnutls-gnutls.html#gnutls-transport-ptr-t"/>
+    <keyword type="struct" name="struct gnutls_session_int" link="gnutls-gnutls.html#gnutls-session-int"/>
+    <keyword type="typedef" name="gnutls_session_t" link="gnutls-gnutls.html#gnutls-session-t"/>
+    <keyword type="struct" name="struct gnutls_dh_params_int" link="gnutls-gnutls.html#gnutls-dh-params-int"/>
+    <keyword type="typedef" name="gnutls_dh_params_t" link="gnutls-gnutls.html#gnutls-dh-params-t"/>
+    <keyword type="struct" name="struct gnutls_x509_privkey_int" link="gnutls-gnutls.html#gnutls-x509-privkey-int"/>
+    <keyword type="typedef" name="gnutls_rsa_params_t" link="gnutls-gnutls.html#gnutls-rsa-params-t"/>
+    <keyword type="struct" name="struct gnutls_priority_st" link="gnutls-gnutls.html#gnutls-priority-st"/>
+    <keyword type="typedef" name="gnutls_priority_t" link="gnutls-gnutls.html#gnutls-priority-t"/>
+    <keyword type="function" name="gnutls_init ()" link="gnutls-gnutls.html#gnutls-init"/>
+    <keyword type="function" name="gnutls_deinit ()" link="gnutls-gnutls.html#gnutls-deinit"/>
+    <keyword type="function" name="gnutls_bye ()" link="gnutls-gnutls.html#gnutls-bye"/>
+    <keyword type="function" name="gnutls_handshake ()" link="gnutls-gnutls.html#gnutls-handshake"/>
+    <keyword type="function" name="gnutls_rehandshake ()" link="gnutls-gnutls.html#gnutls-rehandshake"/>
+    <keyword type="function" name="gnutls_alert_get ()" link="gnutls-gnutls.html#gnutls-alert-get"/>
+    <keyword type="function" name="gnutls_alert_send ()" link="gnutls-gnutls.html#gnutls-alert-send"/>
+    <keyword type="function" name="gnutls_alert_send_appropriate ()" link="gnutls-gnutls.html#gnutls-alert-send-appropriate"/>
+    <keyword type="function" name="gnutls_alert_get_name ()" link="gnutls-gnutls.html#gnutls-alert-get-name"/>
+    <keyword type="function" name="gnutls_pk_bits_to_sec_param ()" link="gnutls-gnutls.html#gnutls-pk-bits-to-sec-param" since="2.12.0"/>
+    <keyword type="function" name="gnutls_sec_param_get_name ()" link="gnutls-gnutls.html#gnutls-sec-param-get-name" since="2.12.0"/>
+    <keyword type="function" name="gnutls_sec_param_to_pk_bits ()" link="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" since="2.12.0"/>
+    <keyword type="function" name="gnutls_cipher_get ()" link="gnutls-gnutls.html#gnutls-cipher-get"/>
+    <keyword type="function" name="gnutls_kx_get ()" link="gnutls-gnutls.html#gnutls-kx-get"/>
+    <keyword type="function" name="gnutls_mac_get ()" link="gnutls-gnutls.html#gnutls-mac-get"/>
+    <keyword type="function" name="gnutls_compression_get ()" link="gnutls-gnutls.html#gnutls-compression-get"/>
+    <keyword type="function" name="gnutls_certificate_type_get ()" link="gnutls-gnutls.html#gnutls-certificate-type-get"/>
+    <keyword type="function" name="gnutls_sign_algorithm_get_requested ()" link="gnutls-gnutls.html#gnutls-sign-algorithm-get-requested" since="2.10.0"/>
+    <keyword type="function" name="gnutls_cipher_get_key_size ()" link="gnutls-gnutls.html#gnutls-cipher-get-key-size"/>
+    <keyword type="function" name="gnutls_mac_get_key_size ()" link="gnutls-gnutls.html#gnutls-mac-get-key-size"/>
+    <keyword type="function" name="gnutls_cipher_get_name ()" link="gnutls-gnutls.html#gnutls-cipher-get-name"/>
+    <keyword type="function" name="gnutls_mac_get_name ()" link="gnutls-gnutls.html#gnutls-mac-get-name"/>
+    <keyword type="function" name="gnutls_compression_get_name ()" link="gnutls-gnutls.html#gnutls-compression-get-name"/>
+    <keyword type="function" name="gnutls_kx_get_name ()" link="gnutls-gnutls.html#gnutls-kx-get-name"/>
+    <keyword type="function" name="gnutls_certificate_type_get_name ()" link="gnutls-gnutls.html#gnutls-certificate-type-get-name"/>
+    <keyword type="function" name="gnutls_pk_get_name ()" link="gnutls-gnutls.html#gnutls-pk-get-name" since="2.6.0"/>
+    <keyword type="function" name="gnutls_sign_get_name ()" link="gnutls-gnutls.html#gnutls-sign-get-name"/>
+    <keyword type="function" name="gnutls_mac_get_id ()" link="gnutls-gnutls.html#gnutls-mac-get-id"/>
+    <keyword type="function" name="gnutls_compression_get_id ()" link="gnutls-gnutls.html#gnutls-compression-get-id"/>
+    <keyword type="function" name="gnutls_cipher_get_id ()" link="gnutls-gnutls.html#gnutls-cipher-get-id"/>
+    <keyword type="function" name="gnutls_kx_get_id ()" link="gnutls-gnutls.html#gnutls-kx-get-id"/>
+    <keyword type="function" name="gnutls_protocol_get_id ()" link="gnutls-gnutls.html#gnutls-protocol-get-id"/>
+    <keyword type="function" name="gnutls_certificate_type_get_id ()" link="gnutls-gnutls.html#gnutls-certificate-type-get-id"/>
+    <keyword type="function" name="gnutls_pk_get_id ()" link="gnutls-gnutls.html#gnutls-pk-get-id" since="2.6.0"/>
+    <keyword type="function" name="gnutls_sign_get_id ()" link="gnutls-gnutls.html#gnutls-sign-get-id"/>
+    <keyword type="function" name="gnutls_cipher_list ()" link="gnutls-gnutls.html#gnutls-cipher-list"/>
+    <keyword type="function" name="gnutls_mac_list ()" link="gnutls-gnutls.html#gnutls-mac-list"/>
+    <keyword type="function" name="gnutls_compression_list ()" link="gnutls-gnutls.html#gnutls-compression-list"/>
+    <keyword type="function" name="gnutls_protocol_list ()" link="gnutls-gnutls.html#gnutls-protocol-list"/>
+    <keyword type="function" name="gnutls_certificate_type_list ()" link="gnutls-gnutls.html#gnutls-certificate-type-list"/>
+    <keyword type="function" name="gnutls_kx_list ()" link="gnutls-gnutls.html#gnutls-kx-list"/>
+    <keyword type="function" name="gnutls_pk_list ()" link="gnutls-gnutls.html#gnutls-pk-list" since="2.6.0"/>
+    <keyword type="function" name="gnutls_sign_list ()" link="gnutls-gnutls.html#gnutls-sign-list"/>
+    <keyword type="function" name="gnutls_cipher_suite_info ()" link="gnutls-gnutls.html#gnutls-cipher-suite-info"/>
+    <keyword type="function" name="gnutls_error_is_fatal ()" link="gnutls-gnutls.html#gnutls-error-is-fatal"/>
+    <keyword type="function" name="gnutls_error_to_alert ()" link="gnutls-gnutls.html#gnutls-error-to-alert"/>
+    <keyword type="function" name="gnutls_perror ()" link="gnutls-gnutls.html#gnutls-perror"/>
+    <keyword type="function" name="gnutls_strerror ()" link="gnutls-gnutls.html#gnutls-strerror"/>
+    <keyword type="function" name="gnutls_strerror_name ()" link="gnutls-gnutls.html#gnutls-strerror-name" since="2.6.0"/>
+    <keyword type="function" name="gnutls_handshake_set_private_extensions ()" link="gnutls-gnutls.html#gnutls-handshake-set-private-extensions"/>
+    <keyword type="function" name="gnutls_handshake_get_last_out ()" link="gnutls-gnutls.html#gnutls-handshake-get-last-out"/>
+    <keyword type="function" name="gnutls_handshake_get_last_in ()" link="gnutls-gnutls.html#gnutls-handshake-get-last-in"/>
+    <keyword type="function" name="gnutls_record_send ()" link="gnutls-gnutls.html#gnutls-record-send"/>
+    <keyword type="function" name="gnutls_record_recv ()" link="gnutls-gnutls.html#gnutls-record-recv"/>
+    <keyword type="macro" name="gnutls_read" link="gnutls-gnutls.html#gnutls-read"/>
+    <keyword type="macro" name="gnutls_write" link="gnutls-gnutls.html#gnutls-write"/>
+    <keyword type="function" name="gnutls_session_enable_compatibility_mode ()" link="gnutls-gnutls.html#gnutls-session-enable-compatibility-mode"/>
+    <keyword type="function" name="gnutls_record_disable_padding ()" link="gnutls-gnutls.html#gnutls-record-disable-padding"/>
+    <keyword type="function" name="gnutls_record_get_direction ()" link="gnutls-gnutls.html#gnutls-record-get-direction"/>
+    <keyword type="function" name="gnutls_record_get_max_size ()" link="gnutls-gnutls.html#gnutls-record-get-max-size"/>
+    <keyword type="function" name="gnutls_record_set_max_size ()" link="gnutls-gnutls.html#gnutls-record-set-max-size"/>
+    <keyword type="function" name="gnutls_record_check_pending ()" link="gnutls-gnutls.html#gnutls-record-check-pending"/>
+    <keyword type="function" name="gnutls_prf ()" link="gnutls-gnutls.html#gnutls-prf"/>
+    <keyword type="function" name="gnutls_prf_raw ()" link="gnutls-gnutls.html#gnutls-prf-raw"/>
+    <keyword type="enum" name="enum gnutls_server_name_type_t" link="gnutls-gnutls.html#gnutls-server-name-type-t"/>
+    <keyword type="function" name="gnutls_server_name_set ()" link="gnutls-gnutls.html#gnutls-server-name-set"/>
+    <keyword type="function" name="gnutls_server_name_get ()" link="gnutls-gnutls.html#gnutls-server-name-get"/>
+    <keyword type="function" name="gnutls_safe_renegotiation_status ()" link="gnutls-gnutls.html#gnutls-safe-renegotiation-status" since="2.10.0"/>
+    <keyword type="enum" name="enum gnutls_supplemental_data_format_type_t" link="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t"/>
+    <keyword type="function" name="gnutls_session_ticket_key_generate ()" link="gnutls-gnutls.html#gnutls-session-ticket-key-generate" since="2.10.0"/>
+    <keyword type="function" name="gnutls_session_ticket_enable_client ()" link="gnutls-gnutls.html#gnutls-session-ticket-enable-client" since="2.10.0"/>
+    <keyword type="function" name="gnutls_session_ticket_enable_server ()" link="gnutls-gnutls.html#gnutls-session-ticket-enable-server" since="2.10.0"/>
+    <keyword type="function" name="gnutls_priority_init ()" link="gnutls-gnutls.html#gnutls-priority-init"/>
+    <keyword type="function" name="gnutls_priority_deinit ()" link="gnutls-gnutls.html#gnutls-priority-deinit"/>
+    <keyword type="function" name="gnutls_priority_set ()" link="gnutls-gnutls.html#gnutls-priority-set"/>
+    <keyword type="function" name="gnutls_priority_set_direct ()" link="gnutls-gnutls.html#gnutls-priority-set-direct"/>
+    <keyword type="function" name="gnutls_set_default_priority ()" link="gnutls-gnutls.html#gnutls-set-default-priority"/>
+    <keyword type="function" name="gnutls_cipher_suite_get_name ()" link="gnutls-gnutls.html#gnutls-cipher-suite-get-name"/>
+    <keyword type="function" name="gnutls_protocol_get_version ()" link="gnutls-gnutls.html#gnutls-protocol-get-version"/>
+    <keyword type="function" name="gnutls_protocol_get_name ()" link="gnutls-gnutls.html#gnutls-protocol-get-name"/>
+    <keyword type="function" name="gnutls_session_set_data ()" link="gnutls-gnutls.html#gnutls-session-set-data"/>
+    <keyword type="function" name="gnutls_session_get_data ()" link="gnutls-gnutls.html#gnutls-session-get-data"/>
+    <keyword type="function" name="gnutls_session_get_data2 ()" link="gnutls-gnutls.html#gnutls-session-get-data2"/>
+    <keyword type="macro" name="GNUTLS_MAX_SESSION_ID" link="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID:CAPS"/>
+    <keyword type="function" name="gnutls_session_get_id ()" link="gnutls-gnutls.html#gnutls-session-get-id"/>
+    <keyword type="function" name="gnutls_session_is_resumed ()" link="gnutls-gnutls.html#gnutls-session-is-resumed"/>
+    <keyword type="function" name="gnutls_db_store_func ()" link="gnutls-gnutls.html#gnutls-db-store-func"/>
+    <keyword type="function" name="gnutls_db_remove_func ()" link="gnutls-gnutls.html#gnutls-db-remove-func"/>
+    <keyword type="function" name="gnutls_db_retr_func ()" link="gnutls-gnutls.html#gnutls-db-retr-func"/>
+    <keyword type="function" name="gnutls_db_set_cache_expiration ()" link="gnutls-gnutls.html#gnutls-db-set-cache-expiration"/>
+    <keyword type="function" name="gnutls_db_remove_session ()" link="gnutls-gnutls.html#gnutls-db-remove-session"/>
+    <keyword type="function" name="gnutls_db_set_retrieve_function ()" link="gnutls-gnutls.html#gnutls-db-set-retrieve-function"/>
+    <keyword type="function" name="gnutls_db_set_remove_function ()" link="gnutls-gnutls.html#gnutls-db-set-remove-function"/>
+    <keyword type="function" name="gnutls_db_set_store_function ()" link="gnutls-gnutls.html#gnutls-db-set-store-function"/>
+    <keyword type="function" name="gnutls_db_set_ptr ()" link="gnutls-gnutls.html#gnutls-db-set-ptr"/>
+    <keyword type="function" name="gnutls_db_get_ptr ()" link="gnutls-gnutls.html#gnutls-db-get-ptr"/>
+    <keyword type="function" name="gnutls_db_check_entry ()" link="gnutls-gnutls.html#gnutls-db-check-entry"/>
+    <keyword type="function" name="gnutls_handshake_post_client_hello_func ()" link="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func"/>
+    <keyword type="function" name="gnutls_handshake_set_post_client_hello_function ()" link="gnutls-gnutls.html#gnutls-handshake-set-post-client-hello-function"/>
+    <keyword type="function" name="gnutls_handshake_set_max_packet_length ()" link="gnutls-gnutls.html#gnutls-handshake-set-max-packet-length"/>
+    <keyword type="function" name="gnutls_check_version ()" link="gnutls-gnutls.html#gnutls-check-version"/>
+    <keyword type="function" name="gnutls_credentials_clear ()" link="gnutls-gnutls.html#gnutls-credentials-clear"/>
+    <keyword type="function" name="gnutls_credentials_set ()" link="gnutls-gnutls.html#gnutls-credentials-set"/>
+    <keyword type="macro" name="gnutls_cred_set" link="gnutls-gnutls.html#gnutls-cred-set"/>
+    <keyword type="struct" name="struct gnutls_certificate_credentials_st" link="gnutls-gnutls.html#gnutls-certificate-credentials-st"/>
+    <keyword type="function" name="gnutls_anon_free_server_credentials ()" link="gnutls-gnutls.html#gnutls-anon-free-server-credentials"/>
+    <keyword type="function" name="gnutls_anon_allocate_server_credentials ()" link="gnutls-gnutls.html#gnutls-anon-allocate-server-credentials"/>
+    <keyword type="function" name="gnutls_anon_set_server_dh_params ()" link="gnutls-gnutls.html#gnutls-anon-set-server-dh-params"/>
+    <keyword type="function" name="gnutls_anon_set_server_params_function ()" link="gnutls-gnutls.html#gnutls-anon-set-server-params-function"/>
+    <keyword type="function" name="gnutls_anon_free_client_credentials ()" link="gnutls-gnutls.html#gnutls-anon-free-client-credentials"/>
+    <keyword type="function" name="gnutls_anon_allocate_client_credentials ()" link="gnutls-gnutls.html#gnutls-anon-allocate-client-credentials"/>
+    <keyword type="function" name="gnutls_certificate_free_credentials ()" link="gnutls-gnutls.html#gnutls-certificate-free-credentials"/>
+    <keyword type="function" name="gnutls_certificate_allocate_credentials ()" link="gnutls-gnutls.html#gnutls-certificate-allocate-credentials"/>
+    <keyword type="function" name="gnutls_certificate_free_keys ()" link="gnutls-gnutls.html#gnutls-certificate-free-keys"/>
+    <keyword type="function" name="gnutls_certificate_free_cas ()" link="gnutls-gnutls.html#gnutls-certificate-free-cas"/>
+    <keyword type="function" name="gnutls_certificate_free_ca_names ()" link="gnutls-gnutls.html#gnutls-certificate-free-ca-names"/>
+    <keyword type="function" name="gnutls_certificate_free_crls ()" link="gnutls-gnutls.html#gnutls-certificate-free-crls"/>
+    <keyword type="function" name="gnutls_certificate_set_dh_params ()" link="gnutls-gnutls.html#gnutls-certificate-set-dh-params"/>
+    <keyword type="function" name="gnutls_certificate_set_verify_flags ()" link="gnutls-gnutls.html#gnutls-certificate-set-verify-flags"/>
+    <keyword type="function" name="gnutls_certificate_set_verify_limits ()" link="gnutls-gnutls.html#gnutls-certificate-set-verify-limits"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_trust_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-file"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_trust_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-mem"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_crl_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-file"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_crl_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-mem"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_key_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_key_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem"/>
+    <keyword type="function" name="gnutls_certificate_send_x509_rdn_sequence ()" link="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_simple_pkcs12_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-file"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_simple_pkcs12_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem" since="2.8.0"/>
+    <keyword type="typedef" name="gnutls_x509_privkey_t" link="gnutls-gnutls.html#gnutls-x509-privkey-t"/>
+    <keyword type="struct" name="struct gnutls_x509_crl_int" link="gnutls-gnutls.html#gnutls-x509-crl-int"/>
+    <keyword type="typedef" name="gnutls_x509_crl_t" link="gnutls-gnutls.html#gnutls-x509-crl-t"/>
+    <keyword type="struct" name="struct gnutls_x509_crt_int" link="gnutls-gnutls.html#gnutls-x509-crt-int"/>
+    <keyword type="typedef" name="gnutls_x509_crt_t" link="gnutls-gnutls.html#gnutls-x509-crt-t"/>
+    <keyword type="struct" name="struct gnutls_openpgp_keyring_int" link="gnutls-gnutls.html#gnutls-openpgp-keyring-int"/>
+    <keyword type="typedef" name="gnutls_openpgp_keyring_t" link="gnutls-gnutls.html#gnutls-openpgp-keyring-t"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_key ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-key" since="2.4.0"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_trust ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-trust" since="2.4.0"/>
+    <keyword type="function" name="gnutls_certificate_set_x509_crl ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-crl" since="2.4.0"/>
+    <keyword type="function" name="gnutls_global_init ()" link="gnutls-gnutls.html#gnutls-global-init"/>
+    <keyword type="function" name="gnutls_global_deinit ()" link="gnutls-gnutls.html#gnutls-global-deinit"/>
+    <keyword type="function" name="mutex_init_func ()" link="gnutls-gnutls.html#mutex-init-func"/>
+    <keyword type="function" name="mutex_lock_func ()" link="gnutls-gnutls.html#mutex-lock-func"/>
+    <keyword type="function" name="mutex_unlock_func ()" link="gnutls-gnutls.html#mutex-unlock-func"/>
+    <keyword type="function" name="mutex_deinit_func ()" link="gnutls-gnutls.html#mutex-deinit-func"/>
+    <keyword type="function" name="gnutls_global_set_mutex ()" link="gnutls-gnutls.html#gnutls-global-set-mutex" since="2.12.0"/>
+    <keyword type="function" name="gnutls_alloc_function ()" link="gnutls-gnutls.html#gnutls-alloc-function"/>
+    <keyword type="function" name="gnutls_calloc_function ()" link="gnutls-gnutls.html#gnutls-calloc-function"/>
+    <keyword type="function" name="gnutls_is_secure_function ()" link="gnutls-gnutls.html#gnutls-is-secure-function"/>
+    <keyword type="function" name="gnutls_free_function ()" link="gnutls-gnutls.html#gnutls-free-function"/>
+    <keyword type="function" name="gnutls_realloc_function ()" link="gnutls-gnutls.html#gnutls-realloc-function"/>
+    <keyword type="function" name="gnutls_global_set_mem_functions ()" link="gnutls-gnutls.html#gnutls-global-set-mem-functions"/>
+    <keyword type="variable" name="gnutls_malloc" link="gnutls-gnutls.html#gnutls-malloc"/>
+    <keyword type="variable" name="gnutls_secure_malloc" link="gnutls-gnutls.html#gnutls-secure-malloc"/>
+    <keyword type="variable" name="gnutls_realloc" link="gnutls-gnutls.html#gnutls-realloc"/>
+    <keyword type="variable" name="gnutls_calloc" link="gnutls-gnutls.html#gnutls-calloc"/>
+    <keyword type="variable" name="gnutls_free" link="gnutls-gnutls.html#gnutls-free"/>
+    <keyword type="function" name="gnutls_strdup ()" link="gnutls-gnutls.html#gnutls-strdup"/>
+    <keyword type="function" name="gnutls_log_func ()" link="gnutls-gnutls.html#gnutls-log-func"/>
+    <keyword type="function" name="gnutls_global_set_log_function ()" link="gnutls-gnutls.html#gnutls-global-set-log-function"/>
+    <keyword type="function" name="gnutls_global_set_log_level ()" link="gnutls-gnutls.html#gnutls-global-set-log-level"/>
+    <keyword type="function" name="gnutls_dh_params_init ()" link="gnutls-gnutls.html#gnutls-dh-params-init"/>
+    <keyword type="function" name="gnutls_dh_params_deinit ()" link="gnutls-gnutls.html#gnutls-dh-params-deinit"/>
+    <keyword type="function" name="gnutls_dh_params_import_raw ()" link="gnutls-gnutls.html#gnutls-dh-params-import-raw"/>
+    <keyword type="function" name="gnutls_dh_params_import_pkcs3 ()" link="gnutls-gnutls.html#gnutls-dh-params-import-pkcs3"/>
+    <keyword type="function" name="gnutls_dh_params_generate2 ()" link="gnutls-gnutls.html#gnutls-dh-params-generate2"/>
+    <keyword type="function" name="gnutls_dh_params_export_pkcs3 ()" link="gnutls-gnutls.html#gnutls-dh-params-export-pkcs3"/>
+    <keyword type="function" name="gnutls_dh_params_export_raw ()" link="gnutls-gnutls.html#gnutls-dh-params-export-raw"/>
+    <keyword type="function" name="gnutls_dh_params_cpy ()" link="gnutls-gnutls.html#gnutls-dh-params-cpy"/>
+    <keyword type="function" name="gnutls_pull_func ()" link="gnutls-gnutls.html#gnutls-pull-func"/>
+    <keyword type="function" name="gnutls_push_func ()" link="gnutls-gnutls.html#gnutls-push-func"/>
+    <keyword type="function" name="gnutls_vec_push_func ()" link="gnutls-gnutls.html#gnutls-vec-push-func"/>
+    <keyword type="function" name="gnutls_errno_func ()" link="gnutls-gnutls.html#gnutls-errno-func"/>
+    <keyword type="function" name="gnutls_transport_set_ptr ()" link="gnutls-gnutls.html#gnutls-transport-set-ptr"/>
+    <keyword type="function" name="gnutls_transport_set_ptr2 ()" link="gnutls-gnutls.html#gnutls-transport-set-ptr2"/>
+    <keyword type="function" name="gnutls_transport_get_ptr ()" link="gnutls-gnutls.html#gnutls-transport-get-ptr"/>
+    <keyword type="function" name="gnutls_transport_get_ptr2 ()" link="gnutls-gnutls.html#gnutls-transport-get-ptr2"/>
+    <keyword type="function" name="gnutls_transport_set_push_function ()" link="gnutls-gnutls.html#gnutls-transport-set-push-function"/>
+    <keyword type="function" name="gnutls_transport_set_pull_function ()" link="gnutls-gnutls.html#gnutls-transport-set-pull-function"/>
+    <keyword type="function" name="gnutls_transport_set_errno_function ()" link="gnutls-gnutls.html#gnutls-transport-set-errno-function" since="2.12.0"/>
+    <keyword type="function" name="gnutls_transport_set_errno ()" link="gnutls-gnutls.html#gnutls-transport-set-errno"/>
+    <keyword type="function" name="gnutls_session_set_ptr ()" link="gnutls-gnutls.html#gnutls-session-set-ptr"/>
+    <keyword type="function" name="gnutls_session_get_ptr ()" link="gnutls-gnutls.html#gnutls-session-get-ptr"/>
+    <keyword type="function" name="gnutls_openpgp_send_cert ()" link="gnutls-gnutls.html#gnutls-openpgp-send-cert"/>
+    <keyword type="function" name="gnutls_fingerprint ()" link="gnutls-gnutls.html#gnutls-fingerprint"/>
+    <keyword type="function" name="gnutls_srp_free_client_credentials ()" link="gnutls-gnutls.html#gnutls-srp-free-client-credentials"/>
+    <keyword type="function" name="gnutls_srp_allocate_client_credentials ()" link="gnutls-gnutls.html#gnutls-srp-allocate-client-credentials"/>
+    <keyword type="function" name="gnutls_srp_set_client_credentials ()" link="gnutls-gnutls.html#gnutls-srp-set-client-credentials"/>
+    <keyword type="function" name="gnutls_srp_free_server_credentials ()" link="gnutls-gnutls.html#gnutls-srp-free-server-credentials"/>
+    <keyword type="function" name="gnutls_srp_allocate_server_credentials ()" link="gnutls-gnutls.html#gnutls-srp-allocate-server-credentials"/>
+    <keyword type="function" name="gnutls_srp_set_server_credentials_file ()" link="gnutls-gnutls.html#gnutls-srp-set-server-credentials-file"/>
+    <keyword type="function" name="gnutls_srp_server_get_username ()" link="gnutls-gnutls.html#gnutls-srp-server-get-username"/>
+    <keyword type="function" name="gnutls_srp_set_prime_bits ()" link="gnutls-gnutls.html#gnutls-srp-set-prime-bits" since="2.6.0"/>
+    <keyword type="function" name="gnutls_srp_verifier ()" link="gnutls-gnutls.html#gnutls-srp-verifier"/>
+    <keyword type="variable" name="gnutls_srp_2048_group_prime" link="gnutls-gnutls.html#gnutls-srp-2048-group-prime"/>
+    <keyword type="variable" name="gnutls_srp_2048_group_generator" link="gnutls-gnutls.html#gnutls-srp-2048-group-generator"/>
+    <keyword type="variable" name="gnutls_srp_1536_group_prime" link="gnutls-gnutls.html#gnutls-srp-1536-group-prime"/>
+    <keyword type="variable" name="gnutls_srp_1536_group_generator" link="gnutls-gnutls.html#gnutls-srp-1536-group-generator"/>
+    <keyword type="variable" name="gnutls_srp_1024_group_prime" link="gnutls-gnutls.html#gnutls-srp-1024-group-prime"/>
+    <keyword type="variable" name="gnutls_srp_1024_group_generator" link="gnutls-gnutls.html#gnutls-srp-1024-group-generator"/>
+    <keyword type="function" name="gnutls_srp_set_server_credentials_function ()" link="gnutls-gnutls.html#gnutls-srp-set-server-credentials-function"/>
+    <keyword type="function" name="gnutls_srp_set_client_credentials_function ()" link="gnutls-gnutls.html#gnutls-srp-set-client-credentials-function"/>
+    <keyword type="function" name="gnutls_srp_base64_encode ()" link="gnutls-gnutls.html#gnutls-srp-base64-encode"/>
+    <keyword type="function" name="gnutls_srp_base64_encode_alloc ()" link="gnutls-gnutls.html#gnutls-srp-base64-encode-alloc"/>
+    <keyword type="function" name="gnutls_srp_base64_decode ()" link="gnutls-gnutls.html#gnutls-srp-base64-decode"/>
+    <keyword type="function" name="gnutls_srp_base64_decode_alloc ()" link="gnutls-gnutls.html#gnutls-srp-base64-decode-alloc"/>
+    <keyword type="enum" name="enum gnutls_psk_key_flags" link="gnutls-gnutls.html#gnutls-psk-key-flags"/>
+    <keyword type="function" name="gnutls_psk_free_client_credentials ()" link="gnutls-gnutls.html#gnutls-psk-free-client-credentials"/>
+    <keyword type="function" name="gnutls_psk_allocate_client_credentials ()" link="gnutls-gnutls.html#gnutls-psk-allocate-client-credentials"/>
+    <keyword type="function" name="gnutls_psk_set_client_credentials ()" link="gnutls-gnutls.html#gnutls-psk-set-client-credentials"/>
+    <keyword type="function" name="gnutls_psk_free_server_credentials ()" link="gnutls-gnutls.html#gnutls-psk-free-server-credentials"/>
+    <keyword type="function" name="gnutls_psk_allocate_server_credentials ()" link="gnutls-gnutls.html#gnutls-psk-allocate-server-credentials"/>
+    <keyword type="function" name="gnutls_psk_set_server_credentials_file ()" link="gnutls-gnutls.html#gnutls-psk-set-server-credentials-file"/>
+    <keyword type="function" name="gnutls_psk_set_server_credentials_hint ()" link="gnutls-gnutls.html#gnutls-psk-set-server-credentials-hint" since="2.4.0"/>
+    <keyword type="function" name="gnutls_psk_server_get_username ()" link="gnutls-gnutls.html#gnutls-psk-server-get-username"/>
+    <keyword type="function" name="gnutls_psk_client_get_hint ()" link="gnutls-gnutls.html#gnutls-psk-client-get-hint" since="2.4.0"/>
+    <keyword type="function" name="gnutls_psk_set_server_credentials_function ()" link="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function"/>
+    <keyword type="function" name="gnutls_psk_set_client_credentials_function ()" link="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function"/>
+    <keyword type="function" name="gnutls_hex_encode ()" link="gnutls-gnutls.html#gnutls-hex-encode"/>
+    <keyword type="function" name="gnutls_hex_decode ()" link="gnutls-gnutls.html#gnutls-hex-decode"/>
+    <keyword type="function" name="gnutls_psk_set_server_dh_params ()" link="gnutls-gnutls.html#gnutls-psk-set-server-dh-params"/>
+    <keyword type="function" name="gnutls_psk_set_server_params_function ()" link="gnutls-gnutls.html#gnutls-psk-set-server-params-function"/>
+    <keyword type="enum" name="enum gnutls_x509_subject_alt_name_t" link="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t"/>
+    <keyword type="struct" name="struct gnutls_openpgp_crt_int" link="gnutls-gnutls.html#gnutls-openpgp-crt-int"/>
+    <keyword type="typedef" name="gnutls_openpgp_crt_t" link="gnutls-gnutls.html#gnutls-openpgp-crt-t"/>
+    <keyword type="struct" name="struct gnutls_openpgp_privkey_int" link="gnutls-gnutls.html#gnutls-openpgp-privkey-int"/>
+    <keyword type="typedef" name="gnutls_openpgp_privkey_t" link="gnutls-gnutls.html#gnutls-openpgp-privkey-t"/>
+    <keyword type="struct" name="struct gnutls_pkcs11_privkey_st" link="gnutls-gnutls.html#gnutls-pkcs11-privkey-st"/>
+    <keyword type="typedef" name="gnutls_pkcs11_privkey_t" link="gnutls-gnutls.html#gnutls-pkcs11-privkey-t"/>
+    <keyword type="enum" name="enum gnutls_privkey_type_t" link="gnutls-gnutls.html#gnutls-privkey-type-t"/>
+    <keyword type="function" name="gnutls_auth_get_type ()" link="gnutls-gnutls.html#gnutls-auth-get-type"/>
+    <keyword type="function" name="gnutls_auth_server_get_type ()" link="gnutls-gnutls.html#gnutls-auth-server-get-type"/>
+    <keyword type="function" name="gnutls_auth_client_get_type ()" link="gnutls-gnutls.html#gnutls-auth-client-get-type"/>
+    <keyword type="function" name="gnutls_dh_set_prime_bits ()" link="gnutls-gnutls.html#gnutls-dh-set-prime-bits"/>
+    <keyword type="function" name="gnutls_dh_get_secret_bits ()" link="gnutls-gnutls.html#gnutls-dh-get-secret-bits"/>
+    <keyword type="function" name="gnutls_dh_get_peers_public_bits ()" link="gnutls-gnutls.html#gnutls-dh-get-peers-public-bits"/>
+    <keyword type="function" name="gnutls_dh_get_prime_bits ()" link="gnutls-gnutls.html#gnutls-dh-get-prime-bits"/>
+    <keyword type="function" name="gnutls_dh_get_group ()" link="gnutls-gnutls.html#gnutls-dh-get-group"/>
+    <keyword type="function" name="gnutls_dh_get_pubkey ()" link="gnutls-gnutls.html#gnutls-dh-get-pubkey"/>
+    <keyword type="function" name="gnutls_certificate_set_retrieve_function ()" link="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function" since="3.0"/>
+    <keyword type="function" name="gnutls_certificate_set_verify_function ()" link="gnutls-gnutls.html#gnutls-certificate-set-verify-function" since="2.10.0"/>
+    <keyword type="function" name="gnutls_certificate_server_set_request ()" link="gnutls-gnutls.html#gnutls-certificate-server-set-request"/>
+    <keyword type="function" name="gnutls_certificate_get_peers ()" link="gnutls-gnutls.html#gnutls-certificate-get-peers"/>
+    <keyword type="function" name="gnutls_certificate_get_ours ()" link="gnutls-gnutls.html#gnutls-certificate-get-ours"/>
+    <keyword type="function" name="gnutls_certificate_activation_time_peers ()" link="gnutls-gnutls.html#gnutls-certificate-activation-time-peers" deprecated="gnutls_certificate_verify_peers2() now verifies activation times."/>
+    <keyword type="function" name="gnutls_certificate_expiration_time_peers ()" link="gnutls-gnutls.html#gnutls-certificate-expiration-time-peers" deprecated="gnutls_certificate_verify_peers2() now verifies expiration times."/>
+    <keyword type="function" name="gnutls_certificate_client_get_request_status ()" link="gnutls-gnutls.html#gnutls-certificate-client-get-request-status"/>
+    <keyword type="function" name="gnutls_certificate_verify_peers2 ()" link="gnutls-gnutls.html#gnutls-certificate-verify-peers2"/>
+    <keyword type="function" name="gnutls_pem_base64_encode ()" link="gnutls-gnutls.html#gnutls-pem-base64-encode"/>
+    <keyword type="function" name="gnutls_pem_base64_decode ()" link="gnutls-gnutls.html#gnutls-pem-base64-decode"/>
+    <keyword type="function" name="gnutls_pem_base64_encode_alloc ()" link="gnutls-gnutls.html#gnutls-pem-base64-encode-alloc"/>
+    <keyword type="function" name="gnutls_pem_base64_decode_alloc ()" link="gnutls-gnutls.html#gnutls-pem-base64-decode-alloc"/>
+    <keyword type="macro" name="GNUTLS_KEY_DIGITAL_SIGNATURE" link="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KEY_NON_REPUDIATION" link="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KEY_KEY_ENCIPHERMENT" link="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KEY_DATA_ENCIPHERMENT" link="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KEY_KEY_AGREEMENT" link="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KEY_KEY_CERT_SIGN" link="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KEY_CRL_SIGN" link="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KEY_ENCIPHER_ONLY" link="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KEY_DECIPHER_ONLY" link="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS"/>
+    <keyword type="function" name="gnutls_certificate_set_params_function ()" link="gnutls-gnutls.html#gnutls-certificate-set-params-function"/>
+    <keyword type="function" name="gnutls_anon_set_params_function ()" link="gnutls-gnutls.html#gnutls-anon-set-params-function"/>
+    <keyword type="function" name="gnutls_psk_set_params_function ()" link="gnutls-gnutls.html#gnutls-psk-set-params-function"/>
+    <keyword type="function" name="gnutls_hex2bin ()" link="gnutls-gnutls.html#gnutls-hex2bin" since="2.4.0"/>
+    <keyword type="macro" name="GNUTLS_E_SUCCESS" link="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_CIPHER_TYPE" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_LARGE_PACKET" link="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNSUPPORTED_VERSION_PACKET" link="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-VERSION-PACKET:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNEXPECTED_PACKET_LENGTH" link="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET-LENGTH:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INVALID_SESSION" link="gnutls-gnutls.html#GNUTLS-E-INVALID-SESSION:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_FATAL_ALERT_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNEXPECTED_PACKET" link="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_WARNING_ALERT_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ERROR_IN_FINISHED_PACKET" link="gnutls-gnutls.html#GNUTLS-E-ERROR-IN-FINISHED-PACKET:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET" link="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-HANDSHAKE-PACKET:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_CIPHER_SUITE" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNWANTED_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNWANTED-ALGORITHM:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_MPI_SCAN_FAILED" link="gnutls-gnutls.html#GNUTLS-E-MPI-SCAN-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_DECRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_MEMORY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-MEMORY-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_DECOMPRESSION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-DECOMPRESSION-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_COMPRESSION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-COMPRESSION-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_AGAIN" link="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_EXPIRED" link="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_DB_ERROR" link="gnutls-gnutls.html#GNUTLS-E-DB-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_SRP_PWD_ERROR" link="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INSUFFICIENT_CREDENTIALS" link="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CREDENTIALS:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INSUFICIENT_CREDENTIALS" link="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CREDENTIALS:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INSUFFICIENT_CRED" link="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CRED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INSUFICIENT_CRED" link="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CRED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_HASH_FAILED" link="gnutls-gnutls.html#GNUTLS-E-HASH-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_BASE64_DECODING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-BASE64-DECODING-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_MPI_PRINT_FAILED" link="gnutls-gnutls.html#GNUTLS-E-MPI-PRINT-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_REHANDSHAKE" link="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_GOT_APPLICATION_DATA" link="gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_RECORD_LIMIT_REACHED" link="gnutls-gnutls.html#GNUTLS-E-RECORD-LIMIT-REACHED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ENCRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-ENCRYPTION-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PK_ENCRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-PK-ENCRYPTION-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PK_DECRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-PK-DECRYPTION-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PK_SIGN_FAILED" link="gnutls-gnutls.html#GNUTLS-E-PK-SIGN-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION" link="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-CRITICAL-EXTENSION:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_KEY_USAGE_VIOLATION" link="gnutls-gnutls.html#GNUTLS-E-KEY-USAGE-VIOLATION:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_NO_CERTIFICATE_FOUND" link="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INVALID_REQUEST" link="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_SHORT_MEMORY_BUFFER" link="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INTERRUPTED" link="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PUSH_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PUSH-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PULL_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PULL-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER" link="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE" link="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS1_WRONG_PAD" link="gnutls-gnutls.html#GNUTLS-E-PKCS1-WRONG-PAD:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION" link="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-EXTENSION:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INTERNAL_ERROR" link="gnutls-gnutls.html#GNUTLS-E-INTERNAL-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_DH_PRIME_UNACCEPTABLE" link="gnutls-gnutls.html#GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_FILE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-FILE-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_TOO_MANY_EMPTY_PACKETS" link="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-EMPTY-PACKETS:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_PK_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PK-ALGORITHM:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_NO_TEMPORARY_RSA_PARAMS" link="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-RSA-PARAMS:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_NO_COMPRESSION_ALGORITHMS" link="gnutls-gnutls.html#GNUTLS-E-NO-COMPRESSION-ALGORITHMS:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_NO_CIPHER_SUITES" link="gnutls-gnutls.html#GNUTLS-E-NO-CIPHER-SUITES:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_OPENPGP_GETKEY_FAILED" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-GETKEY-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PK_SIG_VERIFY_FAILED" link="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ILLEGAL_SRP_USERNAME" link="gnutls-gnutls.html#GNUTLS-E-ILLEGAL-SRP-USERNAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_SRP_PWD_PARSING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-PARSING-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_NO_TEMPORARY_DH_PARAMS" link="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-DH-PARAMS:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_ELEMENT_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-E-ASN1-ELEMENT-NOT-FOUND:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-E-ASN1-IDENTIFIER-NOT-FOUND:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_DER_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_VALUE_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_GENERIC_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-GENERIC-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_VALUE_NOT_VALID" link="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-VALID:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_TAG_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_TAG_IMPLICIT" link="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-IMPLICIT:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_TYPE_ANY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-TYPE-ANY-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_SYNTAX_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-SYNTAX-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_ASN1_DER_OVERFLOW" link="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-OVERFLOW:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_OPENPGP_UID_REVOKED" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-UID-REVOKED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_CERTIFICATE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_X509_CERTIFICATE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-X509-CERTIFICATE-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_CERTIFICATE_KEY_MISMATCH" link="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE" link="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-CERTIFICATE-TYPE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_X509_UNKNOWN_SAN" link="gnutls-gnutls.html#GNUTLS-E-X509-UNKNOWN-SAN:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-FINGERPRINT-UNSUPPORTED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE" link="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-ATTRIBUTE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_HASH_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-CONTENT-TYPE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-BAG-TYPE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INVALID_PASSWORD" link="gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_MAC_VERIFY_FAILED" link="gnutls-gnutls.html#GNUTLS-E-MAC-VERIFY-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_CONSTRAINT_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CONSTRAINT-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_WARNING_IA_IPHF_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_WARNING_IA_FPHF_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_IA_VERIFY_FAILED" link="gnutls-gnutls.html#GNUTLS-E-IA-VERIFY-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-ALGORITHM:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-SIGNATURE-ALGORITHM:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_SAFE_RENEGOTIATION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-SAFE-RENEGOTIATION-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED" link="gnutls-gnutls.html#GNUTLS-E-UNSAFE-RENEGOTIATION-DENIED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNKNOWN_SRP_USERNAME" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-SRP-USERNAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_BASE64_ENCODING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-BASE64-ENCODING-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY" link="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-GCRYPT-LIBRARY:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY" link="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-CRYPTO-LIBRARY:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY" link="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-LIBTASN1-LIBRARY:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_OPENPGP_KEYRING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-KEYRING-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_X509_UNSUPPORTED_OID" link="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-OID:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_RANDOM_FAILED" link="gnutls-gnutls.html#GNUTLS-E-RANDOM-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR" link="gnutls-gnutls.html#GNUTLS-E-BASE64-UNEXPECTED-HEADER-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_OPENPGP_SUBKEY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-SUBKEY-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_CRYPTO_ALREADY_REGISTERED" link="gnutls-gnutls.html#GNUTLS-E-CRYPTO-ALREADY-REGISTERED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_HANDSHAKE_TOO_LARGE" link="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_CRYPTODEV_IOCTL_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-IOCTL-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_CRYPTODEV_DEVICE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-DEVICE-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_LOAD_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-LOAD-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PARSING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_PIN_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_SLOT_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-SLOT-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_LOCKING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-LOCKING-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_ATTRIBUTE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-ATTRIBUTE-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_DEVICE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-DEVICE-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_DATA_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-DATA-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-UNSUPPORTED-FEATURE-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_KEY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-KEY-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_PIN_EXPIRED" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-EXPIRED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_PIN_LOCKED" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-LOCKED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_SESSION_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-SESSION-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_SIGNATURE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-SIGNATURE-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_TOKEN_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-TOKEN-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_PKCS11_USER_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-USER-ERROR:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_CRYPTO_INIT_FAILED" link="gnutls-gnutls.html#GNUTLS-E-CRYPTO-INIT-FAILED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_UNIMPLEMENTED_FEATURE" link="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_APPLICATION_ERROR_MAX" link="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MAX:CAPS"/>
+    <keyword type="macro" name="GNUTLS_E_APPLICATION_ERROR_MIN" link="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MIN:CAPS"/>
+    <keyword type="struct" name="struct gnutls_pubkey_st" link="gnutls-abstract.html#gnutls-pubkey-st"/>
+    <keyword type="typedef" name="gnutls_pubkey_t" link="gnutls-abstract.html#gnutls-pubkey-t"/>
+    <keyword type="function" name="gnutls_pubkey_init ()" link="gnutls-abstract.html#gnutls-pubkey-init" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_deinit ()" link="gnutls-abstract.html#gnutls-pubkey-deinit" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_get_pk_algorithm ()" link="gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_import_x509 ()" link="gnutls-abstract.html#gnutls-pubkey-import-x509" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_import_pkcs11 ()" link="gnutls-abstract.html#gnutls-pubkey-import-pkcs11" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_import_openpgp ()" link="gnutls-abstract.html#gnutls-pubkey-import-openpgp" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_get_preferred_hash_algorithm ()" link="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_get_pk_rsa_raw ()" link="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_get_pk_dsa_raw ()" link="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_export ()" link="gnutls-abstract.html#gnutls-pubkey-export" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_get_key_id ()" link="gnutls-abstract.html#gnutls-pubkey-get-key-id" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_get_key_usage ()" link="gnutls-abstract.html#gnutls-pubkey-get-key-usage" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_set_key_usage ()" link="gnutls-abstract.html#gnutls-pubkey-set-key-usage" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_import ()" link="gnutls-abstract.html#gnutls-pubkey-import" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_import_pkcs11_url ()" link="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_import_dsa_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-dsa-raw" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_import_rsa_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-rsa-raw" since="2.12.0"/>
+    <keyword type="function" name="gnutls_x509_crt_set_pubkey ()" link="gnutls-abstract.html#gnutls-x509-crt-set-pubkey" since="2.12.0"/>
+    <keyword type="function" name="gnutls_x509_crq_set_pubkey ()" link="gnutls-abstract.html#gnutls-x509-crq-set-pubkey" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pubkey_verify_hash ()" link="gnutls-abstract.html#gnutls-pubkey-verify-hash" since="3.0"/>
+    <keyword type="function" name="gnutls_pubkey_get_verify_algorithm ()" link="gnutls-abstract.html#gnutls-pubkey-get-verify-algorithm" since="2.12.0"/>
+    <keyword type="struct" name="struct gnutls_privkey_st" link="gnutls-abstract.html#gnutls-privkey-st"/>
+    <keyword type="typedef" name="gnutls_privkey_t" link="gnutls-abstract.html#gnutls-privkey-t"/>
+    <keyword type="function" name="gnutls_privkey_init ()" link="gnutls-abstract.html#gnutls-privkey-init" since="2.12.0"/>
+    <keyword type="function" name="gnutls_privkey_deinit ()" link="gnutls-abstract.html#gnutls-privkey-deinit" since="2.12.0"/>
+    <keyword type="function" name="gnutls_privkey_get_pk_algorithm ()" link="gnutls-abstract.html#gnutls-privkey-get-pk-algorithm" since="2.12.0"/>
+    <keyword type="function" name="gnutls_privkey_get_type ()" link="gnutls-abstract.html#gnutls-privkey-get-type" since="2.12.0"/>
+    <keyword type="macro" name="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE" link="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"/>
+    <keyword type="function" name="gnutls_privkey_import_pkcs11 ()" link="gnutls-abstract.html#gnutls-privkey-import-pkcs11" since="2.12.0"/>
+    <keyword type="function" name="gnutls_privkey_import_x509 ()" link="gnutls-abstract.html#gnutls-privkey-import-x509" since="2.12.0"/>
+    <keyword type="function" name="gnutls_privkey_import_openpgp ()" link="gnutls-abstract.html#gnutls-privkey-import-openpgp" since="2.12.0"/>
+    <keyword type="function" name="gnutls_privkey_sign_data ()" link="gnutls-abstract.html#gnutls-privkey-sign-data" since="2.12.0"/>
+    <keyword type="function" name="gnutls_privkey_sign_hash ()" link="gnutls-abstract.html#gnutls-privkey-sign-hash" since="2.12.0"/>
+    <keyword type="function" name="gnutls_privkey_decrypt_data ()" link="gnutls-abstract.html#gnutls-privkey-decrypt-data" since="2.12.0"/>
+    <keyword type="function" name="gnutls_x509_crt_privkey_sign ()" link="gnutls-abstract.html#gnutls-x509-crt-privkey-sign"/>
+    <keyword type="function" name="gnutls_x509_crl_privkey_sign ()" link="gnutls-abstract.html#gnutls-x509-crl-privkey-sign"/>
+    <keyword type="function" name="gnutls_x509_crq_privkey_sign ()" link="gnutls-abstract.html#gnutls-x509-crq-privkey-sign" since="2.12.0"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_COUNTRY_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-COUNTRY-NAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_ORGANIZATION_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_COMMON_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-COMMON-NAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_LOCALITY_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-LOCALITY-NAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_INITIALS" link="gnutls-x509.html#GNUTLS-OID-X520-INITIALS:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_GENERATION_QUALIFIER" link="gnutls-x509.html#GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_SURNAME" link="gnutls-x509.html#GNUTLS-OID-X520-SURNAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_GIVEN_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-GIVEN-NAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_TITLE" link="gnutls-x509.html#GNUTLS-OID-X520-TITLE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_DN_QUALIFIER" link="gnutls-x509.html#GNUTLS-OID-X520-DN-QUALIFIER:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_PSEUDONYM" link="gnutls-x509.html#GNUTLS-OID-X520-PSEUDONYM:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_POSTALCODE" link="gnutls-x509.html#GNUTLS-OID-X520-POSTALCODE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_X520_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-NAME:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_LDAP_DC" link="gnutls-x509.html#GNUTLS-OID-LDAP-DC:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_LDAP_UID" link="gnutls-x509.html#GNUTLS-OID-LDAP-UID:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_PKCS9_EMAIL" link="gnutls-x509.html#GNUTLS-OID-PKCS9-EMAIL:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_PKIX_DATE_OF_BIRTH" link="gnutls-x509.html#GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_PKIX_PLACE_OF_BIRTH" link="gnutls-x509.html#GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_PKIX_GENDER" link="gnutls-x509.html#GNUTLS-OID-PKIX-GENDER:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP" link="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS"/>
+    <keyword type="macro" name="GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE" link="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KP_TLS_WWW_SERVER" link="gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KP_TLS_WWW_CLIENT" link="gnutls-x509.html#GNUTLS-KP-TLS-WWW-CLIENT:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KP_CODE_SIGNING" link="gnutls-x509.html#GNUTLS-KP-CODE-SIGNING:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KP_EMAIL_PROTECTION" link="gnutls-x509.html#GNUTLS-KP-EMAIL-PROTECTION:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KP_TIME_STAMPING" link="gnutls-x509.html#GNUTLS-KP-TIME-STAMPING:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KP_OCSP_SIGNING" link="gnutls-x509.html#GNUTLS-KP-OCSP-SIGNING:CAPS"/>
+    <keyword type="macro" name="GNUTLS_KP_ANY" link="gnutls-x509.html#GNUTLS-KP-ANY:CAPS"/>
+    <keyword type="macro" name="GNUTLS_FSAN_SET" link="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS"/>
+    <keyword type="macro" name="GNUTLS_FSAN_APPEND" link="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS"/>
+    <keyword type="enum" name="enum gnutls_certificate_import_flags" link="gnutls-x509.html#gnutls-certificate-import-flags"/>
+    <keyword type="function" name="gnutls_x509_crt_init ()" link="gnutls-x509.html#gnutls-x509-crt-init"/>
+    <keyword type="function" name="gnutls_x509_crt_deinit ()" link="gnutls-x509.html#gnutls-x509-crt-deinit"/>
+    <keyword type="function" name="gnutls_x509_crt_import ()" link="gnutls-x509.html#gnutls-x509-crt-import"/>
+    <keyword type="function" name="gnutls_x509_crt_list_import ()" link="gnutls-x509.html#gnutls-x509-crt-list-import"/>
+    <keyword type="function" name="gnutls_x509_crt_export ()" link="gnutls-x509.html#gnutls-x509-crt-export"/>
+    <keyword type="function" name="gnutls_x509_crt_get_issuer_dn ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn"/>
+    <keyword type="function" name="gnutls_x509_crt_get_issuer_dn_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_get_issuer_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_get_dn ()" link="gnutls-x509.html#gnutls-x509-crt-get-dn"/>
+    <keyword type="function" name="gnutls_x509_crt_get_dn_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-dn-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_get_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-dn-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_check_hostname ()" link="gnutls-x509.html#gnutls-x509-crt-check-hostname"/>
+    <keyword type="function" name="gnutls_x509_crt_get_signature_algorithm ()" link="gnutls-x509.html#gnutls-x509-crt-get-signature-algorithm"/>
+    <keyword type="function" name="gnutls_x509_crt_get_signature ()" link="gnutls-x509.html#gnutls-x509-crt-get-signature"/>
+    <keyword type="function" name="gnutls_x509_crt_get_version ()" link="gnutls-x509.html#gnutls-x509-crt-get-version"/>
+    <keyword type="function" name="gnutls_x509_crt_get_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-get-key-id"/>
+    <keyword type="function" name="gnutls_x509_crt_set_authority_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-set-authority-key-id"/>
+    <keyword type="function" name="gnutls_x509_crt_get_authority_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-get-authority-key-id"/>
+    <keyword type="function" name="gnutls_x509_crt_get_subject_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-key-id"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_UNUSED" link="gnutls-x509.html#GNUTLS-CRL-REASON-UNUSED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_KEY_COMPROMISE" link="gnutls-x509.html#GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_CA_COMPROMISE" link="gnutls-x509.html#GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_AFFILIATION_CHANGED" link="gnutls-x509.html#GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_SUPERSEDED" link="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEDED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_SUPERSEEDED" link="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEEDED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_CESSATION_OF_OPERATION" link="gnutls-x509.html#GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_CERTIFICATE_HOLD" link="gnutls-x509.html#GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN" link="gnutls-x509.html#GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS"/>
+    <keyword type="macro" name="GNUTLS_CRL_REASON_AA_COMPROMISE" link="gnutls-x509.html#GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS"/>
+    <keyword type="function" name="gnutls_x509_crt_get_crl_dist_points ()" link="gnutls-x509.html#gnutls-x509-crt-get-crl-dist-points"/>
+    <keyword type="function" name="gnutls_x509_crt_set_crl_dist_points2 ()" link="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points2" since="2.6.0"/>
+    <keyword type="function" name="gnutls_x509_crt_set_crl_dist_points ()" link="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points"/>
+    <keyword type="function" name="gnutls_x509_crt_cpy_crl_dist_points ()" link="gnutls-x509.html#gnutls-x509-crt-cpy-crl-dist-points"/>
+    <keyword type="function" name="gnutls_x509_crt_get_activation_time ()" link="gnutls-x509.html#gnutls-x509-crt-get-activation-time"/>
+    <keyword type="function" name="gnutls_x509_crt_get_expiration_time ()" link="gnutls-x509.html#gnutls-x509-crt-get-expiration-time"/>
+    <keyword type="function" name="gnutls_x509_crt_get_serial ()" link="gnutls-x509.html#gnutls-x509-crt-get-serial"/>
+    <keyword type="function" name="gnutls_x509_crt_get_pk_algorithm ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-algorithm"/>
+    <keyword type="function" name="gnutls_x509_crt_get_pk_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-rsa-raw"/>
+    <keyword type="function" name="gnutls_x509_crt_get_pk_dsa_raw ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-dsa-raw"/>
+    <keyword type="function" name="gnutls_x509_crt_get_subject_alt_name ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name"/>
+    <keyword type="function" name="gnutls_x509_crt_get_subject_alt_name2 ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name2"/>
+    <keyword type="function" name="gnutls_x509_crt_get_subject_alt_othername_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_get_issuer_alt_name ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" since="2.10.0"/>
+    <keyword type="function" name="gnutls_x509_crt_get_issuer_alt_name2 ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name2" since="2.10.0"/>
+    <keyword type="function" name="gnutls_x509_crt_get_issuer_alt_othername_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-othername-oid" since="2.10.0"/>
+    <keyword type="function" name="gnutls_x509_crt_get_ca_status ()" link="gnutls-x509.html#gnutls-x509-crt-get-ca-status"/>
+    <keyword type="function" name="gnutls_x509_crt_get_basic_constraints ()" link="gnutls-x509.html#gnutls-x509-crt-get-basic-constraints"/>
+    <keyword type="function" name="gnutls_x509_crt_get_key_usage ()" link="gnutls-x509.html#gnutls-x509-crt-get-key-usage"/>
+    <keyword type="function" name="gnutls_x509_crt_set_key_usage ()" link="gnutls-x509.html#gnutls-x509-crt-set-key-usage"/>
+    <keyword type="function" name="gnutls_x509_crt_get_proxy ()" link="gnutls-x509.html#gnutls-x509-crt-get-proxy"/>
+    <keyword type="function" name="gnutls_x509_dn_oid_known ()" link="gnutls-x509.html#gnutls-x509-dn-oid-known"/>
+    <keyword type="function" name="gnutls_x509_crt_get_extension_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_get_extension_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_get_extension_info ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-info"/>
+    <keyword type="function" name="gnutls_x509_crt_get_extension_data ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-data"/>
+    <keyword type="function" name="gnutls_x509_crt_set_extension_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-extension-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_set_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_set_issuer_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-issuer-dn-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_set_version ()" link="gnutls-x509.html#gnutls-x509-crt-set-version"/>
+    <keyword type="function" name="gnutls_x509_crt_set_key ()" link="gnutls-x509.html#gnutls-x509-crt-set-key"/>
+    <keyword type="function" name="gnutls_x509_crt_set_ca_status ()" link="gnutls-x509.html#gnutls-x509-crt-set-ca-status"/>
+    <keyword type="function" name="gnutls_x509_crt_set_basic_constraints ()" link="gnutls-x509.html#gnutls-x509-crt-set-basic-constraints"/>
+    <keyword type="function" name="gnutls_x509_crt_set_subject_alternative_name ()" link="gnutls-x509.html#gnutls-x509-crt-set-subject-alternative-name"/>
+    <keyword type="function" name="gnutls_x509_crt_set_subject_alt_name ()" link="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" since="2.6.0"/>
+    <keyword type="function" name="gnutls_x509_crt_sign ()" link="gnutls-x509.html#gnutls-x509-crt-sign"/>
+    <keyword type="function" name="gnutls_x509_crt_sign2 ()" link="gnutls-x509.html#gnutls-x509-crt-sign2"/>
+    <keyword type="function" name="gnutls_x509_crt_set_activation_time ()" link="gnutls-x509.html#gnutls-x509-crt-set-activation-time"/>
+    <keyword type="function" name="gnutls_x509_crt_set_expiration_time ()" link="gnutls-x509.html#gnutls-x509-crt-set-expiration-time"/>
+    <keyword type="function" name="gnutls_x509_crt_set_serial ()" link="gnutls-x509.html#gnutls-x509-crt-set-serial"/>
+    <keyword type="function" name="gnutls_x509_crt_set_subject_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-set-subject-key-id"/>
+    <keyword type="function" name="gnutls_x509_crt_set_proxy_dn ()" link="gnutls-x509.html#gnutls-x509-crt-set-proxy-dn"/>
+    <keyword type="function" name="gnutls_x509_crt_set_proxy ()" link="gnutls-x509.html#gnutls-x509-crt-set-proxy"/>
+    <keyword type="function" name="gnutls_x509_crt_print ()" link="gnutls-x509.html#gnutls-x509-crt-print"/>
+    <keyword type="function" name="gnutls_x509_crl_print ()" link="gnutls-x509.html#gnutls-x509-crl-print"/>
+    <keyword type="function" name="gnutls_x509_crt_get_raw_issuer_dn ()" link="gnutls-x509.html#gnutls-x509-crt-get-raw-issuer-dn"/>
+    <keyword type="function" name="gnutls_x509_crt_get_raw_dn ()" link="gnutls-x509.html#gnutls-x509-crt-get-raw-dn"/>
+    <keyword type="function" name="gnutls_x509_rdn_get ()" link="gnutls-x509.html#gnutls-x509-rdn-get"/>
+    <keyword type="function" name="gnutls_x509_rdn_get_oid ()" link="gnutls-x509.html#gnutls-x509-rdn-get-oid" since="2.4.0"/>
+    <keyword type="function" name="gnutls_x509_rdn_get_by_oid ()" link="gnutls-x509.html#gnutls-x509-rdn-get-by-oid"/>
+    <keyword type="typedef" name="gnutls_x509_dn_t" link="gnutls-x509.html#gnutls-x509-dn-t"/>
+    <keyword type="function" name="gnutls_x509_crt_get_subject ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject"/>
+    <keyword type="function" name="gnutls_x509_crt_get_issuer ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer"/>
+    <keyword type="function" name="gnutls_x509_dn_get_rdn_ava ()" link="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava"/>
+    <keyword type="function" name="gnutls_x509_dn_init ()" link="gnutls-x509.html#gnutls-x509-dn-init" since="2.4.0"/>
+    <keyword type="function" name="gnutls_x509_dn_import ()" link="gnutls-x509.html#gnutls-x509-dn-import" since="2.4.0"/>
+    <keyword type="function" name="gnutls_x509_dn_export ()" link="gnutls-x509.html#gnutls-x509-dn-export"/>
+    <keyword type="function" name="gnutls_x509_dn_deinit ()" link="gnutls-x509.html#gnutls-x509-dn-deinit" since="2.4.0"/>
+    <keyword type="function" name="gnutls_x509_crl_init ()" link="gnutls-x509.html#gnutls-x509-crl-init"/>
+    <keyword type="function" name="gnutls_x509_crl_deinit ()" link="gnutls-x509.html#gnutls-x509-crl-deinit"/>
+    <keyword type="function" name="gnutls_x509_crl_import ()" link="gnutls-x509.html#gnutls-x509-crl-import"/>
+    <keyword type="function" name="gnutls_x509_crl_export ()" link="gnutls-x509.html#gnutls-x509-crl-export"/>
+    <keyword type="function" name="gnutls_x509_crl_get_issuer_dn ()" link="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn"/>
+    <keyword type="function" name="gnutls_x509_crl_get_issuer_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crl_get_dn_oid ()" link="gnutls-x509.html#gnutls-x509-crl-get-dn-oid"/>
+    <keyword type="function" name="gnutls_x509_crl_get_signature_algorithm ()" link="gnutls-x509.html#gnutls-x509-crl-get-signature-algorithm"/>
+    <keyword type="function" name="gnutls_x509_crl_get_signature ()" link="gnutls-x509.html#gnutls-x509-crl-get-signature"/>
+    <keyword type="function" name="gnutls_x509_crl_get_version ()" link="gnutls-x509.html#gnutls-x509-crl-get-version"/>
+    <keyword type="function" name="gnutls_x509_crl_get_this_update ()" link="gnutls-x509.html#gnutls-x509-crl-get-this-update"/>
+    <keyword type="function" name="gnutls_x509_crl_get_next_update ()" link="gnutls-x509.html#gnutls-x509-crl-get-next-update"/>
+    <keyword type="function" name="gnutls_x509_crl_get_crt_count ()" link="gnutls-x509.html#gnutls-x509-crl-get-crt-count"/>
+    <keyword type="function" name="gnutls_x509_crl_get_crt_serial ()" link="gnutls-x509.html#gnutls-x509-crl-get-crt-serial"/>
+    <keyword type="macro" name="gnutls_x509_crl_get_certificate_count" link="gnutls-x509.html#gnutls-x509-crl-get-certificate-count"/>
+    <keyword type="macro" name="gnutls_x509_crl_get_certificate" link="gnutls-x509.html#gnutls-x509-crl-get-certificate"/>
+    <keyword type="function" name="gnutls_x509_crl_check_issuer ()" link="gnutls-x509.html#gnutls-x509-crl-check-issuer"/>
+    <keyword type="function" name="gnutls_x509_crl_set_version ()" link="gnutls-x509.html#gnutls-x509-crl-set-version"/>
+    <keyword type="function" name="gnutls_x509_crl_sign2 ()" link="gnutls-x509.html#gnutls-x509-crl-sign2"/>
+    <keyword type="function" name="gnutls_x509_crl_set_this_update ()" link="gnutls-x509.html#gnutls-x509-crl-set-this-update"/>
+    <keyword type="function" name="gnutls_x509_crl_set_next_update ()" link="gnutls-x509.html#gnutls-x509-crl-set-next-update"/>
+    <keyword type="function" name="gnutls_x509_crl_set_crt_serial ()" link="gnutls-x509.html#gnutls-x509-crl-set-crt-serial"/>
+    <keyword type="function" name="gnutls_x509_crl_set_crt ()" link="gnutls-x509.html#gnutls-x509-crl-set-crt"/>
+    <keyword type="function" name="gnutls_x509_crl_get_authority_key_id ()" link="gnutls-x509.html#gnutls-x509-crl-get-authority-key-id" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crl_get_number ()" link="gnutls-x509.html#gnutls-x509-crl-get-number" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crl_get_extension_oid ()" link="gnutls-x509.html#gnutls-x509-crl-get-extension-oid" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crl_get_extension_info ()" link="gnutls-x509.html#gnutls-x509-crl-get-extension-info" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crl_get_extension_data ()" link="gnutls-x509.html#gnutls-x509-crl-get-extension-data" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crl_set_authority_key_id ()" link="gnutls-x509.html#gnutls-x509-crl-set-authority-key-id" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crl_set_number ()" link="gnutls-x509.html#gnutls-x509-crl-set-number" since="2.8.0"/>
+    <keyword type="struct" name="struct gnutls_pkcs7_int" link="gnutls-x509.html#gnutls-pkcs7-int"/>
+    <keyword type="typedef" name="gnutls_pkcs7_t" link="gnutls-x509.html#gnutls-pkcs7-t"/>
+    <keyword type="function" name="gnutls_pkcs7_init ()" link="gnutls-x509.html#gnutls-pkcs7-init"/>
+    <keyword type="function" name="gnutls_pkcs7_deinit ()" link="gnutls-x509.html#gnutls-pkcs7-deinit"/>
+    <keyword type="function" name="gnutls_pkcs7_import ()" link="gnutls-x509.html#gnutls-pkcs7-import"/>
+    <keyword type="function" name="gnutls_pkcs7_export ()" link="gnutls-x509.html#gnutls-pkcs7-export"/>
+    <keyword type="function" name="gnutls_pkcs7_get_crt_count ()" link="gnutls-x509.html#gnutls-pkcs7-get-crt-count"/>
+    <keyword type="function" name="gnutls_pkcs7_get_crt_raw ()" link="gnutls-x509.html#gnutls-pkcs7-get-crt-raw"/>
+    <keyword type="function" name="gnutls_pkcs7_set_crt_raw ()" link="gnutls-x509.html#gnutls-pkcs7-set-crt-raw"/>
+    <keyword type="function" name="gnutls_pkcs7_set_crt ()" link="gnutls-x509.html#gnutls-pkcs7-set-crt"/>
+    <keyword type="function" name="gnutls_pkcs7_delete_crt ()" link="gnutls-x509.html#gnutls-pkcs7-delete-crt"/>
+    <keyword type="function" name="gnutls_pkcs7_get_crl_raw ()" link="gnutls-x509.html#gnutls-pkcs7-get-crl-raw"/>
+    <keyword type="function" name="gnutls_pkcs7_get_crl_count ()" link="gnutls-x509.html#gnutls-pkcs7-get-crl-count"/>
+    <keyword type="function" name="gnutls_pkcs7_set_crl_raw ()" link="gnutls-x509.html#gnutls-pkcs7-set-crl-raw"/>
+    <keyword type="function" name="gnutls_pkcs7_set_crl ()" link="gnutls-x509.html#gnutls-pkcs7-set-crl"/>
+    <keyword type="function" name="gnutls_pkcs7_delete_crl ()" link="gnutls-x509.html#gnutls-pkcs7-delete-crl"/>
+    <keyword type="enum" name="enum gnutls_certificate_verify_flags" link="gnutls-x509.html#gnutls-certificate-verify-flags"/>
+    <keyword type="function" name="gnutls_x509_crt_check_issuer ()" link="gnutls-x509.html#gnutls-x509-crt-check-issuer"/>
+    <keyword type="function" name="gnutls_x509_crt_list_verify ()" link="gnutls-x509.html#gnutls-x509-crt-list-verify"/>
+    <keyword type="function" name="gnutls_x509_crt_verify ()" link="gnutls-x509.html#gnutls-x509-crt-verify"/>
+    <keyword type="function" name="gnutls_x509_crl_verify ()" link="gnutls-x509.html#gnutls-x509-crl-verify"/>
+    <keyword type="function" name="gnutls_x509_crt_check_revocation ()" link="gnutls-x509.html#gnutls-x509-crt-check-revocation"/>
+    <keyword type="function" name="gnutls_x509_crt_get_fingerprint ()" link="gnutls-x509.html#gnutls-x509-crt-get-fingerprint"/>
+    <keyword type="function" name="gnutls_x509_crt_get_key_purpose_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-key-purpose-oid"/>
+    <keyword type="function" name="gnutls_x509_crt_set_key_purpose_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-key-purpose-oid"/>
+    <keyword type="enum" name="enum gnutls_pkcs_encrypt_flags_t" link="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t"/>
+    <keyword type="function" name="gnutls_x509_privkey_init ()" link="gnutls-x509.html#gnutls-x509-privkey-init"/>
+    <keyword type="function" name="gnutls_x509_privkey_deinit ()" link="gnutls-x509.html#gnutls-x509-privkey-deinit"/>
+    <keyword type="function" name="gnutls_x509_privkey_cpy ()" link="gnutls-x509.html#gnutls-x509-privkey-cpy"/>
+    <keyword type="function" name="gnutls_x509_privkey_import ()" link="gnutls-x509.html#gnutls-x509-privkey-import"/>
+    <keyword type="function" name="gnutls_x509_privkey_import_pkcs8 ()" link="gnutls-x509.html#gnutls-x509-privkey-import-pkcs8"/>
+    <keyword type="function" name="gnutls_x509_privkey_import_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw"/>
+    <keyword type="function" name="gnutls_x509_privkey_import_rsa_raw2 ()" link="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw2"/>
+    <keyword type="function" name="gnutls_x509_privkey_fix ()" link="gnutls-x509.html#gnutls-x509-privkey-fix"/>
+    <keyword type="function" name="gnutls_x509_privkey_export_dsa_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-export-dsa-raw"/>
+    <keyword type="function" name="gnutls_x509_privkey_import_dsa_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-import-dsa-raw"/>
+    <keyword type="function" name="gnutls_x509_privkey_get_pk_algorithm ()" link="gnutls-x509.html#gnutls-x509-privkey-get-pk-algorithm"/>
+    <keyword type="function" name="gnutls_x509_privkey_get_key_id ()" link="gnutls-x509.html#gnutls-x509-privkey-get-key-id"/>
+    <keyword type="function" name="gnutls_x509_privkey_generate ()" link="gnutls-x509.html#gnutls-x509-privkey-generate"/>
+    <keyword type="function" name="gnutls_x509_privkey_export ()" link="gnutls-x509.html#gnutls-x509-privkey-export"/>
+    <keyword type="function" name="gnutls_x509_privkey_export_pkcs8 ()" link="gnutls-x509.html#gnutls-x509-privkey-export-pkcs8"/>
+    <keyword type="function" name="gnutls_x509_privkey_export_rsa_raw2 ()" link="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw2" since="2.12.0"/>
+    <keyword type="function" name="gnutls_x509_privkey_export_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw"/>
+    <keyword type="struct" name="struct gnutls_x509_crq_int" link="gnutls-x509.html#gnutls-x509-crq-int"/>
+    <keyword type="typedef" name="gnutls_x509_crq_t" link="gnutls-x509.html#gnutls-x509-crq-t"/>
+    <keyword type="function" name="gnutls_x509_crq_print ()" link="gnutls-x509.html#gnutls-x509-crq-print" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_init ()" link="gnutls-x509.html#gnutls-x509-crq-init"/>
+    <keyword type="function" name="gnutls_x509_crq_deinit ()" link="gnutls-x509.html#gnutls-x509-crq-deinit"/>
+    <keyword type="function" name="gnutls_x509_crq_import ()" link="gnutls-x509.html#gnutls-x509-crq-import"/>
+    <keyword type="function" name="gnutls_x509_crq_get_dn ()" link="gnutls-x509.html#gnutls-x509-crq-get-dn"/>
+    <keyword type="function" name="gnutls_x509_crq_get_dn_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-dn-oid"/>
+    <keyword type="function" name="gnutls_x509_crq_get_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-dn-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crq_set_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-set-dn-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crq_set_version ()" link="gnutls-x509.html#gnutls-x509-crq-set-version"/>
+    <keyword type="function" name="gnutls_x509_crq_get_version ()" link="gnutls-x509.html#gnutls-x509-crq-get-version"/>
+    <keyword type="function" name="gnutls_x509_crq_set_key ()" link="gnutls-x509.html#gnutls-x509-crq-set-key"/>
+    <keyword type="function" name="gnutls_x509_crq_sign2 ()" link="gnutls-x509.html#gnutls-x509-crq-sign2"/>
+    <keyword type="function" name="gnutls_x509_crq_set_challenge_password ()" link="gnutls-x509.html#gnutls-x509-crq-set-challenge-password"/>
+    <keyword type="function" name="gnutls_x509_crq_get_challenge_password ()" link="gnutls-x509.html#gnutls-x509-crq-get-challenge-password"/>
+    <keyword type="function" name="gnutls_x509_crq_set_attribute_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-set-attribute-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crq_get_attribute_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-attribute-by-oid"/>
+    <keyword type="function" name="gnutls_x509_crq_export ()" link="gnutls-x509.html#gnutls-x509-crq-export"/>
+    <keyword type="function" name="gnutls_x509_crt_set_crq ()" link="gnutls-x509.html#gnutls-x509-crt-set-crq"/>
+    <keyword type="function" name="gnutls_x509_crt_set_crq_extensions ()" link="gnutls-x509.html#gnutls-x509-crt-set-crq-extensions" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_set_key_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-crq-set-key-rsa-raw" since="2.6.0"/>
+    <keyword type="function" name="gnutls_x509_crq_set_subject_alt_name ()" link="gnutls-x509.html#gnutls-x509-crq-set-subject-alt-name" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_set_key_usage ()" link="gnutls-x509.html#gnutls-x509-crq-set-key-usage" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_set_basic_constraints ()" link="gnutls-x509.html#gnutls-x509-crq-set-basic-constraints" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_set_key_purpose_oid ()" link="gnutls-x509.html#gnutls-x509-crq-set-key-purpose-oid" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_key_purpose_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-key-purpose-oid" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_extension_data ()" link="gnutls-x509.html#gnutls-x509-crq-get-extension-data" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_extension_info ()" link="gnutls-x509.html#gnutls-x509-crq-get-extension-info" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_attribute_data ()" link="gnutls-x509.html#gnutls-x509-crq-get-attribute-data" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_attribute_info ()" link="gnutls-x509.html#gnutls-x509-crq-get-attribute-info" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_pk_algorithm ()" link="gnutls-x509.html#gnutls-x509-crq-get-pk-algorithm"/>
+    <keyword type="function" name="gnutls_x509_crq_get_key_id ()" link="gnutls-x509.html#gnutls-x509-crq-get-key-id" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_key_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-crq-get-key-rsa-raw" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_key_usage ()" link="gnutls-x509.html#gnutls-x509-crq-get-key-usage" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_basic_constraints ()" link="gnutls-x509.html#gnutls-x509-crq-get-basic-constraints" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_subject_alt_name ()" link="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_subject_alt_othername_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-othername-oid" since="2.8.0"/>
+    <keyword type="function" name="gnutls_x509_crq_get_extension_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid" since="2.8.0"/>
+    <keyword type="enum" name="enum gnutls_openpgp_crt_fmt_t" link="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t"/>
+    <keyword type="typedef" name="gnutls_openpgp_keyid_t" link="gnutls-openpgp.html#gnutls-openpgp-keyid-t"/>
+    <keyword type="function" name="gnutls_openpgp_crt_init ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-init"/>
+    <keyword type="function" name="gnutls_openpgp_crt_deinit ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-deinit"/>
+    <keyword type="function" name="gnutls_openpgp_crt_import ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-import"/>
+    <keyword type="function" name="gnutls_openpgp_crt_export ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-export"/>
+    <keyword type="function" name="gnutls_openpgp_crt_print ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-print"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_key_usage ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-usage"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_fingerprint ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-fingerprint"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_fingerprint ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_name ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-name"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_pk_algorithm ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-algorithm"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_version ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-version"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_creation_time ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-creation-time"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_expiration_time ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-expiration-time"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-id" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_check_hostname ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_revoked_status ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-revoked-status" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_count ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-count" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_idx ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-idx" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_revoked_status ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_pk_algorithm ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_creation_time ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_expiration_time ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_id ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-id"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_usage ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-usage" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_pk_dsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_pk_rsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_preferred_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-preferred-key-id"/>
+    <keyword type="function" name="gnutls_openpgp_crt_set_preferred_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_init ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-init"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_deinit ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-deinit"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_pk_algorithm ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_import ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-import"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_fingerprint ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-fingerprint" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_fingerprint ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-key-id" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_count ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-count" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_idx ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_revoked_status ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_revoked_status ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-revoked-status" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_pk_algorithm ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_expiration_time ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_id ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-id" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_creation_time ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_export_subkey_dsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_export_subkey_rsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_export_dsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_export_rsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_export ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export" since="2.4.0"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_set_preferred_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-set-preferred-key-id"/>
+    <keyword type="function" name="gnutls_openpgp_privkey_get_preferred_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-preferred-key-id"/>
+    <keyword type="function" name="gnutls_openpgp_crt_get_auth_subkey ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey"/>
+    <keyword type="function" name="gnutls_openpgp_keyring_init ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-init"/>
+    <keyword type="function" name="gnutls_openpgp_keyring_deinit ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-deinit"/>
+    <keyword type="function" name="gnutls_openpgp_keyring_import ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-import"/>
+    <keyword type="function" name="gnutls_openpgp_keyring_check_id ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-check-id"/>
+    <keyword type="function" name="gnutls_openpgp_crt_verify_ring ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-verify-ring"/>
+    <keyword type="function" name="gnutls_openpgp_crt_verify_self ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-verify-self"/>
+    <keyword type="function" name="gnutls_openpgp_keyring_get_crt ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt"/>
+    <keyword type="function" name="gnutls_openpgp_keyring_get_crt_count ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt-count"/>
+    <keyword type="function" name="gnutls_openpgp_recv_key_func ()" link="gnutls-openpgp.html#gnutls-openpgp-recv-key-func"/>
+    <keyword type="function" name="gnutls_openpgp_set_recv_key_function ()" link="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function"/>
+    <keyword type="function" name="gnutls_certificate_set_openpgp_key ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key"/>
+    <keyword type="function" name="gnutls_certificate_set_openpgp_key_file ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file"/>
+    <keyword type="function" name="gnutls_certificate_set_openpgp_key_mem ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem"/>
+    <keyword type="function" name="gnutls_certificate_set_openpgp_key_file2 ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file2" since="2.4.0"/>
+    <keyword type="function" name="gnutls_certificate_set_openpgp_key_mem2 ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem2" since="2.4.0"/>
+    <keyword type="function" name="gnutls_certificate_set_openpgp_keyring_mem ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-mem"/>
+    <keyword type="function" name="gnutls_certificate_set_openpgp_keyring_file ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-file"/>
+    <keyword type="typedef" name="gnutls_cipher_hd_t" link="gnutls-crypto.html#gnutls-cipher-hd-t"/>
+    <keyword type="function" name="gnutls_cipher_init ()" link="gnutls-crypto.html#gnutls-cipher-init" since="2.10.0"/>
+    <keyword type="function" name="gnutls_cipher_encrypt ()" link="gnutls-crypto.html#gnutls-cipher-encrypt" since="2.10.0"/>
+    <keyword type="function" name="gnutls_cipher_decrypt ()" link="gnutls-crypto.html#gnutls-cipher-decrypt" since="2.10.0"/>
+    <keyword type="function" name="gnutls_cipher_decrypt2 ()" link="gnutls-crypto.html#gnutls-cipher-decrypt2" since="2.12.0"/>
+    <keyword type="function" name="gnutls_cipher_encrypt2 ()" link="gnutls-crypto.html#gnutls-cipher-encrypt2" since="2.12.0"/>
+    <keyword type="function" name="gnutls_cipher_deinit ()" link="gnutls-crypto.html#gnutls-cipher-deinit" since="2.10.0"/>
+    <keyword type="function" name="gnutls_cipher_get_block_size ()" link="gnutls-crypto.html#gnutls-cipher-get-block-size" since="2.10.0"/>
+    <keyword type="typedef" name="gnutls_hash_hd_t" link="gnutls-crypto.html#gnutls-hash-hd-t"/>
+    <keyword type="typedef" name="gnutls_hmac_hd_t" link="gnutls-crypto.html#gnutls-hmac-hd-t"/>
+    <keyword type="function" name="gnutls_hmac_init ()" link="gnutls-crypto.html#gnutls-hmac-init" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hmac ()" link="gnutls-crypto.html#gnutls-hmac" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hmac_output ()" link="gnutls-crypto.html#gnutls-hmac-output" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hmac_deinit ()" link="gnutls-crypto.html#gnutls-hmac-deinit" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hmac_get_len ()" link="gnutls-crypto.html#gnutls-hmac-get-len" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hmac_fast ()" link="gnutls-crypto.html#gnutls-hmac-fast" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hash_init ()" link="gnutls-crypto.html#gnutls-hash-init" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hash ()" link="gnutls-crypto.html#gnutls-hash" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hash_output ()" link="gnutls-crypto.html#gnutls-hash-output" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hash_deinit ()" link="gnutls-crypto.html#gnutls-hash-deinit" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hash_get_len ()" link="gnutls-crypto.html#gnutls-hash-get-len" since="2.10.0"/>
+    <keyword type="function" name="gnutls_hash_fast ()" link="gnutls-crypto.html#gnutls-hash-fast" since="2.10.0"/>
+    <keyword type="enum" name="enum gnutls_rnd_level_t" link="gnutls-crypto.html#gnutls-rnd-level-t"/>
+    <keyword type="function" name="gnutls_rnd ()" link="gnutls-crypto.html#gnutls-rnd" since="2.12.0"/>
+    <keyword type="macro" name="GNUTLS_PKCS11_MAX_PIN_LEN" link="gnutls-pkcs11.html#GNUTLS-PKCS11-MAX-PIN-LEN:CAPS"/>
+    <keyword type="function" name="gnutls_pkcs11_token_callback_t ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_pin_callback_t ()" link="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" since="2.12.0"/>
+    <keyword type="struct" name="struct gnutls_pkcs11_obj_st" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-st"/>
+    <keyword type="typedef" name="gnutls_pkcs11_obj_t" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-t"/>
+    <keyword type="macro" name="GNUTLS_PKCS11_FLAG_MANUAL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS"/>
+    <keyword type="macro" name="GNUTLS_PKCS11_FLAG_AUTO" link="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS"/>
+    <keyword type="function" name="gnutls_pkcs11_init ()" link="gnutls-pkcs11.html#gnutls-pkcs11-init" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_deinit ()" link="gnutls-pkcs11.html#gnutls-pkcs11-deinit" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_set_token_function ()" link="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_set_pin_function ()" link="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_add_provider ()" link="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_obj_init ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-init" since="2.12.0"/>
+    <keyword type="macro" name="GNUTLS_PKCS11_OBJ_FLAG_LOGIN" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS"/>
+    <keyword type="macro" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"/>
+    <keyword type="macro" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS"/>
+    <keyword type="function" name="gnutls_pkcs11_obj_import_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_obj_export_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_obj_deinit ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_obj_export ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-export" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_copy_x509_crt ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_copy_x509_privkey ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_delete_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-delete-url" since="2.12.0"/>
+    <keyword type="enum" name="enum gnutls_pkcs11_obj_info_t" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t"/>
+    <keyword type="function" name="gnutls_pkcs11_obj_get_info ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info" since="2.12.0"/>
+    <keyword type="enum" name="enum gnutls_pkcs11_obj_attr_t" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t"/>
+    <keyword type="enum" name="enum gnutls_pkcs11_token_info_t" link="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t"/>
+    <keyword type="enum" name="enum gnutls_pkcs11_obj_type_t" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t"/>
+    <keyword type="function" name="gnutls_pkcs11_token_get_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-url" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_token_get_info ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-info" since="2.12.0"/>
+    <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_HW" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS"/>
+    <keyword type="function" name="gnutls_pkcs11_token_get_flags ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_obj_list_import_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url" since="2.12.0"/>
+    <keyword type="function" name="gnutls_x509_crt_import_pkcs11 ()" link="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11" since="2.12.0"/>
+    <keyword type="function" name="gnutls_x509_crt_import_pkcs11_url ()" link="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11-url" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_obj_get_type ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-type" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_type_get_name ()" link="gnutls-pkcs11.html#gnutls-pkcs11-type-get-name" since="2.12.0"/>
+    <keyword type="function" name="gnutls_x509_crt_list_import_pkcs11 ()" link="gnutls-pkcs11.html#gnutls-x509-crt-list-import-pkcs11" since="2.12.0"/>
+    <keyword type="function" name="gnutls_pkcs11_privkey_init ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-init"/>
+    <keyword type="function" name="gnutls_pkcs11_privkey_deinit ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit"/>
+    <keyword type="function" name="gnutls_pkcs11_privkey_get_pk_algorithm ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-pk-algorithm"/>
+    <keyword type="function" name="gnutls_pkcs11_privkey_get_info ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-info"/>
+    <keyword type="function" name="gnutls_pkcs11_privkey_import_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-import-url"/>
+    <keyword type="function" name="gnutls_pkcs11_privkey_export_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-url"/>
+    <keyword type="struct" name="struct gnutls_pkcs12_int" link="gnutls-pkcs12.html#gnutls-pkcs12-int"/>
+    <keyword type="typedef" name="gnutls_pkcs12_t" link="gnutls-pkcs12.html#gnutls-pkcs12-t"/>
+    <keyword type="struct" name="struct gnutls_pkcs12_bag_int" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-int"/>
+    <keyword type="typedef" name="gnutls_pkcs12_bag_t" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-t"/>
+    <keyword type="function" name="gnutls_pkcs12_init ()" link="gnutls-pkcs12.html#gnutls-pkcs12-init"/>
+    <keyword type="function" name="gnutls_pkcs12_deinit ()" link="gnutls-pkcs12.html#gnutls-pkcs12-deinit"/>
+    <keyword type="function" name="gnutls_pkcs12_import ()" link="gnutls-pkcs12.html#gnutls-pkcs12-import"/>
+    <keyword type="function" name="gnutls_pkcs12_export ()" link="gnutls-pkcs12.html#gnutls-pkcs12-export"/>
+    <keyword type="function" name="gnutls_pkcs12_get_bag ()" link="gnutls-pkcs12.html#gnutls-pkcs12-get-bag"/>
+    <keyword type="function" name="gnutls_pkcs12_set_bag ()" link="gnutls-pkcs12.html#gnutls-pkcs12-set-bag"/>
+    <keyword type="function" name="gnutls_pkcs12_generate_mac ()" link="gnutls-pkcs12.html#gnutls-pkcs12-generate-mac"/>
+    <keyword type="function" name="gnutls_pkcs12_verify_mac ()" link="gnutls-pkcs12.html#gnutls-pkcs12-verify-mac"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_decrypt ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-decrypt"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_encrypt ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-encrypt"/>
+    <keyword type="enum" name="enum gnutls_pkcs12_bag_type_t" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_get_type ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-type"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_get_data ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-data"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_set_data ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_set_crl ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crl"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_set_crt ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crt"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_init ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-init"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_deinit ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-deinit"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_get_count ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-count"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_get_key_id ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-key-id"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_set_key_id ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-key-id"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_get_friendly_name ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-friendly-name"/>
+    <keyword type="function" name="gnutls_pkcs12_bag_set_friendly_name ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-friendly-name"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-CIPHER-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_NULL" link="gnutls-gnutls.html#GNUTLS-CIPHER-NULL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_ARCFOUR_128" link="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR-128:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_3DES_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-3DES-CBC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_AES_128_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-CBC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_AES_256_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-CBC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_ARCFOUR_40" link="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR-40:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_CAMELLIA_128_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-128-CBC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_CAMELLIA_256_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-256-CBC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_RC2_40_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-RC2-40-CBC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_DES_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-DES-CBC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_AES_192_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-192-CBC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_AES_128_GCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-GCM:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_AES_256_GCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-GCM:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_IDEA_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-IDEA-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_3DES_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-3DES-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_CAST5_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAST5-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_BLOWFISH_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-BLOWFISH-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_SAFER_SK128_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-SAFER-SK128-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_AES128_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES128-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_AES192_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES192-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_AES256_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES256-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CIPHER_TWOFISH_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-TWOFISH-PGP-CFB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-KX-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_RSA" link="gnutls-gnutls.html#GNUTLS-KX-RSA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_DHE_DSS" link="gnutls-gnutls.html#GNUTLS-KX-DHE-DSS:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_DHE_RSA" link="gnutls-gnutls.html#GNUTLS-KX-DHE-RSA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_ANON_DH" link="gnutls-gnutls.html#GNUTLS-KX-ANON-DH:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_SRP" link="gnutls-gnutls.html#GNUTLS-KX-SRP:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_RSA_EXPORT" link="gnutls-gnutls.html#GNUTLS-KX-RSA-EXPORT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_SRP_RSA" link="gnutls-gnutls.html#GNUTLS-KX-SRP-RSA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_SRP_DSS" link="gnutls-gnutls.html#GNUTLS-KX-SRP-DSS:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_PSK" link="gnutls-gnutls.html#GNUTLS-KX-PSK:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_DHE_PSK" link="gnutls-gnutls.html#GNUTLS-KX-DHE-PSK:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_ANON_ECDH" link="gnutls-gnutls.html#GNUTLS-KX-ANON-ECDH:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_ECDHE_RSA" link="gnutls-gnutls.html#GNUTLS-KX-ECDHE-RSA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_ECDHE_ECDSA" link="gnutls-gnutls.html#GNUTLS-KX-ECDHE-ECDSA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_KX_ECDHE_PSK" link="gnutls-gnutls.html#GNUTLS-KX-ECDHE-PSK:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PARAMS_RSA_EXPORT" link="gnutls-gnutls.html#GNUTLS-PARAMS-RSA-EXPORT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PARAMS_DH" link="gnutls-gnutls.html#GNUTLS-PARAMS-DH:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PARAMS_ECDH" link="gnutls-gnutls.html#GNUTLS-PARAMS-ECDH:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRD_CERTIFICATE" link="gnutls-gnutls.html#GNUTLS-CRD-CERTIFICATE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRD_ANON" link="gnutls-gnutls.html#GNUTLS-CRD-ANON:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRD_SRP" link="gnutls-gnutls.html#GNUTLS-CRD-SRP:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRD_PSK" link="gnutls-gnutls.html#GNUTLS-CRD-PSK:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRD_IA" link="gnutls-gnutls.html#GNUTLS-CRD-IA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-MAC-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_NULL" link="gnutls-gnutls.html#GNUTLS-MAC-NULL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_MD5" link="gnutls-gnutls.html#GNUTLS-MAC-MD5:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_SHA1" link="gnutls-gnutls.html#GNUTLS-MAC-SHA1:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_RMD160" link="gnutls-gnutls.html#GNUTLS-MAC-RMD160:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_MD2" link="gnutls-gnutls.html#GNUTLS-MAC-MD2:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_SHA256" link="gnutls-gnutls.html#GNUTLS-MAC-SHA256:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_SHA384" link="gnutls-gnutls.html#GNUTLS-MAC-SHA384:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_SHA512" link="gnutls-gnutls.html#GNUTLS-MAC-SHA512:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_SHA224" link="gnutls-gnutls.html#GNUTLS-MAC-SHA224:CAPS"/>
+    <keyword type="constant" name="GNUTLS_MAC_AEAD" link="gnutls-gnutls.html#GNUTLS-MAC-AEAD:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_NULL" link="gnutls-gnutls.html#GNUTLS-DIG-NULL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_MD5" link="gnutls-gnutls.html#GNUTLS-DIG-MD5:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_SHA1" link="gnutls-gnutls.html#GNUTLS-DIG-SHA1:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_RMD160" link="gnutls-gnutls.html#GNUTLS-DIG-RMD160:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_MD2" link="gnutls-gnutls.html#GNUTLS-DIG-MD2:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_SHA256" link="gnutls-gnutls.html#GNUTLS-DIG-SHA256:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_SHA384" link="gnutls-gnutls.html#GNUTLS-DIG-SHA384:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_SHA512" link="gnutls-gnutls.html#GNUTLS-DIG-SHA512:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DIG_SHA224" link="gnutls-gnutls.html#GNUTLS-DIG-SHA224:CAPS"/>
+    <keyword type="constant" name="GNUTLS_COMP_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-COMP-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_COMP_NULL" link="gnutls-gnutls.html#GNUTLS-COMP-NULL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_COMP_DEFLATE" link="gnutls-gnutls.html#GNUTLS-COMP-DEFLATE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_COMP_ZLIB" link="gnutls-gnutls.html#GNUTLS-COMP-ZLIB:CAPS"/>
+    <keyword type="constant" name="GNUTLS_AL_WARNING" link="gnutls-gnutls.html#GNUTLS-AL-WARNING:CAPS"/>
+    <keyword type="constant" name="GNUTLS_AL_FATAL" link="gnutls-gnutls.html#GNUTLS-AL-FATAL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_CLOSE_NOTIFY" link="gnutls-gnutls.html#GNUTLS-A-CLOSE-NOTIFY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_UNEXPECTED_MESSAGE" link="gnutls-gnutls.html#GNUTLS-A-UNEXPECTED-MESSAGE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_BAD_RECORD_MAC" link="gnutls-gnutls.html#GNUTLS-A-BAD-RECORD-MAC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_DECRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-A-DECRYPTION-FAILED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_RECORD_OVERFLOW" link="gnutls-gnutls.html#GNUTLS-A-RECORD-OVERFLOW:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_DECOMPRESSION_FAILURE" link="gnutls-gnutls.html#GNUTLS-A-DECOMPRESSION-FAILURE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_HANDSHAKE_FAILURE" link="gnutls-gnutls.html#GNUTLS-A-HANDSHAKE-FAILURE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_SSL3_NO_CERTIFICATE" link="gnutls-gnutls.html#GNUTLS-A-SSL3-NO-CERTIFICATE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_BAD_CERTIFICATE" link="gnutls-gnutls.html#GNUTLS-A-BAD-CERTIFICATE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_UNSUPPORTED_CERTIFICATE" link="gnutls-gnutls.html#GNUTLS-A-UNSUPPORTED-CERTIFICATE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_CERTIFICATE_REVOKED" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-REVOKED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_CERTIFICATE_EXPIRED" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-EXPIRED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_CERTIFICATE_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_ILLEGAL_PARAMETER" link="gnutls-gnutls.html#GNUTLS-A-ILLEGAL-PARAMETER:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_UNKNOWN_CA" link="gnutls-gnutls.html#GNUTLS-A-UNKNOWN-CA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_ACCESS_DENIED" link="gnutls-gnutls.html#GNUTLS-A-ACCESS-DENIED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_DECODE_ERROR" link="gnutls-gnutls.html#GNUTLS-A-DECODE-ERROR:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_DECRYPT_ERROR" link="gnutls-gnutls.html#GNUTLS-A-DECRYPT-ERROR:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_EXPORT_RESTRICTION" link="gnutls-gnutls.html#GNUTLS-A-EXPORT-RESTRICTION:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_PROTOCOL_VERSION" link="gnutls-gnutls.html#GNUTLS-A-PROTOCOL-VERSION:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_INSUFFICIENT_SECURITY" link="gnutls-gnutls.html#GNUTLS-A-INSUFFICIENT-SECURITY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_INTERNAL_ERROR" link="gnutls-gnutls.html#GNUTLS-A-INTERNAL-ERROR:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_USER_CANCELED" link="gnutls-gnutls.html#GNUTLS-A-USER-CANCELED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_NO_RENEGOTIATION" link="gnutls-gnutls.html#GNUTLS-A-NO-RENEGOTIATION:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_UNSUPPORTED_EXTENSION" link="gnutls-gnutls.html#GNUTLS-A-UNSUPPORTED-EXTENSION:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_CERTIFICATE_UNOBTAINABLE" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-UNOBTAINABLE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_UNRECOGNIZED_NAME" link="gnutls-gnutls.html#GNUTLS-A-UNRECOGNIZED-NAME:CAPS"/>
+    <keyword type="constant" name="GNUTLS_A_UNKNOWN_PSK_IDENTITY" link="gnutls-gnutls.html#GNUTLS-A-UNKNOWN-PSK-IDENTITY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_HELLO_REQUEST" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-HELLO-REQUEST:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_CLIENT_HELLO" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-HELLO:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_SERVER_HELLO" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-HELLO:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-HELLO-VERIFY-REQUEST:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_NEW_SESSION_TICKET" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-NEW-SESSION-TICKET:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_CERTIFICATE_PKT" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-PKT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-KEY-EXCHANGE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-REQUEST:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_SERVER_HELLO_DONE" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-HELLO-DONE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-VERIFY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-KEY-EXCHANGE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_FINISHED" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-FINISHED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_SUPPLEMENTAL" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-SUPPLEMENTAL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CHANGE-CIPHER-SPEC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_HANDSHAKE_CLIENT_HELLO_V2" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-HELLO-V2:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_INVALID" link="gnutls-gnutls.html#GNUTLS-CERT-INVALID:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_REVOKED" link="gnutls-gnutls.html#GNUTLS-CERT-REVOKED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_SIGNER_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-CERT-SIGNER-NOT-FOUND:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_SIGNER_NOT_CA" link="gnutls-gnutls.html#GNUTLS-CERT-SIGNER-NOT-CA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_INSECURE_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-CERT-INSECURE-ALGORITHM:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_NOT_ACTIVATED" link="gnutls-gnutls.html#GNUTLS-CERT-NOT-ACTIVATED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_EXPIRED" link="gnutls-gnutls.html#GNUTLS-CERT-EXPIRED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_SIGNATURE_FAILURE" link="gnutls-gnutls.html#GNUTLS-CERT-SIGNATURE-FAILURE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED" link="gnutls-gnutls.html#GNUTLS-CERT-REVOCATION-DATA-SUPERSEDED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE" link="gnutls-gnutls.html#GNUTLS-CERT-REVOCATION-DATA-ISSUED-IN-FUTURE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_IGNORE" link="gnutls-gnutls.html#GNUTLS-CERT-IGNORE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_REQUEST" link="gnutls-gnutls.html#GNUTLS-CERT-REQUEST:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CERT_REQUIRE" link="gnutls-gnutls.html#GNUTLS-CERT-REQUIRE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_OPENPGP_CERT" link="gnutls-gnutls.html#GNUTLS-OPENPGP-CERT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_OPENPGP_CERT_FINGERPRINT" link="gnutls-gnutls.html#GNUTLS-OPENPGP-CERT-FINGERPRINT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SHUT_RDWR" link="gnutls-gnutls.html#GNUTLS-SHUT-RDWR:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SHUT_WR" link="gnutls-gnutls.html#GNUTLS-SHUT-WR:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SSL3" link="gnutls-gnutls.html#GNUTLS-SSL3:CAPS"/>
+    <keyword type="constant" name="GNUTLS_TLS1_0" link="gnutls-gnutls.html#GNUTLS-TLS1-0:CAPS"/>
+    <keyword type="constant" name="GNUTLS_TLS1" link="gnutls-gnutls.html#GNUTLS-TLS1:CAPS"/>
+    <keyword type="constant" name="GNUTLS_TLS1_1" link="gnutls-gnutls.html#GNUTLS-TLS1-1:CAPS"/>
+    <keyword type="constant" name="GNUTLS_TLS1_2" link="gnutls-gnutls.html#GNUTLS-TLS1-2:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DTLS1_0" link="gnutls-gnutls.html#GNUTLS-DTLS1-0:CAPS"/>
+    <keyword type="constant" name="GNUTLS_DTLS0_9" link="gnutls-gnutls.html#GNUTLS-DTLS0-9:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERSION_MAX" link="gnutls-gnutls.html#GNUTLS-VERSION-MAX:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERSION_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-VERSION-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRT_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-CRT-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRT_X509" link="gnutls-gnutls.html#GNUTLS-CRT-X509:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRT_OPENPGP" link="gnutls-gnutls.html#GNUTLS-CRT-OPENPGP:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRT_RAW" link="gnutls-gnutls.html#GNUTLS-CRT-RAW:CAPS"/>
+    <keyword type="constant" name="GNUTLS_X509_FMT_DER" link="gnutls-gnutls.html#GNUTLS-X509-FMT-DER:CAPS"/>
+    <keyword type="constant" name="GNUTLS_X509_FMT_PEM" link="gnutls-gnutls.html#GNUTLS-X509-FMT-PEM:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRT_PRINT_FULL" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-FULL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRT_PRINT_ONELINE" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-ONELINE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRT_PRINT_UNSIGNED_FULL" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-UNSIGNED-FULL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_CRT_PRINT_COMPACT" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-COMPACT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PK_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-PK-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PK_RSA" link="gnutls-gnutls.html#GNUTLS-PK-RSA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PK_DSA" link="gnutls-gnutls.html#GNUTLS-PK-DSA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PK_DH" link="gnutls-gnutls.html#GNUTLS-PK-DH:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PK_EC" link="gnutls-gnutls.html#GNUTLS-PK-EC:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA1" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA1:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA1" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA1:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_MD5" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-MD5:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_MD2" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-MD2:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_RMD160" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-RMD160:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA256:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA384" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA384:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA512" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA512:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA224" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA224:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA224" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA224:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA256:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA1" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA1:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA224" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA224:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA256:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA384" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA384:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA512" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA512:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SEC_PARAM_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SEC_PARAM_LOW" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-LOW:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SEC_PARAM_LEGACY" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-LEGACY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SEC_PARAM_NORMAL" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-NORMAL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SEC_PARAM_HIGH" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-HIGH:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SEC_PARAM_ULTRA" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-ULTRA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_NAME_DNS" link="gnutls-gnutls.html#GNUTLS-NAME-DNS:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SUPPLEMENTAL_USER_MAPPING_DATA" link="gnutls-gnutls.html#GNUTLS-SUPPLEMENTAL-USER-MAPPING-DATA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PSK_KEY_RAW" link="gnutls-gnutls.html#GNUTLS-PSK-KEY-RAW:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PSK_KEY_HEX" link="gnutls-gnutls.html#GNUTLS-PSK-KEY-HEX:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SAN_DNSNAME" link="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SAN_RFC822NAME" link="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SAN_URI" link="gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SAN_IPADDRESS" link="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SAN_OTHERNAME" link="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SAN_DN" link="gnutls-gnutls.html#GNUTLS-SAN-DN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_SAN_OTHERNAME_XMPP" link="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PRIVKEY_X509" link="gnutls-gnutls.html#GNUTLS-PRIVKEY-X509:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PRIVKEY_OPENPGP" link="gnutls-gnutls.html#GNUTLS-PRIVKEY-OPENPGP:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PRIVKEY_PKCS11" link="gnutls-gnutls.html#GNUTLS-PRIVKEY-PKCS11:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PRIVKEY_EXT" link="gnutls-gnutls.html#GNUTLS-PRIVKEY-EXT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED" link="gnutls-x509.html#GNUTLS-X509-CRT-LIST-IMPORT-FAIL-IF-EXCEED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED" link="gnutls-x509.html#GNUTLS-X509-CRT-LIST-FAIL-IF-UNSORTED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_DISABLE_CA_SIGN" link="gnutls-x509.html#GNUTLS-VERIFY-DISABLE-CA-SIGN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-X509-V1-CA-CRT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_DO_NOT_ALLOW_SAME" link="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-SAME:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-ANY-X509-V1-CA-CRT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD2:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD5:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_DISABLE_TIME_CHECKS" link="gnutls-x509.html#GNUTLS-VERIFY-DISABLE-TIME-CHECKS:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS" link="gnutls-x509.html#GNUTLS-VERIFY-DISABLE-TRUSTED-TIME-CHECKS:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT" link="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-X509-V1-CA-CRT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_DISABLE_CRL_CHECKS" link="gnutls-x509.html#GNUTLS-VERIFY-DISABLE-CRL-CHECKS:CAPS"/>
+    <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-UNSORTED-CHAIN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS_PLAIN" link="gnutls-x509.html#GNUTLS-PKCS-PLAIN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS8_PLAIN" link="gnutls-x509.html#GNUTLS-PKCS8-PLAIN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS_USE_PKCS12_3DES" link="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-3DES:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS8_USE_PKCS12_3DES" link="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-3DES:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS_USE_PKCS12_ARCFOUR" link="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS8_USE_PKCS12_ARCFOUR" link="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-ARCFOUR:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS_USE_PKCS12_RC2_40" link="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS8_USE_PKCS12_RC2_40" link="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-RC2-40:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS_USE_PBES2_3DES" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-3DES:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS_USE_PBES2_AES_128" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-128:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS_USE_PBES2_AES_192" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-192:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS_USE_PBES2_AES_256" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-256:CAPS"/>
+    <keyword type="constant" name="GNUTLS_OPENPGP_FMT_RAW" link="gnutls-openpgp.html#GNUTLS-OPENPGP-FMT-RAW:CAPS"/>
+    <keyword type="constant" name="GNUTLS_OPENPGP_FMT_BASE64" link="gnutls-openpgp.html#GNUTLS-OPENPGP-FMT-BASE64:CAPS"/>
+    <keyword type="constant" name="GNUTLS_RND_NONCE" link="gnutls-crypto.html#GNUTLS-RND-NONCE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_RND_RANDOM" link="gnutls-crypto.html#GNUTLS-RND-RANDOM:CAPS"/>
+    <keyword type="constant" name="GNUTLS_RND_KEY" link="gnutls-crypto.html#GNUTLS-RND-KEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ID_HEX" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ID-HEX:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_LABEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LABEL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_TOKEN_LABEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-LABEL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_TOKEN_SERIAL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-SERIAL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-MANUFACTURER:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_TOKEN_MODEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-MODEL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ID" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ID:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_LIBRARY_VERSION" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-VERSION:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-DESCRIPTION:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-MANUFACTURER:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-ALL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-WITH-PRIVKEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ATTR_PUBKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-PUBKEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-PRIVKEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ATTR_ALL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-ALL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED-CA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_LABEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-LABEL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_SERIAL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SERIAL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_MANUFACTURER" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-MANUFACTURER:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_MODEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-MODEL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_UNKNOWN" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_X509_CRT" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-X509-CRT:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_PUBKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-PUBKEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_PRIVKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-PRIVKEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_SECRET_KEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-SECRET-KEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_PKCS11_OBJ_DATA" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-DATA:CAPS"/>
+    <keyword type="constant" name="GNUTLS_BAG_EMPTY" link="gnutls-pkcs12.html#GNUTLS-BAG-EMPTY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_BAG_PKCS8_ENCRYPTED_KEY" link="gnutls-pkcs12.html#GNUTLS-BAG-PKCS8-ENCRYPTED-KEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_BAG_PKCS8_KEY" link="gnutls-pkcs12.html#GNUTLS-BAG-PKCS8-KEY:CAPS"/>
+    <keyword type="constant" name="GNUTLS_BAG_CERTIFICATE" link="gnutls-pkcs12.html#GNUTLS-BAG-CERTIFICATE:CAPS"/>
+    <keyword type="constant" name="GNUTLS_BAG_CRL" link="gnutls-pkcs12.html#GNUTLS-BAG-CRL:CAPS"/>
+    <keyword type="constant" name="GNUTLS_BAG_SECRET" link="gnutls-pkcs12.html#GNUTLS-BAG-SECRET:CAPS"/>
+    <keyword type="constant" name="GNUTLS_BAG_ENCRYPTED" link="gnutls-pkcs12.html#GNUTLS-BAG-ENCRYPTED:CAPS"/>
+    <keyword type="constant" name="GNUTLS_BAG_UNKNOWN" link="gnutls-pkcs12.html#GNUTLS-BAG-UNKNOWN:CAPS"/>
+  </functions>
+</book>
diff --git a/doc/reference/html/home.png b/doc/reference/html/home.png
new file mode 100644 (file)
index 0000000..1700361
Binary files /dev/null and b/doc/reference/html/home.png differ
diff --git a/doc/reference/html/index.html b/doc/reference/html/index.html
new file mode 100644 (file)
index 0000000..3b6accc
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GnuTLS API Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="next" href="intro.html" title="GnuTLS API Reference Manual">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="book">
+<div class="titlepage">
+<div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GnuTLS API Reference Manual</p></th></tr></table></div>
+<div><p class="releaseinfo">
+      for GnuTLS 3.0.30
+.
+      The latest version of this documentation can be found on-line at
+      <a class="ulink" href="https://www.gnu.org/software/gnutls/reference/" target="_top">https://www.gnu.org/software/gnutls/reference/</a>.
+    </p></div>
+</div>
+<hr>
+</div>
+<div class="toc"><dl>
+<dt><span class="chapter"><a href="intro.html">GnuTLS API Reference Manual</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="gnutls-gnutls.html">gnutls</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-abstract.html">abstract</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-x509.html">x509</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-openpgp.html">openpgp</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-crypto.html">crypto</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-pkcs11.html">pkcs11</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-pkcs12.html">pkcs12</a></span><span class="refpurpose"></span>
+</dt>
+</dl></dd>
+<dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
+<dt><span class="index"><a href="api-index-deprecated.html">Index of deprecated symbols</a></span></dt>
+<dt><span class="index"><a href="api-index-2-4-0.html">Index of new symbols in 2.4.0</a></span></dt>
+<dt><span class="index"><a href="api-index-2-6-0.html">Index of new symbols in 2.6.0</a></span></dt>
+<dt><span class="index"><a href="api-index-2-8-0.html">Index of new symbols in 2.8.0</a></span></dt>
+<dt><span class="index"><a href="api-index-2-10-0.html">Index of new symbols in 2.10.0</a></span></dt>
+<dt><span class="index"><a href="api-index-2-12-0.html">Index of new symbols in 2.12.0</a></span></dt>
+<dt><span class="index"><a href="api-index-3-0.html">Index of new symbols in 3.0.x</a></span></dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/index.sgml b/doc/reference/html/index.sgml
new file mode 100644 (file)
index 0000000..dae3d9e
--- /dev/null
@@ -0,0 +1,1168 @@
+<ONLINE href="https://www.gnu.org/software/gnutls/reference/">
+<ANCHOR id="gnutls-gnutls" href="gnutls/gnutls-gnutls.html">
+<ANCHOR id="gnutls-gnutls.synopsis" href="gnutls/gnutls-gnutls.html#gnutls-gnutls.synopsis">
+<ANCHOR id="gnutls-gnutls.description" href="gnutls/gnutls-gnutls.html#gnutls-gnutls.description">
+<ANCHOR id="gnutls-gnutls.details" href="gnutls/gnutls-gnutls.html#gnutls-gnutls.details">
+<ANCHOR id="HAVE-SSIZE-T:CAPS" href="gnutls/gnutls-gnutls.html#HAVE-SSIZE-T:CAPS">
+<ANCHOR id="GNUTLS-VERSION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-VERSION:CAPS">
+<ANCHOR id="GNUTLS-VERSION-MAJOR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-VERSION-MAJOR:CAPS">
+<ANCHOR id="GNUTLS-VERSION-MINOR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-VERSION-MINOR:CAPS">
+<ANCHOR id="GNUTLS-VERSION-PATCH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-VERSION-PATCH:CAPS">
+<ANCHOR id="GNUTLS-VERSION-NUMBER:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-VERSION-NUMBER:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-RIJNDAEL-128-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-128-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-RIJNDAEL-256-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-256-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-RIJNDAEL-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-ARCFOUR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR:CAPS">
+<ANCHOR id="gnutls-cipher-algorithm-t" href="gnutls/gnutls-gnutls.html#gnutls-cipher-algorithm-t">
+<ANCHOR id="GNUTLS-CIPHER-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-NULL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-NULL:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-ARCFOUR-128:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR-128:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-3DES-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-3DES-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-AES-128-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-AES-256-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-ARCFOUR-40:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR-40:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-CAMELLIA-128-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-128-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-CAMELLIA-256-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-256-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-RC2-40-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-RC2-40-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-DES-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-DES-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-AES-192-CBC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-AES-192-CBC:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-AES-128-GCM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-GCM:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-AES-256-GCM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-GCM:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-IDEA-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-IDEA-PGP-CFB:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-3DES-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-3DES-PGP-CFB:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-CAST5-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-CAST5-PGP-CFB:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-BLOWFISH-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-BLOWFISH-PGP-CFB:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-SAFER-SK128-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-SAFER-SK128-PGP-CFB:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-AES128-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-AES128-PGP-CFB:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-AES192-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-AES192-PGP-CFB:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-AES256-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-AES256-PGP-CFB:CAPS">
+<ANCHOR id="GNUTLS-CIPHER-TWOFISH-PGP-CFB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CIPHER-TWOFISH-PGP-CFB:CAPS">
+<ANCHOR id="gnutls-kx-algorithm-t" href="gnutls/gnutls-gnutls.html#gnutls-kx-algorithm-t">
+<ANCHOR id="GNUTLS-KX-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-KX-RSA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-RSA:CAPS">
+<ANCHOR id="GNUTLS-KX-DHE-DSS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-DHE-DSS:CAPS">
+<ANCHOR id="GNUTLS-KX-DHE-RSA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-DHE-RSA:CAPS">
+<ANCHOR id="GNUTLS-KX-ANON-DH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-ANON-DH:CAPS">
+<ANCHOR id="GNUTLS-KX-SRP:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-SRP:CAPS">
+<ANCHOR id="GNUTLS-KX-RSA-EXPORT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-RSA-EXPORT:CAPS">
+<ANCHOR id="GNUTLS-KX-SRP-RSA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-SRP-RSA:CAPS">
+<ANCHOR id="GNUTLS-KX-SRP-DSS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-SRP-DSS:CAPS">
+<ANCHOR id="GNUTLS-KX-PSK:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-PSK:CAPS">
+<ANCHOR id="GNUTLS-KX-DHE-PSK:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-DHE-PSK:CAPS">
+<ANCHOR id="GNUTLS-KX-ANON-ECDH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-ANON-ECDH:CAPS">
+<ANCHOR id="GNUTLS-KX-ECDHE-RSA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-ECDHE-RSA:CAPS">
+<ANCHOR id="GNUTLS-KX-ECDHE-ECDSA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-ECDHE-ECDSA:CAPS">
+<ANCHOR id="GNUTLS-KX-ECDHE-PSK:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KX-ECDHE-PSK:CAPS">
+<ANCHOR id="gnutls-params-type-t" href="gnutls/gnutls-gnutls.html#gnutls-params-type-t">
+<ANCHOR id="GNUTLS-PARAMS-RSA-EXPORT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PARAMS-RSA-EXPORT:CAPS">
+<ANCHOR id="GNUTLS-PARAMS-DH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PARAMS-DH:CAPS">
+<ANCHOR id="GNUTLS-PARAMS-ECDH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PARAMS-ECDH:CAPS">
+<ANCHOR id="gnutls-credentials-type-t" href="gnutls/gnutls-gnutls.html#gnutls-credentials-type-t">
+<ANCHOR id="GNUTLS-CRD-CERTIFICATE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRD-CERTIFICATE:CAPS">
+<ANCHOR id="GNUTLS-CRD-ANON:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRD-ANON:CAPS">
+<ANCHOR id="GNUTLS-CRD-SRP:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRD-SRP:CAPS">
+<ANCHOR id="GNUTLS-CRD-PSK:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRD-PSK:CAPS">
+<ANCHOR id="GNUTLS-CRD-IA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRD-IA:CAPS">
+<ANCHOR id="GNUTLS-MAC-SHA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-SHA:CAPS">
+<ANCHOR id="GNUTLS-DIG-SHA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-SHA:CAPS">
+<ANCHOR id="gnutls-mac-algorithm-t" href="gnutls/gnutls-gnutls.html#gnutls-mac-algorithm-t">
+<ANCHOR id="GNUTLS-MAC-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-MAC-NULL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-NULL:CAPS">
+<ANCHOR id="GNUTLS-MAC-MD5:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-MD5:CAPS">
+<ANCHOR id="GNUTLS-MAC-SHA1:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-SHA1:CAPS">
+<ANCHOR id="GNUTLS-MAC-RMD160:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-RMD160:CAPS">
+<ANCHOR id="GNUTLS-MAC-MD2:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-MD2:CAPS">
+<ANCHOR id="GNUTLS-MAC-SHA256:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-SHA256:CAPS">
+<ANCHOR id="GNUTLS-MAC-SHA384:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-SHA384:CAPS">
+<ANCHOR id="GNUTLS-MAC-SHA512:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-SHA512:CAPS">
+<ANCHOR id="GNUTLS-MAC-SHA224:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-SHA224:CAPS">
+<ANCHOR id="GNUTLS-MAC-AEAD:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAC-AEAD:CAPS">
+<ANCHOR id="gnutls-digest-algorithm-t" href="gnutls/gnutls-gnutls.html#gnutls-digest-algorithm-t">
+<ANCHOR id="GNUTLS-DIG-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-DIG-NULL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-NULL:CAPS">
+<ANCHOR id="GNUTLS-DIG-MD5:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-MD5:CAPS">
+<ANCHOR id="GNUTLS-DIG-SHA1:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-SHA1:CAPS">
+<ANCHOR id="GNUTLS-DIG-RMD160:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-RMD160:CAPS">
+<ANCHOR id="GNUTLS-DIG-MD2:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-MD2:CAPS">
+<ANCHOR id="GNUTLS-DIG-SHA256:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-SHA256:CAPS">
+<ANCHOR id="GNUTLS-DIG-SHA384:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-SHA384:CAPS">
+<ANCHOR id="GNUTLS-DIG-SHA512:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-SHA512:CAPS">
+<ANCHOR id="GNUTLS-DIG-SHA224:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DIG-SHA224:CAPS">
+<ANCHOR id="GNUTLS-MAX-ALGORITHM-NUM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAX-ALGORITHM-NUM:CAPS">
+<ANCHOR id="gnutls-compression-method-t" href="gnutls/gnutls-gnutls.html#gnutls-compression-method-t">
+<ANCHOR id="GNUTLS-COMP-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-COMP-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-COMP-NULL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-COMP-NULL:CAPS">
+<ANCHOR id="GNUTLS-COMP-DEFLATE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-COMP-DEFLATE:CAPS">
+<ANCHOR id="GNUTLS-COMP-ZLIB:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-COMP-ZLIB:CAPS">
+<ANCHOR id="gnutls-alert-level-t" href="gnutls/gnutls-gnutls.html#gnutls-alert-level-t">
+<ANCHOR id="GNUTLS-AL-WARNING:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-AL-WARNING:CAPS">
+<ANCHOR id="GNUTLS-AL-FATAL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-AL-FATAL:CAPS">
+<ANCHOR id="gnutls-alert-description-t" href="gnutls/gnutls-gnutls.html#gnutls-alert-description-t">
+<ANCHOR id="GNUTLS-A-CLOSE-NOTIFY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-CLOSE-NOTIFY:CAPS">
+<ANCHOR id="GNUTLS-A-UNEXPECTED-MESSAGE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-UNEXPECTED-MESSAGE:CAPS">
+<ANCHOR id="GNUTLS-A-BAD-RECORD-MAC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-BAD-RECORD-MAC:CAPS">
+<ANCHOR id="GNUTLS-A-DECRYPTION-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-DECRYPTION-FAILED:CAPS">
+<ANCHOR id="GNUTLS-A-RECORD-OVERFLOW:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-RECORD-OVERFLOW:CAPS">
+<ANCHOR id="GNUTLS-A-DECOMPRESSION-FAILURE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-DECOMPRESSION-FAILURE:CAPS">
+<ANCHOR id="GNUTLS-A-HANDSHAKE-FAILURE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-HANDSHAKE-FAILURE:CAPS">
+<ANCHOR id="GNUTLS-A-SSL3-NO-CERTIFICATE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-SSL3-NO-CERTIFICATE:CAPS">
+<ANCHOR id="GNUTLS-A-BAD-CERTIFICATE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-BAD-CERTIFICATE:CAPS">
+<ANCHOR id="GNUTLS-A-UNSUPPORTED-CERTIFICATE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-UNSUPPORTED-CERTIFICATE:CAPS">
+<ANCHOR id="GNUTLS-A-CERTIFICATE-REVOKED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-REVOKED:CAPS">
+<ANCHOR id="GNUTLS-A-CERTIFICATE-EXPIRED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-EXPIRED:CAPS">
+<ANCHOR id="GNUTLS-A-CERTIFICATE-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-A-ILLEGAL-PARAMETER:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-ILLEGAL-PARAMETER:CAPS">
+<ANCHOR id="GNUTLS-A-UNKNOWN-CA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-UNKNOWN-CA:CAPS">
+<ANCHOR id="GNUTLS-A-ACCESS-DENIED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-ACCESS-DENIED:CAPS">
+<ANCHOR id="GNUTLS-A-DECODE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-DECODE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-A-DECRYPT-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-DECRYPT-ERROR:CAPS">
+<ANCHOR id="GNUTLS-A-EXPORT-RESTRICTION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-EXPORT-RESTRICTION:CAPS">
+<ANCHOR id="GNUTLS-A-PROTOCOL-VERSION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-PROTOCOL-VERSION:CAPS">
+<ANCHOR id="GNUTLS-A-INSUFFICIENT-SECURITY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-INSUFFICIENT-SECURITY:CAPS">
+<ANCHOR id="GNUTLS-A-INTERNAL-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-INTERNAL-ERROR:CAPS">
+<ANCHOR id="GNUTLS-A-USER-CANCELED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-USER-CANCELED:CAPS">
+<ANCHOR id="GNUTLS-A-NO-RENEGOTIATION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-NO-RENEGOTIATION:CAPS">
+<ANCHOR id="GNUTLS-A-UNSUPPORTED-EXTENSION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-UNSUPPORTED-EXTENSION:CAPS">
+<ANCHOR id="GNUTLS-A-CERTIFICATE-UNOBTAINABLE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-UNOBTAINABLE:CAPS">
+<ANCHOR id="GNUTLS-A-UNRECOGNIZED-NAME:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-UNRECOGNIZED-NAME:CAPS">
+<ANCHOR id="GNUTLS-A-UNKNOWN-PSK-IDENTITY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-A-UNKNOWN-PSK-IDENTITY:CAPS">
+<ANCHOR id="gnutls-handshake-description-t" href="gnutls/gnutls-gnutls.html#gnutls-handshake-description-t">
+<ANCHOR id="GNUTLS-HANDSHAKE-HELLO-REQUEST:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-HELLO-REQUEST:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-CLIENT-HELLO:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-HELLO:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-SERVER-HELLO:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-HELLO:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-HELLO-VERIFY-REQUEST:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-HELLO-VERIFY-REQUEST:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-NEW-SESSION-TICKET:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-NEW-SESSION-TICKET:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-CERTIFICATE-PKT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-PKT:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-SERVER-KEY-EXCHANGE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-KEY-EXCHANGE:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-CERTIFICATE-REQUEST:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-REQUEST:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-SERVER-HELLO-DONE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-HELLO-DONE:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-CERTIFICATE-VERIFY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-VERIFY:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-CLIENT-KEY-EXCHANGE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-KEY-EXCHANGE:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-FINISHED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-FINISHED:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-SUPPLEMENTAL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-SUPPLEMENTAL:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-CHANGE-CIPHER-SPEC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-CHANGE-CIPHER-SPEC:CAPS">
+<ANCHOR id="GNUTLS-HANDSHAKE-CLIENT-HELLO-V2:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-HELLO-V2:CAPS">
+<ANCHOR id="gnutls-certificate-status-t" href="gnutls/gnutls-gnutls.html#gnutls-certificate-status-t">
+<ANCHOR id="GNUTLS-CERT-INVALID:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-INVALID:CAPS">
+<ANCHOR id="GNUTLS-CERT-REVOKED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-REVOKED:CAPS">
+<ANCHOR id="GNUTLS-CERT-SIGNER-NOT-FOUND:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-SIGNER-NOT-FOUND:CAPS">
+<ANCHOR id="GNUTLS-CERT-SIGNER-NOT-CA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-SIGNER-NOT-CA:CAPS">
+<ANCHOR id="GNUTLS-CERT-INSECURE-ALGORITHM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-INSECURE-ALGORITHM:CAPS">
+<ANCHOR id="GNUTLS-CERT-NOT-ACTIVATED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-NOT-ACTIVATED:CAPS">
+<ANCHOR id="GNUTLS-CERT-EXPIRED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-EXPIRED:CAPS">
+<ANCHOR id="GNUTLS-CERT-SIGNATURE-FAILURE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-SIGNATURE-FAILURE:CAPS">
+<ANCHOR id="GNUTLS-CERT-REVOCATION-DATA-SUPERSEDED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-REVOCATION-DATA-SUPERSEDED:CAPS">
+<ANCHOR id="GNUTLS-CERT-REVOCATION-DATA-ISSUED-IN-FUTURE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-REVOCATION-DATA-ISSUED-IN-FUTURE:CAPS">
+<ANCHOR id="gnutls-certificate-request-t" href="gnutls/gnutls-gnutls.html#gnutls-certificate-request-t">
+<ANCHOR id="GNUTLS-CERT-IGNORE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-IGNORE:CAPS">
+<ANCHOR id="GNUTLS-CERT-REQUEST:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-REQUEST:CAPS">
+<ANCHOR id="GNUTLS-CERT-REQUIRE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CERT-REQUIRE:CAPS">
+<ANCHOR id="gnutls-openpgp-crt-status-t" href="gnutls/gnutls-gnutls.html#gnutls-openpgp-crt-status-t">
+<ANCHOR id="GNUTLS-OPENPGP-CERT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-OPENPGP-CERT:CAPS">
+<ANCHOR id="GNUTLS-OPENPGP-CERT-FINGERPRINT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-OPENPGP-CERT-FINGERPRINT:CAPS">
+<ANCHOR id="gnutls-close-request-t" href="gnutls/gnutls-gnutls.html#gnutls-close-request-t">
+<ANCHOR id="GNUTLS-SHUT-RDWR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SHUT-RDWR:CAPS">
+<ANCHOR id="GNUTLS-SHUT-WR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SHUT-WR:CAPS">
+<ANCHOR id="gnutls-protocol-t" href="gnutls/gnutls-gnutls.html#gnutls-protocol-t">
+<ANCHOR id="GNUTLS-SSL3:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SSL3:CAPS">
+<ANCHOR id="GNUTLS-TLS1-0:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-TLS1-0:CAPS">
+<ANCHOR id="GNUTLS-TLS1:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-TLS1:CAPS">
+<ANCHOR id="GNUTLS-TLS1-1:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-TLS1-1:CAPS">
+<ANCHOR id="GNUTLS-TLS1-2:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-TLS1-2:CAPS">
+<ANCHOR id="GNUTLS-DTLS1-0:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DTLS1-0:CAPS">
+<ANCHOR id="GNUTLS-DTLS0-9:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-DTLS0-9:CAPS">
+<ANCHOR id="GNUTLS-VERSION-MAX:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-VERSION-MAX:CAPS">
+<ANCHOR id="GNUTLS-VERSION-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-VERSION-UNKNOWN:CAPS">
+<ANCHOR id="gnutls-certificate-type-t" href="gnutls/gnutls-gnutls.html#gnutls-certificate-type-t">
+<ANCHOR id="GNUTLS-CRT-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRT-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-CRT-X509:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRT-X509:CAPS">
+<ANCHOR id="GNUTLS-CRT-OPENPGP:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRT-OPENPGP:CAPS">
+<ANCHOR id="GNUTLS-CRT-RAW:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRT-RAW:CAPS">
+<ANCHOR id="gnutls-x509-crt-fmt-t" href="gnutls/gnutls-gnutls.html#gnutls-x509-crt-fmt-t">
+<ANCHOR id="GNUTLS-X509-FMT-DER:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-X509-FMT-DER:CAPS">
+<ANCHOR id="GNUTLS-X509-FMT-PEM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-X509-FMT-PEM:CAPS">
+<ANCHOR id="gnutls-certificate-print-formats-t" href="gnutls/gnutls-gnutls.html#gnutls-certificate-print-formats-t">
+<ANCHOR id="GNUTLS-CRT-PRINT-FULL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRT-PRINT-FULL:CAPS">
+<ANCHOR id="GNUTLS-CRT-PRINT-ONELINE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRT-PRINT-ONELINE:CAPS">
+<ANCHOR id="GNUTLS-CRT-PRINT-UNSIGNED-FULL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRT-PRINT-UNSIGNED-FULL:CAPS">
+<ANCHOR id="GNUTLS-CRT-PRINT-COMPACT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-CRT-PRINT-COMPACT:CAPS">
+<ANCHOR id="gnutls-pk-algorithm-t" href="gnutls/gnutls-gnutls.html#gnutls-pk-algorithm-t">
+<ANCHOR id="GNUTLS-PK-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PK-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-PK-RSA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PK-RSA:CAPS">
+<ANCHOR id="GNUTLS-PK-DSA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PK-DSA:CAPS">
+<ANCHOR id="GNUTLS-PK-DH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PK-DH:CAPS">
+<ANCHOR id="GNUTLS-PK-EC:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PK-EC:CAPS">
+<ANCHOR id="gnutls-pk-algorithm-get-name" href="gnutls/gnutls-gnutls.html#gnutls-pk-algorithm-get-name">
+<ANCHOR id="gnutls-sign-algorithm-t" href="gnutls/gnutls-gnutls.html#gnutls-sign-algorithm-t">
+<ANCHOR id="GNUTLS-SIGN-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-SHA1:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA1:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-SHA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA:CAPS">
+<ANCHOR id="GNUTLS-SIGN-DSA-SHA1:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA1:CAPS">
+<ANCHOR id="GNUTLS-SIGN-DSA-SHA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-MD5:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-MD5:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-MD2:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-MD2:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-RMD160:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-RMD160:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-SHA256:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA256:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-SHA384:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA384:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-SHA512:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA512:CAPS">
+<ANCHOR id="GNUTLS-SIGN-RSA-SHA224:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA224:CAPS">
+<ANCHOR id="GNUTLS-SIGN-DSA-SHA224:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA224:CAPS">
+<ANCHOR id="GNUTLS-SIGN-DSA-SHA256:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA256:CAPS">
+<ANCHOR id="GNUTLS-SIGN-ECDSA-SHA1:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA1:CAPS">
+<ANCHOR id="GNUTLS-SIGN-ECDSA-SHA224:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA224:CAPS">
+<ANCHOR id="GNUTLS-SIGN-ECDSA-SHA256:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA256:CAPS">
+<ANCHOR id="GNUTLS-SIGN-ECDSA-SHA384:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA384:CAPS">
+<ANCHOR id="GNUTLS-SIGN-ECDSA-SHA512:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA512:CAPS">
+<ANCHOR id="gnutls-sign-algorithm-get-name" href="gnutls/gnutls-gnutls.html#gnutls-sign-algorithm-get-name">
+<ANCHOR id="gnutls-sec-param-t" href="gnutls/gnutls-gnutls.html#gnutls-sec-param-t">
+<ANCHOR id="GNUTLS-SEC-PARAM-UNKNOWN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SEC-PARAM-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-SEC-PARAM-LOW:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SEC-PARAM-LOW:CAPS">
+<ANCHOR id="GNUTLS-SEC-PARAM-LEGACY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SEC-PARAM-LEGACY:CAPS">
+<ANCHOR id="GNUTLS-SEC-PARAM-NORMAL:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SEC-PARAM-NORMAL:CAPS">
+<ANCHOR id="GNUTLS-SEC-PARAM-HIGH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SEC-PARAM-HIGH:CAPS">
+<ANCHOR id="GNUTLS-SEC-PARAM-ULTRA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SEC-PARAM-ULTRA:CAPS">
+<ANCHOR id="gnutls-transport-ptr-t" href="gnutls/gnutls-gnutls.html#gnutls-transport-ptr-t">
+<ANCHOR id="gnutls-session-int" href="gnutls/gnutls-gnutls.html#gnutls-session-int">
+<ANCHOR id="gnutls-session-t" href="gnutls/gnutls-gnutls.html#gnutls-session-t">
+<ANCHOR id="gnutls-dh-params-int" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-int">
+<ANCHOR id="gnutls-dh-params-t" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-t">
+<ANCHOR id="gnutls-x509-privkey-int" href="gnutls/gnutls-gnutls.html#gnutls-x509-privkey-int">
+<ANCHOR id="gnutls-rsa-params-t" href="gnutls/gnutls-gnutls.html#gnutls-rsa-params-t">
+<ANCHOR id="gnutls-priority-st" href="gnutls/gnutls-gnutls.html#gnutls-priority-st">
+<ANCHOR id="gnutls-priority-t" href="gnutls/gnutls-gnutls.html#gnutls-priority-t">
+<ANCHOR id="gnutls-init" href="gnutls/gnutls-gnutls.html#gnutls-init">
+<ANCHOR id="gnutls-deinit" href="gnutls/gnutls-gnutls.html#gnutls-deinit">
+<ANCHOR id="gnutls-bye" href="gnutls/gnutls-gnutls.html#gnutls-bye">
+<ANCHOR id="gnutls-handshake" href="gnutls/gnutls-gnutls.html#gnutls-handshake">
+<ANCHOR id="gnutls-rehandshake" href="gnutls/gnutls-gnutls.html#gnutls-rehandshake">
+<ANCHOR id="gnutls-alert-get" href="gnutls/gnutls-gnutls.html#gnutls-alert-get">
+<ANCHOR id="gnutls-alert-send" href="gnutls/gnutls-gnutls.html#gnutls-alert-send">
+<ANCHOR id="gnutls-alert-send-appropriate" href="gnutls/gnutls-gnutls.html#gnutls-alert-send-appropriate">
+<ANCHOR id="gnutls-alert-get-name" href="gnutls/gnutls-gnutls.html#gnutls-alert-get-name">
+<ANCHOR id="gnutls-pk-bits-to-sec-param" href="gnutls/gnutls-gnutls.html#gnutls-pk-bits-to-sec-param">
+<ANCHOR id="gnutls-sec-param-get-name" href="gnutls/gnutls-gnutls.html#gnutls-sec-param-get-name">
+<ANCHOR id="gnutls-sec-param-to-pk-bits" href="gnutls/gnutls-gnutls.html#gnutls-sec-param-to-pk-bits">
+<ANCHOR id="gnutls-cipher-get" href="gnutls/gnutls-gnutls.html#gnutls-cipher-get">
+<ANCHOR id="gnutls-kx-get" href="gnutls/gnutls-gnutls.html#gnutls-kx-get">
+<ANCHOR id="gnutls-mac-get" href="gnutls/gnutls-gnutls.html#gnutls-mac-get">
+<ANCHOR id="gnutls-compression-get" href="gnutls/gnutls-gnutls.html#gnutls-compression-get">
+<ANCHOR id="gnutls-certificate-type-get" href="gnutls/gnutls-gnutls.html#gnutls-certificate-type-get">
+<ANCHOR id="gnutls-sign-algorithm-get-requested" href="gnutls/gnutls-gnutls.html#gnutls-sign-algorithm-get-requested">
+<ANCHOR id="gnutls-cipher-get-key-size" href="gnutls/gnutls-gnutls.html#gnutls-cipher-get-key-size">
+<ANCHOR id="gnutls-mac-get-key-size" href="gnutls/gnutls-gnutls.html#gnutls-mac-get-key-size">
+<ANCHOR id="gnutls-cipher-get-name" href="gnutls/gnutls-gnutls.html#gnutls-cipher-get-name">
+<ANCHOR id="gnutls-mac-get-name" href="gnutls/gnutls-gnutls.html#gnutls-mac-get-name">
+<ANCHOR id="gnutls-compression-get-name" href="gnutls/gnutls-gnutls.html#gnutls-compression-get-name">
+<ANCHOR id="gnutls-kx-get-name" href="gnutls/gnutls-gnutls.html#gnutls-kx-get-name">
+<ANCHOR id="gnutls-certificate-type-get-name" href="gnutls/gnutls-gnutls.html#gnutls-certificate-type-get-name">
+<ANCHOR id="gnutls-pk-get-name" href="gnutls/gnutls-gnutls.html#gnutls-pk-get-name">
+<ANCHOR id="gnutls-sign-get-name" href="gnutls/gnutls-gnutls.html#gnutls-sign-get-name">
+<ANCHOR id="gnutls-mac-get-id" href="gnutls/gnutls-gnutls.html#gnutls-mac-get-id">
+<ANCHOR id="gnutls-compression-get-id" href="gnutls/gnutls-gnutls.html#gnutls-compression-get-id">
+<ANCHOR id="gnutls-cipher-get-id" href="gnutls/gnutls-gnutls.html#gnutls-cipher-get-id">
+<ANCHOR id="gnutls-kx-get-id" href="gnutls/gnutls-gnutls.html#gnutls-kx-get-id">
+<ANCHOR id="gnutls-protocol-get-id" href="gnutls/gnutls-gnutls.html#gnutls-protocol-get-id">
+<ANCHOR id="gnutls-certificate-type-get-id" href="gnutls/gnutls-gnutls.html#gnutls-certificate-type-get-id">
+<ANCHOR id="gnutls-pk-get-id" href="gnutls/gnutls-gnutls.html#gnutls-pk-get-id">
+<ANCHOR id="gnutls-sign-get-id" href="gnutls/gnutls-gnutls.html#gnutls-sign-get-id">
+<ANCHOR id="gnutls-cipher-list" href="gnutls/gnutls-gnutls.html#gnutls-cipher-list">
+<ANCHOR id="gnutls-mac-list" href="gnutls/gnutls-gnutls.html#gnutls-mac-list">
+<ANCHOR id="gnutls-compression-list" href="gnutls/gnutls-gnutls.html#gnutls-compression-list">
+<ANCHOR id="gnutls-protocol-list" href="gnutls/gnutls-gnutls.html#gnutls-protocol-list">
+<ANCHOR id="gnutls-certificate-type-list" href="gnutls/gnutls-gnutls.html#gnutls-certificate-type-list">
+<ANCHOR id="gnutls-kx-list" href="gnutls/gnutls-gnutls.html#gnutls-kx-list">
+<ANCHOR id="gnutls-pk-list" href="gnutls/gnutls-gnutls.html#gnutls-pk-list">
+<ANCHOR id="gnutls-sign-list" href="gnutls/gnutls-gnutls.html#gnutls-sign-list">
+<ANCHOR id="gnutls-cipher-suite-info" href="gnutls/gnutls-gnutls.html#gnutls-cipher-suite-info">
+<ANCHOR id="gnutls-error-is-fatal" href="gnutls/gnutls-gnutls.html#gnutls-error-is-fatal">
+<ANCHOR id="gnutls-error-to-alert" href="gnutls/gnutls-gnutls.html#gnutls-error-to-alert">
+<ANCHOR id="gnutls-perror" href="gnutls/gnutls-gnutls.html#gnutls-perror">
+<ANCHOR id="gnutls-strerror" href="gnutls/gnutls-gnutls.html#gnutls-strerror">
+<ANCHOR id="gnutls-strerror-name" href="gnutls/gnutls-gnutls.html#gnutls-strerror-name">
+<ANCHOR id="gnutls-handshake-set-private-extensions" href="gnutls/gnutls-gnutls.html#gnutls-handshake-set-private-extensions">
+<ANCHOR id="gnutls-handshake-get-last-out" href="gnutls/gnutls-gnutls.html#gnutls-handshake-get-last-out">
+<ANCHOR id="gnutls-handshake-get-last-in" href="gnutls/gnutls-gnutls.html#gnutls-handshake-get-last-in">
+<ANCHOR id="gnutls-record-send" href="gnutls/gnutls-gnutls.html#gnutls-record-send">
+<ANCHOR id="gnutls-record-recv" href="gnutls/gnutls-gnutls.html#gnutls-record-recv">
+<ANCHOR id="gnutls-read" href="gnutls/gnutls-gnutls.html#gnutls-read">
+<ANCHOR id="gnutls-write" href="gnutls/gnutls-gnutls.html#gnutls-write">
+<ANCHOR id="gnutls-session-enable-compatibility-mode" href="gnutls/gnutls-gnutls.html#gnutls-session-enable-compatibility-mode">
+<ANCHOR id="gnutls-record-disable-padding" href="gnutls/gnutls-gnutls.html#gnutls-record-disable-padding">
+<ANCHOR id="gnutls-record-get-direction" href="gnutls/gnutls-gnutls.html#gnutls-record-get-direction">
+<ANCHOR id="gnutls-record-get-max-size" href="gnutls/gnutls-gnutls.html#gnutls-record-get-max-size">
+<ANCHOR id="gnutls-record-set-max-size" href="gnutls/gnutls-gnutls.html#gnutls-record-set-max-size">
+<ANCHOR id="gnutls-record-check-pending" href="gnutls/gnutls-gnutls.html#gnutls-record-check-pending">
+<ANCHOR id="gnutls-prf" href="gnutls/gnutls-gnutls.html#gnutls-prf">
+<ANCHOR id="gnutls-prf-raw" href="gnutls/gnutls-gnutls.html#gnutls-prf-raw">
+<ANCHOR id="gnutls-server-name-type-t" href="gnutls/gnutls-gnutls.html#gnutls-server-name-type-t">
+<ANCHOR id="GNUTLS-NAME-DNS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-NAME-DNS:CAPS">
+<ANCHOR id="gnutls-server-name-set" href="gnutls/gnutls-gnutls.html#gnutls-server-name-set">
+<ANCHOR id="gnutls-server-name-get" href="gnutls/gnutls-gnutls.html#gnutls-server-name-get">
+<ANCHOR id="gnutls-safe-renegotiation-status" href="gnutls/gnutls-gnutls.html#gnutls-safe-renegotiation-status">
+<ANCHOR id="gnutls-supplemental-data-format-type-t" href="gnutls/gnutls-gnutls.html#gnutls-supplemental-data-format-type-t">
+<ANCHOR id="GNUTLS-SUPPLEMENTAL-USER-MAPPING-DATA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SUPPLEMENTAL-USER-MAPPING-DATA:CAPS">
+<ANCHOR id="gnutls-session-ticket-key-generate" href="gnutls/gnutls-gnutls.html#gnutls-session-ticket-key-generate">
+<ANCHOR id="gnutls-session-ticket-enable-client" href="gnutls/gnutls-gnutls.html#gnutls-session-ticket-enable-client">
+<ANCHOR id="gnutls-session-ticket-enable-server" href="gnutls/gnutls-gnutls.html#gnutls-session-ticket-enable-server">
+<ANCHOR id="gnutls-priority-init" href="gnutls/gnutls-gnutls.html#gnutls-priority-init">
+<ANCHOR id="gnutls-priority-deinit" href="gnutls/gnutls-gnutls.html#gnutls-priority-deinit">
+<ANCHOR id="gnutls-priority-set" href="gnutls/gnutls-gnutls.html#gnutls-priority-set">
+<ANCHOR id="gnutls-priority-set-direct" href="gnutls/gnutls-gnutls.html#gnutls-priority-set-direct">
+<ANCHOR id="gnutls-set-default-priority" href="gnutls/gnutls-gnutls.html#gnutls-set-default-priority">
+<ANCHOR id="gnutls-cipher-suite-get-name" href="gnutls/gnutls-gnutls.html#gnutls-cipher-suite-get-name">
+<ANCHOR id="gnutls-protocol-get-version" href="gnutls/gnutls-gnutls.html#gnutls-protocol-get-version">
+<ANCHOR id="gnutls-protocol-get-name" href="gnutls/gnutls-gnutls.html#gnutls-protocol-get-name">
+<ANCHOR id="gnutls-session-set-data" href="gnutls/gnutls-gnutls.html#gnutls-session-set-data">
+<ANCHOR id="gnutls-session-get-data" href="gnutls/gnutls-gnutls.html#gnutls-session-get-data">
+<ANCHOR id="gnutls-session-get-data2" href="gnutls/gnutls-gnutls.html#gnutls-session-get-data2">
+<ANCHOR id="GNUTLS-MAX-SESSION-ID:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID:CAPS">
+<ANCHOR id="gnutls-session-get-id" href="gnutls/gnutls-gnutls.html#gnutls-session-get-id">
+<ANCHOR id="gnutls-session-is-resumed" href="gnutls/gnutls-gnutls.html#gnutls-session-is-resumed">
+<ANCHOR id="gnutls-db-store-func" href="gnutls/gnutls-gnutls.html#gnutls-db-store-func">
+<ANCHOR id="gnutls-db-remove-func" href="gnutls/gnutls-gnutls.html#gnutls-db-remove-func">
+<ANCHOR id="gnutls-db-retr-func" href="gnutls/gnutls-gnutls.html#gnutls-db-retr-func">
+<ANCHOR id="gnutls-db-set-cache-expiration" href="gnutls/gnutls-gnutls.html#gnutls-db-set-cache-expiration">
+<ANCHOR id="gnutls-db-remove-session" href="gnutls/gnutls-gnutls.html#gnutls-db-remove-session">
+<ANCHOR id="gnutls-db-set-retrieve-function" href="gnutls/gnutls-gnutls.html#gnutls-db-set-retrieve-function">
+<ANCHOR id="gnutls-db-set-remove-function" href="gnutls/gnutls-gnutls.html#gnutls-db-set-remove-function">
+<ANCHOR id="gnutls-db-set-store-function" href="gnutls/gnutls-gnutls.html#gnutls-db-set-store-function">
+<ANCHOR id="gnutls-db-set-ptr" href="gnutls/gnutls-gnutls.html#gnutls-db-set-ptr">
+<ANCHOR id="gnutls-db-get-ptr" href="gnutls/gnutls-gnutls.html#gnutls-db-get-ptr">
+<ANCHOR id="gnutls-db-check-entry" href="gnutls/gnutls-gnutls.html#gnutls-db-check-entry">
+<ANCHOR id="gnutls-handshake-post-client-hello-func" href="gnutls/gnutls-gnutls.html#gnutls-handshake-post-client-hello-func">
+<ANCHOR id="gnutls-handshake-set-post-client-hello-function" href="gnutls/gnutls-gnutls.html#gnutls-handshake-set-post-client-hello-function">
+<ANCHOR id="gnutls-handshake-set-max-packet-length" href="gnutls/gnutls-gnutls.html#gnutls-handshake-set-max-packet-length">
+<ANCHOR id="gnutls-check-version" href="gnutls/gnutls-gnutls.html#gnutls-check-version">
+<ANCHOR id="gnutls-credentials-clear" href="gnutls/gnutls-gnutls.html#gnutls-credentials-clear">
+<ANCHOR id="gnutls-credentials-set" href="gnutls/gnutls-gnutls.html#gnutls-credentials-set">
+<ANCHOR id="gnutls-cred-set" href="gnutls/gnutls-gnutls.html#gnutls-cred-set">
+<ANCHOR id="gnutls-certificate-credentials-st" href="gnutls/gnutls-gnutls.html#gnutls-certificate-credentials-st">
+<ANCHOR id="gnutls-anon-free-server-credentials" href="gnutls/gnutls-gnutls.html#gnutls-anon-free-server-credentials">
+<ANCHOR id="gnutls-anon-allocate-server-credentials" href="gnutls/gnutls-gnutls.html#gnutls-anon-allocate-server-credentials">
+<ANCHOR id="gnutls-anon-set-server-dh-params" href="gnutls/gnutls-gnutls.html#gnutls-anon-set-server-dh-params">
+<ANCHOR id="gnutls-anon-set-server-params-function" href="gnutls/gnutls-gnutls.html#gnutls-anon-set-server-params-function">
+<ANCHOR id="gnutls-anon-free-client-credentials" href="gnutls/gnutls-gnutls.html#gnutls-anon-free-client-credentials">
+<ANCHOR id="gnutls-anon-allocate-client-credentials" href="gnutls/gnutls-gnutls.html#gnutls-anon-allocate-client-credentials">
+<ANCHOR id="gnutls-certificate-free-credentials" href="gnutls/gnutls-gnutls.html#gnutls-certificate-free-credentials">
+<ANCHOR id="gnutls-certificate-allocate-credentials" href="gnutls/gnutls-gnutls.html#gnutls-certificate-allocate-credentials">
+<ANCHOR id="gnutls-certificate-free-keys" href="gnutls/gnutls-gnutls.html#gnutls-certificate-free-keys">
+<ANCHOR id="gnutls-certificate-free-cas" href="gnutls/gnutls-gnutls.html#gnutls-certificate-free-cas">
+<ANCHOR id="gnutls-certificate-free-ca-names" href="gnutls/gnutls-gnutls.html#gnutls-certificate-free-ca-names">
+<ANCHOR id="gnutls-certificate-free-crls" href="gnutls/gnutls-gnutls.html#gnutls-certificate-free-crls">
+<ANCHOR id="gnutls-certificate-set-dh-params" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-dh-params">
+<ANCHOR id="gnutls-certificate-set-verify-flags" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-verify-flags">
+<ANCHOR id="gnutls-certificate-set-verify-limits" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-verify-limits">
+<ANCHOR id="gnutls-certificate-set-x509-trust-file" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-trust-file">
+<ANCHOR id="gnutls-certificate-set-x509-trust-mem" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-trust-mem">
+<ANCHOR id="gnutls-certificate-set-x509-crl-file" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-crl-file">
+<ANCHOR id="gnutls-certificate-set-x509-crl-mem" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-crl-mem">
+<ANCHOR id="gnutls-certificate-set-x509-key-file" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-key-file">
+<ANCHOR id="gnutls-certificate-set-x509-key-mem" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem">
+<ANCHOR id="gnutls-certificate-send-x509-rdn-sequence" href="gnutls/gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence">
+<ANCHOR id="gnutls-certificate-set-x509-simple-pkcs12-file" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-file">
+<ANCHOR id="gnutls-certificate-set-x509-simple-pkcs12-mem" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem">
+<ANCHOR id="gnutls-x509-privkey-t" href="gnutls/gnutls-gnutls.html#gnutls-x509-privkey-t">
+<ANCHOR id="gnutls-x509-crl-int" href="gnutls/gnutls-gnutls.html#gnutls-x509-crl-int">
+<ANCHOR id="gnutls-x509-crl-t" href="gnutls/gnutls-gnutls.html#gnutls-x509-crl-t">
+<ANCHOR id="gnutls-x509-crt-int" href="gnutls/gnutls-gnutls.html#gnutls-x509-crt-int">
+<ANCHOR id="gnutls-x509-crt-t" href="gnutls/gnutls-gnutls.html#gnutls-x509-crt-t">
+<ANCHOR id="gnutls-openpgp-keyring-int" href="gnutls/gnutls-gnutls.html#gnutls-openpgp-keyring-int">
+<ANCHOR id="gnutls-openpgp-keyring-t" href="gnutls/gnutls-gnutls.html#gnutls-openpgp-keyring-t">
+<ANCHOR id="gnutls-certificate-set-x509-key" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-key">
+<ANCHOR id="gnutls-certificate-set-x509-trust" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-trust">
+<ANCHOR id="gnutls-certificate-set-x509-crl" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-x509-crl">
+<ANCHOR id="gnutls-global-init" href="gnutls/gnutls-gnutls.html#gnutls-global-init">
+<ANCHOR id="gnutls-global-deinit" href="gnutls/gnutls-gnutls.html#gnutls-global-deinit">
+<ANCHOR id="mutex-init-func" href="gnutls/gnutls-gnutls.html#mutex-init-func">
+<ANCHOR id="mutex-lock-func" href="gnutls/gnutls-gnutls.html#mutex-lock-func">
+<ANCHOR id="mutex-unlock-func" href="gnutls/gnutls-gnutls.html#mutex-unlock-func">
+<ANCHOR id="mutex-deinit-func" href="gnutls/gnutls-gnutls.html#mutex-deinit-func">
+<ANCHOR id="gnutls-global-set-mutex" href="gnutls/gnutls-gnutls.html#gnutls-global-set-mutex">
+<ANCHOR id="gnutls-alloc-function" href="gnutls/gnutls-gnutls.html#gnutls-alloc-function">
+<ANCHOR id="gnutls-calloc-function" href="gnutls/gnutls-gnutls.html#gnutls-calloc-function">
+<ANCHOR id="gnutls-is-secure-function" href="gnutls/gnutls-gnutls.html#gnutls-is-secure-function">
+<ANCHOR id="gnutls-free-function" href="gnutls/gnutls-gnutls.html#gnutls-free-function">
+<ANCHOR id="gnutls-realloc-function" href="gnutls/gnutls-gnutls.html#gnutls-realloc-function">
+<ANCHOR id="gnutls-global-set-mem-functions" href="gnutls/gnutls-gnutls.html#gnutls-global-set-mem-functions">
+<ANCHOR id="gnutls-malloc" href="gnutls/gnutls-gnutls.html#gnutls-malloc">
+<ANCHOR id="gnutls-secure-malloc" href="gnutls/gnutls-gnutls.html#gnutls-secure-malloc">
+<ANCHOR id="gnutls-realloc" href="gnutls/gnutls-gnutls.html#gnutls-realloc">
+<ANCHOR id="gnutls-calloc" href="gnutls/gnutls-gnutls.html#gnutls-calloc">
+<ANCHOR id="gnutls-free" href="gnutls/gnutls-gnutls.html#gnutls-free">
+<ANCHOR id="gnutls-strdup" href="gnutls/gnutls-gnutls.html#gnutls-strdup">
+<ANCHOR id="gnutls-log-func" href="gnutls/gnutls-gnutls.html#gnutls-log-func">
+<ANCHOR id="gnutls-global-set-log-function" href="gnutls/gnutls-gnutls.html#gnutls-global-set-log-function">
+<ANCHOR id="gnutls-global-set-log-level" href="gnutls/gnutls-gnutls.html#gnutls-global-set-log-level">
+<ANCHOR id="gnutls-dh-params-init" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-init">
+<ANCHOR id="gnutls-dh-params-deinit" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-deinit">
+<ANCHOR id="gnutls-dh-params-import-raw" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-import-raw">
+<ANCHOR id="gnutls-dh-params-import-pkcs3" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-import-pkcs3">
+<ANCHOR id="gnutls-dh-params-generate2" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-generate2">
+<ANCHOR id="gnutls-dh-params-export-pkcs3" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-export-pkcs3">
+<ANCHOR id="gnutls-dh-params-export-raw" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-export-raw">
+<ANCHOR id="gnutls-dh-params-cpy" href="gnutls/gnutls-gnutls.html#gnutls-dh-params-cpy">
+<ANCHOR id="gnutls-pull-func" href="gnutls/gnutls-gnutls.html#gnutls-pull-func">
+<ANCHOR id="gnutls-push-func" href="gnutls/gnutls-gnutls.html#gnutls-push-func">
+<ANCHOR id="gnutls-vec-push-func" href="gnutls/gnutls-gnutls.html#gnutls-vec-push-func">
+<ANCHOR id="gnutls-errno-func" href="gnutls/gnutls-gnutls.html#gnutls-errno-func">
+<ANCHOR id="gnutls-transport-set-ptr" href="gnutls/gnutls-gnutls.html#gnutls-transport-set-ptr">
+<ANCHOR id="gnutls-transport-set-ptr2" href="gnutls/gnutls-gnutls.html#gnutls-transport-set-ptr2">
+<ANCHOR id="gnutls-transport-get-ptr" href="gnutls/gnutls-gnutls.html#gnutls-transport-get-ptr">
+<ANCHOR id="gnutls-transport-get-ptr2" href="gnutls/gnutls-gnutls.html#gnutls-transport-get-ptr2">
+<ANCHOR id="gnutls-transport-set-push-function" href="gnutls/gnutls-gnutls.html#gnutls-transport-set-push-function">
+<ANCHOR id="gnutls-transport-set-pull-function" href="gnutls/gnutls-gnutls.html#gnutls-transport-set-pull-function">
+<ANCHOR id="gnutls-transport-set-errno-function" href="gnutls/gnutls-gnutls.html#gnutls-transport-set-errno-function">
+<ANCHOR id="gnutls-transport-set-errno" href="gnutls/gnutls-gnutls.html#gnutls-transport-set-errno">
+<ANCHOR id="gnutls-session-set-ptr" href="gnutls/gnutls-gnutls.html#gnutls-session-set-ptr">
+<ANCHOR id="gnutls-session-get-ptr" href="gnutls/gnutls-gnutls.html#gnutls-session-get-ptr">
+<ANCHOR id="gnutls-openpgp-send-cert" href="gnutls/gnutls-gnutls.html#gnutls-openpgp-send-cert">
+<ANCHOR id="gnutls-fingerprint" href="gnutls/gnutls-gnutls.html#gnutls-fingerprint">
+<ANCHOR id="gnutls-srp-free-client-credentials" href="gnutls/gnutls-gnutls.html#gnutls-srp-free-client-credentials">
+<ANCHOR id="gnutls-srp-allocate-client-credentials" href="gnutls/gnutls-gnutls.html#gnutls-srp-allocate-client-credentials">
+<ANCHOR id="gnutls-srp-set-client-credentials" href="gnutls/gnutls-gnutls.html#gnutls-srp-set-client-credentials">
+<ANCHOR id="gnutls-srp-free-server-credentials" href="gnutls/gnutls-gnutls.html#gnutls-srp-free-server-credentials">
+<ANCHOR id="gnutls-srp-allocate-server-credentials" href="gnutls/gnutls-gnutls.html#gnutls-srp-allocate-server-credentials">
+<ANCHOR id="gnutls-srp-set-server-credentials-file" href="gnutls/gnutls-gnutls.html#gnutls-srp-set-server-credentials-file">
+<ANCHOR id="gnutls-srp-server-get-username" href="gnutls/gnutls-gnutls.html#gnutls-srp-server-get-username">
+<ANCHOR id="gnutls-srp-set-prime-bits" href="gnutls/gnutls-gnutls.html#gnutls-srp-set-prime-bits">
+<ANCHOR id="gnutls-srp-verifier" href="gnutls/gnutls-gnutls.html#gnutls-srp-verifier">
+<ANCHOR id="gnutls-srp-2048-group-prime" href="gnutls/gnutls-gnutls.html#gnutls-srp-2048-group-prime">
+<ANCHOR id="gnutls-srp-2048-group-generator" href="gnutls/gnutls-gnutls.html#gnutls-srp-2048-group-generator">
+<ANCHOR id="gnutls-srp-1536-group-prime" href="gnutls/gnutls-gnutls.html#gnutls-srp-1536-group-prime">
+<ANCHOR id="gnutls-srp-1536-group-generator" href="gnutls/gnutls-gnutls.html#gnutls-srp-1536-group-generator">
+<ANCHOR id="gnutls-srp-1024-group-prime" href="gnutls/gnutls-gnutls.html#gnutls-srp-1024-group-prime">
+<ANCHOR id="gnutls-srp-1024-group-generator" href="gnutls/gnutls-gnutls.html#gnutls-srp-1024-group-generator">
+<ANCHOR id="gnutls-srp-set-server-credentials-function" href="gnutls/gnutls-gnutls.html#gnutls-srp-set-server-credentials-function">
+<ANCHOR id="gnutls-srp-set-client-credentials-function" href="gnutls/gnutls-gnutls.html#gnutls-srp-set-client-credentials-function">
+<ANCHOR id="gnutls-srp-base64-encode" href="gnutls/gnutls-gnutls.html#gnutls-srp-base64-encode">
+<ANCHOR id="gnutls-srp-base64-encode-alloc" href="gnutls/gnutls-gnutls.html#gnutls-srp-base64-encode-alloc">
+<ANCHOR id="gnutls-srp-base64-decode" href="gnutls/gnutls-gnutls.html#gnutls-srp-base64-decode">
+<ANCHOR id="gnutls-srp-base64-decode-alloc" href="gnutls/gnutls-gnutls.html#gnutls-srp-base64-decode-alloc">
+<ANCHOR id="gnutls-psk-key-flags" href="gnutls/gnutls-gnutls.html#gnutls-psk-key-flags">
+<ANCHOR id="GNUTLS-PSK-KEY-RAW:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PSK-KEY-RAW:CAPS">
+<ANCHOR id="GNUTLS-PSK-KEY-HEX:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PSK-KEY-HEX:CAPS">
+<ANCHOR id="gnutls-psk-free-client-credentials" href="gnutls/gnutls-gnutls.html#gnutls-psk-free-client-credentials">
+<ANCHOR id="gnutls-psk-allocate-client-credentials" href="gnutls/gnutls-gnutls.html#gnutls-psk-allocate-client-credentials">
+<ANCHOR id="gnutls-psk-set-client-credentials" href="gnutls/gnutls-gnutls.html#gnutls-psk-set-client-credentials">
+<ANCHOR id="gnutls-psk-free-server-credentials" href="gnutls/gnutls-gnutls.html#gnutls-psk-free-server-credentials">
+<ANCHOR id="gnutls-psk-allocate-server-credentials" href="gnutls/gnutls-gnutls.html#gnutls-psk-allocate-server-credentials">
+<ANCHOR id="gnutls-psk-set-server-credentials-file" href="gnutls/gnutls-gnutls.html#gnutls-psk-set-server-credentials-file">
+<ANCHOR id="gnutls-psk-set-server-credentials-hint" href="gnutls/gnutls-gnutls.html#gnutls-psk-set-server-credentials-hint">
+<ANCHOR id="gnutls-psk-server-get-username" href="gnutls/gnutls-gnutls.html#gnutls-psk-server-get-username">
+<ANCHOR id="gnutls-psk-client-get-hint" href="gnutls/gnutls-gnutls.html#gnutls-psk-client-get-hint">
+<ANCHOR id="gnutls-psk-set-server-credentials-function" href="gnutls/gnutls-gnutls.html#gnutls-psk-set-server-credentials-function">
+<ANCHOR id="gnutls-psk-set-client-credentials-function" href="gnutls/gnutls-gnutls.html#gnutls-psk-set-client-credentials-function">
+<ANCHOR id="gnutls-hex-encode" href="gnutls/gnutls-gnutls.html#gnutls-hex-encode">
+<ANCHOR id="gnutls-hex-decode" href="gnutls/gnutls-gnutls.html#gnutls-hex-decode">
+<ANCHOR id="gnutls-psk-set-server-dh-params" href="gnutls/gnutls-gnutls.html#gnutls-psk-set-server-dh-params">
+<ANCHOR id="gnutls-psk-set-server-params-function" href="gnutls/gnutls-gnutls.html#gnutls-psk-set-server-params-function">
+<ANCHOR id="gnutls-x509-subject-alt-name-t" href="gnutls/gnutls-gnutls.html#gnutls-x509-subject-alt-name-t">
+<ANCHOR id="GNUTLS-SAN-DNSNAME:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS">
+<ANCHOR id="GNUTLS-SAN-RFC822NAME:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS">
+<ANCHOR id="GNUTLS-SAN-URI:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS">
+<ANCHOR id="GNUTLS-SAN-IPADDRESS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS">
+<ANCHOR id="GNUTLS-SAN-OTHERNAME:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS">
+<ANCHOR id="GNUTLS-SAN-DN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SAN-DN:CAPS">
+<ANCHOR id="GNUTLS-SAN-OTHERNAME-XMPP:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS">
+<ANCHOR id="gnutls-openpgp-crt-int" href="gnutls/gnutls-gnutls.html#gnutls-openpgp-crt-int">
+<ANCHOR id="gnutls-openpgp-crt-t" href="gnutls/gnutls-gnutls.html#gnutls-openpgp-crt-t">
+<ANCHOR id="gnutls-openpgp-privkey-int" href="gnutls/gnutls-gnutls.html#gnutls-openpgp-privkey-int">
+<ANCHOR id="gnutls-openpgp-privkey-t" href="gnutls/gnutls-gnutls.html#gnutls-openpgp-privkey-t">
+<ANCHOR id="gnutls-pkcs11-privkey-st" href="gnutls/gnutls-gnutls.html#gnutls-pkcs11-privkey-st">
+<ANCHOR id="gnutls-pkcs11-privkey-t" href="gnutls/gnutls-gnutls.html#gnutls-pkcs11-privkey-t">
+<ANCHOR id="gnutls-privkey-type-t" href="gnutls/gnutls-gnutls.html#gnutls-privkey-type-t">
+<ANCHOR id="GNUTLS-PRIVKEY-X509:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PRIVKEY-X509:CAPS">
+<ANCHOR id="GNUTLS-PRIVKEY-OPENPGP:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PRIVKEY-OPENPGP:CAPS">
+<ANCHOR id="GNUTLS-PRIVKEY-PKCS11:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PRIVKEY-PKCS11:CAPS">
+<ANCHOR id="GNUTLS-PRIVKEY-EXT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-PRIVKEY-EXT:CAPS">
+<ANCHOR id="gnutls-auth-get-type" href="gnutls/gnutls-gnutls.html#gnutls-auth-get-type">
+<ANCHOR id="gnutls-auth-server-get-type" href="gnutls/gnutls-gnutls.html#gnutls-auth-server-get-type">
+<ANCHOR id="gnutls-auth-client-get-type" href="gnutls/gnutls-gnutls.html#gnutls-auth-client-get-type">
+<ANCHOR id="gnutls-dh-set-prime-bits" href="gnutls/gnutls-gnutls.html#gnutls-dh-set-prime-bits">
+<ANCHOR id="gnutls-dh-get-secret-bits" href="gnutls/gnutls-gnutls.html#gnutls-dh-get-secret-bits">
+<ANCHOR id="gnutls-dh-get-peers-public-bits" href="gnutls/gnutls-gnutls.html#gnutls-dh-get-peers-public-bits">
+<ANCHOR id="gnutls-dh-get-prime-bits" href="gnutls/gnutls-gnutls.html#gnutls-dh-get-prime-bits">
+<ANCHOR id="gnutls-dh-get-group" href="gnutls/gnutls-gnutls.html#gnutls-dh-get-group">
+<ANCHOR id="gnutls-dh-get-pubkey" href="gnutls/gnutls-gnutls.html#gnutls-dh-get-pubkey">
+<ANCHOR id="gnutls-certificate-set-retrieve-function" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-retrieve-function">
+<ANCHOR id="gnutls-certificate-set-verify-function" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-verify-function">
+<ANCHOR id="gnutls-certificate-server-set-request" href="gnutls/gnutls-gnutls.html#gnutls-certificate-server-set-request">
+<ANCHOR id="gnutls-certificate-get-peers" href="gnutls/gnutls-gnutls.html#gnutls-certificate-get-peers">
+<ANCHOR id="gnutls-certificate-get-ours" href="gnutls/gnutls-gnutls.html#gnutls-certificate-get-ours">
+<ANCHOR id="gnutls-certificate-activation-time-peers" href="gnutls/gnutls-gnutls.html#gnutls-certificate-activation-time-peers">
+<ANCHOR id="gnutls-certificate-expiration-time-peers" href="gnutls/gnutls-gnutls.html#gnutls-certificate-expiration-time-peers">
+<ANCHOR id="gnutls-certificate-client-get-request-status" href="gnutls/gnutls-gnutls.html#gnutls-certificate-client-get-request-status">
+<ANCHOR id="gnutls-certificate-verify-peers2" href="gnutls/gnutls-gnutls.html#gnutls-certificate-verify-peers2">
+<ANCHOR id="gnutls-pem-base64-encode" href="gnutls/gnutls-gnutls.html#gnutls-pem-base64-encode">
+<ANCHOR id="gnutls-pem-base64-decode" href="gnutls/gnutls-gnutls.html#gnutls-pem-base64-decode">
+<ANCHOR id="gnutls-pem-base64-encode-alloc" href="gnutls/gnutls-gnutls.html#gnutls-pem-base64-encode-alloc">
+<ANCHOR id="gnutls-pem-base64-decode-alloc" href="gnutls/gnutls-gnutls.html#gnutls-pem-base64-decode-alloc">
+<ANCHOR id="GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS">
+<ANCHOR id="GNUTLS-KEY-NON-REPUDIATION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS">
+<ANCHOR id="GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS">
+<ANCHOR id="GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS">
+<ANCHOR id="GNUTLS-KEY-KEY-AGREEMENT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS">
+<ANCHOR id="GNUTLS-KEY-KEY-CERT-SIGN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS">
+<ANCHOR id="GNUTLS-KEY-CRL-SIGN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS">
+<ANCHOR id="GNUTLS-KEY-ENCIPHER-ONLY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS">
+<ANCHOR id="GNUTLS-KEY-DECIPHER-ONLY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS">
+<ANCHOR id="gnutls-certificate-set-params-function" href="gnutls/gnutls-gnutls.html#gnutls-certificate-set-params-function">
+<ANCHOR id="gnutls-anon-set-params-function" href="gnutls/gnutls-gnutls.html#gnutls-anon-set-params-function">
+<ANCHOR id="gnutls-psk-set-params-function" href="gnutls/gnutls-gnutls.html#gnutls-psk-set-params-function">
+<ANCHOR id="gnutls-hex2bin" href="gnutls/gnutls-gnutls.html#gnutls-hex2bin">
+<ANCHOR id="GNUTLS-E-SUCCESS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS">
+<ANCHOR id="GNUTLS-E-LARGE-PACKET:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS">
+<ANCHOR id="GNUTLS-E-UNSUPPORTED-VERSION-PACKET:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-VERSION-PACKET:CAPS">
+<ANCHOR id="GNUTLS-E-UNEXPECTED-PACKET-LENGTH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET-LENGTH:CAPS">
+<ANCHOR id="GNUTLS-E-INVALID-SESSION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INVALID-SESSION:CAPS">
+<ANCHOR id="GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS">
+<ANCHOR id="GNUTLS-E-UNEXPECTED-PACKET:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET:CAPS">
+<ANCHOR id="GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS">
+<ANCHOR id="GNUTLS-E-ERROR-IN-FINISHED-PACKET:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ERROR-IN-FINISHED-PACKET:CAPS">
+<ANCHOR id="GNUTLS-E-UNEXPECTED-HANDSHAKE-PACKET:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-HANDSHAKE-PACKET:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS">
+<ANCHOR id="GNUTLS-E-UNWANTED-ALGORITHM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNWANTED-ALGORITHM:CAPS">
+<ANCHOR id="GNUTLS-E-MPI-SCAN-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-MPI-SCAN-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-DECRYPTION-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-MEMORY-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-MEMORY-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-DECOMPRESSION-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-DECOMPRESSION-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-COMPRESSION-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-COMPRESSION-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-AGAIN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS">
+<ANCHOR id="GNUTLS-E-EXPIRED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS">
+<ANCHOR id="GNUTLS-E-DB-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-DB-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-SRP-PWD-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-SRP-PWD-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-INSUFFICIENT-CREDENTIALS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CREDENTIALS:CAPS">
+<ANCHOR id="GNUTLS-E-INSUFICIENT-CREDENTIALS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CREDENTIALS:CAPS">
+<ANCHOR id="GNUTLS-E-INSUFFICIENT-CRED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CRED:CAPS">
+<ANCHOR id="GNUTLS-E-INSUFICIENT-CRED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CRED:CAPS">
+<ANCHOR id="GNUTLS-E-HASH-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-HASH-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-BASE64-DECODING-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-BASE64-DECODING-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-MPI-PRINT-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-MPI-PRINT-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-REHANDSHAKE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS">
+<ANCHOR id="GNUTLS-E-GOT-APPLICATION-DATA:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS">
+<ANCHOR id="GNUTLS-E-RECORD-LIMIT-REACHED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-RECORD-LIMIT-REACHED:CAPS">
+<ANCHOR id="GNUTLS-E-ENCRYPTION-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ENCRYPTION-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-PK-ENCRYPTION-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PK-ENCRYPTION-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-PK-DECRYPTION-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PK-DECRYPTION-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-PK-SIGN-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PK-SIGN-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-X509-UNSUPPORTED-CRITICAL-EXTENSION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-CRITICAL-EXTENSION:CAPS">
+<ANCHOR id="GNUTLS-E-KEY-USAGE-VIOLATION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-KEY-USAGE-VIOLATION:CAPS">
+<ANCHOR id="GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS">
+<ANCHOR id="GNUTLS-E-INVALID-REQUEST:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS">
+<ANCHOR id="GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS">
+<ANCHOR id="GNUTLS-E-INTERRUPTED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS">
+<ANCHOR id="GNUTLS-E-PUSH-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PUSH-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PULL-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PULL-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS">
+<ANCHOR id="GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS1-WRONG-PAD:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS1-WRONG-PAD:CAPS">
+<ANCHOR id="GNUTLS-E-RECEIVED-ILLEGAL-EXTENSION:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-EXTENSION:CAPS">
+<ANCHOR id="GNUTLS-E-INTERNAL-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INTERNAL-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS">
+<ANCHOR id="GNUTLS-E-FILE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-FILE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-TOO-MANY-EMPTY-PACKETS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-TOO-MANY-EMPTY-PACKETS:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-PK-ALGORITHM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PK-ALGORITHM:CAPS">
+<ANCHOR id="GNUTLS-E-NO-TEMPORARY-RSA-PARAMS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-RSA-PARAMS:CAPS">
+<ANCHOR id="GNUTLS-E-NO-COMPRESSION-ALGORITHMS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-NO-COMPRESSION-ALGORITHMS:CAPS">
+<ANCHOR id="GNUTLS-E-NO-CIPHER-SUITES:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-NO-CIPHER-SUITES:CAPS">
+<ANCHOR id="GNUTLS-E-OPENPGP-GETKEY-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-OPENPGP-GETKEY-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-ILLEGAL-SRP-USERNAME:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ILLEGAL-SRP-USERNAME:CAPS">
+<ANCHOR id="GNUTLS-E-SRP-PWD-PARSING-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-SRP-PWD-PARSING-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-NO-TEMPORARY-DH-PARAMS:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-DH-PARAMS:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-ELEMENT-NOT-FOUND:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-ELEMENT-NOT-FOUND:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-IDENTIFIER-NOT-FOUND:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-IDENTIFIER-NOT-FOUND:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-DER-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-DER-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-GENERIC-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-GENERIC-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-VALUE-NOT-VALID:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-VALID:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-TAG-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-TAG-IMPLICIT:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-IMPLICIT:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-TYPE-ANY-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-TYPE-ANY-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-SYNTAX-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-SYNTAX-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-ASN1-DER-OVERFLOW:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-ASN1-DER-OVERFLOW:CAPS">
+<ANCHOR id="GNUTLS-E-OPENPGP-UID-REVOKED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-OPENPGP-UID-REVOKED:CAPS">
+<ANCHOR id="GNUTLS-E-CERTIFICATE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-X509-CERTIFICATE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-X509-CERTIFICATE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS">
+<ANCHOR id="GNUTLS-E-UNSUPPORTED-CERTIFICATE-TYPE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-CERTIFICATE-TYPE:CAPS">
+<ANCHOR id="GNUTLS-E-X509-UNKNOWN-SAN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-X509-UNKNOWN-SAN:CAPS">
+<ANCHOR id="GNUTLS-E-OPENPGP-FINGERPRINT-UNSUPPORTED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-OPENPGP-FINGERPRINT-UNSUPPORTED:CAPS">
+<ANCHOR id="GNUTLS-E-X509-UNSUPPORTED-ATTRIBUTE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-ATTRIBUTE:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-PKCS-CONTENT-TYPE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-CONTENT-TYPE:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-PKCS-BAG-TYPE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-BAG-TYPE:CAPS">
+<ANCHOR id="GNUTLS-E-INVALID-PASSWORD:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD:CAPS">
+<ANCHOR id="GNUTLS-E-MAC-VERIFY-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-MAC-VERIFY-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-CONSTRAINT-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-CONSTRAINT-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS">
+<ANCHOR id="GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS">
+<ANCHOR id="GNUTLS-E-IA-VERIFY-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-IA-VERIFY-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-ALGORITHM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-ALGORITHM:CAPS">
+<ANCHOR id="GNUTLS-E-UNSUPPORTED-SIGNATURE-ALGORITHM:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-SIGNATURE-ALGORITHM:CAPS">
+<ANCHOR id="GNUTLS-E-SAFE-RENEGOTIATION-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-SAFE-RENEGOTIATION-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-UNSAFE-RENEGOTIATION-DENIED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNSAFE-RENEGOTIATION-DENIED:CAPS">
+<ANCHOR id="GNUTLS-E-UNKNOWN-SRP-USERNAME:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNKNOWN-SRP-USERNAME:CAPS">
+<ANCHOR id="GNUTLS-E-BASE64-ENCODING-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-BASE64-ENCODING-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-INCOMPATIBLE-GCRYPT-LIBRARY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-GCRYPT-LIBRARY:CAPS">
+<ANCHOR id="GNUTLS-E-INCOMPATIBLE-CRYPTO-LIBRARY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-CRYPTO-LIBRARY:CAPS">
+<ANCHOR id="GNUTLS-E-INCOMPATIBLE-LIBTASN1-LIBRARY:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-LIBTASN1-LIBRARY:CAPS">
+<ANCHOR id="GNUTLS-E-OPENPGP-KEYRING-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-OPENPGP-KEYRING-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-X509-UNSUPPORTED-OID:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-OID:CAPS">
+<ANCHOR id="GNUTLS-E-RANDOM-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-RANDOM-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-BASE64-UNEXPECTED-HEADER-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-BASE64-UNEXPECTED-HEADER-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-OPENPGP-SUBKEY-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-OPENPGP-SUBKEY-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-CRYPTO-ALREADY-REGISTERED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-CRYPTO-ALREADY-REGISTERED:CAPS">
+<ANCHOR id="GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS">
+<ANCHOR id="GNUTLS-E-CRYPTODEV-IOCTL-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-IOCTL-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-CRYPTODEV-DEVICE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-DEVICE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-LOAD-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-LOAD-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PARSING-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-PIN-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-SLOT-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-SLOT-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-LOCKING-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-LOCKING-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-ATTRIBUTE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-ATTRIBUTE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-DEVICE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-DEVICE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-DATA-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-DATA-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-UNSUPPORTED-FEATURE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-UNSUPPORTED-FEATURE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-KEY-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-KEY-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-PIN-EXPIRED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-EXPIRED:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-PIN-LOCKED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-LOCKED:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-SESSION-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-SESSION-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-SIGNATURE-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-SIGNATURE-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-TOKEN-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-TOKEN-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-PKCS11-USER-ERROR:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-PKCS11-USER-ERROR:CAPS">
+<ANCHOR id="GNUTLS-E-CRYPTO-INIT-FAILED:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-CRYPTO-INIT-FAILED:CAPS">
+<ANCHOR id="GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS">
+<ANCHOR id="GNUTLS-E-APPLICATION-ERROR-MAX:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MAX:CAPS">
+<ANCHOR id="GNUTLS-E-APPLICATION-ERROR-MIN:CAPS" href="gnutls/gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MIN:CAPS">
+<ANCHOR id="gnutls-abstract" href="gnutls/gnutls-abstract.html">
+<ANCHOR id="gnutls-abstract.synopsis" href="gnutls/gnutls-abstract.html#gnutls-abstract.synopsis">
+<ANCHOR id="gnutls-abstract.description" href="gnutls/gnutls-abstract.html#gnutls-abstract.description">
+<ANCHOR id="gnutls-abstract.details" href="gnutls/gnutls-abstract.html#gnutls-abstract.details">
+<ANCHOR id="gnutls-pubkey-st" href="gnutls/gnutls-abstract.html#gnutls-pubkey-st">
+<ANCHOR id="gnutls-pubkey-t" href="gnutls/gnutls-abstract.html#gnutls-pubkey-t">
+<ANCHOR id="gnutls-pubkey-init" href="gnutls/gnutls-abstract.html#gnutls-pubkey-init">
+<ANCHOR id="gnutls-pubkey-deinit" href="gnutls/gnutls-abstract.html#gnutls-pubkey-deinit">
+<ANCHOR id="gnutls-pubkey-get-pk-algorithm" href="gnutls/gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm">
+<ANCHOR id="gnutls-pubkey-import-x509" href="gnutls/gnutls-abstract.html#gnutls-pubkey-import-x509">
+<ANCHOR id="gnutls-pubkey-import-pkcs11" href="gnutls/gnutls-abstract.html#gnutls-pubkey-import-pkcs11">
+<ANCHOR id="gnutls-pubkey-import-openpgp" href="gnutls/gnutls-abstract.html#gnutls-pubkey-import-openpgp">
+<ANCHOR id="gnutls-pubkey-get-preferred-hash-algorithm" href="gnutls/gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm">
+<ANCHOR id="gnutls-pubkey-get-pk-rsa-raw" href="gnutls/gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw">
+<ANCHOR id="gnutls-pubkey-get-pk-dsa-raw" href="gnutls/gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw">
+<ANCHOR id="gnutls-pubkey-export" href="gnutls/gnutls-abstract.html#gnutls-pubkey-export">
+<ANCHOR id="gnutls-pubkey-get-key-id" href="gnutls/gnutls-abstract.html#gnutls-pubkey-get-key-id">
+<ANCHOR id="gnutls-pubkey-get-key-usage" href="gnutls/gnutls-abstract.html#gnutls-pubkey-get-key-usage">
+<ANCHOR id="gnutls-pubkey-set-key-usage" href="gnutls/gnutls-abstract.html#gnutls-pubkey-set-key-usage">
+<ANCHOR id="gnutls-pubkey-import" href="gnutls/gnutls-abstract.html#gnutls-pubkey-import">
+<ANCHOR id="gnutls-pubkey-import-pkcs11-url" href="gnutls/gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url">
+<ANCHOR id="gnutls-pubkey-import-dsa-raw" href="gnutls/gnutls-abstract.html#gnutls-pubkey-import-dsa-raw">
+<ANCHOR id="gnutls-pubkey-import-rsa-raw" href="gnutls/gnutls-abstract.html#gnutls-pubkey-import-rsa-raw">
+<ANCHOR id="gnutls-x509-crt-set-pubkey" href="gnutls/gnutls-abstract.html#gnutls-x509-crt-set-pubkey">
+<ANCHOR id="gnutls-x509-crq-set-pubkey" href="gnutls/gnutls-abstract.html#gnutls-x509-crq-set-pubkey">
+<ANCHOR id="gnutls-pubkey-verify-hash" href="gnutls/gnutls-abstract.html#gnutls-pubkey-verify-hash">
+<ANCHOR id="gnutls-pubkey-get-verify-algorithm" href="gnutls/gnutls-abstract.html#gnutls-pubkey-get-verify-algorithm">
+<ANCHOR id="gnutls-privkey-st" href="gnutls/gnutls-abstract.html#gnutls-privkey-st">
+<ANCHOR id="gnutls-privkey-t" href="gnutls/gnutls-abstract.html#gnutls-privkey-t">
+<ANCHOR id="gnutls-privkey-init" href="gnutls/gnutls-abstract.html#gnutls-privkey-init">
+<ANCHOR id="gnutls-privkey-deinit" href="gnutls/gnutls-abstract.html#gnutls-privkey-deinit">
+<ANCHOR id="gnutls-privkey-get-pk-algorithm" href="gnutls/gnutls-abstract.html#gnutls-privkey-get-pk-algorithm">
+<ANCHOR id="gnutls-privkey-get-type" href="gnutls/gnutls-abstract.html#gnutls-privkey-get-type">
+<ANCHOR id="GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" href="gnutls/gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS">
+<ANCHOR id="gnutls-privkey-import-pkcs11" href="gnutls/gnutls-abstract.html#gnutls-privkey-import-pkcs11">
+<ANCHOR id="gnutls-privkey-import-x509" href="gnutls/gnutls-abstract.html#gnutls-privkey-import-x509">
+<ANCHOR id="gnutls-privkey-import-openpgp" href="gnutls/gnutls-abstract.html#gnutls-privkey-import-openpgp">
+<ANCHOR id="gnutls-privkey-sign-data" href="gnutls/gnutls-abstract.html#gnutls-privkey-sign-data">
+<ANCHOR id="gnutls-privkey-sign-hash" href="gnutls/gnutls-abstract.html#gnutls-privkey-sign-hash">
+<ANCHOR id="gnutls-privkey-decrypt-data" href="gnutls/gnutls-abstract.html#gnutls-privkey-decrypt-data">
+<ANCHOR id="gnutls-x509-crt-privkey-sign" href="gnutls/gnutls-abstract.html#gnutls-x509-crt-privkey-sign">
+<ANCHOR id="gnutls-x509-crl-privkey-sign" href="gnutls/gnutls-abstract.html#gnutls-x509-crl-privkey-sign">
+<ANCHOR id="gnutls-x509-crq-privkey-sign" href="gnutls/gnutls-abstract.html#gnutls-x509-crq-privkey-sign">
+<ANCHOR id="gnutls-x509" href="gnutls/gnutls-x509.html">
+<ANCHOR id="gnutls-x509.synopsis" href="gnutls/gnutls-x509.html#gnutls-x509.synopsis">
+<ANCHOR id="gnutls-x509.description" href="gnutls/gnutls-x509.html#gnutls-x509.description">
+<ANCHOR id="gnutls-x509.details" href="gnutls/gnutls-x509.html#gnutls-x509.details">
+<ANCHOR id="GNUTLS-OID-X520-COUNTRY-NAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-COUNTRY-NAME:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-COMMON-NAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-COMMON-NAME:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-LOCALITY-NAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-LOCALITY-NAME:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-INITIALS:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-INITIALS:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-SURNAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-SURNAME:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-GIVEN-NAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-GIVEN-NAME:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-TITLE:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-TITLE:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-DN-QUALIFIER:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-DN-QUALIFIER:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-PSEUDONYM:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-PSEUDONYM:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-POSTALCODE:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-POSTALCODE:CAPS">
+<ANCHOR id="GNUTLS-OID-X520-NAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-X520-NAME:CAPS">
+<ANCHOR id="GNUTLS-OID-LDAP-DC:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-LDAP-DC:CAPS">
+<ANCHOR id="GNUTLS-OID-LDAP-UID:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-LDAP-UID:CAPS">
+<ANCHOR id="GNUTLS-OID-PKCS9-EMAIL:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-PKCS9-EMAIL:CAPS">
+<ANCHOR id="GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS">
+<ANCHOR id="GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS">
+<ANCHOR id="GNUTLS-OID-PKIX-GENDER:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-PKIX-GENDER:CAPS">
+<ANCHOR id="GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS">
+<ANCHOR id="GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS">
+<ANCHOR id="GNUTLS-KP-TLS-WWW-SERVER:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS">
+<ANCHOR id="GNUTLS-KP-TLS-WWW-CLIENT:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-KP-TLS-WWW-CLIENT:CAPS">
+<ANCHOR id="GNUTLS-KP-CODE-SIGNING:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-KP-CODE-SIGNING:CAPS">
+<ANCHOR id="GNUTLS-KP-EMAIL-PROTECTION:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-KP-EMAIL-PROTECTION:CAPS">
+<ANCHOR id="GNUTLS-KP-TIME-STAMPING:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-KP-TIME-STAMPING:CAPS">
+<ANCHOR id="GNUTLS-KP-OCSP-SIGNING:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-KP-OCSP-SIGNING:CAPS">
+<ANCHOR id="GNUTLS-KP-ANY:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-KP-ANY:CAPS">
+<ANCHOR id="GNUTLS-FSAN-SET:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-FSAN-SET:CAPS">
+<ANCHOR id="GNUTLS-FSAN-APPEND:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS">
+<ANCHOR id="gnutls-certificate-import-flags" href="gnutls/gnutls-x509.html#gnutls-certificate-import-flags">
+<ANCHOR id="GNUTLS-X509-CRT-LIST-IMPORT-FAIL-IF-EXCEED:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-X509-CRT-LIST-IMPORT-FAIL-IF-EXCEED:CAPS">
+<ANCHOR id="GNUTLS-X509-CRT-LIST-FAIL-IF-UNSORTED:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-X509-CRT-LIST-FAIL-IF-UNSORTED:CAPS">
+<ANCHOR id="gnutls-x509-crt-init" href="gnutls/gnutls-x509.html#gnutls-x509-crt-init">
+<ANCHOR id="gnutls-x509-crt-deinit" href="gnutls/gnutls-x509.html#gnutls-x509-crt-deinit">
+<ANCHOR id="gnutls-x509-crt-import" href="gnutls/gnutls-x509.html#gnutls-x509-crt-import">
+<ANCHOR id="gnutls-x509-crt-list-import" href="gnutls/gnutls-x509.html#gnutls-x509-crt-list-import">
+<ANCHOR id="gnutls-x509-crt-export" href="gnutls/gnutls-x509.html#gnutls-x509-crt-export">
+<ANCHOR id="gnutls-x509-crt-get-issuer-dn" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-issuer-dn">
+<ANCHOR id="gnutls-x509-crt-get-issuer-dn-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-oid">
+<ANCHOR id="gnutls-x509-crt-get-issuer-dn-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-by-oid">
+<ANCHOR id="gnutls-x509-crt-get-dn" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-dn">
+<ANCHOR id="gnutls-x509-crt-get-dn-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-dn-oid">
+<ANCHOR id="gnutls-x509-crt-get-dn-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-dn-by-oid">
+<ANCHOR id="gnutls-x509-crt-check-hostname" href="gnutls/gnutls-x509.html#gnutls-x509-crt-check-hostname">
+<ANCHOR id="gnutls-x509-crt-get-signature-algorithm" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-signature-algorithm">
+<ANCHOR id="gnutls-x509-crt-get-signature" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-signature">
+<ANCHOR id="gnutls-x509-crt-get-version" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-version">
+<ANCHOR id="gnutls-x509-crt-get-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-key-id">
+<ANCHOR id="gnutls-x509-crt-set-authority-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-authority-key-id">
+<ANCHOR id="gnutls-x509-crt-get-authority-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-authority-key-id">
+<ANCHOR id="gnutls-x509-crt-get-subject-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-subject-key-id">
+<ANCHOR id="GNUTLS-CRL-REASON-UNUSED:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-UNUSED:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-SUPERSEDED:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEDED:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-SUPERSEEDED:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEEDED:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS">
+<ANCHOR id="GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS">
+<ANCHOR id="gnutls-x509-crt-get-crl-dist-points" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-crl-dist-points">
+<ANCHOR id="gnutls-x509-crt-set-crl-dist-points2" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points2">
+<ANCHOR id="gnutls-x509-crt-set-crl-dist-points" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points">
+<ANCHOR id="gnutls-x509-crt-cpy-crl-dist-points" href="gnutls/gnutls-x509.html#gnutls-x509-crt-cpy-crl-dist-points">
+<ANCHOR id="gnutls-x509-crt-get-activation-time" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-activation-time">
+<ANCHOR id="gnutls-x509-crt-get-expiration-time" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-expiration-time">
+<ANCHOR id="gnutls-x509-crt-get-serial" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-serial">
+<ANCHOR id="gnutls-x509-crt-get-pk-algorithm" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-pk-algorithm">
+<ANCHOR id="gnutls-x509-crt-get-pk-rsa-raw" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-pk-rsa-raw">
+<ANCHOR id="gnutls-x509-crt-get-pk-dsa-raw" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-pk-dsa-raw">
+<ANCHOR id="gnutls-x509-crt-get-subject-alt-name" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name">
+<ANCHOR id="gnutls-x509-crt-get-subject-alt-name2" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name2">
+<ANCHOR id="gnutls-x509-crt-get-subject-alt-othername-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid">
+<ANCHOR id="gnutls-x509-crt-get-issuer-alt-name" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name">
+<ANCHOR id="gnutls-x509-crt-get-issuer-alt-name2" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name2">
+<ANCHOR id="gnutls-x509-crt-get-issuer-alt-othername-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-othername-oid">
+<ANCHOR id="gnutls-x509-crt-get-ca-status" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-ca-status">
+<ANCHOR id="gnutls-x509-crt-get-basic-constraints" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-basic-constraints">
+<ANCHOR id="gnutls-x509-crt-get-key-usage" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-key-usage">
+<ANCHOR id="gnutls-x509-crt-set-key-usage" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-key-usage">
+<ANCHOR id="gnutls-x509-crt-get-proxy" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-proxy">
+<ANCHOR id="gnutls-x509-dn-oid-known" href="gnutls/gnutls-x509.html#gnutls-x509-dn-oid-known">
+<ANCHOR id="gnutls-x509-crt-get-extension-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-extension-oid">
+<ANCHOR id="gnutls-x509-crt-get-extension-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid">
+<ANCHOR id="gnutls-x509-crt-get-extension-info" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-extension-info">
+<ANCHOR id="gnutls-x509-crt-get-extension-data" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-extension-data">
+<ANCHOR id="gnutls-x509-crt-set-extension-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-extension-by-oid">
+<ANCHOR id="gnutls-x509-crt-set-dn-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid">
+<ANCHOR id="gnutls-x509-crt-set-issuer-dn-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-issuer-dn-by-oid">
+<ANCHOR id="gnutls-x509-crt-set-version" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-version">
+<ANCHOR id="gnutls-x509-crt-set-key" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-key">
+<ANCHOR id="gnutls-x509-crt-set-ca-status" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-ca-status">
+<ANCHOR id="gnutls-x509-crt-set-basic-constraints" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-basic-constraints">
+<ANCHOR id="gnutls-x509-crt-set-subject-alternative-name" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-subject-alternative-name">
+<ANCHOR id="gnutls-x509-crt-set-subject-alt-name" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name">
+<ANCHOR id="gnutls-x509-crt-sign" href="gnutls/gnutls-x509.html#gnutls-x509-crt-sign">
+<ANCHOR id="gnutls-x509-crt-sign2" href="gnutls/gnutls-x509.html#gnutls-x509-crt-sign2">
+<ANCHOR id="gnutls-x509-crt-set-activation-time" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-activation-time">
+<ANCHOR id="gnutls-x509-crt-set-expiration-time" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-expiration-time">
+<ANCHOR id="gnutls-x509-crt-set-serial" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-serial">
+<ANCHOR id="gnutls-x509-crt-set-subject-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-subject-key-id">
+<ANCHOR id="gnutls-x509-crt-set-proxy-dn" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-proxy-dn">
+<ANCHOR id="gnutls-x509-crt-set-proxy" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-proxy">
+<ANCHOR id="gnutls-x509-crt-print" href="gnutls/gnutls-x509.html#gnutls-x509-crt-print">
+<ANCHOR id="gnutls-x509-crl-print" href="gnutls/gnutls-x509.html#gnutls-x509-crl-print">
+<ANCHOR id="gnutls-x509-crt-get-raw-issuer-dn" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-raw-issuer-dn">
+<ANCHOR id="gnutls-x509-crt-get-raw-dn" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-raw-dn">
+<ANCHOR id="gnutls-x509-rdn-get" href="gnutls/gnutls-x509.html#gnutls-x509-rdn-get">
+<ANCHOR id="gnutls-x509-rdn-get-oid" href="gnutls/gnutls-x509.html#gnutls-x509-rdn-get-oid">
+<ANCHOR id="gnutls-x509-rdn-get-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-rdn-get-by-oid">
+<ANCHOR id="gnutls-x509-dn-t" href="gnutls/gnutls-x509.html#gnutls-x509-dn-t">
+<ANCHOR id="gnutls-x509-crt-get-subject" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-subject">
+<ANCHOR id="gnutls-x509-crt-get-issuer" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-issuer">
+<ANCHOR id="gnutls-x509-dn-get-rdn-ava" href="gnutls/gnutls-x509.html#gnutls-x509-dn-get-rdn-ava">
+<ANCHOR id="gnutls-x509-dn-init" href="gnutls/gnutls-x509.html#gnutls-x509-dn-init">
+<ANCHOR id="gnutls-x509-dn-import" href="gnutls/gnutls-x509.html#gnutls-x509-dn-import">
+<ANCHOR id="gnutls-x509-dn-export" href="gnutls/gnutls-x509.html#gnutls-x509-dn-export">
+<ANCHOR id="gnutls-x509-dn-deinit" href="gnutls/gnutls-x509.html#gnutls-x509-dn-deinit">
+<ANCHOR id="gnutls-x509-crl-init" href="gnutls/gnutls-x509.html#gnutls-x509-crl-init">
+<ANCHOR id="gnutls-x509-crl-deinit" href="gnutls/gnutls-x509.html#gnutls-x509-crl-deinit">
+<ANCHOR id="gnutls-x509-crl-import" href="gnutls/gnutls-x509.html#gnutls-x509-crl-import">
+<ANCHOR id="gnutls-x509-crl-export" href="gnutls/gnutls-x509.html#gnutls-x509-crl-export">
+<ANCHOR id="gnutls-x509-crl-get-issuer-dn" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-issuer-dn">
+<ANCHOR id="gnutls-x509-crl-get-issuer-dn-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-issuer-dn-by-oid">
+<ANCHOR id="gnutls-x509-crl-get-dn-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-dn-oid">
+<ANCHOR id="gnutls-x509-crl-get-signature-algorithm" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-signature-algorithm">
+<ANCHOR id="gnutls-x509-crl-get-signature" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-signature">
+<ANCHOR id="gnutls-x509-crl-get-version" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-version">
+<ANCHOR id="gnutls-x509-crl-get-this-update" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-this-update">
+<ANCHOR id="gnutls-x509-crl-get-next-update" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-next-update">
+<ANCHOR id="gnutls-x509-crl-get-crt-count" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-crt-count">
+<ANCHOR id="gnutls-x509-crl-get-crt-serial" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-crt-serial">
+<ANCHOR id="gnutls-x509-crl-get-certificate-count" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-certificate-count">
+<ANCHOR id="gnutls-x509-crl-get-certificate" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-certificate">
+<ANCHOR id="gnutls-x509-crl-check-issuer" href="gnutls/gnutls-x509.html#gnutls-x509-crl-check-issuer">
+<ANCHOR id="gnutls-x509-crl-set-version" href="gnutls/gnutls-x509.html#gnutls-x509-crl-set-version">
+<ANCHOR id="gnutls-x509-crl-sign2" href="gnutls/gnutls-x509.html#gnutls-x509-crl-sign2">
+<ANCHOR id="gnutls-x509-crl-set-this-update" href="gnutls/gnutls-x509.html#gnutls-x509-crl-set-this-update">
+<ANCHOR id="gnutls-x509-crl-set-next-update" href="gnutls/gnutls-x509.html#gnutls-x509-crl-set-next-update">
+<ANCHOR id="gnutls-x509-crl-set-crt-serial" href="gnutls/gnutls-x509.html#gnutls-x509-crl-set-crt-serial">
+<ANCHOR id="gnutls-x509-crl-set-crt" href="gnutls/gnutls-x509.html#gnutls-x509-crl-set-crt">
+<ANCHOR id="gnutls-x509-crl-get-authority-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-authority-key-id">
+<ANCHOR id="gnutls-x509-crl-get-number" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-number">
+<ANCHOR id="gnutls-x509-crl-get-extension-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-extension-oid">
+<ANCHOR id="gnutls-x509-crl-get-extension-info" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-extension-info">
+<ANCHOR id="gnutls-x509-crl-get-extension-data" href="gnutls/gnutls-x509.html#gnutls-x509-crl-get-extension-data">
+<ANCHOR id="gnutls-x509-crl-set-authority-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-crl-set-authority-key-id">
+<ANCHOR id="gnutls-x509-crl-set-number" href="gnutls/gnutls-x509.html#gnutls-x509-crl-set-number">
+<ANCHOR id="gnutls-pkcs7-int" href="gnutls/gnutls-x509.html#gnutls-pkcs7-int">
+<ANCHOR id="gnutls-pkcs7-t" href="gnutls/gnutls-x509.html#gnutls-pkcs7-t">
+<ANCHOR id="gnutls-pkcs7-init" href="gnutls/gnutls-x509.html#gnutls-pkcs7-init">
+<ANCHOR id="gnutls-pkcs7-deinit" href="gnutls/gnutls-x509.html#gnutls-pkcs7-deinit">
+<ANCHOR id="gnutls-pkcs7-import" href="gnutls/gnutls-x509.html#gnutls-pkcs7-import">
+<ANCHOR id="gnutls-pkcs7-export" href="gnutls/gnutls-x509.html#gnutls-pkcs7-export">
+<ANCHOR id="gnutls-pkcs7-get-crt-count" href="gnutls/gnutls-x509.html#gnutls-pkcs7-get-crt-count">
+<ANCHOR id="gnutls-pkcs7-get-crt-raw" href="gnutls/gnutls-x509.html#gnutls-pkcs7-get-crt-raw">
+<ANCHOR id="gnutls-pkcs7-set-crt-raw" href="gnutls/gnutls-x509.html#gnutls-pkcs7-set-crt-raw">
+<ANCHOR id="gnutls-pkcs7-set-crt" href="gnutls/gnutls-x509.html#gnutls-pkcs7-set-crt">
+<ANCHOR id="gnutls-pkcs7-delete-crt" href="gnutls/gnutls-x509.html#gnutls-pkcs7-delete-crt">
+<ANCHOR id="gnutls-pkcs7-get-crl-raw" href="gnutls/gnutls-x509.html#gnutls-pkcs7-get-crl-raw">
+<ANCHOR id="gnutls-pkcs7-get-crl-count" href="gnutls/gnutls-x509.html#gnutls-pkcs7-get-crl-count">
+<ANCHOR id="gnutls-pkcs7-set-crl-raw" href="gnutls/gnutls-x509.html#gnutls-pkcs7-set-crl-raw">
+<ANCHOR id="gnutls-pkcs7-set-crl" href="gnutls/gnutls-x509.html#gnutls-pkcs7-set-crl">
+<ANCHOR id="gnutls-pkcs7-delete-crl" href="gnutls/gnutls-x509.html#gnutls-pkcs7-delete-crl">
+<ANCHOR id="gnutls-certificate-verify-flags" href="gnutls/gnutls-x509.html#gnutls-certificate-verify-flags">
+<ANCHOR id="GNUTLS-VERIFY-DISABLE-CA-SIGN:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-DISABLE-CA-SIGN:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-ALLOW-X509-V1-CA-CRT:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-ALLOW-X509-V1-CA-CRT:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-DO-NOT-ALLOW-SAME:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-SAME:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-ALLOW-ANY-X509-V1-CA-CRT:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-ALLOW-ANY-X509-V1-CA-CRT:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD2:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD2:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD5:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD5:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-DISABLE-TIME-CHECKS:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-DISABLE-TIME-CHECKS:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-DISABLE-TRUSTED-TIME-CHECKS:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-DISABLE-TRUSTED-TIME-CHECKS:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-DO-NOT-ALLOW-X509-V1-CA-CRT:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-X509-V1-CA-CRT:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-DISABLE-CRL-CHECKS:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-DISABLE-CRL-CHECKS:CAPS">
+<ANCHOR id="GNUTLS-VERIFY-ALLOW-UNSORTED-CHAIN:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-VERIFY-ALLOW-UNSORTED-CHAIN:CAPS">
+<ANCHOR id="gnutls-x509-crt-check-issuer" href="gnutls/gnutls-x509.html#gnutls-x509-crt-check-issuer">
+<ANCHOR id="gnutls-x509-crt-list-verify" href="gnutls/gnutls-x509.html#gnutls-x509-crt-list-verify">
+<ANCHOR id="gnutls-x509-crt-verify" href="gnutls/gnutls-x509.html#gnutls-x509-crt-verify">
+<ANCHOR id="gnutls-x509-crl-verify" href="gnutls/gnutls-x509.html#gnutls-x509-crl-verify">
+<ANCHOR id="gnutls-x509-crt-check-revocation" href="gnutls/gnutls-x509.html#gnutls-x509-crt-check-revocation">
+<ANCHOR id="gnutls-x509-crt-get-fingerprint" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-fingerprint">
+<ANCHOR id="gnutls-x509-crt-get-key-purpose-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-get-key-purpose-oid">
+<ANCHOR id="gnutls-x509-crt-set-key-purpose-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-key-purpose-oid">
+<ANCHOR id="gnutls-pkcs-encrypt-flags-t" href="gnutls/gnutls-x509.html#gnutls-pkcs-encrypt-flags-t">
+<ANCHOR id="GNUTLS-PKCS-PLAIN:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS-PLAIN:CAPS">
+<ANCHOR id="GNUTLS-PKCS8-PLAIN:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS8-PLAIN:CAPS">
+<ANCHOR id="GNUTLS-PKCS-USE-PKCS12-3DES:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-3DES:CAPS">
+<ANCHOR id="GNUTLS-PKCS8-USE-PKCS12-3DES:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-3DES:CAPS">
+<ANCHOR id="GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS">
+<ANCHOR id="GNUTLS-PKCS8-USE-PKCS12-ARCFOUR:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-ARCFOUR:CAPS">
+<ANCHOR id="GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS">
+<ANCHOR id="GNUTLS-PKCS8-USE-PKCS12-RC2-40:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-RC2-40:CAPS">
+<ANCHOR id="GNUTLS-PKCS-USE-PBES2-3DES:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-3DES:CAPS">
+<ANCHOR id="GNUTLS-PKCS-USE-PBES2-AES-128:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-128:CAPS">
+<ANCHOR id="GNUTLS-PKCS-USE-PBES2-AES-192:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-192:CAPS">
+<ANCHOR id="GNUTLS-PKCS-USE-PBES2-AES-256:CAPS" href="gnutls/gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-256:CAPS">
+<ANCHOR id="gnutls-x509-privkey-init" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-init">
+<ANCHOR id="gnutls-x509-privkey-deinit" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-deinit">
+<ANCHOR id="gnutls-x509-privkey-cpy" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-cpy">
+<ANCHOR id="gnutls-x509-privkey-import" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-import">
+<ANCHOR id="gnutls-x509-privkey-import-pkcs8" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-import-pkcs8">
+<ANCHOR id="gnutls-x509-privkey-import-rsa-raw" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw">
+<ANCHOR id="gnutls-x509-privkey-import-rsa-raw2" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw2">
+<ANCHOR id="gnutls-x509-privkey-fix" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-fix">
+<ANCHOR id="gnutls-x509-privkey-export-dsa-raw" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-export-dsa-raw">
+<ANCHOR id="gnutls-x509-privkey-import-dsa-raw" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-import-dsa-raw">
+<ANCHOR id="gnutls-x509-privkey-get-pk-algorithm" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-get-pk-algorithm">
+<ANCHOR id="gnutls-x509-privkey-get-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-get-key-id">
+<ANCHOR id="gnutls-x509-privkey-generate" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-generate">
+<ANCHOR id="gnutls-x509-privkey-export" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-export">
+<ANCHOR id="gnutls-x509-privkey-export-pkcs8" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-export-pkcs8">
+<ANCHOR id="gnutls-x509-privkey-export-rsa-raw2" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw2">
+<ANCHOR id="gnutls-x509-privkey-export-rsa-raw" href="gnutls/gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw">
+<ANCHOR id="gnutls-x509-crq-int" href="gnutls/gnutls-x509.html#gnutls-x509-crq-int">
+<ANCHOR id="gnutls-x509-crq-t" href="gnutls/gnutls-x509.html#gnutls-x509-crq-t">
+<ANCHOR id="gnutls-x509-crq-print" href="gnutls/gnutls-x509.html#gnutls-x509-crq-print">
+<ANCHOR id="gnutls-x509-crq-init" href="gnutls/gnutls-x509.html#gnutls-x509-crq-init">
+<ANCHOR id="gnutls-x509-crq-deinit" href="gnutls/gnutls-x509.html#gnutls-x509-crq-deinit">
+<ANCHOR id="gnutls-x509-crq-import" href="gnutls/gnutls-x509.html#gnutls-x509-crq-import">
+<ANCHOR id="gnutls-x509-crq-get-dn" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-dn">
+<ANCHOR id="gnutls-x509-crq-get-dn-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-dn-oid">
+<ANCHOR id="gnutls-x509-crq-get-dn-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-dn-by-oid">
+<ANCHOR id="gnutls-x509-crq-set-dn-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-dn-by-oid">
+<ANCHOR id="gnutls-x509-crq-set-version" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-version">
+<ANCHOR id="gnutls-x509-crq-get-version" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-version">
+<ANCHOR id="gnutls-x509-crq-set-key" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-key">
+<ANCHOR id="gnutls-x509-crq-sign2" href="gnutls/gnutls-x509.html#gnutls-x509-crq-sign2">
+<ANCHOR id="gnutls-x509-crq-set-challenge-password" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-challenge-password">
+<ANCHOR id="gnutls-x509-crq-get-challenge-password" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-challenge-password">
+<ANCHOR id="gnutls-x509-crq-set-attribute-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-attribute-by-oid">
+<ANCHOR id="gnutls-x509-crq-get-attribute-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-attribute-by-oid">
+<ANCHOR id="gnutls-x509-crq-export" href="gnutls/gnutls-x509.html#gnutls-x509-crq-export">
+<ANCHOR id="gnutls-x509-crt-set-crq" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-crq">
+<ANCHOR id="gnutls-x509-crt-set-crq-extensions" href="gnutls/gnutls-x509.html#gnutls-x509-crt-set-crq-extensions">
+<ANCHOR id="gnutls-x509-crq-set-key-rsa-raw" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-key-rsa-raw">
+<ANCHOR id="gnutls-x509-crq-set-subject-alt-name" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-subject-alt-name">
+<ANCHOR id="gnutls-x509-crq-set-key-usage" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-key-usage">
+<ANCHOR id="gnutls-x509-crq-set-basic-constraints" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-basic-constraints">
+<ANCHOR id="gnutls-x509-crq-set-key-purpose-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-set-key-purpose-oid">
+<ANCHOR id="gnutls-x509-crq-get-key-purpose-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-key-purpose-oid">
+<ANCHOR id="gnutls-x509-crq-get-extension-data" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-extension-data">
+<ANCHOR id="gnutls-x509-crq-get-extension-info" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-extension-info">
+<ANCHOR id="gnutls-x509-crq-get-attribute-data" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-attribute-data">
+<ANCHOR id="gnutls-x509-crq-get-attribute-info" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-attribute-info">
+<ANCHOR id="gnutls-x509-crq-get-pk-algorithm" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-pk-algorithm">
+<ANCHOR id="gnutls-x509-crq-get-key-id" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-key-id">
+<ANCHOR id="gnutls-x509-crq-get-key-rsa-raw" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-key-rsa-raw">
+<ANCHOR id="gnutls-x509-crq-get-key-usage" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-key-usage">
+<ANCHOR id="gnutls-x509-crq-get-basic-constraints" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-basic-constraints">
+<ANCHOR id="gnutls-x509-crq-get-subject-alt-name" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name">
+<ANCHOR id="gnutls-x509-crq-get-subject-alt-othername-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-subject-alt-othername-oid">
+<ANCHOR id="gnutls-x509-crq-get-extension-by-oid" href="gnutls/gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid">
+<ANCHOR id="gnutls-openpgp" href="gnutls/gnutls-openpgp.html">
+<ANCHOR id="gnutls-openpgp.synopsis" href="gnutls/gnutls-openpgp.html#gnutls-openpgp.synopsis">
+<ANCHOR id="gnutls-openpgp.description" href="gnutls/gnutls-openpgp.html#gnutls-openpgp.description">
+<ANCHOR id="gnutls-openpgp.details" href="gnutls/gnutls-openpgp.html#gnutls-openpgp.details">
+<ANCHOR id="gnutls-openpgp-crt-fmt-t" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t">
+<ANCHOR id="GNUTLS-OPENPGP-FMT-RAW:CAPS" href="gnutls/gnutls-openpgp.html#GNUTLS-OPENPGP-FMT-RAW:CAPS">
+<ANCHOR id="GNUTLS-OPENPGP-FMT-BASE64:CAPS" href="gnutls/gnutls-openpgp.html#GNUTLS-OPENPGP-FMT-BASE64:CAPS">
+<ANCHOR id="gnutls-openpgp-keyid-t" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-keyid-t">
+<ANCHOR id="gnutls-openpgp-crt-init" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-init">
+<ANCHOR id="gnutls-openpgp-crt-deinit" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-deinit">
+<ANCHOR id="gnutls-openpgp-crt-import" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-import">
+<ANCHOR id="gnutls-openpgp-crt-export" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-export">
+<ANCHOR id="gnutls-openpgp-crt-print" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-print">
+<ANCHOR id="gnutls-openpgp-crt-get-key-usage" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-key-usage">
+<ANCHOR id="gnutls-openpgp-crt-get-fingerprint" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-fingerprint">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-fingerprint" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint">
+<ANCHOR id="gnutls-openpgp-crt-get-name" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-name">
+<ANCHOR id="gnutls-openpgp-crt-get-pk-algorithm" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-algorithm">
+<ANCHOR id="gnutls-openpgp-crt-get-version" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-version">
+<ANCHOR id="gnutls-openpgp-crt-get-creation-time" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-creation-time">
+<ANCHOR id="gnutls-openpgp-crt-get-expiration-time" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-expiration-time">
+<ANCHOR id="gnutls-openpgp-crt-get-key-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-key-id">
+<ANCHOR id="gnutls-openpgp-crt-check-hostname" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname">
+<ANCHOR id="gnutls-openpgp-crt-get-revoked-status" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-revoked-status">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-count" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-count">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-idx" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-idx">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-revoked-status" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-pk-algorithm" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-creation-time" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-expiration-time" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-id">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-usage" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-usage">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-pk-dsa-raw" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw">
+<ANCHOR id="gnutls-openpgp-crt-get-subkey-pk-rsa-raw" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw">
+<ANCHOR id="gnutls-openpgp-crt-get-pk-dsa-raw" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw">
+<ANCHOR id="gnutls-openpgp-crt-get-pk-rsa-raw" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw">
+<ANCHOR id="gnutls-openpgp-crt-get-preferred-key-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-preferred-key-id">
+<ANCHOR id="gnutls-openpgp-crt-set-preferred-key-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id">
+<ANCHOR id="gnutls-openpgp-privkey-init" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-init">
+<ANCHOR id="gnutls-openpgp-privkey-deinit" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-deinit">
+<ANCHOR id="gnutls-openpgp-privkey-get-pk-algorithm" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm">
+<ANCHOR id="gnutls-openpgp-privkey-import" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-import">
+<ANCHOR id="gnutls-openpgp-privkey-get-fingerprint" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-fingerprint">
+<ANCHOR id="gnutls-openpgp-privkey-get-subkey-fingerprint" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint">
+<ANCHOR id="gnutls-openpgp-privkey-get-key-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-key-id">
+<ANCHOR id="gnutls-openpgp-privkey-get-subkey-count" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-count">
+<ANCHOR id="gnutls-openpgp-privkey-get-subkey-idx" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx">
+<ANCHOR id="gnutls-openpgp-privkey-get-subkey-revoked-status" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status">
+<ANCHOR id="gnutls-openpgp-privkey-get-revoked-status" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-revoked-status">
+<ANCHOR id="gnutls-openpgp-privkey-get-subkey-pk-algorithm" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm">
+<ANCHOR id="gnutls-openpgp-privkey-get-subkey-expiration-time" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time">
+<ANCHOR id="gnutls-openpgp-privkey-get-subkey-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-id">
+<ANCHOR id="gnutls-openpgp-privkey-get-subkey-creation-time" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time">
+<ANCHOR id="gnutls-openpgp-privkey-export-subkey-dsa-raw" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw">
+<ANCHOR id="gnutls-openpgp-privkey-export-subkey-rsa-raw" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw">
+<ANCHOR id="gnutls-openpgp-privkey-export-dsa-raw" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw">
+<ANCHOR id="gnutls-openpgp-privkey-export-rsa-raw" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw">
+<ANCHOR id="gnutls-openpgp-privkey-export" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-export">
+<ANCHOR id="gnutls-openpgp-privkey-set-preferred-key-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-set-preferred-key-id">
+<ANCHOR id="gnutls-openpgp-privkey-get-preferred-key-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-privkey-get-preferred-key-id">
+<ANCHOR id="gnutls-openpgp-crt-get-auth-subkey" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey">
+<ANCHOR id="gnutls-openpgp-keyring-init" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-keyring-init">
+<ANCHOR id="gnutls-openpgp-keyring-deinit" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-keyring-deinit">
+<ANCHOR id="gnutls-openpgp-keyring-import" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-keyring-import">
+<ANCHOR id="gnutls-openpgp-keyring-check-id" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-keyring-check-id">
+<ANCHOR id="gnutls-openpgp-crt-verify-ring" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-verify-ring">
+<ANCHOR id="gnutls-openpgp-crt-verify-self" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-crt-verify-self">
+<ANCHOR id="gnutls-openpgp-keyring-get-crt" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt">
+<ANCHOR id="gnutls-openpgp-keyring-get-crt-count" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt-count">
+<ANCHOR id="gnutls-openpgp-recv-key-func" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-recv-key-func">
+<ANCHOR id="gnutls-openpgp-set-recv-key-function" href="gnutls/gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function">
+<ANCHOR id="gnutls-certificate-set-openpgp-key" href="gnutls/gnutls-openpgp.html#gnutls-certificate-set-openpgp-key">
+<ANCHOR id="gnutls-certificate-set-openpgp-key-file" href="gnutls/gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file">
+<ANCHOR id="gnutls-certificate-set-openpgp-key-mem" href="gnutls/gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem">
+<ANCHOR id="gnutls-certificate-set-openpgp-key-file2" href="gnutls/gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file2">
+<ANCHOR id="gnutls-certificate-set-openpgp-key-mem2" href="gnutls/gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem2">
+<ANCHOR id="gnutls-certificate-set-openpgp-keyring-mem" href="gnutls/gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-mem">
+<ANCHOR id="gnutls-certificate-set-openpgp-keyring-file" href="gnutls/gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-file">
+<ANCHOR id="gnutls-crypto" href="gnutls/gnutls-crypto.html">
+<ANCHOR id="gnutls-crypto.synopsis" href="gnutls/gnutls-crypto.html#gnutls-crypto.synopsis">
+<ANCHOR id="gnutls-crypto.description" href="gnutls/gnutls-crypto.html#gnutls-crypto.description">
+<ANCHOR id="gnutls-crypto.details" href="gnutls/gnutls-crypto.html#gnutls-crypto.details">
+<ANCHOR id="gnutls-cipher-hd-t" href="gnutls/gnutls-crypto.html#gnutls-cipher-hd-t">
+<ANCHOR id="gnutls-cipher-init" href="gnutls/gnutls-crypto.html#gnutls-cipher-init">
+<ANCHOR id="gnutls-cipher-encrypt" href="gnutls/gnutls-crypto.html#gnutls-cipher-encrypt">
+<ANCHOR id="gnutls-cipher-decrypt" href="gnutls/gnutls-crypto.html#gnutls-cipher-decrypt">
+<ANCHOR id="gnutls-cipher-decrypt2" href="gnutls/gnutls-crypto.html#gnutls-cipher-decrypt2">
+<ANCHOR id="gnutls-cipher-encrypt2" href="gnutls/gnutls-crypto.html#gnutls-cipher-encrypt2">
+<ANCHOR id="gnutls-cipher-deinit" href="gnutls/gnutls-crypto.html#gnutls-cipher-deinit">
+<ANCHOR id="gnutls-cipher-get-block-size" href="gnutls/gnutls-crypto.html#gnutls-cipher-get-block-size">
+<ANCHOR id="gnutls-hash-hd-t" href="gnutls/gnutls-crypto.html#gnutls-hash-hd-t">
+<ANCHOR id="gnutls-hmac-hd-t" href="gnutls/gnutls-crypto.html#gnutls-hmac-hd-t">
+<ANCHOR id="gnutls-hmac-init" href="gnutls/gnutls-crypto.html#gnutls-hmac-init">
+<ANCHOR id="gnutls-hmac" href="gnutls/gnutls-crypto.html#gnutls-hmac">
+<ANCHOR id="gnutls-hmac-output" href="gnutls/gnutls-crypto.html#gnutls-hmac-output">
+<ANCHOR id="gnutls-hmac-deinit" href="gnutls/gnutls-crypto.html#gnutls-hmac-deinit">
+<ANCHOR id="gnutls-hmac-get-len" href="gnutls/gnutls-crypto.html#gnutls-hmac-get-len">
+<ANCHOR id="gnutls-hmac-fast" href="gnutls/gnutls-crypto.html#gnutls-hmac-fast">
+<ANCHOR id="gnutls-hash-init" href="gnutls/gnutls-crypto.html#gnutls-hash-init">
+<ANCHOR id="gnutls-hash" href="gnutls/gnutls-crypto.html#gnutls-hash">
+<ANCHOR id="gnutls-hash-output" href="gnutls/gnutls-crypto.html#gnutls-hash-output">
+<ANCHOR id="gnutls-hash-deinit" href="gnutls/gnutls-crypto.html#gnutls-hash-deinit">
+<ANCHOR id="gnutls-hash-get-len" href="gnutls/gnutls-crypto.html#gnutls-hash-get-len">
+<ANCHOR id="gnutls-hash-fast" href="gnutls/gnutls-crypto.html#gnutls-hash-fast">
+<ANCHOR id="gnutls-rnd-level-t" href="gnutls/gnutls-crypto.html#gnutls-rnd-level-t">
+<ANCHOR id="GNUTLS-RND-NONCE:CAPS" href="gnutls/gnutls-crypto.html#GNUTLS-RND-NONCE:CAPS">
+<ANCHOR id="GNUTLS-RND-RANDOM:CAPS" href="gnutls/gnutls-crypto.html#GNUTLS-RND-RANDOM:CAPS">
+<ANCHOR id="GNUTLS-RND-KEY:CAPS" href="gnutls/gnutls-crypto.html#GNUTLS-RND-KEY:CAPS">
+<ANCHOR id="gnutls-rnd" href="gnutls/gnutls-crypto.html#gnutls-rnd">
+<ANCHOR id="gnutls-pkcs11" href="gnutls/gnutls-pkcs11.html">
+<ANCHOR id="gnutls-pkcs11.synopsis" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11.synopsis">
+<ANCHOR id="gnutls-pkcs11.description" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11.description">
+<ANCHOR id="gnutls-pkcs11.details" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11.details">
+<ANCHOR id="GNUTLS-PKCS11-MAX-PIN-LEN:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-MAX-PIN-LEN:CAPS">
+<ANCHOR id="gnutls-pkcs11-token-callback-t" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t">
+<ANCHOR id="gnutls-pkcs11-pin-callback-t" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t">
+<ANCHOR id="gnutls-pkcs11-obj-st" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-st">
+<ANCHOR id="gnutls-pkcs11-obj-t" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-t">
+<ANCHOR id="GNUTLS-PKCS11-FLAG-MANUAL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-FLAG-AUTO:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS">
+<ANCHOR id="gnutls-pkcs11-init" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-init">
+<ANCHOR id="gnutls-pkcs11-deinit" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-deinit">
+<ANCHOR id="gnutls-pkcs11-set-token-function" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-set-token-function">
+<ANCHOR id="gnutls-pkcs11-set-pin-function" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function">
+<ANCHOR id="gnutls-pkcs11-add-provider" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-add-provider">
+<ANCHOR id="gnutls-pkcs11-obj-init" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-init">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS">
+<ANCHOR id="gnutls-pkcs11-obj-import-url" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url">
+<ANCHOR id="gnutls-pkcs11-obj-export-url" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url">
+<ANCHOR id="gnutls-pkcs11-obj-deinit" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit">
+<ANCHOR id="gnutls-pkcs11-obj-export" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-export">
+<ANCHOR id="gnutls-pkcs11-copy-x509-crt" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt">
+<ANCHOR id="gnutls-pkcs11-copy-x509-privkey" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey">
+<ANCHOR id="gnutls-pkcs11-delete-url" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-delete-url">
+<ANCHOR id="gnutls-pkcs11-obj-info-t" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ID-HEX:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ID-HEX:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-LABEL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LABEL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-TOKEN-LABEL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-LABEL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-TOKEN-SERIAL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-SERIAL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-TOKEN-MANUFACTURER:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-MANUFACTURER:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-TOKEN-MODEL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-MODEL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ID:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ID:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-LIBRARY-VERSION:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-VERSION:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-LIBRARY-DESCRIPTION:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-DESCRIPTION:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-LIBRARY-MANUFACTURER:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-MANUFACTURER:CAPS">
+<ANCHOR id="gnutls-pkcs11-obj-get-info" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info">
+<ANCHOR id="gnutls-pkcs11-obj-attr-t" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ATTR-CRT-ALL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-ALL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ATTR-CRT-WITH-PRIVKEY:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-WITH-PRIVKEY:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ATTR-PUBKEY:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-PUBKEY:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ATTR-PRIVKEY:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-PRIVKEY:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ATTR-ALL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-ALL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED-CA:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED-CA:CAPS">
+<ANCHOR id="gnutls-pkcs11-token-info-t" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-token-info-t">
+<ANCHOR id="GNUTLS-PKCS11-TOKEN-LABEL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-LABEL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-TOKEN-SERIAL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SERIAL:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-TOKEN-MANUFACTURER:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-MANUFACTURER:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-TOKEN-MODEL:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-MODEL:CAPS">
+<ANCHOR id="gnutls-pkcs11-obj-type-t" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-UNKNOWN:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-UNKNOWN:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-X509-CRT:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-X509-CRT:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-PUBKEY:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-PUBKEY:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-PRIVKEY:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-PRIVKEY:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-SECRET-KEY:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-SECRET-KEY:CAPS">
+<ANCHOR id="GNUTLS-PKCS11-OBJ-DATA:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-DATA:CAPS">
+<ANCHOR id="gnutls-pkcs11-token-get-url" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-token-get-url">
+<ANCHOR id="gnutls-pkcs11-token-get-info" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-token-get-info">
+<ANCHOR id="GNUTLS-PKCS11-TOKEN-HW:CAPS" href="gnutls/gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS">
+<ANCHOR id="gnutls-pkcs11-token-get-flags" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags">
+<ANCHOR id="gnutls-pkcs11-obj-list-import-url" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url">
+<ANCHOR id="gnutls-x509-crt-import-pkcs11" href="gnutls/gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11">
+<ANCHOR id="gnutls-x509-crt-import-pkcs11-url" href="gnutls/gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11-url">
+<ANCHOR id="gnutls-pkcs11-obj-get-type" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-obj-get-type">
+<ANCHOR id="gnutls-pkcs11-type-get-name" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-type-get-name">
+<ANCHOR id="gnutls-x509-crt-list-import-pkcs11" href="gnutls/gnutls-pkcs11.html#gnutls-x509-crt-list-import-pkcs11">
+<ANCHOR id="gnutls-pkcs11-privkey-init" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-privkey-init">
+<ANCHOR id="gnutls-pkcs11-privkey-deinit" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit">
+<ANCHOR id="gnutls-pkcs11-privkey-get-pk-algorithm" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-pk-algorithm">
+<ANCHOR id="gnutls-pkcs11-privkey-get-info" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-info">
+<ANCHOR id="gnutls-pkcs11-privkey-import-url" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-privkey-import-url">
+<ANCHOR id="gnutls-pkcs11-privkey-export-url" href="gnutls/gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-url">
+<ANCHOR id="gnutls-pkcs12" href="gnutls/gnutls-pkcs12.html">
+<ANCHOR id="gnutls-pkcs12.synopsis" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12.synopsis">
+<ANCHOR id="gnutls-pkcs12.description" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12.description">
+<ANCHOR id="gnutls-pkcs12.details" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12.details">
+<ANCHOR id="gnutls-pkcs12-int" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-int">
+<ANCHOR id="gnutls-pkcs12-t" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-t">
+<ANCHOR id="gnutls-pkcs12-bag-int" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-int">
+<ANCHOR id="gnutls-pkcs12-bag-t" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-t">
+<ANCHOR id="gnutls-pkcs12-init" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-init">
+<ANCHOR id="gnutls-pkcs12-deinit" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-deinit">
+<ANCHOR id="gnutls-pkcs12-import" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-import">
+<ANCHOR id="gnutls-pkcs12-export" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-export">
+<ANCHOR id="gnutls-pkcs12-get-bag" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-get-bag">
+<ANCHOR id="gnutls-pkcs12-set-bag" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-set-bag">
+<ANCHOR id="gnutls-pkcs12-generate-mac" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-generate-mac">
+<ANCHOR id="gnutls-pkcs12-verify-mac" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-verify-mac">
+<ANCHOR id="gnutls-pkcs12-bag-decrypt" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-decrypt">
+<ANCHOR id="gnutls-pkcs12-bag-encrypt" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-encrypt">
+<ANCHOR id="gnutls-pkcs12-bag-type-t" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t">
+<ANCHOR id="GNUTLS-BAG-EMPTY:CAPS" href="gnutls/gnutls-pkcs12.html#GNUTLS-BAG-EMPTY:CAPS">
+<ANCHOR id="GNUTLS-BAG-PKCS8-ENCRYPTED-KEY:CAPS" href="gnutls/gnutls-pkcs12.html#GNUTLS-BAG-PKCS8-ENCRYPTED-KEY:CAPS">
+<ANCHOR id="GNUTLS-BAG-PKCS8-KEY:CAPS" href="gnutls/gnutls-pkcs12.html#GNUTLS-BAG-PKCS8-KEY:CAPS">
+<ANCHOR id="GNUTLS-BAG-CERTIFICATE:CAPS" href="gnutls/gnutls-pkcs12.html#GNUTLS-BAG-CERTIFICATE:CAPS">
+<ANCHOR id="GNUTLS-BAG-CRL:CAPS" href="gnutls/gnutls-pkcs12.html#GNUTLS-BAG-CRL:CAPS">
+<ANCHOR id="GNUTLS-BAG-SECRET:CAPS" href="gnutls/gnutls-pkcs12.html#GNUTLS-BAG-SECRET:CAPS">
+<ANCHOR id="GNUTLS-BAG-ENCRYPTED:CAPS" href="gnutls/gnutls-pkcs12.html#GNUTLS-BAG-ENCRYPTED:CAPS">
+<ANCHOR id="GNUTLS-BAG-UNKNOWN:CAPS" href="gnutls/gnutls-pkcs12.html#GNUTLS-BAG-UNKNOWN:CAPS">
+<ANCHOR id="gnutls-pkcs12-bag-get-type" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-get-type">
+<ANCHOR id="gnutls-pkcs12-bag-get-data" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-get-data">
+<ANCHOR id="gnutls-pkcs12-bag-set-data" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data">
+<ANCHOR id="gnutls-pkcs12-bag-set-crl" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crl">
+<ANCHOR id="gnutls-pkcs12-bag-set-crt" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crt">
+<ANCHOR id="gnutls-pkcs12-bag-init" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-init">
+<ANCHOR id="gnutls-pkcs12-bag-deinit" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-deinit">
+<ANCHOR id="gnutls-pkcs12-bag-get-count" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-get-count">
+<ANCHOR id="gnutls-pkcs12-bag-get-key-id" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-get-key-id">
+<ANCHOR id="gnutls-pkcs12-bag-set-key-id" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-set-key-id">
+<ANCHOR id="gnutls-pkcs12-bag-get-friendly-name" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-get-friendly-name">
+<ANCHOR id="gnutls-pkcs12-bag-set-friendly-name" href="gnutls/gnutls-pkcs12.html#gnutls-pkcs12-bag-set-friendly-name">
diff --git a/doc/reference/html/intro.html b/doc/reference/html/intro.html
new file mode 100644 (file)
index 0000000..f38c214
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GnuTLS API Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="next" href="gnutls-gnutls.html" title="gnutls">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GnuTLS API Reference Manual</th>
+<td><a accesskey="n" href="gnutls-gnutls.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="intro"></a>GnuTLS API Reference Manual</h2></div></div></div>
+<div class="toc"><dl>
+<dt>
+<span class="refentrytitle"><a href="gnutls-gnutls.html">gnutls</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-abstract.html">abstract</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-x509.html">x509</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-openpgp.html">openpgp</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-crypto.html">crypto</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-pkcs11.html">pkcs11</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-pkcs12.html">pkcs12</a></span><span class="refpurpose"></span>
+</dt>
+</dl></div>
+<p>
+      GnuTLS implements the Transport Layer Security (TLS) and Secure
+      Sockets Layer (SSL) protocols for the GNU project.
+    </p>
+<p>
+      More up to date information can be found at
+      <a class="ulink" href="http://www.gnu.org/software/gnutls/" target="_top">
+       http://www.gnu.org/software/gnutls/</a>.
+    </p>
+<span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/left.png b/doc/reference/html/left.png
new file mode 100644 (file)
index 0000000..2d05b3d
Binary files /dev/null and b/doc/reference/html/left.png differ
diff --git a/doc/reference/html/right.png b/doc/reference/html/right.png
new file mode 100644 (file)
index 0000000..92832e3
Binary files /dev/null and b/doc/reference/html/right.png differ
diff --git a/doc/reference/html/style.css b/doc/reference/html/style.css
new file mode 100644 (file)
index 0000000..d6f6c26
--- /dev/null
@@ -0,0 +1,266 @@
+.synopsis, .classsynopsis
+{
+  /* tango:aluminium 1/2 */
+  background: #eeeeec;
+  border: solid 1px #d3d7cf;
+  padding: 0.5em;
+}
+.programlisting
+{
+  /* tango:sky blue 0/1 */
+  background: #e6f3ff;
+  border: solid 1px #729fcf;
+  padding: 0.5em;
+}
+.variablelist
+{
+  padding: 4px;
+  margin-left: 3em;
+}
+.variablelist td:first-child
+{
+  vertical-align: top;
+}
+
+@media screen {
+  sup a.footnote
+  {
+    position: relative;
+    top: 0em ! important;
+    
+  }
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+  {
+    display: inline-block;
+    position: relative;
+    top:-5em;
+  }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 3.2em;
+    padding-bottom: 20em;
+  }
+  /* style and size the navigation bar */
+  table.navigation#top
+  {
+    position: fixed;
+    /* tango:scarlet red 0/1 */
+    background: #ffe6e6;
+    border: solid 1px #ef2929;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+    z-index: 10;
+  }
+  .navigation a, .navigation a:visited
+  {
+    /* tango:scarlet red 3 */
+    color: #a40000;
+  }
+  .navigation a:hover
+  {
+    /* tango:scarlet red 1 */
+    color: #ef2929;
+  }
+  td.shortcuts
+  {
+    /* tango:scarlet red 1 */
+    color: #ef2929;
+    font-size: 80%;
+    white-space: nowrap;
+  }
+}
+@media print {
+  table.navigation {
+    visibility: collapse;
+    display: none;
+  }
+  div.titlepage table.navigation {
+    visibility: visible;
+    display: table;
+    /* tango:scarlet red 0/1 */
+    background: #ffe6e6;
+    border: solid 1px #ef2929;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+  }
+}
+
+.navigation .title
+{
+  font-size: 200%;
+}
+
+div.gallery-float
+{
+  float: left;
+  padding: 10px;
+}
+div.gallery-float img
+{
+  border-style: none;
+}
+div.gallery-spacer
+{
+  clear: both;
+}
+
+a, a:visited
+{
+  text-decoration: none;
+  /* tango:sky blue 2 */
+  color: #3465a4;
+}
+a:hover
+{
+  text-decoration: underline;
+  /* tango:sky blue 1 */
+  color: #729fcf;
+}
+
+div.table table
+{
+  border-collapse: collapse;
+  border-spacing: 0px;
+  /* tango:aluminium 3 */
+  border: solid 1px #babdb6;
+}
+
+div.table table td, div.table table th
+{
+  /* tango:aluminium 3 */
+  border: solid 1px #babdb6;
+  padding: 3px;
+  vertical-align: top;
+}
+
+div.table table th
+{
+  /* tango:aluminium 2 */
+  background-color: #d3d7cf;
+}
+
+hr
+{
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  background: #babdb6;
+  border: none 0px;
+  height: 1px;
+  clear: both;
+}
+
+.footer
+{
+  padding-top: 3.5em;
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  text-align: center;
+  font-size: 80%;
+}
+
+.warning
+{
+  /* tango:orange 0/1 */
+  background: #ffeed9;
+  border-color: #ffb04f;
+}
+.note
+{
+  /* tango:chameleon 0/0.5 */
+  background: #d8ffb2;
+  border-color: #abf562;
+}
+.note, .warning
+{
+  padding: 0.5em;
+  border-width: 1px;
+  border-style: solid;
+}
+.note h3, .warning h3
+{
+  margin-top: 0.0em
+}
+.note p, .warning p
+{
+  margin-bottom: 0.0em
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+  float: right;
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+.annotation
+{
+  /* tango:aluminium 5 */
+  color: #555753;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+/* code listings */
+
+.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
+.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
+.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
+.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
+.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
+.listing_code .programlisting .normal     { color: #000000; }
+.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
+.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
+.listing_code .programlisting .type       { color: #000000; }
+.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
+.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
+
+.listing_frame {
+  /* tango:sky blue 1 */
+  border: solid 1px #729fcf;
+  padding: 0px;
+}
+
+.listing_lines, .listing_code {
+  margin-top: 0px;
+  margin-bottom: 0px;
+  padding: 0.5em;
+}
+.listing_lines {
+  /* tango:sky blue 0.5 */
+  background: #a6c5e3;
+  /* tango:aluminium 6 */
+  color: #2e3436;
+}
+.listing_code {
+  /* tango:sky blue 0 */
+  background: #e6f3ff;
+}
+.listing_code .programlisting {
+  /* override from previous */
+  border: none 0px;
+  padding: 0px;
+}
+.listing_lines pre, .listing_code pre {
+  margin: 0px;
+}
+
diff --git a/doc/reference/html/up.png b/doc/reference/html/up.png
new file mode 100644 (file)
index 0000000..85b3e2a
Binary files /dev/null and b/doc/reference/html/up.png differ
index f6187bf..f5a0737 100644 (file)
@@ -299,6 +299,9 @@ gnutls
 @GNUTLS_CERT_INSECURE_ALGORITHM: 
 @GNUTLS_CERT_NOT_ACTIVATED: 
 @GNUTLS_CERT_EXPIRED: 
+@GNUTLS_CERT_SIGNATURE_FAILURE: 
+@GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED: 
+@GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE: 
 
 <!-- ##### ENUM gnutls_certificate_request_t ##### -->
 <para>
index 358ee89..a76dcf0 100644 (file)
@@ -270,6 +270,7 @@ pkcs11
 @GNUTLS_PKCS11_OBJ_ATTR_PUBKEY: 
 @GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY: 
 @GNUTLS_PKCS11_OBJ_ATTR_ALL: 
+@GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA: 
 
 <!-- ##### ENUM gnutls_pkcs11_token_info_t ##### -->
 <para>
index 2f00b4f..aaf8256 100644 (file)
@@ -1682,6 +1682,7 @@ x509
 @GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS: 
 @GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT: 
 @GNUTLS_VERIFY_DISABLE_CRL_CHECKS: 
+@GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN: 
 
 <!-- ##### FUNCTION gnutls_x509_crt_check_issuer ##### -->
 <para>
index 1993e31..289171c 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -69,14 +86,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -191,6 +211,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -509,6 +534,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -794,7 +820,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -868,6 +893,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1003,8 +1029,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1023,7 +1049,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1254,6 +1279,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index fdc9ecd..6f38f5e 100755 (executable)
@@ -51,6 +51,12 @@ while ($line = <>) {
     $line = "\@subheading $1\n";
   }
 
+  if ($line =~ /\@cindex\s(.*)/) {
+    if ($line !~ /help/) {
+      next;
+    }
+  }
+
   print $line;
   $i++;
 }
index ac5dea4..953cd57 100755 (executable)
@@ -857,7 +857,7 @@ sub dump_function {
 sub dump_enum {
     my $prototype = shift @_;
 
-    if (($prototype =~ m/^\s*typedef\s+enum\s*[a-zA-Z0-9_~:]*\s*\{([a-zA-Z0-9_~=,:\s]+)\s*\}\s*([a-zA-Z0-9_]+);.*/)) {
+    if (($prototype =~ m/^\s*typedef\s+enum\s*[a-zA-Z0-9_~:]*\s*\{([\-a-zA-Z0-9_~=,:\s\(\)\<]+)\s*\}\s*([a-zA-Z0-9_]+);.*/)) {
 #        || $prototype =~ m/^\s*enum\s+([a-zA-Z0-9_~:]+).*/) {
         $args = $1;
        $name = $2;
index 3839240..9e76805 100755 (executable)
@@ -42,7 +42,7 @@ while ($line=<STDIN>) {
         $func = $1;
     }
     
-    if ($func ne '' && $func =~ m/gnutls_.*/) {
+    if ($func ne '' && ($func =~ m/gnutls_.*/ || $func =~ m/dane_.*/)) {
       print $func . "\n";
     }
   }
index 6047770..d7313ca 100644 (file)
@@ -1,4 +1,4 @@
 @set UPDATED 10 May 2012
 @set UPDATED-MONTH May 2012
-@set EDITION 3.0.21
-@set VERSION 3.0.21
+@set EDITION 3.0.30
+@set VERSION 3.0.30
index 6047770..7347633 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 10 May 2012
-@set UPDATED-MONTH May 2012
-@set EDITION 3.0.21
-@set VERSION 3.0.21
+@set UPDATED 2 September 2012
+@set UPDATED-MONTH September 2012
+@set EDITION 3.0.30
+@set VERSION 3.0.30
index 6047770..d7313ca 100644 (file)
@@ -1,4 +1,4 @@
 @set UPDATED 10 May 2012
 @set UPDATED-MONTH May 2012
-@set EDITION 3.0.21
-@set VERSION 3.0.21
+@set EDITION 3.0.30
+@set VERSION 3.0.30
index 6047770..7347633 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 10 May 2012
-@set UPDATED-MONTH May 2012
-@set EDITION 3.0.21
-@set VERSION 3.0.21
+@set UPDATED 2 September 2012
+@set UPDATED-MONTH September 2012
+@set EDITION 3.0.30
+@set VERSION 3.0.30
index c5dd17d..e9fd852 100644 (file)
@@ -1703,7 +1703,8 @@ and the DNSName/IPAddress subject alternative name PKIX extension.
 @var{issuer}: is the certificate of a possible issuer
 
 This function will check if the given certificate was issued by the
-given issuer.
+given issuer. It checks the DN fields and the authority
+key identifier and subject key identifier fields match.
 
 @strong{Returns:} It will return true (1) if the given certificate is issued
 by the given issuer, and false (0) if not.  A negative error code is
@@ -2615,7 +2616,7 @@ otherwise a negative error code is returned.
 @var{start}: will hold the starting point of the DN
 
 This function will return a pointer to the DER encoded DN structure and
-the length.
+the length. This points to allocated data that must be free'd using @code{gnutls_free()} .
 
 @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
 negative error value. or a negative error code on error.
@@ -2629,7 +2630,7 @@ negative error value. or a negative error code on error.
 @var{start}: will hold the starting point of the DN
 
 This function will return a pointer to the DER encoded DN structure
-and the length.
+and the length. This points to allocated data that must be free'd using @code{gnutls_free()} .
 
 @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
 negative error value.or a negative error code on error.
@@ -2922,7 +2923,7 @@ CERTIFICATE", or "CERTIFICATE".
 
 This function will convert the given PEM encoded certificate list
 to the native gnutls_x509_crt_t format. The output will be stored
-in  @code{certs} which will be initialized.
+in  @code{certs} .  They will be automatically initialized.
 
 If the Certificate is PEM encoded it should have a header of "X509
 CERTIFICATE", or "CERTIFICATE".
@@ -3363,26 +3364,6 @@ uint8_t.
 negative error value.
 @end deftypefun
 
-@subheading gnutls_x509_crt_set_subject_alternative_name
-@anchor{gnutls_x509_crt_set_subject_alternative_name}
-@deftypefun {int} {gnutls_x509_crt_set_subject_alternative_name} (gnutls_x509_crt_t @var{crt}, gnutls_x509_subject_alt_name_t                                               @var{type}, const char * @var{data_string})
-@var{crt}: a certificate of type @code{gnutls_x509_crt_t} 
-
-@var{type}: is one of the gnutls_x509_subject_alt_name_t enumerations
-
-@var{data_string}: The data to be set, a (0) terminated string
-
-This function will set the subject alternative name certificate
-extension. This function assumes that data can be expressed as a null
-terminated string.
-
-The name of the function is unfortunate since it is incosistent with
-@code{gnutls_x509_crt_get_subject_alt_name()} .
-
-@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
-negative error value.
-@end deftypefun
-
 @subheading gnutls_x509_crt_set_subject_alt_name
 @anchor{gnutls_x509_crt_set_subject_alt_name}
 @deftypefun {int} {gnutls_x509_crt_set_subject_alt_name} (gnutls_x509_crt_t @var{crt}, gnutls_x509_subject_alt_name_t @var{type}, const void * @var{data}, unsigned int @var{data_size}, unsigned int @var{flags})
@@ -3405,6 +3386,26 @@ negative error value.
 @strong{Since:} 2.6.0
 @end deftypefun
 
+@subheading gnutls_x509_crt_set_subject_alternative_name
+@anchor{gnutls_x509_crt_set_subject_alternative_name}
+@deftypefun {int} {gnutls_x509_crt_set_subject_alternative_name} (gnutls_x509_crt_t @var{crt}, gnutls_x509_subject_alt_name_t                                               @var{type}, const char * @var{data_string})
+@var{crt}: a certificate of type @code{gnutls_x509_crt_t} 
+
+@var{type}: is one of the gnutls_x509_subject_alt_name_t enumerations
+
+@var{data_string}: The data to be set, a (0) terminated string
+
+This function will set the subject alternative name certificate
+extension. This function assumes that data can be expressed as a null
+terminated string.
+
+The name of the function is unfortunate since it is incosistent with
+@code{gnutls_x509_crt_get_subject_alt_name()} .
+
+@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
+negative error value.
+@end deftypefun
+
 @subheading gnutls_x509_crt_set_subject_key_id
 @anchor{gnutls_x509_crt_set_subject_key_id}
 @deftypefun {int} {gnutls_x509_crt_set_subject_key_id} (gnutls_x509_crt_t @var{cert}, const void * @var{id}, size_t @var{id_size})
@@ -3893,8 +3894,9 @@ This function will convert the given DER or PEM encoded key to the
 native @code{gnutls_x509_privkey_t}  format. The output will be stored in
  @code{key} .
 
-If the key is PEM encoded it should have a header of "RSA PRIVATE
-KEY", or "DSA PRIVATE KEY".
+If the key is PEM encoded it should have a header that contains "PRIVATE
+KEY". Note that this function falls back to PKCS @code{8}  decoding without
+password, if the default format fails to import.
 
 @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise a
 negative error value.
@@ -4210,70 +4212,6 @@ negative error value.
 @strong{Since:} 3.0
 @end deftypefun
 
-@subheading gnutls_x509_trust_list_add_system_trust
-@anchor{gnutls_x509_trust_list_add_system_trust}
-@deftypefun {int} {gnutls_x509_trust_list_add_system_trust} (gnutls_x509_trust_list_t @var{list}, unsigned int @var{tl_flags}, unsigned int @var{tl_vflags})
-@var{list}: The structure of the list
-
-@var{tl_flags}: GNUTLS_TL_*
-
-@var{tl_vflags}: gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL
-
-This function adds the system's default trusted certificate
-authorities to the trusted list.
-
-@strong{Returns:} The number of added elements is returned.
-
-@strong{Since:} 3.1
-@end deftypefun
-
-@subheading gnutls_x509_trust_list_add_trust_file
-@anchor{gnutls_x509_trust_list_add_trust_file}
-@deftypefun {int} {gnutls_x509_trust_list_add_trust_file} (gnutls_x509_trust_list_t @var{list}, const char* @var{ca_file}, const char* @var{crl_file}, gnutls_x509_crt_fmt_t @var{type}, unsigned int @var{tl_flags}, unsigned int @var{tl_vflags})
-@var{list}: The structure of the list
-
-@var{ca_file}: A file containing a list of CAs (optional)
-
-@var{crl_file}: A file containing a list of CRLs (optional)
-
-@var{type}: The format of the certificates
-
-@var{tl_flags}: GNUTLS_TL_*
-
-@var{tl_vflags}: gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL
-
-This function will add the given certificate authorities
-to the trusted list. pkcs11 URLs are also accepted, instead
-of files, by this function.
-
-@strong{Returns:} The number of added elements is returned.
-
-@strong{Since:} 3.1
-@end deftypefun
-
-@subheading gnutls_x509_trust_list_add_trust_mem
-@anchor{gnutls_x509_trust_list_add_trust_mem}
-@deftypefun {int} {gnutls_x509_trust_list_add_trust_mem} (gnutls_x509_trust_list_t @var{list}, const gnutls_datum_t * @var{cas}, const gnutls_datum_t * @var{crls}, gnutls_x509_crt_fmt_t @var{type}, unsigned int @var{tl_flags}, unsigned int @var{tl_vflags})
-@var{list}: The structure of the list
-
-@var{cas}: -- undescribed --
-
-@var{crls}: -- undescribed --
-
-@var{type}: The format of the certificates
-
-@var{tl_flags}: GNUTLS_TL_*
-
-@var{tl_vflags}: gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL
-
-This function will add the given certificate authorities
-to the trusted list. 
-
-@strong{Returns:} The number of added elements is returned.
-
-@strong{Since:} 3.1
-@end deftypefun
-
 @subheading gnutls_x509_trust_list_deinit
 @anchor{gnutls_x509_trust_list_deinit}
 @deftypefun {void} {gnutls_x509_trust_list_deinit} (gnutls_x509_trust_list_t @var{list}, unsigned int @var{all})
index c62817d..260aa42 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -82,14 +99,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -277,6 +297,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DATA = $(defexec_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
@@ -629,6 +654,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -914,7 +940,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -988,6 +1013,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1123,8 +1149,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1143,7 +1169,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1374,6 +1399,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1598,7 +1624,6 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
        @$(NORMAL_INSTALL)
-       test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
        @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
        list2=; for p in $$list; do \
          if test -f $$p; then \
@@ -1606,6 +1631,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
          else :; fi; \
        done; \
        test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
          echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
          $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
        }
@@ -1667,8 +1694,11 @@ clean-libtool:
        -rm -rf .libs _libs
 install-defexecDATA: $(defexec_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(defexecdir)" || $(MKDIR_P) "$(DESTDIR)$(defexecdir)"
        @list='$(defexec_DATA)'; test -n "$(defexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(defexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(defexecdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -1851,13 +1881,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
index 6a878d8..6ec666a 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # 02110-1301, USA.
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,14 +92,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -197,6 +217,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__nobase_include_HEADERS_DIST = gnutls/openssl.h
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -547,6 +572,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -832,7 +858,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -906,6 +931,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1041,8 +1067,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1061,7 +1087,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1292,6 +1317,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1501,15 +1527,18 @@ clean-libtool:
        -rm -rf .libs _libs
 install-nobase_includeHEADERS: $(nobase_include_HEADERS)
        @$(NORMAL_INSTALL)
-       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
        @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for file in $$files; do \
            if test -f "$$file"; then xfiles="$$xfiles $$file"; \
            else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
            echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
            $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
index a492e6a..47c67c8 100644 (file)
@@ -1,6 +1,6 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -21,9 +21,9 @@
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca alphasort argp base64 bind byteswap c-ctype close connect error extensions func gendocs getaddrinfo getpass getsubopt gettext gettime havelib inet_ntop inet_pton lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html progname read-file recv recvfrom scandir select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r timer-time timespec u64 unistd valgrind-tests vasprintf version-etc version-etc-fsf vfprintf-posix vprintf-posix vsnprintf warnings
+# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca alphasort argp base64 bind byteswap c-ctype close connect error extensions func gendocs getaddrinfo getpass getsubopt gettext gettime hash-pjw-bare havelib inet_ntop inet_pton lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html progname read-file recv recvfrom scandir select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r timer-time timespec u64 unistd valgrind-tests vasprintf version-etc version-etc-fsf vfprintf-posix vprintf-posix vsnprintf warnings
 
-AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects
 
 SUBDIRS =
 noinst_HEADERS =
@@ -294,6 +294,15 @@ EXTRA_DIST += dosname.h
 
 ## end   gnulib module dosname
 
+## begin gnulib module dup2
+
+
+EXTRA_DIST += dup2.c
+
+EXTRA_libgnu_la_SOURCES += dup2.c
+
+## end   gnulib module dup2
+
 ## begin gnulib module errno
 
 BUILT_SOURCES += $(ERRNO_H)
@@ -428,9 +437,10 @@ EXTRA_libgnu_la_SOURCES += fseeko.c
 
 ## begin gnulib module fseterr
 
-libgnu_la_SOURCES += fseterr.c
 
-EXTRA_DIST += fseterr.h stdio-impl.h
+EXTRA_DIST += fseterr.c fseterr.h stdio-impl.h
+
+EXTRA_libgnu_la_SOURCES += fseterr.c
 
 ## end   gnulib module fseterr
 
@@ -551,15 +561,16 @@ EXTRA_libgnu_la_SOURCES += getsubopt.c
 
 ## begin gnulib module gettext
 
-# This is for those projects which use "gettextize --intl" to put a source-code
-# copy of libintl into their package. In such projects, every Makefile.am needs
+# If your project uses "gettextize --intl" to put a source-code
+# copy of libintl into the package, every Makefile.am needs
 # -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
-# For the Makefile.ams in other directories it is the maintainer's
-# responsibility; for the one from gnulib we do it here.
-# This option has no effect when the user disables NLS (because then the intl
-# directory contains no libintl.h file) or when the project does not use
-# "gettextize --intl".
-AM_CPPFLAGS += -I$(top_builddir)/intl
+# Here's one way to do this:
+#AM_CPPFLAGS += -I$(top_builddir)/intl
+# This option has no effect when the user disables NLS (because then
+# the intl directory contains no libintl.h file).  This option is not
+# enabled by default because the intl directory might not exist if
+# your project does not use "gettext --intl", and some compilers
+# complain about -I options applied to nonexistent directories.
 
 EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
 
@@ -590,12 +601,18 @@ EXTRA_libgnu_la_SOURCES += gettimeofday.c
 
 distclean-local: clean-GNUmakefile
 clean-GNUmakefile:
-       test x'$(VPATH)' != x && rm -f $(top_builddir)/GNUmakefile || :
+       test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile
 
 EXTRA_DIST += $(top_srcdir)/GNUmakefile
 
 ## end   gnulib module gnumakefile
 
+## begin gnulib module hash-pjw-bare
+
+libgnu_la_SOURCES += hash-pjw-bare.h hash-pjw-bare.c
+
+## end   gnulib module hash-pjw-bare
+
 ## begin gnulib module havelib
 
 
@@ -700,6 +717,7 @@ EXTRA_libgnu_la_SOURCES += malloc.c
 ## begin gnulib module math
 
 BUILT_SOURCES += math.h
+libgnu_la_SOURCES += math.c
 
 # We need the following in order to create <math.h> when the system
 # doesn't have one that works with the given compiler.
@@ -1736,6 +1754,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
              -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
              -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
+             -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
              -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
              -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
              -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
@@ -1764,6 +1783,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
              -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
              -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+             -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
              -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
              -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
              -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
@@ -1777,6 +1797,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
              -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
              -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+             -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
              -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
              -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
              -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
@@ -2047,6 +2068,7 @@ EXTRA_DIST += sys_select.in.h
 ## begin gnulib module sys_socket
 
 BUILT_SOURCES += sys/socket.h
+libgnu_la_SOURCES += sys_socket.c
 
 # We need the following in order to create <sys/socket.h> when the system
 # doesn't have one that works with the given compiler.
@@ -2332,6 +2354,7 @@ EXTRA_libgnu_la_SOURCES += time_r.c
 
 ## begin gnulib module timespec
 
+libgnu_la_SOURCES += timespec.c
 
 EXTRA_DIST += timespec.h
 
@@ -2339,6 +2362,7 @@ EXTRA_DIST += timespec.h
 
 ## begin gnulib module u64
 
+libgnu_la_SOURCES += u64.c
 
 EXTRA_DIST += u64.h
 
@@ -2347,6 +2371,7 @@ EXTRA_DIST += u64.h
 ## begin gnulib module unistd
 
 BUILT_SOURCES += unistd.h
+libgnu_la_SOURCES += unistd.c
 
 # We need the following in order to create an empty placeholder for
 # <unistd.h> when the system doesn't have one.
@@ -2695,7 +2720,7 @@ EXTRA_DIST += wchar.in.h
 
 ## begin gnulib module xsize
 
-libgnu_la_SOURCES += xsize.h
+libgnu_la_SOURCES += xsize.h xsize.c
 
 ## end   gnulib module xsize
 
index 725f2db..4e9a140 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -15,7 +15,7 @@
 
 @SET_MAKE@
 
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca alphasort argp base64 bind byteswap c-ctype close connect error extensions func gendocs getaddrinfo getpass getsubopt gettext gettime havelib inet_ntop inet_pton lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html progname read-file recv recvfrom scandir select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r timer-time timespec u64 unistd valgrind-tests vasprintf version-etc version-etc-fsf vfprintf-posix vprintf-posix vsnprintf warnings
+# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca alphasort argp base64 bind byteswap c-ctype close connect error extensions func gendocs getaddrinfo getpass getsubopt gettext gettime hash-pjw-bare havelib inet_ntop inet_pton lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html progname read-file recv recvfrom scandir select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r timer-time timespec u64 unistd valgrind-tests vasprintf version-etc version-etc-fsf vfprintf-posix vprintf-posix vsnprintf warnings
 
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -78,14 +95,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -200,9 +220,10 @@ am_libgnu_la_OBJECTS = argp-ba.lo argp-eexst.lo argp-fmtstream.lo \
        argp-fs-xinl.lo argp-help.lo argp-parse.lo argp-pin.lo \
        argp-pv.lo argp-pvh.lo argp-xinl.lo base64.lo c-ctype.lo \
        dirname-lgpl.lo basename-lgpl.lo stripslash.lo fd-hook.lo \
-       fseterr.lo gettime.lo printf-frexp.lo printf-frexpl.lo \
-       progname.lo read-file.lo sockets.lo glthread/threadlib.lo \
-       version-etc.lo version-etc-fsf.lo
+       gettime.lo hash-pjw-bare.lo math.lo printf-frexp.lo \
+       printf-frexpl.lo progname.lo read-file.lo sockets.lo \
+       sys_socket.lo glthread/threadlib.lo timespec.lo u64.lo \
+       unistd.lo version-etc.lo version-etc-fsf.lo xsize.lo
 libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -245,6 +266,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
@@ -597,6 +623,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -882,7 +909,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -956,6 +982,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1091,8 +1118,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1111,7 +1138,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1342,6 +1368,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1509,32 +1536,43 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects
 SUBDIRS = tests
 noinst_HEADERS = 
 noinst_LIBRARIES = 
 noinst_LTLIBRARIES = libgnu.la
+
+# If your project uses "gettextize --intl" to put a source-code
+# copy of libintl into the package, every Makefile.am needs
+# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
+# Here's one way to do this:
+#AM_CPPFLAGS += -I$(top_builddir)/intl
+# This option has no effect when the user disables NLS (because then
+# the intl directory contains no libintl.h file).  This option is not
+# enabled by default because the intl directory might not exist if
+# your project does not use "gettext --intl", and some compilers
+# complain about -I options applied to nonexistent directories.
 EXTRA_DIST = m4/gnulib-cache.m4 accept.c w32sock.h alloca.c \
        alloca.in.h alphasort.c arpa_inet.in.h bind.c w32sock.h \
        byteswap.in.h close.c closedir.c dirent-private.h connect.c \
-       w32sock.h dirent.in.h dirname.h dosname.h errno.in.h error.c \
-       error.h fd-hook.h filename.h float.c float.in.h itold.c \
-       fpucw.h frexp.c frexp.c frexpl.c fseek.c fseeko.c stdio-impl.h \
-       fseterr.h stdio-impl.h fstat.c ftell.c ftello.c stdio-impl.h \
-       $(top_srcdir)/build-aux/gendocs.sh gai_strerror.c \
-       getaddrinfo.c getdelim.c getline.c getopt.c getopt.in.h \
-       getopt1.c getopt_int.h getpass.c getpass.h getpeername.c \
-       w32sock.h getsubopt.c $(top_srcdir)/build-aux/config.rpath \
-       gettimeofday.c $(top_srcdir)/GNUmakefile \
-       $(top_srcdir)/build-aux/config.rpath inet_ntop.c inet_pton.c \
-       intprops.h float+.h isnan.c isnand-nolibm.h isnand.c float+.h \
-       isnan.c isnanf-nolibm.h isnanf.c float+.h isnan.c \
-       isnanl-nolibm.h isnanl.c listen.c w32sock.h lseek.c \
-       $(top_srcdir)/maint.mk malloc.c malloc.c math.in.h memchr.c \
-       memchr.valgrind memmem.c str-two-way.h mempcpy.c msvc-inval.c \
-       msvc-inval.h msvc-nothrow.c msvc-nothrow.h netdb.in.h \
-       netinet_in.in.h dirent-private.h opendir.c \
-       $(top_srcdir)/build-aux/pmccabe2html \
+       w32sock.h dirent.in.h dirname.h dosname.h dup2.c errno.in.h \
+       error.c error.h fd-hook.h filename.h float.c float.in.h \
+       itold.c fpucw.h frexp.c frexp.c frexpl.c fseek.c fseeko.c \
+       stdio-impl.h fseterr.c fseterr.h stdio-impl.h fstat.c ftell.c \
+       ftello.c stdio-impl.h $(top_srcdir)/build-aux/gendocs.sh \
+       gai_strerror.c getaddrinfo.c getdelim.c getline.c getopt.c \
+       getopt.in.h getopt1.c getopt_int.h getpass.c getpass.h \
+       getpeername.c w32sock.h getsubopt.c \
+       $(top_srcdir)/build-aux/config.rpath gettimeofday.c \
+       $(top_srcdir)/GNUmakefile $(top_srcdir)/build-aux/config.rpath \
+       inet_ntop.c inet_pton.c intprops.h float+.h isnan.c \
+       isnand-nolibm.h isnand.c float+.h isnan.c isnanf-nolibm.h \
+       isnanf.c float+.h isnan.c isnanl-nolibm.h isnanl.c listen.c \
+       w32sock.h lseek.c $(top_srcdir)/maint.mk malloc.c malloc.c \
+       math.in.h memchr.c memchr.valgrind memmem.c str-two-way.h \
+       mempcpy.c msvc-inval.c msvc-inval.h msvc-nothrow.c \
+       msvc-nothrow.h netdb.in.h netinet_in.in.h dirent-private.h \
+       opendir.c $(top_srcdir)/build-aux/pmccabe2html \
        $(top_srcdir)/build-aux/pmccabe.css printf-frexp.h \
        printf-frexp.c printf-frexpl.h rawmemchr.c rawmemchr.valgrind \
        read-file.h dirent-private.h readdir.c realloc.c recv.c \
@@ -1594,44 +1632,36 @@ MOSTLYCLEANDIRS = arpa netinet sys sys sys sys
 CLEANFILES = 
 DISTCLEANFILES = 
 MAINTAINERCLEANFILES = 
-
-# This is for those projects which use "gettextize --intl" to put a source-code
-# copy of libintl into their package. In such projects, every Makefile.am needs
-# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
-# For the Makefile.ams in other directories it is the maintainer's
-# responsibility; for the one from gnulib we do it here.
-# This option has no effect when the user disables NLS (because then the intl
-# directory contains no libintl.h file) or when the project does not use
-# "gettextize --intl".
-AM_CPPFLAGS = -I$(top_builddir)/intl
+AM_CPPFLAGS = 
 AM_CFLAGS = 
 libgnu_la_SOURCES = argp.h argp-ba.c argp-eexst.c argp-fmtstream.c \
        argp-fmtstream.h argp-fs-xinl.c argp-help.c argp-namefrob.h \
        argp-parse.c argp-pin.c argp-pv.c argp-pvh.c argp-xinl.c \
        base64.h base64.c c-ctype.h c-ctype.c dirname-lgpl.c \
-       basename-lgpl.c stripslash.c fd-hook.c fseterr.c gettext.h \
-       gettime.c minmax.h printf-frexp.c printf-frexpl.c progname.h \
-       progname.c read-file.c size_max.h sockets.h sockets.c \
-       glthread/threadlib.c version-etc.h version-etc.c \
-       version-etc-fsf.c xsize.h
+       basename-lgpl.c stripslash.c fd-hook.c gettext.h gettime.c \
+       hash-pjw-bare.h hash-pjw-bare.c math.c minmax.h printf-frexp.c \
+       printf-frexpl.c progname.h progname.c read-file.c size_max.h \
+       sockets.h sockets.c sys_socket.c glthread/threadlib.c \
+       timespec.c u64.c unistd.c version-etc.h version-etc.c \
+       version-etc-fsf.c xsize.h xsize.c
 libgnu_la_LIBADD = $(gl_LTLIBOBJS) @LTALLOCA@
 libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) @LTALLOCA@
 EXTRA_libgnu_la_SOURCES = accept.c alloca.c alphasort.c bind.c close.c \
-       closedir.c connect.c error.c float.c itold.c frexp.c frexp.c \
-       frexpl.c fseek.c fseeko.c fstat.c ftell.c ftello.c \
-       gai_strerror.c getaddrinfo.c getdelim.c getline.c getopt.c \
-       getopt1.c getpass.c getpeername.c getsubopt.c gettimeofday.c \
-       inet_ntop.c inet_pton.c isnan.c isnand.c isnan.c isnanf.c \
-       isnan.c isnanl.c listen.c lseek.c malloc.c malloc.c memchr.c \
-       memmem.c mempcpy.c msvc-inval.c msvc-nothrow.c opendir.c \
-       printf-frexp.c rawmemchr.c readdir.c realloc.c recv.c \
-       recvfrom.c scandir.c select.c send.c sendto.c setsockopt.c \
-       shutdown.c signbitd.c signbitf.c signbitl.c sleep.c snprintf.c \
-       socket.c strcasecmp.c strncasecmp.c strchrnul.c strdup.c \
-       strerror.c strerror-override.c strndup.c strnlen.c strtok_r.c \
-       strverscmp.c time_r.c asnprintf.c printf-args.c printf-parse.c \
-       vasnprintf.c asprintf.c vasprintf.c vfprintf.c vprintf.c \
-       vsnprintf.c
+       closedir.c connect.c dup2.c error.c float.c itold.c frexp.c \
+       frexp.c frexpl.c fseek.c fseeko.c fseterr.c fstat.c ftell.c \
+       ftello.c gai_strerror.c getaddrinfo.c getdelim.c getline.c \
+       getopt.c getopt1.c getpass.c getpeername.c getsubopt.c \
+       gettimeofday.c inet_ntop.c inet_pton.c isnan.c isnand.c \
+       isnan.c isnanf.c isnan.c isnanl.c listen.c lseek.c malloc.c \
+       malloc.c memchr.c memmem.c mempcpy.c msvc-inval.c \
+       msvc-nothrow.c opendir.c printf-frexp.c rawmemchr.c readdir.c \
+       realloc.c recv.c recvfrom.c scandir.c select.c send.c sendto.c \
+       setsockopt.c shutdown.c signbitd.c signbitf.c signbitl.c \
+       sleep.c snprintf.c socket.c strcasecmp.c strncasecmp.c \
+       strchrnul.c strdup.c strerror.c strerror-override.c strndup.c \
+       strnlen.c strtok_r.c strverscmp.c time_r.c asnprintf.c \
+       printf-args.c printf-parse.c vasnprintf.c asprintf.c \
+       vasprintf.c vfprintf.c vprintf.c vsnprintf.c
 libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(GETADDRINFO_LIB) \
        $(HOSTENT_LIB) $(INET_NTOP_LIB) $(INET_PTON_LIB) $(LIBSOCKET) \
        $(LIB_CLOCK_GETTIME) $(LIB_SELECT) $(LIB_TIMER_TIME) \
@@ -1734,6 +1764,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closedir.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Plo@am__quote@
@@ -1756,6 +1787,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsubopt.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-pjw-bare.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_ntop.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_pton.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isnan.Plo@am__quote@
@@ -1766,6 +1798,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/listen.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lseek.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/math.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memmem.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempcpy.Plo@am__quote@
@@ -1807,7 +1840,11 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtok_r.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strverscmp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sys_socket.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/u64.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasprintf.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc-fsf.Plo@am__quote@
@@ -1815,6 +1852,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vfprintf.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vprintf.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vsnprintf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/threadlib.Plo@am__quote@
 
 .c.o:
@@ -2015,13 +2053,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -2321,7 +2356,7 @@ getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
 
 distclean-local: clean-GNUmakefile
 clean-GNUmakefile:
-       test x'$(VPATH)' != x && rm -f $(top_builddir)/GNUmakefile || :
+       test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile
 
 # We need the following in order to create <math.h> when the system
 # doesn't have one that works with the given compiler.
@@ -2946,6 +2981,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
              -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
              -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
+             -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
              -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
              -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
              -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
@@ -2974,6 +3010,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
              -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
              -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+             -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
              -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
              -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
              -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
@@ -2987,6 +3024,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
              -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
              -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+             -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
              -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
              -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
              -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
index 8775aae..bf27403 100644 (file)
@@ -1,6 +1,6 @@
 /* accept.c --- wrappers for Windows accept function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e94eb68..72d28ee 100644 (file)
@@ -1,6 +1,6 @@
 /* Memory allocation on the stack.
 
-   Copyright (C) 1995, 1999, 2001-2004, 2006-2012 Free Software Foundation,
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2013 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify it
 #  define alloca _alloca
 # elif defined __DECC && defined __VMS
 #  define alloca __ALLOCA
+# elif defined __TANDEM && defined _TNS_E_TARGET
+#  ifdef  __cplusplus
+extern "C"
+#  endif
+void *_alloca (unsigned short);
+#  pragma intrinsic (_alloca)
+#  define alloca _alloca
 # else
 #  include <stddef.h>
 #  ifdef  __cplusplus
index 4dc6790..0cf8d11 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997-1998, 2009-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1997-1998, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software; you can redistribute it and/or modify it
index 0b3d0bd..5abc9d0 100644 (file)
@@ -1,5 +1,5 @@
 /* Default definition for ARGP_PROGRAM_BUG_ADDRESS.
-   Copyright (C) 1996-1997, 1999, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-1997, 1999, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -23,7 +23,7 @@
    ADDR."  */
 const char *argp_program_bug_address
 /* This variable should be zero-initialized.  On most systems, putting it into
-   BSS is sufficient.  Not so on MacOS X 10.3 and 10.4, see
+   BSS is sufficient.  Not so on Mac OS X 10.3 and 10.4, see
    <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html>
    <http://lists.gnu.org/archive/html/bug-gnulib/2009-08/msg00096.html>.  */
 #if defined __ELF__
index dcb10a6..a8bb77f 100644 (file)
@@ -1,5 +1,5 @@
 /* Default definition for ARGP_ERR_EXIT_STATUS
-   Copyright (C) 1997, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
index 70e3eb8..7aa317c 100644 (file)
@@ -1,5 +1,5 @@
 /* Word-wrapping and line-truncating streams
-   Copyright (C) 1997-1999, 2001-2003, 2005, 2009-2012 Free Software
+   Copyright (C) 1997-1999, 2001-2003, 2005, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
index a891c3d..000090e 100644 (file)
@@ -1,5 +1,5 @@
 /* Word-wrapping and line-truncating streams.
-   Copyright (C) 1997, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2006-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -133,7 +133,7 @@ extern ssize_t argp_fmtstream_printf (argp_fmtstream_t __fs,
                                       const char *__fmt, ...)
      _GL_ATTRIBUTE_FORMAT ((printf, 2, 3));
 
-#if _LIBC || !defined __OPTIMIZE__
+#if _LIBC
 extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
 extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
 
@@ -154,7 +154,7 @@ extern size_t argp_fmtstream_write (argp_fmtstream_t __fs,
 #define __argp_fmtstream_rmargin argp_fmtstream_rmargin
 #define __argp_fmtstream_wmargin argp_fmtstream_wmargin
 
-#if _LIBC || !defined __OPTIMIZE__
+#if _LIBC
 /* Set __FS's left margin to LMARGIN and return the old value.  */
 extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs,
                                           size_t __lmargin);
@@ -184,7 +184,7 @@ extern void __argp_fmtstream_update (argp_fmtstream_t __fs);
 extern int _argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
 extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
 \f
-#ifdef __OPTIMIZE__
+#if !_LIBC || defined __OPTIMIZE__
 /* Inline versions of above routines.  */
 
 #if !_LIBC
@@ -197,6 +197,10 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
 #define __argp_fmtstream_point argp_fmtstream_point
 #define __argp_fmtstream_update _argp_fmtstream_update
 #define __argp_fmtstream_ensure _argp_fmtstream_ensure
+_GL_INLINE_HEADER_BEGIN
+#ifndef ARGP_FS_EI
+# define ARGP_FS_EI _GL_INLINE
+#endif
 #endif
 
 #ifndef ARGP_FS_EI
@@ -345,9 +349,10 @@ __argp_fmtstream_point (argp_fmtstream_t __fs)
 #undef __argp_fmtstream_point
 #undef __argp_fmtstream_update
 #undef __argp_fmtstream_ensure
+_GL_INLINE_HEADER_END
 #endif
 
-#endif /* __OPTIMIZE__ */
+#endif /* !_LIBC || __OPTIMIZE__ */
 
 #endif /* ARGP_FMTSTREAM_USE_LINEWRAP */
 
index b030e58..35547d9 100644 (file)
@@ -1,5 +1,5 @@
 /* Real definitions for extern inline functions in argp-fmtstream.h
-   Copyright (C) 1997, 2003-2004, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2003-2004, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
 # include <config.h>
 #endif
 
-#define ARGP_FS_EI
+#ifdef _LIBC
+# define ARGP_FS_EI
+#else
+# define ARGP_FS_EI _GL_EXTERN_INLINE
+#endif
 #undef __OPTIMIZE__
 #define __OPTIMIZE__ 1
 #include "argp-fmtstream.h"
index a126acb..85def44 100644 (file)
@@ -1,5 +1,5 @@
 /* Hierarchical argument parsing help output
-   Copyright (C) 1995-2005, 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1995-2005, 2007, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -29,6 +29,7 @@
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
+#include <strings.h>
 #include <assert.h>
 #include <stdarg.h>
 #include <ctype.h>
@@ -648,7 +649,7 @@ hol_find_entry (struct hol *hol, const char *name)
   return 0;
 }
 \f
-/* If an entry with the long option NAME occurs in HOL, set it's special
+/* If an entry with the long option NAME occurs in HOL, set its special
    sort position to GROUP.  */
 static void
 hol_set_group (struct hol *hol, const char *name, int group)
index a6df978..6333958 100644 (file)
@@ -1,5 +1,5 @@
 /* Name frobnication for compiling argp outside of glibc
-   Copyright (C) 1997, 2003, 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2003, 2007, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
index 3b411d4..489d6de 100644 (file)
@@ -1,5 +1,5 @@
 /* Hierarchical argument parsing, layered over getopt
-   Copyright (C) 1995-2000, 2002-2004, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1995-2000, 2002-2004, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -880,11 +880,11 @@ __argp_parse (const struct argp *argp, int argc, char **argv, unsigned flags,
 #ifndef _LIBC
   if (!(flags & ARGP_PARSE_ARGV0))
     {
-#ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME
+#if HAVE_DECL_PROGRAM_INVOCATION_NAME
       if (!program_invocation_name)
         program_invocation_name = argv[0];
 #endif
-#ifdef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
+#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
       if (!program_invocation_short_name)
         program_invocation_short_name = __argp_base_name (argv[0]);
 #endif
index aab8160..78cbb35 100644 (file)
@@ -1,5 +1,5 @@
 /* Full and short program names for argp module
-   Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1d5a010..c74070d 100644 (file)
@@ -1,5 +1,5 @@
 /* Default definition for ARGP_PROGRAM_VERSION.
-   Copyright (C) 1996-1997, 1999, 2006, 2009-2012 Free Software Foundation,
+   Copyright (C) 1996-1997, 1999, 2006, 2009-2013 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -23,7 +23,7 @@
    ARGP_NO_EXIT flag is used).  Overridden by ARGP_PROGRAM_VERSION_HOOK.  */
 const char *argp_program_version
 /* This variable should be zero-initialized.  On most systems, putting it into
-   BSS is sufficient.  Not so on MacOS X 10.3 and 10.4, see
+   BSS is sufficient.  Not so on Mac OS X 10.3 and 10.4, see
    <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html>
    <http://lists.gnu.org/archive/html/bug-gnulib/2009-08/msg00096.html>.  */
 #if defined __ELF__
index 5c858b3..885ff4b 100644 (file)
@@ -1,5 +1,5 @@
 /* Default definition for ARGP_PROGRAM_VERSION_HOOK.
-   Copyright (C) 1996-1997, 1999, 2004, 2009-2012 Free Software Foundation,
+   Copyright (C) 1996-1997, 1999, 2004, 2009-2013 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
index 7d45fcb..04d8cf7 100644 (file)
@@ -1,5 +1,5 @@
 /* Real definitions for extern inline functions in argp.h
-   Copyright (C) 1997-1998, 2004, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-1998, 2004, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
 #ifndef __USE_EXTERN_INLINES
 # define __USE_EXTERN_INLINES   1
 #endif
-#define ARGP_EI
+#ifdef _LIBC
+# define ARGP_EI
+#else
+# define ARGP_EI _GL_EXTERN_INLINE
+#endif
 #undef __OPTIMIZE__
 #define __OPTIMIZE__ 1
 #include "argp.h"
index c0c68a6..c4094a4 100644 (file)
--- a/gl/argp.h
+++ b/gl/argp.h
@@ -1,5 +1,5 @@
 /* Hierarchical argument parsing, layered over getopt.
-   Copyright (C) 1995-1999, 2003-2012 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2003-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -519,7 +519,7 @@ extern void __argp_state_help (const struct argp_state *__restrict __state,
                                FILE *__restrict __stream,
                                unsigned int __flags);
 
-#if _LIBC || !defined __USE_EXTERN_INLINES
+#if _LIBC
 /* Possibly output the standard usage message for ARGP to stderr and exit.  */
 extern void argp_usage (const struct argp_state *__state);
 extern void __argp_usage (const struct argp_state *__state);
@@ -552,7 +552,7 @@ extern void __argp_failure (const struct argp_state *__restrict __state,
                             const char *__restrict __fmt, ...)
      _GL_ATTRIBUTE_FORMAT ((__printf__, 4, 5));
 
-#if _LIBC || !defined __USE_EXTERN_INLINES
+#if _LIBC
 /* Returns true if the option OPT is a valid short option.  */
 extern int _option_is_short (const struct argp_option *__opt) __THROW;
 extern int __option_is_short (const struct argp_option *__opt) __THROW;
@@ -572,13 +572,17 @@ extern void *__argp_input (const struct argp *__restrict __argp,
                            const struct argp_state *__restrict __state)
      __THROW;
 \f
-#ifdef __USE_EXTERN_INLINES
+#if !_LIBC || defined __USE_EXTERN_INLINES
 
 # if !_LIBC
 #  define __argp_usage argp_usage
 #  define __argp_state_help argp_state_help
 #  define __option_is_short _option_is_short
 #  define __option_is_end _option_is_end
+_GL_INLINE_HEADER_BEGIN
+#  ifndef ARGP_EI
+#   define ARGP_EI _GL_INLINE
+#  endif
 # endif
 
 # ifndef ARGP_EI
@@ -635,6 +639,7 @@ __NTH (__option_is_end (const struct argp_option *__opt))
 #  undef __argp_state_help
 #  undef __option_is_short
 #  undef __option_is_end
+_GL_INLINE_HEADER_END
 # endif
 #endif /* Use extern inlines.  */
 
index 0b8f1f1..ba89e97 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <arpa/inet.h>.
 
-   Copyright (C) 2005-2006, 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f6f70c9..76e228d 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1722436..713dae1 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2012 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify
index 351c5fd..8da969c 100644 (file)
@@ -1,5 +1,5 @@
 /* base64.c -- Encode binary data using printable characters.
-   Copyright (C) 1999-2001, 2004-2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999-2001, 2004-2006, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -53,7 +53,7 @@
 #include <string.h>
 
 /* C89 compliant way to cast 'char' to 'unsigned char'. */
-static inline unsigned char
+static unsigned char
 to_uchar (char ch)
 {
   return ch;
@@ -314,7 +314,7 @@ base64_decode_ctx_init (struct base64_decode_context *ctx)
    and return CTX->buf.  In either case, advance *IN to point to the byte
    after the last one processed, and set *N_NON_NEWLINE to the number of
    verified non-newline bytes accessible through the returned pointer.  */
-static inline char *
+static char *
 get_4 (struct base64_decode_context *ctx,
        char const *restrict *in, char const *restrict in_end,
        size_t *n_non_newline)
@@ -368,7 +368,7 @@ get_4 (struct base64_decode_context *ctx,
    as many bytes as possible are written to *OUT.  On return, advance
    *OUT to point to the byte after the last one written, and decrement
    *OUTLEN to reflect the number of bytes remaining in *OUT.  */
-static inline bool
+static bool
 decode_4 (char const *restrict in, size_t inlen,
           char *restrict *outp, size_t *outleft)
 {
index dc6f2a4..343150c 100644 (file)
@@ -1,5 +1,5 @@
 /* base64.h -- Encode binary data using printable characters.
-   Copyright (C) 2004-2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2004-2006, 2009-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
 /* Get bool. */
 # include <stdbool.h>
 
+# ifdef __cplusplus
+extern "C" {
+# endif
+
 /* This uses that the expression (n+(k-1))/k means the smallest
    integer >= n/k, i.e., the ceiling of n/k.  */
 # define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4)
@@ -57,4 +61,8 @@ extern bool base64_decode_alloc_ctx (struct base64_decode_context *ctx,
 #define base64_decode_alloc(in, inlen, out, outlen) \
         base64_decode_alloc_ctx (NULL, in, inlen, out, outlen)
 
+# ifdef __cplusplus
+}
+# endif
+
 #endif /* BASE64_H */
index 43ef8c2..9307e83 100644 (file)
@@ -1,6 +1,6 @@
 /* basename.c -- return the last element in a file name
 
-   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2012 Free Software
+   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 0045c9d..e6edb85 100644 (file)
--- a/gl/bind.c
+++ b/gl/bind.c
@@ -1,6 +1,6 @@
 /* bind.c --- wrappers for Windows bind function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e356699..a323ca3 100644 (file)
@@ -1,5 +1,5 @@
 /* byteswap.h - Byte swapping
-   Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
    Written by Oskar Liljeblad <oskar@osk.mine.nu>, 2005.
 
    This program is free software: you can redistribute it and/or modify
index 952d7a8..752d2e3 100644 (file)
@@ -1,6 +1,6 @@
 /* Character handling in C locale.
 
-   Copyright 2000-2003, 2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright 2000-2003, 2006, 2009-2013 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
index 0b31309..3a66440 100644 (file)
@@ -5,7 +5,7 @@
    <ctype.h> functions' behaviour depends on the current locale set via
    setlocale.
 
-   Copyright (C) 2000-2003, 2006, 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2006, 2008-2013 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
index 4b7accb..f620e54 100644 (file)
@@ -1,5 +1,5 @@
 /* close replacement.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index df31e86..fa8e210 100644 (file)
@@ -1,5 +1,5 @@
 /* Stop reading the entries of a directory.
-   Copyright (C) 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 939b399..04cd5a2 100644 (file)
@@ -1,6 +1,6 @@
 /* connect.c --- wrappers for Windows connect function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b60203c..441071c 100644 (file)
@@ -1,5 +1,5 @@
 /* Private details of the DIR type.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index cdbc5fd..fad3797 100644 (file)
@@ -1,5 +1,5 @@
 /* A GNU-like <dirent.h>.
-   Copyright (C) 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2895cbc..82f6630 100644 (file)
@@ -1,6 +1,6 @@
 /* dirname.c -- return all but the last element in a file name
 
-   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2012 Free Software
+   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 51a685c..4ad0312 100644 (file)
@@ -1,6 +1,6 @@
 /*  Take file names apart into directory and base names.
 
-    Copyright (C) 1998, 2001, 2003-2006, 2009-2012 Free Software Foundation,
+    Copyright (C) 1998, 2001, 2003-2006, 2009-2013 Free Software Foundation,
     Inc.
 
     This program is free software: you can redistribute it and/or modify
index 0468ce4..ba63ce4 100644 (file)
@@ -1,6 +1,6 @@
 /* File names on MS-DOS/Windows systems.
 
-   Copyright (C) 2000-2001, 2004-2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2000-2001, 2004-2006, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
similarity index 95%
rename from gl/tests/dup2.c
rename to gl/dup2.c
index f6d0f1c..9219eb3 100644 (file)
+++ b/gl/dup2.c
@@ -1,6 +1,6 @@
 /* Duplicate an open file descriptor to a specified file descriptor.
 
-   Copyright (C) 1999, 2004-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2004-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -95,7 +95,10 @@ rpl_dup2 (int fd, int desired_fd)
 # ifdef F_GETFL
   /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF.
      On Cygwin 1.5.x, dup2 (1, 1) returns 0.
+     On Cygwin 1.7.17, dup2 (1, -1) dumps core.
      On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC.  */
+  if (desired_fd < 0)
+    fd = desired_fd;
   if (fd == desired_fd)
     return fcntl (fd, F_GETFL) == -1 ? -1 : fd;
 # endif
index 5e5af92..49b3546 100644 (file)
@@ -1,6 +1,6 @@
 /* A POSIX-like <errno.h>.
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #  define GNULIB_defined_ENOTRECOVERABLE 1
 # endif
 
+# ifndef EILSEQ
+#  define EILSEQ 2015
+#  define GNULIB_defined_EILSEQ 1
+# endif
+
 #endif /* _@GUARD_PREFIX@_ERRNO_H */
 #endif /* _@GUARD_PREFIX@_ERRNO_H */
index dc8c65f..865b293 100644 (file)
@@ -1,5 +1,5 @@
 /* Error handler for noninteractive utilities
-   Copyright (C) 1990-1998, 2000-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1990-1998, 2000-2007, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
@@ -121,7 +121,7 @@ extern char *program_name;
 
 #if !_LIBC
 /* Return non-zero if FD is open.  */
-static inline int
+static int
 is_open (int fd)
 {
 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
@@ -139,7 +139,7 @@ is_open (int fd)
 }
 #endif
 
-static inline void
+static void
 flush_stdout (void)
 {
 #if !_LIBC
index 9c2cb8b..afcb0e1 100644 (file)
@@ -1,5 +1,5 @@
 /* Declaration for error-reporting function
-   Copyright (C) 1995-1997, 2003, 2006, 2008-2012 Free Software Foundation,
+   Copyright (C) 1995-1997, 2003, 2006, 2008-2013 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
 
index 8f4ffe2..e158a52 100644 (file)
@@ -1,5 +1,5 @@
 /* Hook for making making file descriptor functions close(), ioctl() extensible.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 721e9ad..d15b577 100644 (file)
@@ -1,5 +1,5 @@
 /* Hook for making making file descriptor functions close(), ioctl() extensible.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index 7b89d0d..b82a0ac 100644 (file)
@@ -1,5 +1,5 @@
 /* Basic filename support macros.
-   Copyright (C) 2001-2004, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 75e56a1..32fb790 100644 (file)
@@ -1,5 +1,5 @@
 /* Supplemental information about the floating-point formats.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software; you can redistribute it and/or modify
index ea31866..366945f 100644 (file)
@@ -1,5 +1,5 @@
 /* Auxiliary definitions for <float.h>.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
index b420510..84e1950 100644 (file)
@@ -1,6 +1,6 @@
 /* A correct <float.h>.
 
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 23e4c81..0b7f528 100644 (file)
@@ -1,5 +1,5 @@
 /* Manipulating the FPU control word.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
index 4f5d0c0..d847fa3 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a double into fraction and mantissa.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b74ceeb..5ec2780 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a 'long double' into fraction and mantissa.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 20f5e2c..4708287 100644 (file)
@@ -1,5 +1,5 @@
 /* An fseek() function that, together with fflush(), is POSIX compliant.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c372a5c..42cd642 100644 (file)
@@ -1,5 +1,5 @@
 /* An fseeko() function that, together with fflush(), is POSIX compliant.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -51,7 +51,7 @@ fseeko (FILE *fp, off_t offset, int whence)
   if (fp->_IO_read_end == fp->_IO_read_ptr
       && fp->_IO_write_ptr == fp->_IO_write_base
       && fp->_IO_save_base == NULL)
-#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
 # if defined __SL64 && defined __SCLE /* Cygwin */
   if ((fp->_flags & __SL64) == 0)
     {
@@ -109,7 +109,7 @@ fseeko (FILE *fp, off_t offset, int whence)
       off_t pos = lseek (fileno (fp), offset, whence);
       if (pos == -1)
         {
-#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
           fp_->_flags &= ~__SOFF;
 #endif
           return -1;
@@ -118,7 +118,7 @@ fseeko (FILE *fp, off_t offset, int whence)
 #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
       fp->_flags &= ~_IO_EOF_SEEN;
       fp->_offset = pos;
-#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
 # if defined __CYGWIN__
       /* fp_->_offset is typed as an integer.  */
       fp_->_offset = pos;
index 78791af..0fca65f 100644 (file)
@@ -1,5 +1,5 @@
 /* Set the error indicator of a stream.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@ fseterr (FILE *fp)
      fast macros.  */
 #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
   fp->_flags |= _IO_ERR_SEEN;
-#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
   fp_->_flags |= __SERR;
 #elif defined __EMX__               /* emx+gcc */
   fp->_flags |= _IOERR;
index b3930c5..630fa86 100644 (file)
@@ -1,5 +1,5 @@
 /* Set the error indicator of a stream.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #include <stdio.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
 /* Set the error indicator of the stream FP.
    The "error indicator" is set when an I/O operation on the stream fails, and
    is cleared (together with the "end-of-file" indicator) by clearerr (FP).  */
-extern void fseterr (FILE *fp);
 
+#if HAVE___FSETERR /* musl libc */
+
+# include <stdio_ext.h>
+# define fseterr(fp) __fseterr (fp)
 
-#ifdef __cplusplus
+#else
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+extern void fseterr (FILE *fp);
+
+# ifdef __cplusplus
 }
+# endif
+
 #endif
 
 #endif /* _FSETERR_H */
index ac2b1ef..dc802f5 100644 (file)
@@ -1,5 +1,5 @@
 /* fstat() replacement.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include <sys/types.h>
 #include <sys/stat.h>
 #if _GL_WINDOWS_64_BIT_ST_SIZE
+# undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */
 # define stat _stati64
+# undef fstat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */
 # define fstat _fstati64
 #endif
 #undef __need_system_sys_stat_h
 
-static inline int
+static int
 orig_fstat (int fd, struct stat *buf)
 {
   return fstat (fd, buf);
@@ -49,7 +51,7 @@ orig_fstat (int fd, struct stat *buf)
 #endif
 
 #if HAVE_MSVC_INVALID_PARAMETER_HANDLER
-static inline int
+static int
 fstat_nothrow (int fd, struct stat *buf)
 {
   int result;
index 817e9ff..4ad13c9 100644 (file)
@@ -1,5 +1,5 @@
 /* An ftell() function that works around platform bugs.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1f581c5..3a2a0f2 100644 (file)
@@ -1,5 +1,5 @@
 /* An ftello() function that works around platform bugs.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5bb1c04..1e371d2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2001-2002, 2004-2006, 2008-2012 Free Software
+/* Copyright (C) 1997, 2001-2002, 2004-2006, 2008-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Philip Blundell <pjb27@cam.ac.uk>, 1997.
index 069f2a9..58d2811 100644 (file)
@@ -1,5 +1,5 @@
 /* Get address information (partial implementation).
-   Copyright (C) 1997, 2001-2002, 2004-2012 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2001-2002, 2004-2013 Free Software Foundation, Inc.
    Contributed by Simon Josefsson <simon@josefsson.org>.
 
    This program is free software; you can redistribute it and/or modify
    You should have received a copy of the GNU General Public License
    along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#include <config.h>
-
 /* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
    optimizes away the sa == NULL test below.  */
 #define _GL_ARG_NONNULL(params)
 
+#include <config.h>
+
 #include <netdb.h>
 
 #if HAVE_NETINET_IN_H
@@ -109,7 +109,7 @@ use_win32_p (void)
 }
 #endif
 
-static inline bool
+static bool
 validate_family (int family)
 {
   /* FIXME: Support more families. */
index b7af0a2..fdbcde2 100644 (file)
@@ -1,5 +1,5 @@
 /* getdelim.c --- Implementation of replacement getdelim function.
-   Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2012 Free Software
+   Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or
 
 /* Ported from glibc by Simon Josefsson. */
 
-#include <config.h>
-
 /* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
    optimizes away the lineptr == NULL || n == NULL || fp == NULL tests below.  */
 #define _GL_ARG_NONNULL(params)
 
+#include <config.h>
+
 #include <stdio.h>
 
 #include <limits.h>
index f422747..1aa07b9 100644 (file)
@@ -1,5 +1,5 @@
 /* getline.c --- Implementation of replacement getline function.
-   Copyright (C) 2005-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
index 4342a34..ef0f4ce 100644 (file)
@@ -2,7 +2,7 @@
    NOTE: getopt is part of the C library, so if you don't know what
    "Keep this file name-space clean" means, talk to drepper@gnu.org
    before changing it!
-   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2012 Free Software
+   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 06b6dfc..d9c7d81 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2012 Free Software
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -49,7 +49,9 @@
    linkers.  */
 #if defined __GETOPT_PREFIX && !defined __need_getopt
 # if !@HAVE_GETOPT_H@
+#  define __need_system_stdlib_h
 #  include <stdlib.h>
+#  undef __need_system_stdlib_h
 #  include <stdio.h>
 #  include <unistd.h>
 # endif
index fb2a8f5..55a6b4e 100644 (file)
@@ -1,5 +1,5 @@
 /* getopt_long and getopt_long_only entry points for GNU getopt.
-   Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2012 Free Software
+   Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 2da020c..a6e4b9e 100644 (file)
@@ -1,5 +1,5 @@
 /* Internal declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2012 Free Software
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 41f3669..3c9c4d8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
index 4eabf9d..9b59abb 100644 (file)
@@ -1,5 +1,5 @@
 /* getpass.h -- Read a password of arbitrary length from /dev/tty or stdin.
-   Copyright (C) 2004, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2009-2013 Free Software Foundation, Inc.
    Contributed by Simon Josefsson <jas@extundo.com>, 2004.
 
    This program is free software; you can redistribute it and/or modify
@@ -21,7 +21,7 @@
 /* Get getpass declaration, if available.  */
 # include <unistd.h>
 
-# if defined HAVE_DECL_GETPASS && !HAVE_DECL_GETPASS
+# if !HAVE_DECL_GETPASS
 /* Read a password of arbitrary length from /dev/tty or stdin.  */
 char *getpass (const char *prompt);
 
index 01493aa..be4dcfd 100644 (file)
@@ -1,6 +1,6 @@
 /* getpeername.c --- wrappers for Windows getpeername function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 105ceed..539fdd0 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse comma separated list into words.
-   Copyright (C) 1996-1997, 1999, 2004, 2007, 2009-2012 Free Software
+   Copyright (C) 1996-1997, 1999, 2004, 2007, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
index 75875cd..d021571 100644 (file)
@@ -1,5 +1,5 @@
 /* Convenience header for conditional use of GNU <libintl.h>.
-   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2012 Free Software
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -183,9 +183,12 @@ npgettext_aux (const char *domain,
 
 #include <string.h>
 
-#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
-  (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
-   /* || __STDC_VERSION__ >= 199901L */ )
+#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
+     /* || __STDC_VERSION__ >= 199901L */ )
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
+#else
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
+#endif
 
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
 #include <stdlib.h>
index 8075bfa..0a642dd 100644 (file)
@@ -1,6 +1,6 @@
 /* gettime -- get the system clock
 
-   Copyright (C) 2002, 2004-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5d35060..ad65c6d 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide gettimeofday for systems that don't have it or for which it's broken.
 
-   Copyright (C) 2001-2003, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 946268e..b447657 100644 (file)
@@ -1,5 +1,5 @@
 /* Multithreading primitives.
-   Copyright (C) 2005-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/gl/hash-pjw-bare.c b/gl/hash-pjw-bare.c
new file mode 100644 (file)
index 0000000..f26f15c
--- /dev/null
@@ -0,0 +1,42 @@
+/* hash-pjw-bare.c -- compute a hash value from a provided buffer.
+
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+
+   This program 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.
+
+   This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include "hash-pjw-bare.h"
+
+#include <limits.h>
+
+#define SIZE_BITS (sizeof (size_t) * CHAR_BIT)
+
+/* Return a hash of the N bytes of X using the method described by
+   Bruno Haible in http://www.haible.de/bruno/hashfunc.html.
+   Note that while many hash functions reduce their result via modulo
+   to a 0..table_size-1 range, this function does not do that.  */
+
+size_t
+hash_pjw_bare (const void *x, size_t n)
+{
+  const unsigned char *s = x;
+  size_t h = 0;
+  unsigned i;
+
+  for (i = 0; i < n; i++)
+    h = s[i] + ((h << 9) | (h >> (SIZE_BITS - 9)));
+
+  return h;
+}
diff --git a/gl/hash-pjw-bare.h b/gl/hash-pjw-bare.h
new file mode 100644 (file)
index 0000000..c470beb
--- /dev/null
@@ -0,0 +1,24 @@
+/* hash-pjw-bare.h -- declaration for a simple hash function
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+
+   This program 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.
+
+   This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <stddef.h>
+
+/* Compute a hash code for a buffer starting at X and of size N,
+   and return the hash code.  Note that unlike hash_pjw(), it does not
+   return it modulo a table size.
+   The result is platform dependent: it depends on the size of the 'size_t'
+   type and on the signedness of the 'char' type.  */
+extern size_t hash_pjw_bare (const void *x, size_t n) _GL_ATTRIBUTE_PURE;
index b437e97..fdfd21d 100644 (file)
@@ -1,6 +1,6 @@
 /* inet_ntop.c -- convert IPv4 and IPv6 addresses from binary to text form
 
-   Copyright (C) 2005-2006, 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 4096365..78ebf1a 100644 (file)
@@ -1,6 +1,6 @@
 /* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form
 
-   Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2485c78..f57f9b4 100644 (file)
@@ -1,6 +1,6 @@
 /* intprops.h -- properties of integer types
 
-   Copyright (C) 2001-2005, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2005, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -89,7 +89,7 @@
 
 /* Return 1 if the __typeof__ keyword works.  This could be done by
    'configure', but for now it's easier to do it by hand.  */
-#if 2 <= __GNUC__ || 0x5110 <= __SUNPRO_C
+#if 2 <= __GNUC__ || defined __IBM__TYPEOF__ || 0x5110 <= __SUNPRO_C
 # define _GL_HAVE___TYPEOF__ 1
 #else
 # define _GL_HAVE___TYPEOF__ 0
index a5a7d92..d95e4ba 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 56fb270..8a84ff8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ef815f3..cbad17b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9d550e0..dc43863 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 0816704..946cb69 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 58d963d..18eb803 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 597ac2a..9d9d84b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 95ff7e1..9aabc7e 100644 (file)
@@ -1,5 +1,5 @@
 /* Replacement for 'int' to 'long double' conversion routine.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
index a1b2ab7..0ca8346 100644 (file)
@@ -1,6 +1,6 @@
 /* listen.c --- wrappers for Windows listen function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 794c230..fa7440d 100644 (file)
@@ -1,5 +1,5 @@
 /* An lseek() function that detects pipes.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d978cb8..d4ad759 100644 (file)
@@ -1,5 +1,5 @@
 # 00gnulib.m4 serial 2
-dnl Copyright (C) 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 656924b..270abd0 100644 (file)
@@ -1,5 +1,5 @@
 # alloca.m4 serial 14
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 6ca985e..bb5e9d0 100644 (file)
@@ -1,5 +1,5 @@
 # alphasort.m4 serial 2
-dnl Copyright (C) 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 87c7da6..4445d8e 100644 (file)
@@ -1,5 +1,5 @@
-# argp.m4 serial 13
-dnl Copyright (C) 2003-2012 Free Software Foundation, Inc.
+# argp.m4 serial 14
+dnl Copyright (C) 2003-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,18 +10,14 @@ AC_DEFUN([gl_ARGP],
   AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
-  AC_CHECK_DECL([program_invocation_name],
-                [AC_DEFINE([HAVE_DECL_PROGRAM_INVOCATION_NAME], [1],
-                           [Define if program_invocation_name is declared])],
-                [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_NAME], [1],
-                           [Define to 1 to add extern declaration of program_invocation_name to argp.h])],
-                [[#include <errno.h>]])
-  AC_CHECK_DECL([program_invocation_short_name],
-                [AC_DEFINE([HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME], [1],
-                           [Define if program_invocation_short_name is declared])],
-                [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_SHORT_NAME], [1],
-                           [Define to 1 to add extern declaration of program_invocation_short_name to argp.h])],
-                [[#include <errno.h>]])
+  AC_CHECK_DECLS([program_invocation_name], [],
+                 [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_NAME], [1],
+                            [Define to 1 to add extern declaration of program_invocation_name to argp.h])],
+                 [[#include <errno.h>]])
+  AC_CHECK_DECLS([program_invocation_short_name], [],
+                 [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_SHORT_NAME], [1],
+                            [Define to 1 to add extern declaration of program_invocation_short_name to argp.h])],
+                 [[#include <errno.h>]])
 
   # Check if program_invocation_name and program_invocation_short_name
   # are defined elsewhere. It is improbable that only one of them will
index 36915d1..ea69af5 100644 (file)
@@ -1,5 +1,5 @@
 # arpa_inet_h.m4 serial 13
-dnl Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index fa0c192..fc19893 100644 (file)
@@ -1,5 +1,5 @@
-# base64.m4 serial 3
-dnl Copyright (C) 2004, 2006, 2009-2012 Free Software Foundation, Inc.
+# base64.m4 serial 4
+dnl Copyright (C) 2004, 2006, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,6 +11,5 @@ AC_DEFUN([gl_FUNC_BASE64],
 
 # Prerequisites of lib/base64.c.
 AC_DEFUN([gl_PREREQ_BASE64], [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_C_RESTRICT])
 ])
index f3b7ec9..7566903 100644 (file)
@@ -1,5 +1,5 @@
 # byteswap.m4 serial 4
-dnl Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0bec0ef..6597fb6 100644 (file)
@@ -1,5 +1,5 @@
 # clock_time.m4 serial 10
-dnl Copyright (C) 2002-2006, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 379e70d..bccd981 100644 (file)
@@ -1,5 +1,5 @@
 # close.m4 serial 8
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 8a2fba4..bb8708b 100644 (file)
@@ -1,5 +1,5 @@
 # closedir.m4 serial 2
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index f6c0fa7..54c1663 100644 (file)
@@ -1,5 +1,5 @@
 # dirent_h.m4 serial 16
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 65639ec..5897a2a 100644 (file)
@@ -1,5 +1,5 @@
 #serial 10   -*- autoconf -*-
-dnl Copyright (C) 2002-2006, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 1e03751..bd6f867 100644 (file)
@@ -1,5 +1,5 @@
 # double-slash-root.m4 serial 4   -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index fc86e80..269cfdc 100644 (file)
@@ -1,5 +1,5 @@
-#serial 18
-dnl Copyright (C) 2002, 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+#serial 19
+dnl Copyright (C) 2002, 2005, 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -39,6 +39,9 @@ AC_DEFUN([gl_FUNC_DUP2],
             /* Many gnulib modules require POSIX conformance of EBADF.  */
             if (dup2 (2, 1000000) == -1 && errno != EBADF)
               result |= 16;
+            /* Flush out a cygwin core dump.  */
+            if (dup2 (2, -1) != -1 || errno != EBADF)
+              result |= 32;
             return result;
            ])
         ],
index 75f17e2..c640ec1 100644 (file)
@@ -1,5 +1,5 @@
-# eealloc.m4 serial 2
-dnl Copyright (C) 2003, 2009-2012 Free Software Foundation, Inc.
+# eealloc.m4 serial 3
+dnl Copyright (C) 2003, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,7 +8,6 @@ AC_DEFUN([gl_EEALLOC],
 [
   AC_REQUIRE([gl_EEMALLOC])
   AC_REQUIRE([gl_EEREALLOC])
-  AC_REQUIRE([AC_C_INLINE])
 ])
 
 AC_DEFUN([gl_EEMALLOC],
index 8eb57c9..593a33e 100644 (file)
@@ -1,5 +1,5 @@
 # environ.m4 serial 6
-dnl Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 1e76ba2..c813ea5 100644 (file)
@@ -1,5 +1,5 @@
-# errno_h.m4 serial 11
-dnl Copyright (C) 2004, 2006, 2008-2012 Free Software Foundation, Inc.
+# errno_h.m4 serial 12
+dnl Copyright (C) 2004, 2006, 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -58,6 +58,9 @@ booboo
 #if !defined ENOTRECOVERABLE
 booboo
 #endif
+#if !defined EILSEQ
+booboo
+#endif
       ],
       [gl_cv_header_errno_h_complete=no],
       [gl_cv_header_errno_h_complete=yes])
index 5d9c70a..29e6fdc 100644 (file)
@@ -1,6 +1,6 @@
 #serial 14
 
-# Copyright (C) 1996-1998, 2001-2004, 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-1998, 2001-2004, 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -23,6 +23,5 @@ AC_DEFUN([gl_ERROR],
 AC_DEFUN([gl_PREREQ_ERROR],
 [
   AC_REQUIRE([AC_FUNC_STRERROR_R])
-  AC_REQUIRE([AC_C_INLINE])
   :
 ])
index 0ae4ccf..09df468 100644 (file)
@@ -1,5 +1,5 @@
 # exponentd.m4 serial 3
-dnl Copyright (C) 2007-2008, 2010-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2008, 2010-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 94d1167..55a04e6 100644 (file)
@@ -1,5 +1,5 @@
 # exponentf.m4 serial 2
-dnl Copyright (C) 2007-2008, 2010-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2008, 2010-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a7cd13b..f877cf1 100644 (file)
@@ -1,5 +1,5 @@
 # exponentl.m4 serial 3
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0bfaef6..e30f122 100644 (file)
@@ -1,14 +1,14 @@
-# serial 11  -*- Autoconf -*-
+# serial 13  -*- Autoconf -*-
 # Enable extensions on systems that normally disable them.
 
-# Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
+# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git
 # Autoconf.  Perhaps we can remove this once we can assume Autoconf
-# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
+# 2.70 or later everywhere, but since Autoconf mutates rapidly
 # enough in this area it's likely we'll need to redefine
 # AC_USE_SYSTEM_EXTENSIONS for quite some time.
 
@@ -30,6 +30,7 @@
 # ------------------------
 # Enable extensions on systems that normally disable them,
 # typically due to standards-conformance issues.
+#
 # Remember that #undef in AH_VERBATIM gets replaced with #define by
 # AC_DEFINE.  The goal here is to define all known feature-enabling
 # macros, then, if reports of conflicts are made, disable macros that
@@ -38,8 +39,6 @@ AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS],
 [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
 AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
 
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
   AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
   if test "$MINIX" = yes; then
     AC_DEFINE([_POSIX_SOURCE], [1],
@@ -50,24 +49,18 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
        except with this defined.])
     AC_DEFINE([_MINIX], [1],
       [Define to 1 if on MINIX.])
+    AC_DEFINE([_NETBSD_SOURCE], [1],
+      [Define to 1 to make NetBSD features available.  MINIX 3 needs this.])
   fi
 
-  dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500,
-  dnl regardless of whether the flags -Ae or _D_HPUX_SOURCE=1 are already
-  dnl provided.
-  case "$host_os" in
-    hpux*)
-      AC_DEFINE([_XOPEN_SOURCE], [500],
-        [Define to 500 only on HP-UX.])
-      ;;
-  esac
-
-  AH_VERBATIM([__EXTENSIONS__],
+dnl Use a different key than __EXTENSIONS__, as that name broke existing
+dnl configure.ac when using autoheader 2.62.
+  AH_VERBATIM([USE_SYSTEM_EXTENSIONS],
 [/* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
 #endif
-/* Enable general extensions on MacOS X.  */
+/* Enable general extensions on OS X.  */
 #ifndef _DARWIN_C_SOURCE
 # undef _DARWIN_C_SOURCE
 #endif
@@ -83,6 +76,12 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
 #ifndef _TANDEM_SOURCE
 # undef _TANDEM_SOURCE
 #endif
+/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
+   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
+#endif
 /* Enable general extensions on Solaris.  */
 #ifndef __EXTENSIONS__
 # undef __EXTENSIONS__
@@ -103,6 +102,22 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
   AC_DEFINE([_GNU_SOURCE])
   AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
   AC_DEFINE([_TANDEM_SOURCE])
+  AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
+    [ac_cv_should_define__xopen_source],
+    [ac_cv_should_define__xopen_source=no
+     AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([[
+          #include <wchar.h>
+          mbstate_t x;]])],
+       [],
+       [AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM([[
+             #define _XOPEN_SOURCE 500
+             #include <wchar.h>
+             mbstate_t x;]])],
+          [ac_cv_should_define__xopen_source=yes])])])
+  test $ac_cv_should_define__xopen_source = yes &&
+    AC_DEFINE([_XOPEN_SOURCE], [500])
 ])# AC_USE_SYSTEM_EXTENSIONS
 
 # gl_USE_SYSTEM_EXTENSIONS
diff --git a/gl/m4/extern-inline.m4 b/gl/m4/extern-inline.m4
new file mode 100644 (file)
index 0000000..94b46dd
--- /dev/null
@@ -0,0 +1,73 @@
+dnl 'extern inline' a la ISO C99.
+
+dnl Copyright 2012-2013 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_EXTERN_INLINE],
+[
+  AH_VERBATIM([extern_inline],
+[/* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'.
+   _GL_EXTERN_INLINE is a portable alternative to 'extern inline'.
+   _GL_INLINE_HEADER_BEGIN contains useful stuff to put
+     in an include file, before uses of _GL_INLINE.
+     It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic,
+     when FOO is an inline function in the header; see
+     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.
+   _GL_INLINE_HEADER_END contains useful stuff to put
+     in the same include file, after uses of _GL_INLINE.
+
+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
+   <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+   Suppress the use of extern inline on Apple's platforms, as Libc at least
+   through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g.,
+   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+   Perhaps Apple will fix this some day.  */
+#if ((__GNUC__ \
+      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined __APPLE__)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__
+# if __GNUC_GNU_INLINE__
+   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
+#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+#  define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+#else
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
+#endif
+
+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif])
+])
index cac28ae..3cff1fd 100644 (file)
@@ -1,6 +1,6 @@
 # serial 15
 # Configure fcntl.h.
-dnl Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 9ca9d2a..74d1649 100644 (file)
@@ -1,5 +1,5 @@
-# fdopen.m4 serial 2
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+# fdopen.m4 serial 3
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -25,10 +25,8 @@ main (void)
   FILE *fp;
   errno = 0;
   fp = fdopen (-1, "r");
-  if (fp != NULL)
+  if (fp == NULL && errno == 0)
     return 1;
-  if (errno == 0)
-    return 2;
   return 0;
 }]])],
           [gl_cv_func_fdopen_works=yes],
index 51c9c7b..397f2d1 100644 (file)
@@ -1,5 +1,5 @@
 # float_h.m4 serial 9
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 82fd778..97941bb 100644 (file)
@@ -1,5 +1,5 @@
 # fpieee.m4 serial 2
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 4162195..2eb98a1 100644 (file)
@@ -1,5 +1,5 @@
-# frexp.m4 serial 13
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# frexp.m4 serial 15
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -93,7 +93,7 @@ AC_DEFUN([gl_FUNC_FREXP_WORKS],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  AC_CHECK_FUNCS_ONCE([alarm])
+  AC_CHECK_DECLS_ONCE([alarm])
   AC_CACHE_CHECK([whether frexp works], [gl_cv_func_frexp_works],
     [
       AC_RUN_IFELSE(
@@ -101,13 +101,14 @@ AC_DEFUN([gl_FUNC_FREXP_WORKS],
 #include <float.h>
 #include <math.h>
 #include <string.h>
-#if HAVE_ALARM
+#if HAVE_DECL_ALARM
+# include <signal.h>
 # include <unistd.h>
 #endif
 /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
    ICC 10.0 has a bug when optimizing the expression -zero.
    The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
-   to PowerPC on MacOS X 10.5.  */
+   to PowerPC on Mac OS X 10.5.  */
 #if defined __hpux || defined __sgi || defined __ICC
 static double
 compute_minus_zero (void)
@@ -124,9 +125,10 @@ int main()
   int i;
   volatile double x;
   double zero = 0.0;
-#if HAVE_ALARM
+#if HAVE_DECL_ALARM
   /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite
      number.  Let the test fail in this case.  */
+  signal (SIGALRM, SIG_DFL);
   alarm (5);
 #endif
   /* Test on denormalized numbers.  */
index 9df87ab..3b64c52 100644 (file)
@@ -1,5 +1,5 @@
-# frexpl.m4 serial 19
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# frexpl.m4 serial 20
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -13,7 +13,7 @@ AC_DEFUN([gl_FUNC_FREXPL],
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
   dnl Check whether it's declared.
-  dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
+  dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
   AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include <math.h>]])
 
   FREXPL_LIBM=
@@ -73,7 +73,7 @@ AC_DEFUN([gl_FUNC_FREXPL_NO_LIBM],
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
   AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
   dnl Check whether it's declared.
-  dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
+  dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
   AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include <math.h>]])
   if test $HAVE_DECL_FREXPL = 1; then
     gl_CHECK_FREXPL_NO_LIBM
@@ -113,8 +113,8 @@ AC_DEFUN([gl_CHECK_FREXPL_NO_LIBM],
 ])
 
 dnl Test whether frexpl() works on finite numbers (this fails on
-dnl MacOS X 10.4/PowerPC, on AIX 5.1, and on BeOS), on denormalized numbers
-dnl (this fails on MacOS X 10.5/i386), and also on infinite numbers (this
+dnl Mac OS X 10.4/PowerPC, on AIX 5.1, and on BeOS), on denormalized numbers
+dnl (this fails on Mac OS X 10.5/i386), and also on infinite numbers (this
 dnl fails e.g. on IRIX 6.5 and mingw).
 AC_DEFUN([gl_FUNC_FREXPL_WORKS],
 [
@@ -162,7 +162,7 @@ int main()
     if (exp != 5)
       result |= 1;
   }
-  /* Test on finite numbers that fails on MacOS X 10.4, because its frexpl
+  /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl
      function returns an invalid (incorrectly normalized) value: it returns
                y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
      but the correct result is
@@ -201,7 +201,7 @@ int main()
         int exp;
         long double y = frexpl (x, &exp);
         /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
-           exp = -16382, y = 0.5.  On MacOS X 10.5: exp = -16384, y = 0.5.  */
+           exp = -16382, y = 0.5.  On Mac OS X 10.5: exp = -16384, y = 0.5.  */
         if (exp != LDBL_MIN_EXP - 1)
           result |= 8;
       }
index d9cd70a..74f6656 100644 (file)
@@ -1,5 +1,5 @@
 # fseek.m4 serial 4
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 1bb88c7..e0f2dfb 100644 (file)
@@ -1,5 +1,5 @@
 # fseeko.m4 serial 16
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
diff --git a/gl/m4/fseterr.m4 b/gl/m4/fseterr.m4
new file mode 100644 (file)
index 0000000..b8e044b
--- /dev/null
@@ -0,0 +1,10 @@
+# fseterr.m4 serial 1
+dnl Copyright (C) 2012-2013 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FSETERR],
+[
+  AC_CHECK_FUNCS_ONCE([__fseterr])
+])
index 3ab3297..b2cf2ad 100644 (file)
@@ -1,5 +1,5 @@
-# fstat.m4 serial 3
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+# fstat.m4 serial 4
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -33,7 +33,4 @@ AC_DEFUN([gl_FUNC_FSTAT],
 ])
 
 # Prerequisites of lib/fstat.c.
-AC_DEFUN([gl_PREREQ_FSTAT],
-[
-  AC_REQUIRE([AC_C_INLINE])
-])
+AC_DEFUN([gl_PREREQ_FSTAT], [:])
index ed8d014..5acd752 100644 (file)
@@ -1,5 +1,5 @@
 # ftell.m4 serial 3
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index ab7b548..678039e 100644 (file)
@@ -1,5 +1,5 @@
 # ftello.m4 serial 11
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 969eb04..4f2dafb 100644 (file)
@@ -1,8 +1,8 @@
-# serial 19
+# serial 20
 
 # See if we need to emulate a missing ftruncate function using chsize.
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -36,6 +36,5 @@ AC_DEFUN([gl_FUNC_FTRUNCATE],
 # Prerequisites of lib/ftruncate.c.
 AC_DEFUN([gl_PREREQ_FTRUNCATE],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_CHECK_FUNCS([chsize])
 ])
index 13c204d..5548d5e 100644 (file)
@@ -1,5 +1,5 @@
 # func.m4 serial 2
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 9cd3e67..1d631f8 100644 (file)
@@ -1,5 +1,5 @@
-# getaddrinfo.m4 serial 29
-dnl Copyright (C) 2004-2012 Free Software Foundation, Inc.
+# getaddrinfo.m4 serial 30
+dnl Copyright (C) 2004-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -134,7 +134,6 @@ AC_DEFUN([gl_PREREQ_GETADDRINFO], [
   AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([gl_SOCKET_FAMILIES])
   AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
   dnl Including sys/socket.h is wrong for Windows, but Windows does not
index 50b96c6..6f91bd9 100644 (file)
@@ -1,6 +1,6 @@
 # getcwd.m4 - check for working getcwd that is compatible with glibc
 
-# Copyright (C) 2001, 2003-2007, 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -123,7 +123,7 @@ AC_DEFUN([gl_FUNC_GETCWD],
   dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD
   dnl if appropriate.
   case "$gl_cv_func_getcwd_path_max" in
-    "no, it has the AIX bug") ;;
+    "no"|"no, it has the AIX bug") ;;
     *)
       AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1],
         [Define to 1 if getcwd minimally works, that is, its result can be
index a6f4872..36f66a1 100644 (file)
@@ -1,6 +1,6 @@
 # getdelim.m4 serial 10
 
-dnl Copyright (C) 2005-2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gl/m4/getdtablesize.m4 b/gl/m4/getdtablesize.m4
new file mode 100644 (file)
index 0000000..8f04b3b
--- /dev/null
@@ -0,0 +1,17 @@
+# getdtablesize.m4 serial 4
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_GETDTABLESIZE],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_CHECK_FUNCS_ONCE([getdtablesize])
+  if test $ac_cv_func_getdtablesize != yes; then
+    HAVE_GETDTABLESIZE=0
+  fi
+])
+
+# Prerequisites of lib/getdtablesize.c.
+AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:])
index 72fbc9d..342bc99 100644 (file)
@@ -1,6 +1,6 @@
 # getline.m4 serial 26
 
-dnl Copyright (C) 1998-2003, 2005-2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 1998-2003, 2005-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl
 dnl This file is free software; the Free Software Foundation
index 2aea895..50f4509 100644 (file)
@@ -1,5 +1,5 @@
-# getopt.m4 serial 39
-dnl Copyright (C) 2002-2006, 2008-2012 Free Software Foundation, Inc.
+# getopt.m4 serial 44
+dnl Copyright (C) 2002-2006, 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,18 +9,17 @@ AC_DEFUN([gl_FUNC_GETOPT_POSIX],
 [
   m4_divert_text([DEFAULTS], [gl_getopt_required=POSIX])
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
   dnl Other modules can request the gnulib implementation of the getopt
   dnl functions unconditionally, by defining gl_REPLACE_GETOPT_ALWAYS.
   dnl argp.m4 does this.
   m4_ifdef([gl_REPLACE_GETOPT_ALWAYS], [
-    gl_GETOPT_IFELSE([], [])
     REPLACE_GETOPT=1
   ], [
     REPLACE_GETOPT=0
-    gl_GETOPT_IFELSE([
+    if test -n "$gl_replace_getopt"; then
       REPLACE_GETOPT=1
-    ],
-    [])
+    fi
   ])
   if test $REPLACE_GETOPT = 1; then
     dnl Arrange for getopt.h to be created.
@@ -38,13 +37,6 @@ AC_DEFUN([gl_FUNC_GETOPT_GNU],
   AC_REQUIRE([gl_FUNC_GETOPT_POSIX])
 ])
 
-# emacs' configure.in uses this.
-AC_DEFUN([gl_GETOPT_IFELSE],
-[
-  AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
-  AS_IF([test -n "$gl_replace_getopt"], [$1], [$2])
-])
-
 # Determine whether to replace the entire getopt facility.
 AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
 [
@@ -74,11 +66,6 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
     AC_CHECK_FUNCS([getopt_long_only], [], [gl_replace_getopt=yes])
   fi
 
-  dnl mingw's getopt (in libmingwex.a) does weird things when the options
-  dnl strings starts with '+' and it's not the first call.  Some internal state
-  dnl is left over from earlier calls, and neither setting optind = 0 nor
-  dnl setting optreset = 1 get rid of this internal state.
-  dnl POSIX is silent on optind vs. optreset, so we allow either behavior.
   dnl POSIX 2008 does not specify leading '+' behavior, but see
   dnl http://austingroupbugs.net/view.php?id=191 for a recommendation on
   dnl the next version of POSIX.  For now, we only guarantee leading '+'
@@ -87,30 +74,16 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
     AC_CACHE_CHECK([whether getopt is POSIX compatible],
       [gl_cv_func_getopt_posix],
       [
-        dnl BSD getopt_long uses an incompatible method to reset option
-        dnl processing.  Existence of the optreset variable, in and of
-        dnl itself, is not a reason to replace getopt, but knowledge
-        dnl of the variable is needed to determine how to reset and
-        dnl whether a reset reparses the environment.  Solaris
-        dnl supports neither optreset nor optind=0, but keeps no state
-        dnl that needs a reset beyond setting optind=1; detect Solaris
-        dnl by getopt_clip.
-        AC_LINK_IFELSE(
-          [AC_LANG_PROGRAM(
-             [[#include <unistd.h>]],
-             [[int *p = &optreset; return optreset;]])],
-          [gl_optind_min=1],
-          [AC_COMPILE_IFELSE(
-             [AC_LANG_PROGRAM(
-                [[#include <getopt.h>]],
-                [[return !getopt_clip;]])],
-             [gl_optind_min=1],
-             [gl_optind_min=0])])
-
-        dnl This test fails on mingw and succeeds on many other platforms.
-        gl_save_CPPFLAGS=$CPPFLAGS
-        CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
-        AC_RUN_IFELSE([AC_LANG_SOURCE([[
+        dnl Merging these three different test programs into a single one
+        dnl would require a reset mechanism. On BSD systems, it can be done
+        dnl through 'optreset'; on some others (glibc), it can be done by
+        dnl setting 'optind' to 0; on others again (HP-UX, IRIX, OSF/1,
+        dnl Solaris 9, musl libc), there is no such mechanism.
+        if test $cross_compiling = no; then
+          dnl Sanity check. Succeeds everywhere (except on MSVC,
+          dnl which lacks <unistd.h> and getopt() entirely).
+          AC_RUN_IFELSE(
+            [AC_LANG_SOURCE([[
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
@@ -118,89 +91,107 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
 int
 main ()
 {
-  {
-    static char program[] = "program";
-    static char a[] = "-a";
-    static char foo[] = "foo";
-    static char bar[] = "bar";
-    char *argv[] = { program, a, foo, bar, NULL };
-    int c;
+  static char program[] = "program";
+  static char a[] = "-a";
+  static char foo[] = "foo";
+  static char bar[] = "bar";
+  char *argv[] = { program, a, foo, bar, NULL };
+  int c;
 
-    optind = OPTIND_MIN;
-    opterr = 0;
-
-    c = getopt (4, argv, "ab");
-    if (!(c == 'a'))
-      return 1;
-    c = getopt (4, argv, "ab");
-    if (!(c == -1))
-      return 2;
-    if (!(optind == 2))
-      return 3;
-  }
-  /* Some internal state exists at this point.  */
-  {
-    static char program[] = "program";
-    static char donald[] = "donald";
-    static char p[] = "-p";
-    static char billy[] = "billy";
-    static char duck[] = "duck";
-    static char a[] = "-a";
-    static char bar[] = "bar";
-    char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
-    int c;
+  c = getopt (4, argv, "ab");
+  if (!(c == 'a'))
+    return 1;
+  c = getopt (4, argv, "ab");
+  if (!(c == -1))
+    return 2;
+  if (!(optind == 2))
+    return 3;
+  return 0;
+}
+]])],
+            [gl_cv_func_getopt_posix=maybe],
+            [gl_cv_func_getopt_posix=no])
+          if test $gl_cv_func_getopt_posix = maybe; then
+            dnl Sanity check with '+'. Succeeds everywhere (except on MSVC,
+            dnl which lacks <unistd.h> and getopt() entirely).
+            AC_RUN_IFELSE(
+              [AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
 
-    optind = OPTIND_MIN;
-    opterr = 0;
+int
+main ()
+{
+  static char program[] = "program";
+  static char donald[] = "donald";
+  static char p[] = "-p";
+  static char billy[] = "billy";
+  static char duck[] = "duck";
+  static char a[] = "-a";
+  static char bar[] = "bar";
+  char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+  int c;
 
-    c = getopt (7, argv, "+abp:q:");
-    if (!(c == -1))
-      return 4;
-    if (!(strcmp (argv[0], "program") == 0))
-      return 5;
-    if (!(strcmp (argv[1], "donald") == 0))
-      return 6;
-    if (!(strcmp (argv[2], "-p") == 0))
-      return 7;
-    if (!(strcmp (argv[3], "billy") == 0))
-      return 8;
-    if (!(strcmp (argv[4], "duck") == 0))
-      return 9;
-    if (!(strcmp (argv[5], "-a") == 0))
-      return 10;
-    if (!(strcmp (argv[6], "bar") == 0))
-      return 11;
-    if (!(optind == 1))
-      return 12;
-  }
-  /* Detect MacOS 10.5, AIX 7.1 bug.  */
-  {
-    static char program[] = "program";
-    static char ab[] = "-ab";
-    char *argv[3] = { program, ab, NULL };
-    optind = OPTIND_MIN;
-    opterr = 0;
-    if (getopt (2, argv, "ab:") != 'a')
-      return 13;
-    if (getopt (2, argv, "ab:") != '?')
-      return 14;
-    if (optopt != 'b')
-      return 15;
-    if (optind != 2)
-      return 16;
-  }
+  c = getopt (7, argv, "+abp:q:");
+  if (!(c == -1))
+    return 4;
+  if (!(strcmp (argv[0], "program") == 0))
+    return 5;
+  if (!(strcmp (argv[1], "donald") == 0))
+    return 6;
+  if (!(strcmp (argv[2], "-p") == 0))
+    return 7;
+  if (!(strcmp (argv[3], "billy") == 0))
+    return 8;
+  if (!(strcmp (argv[4], "duck") == 0))
+    return 9;
+  if (!(strcmp (argv[5], "-a") == 0))
+    return 10;
+  if (!(strcmp (argv[6], "bar") == 0))
+    return 11;
+  if (!(optind == 1))
+    return 12;
+  return 0;
+}
+]])],
+              [gl_cv_func_getopt_posix=maybe],
+              [gl_cv_func_getopt_posix=no])
+          fi
+          if test $gl_cv_func_getopt_posix = maybe; then
+            dnl Detect Mac OS X 10.5, AIX 7.1, mingw bug.
+            AC_RUN_IFELSE(
+              [AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
 
+int
+main ()
+{
+  static char program[] = "program";
+  static char ab[] = "-ab";
+  char *argv[3] = { program, ab, NULL };
+  if (getopt (2, argv, "ab:") != 'a')
+    return 13;
+  if (getopt (2, argv, "ab:") != '?')
+    return 14;
+  if (optopt != 'b')
+    return 15;
+  if (optind != 2)
+    return 16;
   return 0;
 }
 ]])],
-          [gl_cv_func_getopt_posix=yes], [gl_cv_func_getopt_posix=no],
-          [case "$host_os" in
-             mingw*)         gl_cv_func_getopt_posix="guessing no";;
-             darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
-             *)              gl_cv_func_getopt_posix="guessing yes";;
-           esac
-          ])
-        CPPFLAGS=$gl_save_CPPFLAGS
+              [gl_cv_func_getopt_posix=yes],
+              [gl_cv_func_getopt_posix=no])
+          fi
+        else
+          case "$host_os" in
+            darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";;
+            *)                       gl_cv_func_getopt_posix="guessing yes";;
+          esac
+        fi
       ])
     case "$gl_cv_func_getopt_posix" in
       *no) gl_replace_getopt=yes ;;
@@ -236,7 +227,7 @@ dnl is ambiguous with environment values that contain newlines.
              nocrash_init();
 
              /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw,
-                and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
+                and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
                 OSF/1 5.1, Solaris 10.  */
              {
                static char conftest[] = "conftest";
@@ -247,7 +238,7 @@ dnl is ambiguous with environment values that contain newlines.
                  result |= 1;
              }
              /* This code succeeds on glibc 2.8, mingw,
-                and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+                and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
                 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x.  */
              {
                static char program[] = "program";
@@ -276,7 +267,7 @@ dnl is ambiguous with environment values that contain newlines.
                if (getopt (3, argv, "-p") != 1)
                  result |= 16;
                else if (getopt (3, argv, "-p") != 'p')
-                 result |= 32;
+                 result |= 16;
              }
              /* This code fails on glibc 2.11.  */
              {
@@ -286,9 +277,9 @@ dnl is ambiguous with environment values that contain newlines.
                char *argv[] = { program, b, a, NULL };
                optind = opterr = 0;
                if (getopt (3, argv, "+:a:b") != 'b')
-                 result |= 64;
+                 result |= 32;
                else if (getopt (3, argv, "+:a:b") != ':')
-                 result |= 64;
+                 result |= 32;
              }
              /* This code dumps core on glibc 2.14.  */
              {
@@ -298,18 +289,14 @@ dnl is ambiguous with environment values that contain newlines.
                char *argv[] = { program, w, dummy, NULL };
                optind = opterr = 1;
                if (getopt (3, argv, "W;") != 'W')
-                 result |= 128;
+                 result |= 64;
              }
              return result;
            ]])],
         [gl_cv_func_getopt_gnu=yes],
         [gl_cv_func_getopt_gnu=no],
-        [dnl Cross compiling. Guess based on host and declarations.
-         case $host_os:$ac_cv_have_decl_optreset in
-           *-gnu*:* | mingw*:*) gl_cv_func_getopt_gnu=no;;
-           *:yes)               gl_cv_func_getopt_gnu=no;;
-           *)                   gl_cv_func_getopt_gnu=yes;;
-         esac
+        [dnl Cross compiling. Assume the worst, even on glibc platforms.
+         gl_cv_func_getopt_gnu="guessing no"
         ])
        case $gl_had_POSIXLY_CORRECT in
          exported) ;;
@@ -317,13 +304,54 @@ dnl is ambiguous with environment values that contain newlines.
          *) AS_UNSET([POSIXLY_CORRECT]) ;;
        esac
       ])
-    if test "$gl_cv_func_getopt_gnu" = "no"; then
+    if test "$gl_cv_func_getopt_gnu" != yes; then
       gl_replace_getopt=yes
+    else
+      AC_CACHE_CHECK([for working GNU getopt_long function],
+        [gl_cv_func_getopt_long_gnu],
+        [AC_RUN_IFELSE(
+           [AC_LANG_PROGRAM(
+              [[#include <getopt.h>
+                #include <stddef.h>
+                #include <string.h>
+              ]],
+              [[static const struct option long_options[] =
+                  {
+                    { "xtremely-",no_argument,       NULL, 1003 },
+                    { "xtra",     no_argument,       NULL, 1001 },
+                    { "xtreme",   no_argument,       NULL, 1002 },
+                    { "xtremely", no_argument,       NULL, 1003 },
+                    { NULL,       0,                 NULL, 0 }
+                  };
+                /* This code fails on OpenBSD 5.0.  */
+                {
+                  static char program[] = "program";
+                  static char xtremel[] = "--xtremel";
+                  char *argv[] = { program, xtremel, NULL };
+                  int option_index;
+                  optind = 1; opterr = 0;
+                  if (getopt_long (2, argv, "", long_options, &option_index) != 1003)
+                    return 1;
+                }
+                return 0;
+              ]])],
+           [gl_cv_func_getopt_long_gnu=yes],
+           [gl_cv_func_getopt_long_gnu=no],
+           [dnl Cross compiling. Guess no on OpenBSD, yes otherwise.
+            case "$host_os" in
+              openbsd*) gl_cv_func_getopt_long_gnu="guessing no";;
+              *)        gl_cv_func_getopt_long_gnu="guessing yes";;
+            esac
+           ])
+        ])
+      case "$gl_cv_func_getopt_long_gnu" in
+        *yes) ;;
+        *) gl_replace_getopt=yes ;;
+      esac
     fi
   fi
 ])
 
-# emacs' configure.in uses this.
 AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
 [
   GETOPT_H=getopt.h
@@ -334,7 +362,6 @@ AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
 ])
 
 # Prerequisites of lib/getopt*.
-# emacs' configure.in uses this.
 AC_DEFUN([gl_PREREQ_GETOPT],
 [
   AC_CHECK_DECLS_ONCE([getenv])
index 156133a..06e893d 100644 (file)
@@ -1,5 +1,5 @@
 # getpagesize.m4 serial 9
-dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 2a7e160..e35dea4 100644 (file)
@@ -1,5 +1,5 @@
 # getpass.m4 serial 14
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 5538941..4bcfd7f 100644 (file)
@@ -1,5 +1,5 @@
 # getsubopt.m4 serial 5
-dnl Copyright (C) 2004, 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 7d03d12..dc100de 100644 (file)
@@ -1,5 +1,5 @@
 # gettime.m4 serial 8
-dnl Copyright (C) 2002, 2004-2006, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004-2006, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index eda9702..3c05e59 100644 (file)
@@ -1,6 +1,6 @@
 # serial 20
 
-# Copyright (C) 2001-2003, 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2005, 2007, 2009-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index ee3d1b6..54abb28 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 
 
 # Specification in the form of a command-line invocation:
-#   gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca alphasort argp base64 bind byteswap c-ctype close connect error extensions func gendocs getaddrinfo getpass getsubopt gettext gettime havelib inet_ntop inet_pton lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html progname read-file recv recvfrom scandir select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r timer-time timespec u64 unistd valgrind-tests vasprintf version-etc version-etc-fsf vfprintf-posix vprintf-posix vsnprintf warnings
+#   gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca alphasort argp base64 bind byteswap c-ctype close connect error extensions func gendocs getaddrinfo getpass getsubopt gettext gettime hash-pjw-bare havelib inet_ntop inet_pton lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html progname read-file recv recvfrom scandir select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r timer-time timespec u64 unistd valgrind-tests vasprintf version-etc version-etc-fsf vfprintf-posix vprintf-posix vsnprintf warnings
 
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([gl/override])
@@ -51,6 +51,7 @@ gl_MODULES([
   getsubopt
   gettext
   gettime
+  hash-pjw-bare
   havelib
   inet_ntop
   inet_pton
@@ -112,5 +113,5 @@ gl_MAKEFILE_NAME([])
 gl_LIBTOOL
 gl_MACRO_PREFIX([gl])
 gl_PO_DOMAIN([])
-gl_WITNESS_C_DOMAIN([])
+gl_WITNESS_C_MACRO([])
 gl_VC_FILES([false])
index d62b767..0ae5a9e 100644 (file)
@@ -1,5 +1,5 @@
-# gnulib-common.m4 serial 32
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# gnulib-common.m4 serial 33
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -30,7 +30,7 @@ AC_DEFUN([gl_COMMON_BODY], [
 [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
-   __APPLE__ && __MACH__ test for MacOS X.
+   __APPLE__ && __MACH__ test for Mac OS X.
    __APPLE_CC__ tests for the Apple compiler and its version.
    __STDC_VERSION__ tests for the C99 mode.  */
 #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
@@ -294,6 +294,8 @@ Amsterdam
 # for interoperability with automake-1.9.6 from autoconf-2.62.
 # Remove this macro when we can assume autoconf >= 2.62 or
 # autoconf >= 2.60 && automake >= 1.10.
+# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
+m4_ifndef([AC_AUTOCONF_VERSION],[
 m4_ifdef([AC_PROG_MKDIR_P], [
   dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed.
   m4_define([AC_PROG_MKDIR_P],
@@ -304,13 +306,15 @@ m4_ifdef([AC_PROG_MKDIR_P], [
     [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
      MKDIR_P='$(mkdir_p)'
      AC_SUBST([MKDIR_P])])])
+])
 
 # AC_C_RESTRICT
 # This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
 # so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
 # works.
 # This definition can be removed once autoconf >= 2.62 can be assumed.
-m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.62]),[-1],[
+# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
+m4_ifndef([AC_AUTOCONF_VERSION],[
 AC_DEFUN([AC_C_RESTRICT],
 [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict],
   [ac_cv_c_restrict=no
index 4d13450..f25edc8 100644 (file)
@@ -1,5 +1,5 @@
 # DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -79,6 +79,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module error:
   # Code from module extensions:
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  # Code from module extern-inline:
   # Code from module fcntl-h:
   # Code from module fcntl-h-tests:
   # Code from module fd-hook:
@@ -123,6 +124,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module getcwd-lgpl-tests:
   # Code from module getdelim:
   # Code from module getdelim-tests:
+  # Code from module getdtablesize:
+  # Code from module getdtablesize-tests:
   # Code from module getline:
   # Code from module getline-tests:
   # Code from module getopt-gnu:
@@ -139,6 +142,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module gettimeofday:
   # Code from module gettimeofday-tests:
   # Code from module gnumakefile:
+  # Code from module hash-pjw-bare:
   # Code from module havelib:
   # Code from module hostent:
   # Code from module ignore-value:
@@ -365,480 +369,490 @@ AC_DEFUN([gl_INIT],
   m4_pushdef([gl_LIBSOURCES_DIR], [])
   gl_COMMON
   gl_source_base='gl'
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([accept])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([accept])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([accept])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([accept])
 changequote(,)dnl
 LTALLOCA=`echo "$ALLOCA" | sed -e 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'`
 changequote([, ])dnl
 AC_SUBST([LTALLOCA])
-gl_FUNC_ALLOCA
-gl_FUNC_ALPHASORT
-if test $HAVE_ALPHASORT = 0; then
-  AC_LIBOBJ([alphasort])
-  gl_PREREQ_ALPHASORT
-fi
-gl_DIRENT_MODULE_INDICATOR([alphasort])
-gl_ARGP
-m4_ifdef([AM_XGETTEXT_OPTION],
-  [AM_][XGETTEXT_OPTION([--flag=argp_error:2:c-format])
-   AM_][XGETTEXT_OPTION([--flag=argp_failure:4:c-format])])
-gl_HEADER_ARPA_INET
-AC_PROG_MKDIR_P
-gl_FUNC_BASE64
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([bind])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([bind])
-gl_BYTESWAP
-gl_CLOCK_TIME
-gl_FUNC_CLOSE
-if test $REPLACE_CLOSE = 1; then
-  AC_LIBOBJ([close])
-fi
-gl_UNISTD_MODULE_INDICATOR([close])
-gl_FUNC_CLOSEDIR
-if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
-  AC_LIBOBJ([closedir])
-fi
-gl_DIRENT_MODULE_INDICATOR([closedir])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([connect])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([connect])
-gl_DIRENT_H
-gl_DIRNAME_LGPL
-gl_DOUBLE_SLASH_ROOT
-gl_HEADER_ERRNO_H
-gl_ERROR
-if test $ac_cv_lib_error_at_line = no; then
-  AC_LIBOBJ([error])
-  gl_PREREQ_ERROR
-fi
-m4_ifdef([AM_XGETTEXT_OPTION],
-  [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
-   AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
-gl_FLOAT_H
-if test $REPLACE_FLOAT_LDBL = 1; then
-  AC_LIBOBJ([float])
-fi
-if test $REPLACE_ITOLD = 1; then
-  AC_LIBOBJ([itold])
-fi
-gl_FUNC_FREXP_NO_LIBM
-if test $gl_func_frexp_no_libm != yes; then
-  AC_LIBOBJ([frexp])
-fi
-gl_MATH_MODULE_INDICATOR([frexp])
-gl_FUNC_FREXPL_NO_LIBM
-if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
-  AC_LIBOBJ([frexpl])
-fi
-gl_MATH_MODULE_INDICATOR([frexpl])
-gl_FUNC_FSEEK
-if test $REPLACE_FSEEK = 1; then
-  AC_LIBOBJ([fseek])
-fi
-gl_STDIO_MODULE_INDICATOR([fseek])
-gl_FUNC_FSEEKO
-if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
-  AC_LIBOBJ([fseeko])
-  gl_PREREQ_FSEEKO
-fi
-gl_STDIO_MODULE_INDICATOR([fseeko])
-gl_FUNC_FSTAT
-if test $REPLACE_FSTAT = 1; then
-  AC_LIBOBJ([fstat])
-  gl_PREREQ_FSTAT
-fi
-gl_SYS_STAT_MODULE_INDICATOR([fstat])
-gl_FUNC_FTELL
-if test $REPLACE_FTELL = 1; then
-  AC_LIBOBJ([ftell])
-fi
-gl_STDIO_MODULE_INDICATOR([ftell])
-gl_FUNC_FTELLO
-if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then
-  AC_LIBOBJ([ftello])
-  gl_PREREQ_FTELLO
-fi
-gl_STDIO_MODULE_INDICATOR([ftello])
-gl_FUNC
-gl_GETADDRINFO
-if test $HAVE_GETADDRINFO = 0; then
-  AC_LIBOBJ([getaddrinfo])
-fi
-if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then
-  AC_LIBOBJ([gai_strerror])
-fi
-gl_NETDB_MODULE_INDICATOR([getaddrinfo])
-gl_FUNC_GETDELIM
-if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
-  AC_LIBOBJ([getdelim])
-  gl_PREREQ_GETDELIM
-fi
-gl_STDIO_MODULE_INDICATOR([getdelim])
-gl_FUNC_GETLINE
-if test $REPLACE_GETLINE = 1; then
-  AC_LIBOBJ([getline])
-  gl_PREREQ_GETLINE
-fi
-gl_STDIO_MODULE_INDICATOR([getline])
-gl_FUNC_GETOPT_GNU
-if test $REPLACE_GETOPT = 1; then
-  AC_LIBOBJ([getopt])
-  AC_LIBOBJ([getopt1])
-  gl_PREREQ_GETOPT
-  dnl Arrange for unistd.h to include getopt.h.
-  GNULIB_GL_UNISTD_H_GETOPT=1
-fi
-AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
-gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu])
-gl_FUNC_GETOPT_POSIX
-if test $REPLACE_GETOPT = 1; then
-  AC_LIBOBJ([getopt])
-  AC_LIBOBJ([getopt1])
-  gl_PREREQ_GETOPT
-  dnl Arrange for unistd.h to include getopt.h.
-  GNULIB_GL_UNISTD_H_GETOPT=1
-fi
-AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
-gl_FUNC_GETPASS
-if test $HAVE_GETPASS = 0; then
-  AC_LIBOBJ([getpass])
-  gl_PREREQ_GETPASS
-fi
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([getpeername])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([getpeername])
-gl_FUNC_GETSUBOPT
-if test $HAVE_GETSUBOPT = 0; then
-  AC_LIBOBJ([getsubopt])
-  gl_PREREQ_GETSUBOPT
-fi
-gl_STDLIB_MODULE_INDICATOR([getsubopt])
-dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac.
-AM_GNU_GETTEXT_VERSION([0.18.1])
-AC_SUBST([LIBINTL])
-AC_SUBST([LTLIBINTL])
-gl_GETTIME
-gl_FUNC_GETTIMEOFDAY
-if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
-  AC_LIBOBJ([gettimeofday])
-  gl_PREREQ_GETTIMEOFDAY
-fi
-gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
-# Autoconf 2.61a.99 and earlier don't support linking a file only
-# in VPATH builds.  But since GNUmakefile is for maintainer use
-# only, it does not matter if we skip the link with older autoconf.
-# Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
-# builds, so use a shell variable to bypass this.
-GNUmakefile=GNUmakefile
-m4_if(m4_version_compare([2.61a.100],
-        m4_defn([m4_PACKAGE_VERSION])), [1], [],
-      [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
-        [GNUmakefile=$GNUmakefile])])
-gl_HOSTENT
-gl_FUNC_INET_NTOP
-if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then
-  AC_LIBOBJ([inet_ntop])
-  gl_PREREQ_INET_NTOP
-fi
-gl_ARPA_INET_MODULE_INDICATOR([inet_ntop])
-gl_FUNC_INET_PTON
-if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then
-  AC_LIBOBJ([inet_pton])
-  gl_PREREQ_INET_PTON
-fi
-gl_ARPA_INET_MODULE_INDICATOR([inet_pton])
-gl_FUNC_ISNAND_NO_LIBM
-if test $gl_func_isnand_no_libm != yes; then
-  AC_LIBOBJ([isnand])
-  gl_PREREQ_ISNAND
-fi
-gl_FUNC_ISNANF_NO_LIBM
-if test $gl_func_isnanf_no_libm != yes; then
-  AC_LIBOBJ([isnanf])
-  gl_PREREQ_ISNANF
-fi
-gl_FUNC_ISNANL_NO_LIBM
-if test $gl_func_isnanl_no_libm != yes; then
-  AC_LIBOBJ([isnanl])
-  gl_PREREQ_ISNANL
-fi
-AC_REQUIRE([gl_LARGEFILE])
-gl_LD_OUTPUT_DEF
-gl_LD_VERSION_SCRIPT
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([listen])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([listen])
-gl_FUNC_LSEEK
-if test $REPLACE_LSEEK = 1; then
-  AC_LIBOBJ([lseek])
-fi
-gl_UNISTD_MODULE_INDICATOR([lseek])
-AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER],
-  [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])])
-gl_FUNC_MALLOC_GNU
-if test $REPLACE_MALLOC = 1; then
-  AC_LIBOBJ([malloc])
-fi
-gl_MODULE_INDICATOR([malloc-gnu])
-gl_FUNC_MALLOC_POSIX
-if test $REPLACE_MALLOC = 1; then
-  AC_LIBOBJ([malloc])
-fi
-gl_STDLIB_MODULE_INDICATOR([malloc-posix])
-gl_MATH_H
-gl_FUNC_MEMCHR
-if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
-  AC_LIBOBJ([memchr])
-  gl_PREREQ_MEMCHR
-fi
-gl_STRING_MODULE_INDICATOR([memchr])
-gl_FUNC_MEMMEM_SIMPLE
-if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
-  AC_LIBOBJ([memmem])
-fi
-gl_STRING_MODULE_INDICATOR([memmem])
-gl_FUNC_MEMPCPY
-if test $HAVE_MEMPCPY = 0; then
-  AC_LIBOBJ([mempcpy])
-  gl_PREREQ_MEMPCPY
-fi
-gl_STRING_MODULE_INDICATOR([mempcpy])
-gl_MINMAX
-gl_MSVC_INVAL
-if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-  AC_LIBOBJ([msvc-inval])
-fi
-gl_MSVC_NOTHROW
-if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-  AC_LIBOBJ([msvc-nothrow])
-fi
-gl_MULTIARCH
-gl_HEADER_NETDB
-gl_HEADER_NETINET_IN
-AC_PROG_MKDIR_P
-gl_FUNC_OPENDIR
-if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
-  AC_LIBOBJ([opendir])
-fi
-gl_DIRENT_MODULE_INDICATOR([opendir])
-AC_PATH_PROG([PMCCABE], [pmccabe], [false])
-gl_FUNC_PRINTF_FREXP
-gl_FUNC_PRINTF_FREXPL
-m4_divert_text([INIT_PREPARE], [gl_printf_safe=yes])
-AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>])
-AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>])
-gl_FUNC_RAWMEMCHR
-if test $HAVE_RAWMEMCHR = 0; then
-  AC_LIBOBJ([rawmemchr])
-  gl_PREREQ_RAWMEMCHR
-fi
-gl_STRING_MODULE_INDICATOR([rawmemchr])
-gl_PREREQ_READ_FILE
-gl_FUNC_READDIR
-if test $HAVE_READDIR = 0; then
-  AC_LIBOBJ([readdir])
-fi
-gl_DIRENT_MODULE_INDICATOR([readdir])
-gl_FUNC_REALLOC_POSIX
-if test $REPLACE_REALLOC = 1; then
-  AC_LIBOBJ([realloc])
-fi
-gl_STDLIB_MODULE_INDICATOR([realloc-posix])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([recv])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([recv])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([recvfrom])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([recvfrom])
-gl_FUNC_SCANDIR
-if test $HAVE_SCANDIR = 0; then
-  AC_LIBOBJ([scandir])
-  gl_PREREQ_SCANDIR
-fi
-gl_DIRENT_MODULE_INDICATOR([scandir])
-gl_FUNC_SELECT
-if test $REPLACE_SELECT = 1; then
-  AC_LIBOBJ([select])
-fi
-gl_SYS_SELECT_MODULE_INDICATOR([select])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([send])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([send])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([sendto])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([sendto])
-gl_SERVENT
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([setsockopt])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([setsockopt])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([shutdown])
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([shutdown])
-gl_SIGNAL_H
-gl_SIGNBIT
-if test $REPLACE_SIGNBIT = 1; then
-  AC_LIBOBJ([signbitf])
-  AC_LIBOBJ([signbitd])
-  AC_LIBOBJ([signbitl])
-fi
-gl_MATH_MODULE_INDICATOR([signbit])
-gl_SIZE_MAX
-gl_FUNC_SLEEP
-if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
-  AC_LIBOBJ([sleep])
-fi
-gl_UNISTD_MODULE_INDICATOR([sleep])
-gl_FUNC_SNPRINTF
-gl_STDIO_MODULE_INDICATOR([snprintf])
-gl_MODULE_INDICATOR([snprintf])
-AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  AC_LIBOBJ([socket])
-fi
-# When this module is used, sockets may actually occur as file descriptors,
-# hence it is worth warning if the modules 'close' and 'ioctl' are not used.
-m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])])
-m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])])
-AC_REQUIRE([gl_PREREQ_SYS_H_WINSOCK2])
-if test "$ac_cv_header_winsock2_h" = yes; then
-  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
-  SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
-fi
-gl_SYS_SOCKET_MODULE_INDICATOR([socket])
-gl_SOCKETLIB
-gl_SOCKETS
-gl_TYPE_SOCKLEN_T
-gt_TYPE_SSIZE_T
-gl_STDALIGN_H
-gl_STDARG_H
-AM_STDBOOL_H
-gl_STDDEF_H
-gl_STDINT_H
-gl_STDIO_H
-gl_STDLIB_H
-gl_STRCASE
-if test $HAVE_STRCASECMP = 0; then
-  AC_LIBOBJ([strcasecmp])
-  gl_PREREQ_STRCASECMP
-fi
-if test $HAVE_STRNCASECMP = 0; then
-  AC_LIBOBJ([strncasecmp])
-  gl_PREREQ_STRNCASECMP
-fi
-gl_FUNC_STRCHRNUL
-if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
-  AC_LIBOBJ([strchrnul])
-  gl_PREREQ_STRCHRNUL
-fi
-gl_STRING_MODULE_INDICATOR([strchrnul])
-gl_FUNC_STRDUP_POSIX
-if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
-  AC_LIBOBJ([strdup])
-  gl_PREREQ_STRDUP
-fi
-gl_STRING_MODULE_INDICATOR([strdup])
-gl_FUNC_STRERROR
-if test $REPLACE_STRERROR = 1; then
-  AC_LIBOBJ([strerror])
-fi
-gl_MODULE_INDICATOR([strerror])
-gl_STRING_MODULE_INDICATOR([strerror])
-AC_REQUIRE([gl_HEADER_ERRNO_H])
-AC_REQUIRE([gl_FUNC_STRERROR_0])
-if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
-  AC_LIBOBJ([strerror-override])
-  gl_PREREQ_SYS_H_WINSOCK2
-fi
-gl_HEADER_STRING_H
-gl_HEADER_STRINGS_H
-gl_FUNC_STRNDUP
-if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
-  AC_LIBOBJ([strndup])
-fi
-gl_STRING_MODULE_INDICATOR([strndup])
-gl_FUNC_STRNLEN
-if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
-  AC_LIBOBJ([strnlen])
-  gl_PREREQ_STRNLEN
-fi
-gl_STRING_MODULE_INDICATOR([strnlen])
-gl_FUNC_STRTOK_R
-if test $HAVE_STRTOK_R = 0 || test $REPLACE_STRTOK_R = 1; then
-  AC_LIBOBJ([strtok_r])
-  gl_PREREQ_STRTOK_R
-fi
-gl_STRING_MODULE_INDICATOR([strtok_r])
-gl_FUNC_STRVERSCMP
-if test $HAVE_STRVERSCMP = 0; then
-  AC_LIBOBJ([strverscmp])
-  gl_PREREQ_STRVERSCMP
-fi
-gl_STRING_MODULE_INDICATOR([strverscmp])
-gl_HEADER_SYS_SELECT
-AC_PROG_MKDIR_P
-gl_HEADER_SYS_SOCKET
-AC_PROG_MKDIR_P
-gl_HEADER_SYS_STAT_H
-AC_PROG_MKDIR_P
-gl_HEADER_SYS_TIME_H
-AC_PROG_MKDIR_P
-gl_SYS_TYPES_H
-AC_PROG_MKDIR_P
-gl_HEADER_SYS_UIO
-AC_PROG_MKDIR_P
-gl_SYSEXITS
-gl_THREADLIB
-gl_HEADER_TIME_H
-gl_TIME_R
-if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
-  AC_LIBOBJ([time_r])
-  gl_PREREQ_TIME_R
-fi
-gl_TIME_MODULE_INDICATOR([time_r])
-gl_TIMER_TIME
-gl_TIMESPEC
-AC_REQUIRE([AC_C_INLINE])
-gl_UNISTD_H
-gl_VALGRIND_TESTS
-gl_FUNC_VASNPRINTF
-gl_FUNC_VASPRINTF
-gl_STDIO_MODULE_INDICATOR([vasprintf])
-m4_ifdef([AM_XGETTEXT_OPTION],
-  [AM_][XGETTEXT_OPTION([--flag=asprintf:2:c-format])
-   AM_][XGETTEXT_OPTION([--flag=vasprintf:2:c-format])])
-gl_VERSION_ETC
-gl_FUNC_VFPRINTF_POSIX
-gl_STDIO_MODULE_INDICATOR([vfprintf-posix])
-gl_FUNC_VPRINTF_POSIX
-gl_STDIO_MODULE_INDICATOR([vprintf-posix])
-gl_FUNC_VSNPRINTF
-gl_STDIO_MODULE_INDICATOR([vsnprintf])
-gl_WCHAR_H
-gl_XSIZE
+  gl_FUNC_ALLOCA
+  gl_FUNC_ALPHASORT
+  if test $HAVE_ALPHASORT = 0; then
+    AC_LIBOBJ([alphasort])
+    gl_PREREQ_ALPHASORT
+  fi
+  gl_DIRENT_MODULE_INDICATOR([alphasort])
+  gl_ARGP
+  m4_ifdef([AM_XGETTEXT_OPTION],
+    [AM_][XGETTEXT_OPTION([--flag=argp_error:2:c-format])
+     AM_][XGETTEXT_OPTION([--flag=argp_failure:4:c-format])])
+  gl_HEADER_ARPA_INET
+  AC_PROG_MKDIR_P
+  gl_FUNC_BASE64
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([bind])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([bind])
+  gl_BYTESWAP
+  gl_CLOCK_TIME
+  gl_FUNC_CLOSE
+  if test $REPLACE_CLOSE = 1; then
+    AC_LIBOBJ([close])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([close])
+  gl_FUNC_CLOSEDIR
+  if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+    AC_LIBOBJ([closedir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([closedir])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([connect])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([connect])
+  gl_DIRENT_H
+  gl_DIRNAME_LGPL
+  gl_DOUBLE_SLASH_ROOT
+  gl_FUNC_DUP2
+  if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+    AC_LIBOBJ([dup2])
+    gl_PREREQ_DUP2
+  fi
+  gl_UNISTD_MODULE_INDICATOR([dup2])
+  gl_HEADER_ERRNO_H
+  gl_ERROR
+  if test $ac_cv_lib_error_at_line = no; then
+    AC_LIBOBJ([error])
+    gl_PREREQ_ERROR
+  fi
+  m4_ifdef([AM_XGETTEXT_OPTION],
+    [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
+     AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
+  AC_REQUIRE([gl_EXTERN_INLINE])
+  gl_FLOAT_H
+  if test $REPLACE_FLOAT_LDBL = 1; then
+    AC_LIBOBJ([float])
+  fi
+  if test $REPLACE_ITOLD = 1; then
+    AC_LIBOBJ([itold])
+  fi
+  gl_FUNC_FREXP_NO_LIBM
+  if test $gl_func_frexp_no_libm != yes; then
+    AC_LIBOBJ([frexp])
+  fi
+  gl_MATH_MODULE_INDICATOR([frexp])
+  gl_FUNC_FREXPL_NO_LIBM
+  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
+    AC_LIBOBJ([frexpl])
+  fi
+  gl_MATH_MODULE_INDICATOR([frexpl])
+  gl_FUNC_FSEEK
+  if test $REPLACE_FSEEK = 1; then
+    AC_LIBOBJ([fseek])
+  fi
+  gl_STDIO_MODULE_INDICATOR([fseek])
+  gl_FUNC_FSEEKO
+  if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+    AC_LIBOBJ([fseeko])
+    gl_PREREQ_FSEEKO
+  fi
+  gl_STDIO_MODULE_INDICATOR([fseeko])
+  gl_FUNC_FSETERR
+  if test $ac_cv_func___fseterr = no; then
+    AC_LIBOBJ([fseterr])
+  fi
+  gl_FUNC_FSTAT
+  if test $REPLACE_FSTAT = 1; then
+    AC_LIBOBJ([fstat])
+    gl_PREREQ_FSTAT
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([fstat])
+  gl_FUNC_FTELL
+  if test $REPLACE_FTELL = 1; then
+    AC_LIBOBJ([ftell])
+  fi
+  gl_STDIO_MODULE_INDICATOR([ftell])
+  gl_FUNC_FTELLO
+  if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then
+    AC_LIBOBJ([ftello])
+    gl_PREREQ_FTELLO
+  fi
+  gl_STDIO_MODULE_INDICATOR([ftello])
+  gl_FUNC
+  gl_GETADDRINFO
+  if test $HAVE_GETADDRINFO = 0; then
+    AC_LIBOBJ([getaddrinfo])
+  fi
+  if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then
+    AC_LIBOBJ([gai_strerror])
+  fi
+  gl_NETDB_MODULE_INDICATOR([getaddrinfo])
+  gl_FUNC_GETDELIM
+  if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+    AC_LIBOBJ([getdelim])
+    gl_PREREQ_GETDELIM
+  fi
+  gl_STDIO_MODULE_INDICATOR([getdelim])
+  gl_FUNC_GETLINE
+  if test $REPLACE_GETLINE = 1; then
+    AC_LIBOBJ([getline])
+    gl_PREREQ_GETLINE
+  fi
+  gl_STDIO_MODULE_INDICATOR([getline])
+  gl_FUNC_GETOPT_GNU
+  if test $REPLACE_GETOPT = 1; then
+    AC_LIBOBJ([getopt])
+    AC_LIBOBJ([getopt1])
+    gl_PREREQ_GETOPT
+    dnl Arrange for unistd.h to include getopt.h.
+    GNULIB_GL_UNISTD_H_GETOPT=1
+  fi
+  AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+  gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu])
+  gl_FUNC_GETOPT_POSIX
+  if test $REPLACE_GETOPT = 1; then
+    AC_LIBOBJ([getopt])
+    AC_LIBOBJ([getopt1])
+    gl_PREREQ_GETOPT
+    dnl Arrange for unistd.h to include getopt.h.
+    GNULIB_GL_UNISTD_H_GETOPT=1
+  fi
+  AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+  gl_FUNC_GETPASS
+  if test $HAVE_GETPASS = 0; then
+    AC_LIBOBJ([getpass])
+    gl_PREREQ_GETPASS
+  fi
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([getpeername])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([getpeername])
+  gl_FUNC_GETSUBOPT
+  if test $HAVE_GETSUBOPT = 0; then
+    AC_LIBOBJ([getsubopt])
+    gl_PREREQ_GETSUBOPT
+  fi
+  gl_STDLIB_MODULE_INDICATOR([getsubopt])
+  dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac.
+  AM_GNU_GETTEXT_VERSION([0.18.1])
+  AC_SUBST([LIBINTL])
+  AC_SUBST([LTLIBINTL])
+  gl_GETTIME
+  gl_FUNC_GETTIMEOFDAY
+  if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+    AC_LIBOBJ([gettimeofday])
+    gl_PREREQ_GETTIMEOFDAY
+  fi
+  gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
+  # Autoconf 2.61a.99 and earlier don't support linking a file only
+  # in VPATH builds.  But since GNUmakefile is for maintainer use
+  # only, it does not matter if we skip the link with older autoconf.
+  # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
+  # builds, so use a shell variable to bypass this.
+  GNUmakefile=GNUmakefile
+  m4_if(m4_version_compare([2.61a.100],
+          m4_defn([m4_PACKAGE_VERSION])), [1], [],
+        [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
+          [GNUmakefile=$GNUmakefile])])
+  gl_HOSTENT
+  gl_FUNC_INET_NTOP
+  if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then
+    AC_LIBOBJ([inet_ntop])
+    gl_PREREQ_INET_NTOP
+  fi
+  gl_ARPA_INET_MODULE_INDICATOR([inet_ntop])
+  gl_FUNC_INET_PTON
+  if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then
+    AC_LIBOBJ([inet_pton])
+    gl_PREREQ_INET_PTON
+  fi
+  gl_ARPA_INET_MODULE_INDICATOR([inet_pton])
+  gl_FUNC_ISNAND_NO_LIBM
+  if test $gl_func_isnand_no_libm != yes; then
+    AC_LIBOBJ([isnand])
+    gl_PREREQ_ISNAND
+  fi
+  gl_FUNC_ISNANF_NO_LIBM
+  if test $gl_func_isnanf_no_libm != yes; then
+    AC_LIBOBJ([isnanf])
+    gl_PREREQ_ISNANF
+  fi
+  gl_FUNC_ISNANL_NO_LIBM
+  if test $gl_func_isnanl_no_libm != yes; then
+    AC_LIBOBJ([isnanl])
+    gl_PREREQ_ISNANL
+  fi
+  AC_REQUIRE([gl_LARGEFILE])
+  gl_LD_OUTPUT_DEF
+  gl_LD_VERSION_SCRIPT
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([listen])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([listen])
+  gl_FUNC_LSEEK
+  if test $REPLACE_LSEEK = 1; then
+    AC_LIBOBJ([lseek])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([lseek])
+  AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER],
+    [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])])
+  gl_FUNC_MALLOC_GNU
+  if test $REPLACE_MALLOC = 1; then
+    AC_LIBOBJ([malloc])
+  fi
+  gl_MODULE_INDICATOR([malloc-gnu])
+  gl_FUNC_MALLOC_POSIX
+  if test $REPLACE_MALLOC = 1; then
+    AC_LIBOBJ([malloc])
+  fi
+  gl_STDLIB_MODULE_INDICATOR([malloc-posix])
+  gl_MATH_H
+  gl_FUNC_MEMCHR
+  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+    AC_LIBOBJ([memchr])
+    gl_PREREQ_MEMCHR
+  fi
+  gl_STRING_MODULE_INDICATOR([memchr])
+  gl_FUNC_MEMMEM_SIMPLE
+  if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
+    AC_LIBOBJ([memmem])
+  fi
+  gl_STRING_MODULE_INDICATOR([memmem])
+  gl_FUNC_MEMPCPY
+  if test $HAVE_MEMPCPY = 0; then
+    AC_LIBOBJ([mempcpy])
+    gl_PREREQ_MEMPCPY
+  fi
+  gl_STRING_MODULE_INDICATOR([mempcpy])
+  gl_MINMAX
+  gl_MSVC_INVAL
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    AC_LIBOBJ([msvc-inval])
+  fi
+  gl_MSVC_NOTHROW
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    AC_LIBOBJ([msvc-nothrow])
+  fi
+  gl_MULTIARCH
+  gl_HEADER_NETDB
+  gl_HEADER_NETINET_IN
+  AC_PROG_MKDIR_P
+  gl_FUNC_OPENDIR
+  if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+    AC_LIBOBJ([opendir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([opendir])
+  AC_PATH_PROG([PMCCABE], [pmccabe], [false])
+  gl_FUNC_PRINTF_FREXP
+  gl_FUNC_PRINTF_FREXPL
+  m4_divert_text([INIT_PREPARE], [gl_printf_safe=yes])
+  AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>])
+  AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>])
+  gl_FUNC_RAWMEMCHR
+  if test $HAVE_RAWMEMCHR = 0; then
+    AC_LIBOBJ([rawmemchr])
+    gl_PREREQ_RAWMEMCHR
+  fi
+  gl_STRING_MODULE_INDICATOR([rawmemchr])
+  gl_PREREQ_READ_FILE
+  gl_FUNC_READDIR
+  if test $HAVE_READDIR = 0; then
+    AC_LIBOBJ([readdir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([readdir])
+  gl_FUNC_REALLOC_POSIX
+  if test $REPLACE_REALLOC = 1; then
+    AC_LIBOBJ([realloc])
+  fi
+  gl_STDLIB_MODULE_INDICATOR([realloc-posix])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([recv])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([recv])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([recvfrom])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([recvfrom])
+  gl_FUNC_SCANDIR
+  if test $HAVE_SCANDIR = 0; then
+    AC_LIBOBJ([scandir])
+    gl_PREREQ_SCANDIR
+  fi
+  gl_DIRENT_MODULE_INDICATOR([scandir])
+  gl_FUNC_SELECT
+  if test $REPLACE_SELECT = 1; then
+    AC_LIBOBJ([select])
+  fi
+  gl_SYS_SELECT_MODULE_INDICATOR([select])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([send])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([send])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([sendto])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([sendto])
+  gl_SERVENT
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([setsockopt])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([setsockopt])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([shutdown])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([shutdown])
+  gl_SIGNAL_H
+  gl_SIGNBIT
+  if test $REPLACE_SIGNBIT = 1; then
+    AC_LIBOBJ([signbitf])
+    AC_LIBOBJ([signbitd])
+    AC_LIBOBJ([signbitl])
+  fi
+  gl_MATH_MODULE_INDICATOR([signbit])
+  gl_SIZE_MAX
+  gl_FUNC_SLEEP
+  if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+    AC_LIBOBJ([sleep])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([sleep])
+  gl_FUNC_SNPRINTF
+  gl_STDIO_MODULE_INDICATOR([snprintf])
+  gl_MODULE_INDICATOR([snprintf])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([socket])
+  fi
+  # When this module is used, sockets may actually occur as file descriptors,
+  # hence it is worth warning if the modules 'close' and 'ioctl' are not used.
+  m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])])
+  m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])])
+  AC_REQUIRE([gl_PREREQ_SYS_H_WINSOCK2])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([socket])
+  gl_SOCKETLIB
+  gl_SOCKETS
+  gl_TYPE_SOCKLEN_T
+  gt_TYPE_SSIZE_T
+  gl_STDALIGN_H
+  gl_STDARG_H
+  AM_STDBOOL_H
+  gl_STDDEF_H
+  gl_STDINT_H
+  gl_STDIO_H
+  gl_STDLIB_H
+  gl_STRCASE
+  if test $HAVE_STRCASECMP = 0; then
+    AC_LIBOBJ([strcasecmp])
+    gl_PREREQ_STRCASECMP
+  fi
+  if test $HAVE_STRNCASECMP = 0; then
+    AC_LIBOBJ([strncasecmp])
+    gl_PREREQ_STRNCASECMP
+  fi
+  gl_FUNC_STRCHRNUL
+  if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+    AC_LIBOBJ([strchrnul])
+    gl_PREREQ_STRCHRNUL
+  fi
+  gl_STRING_MODULE_INDICATOR([strchrnul])
+  gl_FUNC_STRDUP_POSIX
+  if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+    AC_LIBOBJ([strdup])
+    gl_PREREQ_STRDUP
+  fi
+  gl_STRING_MODULE_INDICATOR([strdup])
+  gl_FUNC_STRERROR
+  if test $REPLACE_STRERROR = 1; then
+    AC_LIBOBJ([strerror])
+  fi
+  gl_MODULE_INDICATOR([strerror])
+  gl_STRING_MODULE_INDICATOR([strerror])
+  AC_REQUIRE([gl_HEADER_ERRNO_H])
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+    AC_LIBOBJ([strerror-override])
+    gl_PREREQ_SYS_H_WINSOCK2
+  fi
+  gl_HEADER_STRING_H
+  gl_HEADER_STRINGS_H
+  gl_FUNC_STRNDUP
+  if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+    AC_LIBOBJ([strndup])
+  fi
+  gl_STRING_MODULE_INDICATOR([strndup])
+  gl_FUNC_STRNLEN
+  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+    AC_LIBOBJ([strnlen])
+    gl_PREREQ_STRNLEN
+  fi
+  gl_STRING_MODULE_INDICATOR([strnlen])
+  gl_FUNC_STRTOK_R
+  if test $HAVE_STRTOK_R = 0 || test $REPLACE_STRTOK_R = 1; then
+    AC_LIBOBJ([strtok_r])
+    gl_PREREQ_STRTOK_R
+  fi
+  gl_STRING_MODULE_INDICATOR([strtok_r])
+  gl_FUNC_STRVERSCMP
+  if test $HAVE_STRVERSCMP = 0; then
+    AC_LIBOBJ([strverscmp])
+    gl_PREREQ_STRVERSCMP
+  fi
+  gl_STRING_MODULE_INDICATOR([strverscmp])
+  gl_HEADER_SYS_SELECT
+  AC_PROG_MKDIR_P
+  gl_HEADER_SYS_SOCKET
+  AC_PROG_MKDIR_P
+  gl_HEADER_SYS_STAT_H
+  AC_PROG_MKDIR_P
+  gl_HEADER_SYS_TIME_H
+  AC_PROG_MKDIR_P
+  gl_SYS_TYPES_H
+  AC_PROG_MKDIR_P
+  gl_HEADER_SYS_UIO
+  AC_PROG_MKDIR_P
+  gl_SYSEXITS
+  gl_THREADLIB
+  gl_HEADER_TIME_H
+  gl_TIME_R
+  if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+    AC_LIBOBJ([time_r])
+    gl_PREREQ_TIME_R
+  fi
+  gl_TIME_MODULE_INDICATOR([time_r])
+  gl_TIMER_TIME
+  gl_TIMESPEC
+  gl_UNISTD_H
+  gl_VALGRIND_TESTS
+  gl_FUNC_VASNPRINTF
+  gl_FUNC_VASPRINTF
+  gl_STDIO_MODULE_INDICATOR([vasprintf])
+  m4_ifdef([AM_XGETTEXT_OPTION],
+    [AM_][XGETTEXT_OPTION([--flag=asprintf:2:c-format])
+     AM_][XGETTEXT_OPTION([--flag=vasprintf:2:c-format])])
+  gl_VERSION_ETC
+  gl_FUNC_VFPRINTF_POSIX
+  gl_STDIO_MODULE_INDICATOR([vfprintf-posix])
+  gl_FUNC_VPRINTF_POSIX
+  gl_STDIO_MODULE_INDICATOR([vprintf-posix])
+  gl_FUNC_VSNPRINTF
+  gl_STDIO_MODULE_INDICATOR([vsnprintf])
+  gl_WCHAR_H
+  gl_XSIZE
   # End of code from modules
   m4_ifval(gl_LIBSOURCES_LIST, [
     m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ ||
@@ -885,139 +899,139 @@ changequote([, ])dnl
   AC_SUBST([gltests_WITNESS])
   gl_module_indicator_condition=$gltests_WITNESS
   m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition])
-AC_REQUIRE([AC_C_INLINE])
-gl_FUNC_DUP2
-if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
-  AC_LIBOBJ([dup2])
-  gl_PREREQ_DUP2
-fi
-gl_UNISTD_MODULE_INDICATOR([dup2])
-gl_ENVIRON
-gl_UNISTD_MODULE_INDICATOR([environ])
-gl_FCNTL_H
-gl_FUNC_FDOPEN
-if test $REPLACE_FDOPEN = 1; then
-  AC_LIBOBJ([fdopen])
-  gl_PREREQ_FDOPEN
-fi
-gl_STDIO_MODULE_INDICATOR([fdopen])
-gl_FUNC_UNGETC_WORKS
-gl_FUNC_UNGETC_WORKS
-gl_FUNC_UNGETC_WORKS
-gl_FUNC_UNGETC_WORKS
-gl_FUNC_FTRUNCATE
-if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
-  AC_LIBOBJ([ftruncate])
-  gl_PREREQ_FTRUNCATE
-fi
-gl_UNISTD_MODULE_INDICATOR([ftruncate])
-gl_FUNC_GETCWD_LGPL
-if test $REPLACE_GETCWD = 1; then
-  AC_LIBOBJ([getcwd-lgpl])
-fi
-gl_UNISTD_MODULE_INDICATOR([getcwd])
-gl_FUNC_GETPAGESIZE
-if test $REPLACE_GETPAGESIZE = 1; then
-  AC_LIBOBJ([getpagesize])
-fi
-gl_UNISTD_MODULE_INDICATOR([getpagesize])
-AC_REQUIRE([AC_C_INLINE])
-AC_C_BIGENDIAN
-AC_C_BIGENDIAN
-gl_INTTYPES_H
-gl_INTTYPES_INCOMPLETE
-gl_FUNC_IOCTL
-if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
-  AC_LIBOBJ([ioctl])
-fi
-gl_SYS_IOCTL_MODULE_INDICATOR([ioctl])
-gl_DOUBLE_EXPONENT_LOCATION
-gl_FLOAT_EXPONENT_LOCATION
-gl_LONG_DOUBLE_EXPONENT_LOCATION
-AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
-gl_LOCK
-gl_FUNC_LSTAT
-if test $REPLACE_LSTAT = 1; then
-  AC_LIBOBJ([lstat])
-  gl_PREREQ_LSTAT
-fi
-gl_SYS_STAT_MODULE_INDICATOR([lstat])
-gl_MALLOCA
-dnl Check for prerequisites for memory fence checks.
-gl_FUNC_MMAP_ANON
-AC_CHECK_HEADERS_ONCE([sys/mman.h])
-AC_CHECK_FUNCS_ONCE([mprotect])
-gl_FUNC_OPEN
-if test $REPLACE_OPEN = 1; then
-  AC_LIBOBJ([open])
-  gl_PREREQ_OPEN
-fi
-gl_FCNTL_MODULE_INDICATOR([open])
-gl_PATHMAX
-gl_FUNC_PERROR
-if test $REPLACE_PERROR = 1; then
-  AC_LIBOBJ([perror])
-fi
-gl_STRING_MODULE_INDICATOR([perror])
-gl_FUNC_PIPE
-if test $HAVE_PIPE = 0; then
-  AC_LIBOBJ([pipe])
-fi
-gl_UNISTD_MODULE_INDICATOR([pipe])
-gl_FUNC_PUTENV
-if test $REPLACE_PUTENV = 1; then
-  AC_LIBOBJ([putenv])
-fi
-gl_STDLIB_MODULE_INDICATOR([putenv])
-dnl Check for prerequisites for memory fence checks.
-gl_FUNC_MMAP_ANON
-AC_CHECK_HEADERS_ONCE([sys/mman.h])
-AC_CHECK_FUNCS_ONCE([mprotect])
-AC_CHECK_HEADERS_ONCE([sys/wait.h])
-gl_FUNC_SETENV
-if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
-  AC_LIBOBJ([setenv])
-fi
-gl_STDLIB_MODULE_INDICATOR([setenv])
-AC_REQUIRE([gl_FLOAT_EXPONENT_LOCATION])
-AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
-AC_REQUIRE([gl_LONG_DOUBLE_EXPONENT_LOCATION])
-AC_CHECK_DECLS_ONCE([alarm])
-gl_FUNC_STAT
-if test $REPLACE_STAT = 1; then
-  AC_LIBOBJ([stat])
-  gl_PREREQ_STAT
-fi
-gl_SYS_STAT_MODULE_INDICATOR([stat])
-gt_TYPE_WCHAR_T
-gt_TYPE_WINT_T
-gl_FUNC_STRERROR_R
-if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
-  AC_LIBOBJ([strerror_r])
-  gl_PREREQ_STRERROR_R
-fi
-gl_STRING_MODULE_INDICATOR([strerror_r])
-dnl Check for prerequisites for memory fence checks.
-gl_FUNC_MMAP_ANON
-AC_CHECK_HEADERS_ONCE([sys/mman.h])
-AC_CHECK_FUNCS_ONCE([mprotect])
-gl_FUNC_SYMLINK
-if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
-  AC_LIBOBJ([symlink])
-fi
-gl_UNISTD_MODULE_INDICATOR([symlink])
-gl_SYS_IOCTL_H
-AC_PROG_MKDIR_P
-AC_CHECK_FUNCS_ONCE([shutdown])
-gl_FUNC_UNSETENV
-if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
-  AC_LIBOBJ([unsetenv])
-  gl_PREREQ_UNSETENV
-fi
-gl_STDLIB_MODULE_INDICATOR([unsetenv])
-gl_VALGRIND_TESTS
-abs_aux_dir=`cd "$ac_aux_dir"; pwd`
-AC_SUBST([abs_aux_dir])
+  gl_ENVIRON
+  gl_UNISTD_MODULE_INDICATOR([environ])
+  gl_FCNTL_H
+  gl_FUNC_FDOPEN
+  if test $REPLACE_FDOPEN = 1; then
+    AC_LIBOBJ([fdopen])
+    gl_PREREQ_FDOPEN
+  fi
+  gl_STDIO_MODULE_INDICATOR([fdopen])
+  gl_FUNC_UNGETC_WORKS
+  gl_FUNC_UNGETC_WORKS
+  gl_FUNC_UNGETC_WORKS
+  gl_FUNC_UNGETC_WORKS
+  gl_FUNC_FTRUNCATE
+  if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
+    AC_LIBOBJ([ftruncate])
+    gl_PREREQ_FTRUNCATE
+  fi
+  gl_UNISTD_MODULE_INDICATOR([ftruncate])
+  gl_FUNC_GETCWD_LGPL
+  if test $REPLACE_GETCWD = 1; then
+    AC_LIBOBJ([getcwd-lgpl])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([getcwd])
+  gl_FUNC_GETDTABLESIZE
+  if test $HAVE_GETDTABLESIZE = 0; then
+    AC_LIBOBJ([getdtablesize])
+    gl_PREREQ_GETDTABLESIZE
+  fi
+  gl_UNISTD_MODULE_INDICATOR([getdtablesize])
+  gl_FUNC_GETPAGESIZE
+  if test $REPLACE_GETPAGESIZE = 1; then
+    AC_LIBOBJ([getpagesize])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([getpagesize])
+  AC_C_BIGENDIAN
+  AC_C_BIGENDIAN
+  gl_INTTYPES_H
+  gl_INTTYPES_INCOMPLETE
+  gl_FUNC_IOCTL
+  if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
+    AC_LIBOBJ([ioctl])
+  fi
+  gl_SYS_IOCTL_MODULE_INDICATOR([ioctl])
+  gl_DOUBLE_EXPONENT_LOCATION
+  gl_FLOAT_EXPONENT_LOCATION
+  gl_LONG_DOUBLE_EXPONENT_LOCATION
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+  gl_LOCK
+  gl_MODULE_INDICATOR([lock])
+  gl_FUNC_LSTAT
+  if test $REPLACE_LSTAT = 1; then
+    AC_LIBOBJ([lstat])
+    gl_PREREQ_LSTAT
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([lstat])
+  gl_MALLOCA
+  dnl Check for prerequisites for memory fence checks.
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  gl_FUNC_OPEN
+  if test $REPLACE_OPEN = 1; then
+    AC_LIBOBJ([open])
+    gl_PREREQ_OPEN
+  fi
+  gl_FCNTL_MODULE_INDICATOR([open])
+  gl_PATHMAX
+  gl_FUNC_PERROR
+  if test $REPLACE_PERROR = 1; then
+    AC_LIBOBJ([perror])
+  fi
+  gl_STRING_MODULE_INDICATOR([perror])
+  gl_FUNC_PIPE
+  if test $HAVE_PIPE = 0; then
+    AC_LIBOBJ([pipe])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([pipe])
+  gl_FUNC_PUTENV
+  if test $REPLACE_PUTENV = 1; then
+    AC_LIBOBJ([putenv])
+    gl_PREREQ_PUTENV
+  fi
+  gl_STDLIB_MODULE_INDICATOR([putenv])
+  dnl Check for prerequisites for memory fence checks.
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  AC_CHECK_HEADERS_ONCE([sys/wait.h])
+  gl_FUNC_SETENV
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+    AC_LIBOBJ([setenv])
+  fi
+  gl_STDLIB_MODULE_INDICATOR([setenv])
+  AC_REQUIRE([gl_FLOAT_EXPONENT_LOCATION])
+  AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
+  AC_REQUIRE([gl_LONG_DOUBLE_EXPONENT_LOCATION])
+  AC_CHECK_DECLS_ONCE([alarm])
+  gl_FUNC_STAT
+  if test $REPLACE_STAT = 1; then
+    AC_LIBOBJ([stat])
+    gl_PREREQ_STAT
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([stat])
+  AC_REQUIRE([gt_TYPE_WCHAR_T])
+  AC_REQUIRE([gt_TYPE_WINT_T])
+  gl_FUNC_STRERROR_R
+  if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+    AC_LIBOBJ([strerror_r])
+    gl_PREREQ_STRERROR_R
+  fi
+  gl_STRING_MODULE_INDICATOR([strerror_r])
+  dnl Check for prerequisites for memory fence checks.
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  gl_FUNC_SYMLINK
+  if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+    AC_LIBOBJ([symlink])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([symlink])
+  gl_SYS_IOCTL_H
+  AC_PROG_MKDIR_P
+  AC_CHECK_FUNCS_ONCE([shutdown])
+  gl_FUNC_UNSETENV
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+    AC_LIBOBJ([unsetenv])
+    gl_PREREQ_UNSETENV
+  fi
+  gl_STDLIB_MODULE_INDICATOR([unsetenv])
+  gl_VALGRIND_TESTS
+  abs_aux_dir=`cd "$ac_aux_dir"; pwd`
+  AC_SUBST([abs_aux_dir])
   m4_popdef([gl_MODULE_INDICATOR_CONDITION])
   m4_ifval(gltests_LIBSOURCES_LIST, [
     m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ ||
@@ -1156,6 +1170,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/dirname-lgpl.c
   lib/dirname.h
   lib/dosname.h
+  lib/dup2.c
   lib/errno.in.h
   lib/error.c
   lib/error.h
@@ -1191,6 +1206,8 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/gettime.c
   lib/gettimeofday.c
   lib/glthread/threadlib.c
+  lib/hash-pjw-bare.c
+  lib/hash-pjw-bare.h
   lib/inet_ntop.c
   lib/inet_pton.c
   lib/intprops.h
@@ -1205,6 +1222,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/listen.c
   lib/lseek.c
   lib/malloc.c
+  lib/math.c
   lib/math.in.h
   lib/memchr.c
   lib/memchr.valgrind
@@ -1277,6 +1295,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/strtok_r.c
   lib/strverscmp.c
   lib/sys_select.in.h
+  lib/sys_socket.c
   lib/sys_socket.in.h
   lib/sys_stat.in.h
   lib/sys_time.in.h
@@ -1285,8 +1304,11 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/sysexits.in.h
   lib/time.in.h
   lib/time_r.c
+  lib/timespec.c
   lib/timespec.h
+  lib/u64.c
   lib/u64.h
+  lib/unistd.c
   lib/unistd.in.h
   lib/vasnprintf.c
   lib/vasnprintf.h
@@ -1300,6 +1322,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/vsnprintf.c
   lib/w32sock.h
   lib/wchar.in.h
+  lib/xsize.c
   lib/xsize.h
   m4/00gnulib.m4
   m4/alloca.m4
@@ -1324,6 +1347,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/exponentf.m4
   m4/exponentl.m4
   m4/extensions.m4
+  m4/extern-inline.m4
   m4/fcntl-o.m4
   m4/fcntl_h.m4
   m4/fdopen.m4
@@ -1333,6 +1357,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/frexpl.m4
   m4/fseek.m4
   m4/fseeko.m4
+  m4/fseterr.m4
   m4/fstat.m4
   m4/ftell.m4
   m4/ftello.m4
@@ -1341,6 +1366,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/getaddrinfo.m4
   m4/getcwd.m4
   m4/getdelim.m4
+  m4/getdtablesize.m4
   m4/getline.m4
   m4/getopt.m4
   m4/getpagesize.m4
@@ -1545,6 +1571,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-getaddrinfo.c
   tests/test-getcwd-lgpl.c
   tests/test-getdelim.c
+  tests/test-getdtablesize.c
   tests/test-getline.c
   tests/test-getopt.c
   tests/test-getopt.h
@@ -1649,12 +1676,13 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-vsnprintf.c
   tests/test-wchar.c
   tests/zerosize-ptr.h
+  tests=lib/binary-io.c
   tests=lib/binary-io.h
-  tests=lib/dup2.c
   tests=lib/fcntl.in.h
   tests=lib/fdopen.c
   tests=lib/ftruncate.c
   tests=lib/getcwd-lgpl.c
+  tests=lib/getdtablesize.c
   tests=lib/getpagesize.c
   tests=lib/glthread/lock.c
   tests=lib/glthread/lock.h
index 5134775..72be876 100644 (file)
@@ -1,5 +1,5 @@
 # hostent.m4 serial 2
-dnl Copyright (C) 2008, 2010-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a60a261..108d945 100644 (file)
@@ -1,5 +1,5 @@
 # include_next.m4 serial 23
-dnl Copyright (C) 2006-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 1ebd960..476f063 100644 (file)
@@ -1,5 +1,5 @@
 # inet_ntop.m4 serial 19
-dnl Copyright (C) 2005-2006, 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2006, 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e7b44e2..e86db82 100644 (file)
@@ -1,5 +1,5 @@
 # inet_pton.m4 serial 17
-dnl Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index c1a4a75..6ea7053 100644 (file)
@@ -1,5 +1,5 @@
 # intmax_t.m4 serial 8
-dnl Copyright (C) 1997-2004, 2006-2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index eec4f41..3b483d3 100644 (file)
@@ -1,5 +1,5 @@
 # inttypes.m4 serial 26
-dnl Copyright (C) 2006-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index ec0b728..1463af4 100644 (file)
@@ -1,5 +1,5 @@
 # ioctl.m4 serial 4
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 54b64a4..ee05e0f 100644 (file)
@@ -1,5 +1,5 @@
 # isnand.m4 serial 11
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 97f638a..f01886a 100644 (file)
@@ -1,5 +1,5 @@
 # isnanf.m4 serial 14
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 81469ab..ed5bbf8 100644 (file)
@@ -1,5 +1,5 @@
 # isnanl.m4 serial 17
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a159f4a..1e605e3 100644 (file)
@@ -1,13 +1,14 @@
 # Enable large files on systems where this is not the default.
 
-# Copyright 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright 1992-1996, 1998-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# The following implementation works around a problem in autoconf <= 2.68;
-# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5.
-m4_version_prereq([2.69], [] ,[
+# The following implementation works around a problem in autoconf <= 2.69;
+# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+# or configures them incorrectly in some cases.
+m4_version_prereq([2.70], [] ,[
 
 # _AC_SYS_LARGEFILE_TEST_INCLUDES
 # -------------------------------
@@ -25,9 +26,9 @@ m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
 
 
 # _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
-#                              CACHE-VAR,
-#                              DESCRIPTION,
-#                              PROLOGUE, [FUNCTION-BODY])
+#                               CACHE-VAR,
+#                               DESCRIPTION,
+#                               PROLOGUE, [FUNCTION-BODY])
 # --------------------------------------------------------
 m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
 [AC_CACHE_CHECK([for $1 value needed for large files], [$3],
@@ -93,15 +94,11 @@ if test "$enable_largefile" != no; then
       [_AC_SYS_LARGEFILE_TEST_INCLUDES])
   fi
 
-  AH_VERBATIM([_DARWIN_USE_64_BIT_INODE],
-[/* Enable large inode numbers on Mac OS X.  */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif])
+  AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1],
+    [Enable large inode numbers on Mac OS X 10.5.])
 fi
 ])# AC_SYS_LARGEFILE
-
-])# m4_version_prereq 2.69
+])# m4_version_prereq 2.70
 
 # Enable large files on systems where this is implemented by Gnulib, not by the
 # system headers.
@@ -136,7 +133,7 @@ AC_DEFUN([gl_LARGEFILE],
     *)
       dnl Nothing to do on gnulib's side.
       dnl A 64-bit off_t is
-      dnl   - already the default on MacOS X, FreeBSD, NetBSD, OpenBSD, IRIX,
+      dnl   - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX,
       dnl     OSF/1, Cygwin,
       dnl   - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on
       dnl     glibc, HP-UX, Solaris,
index 3511684..59895bc 100644 (file)
@@ -1,5 +1,5 @@
 # ld-output-def.m4 serial 2
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 5ed93ef..63386f1 100644 (file)
@@ -1,5 +1,5 @@
 # ld-version-script.m4 serial 3
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 11f20ca..1223711 100644 (file)
@@ -1,5 +1,5 @@
-# ldexpl.m4 serial 15
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# ldexpl.m4 serial 16
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -14,7 +14,7 @@ AC_DEFUN([gl_FUNC_LDEXPL],
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
   dnl Check whether it's declared.
-  dnl MacOS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
+  dnl Mac OS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
   AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [[#include <math.h>]])
 
   LDEXPL_LIBM=
@@ -87,7 +87,7 @@ AC_DEFUN([gl_CHECK_LDEXPL_NO_LIBM],
 ])
 
 dnl Test whether ldexpl() works on finite numbers (this fails on AIX 5.1
-dnl and MacOS X 10.4/PowerPC).
+dnl and Mac OS X 10.4/PowerPC).
 AC_DEFUN([gl_FUNC_LDEXPL_WORKS],
 [
   AC_REQUIRE([AC_PROG_CC])
index bdda7f6..df9302a 100644 (file)
@@ -1,5 +1,5 @@
 # lseek.m4 serial 10
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index b7335bd..5f4db64 100644 (file)
@@ -1,6 +1,6 @@
-# serial 25
+# serial 26
 
-# Copyright (C) 1997-2001, 2003-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2001, 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -27,11 +27,7 @@ AC_DEFUN([gl_FUNC_LSTAT],
 ])
 
 # Prerequisites of lib/lstat.c.
-AC_DEFUN([gl_PREREQ_LSTAT],
-[
-  AC_REQUIRE([AC_C_INLINE])
-  :
-])
+AC_DEFUN([gl_PREREQ_LSTAT], [:])
 
 AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
 [
index 8fa48e9..4b24a0b 100644 (file)
@@ -1,5 +1,5 @@
 # malloc.m4 serial 14
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 7841979..791ce10 100644 (file)
@@ -1,5 +1,5 @@
 # malloca.m4 serial 1
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 864fc85..be6d4c9 100644 (file)
@@ -1,5 +1,5 @@
-# manywarnings.m4 serial 4
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# manywarnings.m4 serial 5
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -35,14 +35,12 @@ AC_DEFUN([gl_MANYWARN_COMPLEMENT],
 # make sure your gcc understands it.
 AC_DEFUN([gl_MANYWARN_ALL_GCC],
 [
-  dnl First, check if -Wno-missing-field-initializers is needed.
-  dnl -Wmissing-field-initializers is implied by -W, but that issues
-  dnl warnings with GCC version before 4.7, for the common idiom
-  dnl of initializing types on the stack to zero, using { 0, }
+  dnl First, check for some issues that only occur when combining multiple
+  dnl gcc warning categories.
   AC_REQUIRE([AC_PROG_CC])
   if test -n "$GCC"; then
 
-    dnl First, check -W -Werror -Wno-missing-field-initializers is supported
+    dnl Check if -W -Werror -Wno-missing-field-initializers is supported
     dnl with the current $CC $CFLAGS $CPPFLAGS.
     AC_MSG_CHECKING([whether -Wno-missing-field-initializers is supported])
     AC_CACHE_VAL([gl_cv_cc_nomfi_supported], [
@@ -77,107 +75,148 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
       ])
       AC_MSG_RESULT([$gl_cv_cc_nomfi_needed])
     fi
+
+    dnl Next, check if -Werror -Wuninitialized is useful with the
+    dnl user's choice of $CFLAGS; some versions of gcc warn that it
+    dnl has no effect if -O is not also used
+    AC_MSG_CHECKING([whether -Wuninitialized is supported])
+    AC_CACHE_VAL([gl_cv_cc_uninitialized_supported], [
+      gl_save_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -Werror -Wuninitialized"
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[]], [[]])],
+        [gl_cv_cc_uninitialized_supported=yes],
+        [gl_cv_cc_uninitialized_supported=no])
+      CFLAGS="$gl_save_CFLAGS"])
+    AC_MSG_RESULT([$gl_cv_cc_uninitialized_supported])
+
   fi
 
+  # List all gcc warning categories.
   gl_manywarn_set=
   for gl_manywarn_item in \
-    -Wall \
     -W \
-    -Wformat-y2k \
-    -Wformat-nonliteral \
-    -Wformat-security \
-    -Winit-self \
-    -Wmissing-include-dirs \
-    -Wswitch-default \
-    -Wswitch-enum \
-    -Wunused \
-    -Wunknown-pragmas \
-    -Wstrict-aliasing \
-    -Wstrict-overflow \
-    -Wsystem-headers \
-    -Wfloat-equal \
-    -Wtraditional \
-    -Wtraditional-conversion \
-    -Wdeclaration-after-statement \
-    -Wundef \
-    -Wshadow \
-    -Wunsafe-loop-optimizations \
-    -Wpointer-arith \
+    -Wabi \
+    -Waddress \
+    -Waggressive-loop-optimizations \
+    -Wall \
+    -Warray-bounds \
+    -Wattributes \
     -Wbad-function-cast \
-    -Wc++-compat \
-    -Wcast-qual \
-    -Wcast-align \
-    -Wwrite-strings \
-    -Wconversion \
-    -Wsign-conversion \
-    -Wlogical-op \
-    -Waggregate-return \
-    -Wstrict-prototypes \
-    -Wold-style-definition \
-    -Wmissing-prototypes \
-    -Wmissing-declarations \
-    -Wmissing-noreturn \
-    -Wmissing-format-attribute \
-    -Wpacked \
-    -Wpadded \
-    -Wredundant-decls \
-    -Wnested-externs \
-    -Wunreachable-code \
-    -Winline \
-    -Winvalid-pch \
-    -Wlong-long \
-    -Wvla \
-    -Wvolatile-register-var \
-    -Wdisabled-optimization \
-    -Wstack-protector \
-    -Woverlength-strings \
     -Wbuiltin-macro-redefined \
-    -Wmudflap \
-    -Wpacked-bitfield-compat \
-    -Wsync-nand \
-    ; do
-    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
-  done
-  # The following are not documented in the manual but are included in
-  # output from gcc --help=warnings.
-  for gl_manywarn_item in \
-    -Wattributes \
+    -Wcast-align \
+    -Wchar-subscripts \
+    -Wclobbered \
+    -Wcomment \
+    -Wcomments \
     -Wcoverage-mismatch \
-    -Wunused-macros \
-    ; do
-    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
-  done
-  # More warnings from gcc 4.6.2 --help=warnings.
-  for gl_manywarn_item in \
-    -Wabi \
     -Wcpp \
     -Wdeprecated \
     -Wdeprecated-declarations \
+    -Wdisabled-optimization \
     -Wdiv-by-zero \
     -Wdouble-promotion \
+    -Wempty-body \
     -Wendif-labels \
+    -Wenum-compare \
     -Wextra \
     -Wformat-contains-nul \
     -Wformat-extra-args \
+    -Wformat-nonliteral \
+    -Wformat-security \
+    -Wformat-y2k \
     -Wformat-zero-length \
-    -Wformat=2 \
+    -Wfree-nonheap-object \
+    -Wignored-qualifiers \
+    -Wimplicit \
+    -Wimplicit-function-declaration \
+    -Wimplicit-int \
+    -Winit-self \
+    -Winline \
+    -Wint-to-pointer-cast \
+    -Winvalid-memory-model \
+    -Winvalid-pch \
+    -Wjump-misses-init \
+    -Wlogical-op \
+    -Wmain \
+    -Wmaybe-uninitialized \
+    -Wmissing-braces \
+    -Wmissing-declarations \
+    -Wmissing-field-initializers \
+    -Wmissing-include-dirs \
+    -Wmissing-parameter-type \
+    -Wmissing-prototypes \
+    -Wmudflap \
     -Wmultichar \
+    -Wnarrowing \
+    -Wnested-externs \
+    -Wnonnull \
     -Wnormalized=nfc \
+    -Wold-style-declaration \
+    -Wold-style-definition \
     -Woverflow \
+    -Woverlength-strings \
+    -Woverride-init \
+    -Wpacked \
+    -Wpacked-bitfield-compat \
+    -Wparentheses \
+    -Wpointer-arith \
+    -Wpointer-sign \
     -Wpointer-to-int-cast \
     -Wpragmas \
+    -Wreturn-local-addr \
+    -Wreturn-type \
+    -Wsequence-point \
+    -Wshadow \
+    -Wsizeof-pointer-memaccess \
+    -Wstack-protector \
+    -Wstrict-aliasing \
+    -Wstrict-overflow \
+    -Wstrict-prototypes \
     -Wsuggest-attribute=const \
+    -Wsuggest-attribute=format \
     -Wsuggest-attribute=noreturn \
     -Wsuggest-attribute=pure \
+    -Wswitch \
+    -Wswitch-default \
+    -Wsync-nand \
+    -Wsystem-headers \
     -Wtrampolines \
+    -Wtrigraphs \
+    -Wtype-limits \
+    -Wuninitialized \
+    -Wunknown-pragmas \
+    -Wunsafe-loop-optimizations \
+    -Wunused \
+    -Wunused-but-set-parameter \
+    -Wunused-but-set-variable \
+    -Wunused-function \
+    -Wunused-label \
+    -Wunused-local-typedefs \
+    -Wunused-macros \
+    -Wunused-parameter \
+    -Wunused-result \
+    -Wunused-value \
+    -Wunused-variable \
+    -Wvarargs \
+    -Wvariadic-macros \
+    -Wvector-operation-performance \
+    -Wvla \
+    -Wvolatile-register-var \
+    -Wwrite-strings \
+    \
     ; do
     gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
   done
 
-  # Disable the missing-field-initializers warning if needed
+  # Disable specific options as needed.
   if test "$gl_cv_cc_nomfi_needed" = yes; then
     gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
   fi
 
+  if test "$gl_cv_cc_uninitialized_supported" = no; then
+    gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized"
+  fi
+
   $1=$gl_manywarn_set
 ])
index 90d248a..bf0845f 100644 (file)
@@ -1,5 +1,5 @@
-# math_h.m4 serial 113
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# math_h.m4 serial 114
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,7 +8,6 @@ AC_DEFUN([gl_MATH_H],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
   gl_CHECK_NEXT_HEADERS([math.h])
-  AC_REQUIRE([AC_C_INLINE])
 
   AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
     [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
index 0040294..2d8abe7 100644 (file)
@@ -1,5 +1,5 @@
 # memchr.m4 serial 12
-dnl Copyright (C) 2002-2004, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 88f9e20..9102e77 100644 (file)
@@ -1,5 +1,5 @@
 # memmem.m4 serial 24
-dnl Copyright (C) 2002-2004, 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index c926941..a48f2d1 100644 (file)
@@ -1,5 +1,5 @@
 # mempcpy.m4 serial 11
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 45c6230..2b210cd 100644 (file)
@@ -1,5 +1,5 @@
 # minmax.m4 serial 4
-dnl Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 579323f..9b60ddf 100644 (file)
@@ -1,5 +1,5 @@
-# mmap-anon.m4 serial 9
-dnl Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+# mmap-anon.m4 serial 10
+dnl Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,7 +9,7 @@ dnl with or without modifications, as long as this notice is preserved.
 # - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS
 #   and MAP_ANON exist and have the same value.
 # - On HP-UX, only MAP_ANONYMOUS exists.
-# - On MacOS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists.
+# - On Mac OS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists.
 # - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be
 #   used.
 
index 40f612a..d5b66d4 100644 (file)
@@ -1,5 +1,5 @@
 # mode_t.m4 serial 2
-dnl Copyright (C) 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 8db4617..9a6a47a 100644 (file)
@@ -1,5 +1,5 @@
 # msvc-inval.m4 serial 1
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0125050..a39618a 100644 (file)
@@ -1,5 +1,5 @@
 # msvc-nothrow.m4 serial 1
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index b424dce..552ec7e 100644 (file)
@@ -1,12 +1,12 @@
-# multiarch.m4 serial 6
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# multiarch.m4 serial 7
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 # Determine whether the compiler is or may be producing universal binaries.
 #
-# On MacOS X 10.5 and later systems, the user can create libraries and
+# On Mac OS X 10.5 and later systems, the user can create libraries and
 # executables that work on multiple system types--known as "fat" or
 # "universal" binaries--by specifying multiple '-arch' options to the
 # compiler but only a single '-arch' option to the preprocessor.  Like
index e0f3ee8..2c69f99 100644 (file)
@@ -1,5 +1,5 @@
 # netdb_h.m4 serial 11
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e181388..21971b2 100644 (file)
@@ -1,5 +1,5 @@
 # netinet_in_h.m4 serial 5
-dnl Copyright (C) 2006-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 08ef825..105b884 100644 (file)
@@ -1,5 +1,5 @@
-# nocrash.m4 serial 3
-dnl Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc.
+# nocrash.m4 serial 4
+dnl Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -18,7 +18,7 @@ dnl          int main() { nocrash_init(); ... }
 AC_DEFUN([GL_NOCRASH],[[
 #include <stdlib.h>
 #if defined __MACH__ && defined __APPLE__
-/* Avoid a crash on MacOS X.  */
+/* Avoid a crash on Mac OS X.  */
 #include <mach/mach.h>
 #include <mach/mach_error.h>
 #include <mach/thread_status.h>
index dfca2df..d355d01 100644 (file)
@@ -1,5 +1,5 @@
 # off_t.m4 serial 1
-dnl Copyright (C) 2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index c85971d..a6cb101 100644 (file)
@@ -1,5 +1,5 @@
-# open.m4 serial 13
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# open.m4 serial 14
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -86,7 +86,6 @@ changequote([,])dnl
 # Prerequisites of lib/open.c.
 AC_DEFUN([gl_PREREQ_OPEN],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
   :
 ])
index 08da440..d411680 100644 (file)
@@ -1,5 +1,5 @@
 # opendir.m4 serial 2
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0117861..e11bf57 100644 (file)
@@ -1,5 +1,5 @@
 # pathmax.m4 serial 10
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 369a824..42549ba 100644 (file)
@@ -1,5 +1,5 @@
 # perror.m4 serial 6
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 37aef11..5831283 100644 (file)
@@ -1,5 +1,5 @@
 # pipe.m4 serial 2
-dnl Copyright (C) 2010-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index de5d641..8b373b1 100644 (file)
@@ -1,5 +1,5 @@
 # printf-frexp.m4 serial 5
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 55dd6bc..f1ce4c8 100644 (file)
@@ -1,5 +1,5 @@
-# printf-frexpl.m4 serial 9
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+# printf-frexpl.m4 serial 10
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -28,7 +28,7 @@ AC_DEFUN([gl_FUNC_PRINTF_FREXPL],
     AC_DEFINE([HAVE_FREXPL_IN_LIBC], [1],
       [Define if the frexpl function is available in libc.])
     dnl Also check whether it's declared.
-    dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
+    dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
     AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include <math.h>]])
   fi
 
@@ -40,7 +40,7 @@ AC_DEFUN([gl_FUNC_PRINTF_FREXPL],
         AC_DEFINE([HAVE_LDEXPL_IN_LIBC], [1],
           [Define if the ldexpl function is available in libc.])
         dnl Also check whether it's declared.
-        dnl MacOS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
+        dnl Mac OS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
         AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [[#include <math.h>]])
         ;;
     esac
index d75aca0..ef44f78 100644 (file)
@@ -1,5 +1,5 @@
-# printf.m4 serial 48
-dnl Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc.
+# printf.m4 serial 50
+dnl Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -63,7 +63,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_printf_sizes_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_sizes_c99="guessing no";;
            darwin*)              gl_cv_func_printf_sizes_c99="guessing yes";;
                                  # Guess yes on OpenBSD >= 3.9.
@@ -222,7 +222,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 6.
            freebsd[1-5]*)        gl_cv_func_printf_infinite="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_infinite="guessing no";;
            darwin*)              gl_cv_func_printf_infinite="guessing yes";;
                                  # Guess yes on HP-UX >= 11.
@@ -507,14 +507,14 @@ int main ()
   if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
       || buf[0] == '0')
     result |= 8;
-  /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug.  */
+  /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug.  */
   if (sprintf (buf, "%.1a", 1.999) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
           && strcmp (buf, "0x2.0p+0") != 0
           && strcmp (buf, "0x4.0p-1") != 0
           && strcmp (buf, "0x8.0p-2") != 0))
     result |= 16;
-  /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
+  /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a
      glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>.  */
   if (sprintf (buf, "%.1La", 1.999L) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
@@ -590,7 +590,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 6.
            freebsd[1-5]*)        gl_cv_func_printf_directive_f="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_directive_f="guessing no";;
            darwin*)              gl_cv_func_printf_directive_f="guessing yes";;
                                  # Guess yes on Solaris >= 2.10.
@@ -1028,8 +1028,9 @@ int main()
 changequote([,])dnl
           ])])
           if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-            (./conftest
+            (./conftest 2>&AS_MESSAGE_LOG_FD
              result=$?
+             _AS_ECHO_LOG([\$? = $result])
              if test $result != 0 && test $result != 77; then result=1; fi
              exit $result
             ) >/dev/null 2>/dev/null
@@ -1043,7 +1044,7 @@ changequote([,])dnl
           fi
           rm -fr conftest*
         else
-          dnl A universal build on Apple MacOS X platforms.
+          dnl A universal build on Apple Mac OS X platforms.
           dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode.
           dnl But we need a configuration result that is valid in both modes.
           gl_cv_func_printf_enomem="guessing no"
@@ -1137,7 +1138,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
            darwin*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
                                  # Guess yes on OpenBSD >= 3.9.
@@ -1236,7 +1237,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_snprintf_retval_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
            darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on OpenBSD >= 3.9.
@@ -1317,7 +1318,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_snprintf_directive_n="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_directive_n="guessing no";;
            darwin*)              gl_cv_func_snprintf_directive_n="guessing yes";;
                                  # Guess yes on Solaris >= 2.6.
@@ -1459,7 +1460,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
            darwin*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
                                  # Guess yes on Cygwin.
@@ -1539,8 +1540,8 @@ dnl                                  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
 dnl   glibc 2.5                      .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 dnl   glibc 2.3.6                    .  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 dnl   FreeBSD 5.4, 6.1               .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
-dnl   MacOS X 10.5.8                 .  .  .  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
-dnl   MacOS X 10.3.9                 .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
+dnl   Mac OS X 10.5.8                .  .  .  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   Mac OS X 10.3.9                .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
 dnl   OpenBSD 3.9, 4.0               .  .  #  #  #  #  .  #  .  #  .  #  .  #  .  .  .  .  .  .
 dnl   Cygwin 1.7.0 (2009)            .  .  .  #  .  .  .  ?  .  .  .  .  .  ?  .  .  .  .  .  .
 dnl   Cygwin 1.5.25 (2008)           .  .  .  #  #  .  .  #  .  .  .  .  .  #  .  .  .  .  .  .
index b971b12..c33b5b5 100644 (file)
@@ -1,5 +1,5 @@
-# putenv.m4 serial 19
-dnl Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# putenv.m4 serial 20
+dnl Copyright (C) 2002-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -48,3 +48,9 @@ AC_DEFUN([gl_FUNC_PUTENV],
       ;;
   esac
 ])
+
+# Prerequisites of lib/putenv.c.
+AC_DEFUN([gl_PREREQ_PUTENV],
+[
+  AC_CHECK_DECLS([_putenv])
+])
index 1930164..8c50054 100644 (file)
@@ -1,5 +1,5 @@
 # rawmemchr.m4 serial 2
-dnl Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 3665247..491bba8 100644 (file)
@@ -1,5 +1,5 @@
 # read-file.m4 serial 3
-dnl Copyright (C) 2002-2006, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 437ec08..4269bb4 100644 (file)
@@ -1,5 +1,5 @@
 # readdir.m4 serial 1
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 954c2f0..d477fb4 100644 (file)
@@ -1,5 +1,5 @@
 # realloc.m4 serial 13
-dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 24a3af4..a7834ae 100644 (file)
@@ -1,5 +1,5 @@
 # scandir.m4 serial 2
-dnl Copyright (C) 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 037b3d3..d025355 100644 (file)
@@ -1,5 +1,5 @@
-# select.m4 serial 6
-dnl Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# select.m4 serial 7
+dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -46,6 +46,44 @@ changequote([,])dnl
       *yes) ;;
       *) REPLACE_SELECT=1 ;;
     esac
+
+    dnl On FreeBSD 8.2, select() doesn't always reject bad fds.
+    AC_CACHE_CHECK([whether select detects invalid fds],
+      [gl_cv_func_select_detects_ebadf],
+      [
+        AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h>
+#include <sys/time.h>
+#if HAVE_SYS_SELECT_H
+# include <sys/select.h>
+#endif
+#include <unistd.h>
+#include <errno.h>
+]],[[
+  fd_set set;
+  dup2(0, 16);
+  FD_ZERO(&set);
+  FD_SET(16, &set);
+  close(16);
+  struct timeval timeout;
+  timeout.tv_sec = 0;
+  timeout.tv_usec = 5;
+  return select (17, &set, NULL, NULL, &timeout) != -1 || errno != EBADF;
+]])], [gl_cv_func_select_detects_ebadf=yes],
+      [gl_cv_func_select_detects_ebadf=no],
+          [
+           case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_select_detects_ebadf="guessing no" ;;
+           esac
+          ])
+      ])
+    case $gl_cv_func_select_detects_ebadf in
+      *yes) ;;
+      *) REPLACE_SELECT=1 ;;
+    esac
   fi
 
   dnl Determine the needed libraries.
index 21da957..01c037a 100644 (file)
@@ -1,5 +1,5 @@
 # servent.m4 serial 2
-dnl Copyright (C) 2008, 2010-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e1931e7..cb5351a 100644 (file)
@@ -1,5 +1,5 @@
 # setenv.m4 serial 26
-dnl Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index ed4d730..3de9f27 100644 (file)
@@ -1,5 +1,5 @@
 # signal_h.m4 serial 18
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e9877f6..d58caaf 100644 (file)
@@ -1,5 +1,5 @@
-# signbit.m4 serial 12
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# signbit.m4 serial 13
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -170,7 +170,7 @@ double m0d = -p0d;
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use another constant expression instead.
    But that expression does not work on other platforms, such as when
-   cross-compiling to PowerPC on MacOS X 10.5.  */
+   cross-compiling to PowerPC on Mac OS X 10.5.  */
 long double p0l = 0.0L;
 #if defined __hpux || defined __sgi
 long double m0l = -LDBL_MIN * LDBL_MIN;
index 49197fa..a27baa6 100644 (file)
@@ -1,5 +1,5 @@
 # sleep.m4 serial 7
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index de94edd..3698e84 100644 (file)
@@ -1,5 +1,5 @@
 # snprintf.m4 serial 6
-dnl Copyright (C) 2002-2004, 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 92a1af2..b08a72f 100644 (file)
@@ -1,5 +1,5 @@
 # socketlib.m4 serial 1
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e3738d9..b407391 100644 (file)
@@ -1,5 +1,5 @@
 # sockets.m4 serial 7
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a4ab43b..e3efd6e 100644 (file)
@@ -1,5 +1,5 @@
 # socklen.m4 serial 10
-dnl Copyright (C) 2005-2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 5f97c3e..89557b1 100644 (file)
@@ -1,5 +1,5 @@
 # sockpfaf.m4 serial 8
-dnl Copyright (C) 2004, 2006, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2006, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 209d64c..6338134 100644 (file)
@@ -1,5 +1,5 @@
 # ssize_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2001-2003, 2006, 2010-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2003, 2006, 2010-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a8b79f5..2456297 100644 (file)
@@ -1,6 +1,6 @@
-# serial 10
+# serial 11
 
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -68,8 +68,4 @@ AC_DEFUN([gl_FUNC_STAT],
 ])
 
 # Prerequisites of lib/stat.c.
-AC_DEFUN([gl_PREREQ_STAT],
-[
-  AC_REQUIRE([AC_C_INLINE])
-  :
-])
+AC_DEFUN([gl_PREREQ_STAT], [:])
index 6659c9c..a866ff6 100644 (file)
@@ -1,6 +1,6 @@
 # Check for stdalign.h that conforms to C11.
 
-dnl Copyright 2011-2012 Free Software Foundation, Inc.
+dnl Copyright 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -33,8 +33,9 @@ AC_DEFUN([gl_STDALIGN_H],
             #if \
                 (__GNUC__ || __IBMC__ || __IBMCPP__ \
                  || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
-              int alignas (8) alignas_int = 1;
-              char test_alignas[_Alignof (alignas_int) == 8 ? 1 : -1];
+              struct alignas_test { char c; char alignas (8) alignas_8; };
+              char test_alignas[offsetof (struct alignas_test, alignas_8) == 8
+                                ? 1 : -1];
             #endif
           ]])],
        [gl_cv_header_working_stdalign_h=yes],
index 5c313cb..c087f61 100644 (file)
@@ -1,5 +1,5 @@
 # stdarg.m4 serial 6
-dnl Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index eabfa64..80d5559 100644 (file)
@@ -1,6 +1,6 @@
 # Check for stdbool.h that conforms to C99.
 
-dnl Copyright (C) 2002-2006, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index cc11609..5da8ab1 100644 (file)
@@ -1,6 +1,6 @@
 dnl A placeholder for POSIX 2008 <stddef.h>, for platforms that have issues.
 # stddef_h.m4 serial 4
-dnl Copyright (C) 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 28d342e..27cdcdb 100644 (file)
@@ -1,5 +1,5 @@
 # stdint.m4 serial 43
-dnl Copyright (C) 2001-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index b03393b..ebade06 100644 (file)
@@ -1,5 +1,5 @@
-# stdio_h.m4 serial 41
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# stdio_h.m4 serial 43
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,13 +7,14 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_STDIO_H],
 [
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-  AC_REQUIRE([AC_C_INLINE])
   gl_NEXT_HEADERS([stdio.h])
 
   dnl No need to create extra modules for these functions. Everyone who uses
   dnl <stdio.h> likely needs them.
   GNULIB_FSCANF=1
+  gl_MODULE_INDICATOR([fscanf])
   GNULIB_SCANF=1
+  gl_MODULE_INDICATOR([scanf])
   GNULIB_FGETC=1
   GNULIB_GETC=1
   GNULIB_GETCHAR=1
index ab43728..2027ab3 100644 (file)
@@ -1,5 +1,5 @@
-# stdlib_h.m4 serial 41
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# stdlib_h.m4 serial 42
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -22,7 +22,7 @@ AC_DEFUN([gl_STDLIB_H],
     ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
     initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
     posix_openpt ptsname ptsname_r random random_r realpath rpmatch
-    setenv setstate setstate_r srandom srandom_r
+    secure_getenv setenv setstate setstate_r srandom srandom_r
     strtod strtoll strtoull unlockpt unsetenv])
 ])
 
@@ -60,6 +60,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
   GNULIB_REALPATH=0;      AC_SUBST([GNULIB_REALPATH])
   GNULIB_RPMATCH=0;       AC_SUBST([GNULIB_RPMATCH])
+  GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV])
   GNULIB_SETENV=0;        AC_SUBST([GNULIB_SETENV])
   GNULIB_STRTOD=0;        AC_SUBST([GNULIB_STRTOD])
   GNULIB_STRTOLL=0;       AC_SUBST([GNULIB_STRTOLL])
@@ -88,6 +89,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   HAVE_RANDOM_R=1;           AC_SUBST([HAVE_RANDOM_R])
   HAVE_REALPATH=1;           AC_SUBST([HAVE_REALPATH])
   HAVE_RPMATCH=1;            AC_SUBST([HAVE_RPMATCH])
+  HAVE_SECURE_GETENV=1;      AC_SUBST([HAVE_SECURE_GETENV])
   HAVE_SETENV=1;             AC_SUBST([HAVE_SETENV])
   HAVE_DECL_SETENV=1;        AC_SUBST([HAVE_DECL_SETENV])
   HAVE_STRTOD=1;             AC_SUBST([HAVE_STRTOD])
@@ -102,6 +104,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   REPLACE_MALLOC=0;          AC_SUBST([REPLACE_MALLOC])
   REPLACE_MBTOWC=0;          AC_SUBST([REPLACE_MBTOWC])
   REPLACE_MKSTEMP=0;         AC_SUBST([REPLACE_MKSTEMP])
+  REPLACE_PTSNAME=0;         AC_SUBST([REPLACE_PTSNAME])
   REPLACE_PTSNAME_R=0;       AC_SUBST([REPLACE_PTSNAME_R])
   REPLACE_PUTENV=0;          AC_SUBST([REPLACE_PUTENV])
   REPLACE_RANDOM_R=0;        AC_SUBST([REPLACE_RANDOM_R])
index 717fa9c..22bf57c 100644 (file)
@@ -1,5 +1,5 @@
 # strcase.m4 serial 11
-dnl Copyright (C) 2002, 2005-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index d3dfb9a..b59eda9 100644 (file)
@@ -1,5 +1,5 @@
 # strchrnul.m4 serial 9
-dnl Copyright (C) 2003, 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index db0c8c1..efe2d57 100644 (file)
@@ -1,6 +1,6 @@
 # strdup.m4 serial 13
 
-dnl Copyright (C) 2002-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2013 Free Software Foundation, Inc.
 
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 1c96e52..3989844 100644 (file)
@@ -1,5 +1,5 @@
 # strerror.m4 serial 17
-dnl Copyright (C) 2002, 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 5bdf0ab..341f983 100644 (file)
@@ -1,5 +1,5 @@
-# strerror_r.m4 serial 14
-dnl Copyright (C) 2002, 2007-2012 Free Software Foundation, Inc.
+# strerror_r.m4 serial 15
+dnl Copyright (C) 2002, 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -76,7 +76,7 @@ AC_DEFUN([gl_FUNC_STRERROR_R_WORKS],
         dnl HP-UX 11.31 strerror_r always fails when the buffer length argument
         dnl is less than 80.
         dnl FreeBSD 8.s strerror_r claims failure on 0
-        dnl MacOS X 10.5 strerror_r treats 0 like -1
+        dnl Mac OS X 10.5 strerror_r treats 0 like -1
         dnl Solaris 10 strerror_r corrupts errno on failure
         AC_CACHE_CHECK([whether strerror_r works],
           [gl_cv_func_strerror_r_works],
index 5677e09..cc5fbbb 100644 (file)
@@ -1,6 +1,6 @@
 # Configure a GNU-like replacement for <string.h>.
 
-# Copyright (C) 2007-2012 Free Software Foundation, Inc.
+# Copyright (C) 2007-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index a057e1c..76ef242 100644 (file)
@@ -1,7 +1,7 @@
 # Configure a replacement for <strings.h>.
 # serial 6
 
-# Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index bdde5fe..a1f8274 100644 (file)
@@ -1,5 +1,5 @@
-# strndup.m4 serial 20
-dnl Copyright (C) 2002-2003, 2005-2012 Free Software Foundation, Inc.
+# strndup.m4 serial 21
+dnl Copyright (C) 2002-2003, 2005-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -24,7 +24,7 @@ AC_DEFUN([gl_FUNC_STRNDUP],
       [AC_RUN_IFELSE([
          AC_LANG_PROGRAM([[#include <string.h>
                            #include <stdlib.h>]], [[
-#ifndef HAVE_DECL_STRNDUP
+#if !HAVE_DECL_STRNDUP
   extern
   #ifdef __cplusplus
   "C"
index d97e307..eae82b7 100644 (file)
@@ -1,5 +1,5 @@
 # strnlen.m4 serial 13
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 60e33a6..cbc9339 100644 (file)
@@ -1,5 +1,5 @@
 # strtok_r.m4 serial 13
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index d744647..110daf2 100644 (file)
@@ -1,5 +1,5 @@
 # strverscmp.m4 serial 8
-dnl Copyright (C) 2002, 2005-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index cfd90ec..82ede2a 100644 (file)
@@ -1,7 +1,7 @@
 # serial 6
 # See if we need to provide symlink replacement.
 
-dnl Copyright (C) 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 94a2669..8705a4c 100644 (file)
@@ -1,5 +1,5 @@
 # sys_ioctl_h.m4 serial 10
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index eaf056a..4962328 100644 (file)
@@ -1,5 +1,5 @@
 # sys_select_h.m4 serial 20
-dnl Copyright (C) 2006-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 8d4e7e1..9486377 100644 (file)
@@ -1,5 +1,5 @@
-# sys_socket_h.m4 serial 22
-dnl Copyright (C) 2005-2012 Free Software Foundation, Inc.
+# sys_socket_h.m4 serial 23
+dnl Copyright (C) 2005-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,7 +10,6 @@ AC_DEFUN([gl_HEADER_SYS_SOCKET],
 [
   AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([AC_C_INLINE])
 
   dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have
   dnl old-style declarations (with return type 'int' instead of 'ssize_t')
index f45dee1..6dd3d99 100644 (file)
@@ -1,5 +1,5 @@
-# sys_stat_h.m4 serial 27   -*- Autoconf -*-
-dnl Copyright (C) 2006-2012 Free Software Foundation, Inc.
+# sys_stat_h.m4 serial 28   -*- Autoconf -*-
+dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,9 +11,6 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H],
 [
   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
 
-  dnl For the mkdir substitute.
-  AC_REQUIRE([AC_C_INLINE])
-
   dnl Check for broken stat macros.
   AC_REQUIRE([AC_HEADER_STAT])
 
index 26eaf8e..0ac71ac 100644 (file)
@@ -1,7 +1,7 @@
 # Configure a replacement for <sys/time.h>.
 # serial 8
 
-# Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -52,7 +52,9 @@ AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY],
     dnl (in <sys/time.h> and <winsock2.h> for mingw64, in <winsock2.h> only
     dnl for MSVC) with a tv_sec field of type 'long' (32-bit!), which is
     dnl smaller than the 'time_t' type mandated by POSIX.
-    AC_CACHE_CHECK([for correct struct timeval.tv_sec member],
+    dnl On OpenBSD 5.1 amd64, tv_sec is 64 bits and time_t 32 bits, but
+    dnl that is good enough.
+    AC_CACHE_CHECK([for wide-enough struct timeval.tv_sec member],
       [gl_cv_sys_struct_timeval_tv_sec],
       [AC_COMPILE_IFELSE(
          [AC_LANG_PROGRAM(
@@ -65,7 +67,9 @@ AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY],
               #endif
             ]],
             [[static struct timeval x;
-              typedef int verify_tv_sec_type[sizeof (x.tv_sec) == sizeof (time_t) ? 1 : -1];
+              typedef int verify_tv_sec_type[
+                sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1
+              ];
             ]])],
          [gl_cv_sys_struct_timeval_tv_sec=yes],
          [gl_cv_sys_struct_timeval_tv_sec=no])
index f11eef2..d15c1b3 100644 (file)
@@ -1,10 +1,10 @@
-# sys_types_h.m4 serial 4
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+# sys_types_h.m4 serial 5
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_DEFUN([gl_SYS_TYPES_H],
+AC_DEFUN_ONCE([gl_SYS_TYPES_H],
 [
   AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
   gl_NEXT_HEADERS([sys/types.h])
index ddf844b..c75cbbd 100644 (file)
@@ -1,5 +1,5 @@
 # sys_uio_h.m4 serial 1
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index c5741d2..bd8abaa 100644 (file)
@@ -1,5 +1,5 @@
 # sysexits.m4 serial 6
-dnl Copyright (C) 2003, 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005, 2007, 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index b88da76..3b83900 100644 (file)
@@ -1,8 +1,8 @@
 # Configure a more-standard replacement for <time.h>.
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
 
-# serial 6
+# serial 7
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -25,7 +25,7 @@ AC_DEFUN([gl_HEADER_TIME_H_BODY],
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
 ])
 
-dnl Define HAVE_STRUCT_TIMESPEC if 'struct timespec' is declared
+dnl Check whether 'struct timespec' is declared
 dnl in time.h, sys/time.h, or pthread.h.
 
 AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC],
index c3579fb..c388a83 100644 (file)
@@ -1,6 +1,6 @@
 dnl Reentrant time functions: localtime_r, gmtime_r.
 
-dnl Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -17,7 +17,7 @@ AC_DEFUN([gl_TIME_R],
 
   dnl Some systems don't declare localtime_r() and gmtime_r() if _REENTRANT is
   dnl not defined.
-  AC_CHECK_DECLS_ONCE([localtime_r])
+  AC_CHECK_DECLS([localtime_r], [], [], [[#include <time.h>]])
   if test $ac_cv_have_decl_localtime_r = no; then
     HAVE_DECL_LOCALTIME_R=0
   fi
index d6e0efe..ea018f9 100644 (file)
@@ -1,5 +1,5 @@
-# timer_time.m4 serial 1
-dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
+# timer_time.m4 serial 2
+dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -33,7 +33,7 @@ AC_DEFUN([gl_TIMER_TIME],
  #endif
 #endif
       ],
-      [LIB_TIMER_TIME="$LIBMULTITHREAD $LIB_TIMER_TIME"])
+      [LIB_TIMER_TIME="$LIB_TIMER_TIME $LIBMULTITHREAD"])
     AC_CHECK_FUNCS([timer_settime])
   LIBS=$gl_saved_libs
 ])
index 597b9c2..399404b 100644 (file)
@@ -1,6 +1,6 @@
-#serial 14
+#serial 15
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -8,8 +8,4 @@
 
 dnl From Jim Meyering
 
-AC_DEFUN([gl_TIMESPEC],
-[
-  dnl Prerequisites of lib/timespec.h.
-  AC_REQUIRE([AC_C_INLINE])
-])
+AC_DEFUN([gl_TIMESPEC], [:])
index 9bc1ce7..4e3577a 100644 (file)
@@ -1,5 +1,5 @@
 # ungetc.m4 serial 3
-dnl Copyright (C) 2009-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 7e7651b..32dcfa5 100644 (file)
@@ -1,5 +1,5 @@
-# unistd_h.m4 serial 65
-dnl Copyright (C) 2006-2012 Free Software Foundation, Inc.
+# unistd_h.m4 serial 66
+dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,6 @@ AC_DEFUN([gl_UNISTD_H],
   dnl Use AC_REQUIRE here, so that the default behavior below is expanded
   dnl once only, before all statements that occur in other macros.
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  AC_REQUIRE([AC_C_INLINE])
 
   gl_CHECK_NEXT_HEADERS([unistd.h])
   if test $ac_cv_header_unistd_h = yes; then
index 6afd14d..590ac9d 100644 (file)
@@ -1,5 +1,5 @@
 # valgrind-tests.m4 serial 3
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0ce11da..d730e43 100644 (file)
@@ -1,5 +1,5 @@
-# vasnprintf.m4 serial 35
-dnl Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc.
+# vasnprintf.m4 serial 36
+dnl Copyright (C) 2002-2004, 2006-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -55,7 +55,6 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
 # Prerequisites of lib/vasnprintf.c.
 AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_FUNC_ALLOCA])
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
index 205ceea..c214ff1 100644 (file)
@@ -1,5 +1,5 @@
 # vasprintf.m4 serial 6
-dnl Copyright (C) 2002-2003, 2006-2007, 2009-2012 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2006-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 4c6c678..5dbef8e 100644 (file)
@@ -1,5 +1,5 @@
 # version-etc.m4 serial 1
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index 441bd57..47a4645 100644 (file)
@@ -1,5 +1,5 @@
 # vfprintf-posix.m4 serial 14
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0320352..8a4eb19 100644 (file)
@@ -1,5 +1,5 @@
 # vprintf-posix.m4 serial 3
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 22ec57b..4900764 100644 (file)
@@ -1,5 +1,5 @@
 # vsnprintf.m4 serial 6
-dnl Copyright (C) 2002-2004, 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a77802e..e43beeb 100644 (file)
@@ -1,5 +1,5 @@
 # warn-on-use.m4 serial 5
-dnl Copyright (C) 2010-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 28b8294..1848732 100644 (file)
@@ -1,5 +1,5 @@
-# warnings.m4 serial 7
-dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# warnings.m4 serial 8
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -27,7 +27,7 @@ AC_DEFUN([gl_COMPILER_OPTION_IF],
 AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl
 AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], m4_defn([gl_Warn]), [
   gl_save_compiler_FLAGS="$gl_Flags"
-  gl_AS_VAR_APPEND(m4_defn([gl_Flags]), [" $1"])
+  gl_AS_VAR_APPEND(m4_defn([gl_Flags]), [" $gl_unknown_warnings_are_errors $1"])
   AC_COMPILE_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([])])],
                     [AS_VAR_SET(gl_Warn, [yes])],
                     [AS_VAR_SET(gl_Warn, [no])])
@@ -38,6 +38,14 @@ AS_VAR_POPDEF([gl_Flags])dnl
 AS_VAR_POPDEF([gl_Warn])dnl
 ])
 
+# gl_UNKNOWN_WARNINGS_ARE_ERRORS
+# ------------------------------
+# Clang doesn't complain about unknown warning options unless one also
+# specifies -Wunknown-warning-option -Werror.  Detect this.
+AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS],
+[gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option],
+   [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'],
+   [gl_unknown_warnings_are_errors=])])
 
 # gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS],
 #             [PROGRAM = AC_LANG_PROGRAM()])
@@ -47,7 +55,8 @@ AS_VAR_POPDEF([gl_Warn])dnl
 #
 # If VARIABLE is a variable name, AC_SUBST it.
 AC_DEFUN([gl_WARN_ADD],
-[gl_COMPILER_OPTION_IF([$1],
+[AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS])
+gl_COMPILER_OPTION_IF([$1],
   [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])],
   [],
   [$3])
index c7a8b2d..bedb15a 100644 (file)
@@ -1,6 +1,6 @@
 dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
 
-dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e0d5c89..908735d 100644 (file)
@@ -1,6 +1,6 @@
 /* malloc() function that is glibc compatible.
 
-   Copyright (C) 1997-1998, 2006-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-1998, 2006-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/gl/math.c b/gl/math.c
new file mode 100644 (file)
index 0000000..ddb2ded
--- /dev/null
+++ b/gl/math.c
@@ -0,0 +1,3 @@
+#include <config.h>
+#define _GL_MATH_INLINE _GL_EXTERN_INLINE
+#include "math.h"
index 0625777..7189819 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <math.h>.
 
-   Copyright (C) 2002-2003, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #ifndef _@GUARD_PREFIX@_MATH_H
 #define _@GUARD_PREFIX@_MATH_H
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_MATH_INLINE
+# define _GL_MATH_INLINE _GL_INLINE
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
@@ -78,17 +82,17 @@ func (long double l)                                                \
    classification macros with an argument of real-floating (that is,
    one of float, double, or long double).  */
 #define _GL_WARN_REAL_FLOATING_DECL(func) \
-static inline int                                                   \
+_GL_MATH_INLINE int                                                 \
 rpl_ ## func ## f (float f)                                         \
 {                                                                   \
   return func (f);                                                  \
 }                                                                   \
-static inline int                                                   \
+_GL_MATH_INLINE int                                                 \
 rpl_ ## func ## d (double d)                                        \
 {                                                                   \
   return func (d);                                                  \
 }                                                                   \
-static inline int                                                   \
+_GL_MATH_INLINE int                                                 \
 rpl_ ## func ## l (long double l)                                   \
 {                                                                   \
   return func (l);                                                  \
@@ -124,7 +128,7 @@ static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
   /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
      choke on the expression 0.0 / 0.0.  */
 #  if defined __DECC || defined _MSC_VER
-static float
+_GL_MATH_INLINE float
 _NaN ()
 {
   static float zero = 0.0f;
@@ -2265,6 +2269,7 @@ _GL_WARN_REAL_FLOATING_DECL (signbit);
 # endif
 #endif
 
+_GL_INLINE_HEADER_END
 
 #endif /* _@GUARD_PREFIX@_MATH_H */
 #endif /* _@GUARD_PREFIX@_MATH_H */
index b8fb0ef..3db38a9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2012
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2013
    Free Software Foundation, Inc.
 
    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
index 29ffcc0..99f3a67 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2012 Free Software
+/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index a97fe42..5582368 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy memory area and return pointer after last written byte.
-   Copyright (C) 2003, 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 75a9b3c..dc649af 100644 (file)
@@ -1,5 +1,5 @@
 /* MIN, MAX macros.
-   Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2012 Free Software
+   Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index ba76a7e..72a6b6e 100644 (file)
@@ -1,5 +1,5 @@
 /* Invalid parameter handler for MSVC runtime libraries.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index eb6930b..dcb0353 100644 (file)
@@ -1,5 +1,5 @@
 /* Invalid parameter handler for MSVC runtime libraries.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e5cf181..8d65472 100644 (file)
@@ -1,6 +1,6 @@
 /* Wrappers that don't throw invalid parameter notifications
    with MSVC runtime libraries.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2b71945..5f52181 100644 (file)
@@ -1,6 +1,6 @@
 /* Wrappers that don't throw invalid parameter notifications
    with MSVC runtime libraries.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e4366f8..0da1800 100644 (file)
@@ -1,5 +1,5 @@
 /* Provide a netdb.h header file for systems lacking it (read: MinGW).
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
index 99b4936..b456c4f 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <netinet/in.h>.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 50e25e3..de0ea5a 100644 (file)
@@ -1,5 +1,5 @@
 /* Start reading the entries of a directory.
-   Copyright (C) 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 47b20dc..c27e6bc 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2012 Free Software
+   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index aa811af..2a9c2a3 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2012 Free Software
+   Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index eb47205..1a7b0c4 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a double into fraction and mantissa, for hexadecimal printf.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 985d7d2..3976b73 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a double into fraction and mantissa, for hexadecimal printf.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 568d2ff..26987a7 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 341dded..3768b09 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 308a175..23cacc1 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002-2003, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002-2003, 2006-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -401,7 +401,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
                       cp++;
                     }
 #if defined __APPLE__ && defined __MACH__
-                  /* On MacOS X 10.3, PRIdMAX is defined as "qd".
+                  /* On Mac OS X 10.3, PRIdMAX is defined as "qd".
                      We cannot change it to "lld" because PRIdMAX must also
                      be understood by the system's printf routines.  */
                   else if (*cp == 'q')
index 577099a..d8474be 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse printf format string.
-   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2012 Free Software
+   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index bdd4dd7..0c195e5 100644 (file)
@@ -1,5 +1,5 @@
 /* Program name management.
-   Copyright (C) 2001-2003, 2005-2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
index a75a02e..b4f3c27 100644 (file)
@@ -1,5 +1,5 @@
 /* Program name management.
-   Copyright (C) 2001-2004, 2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
index c94a0e1..a0298ce 100644 (file)
@@ -1,5 +1,5 @@
 /* Searching in a string.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 0d5ab8b..bcc5a92 100644 (file)
@@ -1,5 +1,5 @@
 /* read-file.c -- read file contents into a string
-   Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson and Bruno Haible.
 
    This program is free software; you can redistribute it and/or modify
index a1142b8..507135f 100644 (file)
@@ -1,5 +1,5 @@
 /* read-file.h -- read file contents into a string
-   Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
index 28aff9c..3db0080 100644 (file)
@@ -1,5 +1,5 @@
 /* Read the next entry of a directory.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 99556cc..b51010a 100644 (file)
@@ -1,6 +1,6 @@
 /* realloc() function that is glibc compatible.
 
-   Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2012 Free Software
+   Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index c6e2c00..544f90d 100644 (file)
--- a/gl/recv.c
+++ b/gl/recv.c
@@ -1,6 +1,6 @@
 /* recv.c --- wrappers for Windows recv function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2f0ecdb..891259e 100644 (file)
@@ -1,6 +1,6 @@
 /* recvfrom.c --- wrappers for Windows recvfrom function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2f4dd18..d035400 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-1998, 2000, 2002-2003, 2009-2012 Free Software
+/* Copyright (C) 1992-1998, 2000, 2002-2003, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index d6acb5c..c02558e 100644 (file)
@@ -1,7 +1,7 @@
 /* Emulation for select(2)
    Contributed by Paolo Bonzini.
 
-   Copyright 2008-2012 Free Software Foundation, Inc.
+   Copyright 2008-2013 Free Software Foundation, Inc.
 
    This file is part of gnulib.
 
@@ -507,6 +507,8 @@ restart:
 
 #include <sys/select.h>
 #include <stddef.h> /* NULL */
+#include <errno.h>
+#include <unistd.h>
 
 #undef select
 
@@ -514,6 +516,23 @@ int
 rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
             struct timeval *timeout)
 {
+  int i;
+
+  /* FreeBSD 8.2 has a bug: it does not always detect invalid fds.  */
+  if (nfds < 0 || nfds > FD_SETSIZE)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+  for (i = 0; i < nfds; i++)
+    {
+      if (((rfds && FD_ISSET (i, rfds))
+           || (wfds && FD_ISSET (i, wfds))
+           || (xfds && FD_ISSET (i, xfds)))
+          && dup2 (i, i) != i)
+        return -1;
+    }
+
   /* Interix 3.5 has a bug: it does not support nfds == 0.  */
   if (nfds == 0)
     {
index 83fe8e6..293d65e 100644 (file)
--- a/gl/send.c
+++ b/gl/send.c
@@ -1,6 +1,6 @@
 /* send.c --- wrappers for Windows send function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ab575f4..10ed39c 100644 (file)
@@ -1,6 +1,6 @@
 /* sendto.c --- wrappers for Windows sendto function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9f414d5..7865aaf 100644 (file)
@@ -1,6 +1,6 @@
 /* setsockopt.c --- wrappers for Windows setsockopt function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ea19421..343a0db 100644 (file)
@@ -1,6 +1,6 @@
 /* shutdown.c --- wrappers for Windows shutdown function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e0f0554..5484950 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <signal.h>.
 
-   Copyright (C) 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -55,7 +55,7 @@
 #ifndef _@GUARD_PREFIX@_SIGNAL_H
 #define _@GUARD_PREFIX@_SIGNAL_H
 
-/* MacOS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6 declare
+/* Mac OS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6 declare
    pthread_sigmask in <pthread.h>, not in <signal.h>.
    But avoid namespace pollution on glibc systems.*/
 #if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
@@ -197,7 +197,7 @@ typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1];
 
 /* Test whether a given signal is contained in a signal set.  */
 # if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on MacOS X.  */
+/* This function is defined as a macro on Mac OS X.  */
 #  if defined __cplusplus && defined GNULIB_NAMESPACE
 #   undef sigismember
 #  endif
@@ -210,7 +210,7 @@ _GL_CXXALIASWARN (sigismember);
 
 /* Initialize a signal set to the empty set.  */
 # if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on MacOS X.  */
+/* This function is defined as a macro on Mac OS X.  */
 #  if defined __cplusplus && defined GNULIB_NAMESPACE
 #   undef sigemptyset
 #  endif
@@ -222,7 +222,7 @@ _GL_CXXALIASWARN (sigemptyset);
 
 /* Add a signal to a signal set.  */
 # if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on MacOS X.  */
+/* This function is defined as a macro on Mac OS X.  */
 #  if defined __cplusplus && defined GNULIB_NAMESPACE
 #   undef sigaddset
 #  endif
@@ -235,7 +235,7 @@ _GL_CXXALIASWARN (sigaddset);
 
 /* Remove a signal from a signal set.  */
 # if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on MacOS X.  */
+/* This function is defined as a macro on Mac OS X.  */
 #  if defined __cplusplus && defined GNULIB_NAMESPACE
 #   undef sigdelset
 #  endif
@@ -248,7 +248,7 @@ _GL_CXXALIASWARN (sigdelset);
 
 /* Fill a signal set with all possible signals.  */
 # if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on MacOS X.  */
+/* This function is defined as a macro on Mac OS X.  */
 #  if defined __cplusplus && defined GNULIB_NAMESPACE
 #   undef sigfillset
 #  endif
index 7629ff5..7a434f8 100644 (file)
@@ -1,5 +1,5 @@
 /* signbit() macro: Determine the sign bit of a floating-point number.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f99f992..f133be5 100644 (file)
@@ -1,5 +1,5 @@
 /* signbit() macro: Determine the sign bit of a floating-point number.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 35afcf1..9e1e900 100644 (file)
@@ -1,5 +1,5 @@
 /* signbit() macro: Determine the sign bit of a floating-point number.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9642441..5f33124 100644 (file)
@@ -1,5 +1,5 @@
 /* size_max.h -- declare SIZE_MAX through system headers
-   Copyright (C) 2005-2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
index 9a4b940..4c97d7d 100644 (file)
@@ -1,5 +1,5 @@
 /* Pausing execution of the current thread.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
index 3908442..9c4ab3f 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 2004, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson and Paul Eggert.
 
    This program is free software; you can redistribute it and/or modify
index c668df0..dcbd07a 100644 (file)
@@ -1,6 +1,6 @@
 /* socket.c --- wrappers for Windows socket function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 3daec45..ae96148 100644 (file)
@@ -1,6 +1,6 @@
 /* sockets.c --- wrappers for Windows socket functions
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2efa413..1570ad8 100644 (file)
@@ -1,6 +1,6 @@
 /* sockets.h - wrappers for Windows socket functions
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8fba694..c3a6732 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C11 <stdalign.h>.
 
-   Copyright 2011-2012 Free Software Foundation, Inc.
+   Copyright 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 53104a6..7484842 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <stdarg.h>.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ed1f9aa..7c15772 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2003, 2006-2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2003, 2006-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
 
    This program is free software; you can redistribute it and/or modify
 # undef true
 #endif
 
-/* For the sake of symbolic names in gdb, we define true and false as
-   enum constants, not only as macros.
-   It is tempting to write
-      typedef enum { false = 0, true = 1 } _Bool;
-   so that gdb prints values of type 'bool' symbolically. But if we do
-   this, values of type '_Bool' may promote to 'int' or 'unsigned int'
-   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
-   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
-   enum; this ensures that '_Bool' promotes to 'int'.  */
-#if defined __cplusplus || (defined __BEOS__ && !defined __HAIKU__)
+#ifdef __cplusplus
+# define _Bool bool
+# define bool bool
+#else
+# if defined __BEOS__ && !defined __HAIKU__
   /* A compiler known to have 'bool'.  */
   /* If the compiler already has both 'bool' and '_Bool', we can assume they
      are the same types.  */
-# if !@HAVE__BOOL@
+#  if !@HAVE__BOOL@
 typedef bool _Bool;
-# endif
-#else
-# if !defined __GNUC__
+#  endif
+# else
+#  if !defined __GNUC__
    /* If @HAVE__BOOL@:
         Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
         the built-in _Bool type is used.  See
@@ -103,19 +98,35 @@ typedef bool _Bool;
           "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
         The only benefit of the enum, debuggability, is not important
         with these compilers.  So use 'signed char' and no enum.  */
-#  define _Bool signed char
-# else
+#   define _Bool signed char
+#  else
    /* With this compiler, trust the _Bool type if the compiler has it.  */
-#  if !@HAVE__BOOL@
+#   if !@HAVE__BOOL@
+   /* For the sake of symbolic names in gdb, define true and false as
+      enum constants, not only as macros.
+      It is tempting to write
+         typedef enum { false = 0, true = 1 } _Bool;
+      so that gdb prints values of type 'bool' symbolically.  But then
+      values of type '_Bool' might promote to 'int' or 'unsigned int'
+      (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+      (see ISO C 99 6.3.1.1.(2)).  So add a negative value to the
+      enum; this ensures that '_Bool' promotes to 'int'.  */
 typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+#   endif
 #  endif
 # endif
+# define bool _Bool
 #endif
-#define bool _Bool
 
 /* The other macros must be usable in preprocessor directives.  */
-#define false 0
-#define true 1
+#ifdef __cplusplus
+# define false false
+# define true true
+#else
+# define false 0
+# define true 1
+#endif
+
 #define __bool_true_false_are_defined 1
 
 #endif /* _GL_STDBOOL_H */
index 17fcaea..40f0536 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
 
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 59c00d5..2db8b2e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
    This file is part of gnulib.
 
@@ -39,7 +39,7 @@
    Ideally we should test __BIONIC__ here, but it is only defined after
    <sys/cdefs.h> has been included; hence test __ANDROID__ instead.  */
 #if defined __ANDROID__ \
-    && defined _SYS_TYPES_H_ && !defined _SSIZE_T_DEFINED_
+    && defined _SYS_TYPES_H_ && !defined __need_size_t
 # @INCLUDE_NEXT@ @NEXT_STDINT_H@
 #else
 
@@ -83,7 +83,7 @@
 /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
    IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
    AIX 5.2 <sys/types.h> isn't needed and causes troubles.
-   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+   Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
    relies on the system <stdint.h> definitions, so include
    <sys/types.h> after @NEXT_STDINT_H@.  */
 #if @HAVE_SYS_TYPES_H@ && ! defined _AIX
index 4935795..e00600a 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation details of FILE streams.
-   Copyright (C) 2007-2008, 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2008, 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 
 #include <errno.h>                             /* For detecting Plan9.  */
 
-#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
 
 # if defined __DragonFly__          /* DragonFly */
   /* See <http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/priv_stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>.  */
@@ -66,7 +66,7 @@
       /* More fields, not relevant here.  */
     };
 #  define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub
-# else                                         /* FreeBSD, NetBSD <= 1.5Z, DragonFly, MacOS X, Cygwin */
+# else                                         /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin */
 #  define fp_ub fp_->_ub
 # endif
 
index b1b543d..06cbad0 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <stdio.h>.
 
-   Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -575,21 +575,27 @@ _GL_CXXALIAS_RPL (fwrite, size_t,
 _GL_CXXALIAS_SYS (fwrite, size_t,
                   (const void *ptr, size_t s, size_t n, FILE *stream));
 
-/* Work around glibc bug 11959
+/* Work around bug 11959 when fortifying glibc 2.4 through 2.15
    <http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>,
    which sometimes causes an unwanted diagnostic for fwrite calls.
-   This affects only function declaration attributes, so it's not
-   needed for C++.  */
-#  if !defined __cplusplus && 0 < __USE_FORTIFY_LEVEL
-static inline size_t _GL_ARG_NONNULL ((1, 4))
-rpl_fwrite (const void *ptr, size_t s, size_t n, FILE *stream)
-{
-  size_t r = fwrite (ptr, s, n, stream);
-  (void) r;
-  return r;
-}
+   This affects only function declaration attributes under certain
+   versions of gcc and clang, and is not needed for C++.  */
+#  if (0 < __USE_FORTIFY_LEVEL                                          \
+       && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \
+       && 3 < __GNUC__ + (4 <= __GNUC_MINOR__)                          \
+       && !defined __cplusplus)
 #   undef fwrite
+#   undef fwrite_unlocked
+extern size_t __REDIRECT (rpl_fwrite,
+                          (const void *__restrict, size_t, size_t,
+                           FILE *__restrict),
+                          fwrite);
+extern size_t __REDIRECT (rpl_fwrite_unlocked,
+                          (const void *__restrict, size_t, size_t,
+                           FILE *__restrict),
+                          fwrite_unlocked);
 #   define fwrite rpl_fwrite
+#   define fwrite_unlocked rpl_fwrite_unlocked
 #  endif
 # endif
 _GL_CXXALIASWARN (fwrite);
@@ -1333,7 +1339,6 @@ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - "
                       "POSIX compliance");
 #endif
 
-
 #endif /* _@GUARD_PREFIX@_STDIO_H */
 #endif /* _@GUARD_PREFIX@_STDIO_H */
 #endif
index b546133..c955248 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <stdlib.h>.
 
-   Copyright (C) 1995, 2001-2004, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2004, 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,8 +20,9 @@
 #endif
 @PRAGMA_COLUMNS@
 
-#if defined __need_malloc_and_calloc
-/* Special invocation convention inside glibc header files.  */
+#if defined __need_system_stdlib_h || defined __need_malloc_and_calloc
+/* Special invocation conventions inside some gnulib header files,
+   and inside some glibc header files, respectively.  */
 
 #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
 
@@ -87,8 +88,8 @@ struct random_data
 #endif
 
 #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
-/* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
-/* On MacOS X 10.5, only <unistd.h> declares mkstemps.  */
+/* On Mac OS X 10.3, only <unistd.h> declares mkstemp.  */
+/* On Mac OS X 10.5, only <unistd.h> declares mkstemps.  */
 /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt.  */
 /* But avoid namespace pollution on glibc systems and native Windows.  */
 # include <unistd.h>
@@ -457,10 +458,19 @@ _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - "
 #if @GNULIB_PTSNAME@
 /* Return the pathname of the pseudo-terminal slave associated with
    the master FD is open on, or NULL on errors.  */
-# if !@HAVE_PTSNAME@
+# if @REPLACE_PTSNAME@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ptsname
+#   define ptsname rpl_ptsname
+#  endif
+_GL_FUNCDECL_RPL (ptsname, char *, (int fd));
+_GL_CXXALIAS_RPL (ptsname, char *, (int fd));
+# else
+#  if !@HAVE_PTSNAME@
 _GL_FUNCDECL_SYS (ptsname, char *, (int fd));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
+# endif
 _GL_CXXALIASWARN (ptsname);
 #elif defined GNULIB_POSIXCHECK
 # undef ptsname
@@ -757,6 +767,22 @@ _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
 # endif
 #endif
 
+#if @GNULIB_SECURE_GETENV@
+/* Look up NAME in the environment, returning 0 in insecure situations.  */
+# if !@HAVE_SECURE_GETENV@
+_GL_FUNCDECL_SYS (secure_getenv, char *,
+                  (char const *name) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name));
+_GL_CXXALIASWARN (secure_getenv);
+#elif defined GNULIB_POSIXCHECK
+# undef secure_getenv
+# if HAVE_RAW_DECL_SECURE_GETENV
+_GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - "
+                 "use gnulib module secure_getenv for portability");
+# endif
+#endif
+
 #if @GNULIB_SETENV@
 /* Set NAME to VALUE in the environment.
    If REPLACE is nonzero, overwrite an existing value.  */
index af8f77b..707145d 100644 (file)
@@ -1,5 +1,5 @@
 /* Byte-wise substring search, using the Two-Way algorithm.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Eric Blake <ebb9@byu.net>, 2008.
 
index 77ca288..0f0a742 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1be4249..f6b0722 100644 (file)
@@ -1,5 +1,5 @@
 /* Searching in a string.
-   Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a3f8c86..5826ab0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2012 Free Software
+/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This file is part of the GNU C Library.
index 9f55cfa..d0ed2fb 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror-override.c --- POSIX compatible system error routine
 
-   Copyright (C) 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -291,6 +291,11 @@ strerror_override (int errnum)
       return "State not recoverable";
 #endif
 
+#if GNULIB_defined_EILSEQ
+    case EILSEQ:
+      return "Invalid or incomplete multibyte or wide character";
+#endif
+
     default:
       return NULL;
     }
index fe1fb2c..3b8f24b 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror-override.h --- POSIX compatible system error routine
 
-   Copyright (C) 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -46,7 +46,8 @@
      || GNULIB_defined_EDQUOT \
      || GNULIB_defined_ECANCELED \
      || GNULIB_defined_EOWNERDEAD \
-     || GNULIB_defined_ENOTRECOVERABLE
+     || GNULIB_defined_ENOTRECOVERABLE \
+     || GNULIB_defined_EILSEQ
 extern const char *strerror_override (int errnum);
 # else
 #  define strerror_override(ignored) NULL
index 587bd21..80a2f2e 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror.c --- POSIX compatible system error routine
 
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f8d7520..d7a6c9c 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <string.h>.
 
-   Copyright (C) 1995-1996, 2001-2012 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 2001-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7ed88e9..4469f86 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute <strings.h>.
 
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ef458c6..0e452a9 100644 (file)
@@ -1,6 +1,6 @@
 /* stripslash.c -- remove redundant trailing slashes from a file name
 
-   Copyright (C) 1990, 2001, 2003-2006, 2009-2012 Free Software Foundation,
+   Copyright (C) 1990, 2001, 2003-2006, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index bf413b4..35840bc 100644 (file)
@@ -1,5 +1,5 @@
 /* strncasecmp.c -- case insensitive string comparator
-   Copyright (C) 1998-1999, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 4053871..e60268b 100644 (file)
@@ -1,6 +1,6 @@
 /* A replacement function, for systems that lack strndup.
 
-   Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2012 Free Software
+   Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
index d36180d..57fdfe7 100644 (file)
@@ -1,5 +1,5 @@
 /* Find the length of STRING, but scan at most MAXLEN characters.
-   Copyright (C) 2005-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
index e1499bc..011cb28 100644 (file)
@@ -1,5 +1,5 @@
 /* Reentrant string tokenizer.  Generic version.
-   Copyright (C) 1991, 1996-1999, 2001, 2004, 2007, 2009-2012 Free Software
+   Copyright (C) 1991, 1996-1999, 2001, 2004, 2007, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 490773d..db4f1ed 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare strings while treating digits characters numerically.
-   Copyright (C) 1997, 2000, 2002, 2004, 2006, 2009-2012 Free Software
+   Copyright (C) 1997, 2000, 2002, 2004, 2006, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
index 214d75d..2af6bfe 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <sys/select.h>.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 # endif
 @PRAGMA_COLUMNS@
 
-/* On OSF/1, <sys/types.h> and <sys/time.h> include <sys/select.h>.
+/* On OSF/1 and Solaris 2.6, <sys/types.h> and <sys/time.h>
+   both include <sys/select.h>.
+   On Cygwin, <sys/time.h> includes <sys/select.h>.
    Simply delegate to the system's header in this case.  */
-#if @HAVE_SYS_SELECT_H@ && defined __osf__ && (defined _SYS_TYPES_H_ && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H) && defined _OSF_SOURCE
+#if (@HAVE_SYS_SELECT_H@                                                \
+     && ((defined __osf__ && defined _SYS_TYPES_H_                      \
+          && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H         \
+          && defined _OSF_SOURCE)                                       \
+         || (defined __sun && defined _SYS_TYPES_H                      \
+             && (! (defined _XOPEN_SOURCE || defined _POSIX_C_SOURCE)   \
+                 || defined __EXTENSIONS__))))
 
 # define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H
 # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
 
-#elif @HAVE_SYS_SELECT_H@ && defined __osf__ && (defined _SYS_TIME_H_ && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H) && defined _OSF_SOURCE
+#elif (@HAVE_SYS_SELECT_H@                                              \
+       && (defined _CYGWIN_SYS_TIME_H                                   \
+           || (defined __osf__ && defined _SYS_TIME_H_                  \
+               && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H    \
+               && defined _OSF_SOURCE)                                  \
+           || (defined __sun && defined _SYS_TIME_H                     \
+               && (! (defined _XOPEN_SOURCE || defined _POSIX_C_SOURCE) \
+                   || defined __EXTENSIONS__))))
 
 # define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H
 # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
@@ -63,7 +78,7 @@
 
 /* On OSF/1 4.0, <sys/select.h> provides only a forward declaration
    of 'struct timeval', and no definition of this type.
-   Also, MacOS X, AIX, HP-UX, IRIX, Solaris, Interix declare select()
+   Also, Mac OS X, AIX, HP-UX, IRIX, Solaris, Interix declare select()
    in <sys/time.h>.
    But avoid namespace pollution on glibc systems.  */
 # ifndef __GLIBC__
 
 /* Re-define FD_ISSET to avoid a WSA call while we are not using
    network sockets.  */
-static inline int
+static int
 rpl_fd_isset (SOCKET fd, fd_set * set)
 {
   u_int i;
diff --git a/gl/sys_socket.c b/gl/sys_socket.c
new file mode 100644 (file)
index 0000000..3f017f8
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define _GL_SYS_SOCKET_INLINE _GL_EXTERN_INLINE
+#include "sys/socket.h"
index f2eda0c..b4cf0c3 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a sys/socket header file for systems lacking it (read: MinGW)
    and for systems where it is incomplete.
-   Copyright (C) 2005-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
 #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H
 #define _@GUARD_PREFIX@_SYS_SOCKET_H
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_SYS_SOCKET_INLINE
+# define _GL_SYS_SOCKET_INLINE _GL_INLINE
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
@@ -201,7 +206,7 @@ struct msghdr {
 
 /* Re-define FD_ISSET to avoid a WSA call while we are not using
    network sockets.  */
-static inline int
+_GL_SYS_SOCKET_INLINE int
 rpl_fd_isset (SOCKET fd, fd_set * set)
 {
   u_int i;
@@ -677,6 +682,8 @@ _GL_WARN_ON_USE (accept4, "accept4 is unportable - "
 # endif
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */
 #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */
 #endif
index 2efc1e9..acc3694 100644 (file)
@@ -1,5 +1,5 @@
 /* Provide a more complete sys/stat header file.
-   Copyright (C) 2005-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 # endif
 #endif
 
+#ifndef S_ISMPX /* AIX */
+# define S_ISMPX(m) 0
+#endif
+
 #ifndef S_ISNAM /* Xenix */
 # ifdef S_IFNAM
 #  define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM)
@@ -497,7 +501,7 @@ _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode));
 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
 #  if !GNULIB_defined_rpl_mkdir
-static inline int
+static int
 rpl_mkdir (char const *name, mode_t mode)
 {
   return _mkdir (name);
index d915cee..3dbf632 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/time.h.
 
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 /* Written by Paul Eggert.  */
 
+#ifndef _@GUARD_PREFIX@_SYS_TIME_H
+
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
 @PRAGMA_COLUMNS@
 
-#if defined _@GUARD_PREFIX@_SYS_TIME_H
-
-/* Simply delegate to the system's header, without adding anything.  */
-# if @HAVE_SYS_TIME_H@
-#  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
-# endif
-
+/* On Cygwin, <sys/time.h> includes itself recursively via <sys/select.h>.
+   Simply delegate to the system's header in this case; it is a no-op.
+   Without this extra ifdef, the C++ gettimeofday declaration below
+   would be a forward declaration in gnulib's nested <sys/time.h>.  */
+#ifdef _CYGWIN_SYS_TIME_H
+# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
 #else
 
-# define _@GUARD_PREFIX@_SYS_TIME_H
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_SYS_TIME_H@
+# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
+#endif
+
+#ifndef _@GUARD_PREFIX@_SYS_TIME_H
+#define _@GUARD_PREFIX@_SYS_TIME_H
 
-# if @HAVE_SYS_TIME_H@
-#  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
-# else
-#  include <time.h>
-# endif
+#if ! @HAVE_SYS_TIME_H@
+# include <time.h>
+#endif
 
 /* On native Windows with MSVC, get the 'struct timeval' type.
    Also, on native Windows with a 64-bit time_t, where we are overriding the
    'struct timeval' type, get all declarations of system functions whose
    signature contains 'struct timeval'.  */
-# if (defined _MSC_VER || @REPLACE_STRUCT_TIMEVAL@) && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H
-#  define _GL_INCLUDING_WINSOCK2_H
-#  include <winsock2.h>
-#  undef _GL_INCLUDING_WINSOCK2_H
-# endif
+#if (defined _MSC_VER || @REPLACE_STRUCT_TIMEVAL@) && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H
+# define _GL_INCLUDING_WINSOCK2_H
+# include <winsock2.h>
+# undef _GL_INCLUDING_WINSOCK2_H
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
-# ifdef __cplusplus
+#ifdef __cplusplus
 extern "C" {
-# endif
+#endif
 
-# if !@HAVE_STRUCT_TIMEVAL@ || @REPLACE_STRUCT_TIMEVAL@
+#if !@HAVE_STRUCT_TIMEVAL@ || @REPLACE_STRUCT_TIMEVAL@
 
-#  if @REPLACE_STRUCT_TIMEVAL@
-#   define timeval rpl_timeval
-#  endif
+# if @REPLACE_STRUCT_TIMEVAL@
+#  define timeval rpl_timeval
+# endif
 
-#  if !GNULIB_defined_struct_timeval
+# if !GNULIB_defined_struct_timeval
 struct timeval
 {
   time_t tv_sec;
   long int tv_usec;
 };
-#   define GNULIB_defined_struct_timeval 1
-#  endif
-
+#  define GNULIB_defined_struct_timeval 1
 # endif
 
-# ifdef __cplusplus
+#endif
+
+#ifdef __cplusplus
 }
-# endif
+#endif
 
-# if @GNULIB_GETTIMEOFDAY@
-#  if @REPLACE_GETTIMEOFDAY@
-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#    undef gettimeofday
-#    define gettimeofday rpl_gettimeofday
-#   endif
+#if @GNULIB_GETTIMEOFDAY@
+# if @REPLACE_GETTIMEOFDAY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef gettimeofday
+#   define gettimeofday rpl_gettimeofday
+#  endif
 _GL_FUNCDECL_RPL (gettimeofday, int,
                   (struct timeval *restrict, void *restrict)
                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (gettimeofday, int,
                   (struct timeval *restrict, void *restrict));
-#  else
-#   if !@HAVE_GETTIMEOFDAY@
+# else
+#  if !@HAVE_GETTIMEOFDAY@
 _GL_FUNCDECL_SYS (gettimeofday, int,
                   (struct timeval *restrict, void *restrict)
                   _GL_ARG_NONNULL ((1)));
-#   endif
+#  endif
 /* Need to cast, because on glibc systems, by default, the second argument is
                                                   struct timezone *.  */
 _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
                        (struct timeval *restrict, void *restrict));
-#  endif
+# endif
 _GL_CXXALIASWARN (gettimeofday);
-# elif defined GNULIB_POSIXCHECK
-#  undef gettimeofday
-#  if HAVE_RAW_DECL_GETTIMEOFDAY
+#elif defined GNULIB_POSIXCHECK
+# undef gettimeofday
+# if HAVE_RAW_DECL_GETTIMEOFDAY
 _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
                  "use gnulib module gettimeofday for portability");
-#  endif
 # endif
+#endif
 
 /* Hide some function declarations from <winsock2.h>.  */
 
-# if defined _MSC_VER && @HAVE_WINSOCK2_H@
-#  if !defined _@GUARD_PREFIX@_UNISTD_H
-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#    undef close
-#    define close close_used_without_including_unistd_h
-#   else
+#if defined _MSC_VER && @HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_UNISTD_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef close
+#   define close close_used_without_including_unistd_h
+#  else
      _GL_WARN_ON_USE (close,
                       "close() used without including <unistd.h>");
-#   endif
-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#    undef gethostname
-#    define gethostname gethostname_used_without_including_unistd_h
-#   else
+#  endif
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef gethostname
+#   define gethostname gethostname_used_without_including_unistd_h
+#  else
      _GL_WARN_ON_USE (gethostname,
                       "gethostname() used without including <unistd.h>");
-#   endif
 #  endif
-#  if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#    undef socket
-#    define socket              socket_used_without_including_sys_socket_h
-#    undef connect
-#    define connect             connect_used_without_including_sys_socket_h
-#    undef accept
-#    define accept              accept_used_without_including_sys_socket_h
-#    undef bind
-#    define bind                bind_used_without_including_sys_socket_h
-#    undef getpeername
-#    define getpeername         getpeername_used_without_including_sys_socket_h
-#    undef getsockname
-#    define getsockname         getsockname_used_without_including_sys_socket_h
-#    undef getsockopt
-#    define getsockopt          getsockopt_used_without_including_sys_socket_h
-#    undef listen
-#    define listen              listen_used_without_including_sys_socket_h
-#    undef recv
-#    define recv                recv_used_without_including_sys_socket_h
-#    undef send
-#    define send                send_used_without_including_sys_socket_h
-#    undef recvfrom
-#    define recvfrom            recvfrom_used_without_including_sys_socket_h
-#    undef sendto
-#    define sendto              sendto_used_without_including_sys_socket_h
-#    undef setsockopt
-#    define setsockopt          setsockopt_used_without_including_sys_socket_h
-#    undef shutdown
-#    define shutdown            shutdown_used_without_including_sys_socket_h
-#   else
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef socket
+#   define socket              socket_used_without_including_sys_socket_h
+#   undef connect
+#   define connect             connect_used_without_including_sys_socket_h
+#   undef accept
+#   define accept              accept_used_without_including_sys_socket_h
+#   undef bind
+#   define bind                bind_used_without_including_sys_socket_h
+#   undef getpeername
+#   define getpeername         getpeername_used_without_including_sys_socket_h
+#   undef getsockname
+#   define getsockname         getsockname_used_without_including_sys_socket_h
+#   undef getsockopt
+#   define getsockopt          getsockopt_used_without_including_sys_socket_h
+#   undef listen
+#   define listen              listen_used_without_including_sys_socket_h
+#   undef recv
+#   define recv                recv_used_without_including_sys_socket_h
+#   undef send
+#   define send                send_used_without_including_sys_socket_h
+#   undef recvfrom
+#   define recvfrom            recvfrom_used_without_including_sys_socket_h
+#   undef sendto
+#   define sendto              sendto_used_without_including_sys_socket_h
+#   undef setsockopt
+#   define setsockopt          setsockopt_used_without_including_sys_socket_h
+#   undef shutdown
+#   define shutdown            shutdown_used_without_including_sys_socket_h
+#  else
      _GL_WARN_ON_USE (socket,
                       "socket() used without including <sys/socket.h>");
      _GL_WARN_ON_USE (connect,
@@ -189,17 +194,19 @@ _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
                       "setsockopt() used without including <sys/socket.h>");
      _GL_WARN_ON_USE (shutdown,
                       "shutdown() used without including <sys/socket.h>");
-#   endif
 #  endif
-#  if !defined _@GUARD_PREFIX@_SYS_SELECT_H
-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#    undef select
-#    define select select_used_without_including_sys_select_h
-#   else
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef select
+#   define select select_used_without_including_sys_select_h
+#  else
      _GL_WARN_ON_USE (select,
                       "select() used without including <sys/select.h>");
-#   endif
 #  endif
 # endif
+#endif
 
 #endif /* _@GUARD_PREFIX@_SYS_TIME_H */
+#endif /* _CYGWIN_SYS_TIME_H */
+#endif /* _@GUARD_PREFIX@_SYS_TIME_H */
index 8139d98..d7da356 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/types.h.
 
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 910bb00..fef19dc 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <sys/uio.h>.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8e8c962..fa8db83 100644 (file)
@@ -1,5 +1,5 @@
 /* exit() exit codes for some BSD system programs.
-   Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f73d26b..ac5f684 100644 (file)
@@ -1,6 +1,6 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 #
 # Generated by gnulib-tool.
 
-AUTOMAKE_OPTIONS = 1.5 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects
 
 SUBDIRS = .
 TESTS =
@@ -103,7 +103,7 @@ EXTRA_DIST += test-base64.c macros.h
 
 ## begin gnulib module binary-io
 
-libtests_a_SOURCES += binary-io.h
+libtests_a_SOURCES += binary-io.h binary-io.c
 
 ## end   gnulib module binary-io
 
@@ -167,15 +167,6 @@ EXTRA_DIST += test-dirent.c
 
 ## end   gnulib module dirent-tests
 
-## begin gnulib module dup2
-
-
-EXTRA_DIST += dup2.c
-
-EXTRA_libtests_a_SOURCES += dup2.c
-
-## end   gnulib module dup2
-
 ## begin gnulib module dup2-tests
 
 TESTS += test-dup2
@@ -432,6 +423,23 @@ EXTRA_DIST += test-getdelim.c signature.h macros.h
 
 ## end   gnulib module getdelim-tests
 
+## begin gnulib module getdtablesize
+
+
+EXTRA_DIST += getdtablesize.c
+
+EXTRA_libtests_a_SOURCES += getdtablesize.c
+
+## end   gnulib module getdtablesize
+
+## begin gnulib module getdtablesize-tests
+
+TESTS += test-getdtablesize
+check_PROGRAMS += test-getdtablesize
+EXTRA_DIST += test-getdtablesize.c signature.h macros.h
+
+## end   gnulib module getdtablesize-tests
+
 ## begin gnulib module getline-tests
 
 TESTS += test-getline
index e3244bd..dc97fdf 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -15,7 +15,7 @@
 
 @SET_MAKE@
 
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -74,45 +91,45 @@ TESTS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
        test-ftello3$(EXEEXT) test-ftello4.sh test-ftruncate.sh \
        test-func$(EXEEXT) test-fwrite$(EXEEXT) \
        test-getaddrinfo$(EXEEXT) test-getcwd-lgpl$(EXEEXT) \
-       test-getdelim$(EXEEXT) test-getline$(EXEEXT) \
-       test-getopt$(EXEEXT) test-getpeername$(EXEEXT) \
-       test-gettimeofday$(EXEEXT) test-ignore-value$(EXEEXT) \
-       test-inet_ntop$(EXEEXT) test-inet_pton$(EXEEXT) \
-       test-intprops$(EXEEXT) test-inttypes$(EXEEXT) \
-       test-ioctl$(EXEEXT) test-isnand-nolibm$(EXEEXT) \
-       test-isnanf-nolibm$(EXEEXT) test-isnanl-nolibm$(EXEEXT) \
-       test-listen$(EXEEXT) test-lstat$(EXEEXT) \
-       test-malloc-gnu$(EXEEXT) test-malloca$(EXEEXT) \
-       test-math$(EXEEXT) test-memchr$(EXEEXT) test-netdb$(EXEEXT) \
-       test-netinet_in$(EXEEXT) test-open$(EXEEXT) \
-       test-pathmax$(EXEEXT) test-perror.sh test-perror2$(EXEEXT) \
-       test-pipe$(EXEEXT) test-printf-frexp$(EXEEXT) \
-       test-printf-frexpl$(EXEEXT) test-rawmemchr$(EXEEXT) \
-       test-read-file$(EXEEXT) test-recv$(EXEEXT) \
-       test-recvfrom$(EXEEXT) test-select$(EXEEXT) test-select-in.sh \
-       test-select-out.sh test-send$(EXEEXT) test-sendto$(EXEEXT) \
-       test-setenv$(EXEEXT) test-setsockopt$(EXEEXT) \
-       test-shutdown$(EXEEXT) test-signal-h$(EXEEXT) \
-       test-signbit$(EXEEXT) test-sleep$(EXEEXT) \
-       test-snprintf$(EXEEXT) test-sockets$(EXEEXT) \
-       test-stat$(EXEEXT) test-stdalign$(EXEEXT) \
-       test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \
-       test-stdint$(EXEEXT) test-stdio$(EXEEXT) test-stdlib$(EXEEXT) \
-       test-strchrnul$(EXEEXT) test-strerror$(EXEEXT) \
-       test-strerror_r$(EXEEXT) test-string$(EXEEXT) \
-       test-strings$(EXEEXT) test-strnlen$(EXEEXT) \
-       test-strverscmp$(EXEEXT) test-symlink$(EXEEXT) \
-       test-sys_ioctl$(EXEEXT) test-sys_select$(EXEEXT) \
-       test-sys_socket$(EXEEXT) test-sys_stat$(EXEEXT) \
-       test-sys_time$(EXEEXT) test-sys_types$(EXEEXT) \
-       test-sys_uio$(EXEEXT) test-sysexits$(EXEEXT) test-init.sh \
-       test-time$(EXEEXT) test-u64$(EXEEXT) test-unistd$(EXEEXT) \
-       test-unsetenv$(EXEEXT) test-vasnprintf$(EXEEXT) \
-       test-vasprintf$(EXEEXT) test-vc-list-files-git.sh \
-       test-vc-list-files-cvs.sh test-verify$(EXEEXT) test-verify.sh \
-       test-version-etc.sh test-vfprintf-posix.sh \
-       test-vprintf-posix.sh test-vsnprintf$(EXEEXT) \
-       test-wchar$(EXEEXT)
+       test-getdelim$(EXEEXT) test-getdtablesize$(EXEEXT) \
+       test-getline$(EXEEXT) test-getopt$(EXEEXT) \
+       test-getpeername$(EXEEXT) test-gettimeofday$(EXEEXT) \
+       test-ignore-value$(EXEEXT) test-inet_ntop$(EXEEXT) \
+       test-inet_pton$(EXEEXT) test-intprops$(EXEEXT) \
+       test-inttypes$(EXEEXT) test-ioctl$(EXEEXT) \
+       test-isnand-nolibm$(EXEEXT) test-isnanf-nolibm$(EXEEXT) \
+       test-isnanl-nolibm$(EXEEXT) test-listen$(EXEEXT) \
+       test-lstat$(EXEEXT) test-malloc-gnu$(EXEEXT) \
+       test-malloca$(EXEEXT) test-math$(EXEEXT) test-memchr$(EXEEXT) \
+       test-netdb$(EXEEXT) test-netinet_in$(EXEEXT) \
+       test-open$(EXEEXT) test-pathmax$(EXEEXT) test-perror.sh \
+       test-perror2$(EXEEXT) test-pipe$(EXEEXT) \
+       test-printf-frexp$(EXEEXT) test-printf-frexpl$(EXEEXT) \
+       test-rawmemchr$(EXEEXT) test-read-file$(EXEEXT) \
+       test-recv$(EXEEXT) test-recvfrom$(EXEEXT) test-select$(EXEEXT) \
+       test-select-in.sh test-select-out.sh test-send$(EXEEXT) \
+       test-sendto$(EXEEXT) test-setenv$(EXEEXT) \
+       test-setsockopt$(EXEEXT) test-shutdown$(EXEEXT) \
+       test-signal-h$(EXEEXT) test-signbit$(EXEEXT) \
+       test-sleep$(EXEEXT) test-snprintf$(EXEEXT) \
+       test-sockets$(EXEEXT) test-stat$(EXEEXT) \
+       test-stdalign$(EXEEXT) test-stdbool$(EXEEXT) \
+       test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \
+       test-stdlib$(EXEEXT) test-strchrnul$(EXEEXT) \
+       test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \
+       test-string$(EXEEXT) test-strings$(EXEEXT) \
+       test-strnlen$(EXEEXT) test-strverscmp$(EXEEXT) \
+       test-symlink$(EXEEXT) test-sys_ioctl$(EXEEXT) \
+       test-sys_select$(EXEEXT) test-sys_socket$(EXEEXT) \
+       test-sys_stat$(EXEEXT) test-sys_time$(EXEEXT) \
+       test-sys_types$(EXEEXT) test-sys_uio$(EXEEXT) \
+       test-sysexits$(EXEEXT) test-init.sh test-time$(EXEEXT) \
+       test-u64$(EXEEXT) test-unistd$(EXEEXT) test-unsetenv$(EXEEXT) \
+       test-vasnprintf$(EXEEXT) test-vasprintf$(EXEEXT) \
+       test-vc-list-files-git.sh test-vc-list-files-cvs.sh \
+       test-verify$(EXEEXT) test-verify.sh test-version-etc.sh \
+       test-vfprintf-posix.sh test-vprintf-posix.sh \
+       test-vsnprintf$(EXEEXT) test-wchar$(EXEEXT)
 XFAIL_TESTS =
 noinst_PROGRAMS =
 check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
@@ -132,18 +149,18 @@ check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
        test-ftello4$(EXEEXT) test-ftruncate$(EXEEXT) \
        test-func$(EXEEXT) test-fwrite$(EXEEXT) \
        test-getaddrinfo$(EXEEXT) test-getcwd-lgpl$(EXEEXT) \
-       test-getdelim$(EXEEXT) test-getline$(EXEEXT) \
-       test-getopt$(EXEEXT) test-getpeername$(EXEEXT) \
-       test-gettimeofday$(EXEEXT) test-ignore-value$(EXEEXT) \
-       test-inet_ntop$(EXEEXT) test-inet_pton$(EXEEXT) \
-       test-intprops$(EXEEXT) test-inttypes$(EXEEXT) \
-       test-ioctl$(EXEEXT) test-isnand-nolibm$(EXEEXT) \
-       test-isnanf-nolibm$(EXEEXT) test-isnanl-nolibm$(EXEEXT) \
-       test-listen$(EXEEXT) test-lstat$(EXEEXT) \
-       test-malloc-gnu$(EXEEXT) test-malloca$(EXEEXT) \
-       test-math$(EXEEXT) test-memchr$(EXEEXT) test-netdb$(EXEEXT) \
-       test-netinet_in$(EXEEXT) test-open$(EXEEXT) \
-       test-pathmax$(EXEEXT) test-perror$(EXEEXT) \
+       test-getdelim$(EXEEXT) test-getdtablesize$(EXEEXT) \
+       test-getline$(EXEEXT) test-getopt$(EXEEXT) \
+       test-getpeername$(EXEEXT) test-gettimeofday$(EXEEXT) \
+       test-ignore-value$(EXEEXT) test-inet_ntop$(EXEEXT) \
+       test-inet_pton$(EXEEXT) test-intprops$(EXEEXT) \
+       test-inttypes$(EXEEXT) test-ioctl$(EXEEXT) \
+       test-isnand-nolibm$(EXEEXT) test-isnanf-nolibm$(EXEEXT) \
+       test-isnanl-nolibm$(EXEEXT) test-listen$(EXEEXT) \
+       test-lstat$(EXEEXT) test-malloc-gnu$(EXEEXT) \
+       test-malloca$(EXEEXT) test-math$(EXEEXT) test-memchr$(EXEEXT) \
+       test-netdb$(EXEEXT) test-netinet_in$(EXEEXT) \
+       test-open$(EXEEXT) test-pathmax$(EXEEXT) test-perror$(EXEEXT) \
        test-perror2$(EXEEXT) test-pipe$(EXEEXT) \
        test-printf-frexp$(EXEEXT) test-printf-frexpl$(EXEEXT) \
        test-rawmemchr$(EXEEXT) test-read-file$(EXEEXT) \
@@ -189,14 +206,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -313,7 +333,8 @@ am__v_at_0 = @
 libtests_a_AR = $(AR) $(ARFLAGS)
 am__DEPENDENCIES_1 =
 am__dirstamp = $(am__leading_dot)dirstamp
-am_libtests_a_OBJECTS = glthread/lock.$(OBJEXT) malloca.$(OBJEXT)
+am_libtests_a_OBJECTS = binary-io.$(OBJEXT) glthread/lock.$(OBJEXT) \
+       malloca.$(OBJEXT)
 libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
 PROGRAMS = $(noinst_PROGRAMS)
 test_accept_SOURCES = test-accept.c
@@ -512,6 +533,11 @@ test_getdelim_OBJECTS = test-getdelim.$(OBJEXT)
 test_getdelim_LDADD = $(LDADD)
 test_getdelim_DEPENDENCIES = libtests.a ../../gl/libgnu.la libtests.a \
        $(am__DEPENDENCIES_1)
+test_getdtablesize_SOURCES = test-getdtablesize.c
+test_getdtablesize_OBJECTS = test-getdtablesize.$(OBJEXT)
+test_getdtablesize_LDADD = $(LDADD)
+test_getdtablesize_DEPENDENCIES = libtests.a ../../gl/libgnu.la \
+       libtests.a $(am__DEPENDENCIES_1)
 test_getline_SOURCES = test-getline.c
 test_getline_OBJECTS = test-getline.$(OBJEXT)
 test_getline_LDADD = $(LDADD)
@@ -913,17 +939,18 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        test-ftell.c test-ftell3.c test-ftello.c test-ftello3.c \
        test-ftello4.c test-ftruncate.c test-func.c test-fwrite.c \
        test-getaddrinfo.c test-getcwd-lgpl.c test-getdelim.c \
-       test-getline.c test-getopt.c test-getpeername.c \
-       test-gettimeofday.c test-ignore-value.c test-inet_ntop.c \
-       test-inet_pton.c test-intprops.c test-inttypes.c test-ioctl.c \
-       test-isnand-nolibm.c test-isnanf-nolibm.c test-isnanl-nolibm.c \
-       test-listen.c test-lstat.c test-malloc-gnu.c test-malloca.c \
-       test-math.c test-memchr.c test-netdb.c test-netinet_in.c \
-       test-open.c test-pathmax.c test-perror.c test-perror2.c \
-       test-pipe.c test-printf-frexp.c test-printf-frexpl.c \
-       test-rawmemchr.c test-read-file.c test-recv.c test-recvfrom.c \
-       test-select.c test-select-fd.c test-select-stdin.c test-send.c \
-       test-sendto.c test-setenv.c test-setsockopt.c test-shutdown.c \
+       test-getdtablesize.c test-getline.c test-getopt.c \
+       test-getpeername.c test-gettimeofday.c test-ignore-value.c \
+       test-inet_ntop.c test-inet_pton.c test-intprops.c \
+       test-inttypes.c test-ioctl.c test-isnand-nolibm.c \
+       test-isnanf-nolibm.c test-isnanl-nolibm.c test-listen.c \
+       test-lstat.c test-malloc-gnu.c test-malloca.c test-math.c \
+       test-memchr.c test-netdb.c test-netinet_in.c test-open.c \
+       test-pathmax.c test-perror.c test-perror2.c test-pipe.c \
+       test-printf-frexp.c test-printf-frexpl.c test-rawmemchr.c \
+       test-read-file.c test-recv.c test-recvfrom.c test-select.c \
+       test-select-fd.c test-select-stdin.c test-send.c test-sendto.c \
+       test-setenv.c test-setsockopt.c test-shutdown.c \
        test-signal-h.c test-signbit.c test-sleep.c test-snprintf.c \
        test-sockets.c test-stat.c test-stdalign.c test-stdbool.c \
        test-stddef.c test-stdint.c test-stdio.c test-stdlib.c \
@@ -948,17 +975,18 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        test-ftell.c test-ftell3.c test-ftello.c test-ftello3.c \
        test-ftello4.c test-ftruncate.c test-func.c test-fwrite.c \
        test-getaddrinfo.c test-getcwd-lgpl.c test-getdelim.c \
-       test-getline.c test-getopt.c test-getpeername.c \
-       test-gettimeofday.c test-ignore-value.c test-inet_ntop.c \
-       test-inet_pton.c test-intprops.c test-inttypes.c test-ioctl.c \
-       test-isnand-nolibm.c test-isnanf-nolibm.c test-isnanl-nolibm.c \
-       test-listen.c test-lstat.c test-malloc-gnu.c test-malloca.c \
-       test-math.c test-memchr.c test-netdb.c test-netinet_in.c \
-       test-open.c test-pathmax.c test-perror.c test-perror2.c \
-       test-pipe.c test-printf-frexp.c test-printf-frexpl.c \
-       test-rawmemchr.c test-read-file.c test-recv.c test-recvfrom.c \
-       test-select.c test-select-fd.c test-select-stdin.c test-send.c \
-       test-sendto.c test-setenv.c test-setsockopt.c test-shutdown.c \
+       test-getdtablesize.c test-getline.c test-getopt.c \
+       test-getpeername.c test-gettimeofday.c test-ignore-value.c \
+       test-inet_ntop.c test-inet_pton.c test-intprops.c \
+       test-inttypes.c test-ioctl.c test-isnand-nolibm.c \
+       test-isnanf-nolibm.c test-isnanl-nolibm.c test-listen.c \
+       test-lstat.c test-malloc-gnu.c test-malloca.c test-math.c \
+       test-memchr.c test-netdb.c test-netinet_in.c test-open.c \
+       test-pathmax.c test-perror.c test-perror2.c test-pipe.c \
+       test-printf-frexp.c test-printf-frexpl.c test-rawmemchr.c \
+       test-read-file.c test-recv.c test-recvfrom.c test-select.c \
+       test-select-fd.c test-select-stdin.c test-send.c test-sendto.c \
+       test-setenv.c test-setsockopt.c test-shutdown.c \
        test-signal-h.c test-signbit.c test-sleep.c test-snprintf.c \
        test-sockets.c test-stat.c test-stdalign.c test-stdbool.c \
        test-stddef.c test-stdint.c test-stdio.c test-stdlib.c \
@@ -978,6 +1006,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
@@ -1332,6 +1365,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -1617,7 +1651,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -1691,6 +1724,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1826,8 +1860,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1846,7 +1880,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -2077,6 +2110,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -2244,7 +2278,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = 1.5 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects
 SUBDIRS = .
 TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \
        abs_aux_dir='$(abs_aux_dir)' MAKE='$(MAKE)'
@@ -2256,13 +2290,13 @@ EXTRA_DIST = test-accept.c signature.h macros.h test-alloca-opt.c \
        macros.h test-binary-io.sh test-binary-io.c macros.h \
        test-bind.c signature.h macros.h test-byteswap.c macros.h \
        test-c-ctype.c macros.h test-close.c signature.h macros.h \
-       test-connect.c signature.h macros.h test-dirent.c dup2.c \
-       test-dup2.c signature.h macros.h test-environ.c test-errno.c \
-       fcntl.in.h test-fcntl-h.c fdopen.c test-fdopen.c signature.h \
-       macros.h test-fgetc.c signature.h macros.h test-float.c \
-       macros.h test-fputc.c signature.h macros.h test-fread.c \
-       signature.h macros.h test-frexp.c test-frexp.h minus-zero.h \
-       infinity.h nan.h signature.h macros.h randomd.c test-frexpl.c \
+       test-connect.c signature.h macros.h test-dirent.c test-dup2.c \
+       signature.h macros.h test-environ.c test-errno.c fcntl.in.h \
+       test-fcntl-h.c fdopen.c test-fdopen.c signature.h macros.h \
+       test-fgetc.c signature.h macros.h test-float.c macros.h \
+       test-fputc.c signature.h macros.h test-fread.c signature.h \
+       macros.h test-frexp.c test-frexp.h minus-zero.h infinity.h \
+       nan.h signature.h macros.h randomd.c test-frexpl.c \
        test-frexp.h minus-zero.h infinity.h nan.h signature.h \
        macros.h randoml.c test-fseek.c test-fseek.sh test-fseek2.sh \
        signature.h macros.h test-fseeko.c test-fseeko.sh \
@@ -2276,6 +2310,7 @@ EXTRA_DIST = test-accept.c signature.h macros.h test-alloca-opt.c \
        macros.h test-func.c macros.h test-fwrite.c signature.h \
        macros.h signature.h test-getaddrinfo.c getcwd-lgpl.c \
        test-getcwd-lgpl.c signature.h macros.h test-getdelim.c \
+       signature.h macros.h getdtablesize.c test-getdtablesize.c \
        signature.h macros.h test-getline.c signature.h macros.h \
        macros.h signature.h test-getopt.c test-getopt.h \
        test-getopt_long.h getpagesize.c test-getpeername.c \
@@ -2363,13 +2398,14 @@ AM_CPPFLAGS = \
   -I../../gl -I$(srcdir)/../../gl
 
 LDADD = libtests.a ../../gl/libgnu.la libtests.a $(LIBTESTS_LIBDEPS)
-libtests_a_SOURCES = binary-io.h glthread/lock.h glthread/lock.c \
-       malloca.c
+libtests_a_SOURCES = binary-io.h binary-io.c glthread/lock.h \
+       glthread/lock.c malloca.c
 libtests_a_LIBADD = $(gltests_LIBOBJS)
 libtests_a_DEPENDENCIES = $(gltests_LIBOBJS)
-EXTRA_libtests_a_SOURCES = dup2.c fdopen.c ftruncate.c getcwd-lgpl.c \
-       getpagesize.c ioctl.c lstat.c open.c perror.c pipe.c putenv.c \
-       setenv.c stat.c strerror_r.c symlink.c unsetenv.c
+EXTRA_libtests_a_SOURCES = fdopen.c ftruncate.c getcwd-lgpl.c \
+       getdtablesize.c getpagesize.c ioctl.c lstat.c open.c perror.c \
+       pipe.c putenv.c setenv.c stat.c strerror_r.c symlink.c \
+       unsetenv.c
 AM_LIBTOOLFLAGS = --preserve-dup-deps
 test_accept_LDADD = $(LDADD) @LIBSOCKET@
 test_argp_LDADD = $(LDADD) @LIBINTL@
@@ -2595,6 +2631,9 @@ test-getcwd-lgpl$(EXEEXT): $(test_getcwd_lgpl_OBJECTS) $(test_getcwd_lgpl_DEPEND
 test-getdelim$(EXEEXT): $(test_getdelim_OBJECTS) $(test_getdelim_DEPENDENCIES) $(EXTRA_test_getdelim_DEPENDENCIES) 
        @rm -f test-getdelim$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_getdelim_OBJECTS) $(test_getdelim_LDADD) $(LIBS)
+test-getdtablesize$(EXEEXT): $(test_getdtablesize_OBJECTS) $(test_getdtablesize_DEPENDENCIES) $(EXTRA_test_getdtablesize_DEPENDENCIES) 
+       @rm -f test-getdtablesize$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_getdtablesize_OBJECTS) $(test_getdtablesize_LDADD) $(LIBS)
 test-getline$(EXEEXT): $(test_getline_OBJECTS) $(test_getline_DEPENDENCIES) $(EXTRA_test_getline_DEPENDENCIES) 
        @rm -f test-getline$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_getline_OBJECTS) $(test_getline_LDADD) $(LIBS)
@@ -2843,10 +2882,11 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binary-io.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopen.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftruncate.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpagesize.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@
@@ -2901,6 +2941,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getaddrinfo.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getcwd-lgpl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getdelim.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getdtablesize.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getline.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getopt.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getpeername.Po@am__quote@
@@ -3274,13 +3315,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
diff --git a/gl/tests/binary-io.c b/gl/tests/binary-io.c
new file mode 100644 (file)
index 0000000..8bbdb44
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define BINARY_IO_INLINE _GL_EXTERN_INLINE
+#include "binary-io.h"
index a33e32a..317fe3d 100644 (file)
@@ -1,5 +1,5 @@
 /* Binary mode I/O.
-   Copyright (C) 2001, 2003, 2005, 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2005, 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    so we include it here first.  */
 #include <stdio.h>
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef BINARY_IO_INLINE
+# define BINARY_IO_INLINE _GL_INLINE
+#endif
+
 /* set_binary_mode (fd, mode)
    sets the binary/text I/O mode of file descriptor fd to the given mode
    (must be O_BINARY or O_TEXT) and returns the previous mode.  */
@@ -39,9 +44,9 @@
 # endif
 #else
   /* On reasonable systems, binary I/O is the only choice.  */
-  /* Use an inline function rather than a macro, to avoid gcc warnings
+  /* Use a function rather than a macro, to avoid gcc warnings
      "warning: statement with no effect".  */
-static inline int
+BINARY_IO_INLINE int
 set_binary_mode (int fd, int mode)
 {
   (void) fd;
@@ -62,4 +67,6 @@ set_binary_mode (int fd, int mode)
 # define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY))
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif /* _BINARY_H */
index 76e12f7..1e45a65 100644 (file)
@@ -1,6 +1,6 @@
 /* Like <fcntl.h>, but with non-working flags defined to 0.
 
-   Copyright (C) 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -216,6 +216,10 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_EXEC O_RDONLY /* This is often close enough in older systems.  */
 #endif
 
+#ifndef O_IGNORE_CTTY
+# define O_IGNORE_CTTY 0
+#endif
+
 #ifndef O_NDELAY
 # define O_NDELAY 0
 #endif
@@ -249,10 +253,18 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_NOFOLLOW 0
 #endif
 
+#ifndef O_NOLINK
+# define O_NOLINK 0
+#endif
+
 #ifndef O_NOLINKS
 # define O_NOLINKS 0
 #endif
 
+#ifndef O_NOTRANS
+# define O_NOTRANS 0
+#endif
+
 #ifndef O_RSYNC
 # define O_RSYNC 0
 #endif
@@ -269,7 +281,7 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_TTY_INIT 0
 #endif
 
-#if O_ACCMODE != (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
+#if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
 # undef O_ACCMODE
 # define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
 #endif
index 6595b16..c717f71 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a stream with a given file descriptor.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e243add..db7f7dd 100644 (file)
@@ -1,5 +1,5 @@
 /* ftruncate emulations for native Windows.
-   Copyright (C) 1992-2012 Free Software Foundation, Inc.
+   Copyright (C) 1992-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -157,7 +157,7 @@ ftruncate (int fd, off_t length)
 
 #  if HAVE_MSVC_INVALID_PARAMETER_HANDLER
 #   include "msvc-inval.h"
-static inline int
+static int
 chsize_nothrow (int fd, long length)
 {
   int result;
index f1e821b..d550f35 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2012 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2013 Free Software Foundation, Inc.
    This file is part of gnulib.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gl/tests/getdtablesize.c b/gl/tests/getdtablesize.c
new file mode 100644 (file)
index 0000000..9947405
--- /dev/null
@@ -0,0 +1,86 @@
+/* getdtablesize() function for platforms that don't have it.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2008.
+
+   This program 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.
+
+   This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+#include <stdio.h>
+
+#include "msvc-inval.h"
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+_setmaxstdio_nothrow (int newmax)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = _setmaxstdio (newmax);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+# define _setmaxstdio _setmaxstdio_nothrow
+#endif
+
+/* Cache for the previous getdtablesize () result.  */
+static int dtablesize;
+
+int
+getdtablesize (void)
+{
+  if (dtablesize == 0)
+    {
+      /* We are looking for the number N such that the valid file descriptors
+         are 0..N-1.  It can be obtained through a loop as follows:
+           {
+             int fd;
+             for (fd = 3; fd < 65536; fd++)
+               if (dup2 (0, fd) == -1)
+                 break;
+             return fd;
+           }
+         On Windows XP, the result is 2048.
+         The drawback of this loop is that it allocates memory for a libc
+         internal array that is never freed.
+
+         The number N can also be obtained as the upper bound for
+         _getmaxstdio ().  _getmaxstdio () returns the maximum number of open
+         FILE objects.  The sanity check in _setmaxstdio reveals the maximum
+         number of file descriptors.  This too allocates memory, but it is
+         freed when we call _setmaxstdio with the original value.  */
+      int orig_max_stdio = _getmaxstdio ();
+      unsigned int bound;
+      for (bound = 0x10000; _setmaxstdio (bound) < 0; bound = bound / 2)
+        ;
+      _setmaxstdio (orig_max_stdio);
+      dtablesize = bound;
+    }
+  return dtablesize;
+}
+
+#endif
index 02c00fb..274c591 100644 (file)
@@ -1,6 +1,6 @@
 /* getpagesize emulation for systems where it cannot be done in a C macro.
 
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9a391ea..f62aa30 100644 (file)
@@ -1,5 +1,5 @@
 /* Locking in multithreaded situations.
-   Copyright (C) 2005-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -682,7 +682,7 @@ glthread_lock_destroy_func (gl_lock_t *lock)
 /* In this file, the waitqueues are implemented as circular arrays.  */
 #define gl_waitqueue_t gl_carray_waitqueue_t
 
-static inline void
+static void
 gl_waitqueue_init (gl_waitqueue_t *wq)
 {
   wq->array = NULL;
@@ -743,7 +743,7 @@ gl_waitqueue_add (gl_waitqueue_t *wq)
 }
 
 /* Notifies the first thread from a wait queue and dequeues it.  */
-static inline void
+static void
 gl_waitqueue_notify_first (gl_waitqueue_t *wq)
 {
   SetEvent (wq->array[wq->offset + 0]);
@@ -754,7 +754,7 @@ gl_waitqueue_notify_first (gl_waitqueue_t *wq)
 }
 
 /* Notifies all threads from a wait queue and dequeues them all.  */
-static inline void
+static void
 gl_waitqueue_notify_all (gl_waitqueue_t *wq)
 {
   unsigned int i;
index 6782d49..d20bbde 100644 (file)
@@ -1,5 +1,5 @@
 /* Locking in multithreaded situations.
-   Copyright (C) 2005-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2e34435..63ecde8 100644 (file)
@@ -1,6 +1,6 @@
 /* ignore a function return without a compiler warning
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 631473e..9111289 100644 (file)
@@ -1,5 +1,5 @@
 /* Macros for infinity.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f525a7c..bd2048e 100644 (file)
@@ -1,6 +1,6 @@
 # source this file; set up for tests
 
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -411,8 +411,7 @@ path_prepend_ ()
     case $path_dir_ in
       '') fail_ "invalid path dir: '$1'";;
       /*) abs_path_dir_=$path_dir_;;
-      *) abs_path_dir_=`cd "$initial_cwd_/$path_dir_" && echo "$PWD"` \
-           || fail_ "invalid path dir: $path_dir_";;
+      *) abs_path_dir_=$initial_cwd_/$path_dir_;;
     esac
     case $abs_path_dir_ in
       *:*) fail_ "invalid path dir: '$abs_path_dir_'";;
@@ -448,7 +447,7 @@ setup_ ()
   pfx_=`testdir_prefix_`
   test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
     || fail_ "failed to create temporary directory in $initial_cwd_"
-  cd "$test_dir_"
+  cd "$test_dir_" || fail_ "failed to cd to temporary directory"
 
   # As autoconf-generated configure scripts do, ensure that IFS
   # is defined initially, so that saving and restoring $IFS works.
index b9da2b5..1893f55 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2012 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2013 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Derek Price.
    This file is part of gnulib.
 
index 4a2fd39..cd25911 100644 (file)
@@ -1,6 +1,6 @@
 /* ioctl.c --- wrappers for Windows ioctl function
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index db119a1..1a613a8 100644 (file)
@@ -1,6 +1,6 @@
 /* Work around a bug of lstat on some systems
 
-   Copyright (C) 1997-2006, 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2006, 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -35,7 +35,7 @@ typedef int dummy;
 # include <sys/stat.h>
 # undef __need_system_sys_stat_h
 
-static inline int
+static int
 orig_lstat (const char *filename, struct stat *buf)
 {
   return lstat (filename, buf);
index 478004c..60ba894 100644 (file)
@@ -1,5 +1,5 @@
 /* Common macros used by gnulib tests.
-   Copyright (C) 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1f7533a..311be56 100644 (file)
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003, 2006-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
 #define MAGIC_SIZE sizeof (int)
 /* This is how the header info would look like without any alignment
    considerations.  */
-struct preliminary_header { void *next; char room[MAGIC_SIZE]; };
+struct preliminary_header { void *next; int magic; };
 /* But the header's size must be a multiple of sa_alignment_max.  */
 #define HEADER_SIZE \
   (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max)
-struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; };
-verify (HEADER_SIZE == sizeof (struct header));
+union header {
+  void *next;
+  struct {
+    char room[HEADER_SIZE - MAGIC_SIZE];
+    int word;
+  } magic;
+};
+verify (HEADER_SIZE == sizeof (union header));
 /* We make the hash table quite big, so that during lookups the probability
    of empty hash buckets is quite high.  There is no need to make the hash
    table resizable, because when the hash table gets filled so much that the
@@ -74,20 +80,21 @@ mmalloca (size_t n)
 
   if (nplus >= n)
     {
-      char *p = (char *) malloc (nplus);
+      void *p = malloc (nplus);
 
       if (p != NULL)
         {
           size_t slot;
+          union header *h = p;
 
-          p += HEADER_SIZE;
+          p = h + 1;
 
           /* Put a magic number into the indicator word.  */
-          ((int *) p)[-1] = MAGIC_NUMBER;
+          h->magic.word = MAGIC_NUMBER;
 
           /* Enter p into the hash table.  */
           slot = (uintptr_t) p % HASH_TABLE_SIZE;
-          ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot];
+          h->next = mmalloca_results[slot];
           mmalloca_results[slot] = p;
 
           return p;
@@ -123,15 +130,17 @@ freea (void *p)
           void **chain = &mmalloca_results[slot];
           for (; *chain != NULL;)
             {
+              union header *h = p;
               if (*chain == p)
                 {
                   /* Found it.  Remove it from the hash table and free it.  */
-                  char *p_begin = (char *) p - HEADER_SIZE;
-                  *chain = ((struct header *) p_begin)->next;
+                  union header *p_begin = h - 1;
+                  *chain = p_begin->next;
                   free (p_begin);
                   return;
                 }
-              chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next;
+              h = *chain;
+              chain = &h[-1].next;
             }
         }
       /* At this point, we know it was not a mmalloca() result.  */
index 0cedf5f..6fbe45e 100644 (file)
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
@@ -42,7 +42,7 @@ extern "C" {
    and a page size can be as small as 4096 bytes.  So we cannot safely
    allocate anything larger than 4096 bytes.  Also care for the possibility
    of a few compiler-allocated temporary stack slots.
-   This must be a macro, not an inline function.  */
+   This must be a macro, not a function.  */
 # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL)
 #else
 # define safe_alloca(N) ((void) (N), NULL)
@@ -92,7 +92,7 @@ extern void * nmalloca (size_t n, size_t s);
 /* ------------------- Auxiliary, non-public definitions ------------------- */
 
 /* Determine the alignment of a type at compile time.  */
-#if defined __GNUC__
+#if defined __GNUC__ || defined __IBM__ALIGNOF__
 # define sa_alignof __alignof__
 #elif defined __cplusplus
   template <class type> struct sa_alignof_helper { char __slot1; type __slot2; };
index 491cef3..5882cbf 100644 (file)
@@ -1,5 +1,5 @@
 /* Macros for floating-point negative zero.
-   Copyright (C) 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
 /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
    ICC 10.0 has a bug when optimizing the expression -zero.
    The expression -FLT_MIN * FLT_MIN does not work when cross-compiling
-   to PowerPC on MacOS X 10.5.  */
+   to PowerPC on Mac OS X 10.5.  */
 #if defined __hpux || defined __sgi || defined __ICC
 static float
 compute_minus_zerof (void)
@@ -42,7 +42,7 @@ float minus_zerof = -0.0f;
 /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
    ICC 10.0 has a bug when optimizing the expression -zero.
    The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
-   to PowerPC on MacOS X 10.5.  */
+   to PowerPC on Mac OS X 10.5.  */
 #if defined __hpux || defined __sgi || defined __ICC
 static double
 compute_minus_zerod (void)
@@ -61,7 +61,7 @@ double minus_zerod = -0.0;
    IRIX cc can't put -0.0L into .data, but can compute at runtime.
    ICC 10.0 has a bug when optimizing the expression -zero.
    The expression -LDBL_MIN * LDBL_MIN does not work when cross-compiling
-   to PowerPC on MacOS X 10.5.  */
+   to PowerPC on Mac OS X 10.5.  */
 #if defined __hpux || defined __sgi || defined __ICC
 static long double
 compute_minus_zerol (void)
index 2f75da1..e95ceb9 100644 (file)
@@ -1,5 +1,5 @@
 /* Macros for not-a-number.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 27801b9..a0c43ea 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a descriptor to a file.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 #include <sys/types.h>
 #undef __need_system_fcntl_h
 
-static inline int
+static int
 orig_open (const char *filename, int flags, mode_t mode)
 {
   return open (filename, flags, mode);
index 03db7cb..a9ddc33 100644 (file)
@@ -1,5 +1,5 @@
 /* Define PATH_MAX somehow.  Requires sys/types.h.
-   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2012 Free Software
+   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index 4853d1b..ae53201 100644 (file)
@@ -1,5 +1,5 @@
 /* Print a message describing error code.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This program is free software: you can redistribute it and/or modify
index 6fcf1f2..a67cd3f 100644 (file)
@@ -1,5 +1,5 @@
 /* Create a pipe.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 3c0f7ea..5461273 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2012 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2013 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
 #include <string.h>
 #include <unistd.h>
 
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
 #if _LIBC
 # if HAVE_GNU_LD
 #  define environ __environ
@@ -57,7 +62,9 @@ static int
 _unsetenv (const char *name)
 {
   size_t len;
+#if !HAVE_DECL__PUTENV
   char **ep;
+#endif
 
   if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
     {
@@ -67,6 +74,21 @@ _unsetenv (const char *name)
 
   len = strlen (name);
 
+#if HAVE_DECL__PUTENV
+  {
+    int putenv_result, putenv_errno;
+    char *name_ = malloc (len + 2);
+    memcpy (name_, name, len);
+    name_[len] = '=';
+    name_[len + 1] = 0;
+    putenv_result = _putenv (name_);
+    putenv_errno = errno;
+    free (name_);
+    __set_errno (putenv_errno);
+    return putenv_result;
+  }
+#else
+
   LOCK;
 
   ep = environ;
@@ -87,6 +109,7 @@ _unsetenv (const char *name)
   UNLOCK;
 
   return 0;
+#endif
 }
 
 
@@ -95,9 +118,8 @@ _unsetenv (const char *name)
 int
 putenv (char *string)
 {
-  const char *const name_end = strchr (string, '=');
-  register size_t size;
-  register char **ep;
+  const char *name_end = strchr (string, '=');
+  char **ep;
 
   if (name_end == NULL)
     {
@@ -105,30 +127,68 @@ putenv (char *string)
       return _unsetenv (string);
     }
 
-  size = 0;
-  for (ep = environ; *ep != NULL; ++ep)
-    if (!strncmp (*ep, string, name_end - string) &&
-        (*ep)[name_end - string] == '=')
+#if HAVE_DECL__PUTENV
+  /* Rely on _putenv to allocate the new environment.  If other
+     parts of the application use _putenv, the !HAVE_DECL__PUTENV code
+     would fight over who owns the environ vector, causing a crash.  */
+  if (name_end[1])
+    return _putenv (string);
+  else
+    {
+      /* _putenv ("NAME=") unsets NAME, so invoke _putenv ("NAME= ")
+         to allocate the environ vector and then replace the new
+         entry with "NAME=".  */
+      int putenv_result, putenv_errno;
+      char *name_x = malloc (name_end - string + sizeof "= ");
+      if (!name_x)
+        return -1;
+      memcpy (name_x, string, name_end - string + 1);
+      name_x[name_end - string + 1] = ' ';
+      name_x[name_end - string + 2] = 0;
+      putenv_result = _putenv (name_x);
+      putenv_errno = errno;
+      for (ep = environ; *ep; ep++)
+        if (strcmp (*ep, name_x) == 0)
+          {
+            *ep = string;
+            break;
+          }
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+      if (putenv_result == 0)
+        {
+          /* _putenv propagated "NAME= " into the subprocess environment;
+             fix that by calling SetEnvironmentVariable directly.  */
+          name_x[name_end - string] = 0;
+          putenv_result = SetEnvironmentVariable (name_x, "") ? 0 : -1;
+          putenv_errno = ENOMEM; /* ENOMEM is the only way to fail.  */
+        }
+# endif
+      free (name_x);
+      __set_errno (putenv_errno);
+      return putenv_result;
+    }
+#else
+  for (ep = environ; *ep; ep++)
+    if (strncmp (*ep, string, name_end - string) == 0
+        && (*ep)[name_end - string] == '=')
       break;
-    else
-      ++size;
 
-  if (*ep == NULL)
+  if (*ep)
+    *ep = string;
+  else
     {
       static char **last_environ = NULL;
-      char **new_environ = (char **) malloc ((size + 2) * sizeof (char *));
-      if (new_environ == NULL)
+      size_t size = ep - environ;
+      char **new_environ = malloc ((size + 2) * sizeof *new_environ);
+      if (! new_environ)
         return -1;
-      (void) memcpy ((void *) new_environ, (void *) environ,
-                     size * sizeof (char *));
-      new_environ[size] = (char *) string;
-      new_environ[size + 1] = NULL;
+      new_environ[0] = string;
+      memcpy (new_environ + 1, environ, (size + 1) * sizeof *new_environ);
       free (last_environ);
       last_environ = new_environ;
       environ = new_environ;
     }
-  else
-    *ep = string;
 
   return 0;
+#endif
 }
index 0bef8b6..a3097ef 100644 (file)
@@ -1,5 +1,5 @@
 /* Some random 'double' numbers used by gnulib tests.
-   Copyright (C) 2012 Free Software Foundation, Inc.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b48d49c..4e854dd 100644 (file)
@@ -1,5 +1,5 @@
 /* Some random 'long double' numbers used by gnulib tests.
-   Copyright (C) 2012 Free Software Foundation, Inc.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8c3900d..3843b07 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine whether two stat buffers refer to the same file.
 
-   Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8201be2..995a0f2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2003, 2005-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2003, 2005-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #if !_LIBC
+/* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
+   optimizes away the name == NULL test below.  */
+# define _GL_ARG_NONNULL(params)
+
 # define _GL_USE_STDLIB_ALLOC 1
 # include <config.h>
 #endif
 
-/* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
-   optimizes away the name == NULL test below.  */
-#define _GL_ARG_NONNULL(params)
-
 #include <alloca.h>
 
 /* Specification.  */
index d9d8b47..45a8e02 100644 (file)
@@ -1,5 +1,5 @@
 /* Macro for checking that a function declaration is compliant.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1fc633e..f888130 100644 (file)
@@ -1,5 +1,5 @@
 /* Work around platform bugs in stat.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -29,6 +29,7 @@
 
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 # if _GL_WINDOWS_64_BIT_ST_SIZE
+#  undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */
 #  define stat _stati64
 #  define REPLACE_FUNC_STAT_DIR 1
 #  undef REPLACE_FUNC_STAT_FILE
@@ -41,7 +42,7 @@
 # endif
 #endif
 
-static inline int
+static int
 orig_stat (const char *filename, struct stat *buf)
 {
   return stat (filename, buf);
index 76f6fc6..e86d272 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror_r.c --- POSIX compatible system error routine
 
-   Copyright (C) 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 642ca66..d3c9f21 100644 (file)
@@ -1,5 +1,5 @@
 /* Stub for symlink().
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ab04d55..62024ab 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <sys/ioctl.h>.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 265ef64..2af98af 100644 (file)
@@ -1,5 +1,5 @@
 /* Test accepting a connection to a server socket.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -23,6 +23,7 @@ SIGNATURE_CHECK (accept, int, (int, struct sockaddr *, socklen_t *));
 
 #include <errno.h>
 #include <netinet/in.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -45,6 +46,7 @@ main (void)
     struct sockaddr_in addr;
     socklen_t addrlen = sizeof (addr);
 
+    close (99);
     errno = 0;
     ASSERT (accept (99, (struct sockaddr *) &addr, &addrlen) == -1);
     ASSERT (errno == EBADF);
index 4e814c6..d94e1d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of optional automatic memory allocation.
-   Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@ main ()
     {
       /* Try various values.
          n = 0 gave a crash on Alpha with gcc-2.5.8.
-         Some versions of MacOS X have a stack size limit of 512 KB.  */
+         Some versions of Mac OS X have a stack size limit of 512 KB.  */
       func (34);
       func (134);
       func (399);
index 49eff9c..cd6cd49 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for argp.
-# Copyright (C) 2006-2012 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 6ba55e9..a96dee8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test suite for argp.
-   Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNUlib Library.
 
    This program is free software: you can redistribute it and/or modify
index bda6709..37f2ec3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <arpa/inet.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9a533c5..9debff0 100644 (file)
@@ -1,5 +1,5 @@
 /* Self tests for base64.
-   Copyright (C) 2004, 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2008-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software: you can redistribute it and/or modify
index 4f284e7..b258d51 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of binary mode I/O.
-   Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e97be2a..fe85410 100644 (file)
@@ -1,5 +1,5 @@
 /* Test binding a server socket to a port.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -24,6 +24,7 @@ SIGNATURE_CHECK (bind, int, (int, const struct sockaddr *, socklen_t));
 #include <errno.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -46,6 +47,7 @@ main (void)
       ASSERT (errno == EBADF);
     }
     {
+      close (99);
       errno = 0;
       ASSERT (bind (99, (const struct sockaddr *) &addr, sizeof (addr)) == -1);
       ASSERT (errno == EBADF);
index 9893b1d..2f8e43e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <byteswap.h> substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a9cb655..c0aa662 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of character handling in C locale.
-   Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 83f71c0..974ed1b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test closing a file or socket.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -35,6 +35,7 @@ main (void)
     ASSERT (errno == EBADF);
   }
   {
+    close (99);
     errno = 0;
     ASSERT (close (99) == -1);
     ASSERT (errno == EBADF);
index 9ef8923..a1cd5f1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test connecting a client socket.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -24,6 +24,7 @@ SIGNATURE_CHECK (connect, int, (int, const struct sockaddr *, socklen_t));
 #include <errno.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -47,6 +48,7 @@ main (void)
       ASSERT (errno == EBADF);
     }
     {
+      close (99);
       errno = 0;
       ASSERT (connect (99, (const struct sockaddr *) &addr, sizeof (addr))
               == -1);
index 24e1759..34ef5d9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <dirent.h> substitute.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5043c0c..ecb2692 100644 (file)
@@ -1,5 +1,5 @@
 /* Test duplicating file descriptors.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -26,6 +26,10 @@ SIGNATURE_CHECK (dup2, int, (int, int));
 #include <errno.h>
 #include <fcntl.h>
 
+#if HAVE_SYS_RESOURCE_H
+# include <sys/resource.h>
+#endif
+
 #include "binary-io.h"
 
 #if GNULIB_TEST_CLOEXEC
@@ -103,6 +107,7 @@ main (void)
 {
   const char *file = "test-dup2.tmp";
   char buffer[1];
+  int bad_fd = getdtablesize ();
   int fd = open (file, O_CREAT | O_TRUNC | O_RDWR, 0600);
 
   /* Assume std descriptors were provided by invoker.  */
@@ -122,6 +127,7 @@ main (void)
   errno = 0;
   ASSERT (dup2 (-1, fd) == -1);
   ASSERT (errno == EBADF);
+  close (99);
   errno = 0;
   ASSERT (dup2 (99, fd) == -1);
   ASSERT (errno == EBADF);
@@ -145,7 +151,7 @@ main (void)
   ASSERT (dup2 (fd, -2) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (dup2 (fd, 10000000) == -1);
+  ASSERT (dup2 (fd, bad_fd) == -1);
   ASSERT (errno == EBADF);
 
   /* Using dup2 can skip fds.  */
index 972ed06..cb3d9f6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of environ variable.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8d00717..29eb510 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <errno.h> substitute.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 00c5468..e30ff19 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <fcntl.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -21,9 +21,9 @@
 #include <fcntl.h>
 
 /* Check that the various O_* macros are defined.  */
-int o = O_DIRECT | O_DIRECTORY | O_DSYNC | O_NDELAY | O_NOATIME | O_NONBLOCK
-        | O_NOCTTY | O_NOFOLLOW | O_NOLINKS | O_RSYNC | O_SYNC | O_TTY_INIT
-        | O_BINARY | O_TEXT;
+int o = (O_DIRECT | O_DIRECTORY | O_DSYNC | O_IGNORE_CTTY | O_NDELAY | O_NOATIME
+        | O_NONBLOCK | O_NOCTTY | O_NOFOLLOW | O_NOLINK | O_NOLINKS | O_NOTRANS
+        | O_RSYNC | O_SYNC | O_TTY_INIT | O_BINARY | O_TEXT);
 
 /* Check that the various SEEK_* macros are defined.  */
 int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
@@ -61,7 +61,7 @@ main (void)
 #if O_SEARCH && O_EXEC != O_SEARCH && O_SEARCH != O_RDONLY
     case O_SEARCH:
 #endif
-      i = O_ACCMODE == (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH);
+      i = ! (~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH));
       break;
 
       /* Everyone should have these */
@@ -84,6 +84,9 @@ main (void)
 #if O_DSYNC
     case O_DSYNC:
 #endif
+#if O_IGNORE_CTTY
+    case O_IGNORE_CTTY:
+#endif
 #if O_NOATIME
     case O_NOATIME:
 #endif
@@ -96,9 +99,15 @@ main (void)
 #if O_NOFOLLOW
     case O_NOFOLLOW:
 #endif
+#if O_NOLINK
+    case O_NOLINK:
+#endif
 #if O_NOLINKS
     case O_NOLINKS:
 #endif
+#if O_NOTRANS
+    case O_NOTRANS:
+#endif
 #if O_RSYNC && O_RSYNC != O_DSYNC
     case O_RSYNC:
 #endif
index 8e2f7bf..671c5e3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test opening a stream with a file descriptor.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 SIGNATURE_CHECK (fdopen, FILE *, (int, const char *));
 
 #include <errno.h>
+#include <unistd.h>
 
 #include "macros.h"
 
@@ -42,6 +43,7 @@ main (void)
   {
     FILE *fp;
 
+    close (99);
     errno = 0;
     fp = fdopen (99, "r");
     if (fp == NULL)
index f7ebbc6..b4a617a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fgetc() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -77,7 +77,9 @@ main (int argc, char **argv)
       }
   }
   {
-    FILE *fp = fdopen (99, "r");
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "r");
     if (fp != NULL)
       {
         errno = 0;
index 18da40b..ed8388b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <float.h> substitute.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 561c69f..a5b72c7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vsprintf() and sprintf() functions.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index fd92ae8..e05f641 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fputc() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -70,7 +70,9 @@ main (int argc, char **argv)
       }
   }
   {
-    FILE *fp = fdopen (99, "w");
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "w");
     if (fp != NULL)
       {
         setvbuf (fp, NULL, _IONBF, 0);
index 792299b..a807e0a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fread() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -79,7 +79,9 @@ main (int argc, char **argv)
       }
   }
   {
-    FILE *fp = fdopen (99, "r");
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "r");
     if (fp != NULL)
       {
         char buf[1];
index 2b6a9fb..6e3e000 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of splitting a double into fraction and mantissa.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 71001df..e50be14 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of splitting a double into fraction and mantissa.
-   Copyright (C) 2012 Free Software Foundation, Inc.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c5e07b2..5a5eae5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of splitting a 'long double' into fraction and mantissa.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1dc03c5..1b47a8f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fseek() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d2b348e..cadbc65 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fseeko() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ffeb50f..bd0b13a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fseeko() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 3642d3c..8d6d58a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fseeko() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -57,7 +57,9 @@ main (int argc, char **argv)
       }
   }
   {
-    FILE *fp = fdopen (99, "w");
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "w");
     if (fp != NULL)
       {
         errno = 0;
index 611b0e4..7390b46 100644 (file)
@@ -1,5 +1,5 @@
 /* Test setting the error indicator of a stream.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7f3c3c4..8ce1527 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of fstat() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 SIGNATURE_CHECK (fstat, int, (int, struct stat *));
 
 #include <errno.h>
+#include <unistd.h>
 
 #include "macros.h"
 
@@ -39,6 +40,7 @@ main (int argc, char *argv[])
   {
     struct stat statbuf;
 
+    close (99);
     errno = 0;
     ASSERT (fstat (99, &statbuf) == -1);
     ASSERT (errno == EBADF);
index 08c76aa..d30c492 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ftell() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9d225a3..17968e3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ftell() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5df97cf..e5a2b25 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ftello() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6908add..a771430 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ftello() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7c46d0c..b8cd679 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ftello() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -54,7 +54,9 @@ main (int argc, char **argv)
       }
   }
   {
-    FILE *fp = fdopen (99, "w");
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "w");
     if (fp != NULL)
       {
         errno = 0;
index 9a85314..8b795a8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test truncating a file.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -38,6 +38,7 @@ main (int argc, char *argv[])
     ASSERT (errno == EBADF);
   }
   {
+    close (99);
     errno = 0;
     ASSERT (ftruncate (99, 0) == -1);
     ASSERT (errno == EBADF);
index 0767104..75a6597 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether __func__ is available
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1f3a66d..ef72338 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fwrite() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -72,7 +72,9 @@ main (int argc, char **argv)
       }
   }
   {
-    FILE *fp = fdopen (99, "w");
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "w");
     if (fp != NULL)
       {
         char buf[5] = "world";
index 5123196..5c27d3b 100644 (file)
@@ -1,6 +1,6 @@
 /* Test the getaddrinfo module.
 
-   Copyright (C) 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -114,6 +114,8 @@ simple (char const *host, char const *service)
 
   for (ai = ai0; ai; ai = ai->ai_next)
     {
+      void *ai_addr = ai->ai_addr;
+      struct sockaddr_in *sock_addr = ai_addr;
       dbgprintf ("\tflags %x\n", ai->ai_flags);
       dbgprintf ("\tfamily %x\n", ai->ai_family);
       dbgprintf ("\tsocktype %x\n", ai->ai_socktype);
@@ -121,8 +123,7 @@ simple (char const *host, char const *service)
       dbgprintf ("\taddrlen %ld: ", (unsigned long) ai->ai_addrlen);
       dbgprintf ("\tFound %s\n",
                  inet_ntop (ai->ai_family,
-                            &((struct sockaddr_in *)
-                              ai->ai_addr)->sin_addr,
+                            &sock_addr->sin_addr,
                             buf, sizeof (buf) - 1));
       if (ai->ai_canonname)
         dbgprintf ("\tFound %s...\n", ai->ai_canonname);
index 3010760..e3e7b7a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of getcwd() function.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index daea646..6e95918 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of getdelim() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/gl/tests/test-getdtablesize.c b/gl/tests/test-getdtablesize.c
new file mode 100644 (file)
index 0000000..7046481
--- /dev/null
@@ -0,0 +1,34 @@
+/* Test of getdtablesize() function.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+
+   This program 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.
+
+   This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
+
+#include <config.h>
+
+#include <unistd.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (getdtablesize, int, (void));
+
+#include "macros.h"
+
+int
+main (int argc, char *argv[])
+{
+  ASSERT (getdtablesize () >= 3);
+
+  return 0;
+}
index ede1b85..134e320 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of getline() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e08a834..7caf027 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 978b753..450cf0d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9d55c65..345a796 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b0545c6..91a4b14 100644 (file)
@@ -1,5 +1,5 @@
 /* Test getpeername() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -23,6 +23,7 @@ SIGNATURE_CHECK (getpeername, int, (int, struct sockaddr *, socklen_t *));
 
 #include <errno.h>
 #include <netinet/in.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -45,6 +46,7 @@ main (void)
     struct sockaddr_in addr;
     socklen_t addrlen = sizeof (addr);
 
+    close (99);
     errno = 0;
     ASSERT (getpeername (99, (struct sockaddr *) &addr, &addrlen) == -1);
     ASSERT (errno == EBADF);
index 4a9d264..2c60876 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
  * Written by Jim Meyering.
  *
  * This program is free software: you can redistribute it and/or modify
index f036134..cb4cf14 100644 (file)
@@ -1,6 +1,6 @@
 /* Test the "ignore-value" module.
 
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 34de5f6..1a916e5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of inet_ntop function.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 844908c..e8e1fb2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of inet_pton function.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a2825cc..6eb6b43 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Unit tests for init.sh
-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index aeb1168..8b91a79 100644 (file)
@@ -1,5 +1,5 @@
 /* Test intprops.h.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 698d3dc..db1a97e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <inttypes.h> substitute.
-   Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c3aadce..489bccc 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ioctl() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -23,6 +23,7 @@
 SIGNATURE_CHECK (ioctl, int, (int, int, ...));
 
 #include <errno.h>
+#include <unistd.h>
 
 #include "macros.h"
 
@@ -39,6 +40,7 @@ main (void)
   }
   {
     int value;
+    close (99);
     errno = 0;
     ASSERT (ioctl (99, FIONREAD, &value) == -1);
     ASSERT (errno == EBADF);
index aa058b0..2d57d07 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnand() substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 52d35bf..7ea72e9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnand() substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index cef9925..924dccb 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnanf() substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 10adf30..60499b5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnanf() substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 96159f8..8f44de2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnanl() substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8a9e684..06e6a7c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnanl() substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b81558a..206923f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test listen() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 SIGNATURE_CHECK (listen, int, (int, int));
 
 #include <errno.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -38,6 +39,7 @@ main (void)
     ASSERT (errno == EBADF);
   }
   {
+    close (99);
     errno = 0;
     ASSERT (listen (99 ,1) == -1);
     ASSERT (errno == EBADF);
index 459bf88..d520193 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of lstat() function.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 4a81494..b8f1767 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of lstat() function.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 16b3a0a..ca0eafa 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of malloc function.
-   Copyright (C) 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d7732c3..7d5e62e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of safe automatic memory allocation.
-   Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -45,7 +45,7 @@ main ()
     {
       /* Try various values.
          n = 0 gave a crash on Alpha with gcc-2.5.8.
-         Some versions of MacOS X have a stack size limit of 512 KB.  */
+         Some versions of Mac OS X have a stack size limit of 512 KB.  */
       func (34);
       func (134);
       func (399);
index 1375e76..f7d944c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <math.h> substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1298c27..0ca4589 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2013 Free Software Foundation, Inc.
  * Written by Eric Blake and Bruno Haible
  *
  * This program is free software: you can redistribute it and/or modify
index 2312f3f..ce5bbd0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <netdb.h> substitute.
-   Copyright (C) 2007-2008, 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2008, 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d318e47..65fbf23 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <netinet/in.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b9ec9bf..f04144f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of opening a file descriptor.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index cab1d27..babb239 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of opening a file descriptor.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c6d0ccc..81a0350 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of "pathmax.h".
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 31e1af7..ec26299 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of perror() function.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index eae077c..197870d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of perror() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7ffeb62..93b4866 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of pipe.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d144a52..5ecf198 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of splitting a double into fraction and mantissa.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ac77781..0aa3d18 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of splitting a 'long double' into fraction and mantissa.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 53ef905..eca4005 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vsprintf() and sprintf() functions.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9e31500..e31104a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2013 Free Software Foundation, Inc.
  * Written by Eric Blake and Bruno Haible
  *
  * This program is free software: you can redistribute it and/or modify
index aec3c4b..63cd89e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2007, 2010-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2006-2007, 2010-2013 Free Software Foundation, Inc.
  * Written by Simon Josefsson
  *
  * This program is free software: you can redistribute it and/or modify
index 2186b8e..353293a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the recv() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 SIGNATURE_CHECK (recv, ssize_t, (int, void *, size_t, int));
 
 #include <errno.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -40,6 +41,7 @@ main (void)
   }
   {
     char byte;
+    close (99);
     errno = 0;
     ASSERT (recv (99, &byte, 1, 0) == -1);
     ASSERT (errno == EBADF);
index 7f6f6f6..6f59a34 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the recvfrom() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -25,6 +25,7 @@ SIGNATURE_CHECK (recvfrom, ssize_t,
 
 #include <errno.h>
 #include <netinet/in.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -50,6 +51,7 @@ main (void)
     struct sockaddr_in addr;
     socklen_t addrlen = sizeof (addr);
 
+    close (99);
     errno = 0;
     ASSERT (recvfrom (99, &byte, 1, 0, (struct sockaddr *) &addr, &addrlen)
             == -1);
index 32df4b7..fffc126 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of select() substitute, reading or writing from a given file descriptor.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 75dd855..77c20cc 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of select() substitute, reading from stdin.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f6e193e..ccf95d5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of select() substitute.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9fe998c..75c8fb1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of select() substitute.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -84,6 +84,9 @@ open_server_socket (void)
 
   s = socket (AF_INET, SOCK_STREAM, 0);
 
+  x = 1;
+  setsockopt (s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x));
+
   memset (&ia, 0, sizeof (ia));
   ia.sin_family = AF_INET;
   inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
@@ -94,9 +97,6 @@ open_server_socket (void)
       exit (77);
     }
 
-  x = 1;
-  setsockopt (s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x));
-
   if (listen (s, 1) < 0)
     {
       perror ("listen");
@@ -227,6 +227,29 @@ test_tty (select_fn my_select)
 #endif
 
 
+static int
+do_select_bad_nfd_nowait (int nfd, select_fn my_select)
+{
+  struct timeval tv0;
+  tv0.tv_sec = 0;
+  tv0.tv_usec = 0;
+  errno = 0;
+  return my_select (nfd, NULL, NULL, NULL, &tv0);
+}
+
+static void
+test_bad_nfd (select_fn my_select)
+{
+  if (do_select_bad_nfd_nowait (-1, my_select) != -1 || errno != EINVAL)
+    failed ("invalid errno after negative nfds");
+  /* Can't test FD_SETSIZE + 1 for EINVAL, since some systems allow
+     dynamically larger set size by redefining FD_SETSIZE anywhere up
+     to the actual maximum fd.  */
+  /* if (do_select_bad_nfd_nowait (FD_SETSIZE + 1, my_select) != -1 */
+  /*     || errno != EINVAL) */
+  /*   failed ("invalid errno after bogus nfds"); */
+}
+
 /* Test select(2) on invalid file descriptors.  */
 
 static int
@@ -243,6 +266,7 @@ do_select_bad_fd (int fd, int ev, struct timeval *timeout, select_fn my_select)
     FD_SET (fd, &wfds);
   if (ev & SEL_EXC)
     FD_SET (fd, &xfds);
+  errno = 0;
   return my_select (fd + 1, &rfds, &wfds, &xfds, timeout);
   /* In this case, when fd is invalid, on some platforms, the bit for fd
      is left alone in the fd_set, whereas on other platforms it is cleared.
@@ -265,7 +289,7 @@ test_bad_fd (select_fn my_select)
 #if !(defined __osf__ || defined WINDOWS_NATIVE)
   int fd;
 
-  /* On Linux, MacOS X, *BSD, values of fd like 99 or 399 are discarded
+  /* On Linux, Mac OS X, *BSD, values of fd like 99 or 399 are discarded
      by the kernel early and therefore do *not* lead to EBADF, as required
      by POSIX.  */
 # if defined __linux__ || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined __NetBSD__
@@ -273,6 +297,7 @@ test_bad_fd (select_fn my_select)
 # else
   fd = 99;
 # endif
+  close (fd);
 
   if (do_select_bad_fd_nowait (fd, SEL_IN, my_select) == 0 || errno != EBADF)
     failed ("invalid fd among rfds");
@@ -426,6 +451,7 @@ test_function (select_fn my_select)
   test (test_tty, "TTY", my_select);
 #endif
 
+  result += test (test_bad_nfd, my_select, "Invalid nfd test");
   result += test (test_bad_fd, my_select, "Invalid fd test");
   result += test (test_connect_first, my_select, "Unconnected socket test");
   result += test (test_socket_pair, my_select, "Connected sockets test");
index 7b068d1..2b41e21 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the send() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 SIGNATURE_CHECK (send, ssize_t, (int, const void *, size_t, int));
 
 #include <errno.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -40,6 +41,7 @@ main (void)
   }
   {
     char byte = 'x';
+    close (99);
     errno = 0;
     ASSERT (send (99, &byte, 1, 0) == -1);
     ASSERT (errno == EBADF);
index 1d0e410..536acab 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the sendto() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (sendto, ssize_t,
 #include <errno.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -52,6 +53,7 @@ main (void)
     }
     {
       char byte = 'x';
+      close (99);
       errno = 0;
       ASSERT (sendto (99, &byte, 1, 0,
                       (const struct sockaddr *) &addr, sizeof (addr))
index 4752a11..0a53ac4 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of setenv.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c14d217..323b8e7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test setsockopt() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 SIGNATURE_CHECK (setsockopt, int, (int, int, int, const void *, socklen_t));
 
 #include <errno.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -43,6 +44,7 @@ main (void)
   {
     int value = 1;
 
+    close (99);
     errno = 0;
     ASSERT (setsockopt (99, SOL_SOCKET, SO_REUSEADDR, &value, sizeof (value))
             == -1);
index be9f550..781577d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the shutdown() function.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 SIGNATURE_CHECK (shutdown, int, (int, int));
 
 #include <errno.h>
+#include <unistd.h>
 
 #include "sockets.h"
 #include "macros.h"
@@ -38,6 +39,7 @@ main (void)
     ASSERT (errno == EBADF);
   }
   {
+    close (99);
     errno = 0;
     ASSERT (shutdown (99, SHUT_RD) == -1);
     ASSERT (errno == EBADF);
index 9529017..93c0b71 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <signal.h> substitute.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d9ff91d..e8ea097 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of signbit() substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a0a2e77..d232cd0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of sleep() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index bd66449..108346e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of snprintf() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@ main (int argc, char *argv[])
 #if !CHECK_SNPRINTF_POSIX
           if (size > 0)
 #endif
-            ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
+            ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
         }
       else
         {
index f43e011..4e26f06 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2013 Free Software Foundation, Inc.
  * Written by Simon Josefsson.
  *
  * This program is free software: you can redistribute it and/or modify
index db9adf9..b59dbf4 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of stat.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2c9afc0..5409e05 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of stat.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d4c1d2e..373bf98 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdalign.h>.
-   Copyright 2009-2012 Free Software Foundation, Inc.
+   Copyright 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c22ca1f..3c13ca2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdbool.h> substitute.
-   Copyright (C) 2002-2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2002-2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d7237b3..f42b4e0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stddef.h> substitute.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 23b2b28..1c559b0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdint.h> substitute.
-   Copyright (C) 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7bd67c2..89c6548 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdio.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7eeb410..6d38156 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdlib.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f1d0928..ac3b3dd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2013 Free Software Foundation, Inc.
  * Written by Eric Blake and Bruno Haible
  *
  * This program is free software: you can redistribute it and/or modify
index 33dd901..6d5db0f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of strerror() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e164f0a..ec43aef 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of strerror_r() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 56e5974..76922d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <string.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1805e16..7873cfe 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <strings.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index cbc1883..33de935 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2010-2013 Free Software Foundation, Inc.
  * Written by Eric Blake
  *
  * This program is free software: you can redistribute it and/or modify
index adf9bbf..1498ccb 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of strverscmp() function.
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b3caac9..9966516 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of symlink.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a7c4079..56cdc84 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of symlink.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 725cabf..605ebb0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/ioctl.h> substitute.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 78f66ed..cd84c01 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/select.h> substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 271815d..9084b18 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/socket.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ main (void)
   sa_family_t i;
 
   /* Check some errno values.  */
-  switch (0)
+  switch (ENOTSOCK)
     {
     case ENOTSOCK:
     case EADDRINUSE:
index 0702e04..1ce3581 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/stat.h> substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -49,6 +49,7 @@ int a[] =
     S_ISSOCK (S_IFREG),
     S_ISDOOR (S_IFREG),
     S_ISMPB (S_IFREG),
+    S_ISMPX (S_IFREG),
     S_ISNAM (S_IFREG),
     S_ISNWK (S_IFREG),
     S_ISPORT (S_IFREG),
@@ -191,6 +192,20 @@ verify (!S_ISMPB (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
+verify (!S_ISMPX (S_IFBLK));
+#endif
+verify (!S_ISMPX (S_IFCHR));
+verify (!S_ISMPX (S_IFDIR));
+verify (!S_ISMPX (S_IFIFO));
+verify (!S_ISMPX (S_IFREG));
+#ifdef S_IFLNK
+verify (!S_ISMPX (S_IFLNK));
+#endif
+#ifdef S_IFSOCK
+verify (!S_ISMPX (S_IFSOCK));
+#endif
+
+#ifdef S_IFBLK
 verify (!S_ISNAM (S_IFBLK));
 #endif
 verify (!S_ISNAM (S_IFCHR));
index 44e21a2..1389b52 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/time.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c2af992..1045de7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/types.h> substitute.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ffb46ce..df36faf 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/uio.h> substitute.
-   Copyright (C) 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d3726df..d78b19e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of macros shared between <sys/wait.h> and <stdlib.h>.
-   Copyright (C) 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a5333d0..1d3d24d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sysexits.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index acf3d2d..c060136 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <time.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 struct timespec t1;
 #if 0
 /* POSIX:2008 does not require pid_t in <time.h> unconditionally, and indeed
-   it's missing on MacOS X 10.5, FreeBSD 6.4, OpenBSD 4.9, mingw.  */
+   it's missing on Mac OS X 10.5, FreeBSD 6.4, OpenBSD 4.9, mingw.  */
 pid_t t2;
 #endif
 
index 8be841d..7e425cb 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <u64.h>
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e53fd7a..5470985 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <unistd.h> substitute.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 926526d..c369e2a 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of unsetenv.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 4e548b1..4cce0a9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of vasnprintf() and asnprintf() functions.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -55,7 +55,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
       ASSERT (length == 5);
       if (size < 6)
         ASSERT (result != buf);
-      ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
+      ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
       if (result != buf)
         free (result);
     }
index 4d7635b..459b92d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of vasprintf() and asprintf() functions.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 68b0a0f..1dbc532 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Unit tests for vc-list-files
-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 1ea6d89..8cbd00b 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Unit tests for vc-list-files
-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 5ab9c58..1056b4e 100644 (file)
@@ -1,6 +1,6 @@
 /* Test the "verify" module.
 
-   Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 36ced60..66027f3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test suite for version-etc.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNUlib Library.
 
    This program is free software: you can redistribute it and/or modify
index 945383b..466c959 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for version-etc.
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 706ee70..53f951c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vfprintf() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f64bf83..3593b1d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vfprintf() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9ee61c0..84b5d89 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of vsnprintf() function.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -65,7 +65,7 @@ main (int argc, char *argv[])
 #if !CHECK_VSNPRINTF_POSIX
           if (size > 0)
 #endif
-            ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
+            ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
         }
       else
         {
index 0d72005..92ae8f2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <wchar.h> substitute.
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ddbe9a4..c58c82f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2002, 2005-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2002, 2005-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include <config.h>
-
 /* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
    optimizes away the name == NULL test below.  */
 #define _GL_ARG_NONNULL(params)
 
+#include <config.h>
+
 /* Specification.  */
 #include <stdlib.h>
 
index ef0b593..44f3a1a 100644 (file)
@@ -1,6 +1,6 @@
 /* w32sock.h --- internal auxiliary functions for Windows socket functions
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9c060e7..f0e6155 100644 (file)
@@ -1,5 +1,5 @@
 /* Return a pointer to a zero-size object in memory.
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 04cde05..8ced794 100644 (file)
@@ -1,6 +1,6 @@
 /* A more-standard <time.h>.
 
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 74366a0..9866299 100644 (file)
@@ -1,6 +1,6 @@
 /* Reentrant time functions like localtime_r.
 
-   Copyright (C) 2003, 2006-2007, 2010-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2010-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/gl/timespec.c b/gl/timespec.c
new file mode 100644 (file)
index 0000000..2b6098e
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define _GL_TIMESPEC_INLINE _GL_EXTERN_INLINE
+#include "timespec.h"
index 388ddb8..d665e6c 100644 (file)
@@ -1,6 +1,6 @@
 /* timespec -- System time interface
 
-   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2012 Free Software
+   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
 
 # include <time.h>
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_TIMESPEC_INLINE
+# define _GL_TIMESPEC_INLINE _GL_INLINE
+#endif
+
 /* Return negative, zero, positive if A < B, A == B, A > B, respectively.
 
    For each time stamp T, this code assumes that either:
@@ -49,7 +54,7 @@
 
    The (int) cast avoids a gcc -Wconversion warning.  */
 
-static inline int
+_GL_TIMESPEC_INLINE int
 timespec_cmp (struct timespec a, struct timespec b)
 {
   return (a.tv_sec < b.tv_sec ? -1
@@ -59,18 +64,21 @@ timespec_cmp (struct timespec a, struct timespec b)
 
 /* Return -1, 0, 1, depending on the sign of A.  A.tv_nsec must be
    nonnegative.  */
-static inline int
+_GL_TIMESPEC_INLINE int
 timespec_sign (struct timespec a)
 {
   return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec;
 }
 
-struct timespec timespec_add (struct timespec, struct timespec);
-struct timespec timespec_sub (struct timespec, struct timespec);
-struct timespec dtotimespec (double);
+struct timespec timespec_add (struct timespec, struct timespec)
+  _GL_ATTRIBUTE_CONST;
+struct timespec timespec_sub (struct timespec, struct timespec)
+  _GL_ATTRIBUTE_CONST;
+struct timespec dtotimespec (double)
+  _GL_ATTRIBUTE_CONST;
 
 /* Return an approximation to A, of type 'double'.  */
-static inline double
+_GL_TIMESPEC_INLINE double
 timespectod (struct timespec a)
 {
   return a.tv_sec + a.tv_nsec / 1e9;
@@ -79,4 +87,6 @@ timespectod (struct timespec a)
 void gettime (struct timespec *);
 int settime (struct timespec const *);
 
+_GL_INLINE_HEADER_END
+
 #endif
diff --git a/gl/u64.c b/gl/u64.c
new file mode 100644 (file)
index 0000000..04cf7a2
--- /dev/null
+++ b/gl/u64.c
@@ -0,0 +1,3 @@
+#include <config.h>
+#define _GL_U64_INLINE _GL_EXTERN_INLINE
+#include "u64.h"
index f5ec9eb..d8009ad 100644 (file)
--- a/gl/u64.h
+++ b/gl/u64.h
@@ -1,6 +1,6 @@
 /* uint64_t-like operations that work even on hosts lacking uint64_t
 
-   Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #include <stdint.h>
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_U64_INLINE
+# define _GL_U64_INLINE _GL_INLINE
+#endif
+
 /* Return X rotated left by N bits, where 0 < N < 64.  */
 #define u64rol(x, n) u64or (u64shl (x, n), u64shr (x, 64 - n))
 
@@ -54,7 +59,7 @@ typedef struct { uint32_t lo, hi; } u64;
 
 /* Given the high and low-order 32-bit quantities HI and LO, return a u64
    value representing (HI << 32) + LO.  */
-static inline u64
+_GL_U64_INLINE u64
 u64hilo (uint32_t hi, uint32_t lo)
 {
   u64 r;
@@ -64,7 +69,7 @@ u64hilo (uint32_t hi, uint32_t lo)
 }
 
 /* Return a u64 value representing LO.  */
-static inline u64
+_GL_U64_INLINE u64
 u64lo (uint32_t lo)
 {
   u64 r;
@@ -74,7 +79,7 @@ u64lo (uint32_t lo)
 }
 
 /* Return a u64 value representing SIZE.  */
-static inline u64
+_GL_U64_INLINE u64
 u64size (size_t size)
 {
   u64 r;
@@ -84,14 +89,14 @@ u64size (size_t size)
 }
 
 /* Return X < Y.  */
-static inline int
+_GL_U64_INLINE int
 u64lt (u64 x, u64 y)
 {
   return x.hi < y.hi || (x.hi == y.hi && x.lo < y.lo);
 }
 
 /* Return X & Y.  */
-static inline u64
+_GL_U64_INLINE u64
 u64and (u64 x, u64 y)
 {
   u64 r;
@@ -101,7 +106,7 @@ u64and (u64 x, u64 y)
 }
 
 /* Return X | Y.  */
-static inline u64
+_GL_U64_INLINE u64
 u64or (u64 x, u64 y)
 {
   u64 r;
@@ -111,7 +116,7 @@ u64or (u64 x, u64 y)
 }
 
 /* Return X ^ Y.  */
-static inline u64
+_GL_U64_INLINE u64
 u64xor (u64 x, u64 y)
 {
   u64 r;
@@ -121,7 +126,7 @@ u64xor (u64 x, u64 y)
 }
 
 /* Return X + Y.  */
-static inline u64
+_GL_U64_INLINE u64
 u64plus (u64 x, u64 y)
 {
   u64 r;
@@ -131,7 +136,7 @@ u64plus (u64 x, u64 y)
 }
 
 /* Return X << N.  */
-static inline u64
+_GL_U64_INLINE u64
 u64shl (u64 x, int n)
 {
   u64 r;
@@ -149,7 +154,7 @@ u64shl (u64 x, int n)
 }
 
 /* Return X >> N.  */
-static inline u64
+_GL_U64_INLINE u64
 u64shr (u64 x, int n)
 {
   u64 r;
@@ -167,3 +172,5 @@ u64shr (u64 x, int n)
 }
 
 #endif
+
+_GL_INLINE_HEADER_END
diff --git a/gl/unistd.c b/gl/unistd.c
new file mode 100644 (file)
index 0000000..6c6a8e2
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define _GL_UNISTD_INLINE _GL_EXTERN_INLINE
+#include "unistd.h"
index 9115486..2ea9af4 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <unistd.h>.
-   Copyright (C) 2003-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    You should have received a copy of the GNU General Public License
    along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
+#ifndef _@GUARD_PREFIX@_UNISTD_H
+
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
 @PRAGMA_COLUMNS@
 
-/* Special invocation convention:
-   - On mingw, several headers, including <winsock2.h>, include <unistd.h>,
-     but we need to ensure that both the system <unistd.h> and <winsock2.h>
-     are completely included before we replace gethostname.  */
-#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \
-  && !defined _GL_WINSOCK2_H_WITNESS && defined _WINSOCK2_H
-/* <unistd.h> is being indirectly included for the first time from
-   <winsock2.h>; avoid declaring any overrides.  */
-# if @HAVE_UNISTD_H@
-#  @INCLUDE_NEXT@ @NEXT_UNISTD_H@
-# else
-#  error unexpected; report this to bug-gnulib@gnu.org
-# endif
-# define _GL_WINSOCK2_H_WITNESS
-
-/* Normal invocation.  */
-#elif !defined _@GUARD_PREFIX@_UNISTD_H
-
 /* The include_next requires a split double-inclusion guard.  */
 #if @HAVE_UNISTD_H@
 # @INCLUDE_NEXT@ @NEXT_UNISTD_H@
 /* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in
    <unistd.h>.  */
 /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>.  */
+/* OSF Tru64 Unix cannot see gnulib rpl_strtod when system <stdlib.h> is
+   included here.  */
 /* But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if !defined __GLIBC__ && !defined __osf__
+# define __need_system_stdlib_h
 # include <stdlib.h>
+# undef __need_system_stdlib_h
 #endif
 
 /* Native Windows platforms declare chdir, getcwd, rmdir in
 /* Get getopt(), optarg, optind, opterr, optopt.
    But avoid namespace pollution on glibc systems.  */
 #if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT
+# define __need_getopt
 # include <getopt.h>
 #endif
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_UNISTD_INLINE
+# define _GL_UNISTD_INLINE _GL_INLINE
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
@@ -404,7 +398,7 @@ extern char **environ;
 # endif
 #elif defined GNULIB_POSIXCHECK
 # if HAVE_RAW_DECL_ENVIRON
-static inline char ***
+_GL_UNISTD_INLINE char ***
 rpl_environ (void)
 {
   return &environ;
@@ -862,7 +856,7 @@ _GL_CXXALIAS_RPL (getpagesize, int, (void));
 #     define getpagesize() _gl_getpagesize ()
 #    else
 #     if !GNULIB_defined_getpagesize_function
-static inline int
+_GL_UNISTD_INLINE int
 getpagesize ()
 {
   return _gl_getpagesize ();
@@ -1318,7 +1312,7 @@ _GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
 _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
                                     _GL_ARG_NONNULL ((1)));
 # endif
-/* Need to cast, because on Solaris 11 2011-10, MacOS X 10.5, IRIX 6.5
+/* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
    and FreeBSD 6.4 the second parameter is int.  On Solaris 11
    2011-10, the first parameter is not const.  */
 _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
@@ -1530,6 +1524,7 @@ _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count));
 _GL_CXXALIASWARN (write);
 #endif
 
+_GL_INLINE_HEADER_END
 
 #endif /* _@GUARD_PREFIX@_UNISTD_H */
 #endif /* _@GUARD_PREFIX@_UNISTD_H */
index 0ebddf1..8fdab32 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -275,7 +275,7 @@ decimal_point_char (void)
 {
   const char *point;
   /* Determine it in a multithread-safe way.  We know nl_langinfo is
-     multithread-safe on glibc systems and MacOS X systems, but is not required
+     multithread-safe on glibc systems and Mac OS X systems, but is not required
      to be multithread-safe by POSIX.  sprintf(), however, is multithread-safe.
      localeconv() is rarely multithread-safe.  */
 #  if HAVE_NL_LANGINFO && (__GLIBC__ || defined __UCLIBC__ || (defined __APPLE__ && defined __MACH__))
@@ -1530,7 +1530,7 @@ is_borderline (const char *digits, size_t precision)
 
 /* Returns the number of TCHAR_T units needed as temporary space for the result
    of sprintf or SNPRINTF of a single conversion directive.  */
-static inline size_t
+static size_t
 MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion,
                  arg_type type, int flags, size_t width, int has_precision,
                  size_t precision, int pad_ourselves)
index dd86914..7658f50 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 2002-2004, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2002-2004, 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 16fc9d5..d0d4a11 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index cef14ad..cb8e90b 100644 (file)
@@ -1,6 +1,6 @@
 /* Compile-time assert-like macros.
 
-   Copyright (C) 2005-2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
        extern int (*dummy (void)) [sizeof (struct {...})];
 
    * GCC warns about duplicate declarations of the dummy function if
-     -Wredundant_decls is used.  GCC 4.3 and later have a builtin
+     -Wredundant-decls is used.  GCC 4.3 and later have a builtin
      __COUNTER__ macro that can let us generate unique identifiers for
      each dummy function, to suppress this warning.
 
      which do not support _Static_assert, also do not warn about the
      last declaration mentioned above.
 
+   * GCC warns if -Wnested-externs is enabled and verify() is used
+     within a function body; but inside a function, you can always
+     arrange to use verify_expr() instead.
+
    * In C++, any struct definition inside sizeof is invalid.
      Use a template type to work around the problem.  */
 
index c452f40..e1c69da 100644 (file)
@@ -1,5 +1,5 @@
 /* Variable with FSF copyright information, for version-etc.
-   Copyright (C) 1999-2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999-2006, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ae1e44d..b7d23ab 100644 (file)
@@ -1,5 +1,5 @@
 /* Print --version and bug-reporting information in a consistent format.
-   Copyright (C) 1999-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -38,7 +38,7 @@
 # define PACKAGE PACKAGE_TARNAME
 #endif
 
-enum { COPYRIGHT_YEAR = 2012 };
+enum { COPYRIGHT_YEAR = 2013 };
 
 /* The three functions below display the --version information the
    standard way.
index 5548c02..6c3d084 100644 (file)
@@ -1,5 +1,5 @@
 /* Print --version and bug-reporting information in a consistent format.
-   Copyright (C) 1999, 2003, 2005, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2003, 2005, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index bc1bec9..fbcd004 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to a stream.
-   Copyright (C) 2004, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 075b3d9..8a748ea 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to a stream.
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 66852ef..7d4dfbe 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 2004, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson and Yoann Vandoorselaere <yoann@prelude-ids.org>.
 
    This program is free software; you can redistribute it and/or modify
index ef0b593..44f3a1a 100644 (file)
@@ -1,6 +1,6 @@
 /* w32sock.h --- internal auxiliary functions for Windows socket functions
 
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f9bc30c..b6e4362 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
 
-   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/gl/xsize.c b/gl/xsize.c
new file mode 100644 (file)
index 0000000..4b4914c
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define XSIZE_INLINE _GL_EXTERN_INLINE
+#include "xsize.h"
index 515327e..2922f35 100644 (file)
@@ -1,6 +1,6 @@
 /* xsize.h -- Checked size_t computations.
 
-   Copyright (C) 2003, 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2008-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 # include <stdint.h>
 #endif
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef XSIZE_INLINE
+# define XSIZE_INLINE _GL_INLINE
+#endif
+
 /* The size of memory objects is often computed through expressions of
    type size_t. Example:
       void* p = malloc (header_size + n * element_size).
@@ -48,7 +53,7 @@
   ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
 
 /* Sum of two sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -59,7 +64,7 @@ xsum (size_t size1, size_t size2)
 }
 
 /* Sum of three sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -69,7 +74,7 @@ xsum3 (size_t size1, size_t size2, size_t size3)
 }
 
 /* Sum of four sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -79,7 +84,7 @@ xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
 }
 
 /* Maximum of two sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -92,7 +97,7 @@ xmax (size_t size1, size_t size2)
 
 /* Multiplication of a count with an element size, with overflow check.
    The count must be >= 0 and the element size must be > 0.
-   This is a macro, not an inline function, so that it works correctly even
+   This is a macro, not a function, so that it works correctly even
    when N is of a wider type and N > SIZE_MAX.  */
 #define xtimes(N, ELSIZE) \
   ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
@@ -104,4 +109,6 @@ xmax (size_t size1, size_t size2)
 #define size_in_bounds_p(SIZE) \
   ((SIZE) != SIZE_MAX)
 
+_GL_INLINE_HEADER_END
+
 #endif /* _XSIZE_H */
index f8d449b..45b0b55 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 #  License along with GnuTLS; if not, write to the Free Software
 #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -69,14 +86,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -198,6 +218,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -549,6 +574,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -834,7 +860,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -908,6 +933,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1043,8 +1069,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1063,7 +1089,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1294,6 +1319,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1671,13 +1697,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
index cd04148..4712cf2 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -70,14 +87,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -192,6 +212,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -541,6 +566,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -826,7 +852,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -900,6 +925,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1035,8 +1061,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1055,7 +1081,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1286,6 +1311,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1509,15 +1535,18 @@ clean-libtool:
        -rm -rf .libs _libs
 install-nobase_dist_guilemoduleDATA: $(nobase_dist_guilemodule_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(guilemoduledir)" || $(MKDIR_P) "$(DESTDIR)$(guilemoduledir)"
        @list='$(nobase_dist_guilemodule_DATA)'; test -n "$(guilemoduledir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(guilemoduledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(guilemoduledir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for file in $$files; do \
            if test -f "$$file"; then xfiles="$$xfiles $$file"; \
            else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(guilemoduledir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(guilemoduledir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(guilemoduledir)/$$dir"; }; \
            echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(guilemoduledir)/$$dir'"; \
            $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(guilemoduledir)/$$dir" || exit $$?; }; \
@@ -1530,15 +1559,18 @@ uninstall-nobase_dist_guilemoduleDATA:
        dir='$(DESTDIR)$(guilemoduledir)'; $(am__uninstall_files_from_dir)
 install-nobase_nodist_guilemoduleDATA: $(nobase_nodist_guilemodule_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(guilemoduledir)" || $(MKDIR_P) "$(DESTDIR)$(guilemoduledir)"
        @list='$(nobase_nodist_guilemodule_DATA)'; test -n "$(guilemoduledir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(guilemoduledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(guilemoduledir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for file in $$files; do \
            if test -f "$$file"; then xfiles="$$xfiles $$file"; \
            else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(guilemoduledir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(guilemoduledir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(guilemoduledir)/$$dir"; }; \
            echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(guilemoduledir)/$$dir'"; \
            $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(guilemoduledir)/$$dir" || exit $$?; }; \
index 7b55500..4bfc7d7 100644 (file)
@@ -25,9 +25,14 @@ EXTRA_DIST =                                 \
   make-enum-header.scm make-smob-header.scm    \
   make-session-priorities.scm
 
-BUILT_SOURCES = enum-map.i.c smob-types.i.c enums.h smobs.h    \
-               priorities.i.c                                  \
-                core.x errors.x
+# Files generated by the (gnutls build ...) modules.
+GENERATED_BINDINGS =                           \
+  enum-map.i.c smob-types.i.c enums.h smobs.h  \
+  priorities.i.c
+
+BUILT_SOURCES =                                        \
+  $(GENERATED_BINDINGS)                                \
+  core.x errors.x
 
 CLEANFILES = $(BUILT_SOURCES)
 
@@ -97,7 +102,7 @@ priorities.i.c: $(srcdir)/make-session-priorities.scm
 snarfcppopts = $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
               $(CFLAGS) $(AM_CFLAGS) $(GUILE_CFLAGS)
 
-.c.x: $(BUILT_SOURCES)
+.c.x: $(GENERATED_BINDINGS)
        $(guile_snarf) -o $@ $< $(snarfcppopts)
 
 # Target used by doc/Makefile, to create all built sources necessary
index ac57c57..ab8b8d1 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -76,14 +93,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -260,6 +280,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(guile_gnutls_v_2_la_SOURCES)
 DIST_SOURCES = $(guile_gnutls_v_2_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -581,6 +606,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -866,7 +892,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -940,6 +965,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1075,8 +1101,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1095,7 +1121,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1326,6 +1351,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1502,9 +1528,15 @@ EXTRA_DIST = \
   make-enum-header.scm make-smob-header.scm    \
   make-session-priorities.scm
 
-BUILT_SOURCES = enum-map.i.c smob-types.i.c enums.h smobs.h    \
-               priorities.i.c                                  \
-                core.x errors.x
+
+# Files generated by the (gnutls build ...) modules.
+GENERATED_BINDINGS = \
+  enum-map.i.c smob-types.i.c enums.h smobs.h  \
+  priorities.i.c
+
+BUILT_SOURCES = \
+  $(GENERATED_BINDINGS)                                \
+  core.x errors.x
 
 CLEANFILES = $(BUILT_SOURCES)
 guileextension_LTLIBRARIES = guile-gnutls-v-2.la
@@ -1581,7 +1613,6 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 install-guileextensionLTLIBRARIES: $(guileextension_LTLIBRARIES)
        @$(NORMAL_INSTALL)
-       test -z "$(guileextensiondir)" || $(MKDIR_P) "$(DESTDIR)$(guileextensiondir)"
        @list='$(guileextension_LTLIBRARIES)'; test -n "$(guileextensiondir)" || list=; \
        list2=; for p in $$list; do \
          if test -f $$p; then \
@@ -1589,6 +1620,8 @@ install-guileextensionLTLIBRARIES: $(guileextension_LTLIBRARIES)
          else :; fi; \
        done; \
        test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(guileextensiondir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(guileextensiondir)" || exit 1; \
          echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(guileextensiondir)'"; \
          $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(guileextensiondir)"; \
        }
@@ -1898,7 +1931,7 @@ smob-types.i.c: $(srcdir)/make-smob-types.scm
 priorities.i.c: $(srcdir)/make-session-priorities.scm
        $(GUILE_FOR_BUILD) $^ > $@
 
-.c.x: $(BUILT_SOURCES)
+.c.x: $(GENERATED_BINDINGS)
        $(guile_snarf) -o $@ $< $(snarfcppopts)
 
 # Target used by doc/Makefile, to create all built sources necessary
index faf1fec..f81572b 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 #  License along with GnuTLS; if not, write to the Free Software
 #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -70,14 +87,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -192,6 +212,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -512,6 +537,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -797,7 +823,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -871,6 +896,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1006,8 +1032,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1026,7 +1052,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1257,6 +1282,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 693af1f..51474ba 100644 (file)
@@ -37,6 +37,7 @@ AM_CPPFLAGS = \
        -I$(srcdir)/includes                    \
        -I$(builddir)/includes                  \
        -I$(srcdir)/x509                        \
+       $(LIBTASN1_CFLAGS)                      \
        $(P11_KIT_CFLAGS)
 
 if ENABLE_OPENPGP
@@ -68,7 +69,9 @@ COBJECTS = gnutls_record.c gnutls_compress.c debug.c gnutls_cipher.c  \
        gnutls_auth.c gnutls_v2_compat.c gnutls_datum.c                 \
        gnutls_session_pack.c gnutls_mpi.c gnutls_pk.c gnutls_cert.c    \
        gnutls_global.c gnutls_constate.c gnutls_anon_cred.c            \
-       pkix_asn1_tab.c gnutls_asn1_tab.c gnutls_mem.c gnutls_ui.c      \
+       $(srcdir)/pkix_asn1_tab.c                               \
+       $(srcdir)/gnutls_asn1_tab.c                             \
+       gnutls_mem.c gnutls_ui.c                                        \
        gnutls_sig.c gnutls_ecc.c gnutls_dh_primes.c gnutls_alert.c     \
        system.c gnutls_str.c gnutls_state.c gnutls_x509.c              \
        gnutls_rsa_export.c gnutls_helper.c gnutls_supplemental.c       \
@@ -132,7 +135,7 @@ endif
 if ENABLE_MINITASN1
 libgnutls_la_LIBADD += minitasn1/libminitasn1.la
 else
-libgnutls_la_LDFLAGS += $(LTLIBTASN1)
+libgnutls_la_LDFLAGS += $(LIBTASN1_LIBS)
 endif
 
 if ENABLE_NETTLE
@@ -175,8 +178,8 @@ libgnutlsxx_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libgnutlsxx.map
 endif
 endif
 
-pkix_asn1_tab.c: pkix.asn
-       -asn1Parser pkix.asn pkix_asn1_tab.c
+pkix_asn1_tab.c: $(srcdir)/pkix.asn
+       -asn1Parser $(srcdir)/pkix.asn pkix_asn1_tab.c
 
-gnutls_asn1_tab.c: gnutls.asn
-       -asn1Parser gnutls.asn gnutls_asn1_tab.c
+gnutls_asn1_tab.c: $(srcdir)/gnutls.asn
+       -asn1Parser $(srcdir)/gnutls.asn gnutls_asn1_tab.c
index fb79e2d..f47ae9a 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -66,7 +83,7 @@ host_triplet = @host@
 @HAVE_LD_VERSION_SCRIPT_TRUE@am__append_9 = -Wl,--version-script=$(srcdir)/libgnutls.map
 @HAVE_LD_VERSION_SCRIPT_FALSE@am__append_10 = -export-symbols-regex '^(gnutls|_gnutls).*'
 @ENABLE_MINITASN1_TRUE@am__append_11 = minitasn1/libminitasn1.la
-@ENABLE_MINITASN1_FALSE@am__append_12 = $(LTLIBTASN1)
+@ENABLE_MINITASN1_FALSE@am__append_12 = $(LIBTASN1_LIBS)
 @ENABLE_NETTLE_TRUE@am__append_13 = $(LTLIBNETTLE)
 @ENABLE_NETTLE_TRUE@am__append_14 = nettle/libcrypto.la
 @WINDOWS_TRUE@am__append_15 = -lcrypt32
@@ -93,14 +110,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -267,15 +287,16 @@ am__libgnutls_la_SOURCES_DIST = abstract_int.h debug.h \
        gnutls_extensions.c gnutls_auth.c gnutls_v2_compat.c \
        gnutls_datum.c gnutls_session_pack.c gnutls_mpi.c gnutls_pk.c \
        gnutls_cert.c gnutls_global.c gnutls_constate.c \
-       gnutls_anon_cred.c pkix_asn1_tab.c gnutls_asn1_tab.c \
-       gnutls_mem.c gnutls_ui.c gnutls_sig.c gnutls_ecc.c \
-       gnutls_dh_primes.c gnutls_alert.c system.c gnutls_str.c \
-       gnutls_state.c gnutls_x509.c gnutls_rsa_export.c \
-       gnutls_helper.c gnutls_supplemental.c random.c crypto-api.c \
-       gnutls_privkey.c gnutls_pcert.c gnutls_pubkey.c locks.c hash.c \
-       gnutls_dtls.c system_override.c crypto-backend.c verify-tofu.c \
-       pkcs11.c pkcs11_privkey.c pkcs11_write.c pkcs11_secret.c \
-       gnutls_srp.c gnutls_psk.c gnutls.asn pkix.asn libgnutls.map
+       gnutls_anon_cred.c $(srcdir)/pkix_asn1_tab.c \
+       $(srcdir)/gnutls_asn1_tab.c gnutls_mem.c gnutls_ui.c \
+       gnutls_sig.c gnutls_ecc.c gnutls_dh_primes.c gnutls_alert.c \
+       system.c gnutls_str.c gnutls_state.c gnutls_x509.c \
+       gnutls_rsa_export.c gnutls_helper.c gnutls_supplemental.c \
+       random.c crypto-api.c gnutls_privkey.c gnutls_pcert.c \
+       gnutls_pubkey.c locks.c hash.c gnutls_dtls.c system_override.c \
+       crypto-backend.c verify-tofu.c pkcs11.c pkcs11_privkey.c \
+       pkcs11_write.c pkcs11_secret.c gnutls_srp.c gnutls_psk.c \
+       gnutls.asn pkix.asn libgnutls.map
 am__objects_1 =
 am__objects_2 = $(am__objects_1)
 @ENABLE_PKCS11_TRUE@am__objects_3 = pkcs11.lo pkcs11_privkey.lo \
@@ -370,6 +391,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DATA = $(defexec_DATA) $(pkgconfig_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
@@ -723,6 +749,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -1008,7 +1035,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -1082,6 +1108,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1217,8 +1244,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1237,7 +1264,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1468,6 +1494,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1642,7 +1669,8 @@ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
 AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -I$(srcdir)/../gl \
        -I$(builddir)/../gl -I$(builddir)/includes -I$(builddir)/x509 \
        -I$(srcdir)/includes -I$(builddir)/includes -I$(srcdir)/x509 \
-       $(P11_KIT_CFLAGS) $(am__append_3) $(am__append_4)
+       $(LIBTASN1_CFLAGS) $(P11_KIT_CFLAGS) $(am__append_3) \
+       $(am__append_4)
 
 # Pkg-config script.
 pkgconfigdir = $(libdir)/pkgconfig
@@ -1659,13 +1687,14 @@ COBJECTS = gnutls_record.c gnutls_compress.c debug.c gnutls_cipher.c \
        gnutls_auth.c gnutls_v2_compat.c gnutls_datum.c \
        gnutls_session_pack.c gnutls_mpi.c gnutls_pk.c gnutls_cert.c \
        gnutls_global.c gnutls_constate.c gnutls_anon_cred.c \
-       pkix_asn1_tab.c gnutls_asn1_tab.c gnutls_mem.c gnutls_ui.c \
-       gnutls_sig.c gnutls_ecc.c gnutls_dh_primes.c gnutls_alert.c \
-       system.c gnutls_str.c gnutls_state.c gnutls_x509.c \
-       gnutls_rsa_export.c gnutls_helper.c gnutls_supplemental.c \
-       random.c crypto-api.c gnutls_privkey.c gnutls_pcert.c \
-       gnutls_pubkey.c locks.c hash.c gnutls_dtls.c system_override.c \
-       crypto-backend.c verify-tofu.c $(am__append_5)
+       $(srcdir)/pkix_asn1_tab.c $(srcdir)/gnutls_asn1_tab.c \
+       gnutls_mem.c gnutls_ui.c gnutls_sig.c gnutls_ecc.c \
+       gnutls_dh_primes.c gnutls_alert.c system.c gnutls_str.c \
+       gnutls_state.c gnutls_x509.c gnutls_rsa_export.c \
+       gnutls_helper.c gnutls_supplemental.c random.c crypto-api.c \
+       gnutls_privkey.c gnutls_pcert.c gnutls_pubkey.c locks.c hash.c \
+       gnutls_dtls.c system_override.c crypto-backend.c verify-tofu.c \
+       $(am__append_5)
 HFILES = abstract_int.h debug.h gnutls_compress.h gnutls_cipher.h \
        gnutls_buffers.h gnutls_errors.h gnutls_int.h gnutls_dtls.h \
        gnutls_handshake.h gnutls_num.h algorithms.h gnutls_dh.h \
@@ -1747,7 +1776,6 @@ gnutls.pc: $(top_builddir)/config.status $(srcdir)/gnutls.pc.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
        @$(NORMAL_INSTALL)
-       test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
        @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
        list2=; for p in $$list; do \
          if test -f $$p; then \
@@ -1755,6 +1783,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
          else :; fi; \
        done; \
        test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
          echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
          $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
        }
@@ -1870,6 +1900,20 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
+pkix_asn1_tab.lo: $(srcdir)/pkix_asn1_tab.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pkix_asn1_tab.lo -MD -MP -MF $(DEPDIR)/pkix_asn1_tab.Tpo -c -o pkix_asn1_tab.lo `test -f '$(srcdir)/pkix_asn1_tab.c' || echo '$(srcdir)/'`$(srcdir)/pkix_asn1_tab.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pkix_asn1_tab.Tpo $(DEPDIR)/pkix_asn1_tab.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/pkix_asn1_tab.c' object='pkix_asn1_tab.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pkix_asn1_tab.lo `test -f '$(srcdir)/pkix_asn1_tab.c' || echo '$(srcdir)/'`$(srcdir)/pkix_asn1_tab.c
+
+gnutls_asn1_tab.lo: $(srcdir)/gnutls_asn1_tab.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gnutls_asn1_tab.lo -MD -MP -MF $(DEPDIR)/gnutls_asn1_tab.Tpo -c -o gnutls_asn1_tab.lo `test -f '$(srcdir)/gnutls_asn1_tab.c' || echo '$(srcdir)/'`$(srcdir)/gnutls_asn1_tab.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gnutls_asn1_tab.Tpo $(DEPDIR)/gnutls_asn1_tab.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/gnutls_asn1_tab.c' object='gnutls_asn1_tab.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gnutls_asn1_tab.lo `test -f '$(srcdir)/gnutls_asn1_tab.c' || echo '$(srcdir)/'`$(srcdir)/gnutls_asn1_tab.c
+
 .cpp.o:
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@@ -1905,8 +1949,11 @@ clean-libtool:
        -rm -rf .libs _libs
 install-defexecDATA: $(defexec_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(defexecdir)" || $(MKDIR_P) "$(DESTDIR)$(defexecdir)"
        @list='$(defexec_DATA)'; test -n "$(defexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(defexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(defexecdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -1923,8 +1970,11 @@ uninstall-defexecDATA:
        dir='$(DESTDIR)$(defexecdir)'; $(am__uninstall_files_from_dir)
 install-pkgconfigDATA: $(pkgconfig_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
        @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -2107,13 +2157,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -2267,11 +2314,11 @@ uninstall-am: uninstall-defexecDATA uninstall-libLTLIBRARIES \
 
 @HAVE_LD_OUTPUT_DEF_TRUE@libgnutls-$(DLL_VERSION).def: libgnutls.la
 
-pkix_asn1_tab.c: pkix.asn
-       -asn1Parser pkix.asn pkix_asn1_tab.c
+pkix_asn1_tab.c: $(srcdir)/pkix.asn
+       -asn1Parser $(srcdir)/pkix.asn pkix_asn1_tab.c
 
-gnutls_asn1_tab.c: gnutls.asn
-       -asn1Parser gnutls.asn gnutls_asn1_tab.c
+gnutls_asn1_tab.c: $(srcdir)/gnutls.asn
+       -asn1Parser $(srcdir)/gnutls.asn gnutls_asn1_tab.c
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 429d27e..7a42b09 100644 (file)
@@ -29,8 +29,8 @@ int _gnutls_privkey_get_public_mpis (gnutls_privkey_t key,
                                      gnutls_pk_params_st*);
 
 int pubkey_to_bits(gnutls_pk_algorithm_t pk, gnutls_pk_params_st* params);
-int _gnutls_pubkey_compatible_with_sig(gnutls_pubkey_t pubkey, gnutls_protocol_t ver
-  gnutls_sign_algorithm_t sign);
+int _gnutls_pubkey_compatible_with_sig(gnutls_session_t, gnutls_pubkey_t pubkey
+  gnutls_protocol_t ver, gnutls_sign_algorithm_t sign);
 int _gnutls_pubkey_is_over_rsa_512(gnutls_pubkey_t pubkey);
 int
 _gnutls_pubkey_get_mpis (gnutls_pubkey_t key,
index d9d5837..a79b753 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,14 +94,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -234,6 +254,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -585,6 +610,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -870,7 +896,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -944,6 +969,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1079,8 +1105,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1099,7 +1125,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1330,6 +1355,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1757,13 +1783,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
index 9ecf75d..a785a04 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -81,14 +98,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -277,6 +297,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libx86_la_SOURCES)
 DIST_SOURCES = $(am__libx86_la_SOURCES_DIST)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -597,6 +622,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -882,7 +908,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -956,6 +981,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1091,8 +1117,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1111,7 +1137,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1342,6 +1367,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index b762952..f8720f5 100644 (file)
@@ -345,6 +345,7 @@ wrap_padlock_hmac_fast (gnutls_mac_algorithm_t algo,
           wrap_padlock_hmac_update (&ctx, text, text_size);
 
           wrap_padlock_hmac_output (&ctx, digest, ctx.length);
+          wrap_padlock_hmac_deinit (&ctx);
       }
 
     return 0;
index 44f3a43..80dbeaa 100644 (file)
@@ -361,6 +361,7 @@ int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
       wrap_padlock_hash_update(&ctx, text, text_size);
 
       wrap_padlock_hash_output(&ctx, digest, ctx.length);
+      wrap_padlock_hash_deinit(&ctx);
     }
   
   return 0;
index 748629c..1044c7d 100644 (file)
@@ -80,8 +80,6 @@ int _gnutls_cipher_algo_is_aead (gnutls_cipher_algorithm_t algorithm);
 int _gnutls_cipher_is_ok (gnutls_cipher_algorithm_t algorithm);
 int _gnutls_cipher_get_iv_size (gnutls_cipher_algorithm_t algorithm);
 int _gnutls_cipher_get_export_flag (gnutls_cipher_algorithm_t algorithm);
-/* at least for now iv_size == tag_size */
-#define _gnutls_cipher_get_tag_size _gnutls_cipher_get_iv_size
 
 /* Functions for key exchange. */
 int _gnutls_kx_needs_dh_params (gnutls_kx_algorithm_t algorithm);
index 74b4864..5180e21 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -223,6 +243,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgnutls_alg_la_SOURCES)
 DIST_SOURCES = $(libgnutls_alg_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -543,6 +568,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -828,7 +854,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -902,6 +927,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1037,8 +1063,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1057,7 +1083,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1288,6 +1313,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 678812e..bc35e58 100644 (file)
@@ -504,53 +504,53 @@ static const gnutls_cipher_suite_entry cs_algorithms[] = {
 /* ECC-ANON */
   ENTRY (GNUTLS_ECDH_ANON_NULL_SHA1,
                              GNUTLS_CIPHER_NULL, GNUTLS_KX_ANON_ECDH,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDH_ANON_3DES_EDE_CBC_SHA1,
                              GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ANON_ECDH,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDH_ANON_AES_128_CBC_SHA1,
                              GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ANON_ECDH,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDH_ANON_AES_256_CBC_SHA1,
                              GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ANON_ECDH,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
 /* ECC-RSA */
   ENTRY (GNUTLS_ECDHE_RSA_NULL_SHA1,
                              GNUTLS_CIPHER_NULL, GNUTLS_KX_ECDHE_RSA,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_RSA_3DES_EDE_CBC_SHA1,
                              GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ECDHE_RSA,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_RSA_AES_128_CBC_SHA1,
                              GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_RSA,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_RSA_AES_256_CBC_SHA1,
                              GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_RSA,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   /* ECDHE-ECDSA */
   ENTRY (GNUTLS_ECDHE_ECDSA_NULL_SHA1,
                              GNUTLS_CIPHER_NULL, GNUTLS_KX_ECDHE_ECDSA,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_ECDSA_3DES_EDE_CBC_SHA1,
                              GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ECDHE_ECDSA,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_ECDSA_AES_128_CBC_SHA1,
                              GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_ECDSA,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_ECDSA_AES_256_CBC_SHA1,
                              GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_ECDSA,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   /* More ECC */
 
@@ -573,31 +573,31 @@ static const gnutls_cipher_suite_entry cs_algorithms[] = {
   /* ECC - PSK */
   ENTRY (GNUTLS_ECDHE_PSK_3DES_EDE_CBC_SHA1,
                              GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ECDHE_PSK,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_PSK_AES_128_CBC_SHA1,
                              GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_PSK,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_PSK_AES_256_CBC_SHA1,
                              GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_PSK,
-                             GNUTLS_MAC_SHA1, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA1, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY (GNUTLS_ECDHE_PSK_AES_128_CBC_SHA256,
                              GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_PSK,
-                             GNUTLS_MAC_SHA256, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA256, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY_PRF (GNUTLS_ECDHE_PSK_AES_256_CBC_SHA384,
                              GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_PSK,
-                             GNUTLS_MAC_SHA384, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA384, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1, GNUTLS_MAC_SHA384),
   ENTRY (GNUTLS_ECDHE_PSK_NULL_SHA256,
                              GNUTLS_CIPHER_NULL, GNUTLS_KX_ECDHE_PSK,
-                             GNUTLS_MAC_SHA256, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA256, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1),
   ENTRY_PRF (GNUTLS_ECDHE_PSK_NULL_SHA384,
                              GNUTLS_CIPHER_NULL, GNUTLS_KX_ECDHE_PSK,
-                             GNUTLS_MAC_SHA384, GNUTLS_TLS1_0,
+                             GNUTLS_MAC_SHA384, GNUTLS_SSL3,
                              GNUTLS_VERSION_MAX, 1, GNUTLS_MAC_SHA384),
   ENTRY_PRF(GNUTLS_ECDHE_ECDSA_AES_256_GCM_SHA384,
                                 GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_ECDHE_ECDSA,
index 2075fd8..5556468 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -224,6 +244,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgnutls_auth_la_SOURCES)
 DIST_SOURCES = $(libgnutls_auth_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -544,6 +569,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -829,7 +855,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -903,6 +928,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1038,8 +1064,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1058,7 +1084,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1289,6 +1314,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index f8f55be..2ff0cc0 100644 (file)
@@ -73,7 +73,7 @@ typedef enum CertificateSigType
  * exported certificate struct (cert_auth_info_t)
  */
 static int
-_gnutls_copy_certificate_auth_info (cert_auth_info_t info, gnutls_pcert_st * certs, size_t ncerts, int subkey_used,     /* openpgp only */
+_gnutls_copy_certificate_auth_info (cert_auth_info_t info, gnutls_pcert_st * certs, size_t ncerts, /* openpgp only */
                                     void *keyid)
 {
   /* Copy peer's information to auth_info_t
@@ -123,7 +123,6 @@ _gnutls_copy_certificate_auth_info (cert_auth_info_t info, gnutls_pcert_st * cer
 #ifdef ENABLE_OPENPGP
   if (certs[0].type == GNUTLS_CRT_OPENPGP)
     {
-      info->use_subkey = subkey_used;
       if (keyid)
         memcpy (info->subkey_id, keyid, GNUTLS_OPENPGP_KEYID_SIZE);
     }
@@ -846,7 +845,7 @@ _gnutls_gen_x509_crt (gnutls_session_t session, gnutls_buffer_st * data)
 }
 
 enum PGPKeyDescriptorType
-{ PGP_KEY_FINGERPRINT, PGP_KEY, PGP_KEY_SUBKEY, PGP_KEY_FINGERPRINT_SUBKEY };
+{ PGP_EMPTY_KEY=1, PGP_KEY_SUBKEY, PGP_KEY_FINGERPRINT_SUBKEY };
 
 #ifdef ENABLE_OPENPGP
 static int
@@ -857,10 +856,11 @@ _gnutls_gen_openpgp_certificate (gnutls_session_t session,
   gnutls_pcert_st *apr_cert_list;
   gnutls_privkey_t apr_pkey;
   int apr_cert_list_length;
+  unsigned int subkey;
   uint8_t type;
   uint8_t fpr[20];
+  char buf[2*GNUTLS_OPENPGP_KEYID_SIZE+1];
   size_t fpr_size;
-  unsigned int use_subkey = 0;
 
   /* find the appropriate certificate */
   if ((ret =
@@ -873,19 +873,18 @@ _gnutls_gen_openpgp_certificate (gnutls_session_t session,
 
   ret = 3 + 1 + 3;
 
-
-
   if (apr_cert_list_length > 0)
     {
       fpr_size = sizeof (fpr);
       ret =
         gnutls_pubkey_get_openpgp_key_id (apr_cert_list[0].pubkey, 0, fpr,
-                                          &fpr_size, &use_subkey);
+                                          &fpr_size, &subkey);
       if (ret < 0)
         return gnutls_assert_val (ret);
 
-      if (use_subkey != 0)
-        ret += 1 + fpr_size;    /* for the keyid */
+      ret += 1 + fpr_size;    /* for the keyid */
+      _gnutls_handshake_log("Sending PGP key ID %s (%s)\n", _gnutls_bin2hex(fpr, GNUTLS_OPENPGP_KEYID_SIZE, buf, sizeof(buf), NULL), 
+                        subkey?"subkey":"master");
 
       ret += apr_cert_list[0].cert.size;
     }
@@ -897,25 +896,15 @@ _gnutls_gen_openpgp_certificate (gnutls_session_t session,
 
   if (apr_cert_list_length > 0)
     {
-      if (use_subkey != 0)
-        {
-          type = PGP_KEY_SUBKEY;
+      type = PGP_KEY_SUBKEY;
 
-          ret = _gnutls_buffer_append_data (data, &type, 1);
-          if (ret < 0)
-            return gnutls_assert_val (ret);
+      ret = _gnutls_buffer_append_data (data, &type, 1);
+      if (ret < 0)
+        return gnutls_assert_val (ret);
 
-          ret = _gnutls_buffer_append_data_prefix (data, 8, fpr, fpr_size);
-          if (ret < 0)
-            return gnutls_assert_val (ret);
-        }
-      else
-        {
-          type = PGP_KEY;
-          ret = _gnutls_buffer_append_data (data, &type, 1);
-          if (ret < 0)
-            return gnutls_assert_val (ret);
-        }
+      ret = _gnutls_buffer_append_data_prefix (data, 8, fpr, fpr_size);
+      if (ret < 0)
+        return gnutls_assert_val (ret);
 
       ret =
         _gnutls_buffer_append_data_prefix (data, 24,
@@ -926,7 +915,7 @@ _gnutls_gen_openpgp_certificate (gnutls_session_t session,
     }
   else                          /* empty - no certificate */
     {
-      type = PGP_KEY;
+      type = PGP_EMPTY_KEY;
 
       ret = _gnutls_buffer_append_data (data, &type, 1);
       if (ret < 0)
@@ -946,11 +935,12 @@ _gnutls_gen_openpgp_certificate_fpr (gnutls_session_t session,
 {
   int ret, packet_size;
   uint8_t type, fpr[20];
-  size_t fpr_size;
+  uint8_t id[20];
+  unsigned int subkey;
+  size_t fpr_size, id_size;
   gnutls_pcert_st *apr_cert_list;
   gnutls_privkey_t apr_pkey;
   int apr_cert_list_length;
-  unsigned int use_subkey = 0;
 
   /* find the appropriate certificate */
   if ((ret =
@@ -961,56 +951,43 @@ _gnutls_gen_openpgp_certificate_fpr (gnutls_session_t session,
       return ret;
     }
 
+  if (apr_cert_list_length <= 0)
+    return _gnutls_gen_openpgp_certificate (session, data);
+
+  id_size = sizeof (id);
+  ret =
+    gnutls_pubkey_get_openpgp_key_id (apr_cert_list[0].pubkey, 0, id,
+                                      &id_size, &subkey);
+  if (ret < 0)
+    return gnutls_assert_val (ret);
+
   fpr_size = sizeof (fpr);
   ret =
-    gnutls_pubkey_get_openpgp_key_id (apr_cert_list[0].pubkey, 0, fpr,
-                                      &fpr_size, &use_subkey);
+    gnutls_pubkey_get_openpgp_key_id (apr_cert_list[0].pubkey, 
+                                       GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT, 
+                                       fpr, &fpr_size, NULL);
   if (ret < 0)
     return gnutls_assert_val (ret);
 
   packet_size = 3 + 1;
-
-  if (use_subkey)
-    packet_size += 1 + fpr_size;        /* for the keyid */
+  packet_size += 1 + fpr_size;        /* for the keyid */
 
   /* Only v4 fingerprints are sent 
    */
-  if (apr_cert_list_length > 0)
-    packet_size += 20 + 1;
-  else                          /* empty certificate case */
-    return _gnutls_gen_openpgp_certificate (session, data);
+  packet_size += 20 + 1;
 
   ret = _gnutls_buffer_append_prefix (data, 24, packet_size - 3);
   if (ret < 0)
     return gnutls_assert_val (ret);
 
-  if (use_subkey)
-    {
-      type = PGP_KEY_FINGERPRINT_SUBKEY;
-      ret = _gnutls_buffer_append_data (data, &type, 1);
-      if (ret < 0)
-        return gnutls_assert_val (ret);
-
-      ret = _gnutls_buffer_append_data_prefix (data, 8, fpr, fpr_size);
-      if (ret < 0)
-        return gnutls_assert_val (ret);
-    }
-  else
-    {
-      type = PGP_KEY_FINGERPRINT;       /* key fingerprint */
-      ret = _gnutls_buffer_append_data (data, &type, 1);
-      if (ret < 0)
-        return gnutls_assert_val (ret);
-    }
+  type = PGP_KEY_FINGERPRINT_SUBKEY;
+  ret = _gnutls_buffer_append_data (data, &type, 1);
+  if (ret < 0)
+    return gnutls_assert_val (ret);
 
-  fpr_size = sizeof (fpr);
-  if ((ret =
-       _gnutls_openpgp_fingerprint (&apr_cert_list[0].cert, fpr,
-                                    &fpr_size)) < 0)
-    {
-      gnutls_assert ();
-      return ret;
-    }
+  ret = _gnutls_buffer_append_data_prefix (data, 8, id, id_size);
+  if (ret < 0)
+    return gnutls_assert_val (ret);
 
   ret = _gnutls_buffer_append_data_prefix (data, 8, fpr, fpr_size);
   if (ret < 0)
@@ -1182,7 +1159,7 @@ _gnutls_proc_x509_server_crt (gnutls_session_t session,
   if ((ret =
        _gnutls_copy_certificate_auth_info (info,
                                            peer_certificate_list,
-                                           peer_certificate_list_size, 0,
+                                           peer_certificate_list_size,
                                            NULL)) < 0)
     {
       gnutls_assert ();
@@ -1209,19 +1186,18 @@ cleanup:
 #ifdef ENABLE_OPENPGP
 static int
 _gnutls_proc_openpgp_server_crt (gnutls_session_t session,
-                                         uint8_t * data, size_t data_size)
+                                 uint8_t * data, size_t data_size)
 {
   int size, ret, len;
   uint8_t *p = data;
   cert_auth_info_t info;
   gnutls_certificate_credentials_t cred;
   ssize_t dsize = data_size;
-  int x, key_type;
+  int key_type;
   gnutls_pcert_st *peer_certificate_list = NULL;
-  int peer_certificate_list_size = 0;
   gnutls_datum_t tmp, akey = { NULL, 0 };
+  unsigned int compat = 0;
   uint8_t subkey_id[GNUTLS_OPENPGP_KEYID_SIZE];
-  unsigned int subkey_id_set = 0;
 
   cred = (gnutls_certificate_credentials_t)
     _gnutls_get_cred (session->key, GNUTLS_CRD_CERTIFICATE, NULL);
@@ -1279,16 +1255,10 @@ _gnutls_proc_openpgp_server_crt (gnutls_session_t session,
       DECR_LEN (dsize, GNUTLS_OPENPGP_KEYID_SIZE);
       memcpy (subkey_id, p, GNUTLS_OPENPGP_KEYID_SIZE);
       p += GNUTLS_OPENPGP_KEYID_SIZE;
-
-      subkey_id_set = 1;
-
     }
 
-  /* read the actual key or fingerprint */
-  if (key_type == PGP_KEY_FINGERPRINT
-      || key_type == PGP_KEY_FINGERPRINT_SUBKEY)
-    {                           /* the fingerprint */
-
+  if (key_type == PGP_KEY_FINGERPRINT_SUBKEY)
+    {
       DECR_LEN (dsize, 1);
       len = (uint8_t) * p;
       p++;
@@ -1311,10 +1281,8 @@ _gnutls_proc_openpgp_server_crt (gnutls_session_t session,
           return ret;
         }
       tmp = akey;
-      peer_certificate_list_size++;
-
     }
-  else if (key_type == PGP_KEY || key_type == PGP_KEY_SUBKEY)
+  else if (key_type == PGP_KEY_SUBKEY)
     {                           /* the whole key */
 
       /* Read the actual certificate */
@@ -1326,16 +1294,36 @@ _gnutls_proc_openpgp_server_crt (gnutls_session_t session,
         {
           gnutls_assert ();
           /* no certificate was sent */
-          return GNUTLS_E_NO_CERTIFICATE_FOUND;
+          return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
         }
 
       DECR_LEN (dsize, len);
-      peer_certificate_list_size++;
 
       tmp.size = len;
       tmp.data = p;
 
     }
+  else if (key_type == PGP_EMPTY_KEY)
+    {                           /* the whole key */
+
+      /* Read the actual certificate */
+      DECR_LEN (dsize, 3);
+      len = _gnutls_read_uint24 (p);
+      p += 3;
+
+      if (len == 0) /* PGP_EMPTY_KEY */
+        return GNUTLS_E_NO_CERTIFICATE_FOUND;
+      /* Uncomment to remove compatibility with RFC5081.
+      else
+        return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);*/
+
+      DECR_LEN (dsize, len);
+
+      tmp.size = len;
+      tmp.data = p;
+      
+      compat = 1;
+    }
   else
     {
       gnutls_assert ();
@@ -1344,16 +1332,8 @@ _gnutls_proc_openpgp_server_crt (gnutls_session_t session,
 
   /* ok we now have the peer's key in tmp datum
    */
-
-  if (peer_certificate_list_size == 0)
-    {
-      gnutls_assert ();
-      return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
-    }
-
   peer_certificate_list =
-    gnutls_calloc (1,
-                   sizeof (gnutls_pcert_st) * (peer_certificate_list_size));
+    gnutls_calloc (1, sizeof (gnutls_pcert_st));
   if (peer_certificate_list == NULL)
     {
       gnutls_assert ();
@@ -1365,21 +1345,24 @@ _gnutls_proc_openpgp_server_crt (gnutls_session_t session,
     gnutls_pcert_import_openpgp_raw (&peer_certificate_list[0],
                                      &tmp,
                                      GNUTLS_OPENPGP_FMT_RAW,
-                                     (subkey_id_set != 0) ? subkey_id : NULL,
+                                     (compat==0)?subkey_id:NULL,
                                      0);
   if (ret < 0)
     {
       gnutls_assert ();
       goto cleanup;
     }
+  
+  if (compat != 0)
+    {
+      size_t t = sizeof(subkey_id);
+      gnutls_pubkey_get_openpgp_key_id(peer_certificate_list[0].pubkey, 0, subkey_id, &t, NULL);
+    }
 
   ret =
     _gnutls_copy_certificate_auth_info (info,
                                         peer_certificate_list,
-                                        peer_certificate_list_size,
-                                        subkey_id_set,
-                                        (subkey_id_set !=
-                                         0) ? subkey_id : NULL);
+                                        1, subkey_id);
   if (ret < 0)
     {
       gnutls_assert ();
@@ -1399,7 +1382,7 @@ _gnutls_proc_openpgp_server_crt (gnutls_session_t session,
 cleanup:
 
   _gnutls_free_datum (&akey);
-  CLEAR_CERTS;
+  gnutls_pcert_deinit(&peer_certificate_list[0]);
   gnutls_free (peer_certificate_list);
   return ret;
 
@@ -1586,7 +1569,6 @@ _gnutls_gen_cert_client_crt_vrfy (gnutls_session_t session,
   gnutls_privkey_t apr_pkey;
   int apr_cert_list_length;
   gnutls_datum_t signature = { NULL, 0 };
-  int total_data;
   gnutls_sign_algorithm_t sign_algo;
   gnutls_protocol_t ver = gnutls_protocol_get_version (session);
 
@@ -1616,14 +1598,6 @@ _gnutls_gen_cert_client_crt_vrfy (gnutls_session_t session,
       return 0;
     }
 
-  total_data = signature.size + 2;
-
-  /* add hash and signature algorithms */
-  if (_gnutls_version_has_selectable_sighash (ver))
-    {
-      total_data += 2;
-    }
-
   if (_gnutls_version_has_selectable_sighash (ver))
     {
       const sign_algorithm_st *aid;
@@ -1740,7 +1714,7 @@ _gnutls_gen_cert_server_cert_req (gnutls_session_t session,
                                   gnutls_buffer_st * data)
 {
   gnutls_certificate_credentials_t cred;
-  int size, ret;
+  int ret;
   uint8_t tmp_data[CERTTYPE_SIZE];
   gnutls_protocol_t ver = gnutls_protocol_get_version (session);
 
@@ -1757,18 +1731,6 @@ _gnutls_gen_cert_server_cert_req (gnutls_session_t session,
       return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
     }
 
-  size = CERTTYPE_SIZE + 2;     /* 2 for gnutls_certificate_type_t + 2 for size of rdn_seq 
-                                 */
-
-  if (session->security_parameters.cert_type == GNUTLS_CRT_X509 &&
-      session->internals.ignore_rdn_sequence == 0)
-    size += cred->x509_rdn_sequence.size;
-
-  if (_gnutls_version_has_selectable_sighash (ver))
-    /* Need two bytes to announce the number of supported hash
-       functions (see below).  */
-    size += MAX_SIGN_ALGO_SIZE;
-
   tmp_data[0] = CERTTYPE_SIZE - 1;
   tmp_data[1] = RSA_SIGN;
   tmp_data[2] = DSA_SIGN;
@@ -1790,9 +1752,6 @@ _gnutls_gen_cert_server_cert_req (gnutls_session_t session,
           return ret;
         }
 
-      /* recalculate size */
-      size -= MAX_SIGN_ALGO_SIZE + ret;
-
       ret = _gnutls_buffer_append_data (data, p, ret);
       if (ret < 0)
         return gnutls_assert_val (ret);
index fd4e5a4..310831e 100644 (file)
@@ -112,7 +112,6 @@ typedef struct cert_auth_info_st
 
   gnutls_certificate_type_t cert_type;
 #ifdef ENABLE_OPENPGP
-  int use_subkey;
   uint8_t subkey_id[GNUTLS_OPENPGP_KEYID_SIZE];
 #endif
 } *cert_auth_info_t;
index f4bba1a..ee1d5c7 100644 (file)
@@ -228,7 +228,6 @@ _gnutls_proc_dh_common_server_kx (gnutls_session_t session,
 
   DECR_LEN (data_size, n_Y);
   data_Y = &data[i];
-  i += n_Y;
 
   _n_Y = n_Y;
   _n_g = n_g;
@@ -297,26 +296,27 @@ _gnutls_dh_common_print_server_kx (gnutls_session_t session,
   ret = _gnutls_buffer_append_mpi(data, 16, p, 0);
   if (ret < 0)
     {
-      ret = gnutls_assert_val(ret);
+      gnutls_assert();
       goto cleanup;
     }
 
   ret = _gnutls_buffer_append_mpi(data, 16, g, 0);
   if (ret < 0)
     {
-      ret = gnutls_assert_val(ret);
+      gnutls_assert();
       goto cleanup;
     }
 
   ret = _gnutls_buffer_append_mpi(data, 16, Y, 0);
   if (ret < 0)
     {
-      ret = gnutls_assert_val(ret);
+      gnutls_assert();
       goto cleanup;
     }
-
+  
+  ret = data->length;
 cleanup:
   _gnutls_mpi_release (&Y);
 
-  return data->length;
+  return ret;
 }
index 77a61f9..690fb52 100644 (file)
@@ -130,7 +130,7 @@ _gnutls_get_public_rsa_params (gnutls_session_t session,
 cleanup:
   gnutls_pcert_deinit (&peer_cert);
 
-  return 0;
+  return ret;
 }
 
 static int
@@ -185,8 +185,9 @@ proc_rsa_client_kx (gnutls_session_t session, uint8_t * data,
       /* If the secret was properly formatted, then
        * check the version number.
        */
-      if (_gnutls_get_adv_version_major (session) != plaintext.data[0]
-          || _gnutls_get_adv_version_minor (session) != plaintext.data[1])
+      if (_gnutls_get_adv_version_major (session) != plaintext.data[0] ||
+          (session->internals.priorities.allow_wrong_pms == 0 && 
+           _gnutls_get_adv_version_minor (session) != plaintext.data[1]))
         {
           /* No error is returned here, if the version number check
            * fails. We proceed normally.
@@ -196,7 +197,7 @@ proc_rsa_client_kx (gnutls_session_t session, uint8_t * data,
            */
           gnutls_assert ();
           _gnutls_audit_log
-            (session, "auth_rsa: Possible PKCS #1 version check format attack\n");
+                (session, "auth_rsa: Possible PKCS #1 version check format attack\n");
         }
     }
 
index f93211d..d94023c 100644 (file)
@@ -409,7 +409,6 @@ proc_rsa_export_server_kx (gnutls_session_t session,
 
   DECR_LEN (data_size, n_e);
   data_e = &data[i];
-  i += n_e;
 
   _n_e = n_e;
   _n_m = n_m;
index c00a6bb..18a96ab 100644 (file)
@@ -45,7 +45,7 @@ static int _randomize_pwd_entry (SRP_PWD_ENTRY * entry);
  * string(username):base64(v):base64(salt):int(index)
  */
 static int
-pwd_put_values (SRP_PWD_ENTRY * entry, char *str)
+parse_tpasswd_values (SRP_PWD_ENTRY * entry, char *str)
 {
   char *p;
   int len, ret;
@@ -135,7 +135,7 @@ pwd_put_values (SRP_PWD_ENTRY * entry, char *str)
  * int(index):base64(n):int(g)
  */
 static int
-pwd_put_values2 (SRP_PWD_ENTRY * entry, char *str)
+parse_tpasswd_conf_values (SRP_PWD_ENTRY * entry, char *str)
 {
   char *p;
   int len;
@@ -228,7 +228,7 @@ pwd_read_conf (const char *pconf_file, SRP_PWD_ENTRY * entry, int idx)
         }
       if (strncmp (indexstr, line, MAX (i, len)) == 0)
         {
-          if ((idx = pwd_put_values2 (entry, line)) >= 0)
+          if ((idx = parse_tpasswd_conf_values (entry, line)) >= 0)
             {
               ret = 0;
               goto cleanup;
@@ -257,7 +257,7 @@ _gnutls_srp_pwd_read_entry (gnutls_session_t state, char *username,
   char line[2 * 1024];
   unsigned i, len;
   int ret;
-  int idx, last_idx;
+  int idx;
   SRP_PWD_ENTRY *entry = NULL;
 
   *_entry = gnutls_calloc (1, sizeof (SRP_PWD_ENTRY));
@@ -334,8 +334,6 @@ _gnutls_srp_pwd_read_entry (gnutls_session_t state, char *username,
       goto cleanup;
     }
 
-  last_idx = 1;                 /* a default value */
-
   len = strlen (username);
   while (fgets (line, sizeof (line), fd) != NULL)
     {
@@ -348,13 +346,11 @@ _gnutls_srp_pwd_read_entry (gnutls_session_t state, char *username,
 
       if (strncmp (username, line, MAX (i, len)) == 0)
         {
-          if ((idx = pwd_put_values (entry, line)) >= 0)
+          if ((idx = parse_tpasswd_values (entry, line)) >= 0)
             {
               /* Keep the last index in memory, so we can retrieve fake parameters (g,n)
                * when the user does not exist.
                */
-              /* XXX: last_idx will not be read as both if block branches return. */
-              last_idx = idx;
               if (pwd_read_conf (cred->password_conf_file, entry, idx) == 0)
                 {
                   goto found;
@@ -378,7 +374,7 @@ _gnutls_srp_pwd_read_entry (gnutls_session_t state, char *username,
   /* user was not found. Fake him. Actually read the g,n values from
    * the last index found and randomize the entry.
    */
-  if (pwd_read_conf (cred->password_conf_file, entry, last_idx) == 0)
+  if (pwd_read_conf (cred->password_conf_file, entry, 1) == 0)
     {
       ret = _randomize_pwd_entry (entry);
       if (ret < 0)
@@ -390,11 +386,12 @@ _gnutls_srp_pwd_read_entry (gnutls_session_t state, char *username,
       goto found;
     }
 
+  ret = GNUTLS_E_SRP_PWD_ERROR;
 cleanup:
   gnutls_assert ();
   if (fd) fclose(fd);
   _gnutls_srp_entry_free (entry);
-  return GNUTLS_E_SRP_PWD_ERROR;
+  return ret;
 
 found:
   if (fd) fclose(fd);
index 3bf2efe..dc67e73 100644 (file)
@@ -243,7 +243,11 @@ gnutls_cipher_decrypt2 (gnutls_cipher_hd_t handle, const void *ciphertext,
 {
 api_cipher_hd_st * h = handle;
 
-  return _gnutls_cipher_decrypt2 (&h->ctx_dec, ciphertext,
+  if (_gnutls_cipher_is_aead( &h->ctx_enc)!=0)
+    return _gnutls_cipher_decrypt2 (&h->ctx_enc, ciphertext,
+                                  ciphertextlen, text, textlen);
+  else
+    return _gnutls_cipher_decrypt2 (&h->ctx_dec, ciphertext,
                                   ciphertextlen, text, textlen);
 }
 
index 6d08155..93fb799 100644 (file)
@@ -52,6 +52,9 @@ _algo_register (algo_list * al, int algorithm, int priority, const void *s)
 {
   algo_list *cl;
   algo_list *last_cl = al;
+  
+  if (al == NULL)
+    return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
 
   /* look if there is any cipher with lowest priority. In that case do not add.
    */
index 7398acc..b27a19e 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -223,6 +243,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgnutls_ext_la_SOURCES)
 DIST_SOURCES = $(libgnutls_ext_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -543,6 +568,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -828,7 +854,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -902,6 +927,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1037,8 +1063,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1057,7 +1083,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1288,6 +1313,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 1d6b67c..98629ef 100644 (file)
@@ -271,8 +271,6 @@ _gnutls_ext_sr_send_cs (gnutls_session_t session)
         }
       epriv.ptr = priv;
     }
-  else
-    priv = epriv.ptr;
 
   if (set != 0)
     _gnutls_ext_set_session_data (session,
index 626c976..38a4538 100644 (file)
@@ -54,7 +54,7 @@ static void session_ticket_deinit_data (extension_priv_data_t priv);
 extension_entry_st ext_mod_session_ticket = {
   .name = "SESSION TICKET",
   .type = GNUTLS_EXTENSION_SESSION_TICKET,
-  .parse_type = GNUTLS_EXT_TLS,
+  .parse_type = GNUTLS_EXT_MANDATORY,
 
   .recv_func = session_ticket_recv_params,
   .send_func = session_ticket_send_params,
index 1da555e..46dc5a6 100644 (file)
@@ -271,7 +271,10 @@ _gnutls_session_get_sign_algo (gnutls_session_t session, gnutls_pcert_st* cert)
     {
       if (_gnutls_sign_get_pk_algorithm (priv->sign_algorithms[i]) == cert_algo)
         {
-          if (_gnutls_pubkey_compatible_with_sig(cert->pubkey, ver, priv->sign_algorithms[i]) < 0)
+          if (_gnutls_pubkey_compatible_with_sig(session, cert->pubkey, ver, priv->sign_algorithms[i]) < 0)
+            continue;
+
+          if (_gnutls_session_sign_algo_enabled(session, priv->sign_algorithms[i]) < 0)
             continue;
 
           return priv->sign_algorithms[i];
index d785acf..d708bcb 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -221,6 +241,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgnutls_extras_la_SOURCES)
 DIST_SOURCES = $(libgnutls_extras_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -541,6 +566,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -826,7 +852,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -900,6 +925,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1035,8 +1061,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1055,7 +1081,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1286,6 +1311,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 64e0519..9eaae4e 100644 (file)
@@ -17,7 +17,7 @@ RSAPublicKey ::= SEQUENCE {
 -- CRT algorithm.
 --
 RSAPrivateKey ::= SEQUENCE {
-  version          Version,
+  version          INTEGER,
   modulus          INTEGER, -- (Usually large) n
   publicExponent   INTEGER, -- (Usually small) e
   privateExponent  INTEGER, -- (Usually large) d
@@ -29,9 +29,6 @@ RSAPrivateKey ::= SEQUENCE {
   otherPrimeInfos  OtherPrimeInfos OPTIONAL
 }
 
-Version ::= INTEGER { two-prime(0), multi(1) }
--- (CONSTRAINED BY { version must be multi if otherPrimeInfos present }) --
-
 OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo
 
 OtherPrimeInfo ::= SEQUENCE {
index 74af21d..1079523 100644 (file)
@@ -11,7 +11,7 @@ const ASN1_ARRAY_TYPE gnutls_asn1_tab[] = {
   { "modulus", 1073741827, NULL },
   { "publicExponent", 3, NULL },
   { "RSAPrivateKey", 1610612741, NULL },
-  { "version", 1073741826, "Version"},
+  { "version", 1073741827, NULL },
   { "modulus", 1073741827, NULL },
   { "publicExponent", 1073741827, NULL },
   { "privateExponent", 1073741827, NULL },
@@ -21,9 +21,6 @@ const ASN1_ARRAY_TYPE gnutls_asn1_tab[] = {
   { "exponent2", 1073741827, NULL },
   { "coefficient", 1073741827, NULL },
   { "otherPrimeInfos", 16386, "OtherPrimeInfos"},
-  { "Version", 1610874883, NULL },
-  { "two-prime", 1073741825, "0"},
-  { "multi", 1, "1"},
   { "OtherPrimeInfos", 1612709899, NULL },
   { "MAX", 1074266122, "1"},
   { NULL, 2, "OtherPrimeInfo"},
index ac25051..3284683 100644 (file)
@@ -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;
 }
@@ -825,4 +826,3 @@ gnutls_sign_callback_get (gnutls_session_t session, void **userdata)
   return session->internals.sign_func;
 }
 
-
index 618aab2..f515257 100644 (file)
@@ -1,5 +1,6 @@
 /*
- * Copyright (C) 2000-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2000-2013 Free Software Foundation, Inc.
+ * Copyright (C) 2013 Nikos Mavrogiannopoulos
  *
  * Author: Nikos Mavrogiannopoulos
  *
@@ -104,7 +105,8 @@ _gnutls_encrypt (gnutls_session_t session, const uint8_t * headers,
       if (comp.data == NULL)
         return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
       
-      ret = _gnutls_compress( &params->write.compression_state, data, data_size, comp.data, comp.size);
+      ret = _gnutls_compress(&params->write.compression_state, data, data_size, 
+                             comp.data, comp.size, session->internals.priorities.stateless_compression);
       if (ret < 0)
         {
           gnutls_free(comp.data);
@@ -426,6 +428,36 @@ compressed_to_ciphertext (gnutls_session_t session,
   return length;
 }
 
+static void dummy_wait(record_parameters_st * params, gnutls_datum_t* plaintext, 
+                       unsigned pad_failed, unsigned int pad, unsigned total)
+{
+  /* this hack is only needed on CBC ciphers */
+  if (_gnutls_cipher_is_block (params->cipher_algorithm) == CIPHER_BLOCK)
+    {
+      unsigned len;
+
+      /* force an additional hash compression function evaluation to prevent timing 
+       * attacks that distinguish between wrong-mac + correct pad, from wrong-mac + incorrect pad.
+       */
+      if (pad_failed == 0 && pad > 0) 
+        {
+          len = _gnutls_get_hash_block_len(params->mac_algorithm);
+          if (len > 0)
+            {
+              /* This is really specific to the current hash functions.
+               * It should be removed once a protocol fix is in place.
+               */
+             if ((pad+total) % len > len-9 && total % len <= len-9) 
+               {
+                 if (len < plaintext->size)
+                    _gnutls_auth_cipher_add_auth (&params->read.cipher_state, plaintext->data, len);
+                  else
+                    _gnutls_auth_cipher_add_auth (&params->read.cipher_state, plaintext->data, plaintext->size);
+                }
+            }
+        }
+    }
+}
 
 /* Deciphers the ciphertext packet, and puts the result to compress_data, of compress_size.
  * Returns the actual compressed packet size.
@@ -439,10 +471,12 @@ ciphertext_to_compressed (gnutls_session_t session,
                           uint64* sequence)
 {
   uint8_t tag[MAX_HASH_SIZE];
-  uint8_t pad;
+  unsigned int pad = 0, i;
   int length, length_to_decrypt;
   uint16_t blocksize;
-  int ret, i, pad_failed = 0;
+  int ret;
+  unsigned int tmp_pad_failed = 0;
+  unsigned int pad_failed = 0;
   uint8_t preamble[MAX_PREAMBLE_SIZE];
   unsigned int preamble_size;
   unsigned int ver = gnutls_protocol_get_version (session);
@@ -451,6 +485,7 @@ ciphertext_to_compressed (gnutls_session_t session,
 
   blocksize = gnutls_cipher_get_block_size (params->cipher_algorithm);
 
+
   /* actual decryption (inplace)
    */
   switch (_gnutls_cipher_is_block (params->cipher_algorithm))
@@ -523,7 +558,7 @@ ciphertext_to_compressed (gnutls_session_t session,
           ciphertext->data += blocksize;
         }
 
-      if (ciphertext->size < tag_size)
+      if (ciphertext->size < tag_size+1)
         return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
 
       /* we don't use the auth_cipher interface here, since
@@ -536,42 +571,30 @@ ciphertext_to_compressed (gnutls_session_t session,
              ciphertext->data, ciphertext->size)) < 0)
         return gnutls_assert_val(ret);
 
-      pad = ciphertext->data[ciphertext->size - 1] + 1;   /* pad */
+      pad = ciphertext->data[ciphertext->size - 1];   /* pad */
 
-
-      if ((int) pad > (int) ciphertext->size - tag_size)
-        {
-          gnutls_assert ();
-          _gnutls_record_log
-            ("REC[%p]: Short record length %d > %d - %d (under attack?)\n",
-             session, pad, ciphertext->size, tag_size);
-          /* We do not fail here. We check below for the
-           * the pad_failed. If zero means success.
-           */
-          pad_failed = GNUTLS_E_DECRYPTION_FAILED;
-          pad %= blocksize;
-        }
-
-      length = ciphertext->size - tag_size - pad;
-
-      /* Check the pading bytes (TLS 1.x)
+      /* Check the pading bytes (TLS 1.x). 
+       * Note that we access all 256 bytes of ciphertext for padding check
+       * because there is a timing channel in that memory access (in certain CPUs).
        */
       if (ver != GNUTLS_SSL3)
-        for (i = 2; i < pad; i++)
+        for (i = 2; i <= MIN(256, ciphertext->size); i++)
           {
-            if (ciphertext->data[ciphertext->size - i] !=
-                ciphertext->data[ciphertext->size - 1])
-              pad_failed = GNUTLS_E_DECRYPTION_FAILED;
+            tmp_pad_failed |= (ciphertext->data[ciphertext->size - i] != pad);
+            pad_failed |= ((i<= (1+pad)) & (tmp_pad_failed));
           }
 
-      if (length < 0)
+      if (pad_failed != 0 || (1+pad > ((int) ciphertext->size - tag_size)))
         {
-          /* Setting a proper length to prevent timing differences in
-           * processing of records with invalid encryption.
+          /* We do not fail here. We check below for the
+           * the pad_failed. If zero means success.
            */
-          length = ciphertext->size - tag_size;
+          pad_failed = 1;
+          pad = 0;
         }
 
+      length = ciphertext->size - tag_size - pad - 1;
+
       /* Pass the type, version, length and compressed through
        * MAC.
        */
@@ -595,15 +618,16 @@ ciphertext_to_compressed (gnutls_session_t session,
   if (ret < 0)
     return gnutls_assert_val(ret);
 
-  /* This one was introduced to avoid a timing attack against the TLS
-   * 1.0 protocol.
-   */
-  /* HMAC was not the same. 
-   */
   if (memcmp (tag, &ciphertext->data[length], tag_size) != 0 || pad_failed != 0)
-    return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+    {
+      gnutls_datum compressed = {compress_data, compress_size};
+      /* HMAC was not the same. */
+      dummy_wait(params, &compressed, pad_failed, pad, length+preamble_size);
+
+      return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+    }
 
-  /* copy the decrypted stuff to compress_data.
+  /* copy the decrypted stuff to compressed_data.
    */
   if (compress_size < length)
     return gnutls_assert_val(GNUTLS_E_DECOMPRESSION_FAILED);
index 01728ca..aec03c8 100644 (file)
@@ -330,7 +330,7 @@ _gnutls_comp_deinit (comp_hd_st* handle, int d)
 int
 _gnutls_compress (comp_hd_st *handle, const uint8_t * plain,
                   size_t plain_size, uint8_t * compressed,
-                  size_t max_comp_size)
+                  size_t max_comp_size, unsigned int stateless)
 {
   int compressed_size = GNUTLS_E_COMPRESSION_FAILED;
 
@@ -349,6 +349,14 @@ _gnutls_compress (comp_hd_st *handle, const uint8_t * plain,
       {
         z_stream *zhandle;
         int err;
+        int type;
+        
+        if (stateless)
+          {
+            type = Z_FULL_FLUSH;
+          }
+        else
+          type = Z_SYNC_FLUSH;
 
         zhandle = handle->handle;
 
@@ -357,7 +365,7 @@ _gnutls_compress (comp_hd_st *handle, const uint8_t * plain,
         zhandle->next_out = (Bytef *) compressed;
         zhandle->avail_out = max_comp_size;
 
-        err = deflate (zhandle, Z_SYNC_FLUSH);
+        err = deflate (zhandle, type);
         if (err != Z_OK || zhandle->avail_in != 0)
           return gnutls_assert_val(GNUTLS_E_COMPRESSION_FAILED);
 
index 151e54f..938c2eb 100644 (file)
@@ -48,7 +48,7 @@ int _gnutls_decompress (comp_hd_st* handle, uint8_t * compressed,
                         size_t compressed_size, uint8_t * plain,
                         size_t max_plain_size);
 int _gnutls_compress (comp_hd_st*, const uint8_t * plain, size_t plain_size,
-                      uint8_t * compressed, size_t max_comp_size);
+                      uint8_t * compressed, size_t max_comp_size, unsigned int stateless);
 
 struct gnutls_compression_entry
 {
index c4aa4bc..9426752 100644 (file)
@@ -248,8 +248,6 @@ _gnutls_set_keys (gnutls_session_t session, record_parameters_st * params,
           (&server_write->IV, &key_block[pos], IV_size) < 0)
         return gnutls_assert_val (GNUTLS_E_MEMORY_ERROR);
 
-      pos += IV_size;
-
     }
   else if (IV_size > 0 && export_flag != 0)
     {
index 135a595..6abf2bb 100644 (file)
@@ -170,8 +170,7 @@ static int
 db_func_is_ok (gnutls_session_t session)
 {
   if (session->internals.db_store_func != NULL &&
-      session->internals.db_retrieve_func != NULL &&
-      session->internals.db_remove_func != NULL)
+      session->internals.db_retrieve_func != NULL)
     return 0;
   else
     return GNUTLS_E_DB_ERROR;
@@ -210,8 +209,7 @@ store_session (gnutls_session_t session,
     }
 
   /* if we can't read why bother writing? */
-  if (session->internals.db_store_func != NULL)
-    ret = session->internals.db_store_func (session->internals.db_ptr,
+  ret = session->internals.db_store_func (session->internals.db_ptr,
                                            session_id, session_data);
 
   return (ret == 0 ? ret : GNUTLS_E_DB_ERROR);
@@ -253,26 +251,6 @@ _gnutls_server_register_current_session (gnutls_session_t session)
   return ret;
 }
 
-/* Retrieves session data from the db backend.
- */
-static gnutls_datum_t
-retrieve_session (gnutls_session_t session, gnutls_datum_t session_id)
-{
-  gnutls_datum_t ret = { NULL, 0 };
-
-  if (session_id.data == NULL || session_id.size == 0)
-    {
-      gnutls_assert ();
-      return ret;
-    }
-
-  if (session->internals.db_retrieve_func != NULL)
-    ret = session->internals.db_retrieve_func (session->internals.db_ptr,
-                                              session_id);
-
-  return ret;
-}
-
 int
 _gnutls_server_restore_session (gnutls_session_t session,
                                 uint8_t * session_id, int session_id_size)
@@ -281,6 +259,19 @@ _gnutls_server_restore_session (gnutls_session_t session,
   gnutls_datum_t key;
   int ret;
 
+  if (session_id == NULL || session_id_size == 0)
+    {
+      gnutls_assert ();
+      return GNUTLS_E_INVALID_REQUEST;
+    }
+
+  if (session->internals.premaster_set != 0) 
+    { /* hack for CISCO's DTLS-0.9 */
+      if (session_id_size == session->internals.resumed_security_parameters.session_id_size &&
+        memcmp(session_id, session->internals.resumed_security_parameters.session_id, session_id_size) == 0)
+        return 0;
+    }
+
   key.data = session_id;
   key.size = session_id_size;
 
@@ -290,7 +281,8 @@ _gnutls_server_restore_session (gnutls_session_t session,
       return GNUTLS_E_INVALID_SESSION;
     }
 
-  data = retrieve_session (session, key);
+  data = session->internals.db_retrieve_func (session->internals.db_ptr,
+                                              key);
 
   if (data.data == NULL)
     {
@@ -332,7 +324,7 @@ gnutls_db_remove_session (gnutls_session_t session)
   session_id.data = session->security_parameters.session_id;
   session_id.size = session->security_parameters.session_id_size;
 
-  if (db_func_is_ok (session) != 0)
+  if (session->internals.db_remove_func == NULL)
     {
       gnutls_assert ();
       return /* GNUTLS_E_DB_ERROR */;
@@ -345,11 +337,8 @@ gnutls_db_remove_session (gnutls_session_t session)
     }
 
   /* if we can't read why bother writing? */
-  if (session->internals.db_remove_func != NULL)
-    {
-      ret = session->internals.db_remove_func (session->internals.db_ptr,
+  ret = session->internals.db_remove_func (session->internals.db_ptr,
                                               session_id);
-      if (ret != 0)
-       gnutls_assert ();
-    }
+  if (ret != 0)
+    gnutls_assert ();
 }
index ae6faf9..fe3124f 100644 (file)
@@ -157,15 +157,6 @@ static int drop_usage_count(gnutls_session_t session, mbuffer_head_st *const sen
   return 0;
 }
 
-/* This function is to be called from record layer once
- * a handshake replay is detected. It will make sure
- * it transmits only once per few seconds. Otherwise
- * it is the same as _dtls_transmit().
- */
-int _dtls_retransmit(gnutls_session_t session)
-{
-  return _dtls_transmit(session);
-}
 
 /* Checks whether the received packet contains a handshake
  * packet with sequence higher that the previously received.
@@ -606,11 +597,9 @@ int total = 0, ret, iv_size;
   if (ret < 0)
     return gnutls_assert_val(ret);
 
-  /* requires padding */
-  iv_size = _gnutls_cipher_get_iv_size(params->cipher_algorithm);
-
   if (_gnutls_cipher_is_block (params->cipher_algorithm) == CIPHER_BLOCK)
     {
+      iv_size = _gnutls_cipher_get_iv_size(params->cipher_algorithm);
       *blocksize = iv_size;
 
       total += iv_size; /* iv_size == block_size in DTLS */
@@ -624,7 +613,12 @@ int total = 0, ret, iv_size;
     }
   
   if (params->mac_algorithm == GNUTLS_MAC_AEAD)
-    total += _gnutls_cipher_get_tag_size(params->cipher_algorithm);
+    {
+      total += AEAD_IMPLICIT_DATA_SIZE;
+
+      /* tag happens to be the same */
+      total += gnutls_cipher_get_block_size(params->cipher_algorithm);
+    }
   else
     {
       ret = _gnutls_hmac_get_algo_len(params->mac_algorithm);
index cd15f89..c97d470 100644 (file)
@@ -31,7 +31,6 @@
 #include <timespec.h>
 
 int _dtls_transmit(gnutls_session_t session);
-int _dtls_retransmit(gnutls_session_t session);
 int _dtls_record_check(struct record_parameters_st *rp, uint64 * _seq);
 void _dtls_reset_hsk_state(gnutls_session_t session);
 
@@ -122,4 +121,14 @@ inline static int _dtls_async_timer_active(gnutls_session_t session)
   return session->internals.dtls.async_term;
 }
 
+/* This function is to be called from record layer once
+ * a handshake replay is detected. It will make sure
+ * it transmits only once per few seconds. Otherwise
+ * it is the same as _dtls_transmit().
+ */
+inline static int _dtls_retransmit(gnutls_session_t session)
+{
+  return _dtls_transmit(session);
+}
+
 #endif
index 71b6e6a..5e8df24 100644 (file)
@@ -334,6 +334,8 @@ static const gnutls_error_entry error_algorithms[] = {
                GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE, 1),
   ERROR_ENTRY (N_("The provided X.509 certificate list is not sorted (in subject to issuer order)"),
                GNUTLS_E_CERTIFICATE_LIST_UNSORTED, 1),
+  ERROR_ENTRY (N_("The OCSP response is invalid"),
+               GNUTLS_E_OCSP_RESPONSE_ERROR, 1),
   {NULL, NULL, 0, 0}
 };
 
index 8256e14..4580961 100644 (file)
@@ -71,6 +71,13 @@ _gnutls_remove_unwanted_ciphersuites (gnutls_session_t session,
                                       int cipher_suites_size,
                                       gnutls_pk_algorithm_t *pk_algos,
                                       size_t pk_algos_size);
+static int _gnutls_handshake_client (gnutls_session_t session);
+static int _gnutls_handshake_server (gnutls_session_t session);
+
+static int
+_gnutls_recv_handshake_final (gnutls_session_t session, int init);
+static int
+_gnutls_send_handshake_final (gnutls_session_t session, int init);
 
 /* Empties but does not free the buffer
  */
@@ -770,8 +777,10 @@ server_find_pk_algos_in_ciphersuites (const uint8_t *
                                               gnutls_pk_algorithm_t * algos,
                                               size_t* algos_size)
 {
-  unsigned int j;
+  unsigned int j, x;
   gnutls_kx_algorithm_t kx;
+  gnutls_pk_algorithm_t pk;
+  unsigned found;
   unsigned int max = *algos_size;
 
   if (datalen % 2 != 0)
@@ -786,10 +795,23 @@ server_find_pk_algos_in_ciphersuites (const uint8_t *
       kx = _gnutls_cipher_suite_get_kx_algo (&data[j]);
       if (_gnutls_map_kx_get_cred (kx, 1) == GNUTLS_CRD_CERTIFICATE)
         {
-          algos[(*algos_size)++] = _gnutls_map_pk_get_pk (kx);
+          pk = _gnutls_map_pk_get_pk (kx);
+          found = 0;
+          for (x=0;x<*algos_size;x++)
+            {
+              if (algos[x] == pk) 
+                {
+                  found = 1;
+                  break;
+                }
+            }
           
-          if ((*algos_size) >= max)
-            return 0;
+          if (found == 0)
+            {
+              algos[(*algos_size)++] = _gnutls_map_pk_get_pk (kx);
+              if ((*algos_size) >= max)
+                return 0;
+            }
         }
     }
 
@@ -845,7 +867,7 @@ _gnutls_server_select_suite (gnutls_session_t session, uint8_t * data,
   ret = _gnutls_supported_ciphersuites (session, cipher_suites, sizeof(cipher_suites));
   if (ret < 0)
     return gnutls_assert_val(ret);
-    
+
   cipher_suites_size = ret;
 
   /* Here we remove any ciphersuite that does not conform
@@ -1119,7 +1141,7 @@ _gnutls_send_handshake (gnutls_session_t session, mbuffer_st * bufel,
 
       /* Fragment length */
       _gnutls_write_uint24 (i_datasize, &data[pos]);
-      pos += 3;
+      /* pos += 3; */
     }
 
   _gnutls_handshake_log ("HSK[%p]: %s was queued [%ld bytes]\n",
@@ -1150,8 +1172,8 @@ _gnutls_send_handshake (gnutls_session_t session, mbuffer_st * bufel,
   switch (type)
     {
     case GNUTLS_HANDSHAKE_CERTIFICATE_PKT:     /* this one is followed by ServerHelloDone
-                                                 * or ClientKeyExchange always.
-                                                 */
+                                                * or ClientKeyExchange always.
+                                                */
     case GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE: /* as above */
     case GNUTLS_HANDSHAKE_SERVER_HELLO:        /* as above */
     case GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST: /* as above */
@@ -1237,13 +1259,16 @@ _gnutls_handshake_hash_add_sent (gnutls_session_t session,
       if (gnutls_protocol_get_version (session) == GNUTLS_DTLS0_9) 
         {
          /* Old DTLS doesn't include the header in the MAC */
-         if (datalen <= 12) 
+         if (datalen < 12) 
            {
              gnutls_assert ();
-             return GNUTLS_E_INVALID_REQUEST;
+             return GNUTLS_E_INTERNAL_ERROR;
            }
          dataptr += 12;
          datalen -= 12;
+         
+         if (datalen == 0)
+               return 0;
         }
 
       ret = _gnutls_buffer_append_data(&session->internals.handshake_hash_buffer,
@@ -1284,6 +1309,8 @@ _gnutls_recv_handshake (gnutls_session_t session,
       return gnutls_assert_val_fatal(ret);
     }
 
+  session->internals.last_handshake_in = hsk.htype;
+
   ret = _gnutls_handshake_hash_add_recvd (session, hsk.htype,
                                               hsk.header, hsk.header_size,
                                               hsk.data.data, hsk.data.length);
@@ -1882,7 +1909,7 @@ _gnutls_send_client_hello (gnutls_session_t session, int again)
         {
           data[pos++] = session->internals.dtls.cookie_len;
           memcpy(&data[pos], &session->internals.dtls.cookie, session->internals.dtls.cookie_len);
-          pos += session->internals.dtls.cookie_len;
+          /* pos += session->internals.dtls.cookie_len; */
         }
 
       /* Copy the ciphersuites.
@@ -1973,8 +2000,6 @@ _gnutls_send_server_hello (gnutls_session_t session, int again)
   uint8_t session_id_len = session->security_parameters.session_id_size;
   char buf[2 * TLS_MAX_SESSION_ID_SIZE + 1];
 
-  datalen = 0;
-
   _gnutls_buffer_init(&extdata);
 
   if (again == 0)
@@ -2028,7 +2053,6 @@ _gnutls_send_server_hello (gnutls_session_t session, int again)
 
       if (extdata.length > 0)
         {
-          datalen += extdata.length;
           memcpy (&data[pos], extdata.data, extdata.length);
         }
     }
@@ -2142,8 +2166,6 @@ _gnutls_recv_hello_verify_request (gnutls_session_t session,
   session->internals.dtls.cookie_len = cookie_len;
   memcpy (session->internals.dtls.cookie, &data[pos], cookie_len);
 
-  pos += cookie_len;
-
   if (len != 0)
     {
       gnutls_assert ();
@@ -2403,17 +2425,8 @@ gnutls_handshake (gnutls_session_t session)
       return ret;
     }
 
-  ret = _gnutls_handshake_common (session);
-
-  if (ret < 0)
-    {
-      if (_gnutls_abort_handshake (session, ret) == 0)
-        STATE = STATE0;
-
-      return ret;
-    }
-
-  STATE = STATE0;
+  /* clear handshake buffer */
+  _gnutls_handshake_hash_buffers_clear (session);
 
   if (IS_DTLS(session)==0)
     {
@@ -2431,7 +2444,6 @@ gnutls_handshake (gnutls_session_t session)
   return 0;
 }
 
-
 #define IMED_RET( str, ret, allow_alert) do { \
        if (ret < 0) { \
                /* EAGAIN and INTERRUPTED are always non-fatal */ \
@@ -2446,12 +2458,11 @@ gnutls_handshake (gnutls_session_t session)
        } } while (0)
 
 
-
 /*
  * _gnutls_handshake_client 
  * This function performs the client side of the handshake of the TLS/SSL protocol.
  */
-int
+static int
 _gnutls_handshake_client (gnutls_session_t session)
 {
   int ret = 0;
@@ -2476,14 +2487,14 @@ _gnutls_handshake_client (gnutls_session_t session)
       STATE = STATE1;
       IMED_RET ("send hello", ret, 1);
 
-    case STATE11:
+    case STATE2:
       if (IS_DTLS (session))
         {
           ret =
             _gnutls_recv_handshake (session, 
                   GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST,
                   1, NULL);
-          STATE = STATE11;
+          STATE = STATE2;
           IMED_RET ("recv hello verify", ret, 1);
 
           if (ret == 1)
@@ -2492,91 +2503,130 @@ _gnutls_handshake_client (gnutls_session_t session)
               return 1;
             }
         }
-    case STATE2:
+    case STATE3:
       /* receive the server hello */
       ret =
         _gnutls_recv_handshake (session,
                                 GNUTLS_HANDSHAKE_SERVER_HELLO,
                                 0, NULL);
-      STATE = STATE2;
+      STATE = STATE3;
       IMED_RET ("recv hello", ret, 1);
 
-    case STATE70:
+    case STATE4:
       if (session->security_parameters.do_recv_supplemental)
         {
           ret = _gnutls_recv_supplemental (session);
-          STATE = STATE70;
+          STATE = STATE4;
           IMED_RET ("recv supplemental", ret, 1);
         }
 
-    case STATE3:
+    case STATE5:
       /* RECV CERTIFICATE */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret = _gnutls_recv_server_certificate (session);
-      STATE = STATE3;
+      STATE = STATE5;
       IMED_RET ("recv server certificate", ret, 1);
 
-    case STATE4:
+    case STATE8:
       /* receive the server key exchange */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret = _gnutls_recv_server_kx_message (session);
-      STATE = STATE4;
+      STATE = STATE8;
       IMED_RET ("recv server kx message", ret, 1);
 
-    case STATE5:
+    case STATE9:
       /* receive the server certificate request - if any 
        */
 
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret = _gnutls_recv_server_crt_request (session);
-      STATE = STATE5;
+      STATE = STATE9;
       IMED_RET ("recv server certificate request message", ret, 1);
 
-    case STATE6:
+    case STATE10:
       /* receive the server hello done */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret =
           _gnutls_recv_handshake (session,
                                   GNUTLS_HANDSHAKE_SERVER_HELLO_DONE,
                                   0, NULL);
-      STATE = STATE6;
+      STATE = STATE10;
       IMED_RET ("recv server hello done", ret, 1);
-    case STATE71:
+
+    case STATE11:
       if (session->security_parameters.do_send_supplemental)
         {
-          ret = _gnutls_send_supplemental (session, AGAIN (STATE71));
-          STATE = STATE71;
+          ret = _gnutls_send_supplemental (session, AGAIN (STATE11));
+          STATE = STATE11;
           IMED_RET ("send supplemental", ret, 0);
         }
 
-    case STATE7:
+    case STATE12:
       /* send our certificate - if any and if requested
        */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
-        ret = _gnutls_send_client_certificate (session, AGAIN (STATE7));
-      STATE = STATE7;
+        ret = _gnutls_send_client_certificate (session, AGAIN (STATE12));
+      STATE = STATE12;
       IMED_RET ("send client certificate", ret, 0);
 
-    case STATE8:
+    case STATE13:
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
-        ret = _gnutls_send_client_kx_message (session, AGAIN (STATE8));
-      STATE = STATE8;
+        ret = _gnutls_send_client_kx_message (session, AGAIN (STATE13));
+      STATE = STATE13;
       IMED_RET ("send client kx", ret, 0);
 
-    case STATE9:
+    case STATE14:
       /* send client certificate verify */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret =
-          _gnutls_send_client_certificate_verify (session, AGAIN (STATE9));
-      STATE = STATE9;
+          _gnutls_send_client_certificate_verify (session, AGAIN (STATE14));
+      STATE = STATE14;
       IMED_RET ("send client certificate verify", ret, 1);
 
+    case STATE15:
+      STATE = STATE15;
+      if (session->internals.resumed == RESUME_FALSE)
+        {
+          ret = _gnutls_send_handshake_final (session, TRUE);
+          IMED_RET ("send handshake final 2", ret, 1);
+        }
+      else
+        {
+          ret = _gnutls_recv_new_session_ticket (session);
+          IMED_RET ("recv handshake new session ticket", ret, 1);
+        }
+
+    case STATE16:
+      STATE = STATE16;
+      if (session->internals.resumed == RESUME_FALSE)
+        {
+          ret = _gnutls_recv_new_session_ticket (session);
+          IMED_RET ("recv handshake new session ticket", ret, 1);
+        }
+      else
+        {
+          ret = _gnutls_recv_handshake_final (session, TRUE);
+          IMED_RET ("recv handshake final", ret, 1);
+        }
+
+    case STATE17:
+      STATE = STATE17;
+      if (session->internals.resumed == RESUME_FALSE)
+        {
+          ret = _gnutls_recv_handshake_final (session, FALSE);
+          IMED_RET ("recv handshake final 2", ret, 1);
+        }
+      else
+        {
+          ret = _gnutls_send_handshake_final (session, FALSE);
+          IMED_RET ("send handshake final", ret, 1);
+        }
+
       STATE = STATE0;
     default:
       break;
     }
 
-
   return 0;
 }
 
@@ -2635,12 +2685,12 @@ _gnutls_send_handshake_final (gnutls_session_t session, int init)
 
   /* Send the CHANGE CIPHER SPEC PACKET */
 
-  switch (STATE)
+  switch (FINAL_STATE)
     {
     case STATE0:
-    case STATE20:
-      ret = send_change_cipher_spec (session, AGAIN (STATE20));
-      STATE = STATE0;
+    case STATE1:
+      ret = send_change_cipher_spec (session, FAGAIN (STATE1));
+      FINAL_STATE = STATE0;
 
       if (ret < 0)
         {
@@ -2667,10 +2717,10 @@ _gnutls_send_handshake_final (gnutls_session_t session, int init)
           return ret;
         }
 
-    case STATE21:
+    case STATE2:
       /* send the finished message */
-      ret = _gnutls_send_finished (session, AGAIN (STATE21));
-      STATE = STATE21;
+      ret = _gnutls_send_finished (session, FAGAIN (STATE2));
+      FINAL_STATE = STATE2;
       if (ret < 0)
         {
           ERR ("send Finished", ret);
@@ -2678,7 +2728,7 @@ _gnutls_send_handshake_final (gnutls_session_t session, int init)
           return ret;
         }
 
-      STATE = STATE0;
+      FINAL_STATE = STATE0;
     default:
       break;
     }
@@ -2696,12 +2746,12 @@ _gnutls_recv_handshake_final (gnutls_session_t session, int init)
   int ret = 0;
   uint8_t ch;
   unsigned int ccs_len = 1;
-
-  switch (STATE)
+  
+  switch (FINAL_STATE)
     {
     case STATE0:
     case STATE30:
-      STATE = STATE30;
+      FINAL_STATE = STATE30;
 
       /* This is the last flight and peer cannot be sure
        * we have received it unless we notify him. So we
@@ -2748,7 +2798,7 @@ _gnutls_recv_handshake_final (gnutls_session_t session, int init)
         }
 
     case STATE31:
-      STATE = STATE31;
+      FINAL_STATE = STATE31;
 
        if (IS_DTLS(session) && !_dtls_is_async(session) && 
            (gnutls_record_check_pending( session) +
@@ -2766,7 +2816,7 @@ _gnutls_recv_handshake_final (gnutls_session_t session, int init)
           gnutls_assert ();
           return ret;
         }
-      STATE = STATE0;
+      FINAL_STATE = STATE0;
     default:
       break;
     }
@@ -2779,7 +2829,7 @@ _gnutls_recv_handshake_final (gnutls_session_t session, int init)
  * _gnutls_handshake_server
  * This function does the server stuff of the handshake protocol.
  */
-int
+static int
 _gnutls_handshake_server (gnutls_session_t session)
 {
   int ret = 0;
@@ -2817,29 +2867,29 @@ _gnutls_handshake_server (gnutls_session_t session)
       STATE = STATE3;
       IMED_RET ("send server certificate", ret, 0);
 
-    case STATE4:
+    case STATE5:
       /* send server key exchange (A) */
       if (session->internals.resumed == RESUME_FALSE)
-        ret = _gnutls_send_server_kx_message (session, AGAIN (STATE4));
-      STATE = STATE4;
+        ret = _gnutls_send_server_kx_message (session, AGAIN (STATE5));
+      STATE = STATE5;
       IMED_RET ("send server kx", ret, 0);
 
-    case STATE5:
+    case STATE6:
       /* Send certificate request - if requested to */
       if (session->internals.resumed == RESUME_FALSE)
         ret =
-          _gnutls_send_server_crt_request (session, AGAIN (STATE5));
-      STATE = STATE5;
+          _gnutls_send_server_crt_request (session, AGAIN (STATE6));
+      STATE = STATE6;
       IMED_RET ("send server cert request", ret, 0);
 
-    case STATE6:
+    case STATE7:
       /* send the server hello done */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret =
           _gnutls_send_empty_handshake (session,
                                         GNUTLS_HANDSHAKE_SERVER_HELLO_DONE,
-                                        AGAIN (STATE6));
-      STATE = STATE6;
+                                        AGAIN (STATE7));
+      STATE = STATE7;
       IMED_RET ("send server hello done", ret, 1);
 
     case STATE71:
@@ -2851,103 +2901,73 @@ _gnutls_handshake_server (gnutls_session_t session)
         }
 
       /* RECV CERTIFICATE + KEYEXCHANGE + CERTIFICATE_VERIFY */
-    case STATE7:
+    case STATE8:
       /* receive the client certificate message */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret = _gnutls_recv_client_certificate (session);
-      STATE = STATE7;
+      STATE = STATE8;
       IMED_RET ("recv client certificate", ret, 1);
 
-    case STATE8:
+    case STATE10:
       /* receive the client key exchange message */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret = _gnutls_recv_client_kx_message (session);
-      STATE = STATE8;
+      STATE = STATE10;
       IMED_RET ("recv client kx", ret, 1);
 
-    case STATE9:
+    case STATE11:
       /* receive the client certificate verify message */
       if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         ret = _gnutls_recv_client_certificate_verify_message (session);
-      STATE = STATE9;
+      STATE = STATE11;
       IMED_RET ("recv client certificate verify", ret, 1);
 
-      STATE = STATE0;           /* finished thus clear session */
-    default:
-      break;
-    }
-
-  return 0;
-}
-
-int
-_gnutls_handshake_common (gnutls_session_t session)
-{
-  int ret = 0;
-
-  /* send and recv the change cipher spec and finished messages */
-  if ((session->internals.resumed != RESUME_FALSE
-       && session->security_parameters.entity == GNUTLS_CLIENT)
-      || (session->internals.resumed == RESUME_FALSE
-          && session->security_parameters.entity == GNUTLS_SERVER))
-    {
-      /* if we are a client resuming - or we are a server not resuming */
-      ret = _gnutls_recv_handshake_final (session, TRUE);
-      IMED_RET ("recv handshake final", ret, 1);
-
-      switch (STATE)
-        {
-        case STATE0:
-        case STATE40:
-          ret = _gnutls_send_new_session_ticket (session, AGAIN (STATE40));
-          STATE = STATE40;
-          IMED_RET ("send handshake new session ticket", ret, 0);
-          STATE = STATE0;
-        default:
-          break;
+    case STATE12:
+      STATE = STATE12;
+      if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
+        {
+          ret = _gnutls_recv_handshake_final (session, TRUE);
+          IMED_RET ("recv handshake final", ret, 1);
         }
-
-      ret = _gnutls_send_handshake_final (session, FALSE);
-      IMED_RET ("send handshake final", ret, 1);
-
-      /* only store if we are not resuming a session and we didn't previously send a ticket 
-       */
-      if (session->security_parameters.entity == GNUTLS_SERVER && session->internals.ticket_sent == 0)
+      else
         {
-          /* in order to support session resuming */
-          _gnutls_server_register_current_session (session);
+          ret = _gnutls_send_handshake_final (session, TRUE);
+          IMED_RET ("send handshake final 2", ret, 1);
         }
-    }
-  else
-    {                           /* if we are a client not resuming - or we are a server resuming */
 
-      ret = _gnutls_send_handshake_final (session, TRUE);
-      IMED_RET ("send handshake final 2", ret, 1);
+    case STATE13:
+        ret = _gnutls_send_new_session_ticket (session, AGAIN (STATE13));
+        STATE = STATE13;
+        IMED_RET ("send handshake new session ticket", ret, 0);
 
-      switch (STATE)
+    case STATE14:
+      STATE = STATE14;
+      if (session->internals.resumed == RESUME_FALSE)   /* if we are not resuming */
         {
-        case STATE0:
-        case STATE41:
-          ret = _gnutls_recv_new_session_ticket (session);
-          STATE = STATE41;
-          IMED_RET ("recv handshake new session ticket", ret, 1);
-          STATE = STATE0;
-        default:
-          break;
+          ret = _gnutls_send_handshake_final (session, FALSE);
+          IMED_RET ("send handshake final", ret, 1);
+        }
+      else
+        {
+          ret = _gnutls_recv_handshake_final (session, FALSE);
+          IMED_RET ("recv handshake final 2", ret, 1);
         }
 
-      ret = _gnutls_recv_handshake_final (session, FALSE);
-      IMED_RET ("recv handshake final 2", ret, 1);
+      if (session->security_parameters.entity == GNUTLS_SERVER && session->internals.ticket_sent == 0)
+        {
+          /* if no ticket, save session data */
+          _gnutls_server_register_current_session (session);
+        }
 
+      STATE = STATE0;
+    default:
+      break;
     }
 
-
-  /* clear handshake buffer */
-  _gnutls_handshake_hash_buffers_clear (session);
-  return ret;
-
+  return 0;
 }
 
+
 int
 _gnutls_generate_session_id (uint8_t * session_id, uint8_t * len)
 {
@@ -3135,7 +3155,6 @@ _gnutls_remove_unwanted_ciphersuites (gnutls_session_t session,
    * by that certificate and are on the same authentication
    * method (CERTIFICATE).
    */
-
   cert_cred =
     (gnutls_certificate_credentials_t) _gnutls_get_cred (session->key,
                                                          GNUTLS_CRD_CERTIFICATE,
index 39c9c8a..b3fb1af 100644 (file)
@@ -33,9 +33,6 @@ int _gnutls_recv_handshake (gnutls_session_t session,
                         gnutls_handshake_description_t type,
                         unsigned int optional, gnutls_buffer_st* buf);
 int _gnutls_generate_session_id (uint8_t * session_id, uint8_t * len);
-int _gnutls_handshake_common (gnutls_session_t session);
-int _gnutls_handshake_client (gnutls_session_t session);
-int _gnutls_handshake_server (gnutls_session_t session);
 void _gnutls_set_server_random (gnutls_session_t session, uint8_t * rnd);
 void _gnutls_set_client_random (gnutls_session_t session, uint8_t * rnd);
 int _gnutls_tls_create_random (uint8_t * dst);
@@ -52,10 +49,12 @@ int _gnutls_user_hello_func (gnutls_session_t session,
 void _gnutls_handshake_hash_buffers_clear (gnutls_session_t session);
 
 #define STATE session->internals.handshake_state
+#define FINAL_STATE session->internals.handshake_final_state
 /* This returns true if we have got there
  * before (and not finished due to an interrupt).
  */
 #define AGAIN(target) (STATE==target?1:0)
+#define FAGAIN(target) (FINAL_STATE==target?1:0)
 #define AGAIN2(state, target) (state==target?1:0)
 
 #endif
index 5c55490..b91671c 100644 (file)
@@ -176,4 +176,25 @@ inline static int IS_SHA(gnutls_digest_algorithm_t algo)
   return 0;
 }
 
+/* We shouldn't need to know that, but a work-around in decoding
+ * TLS record padding requires that.
+ */
+inline static size_t
+_gnutls_get_hash_block_len (gnutls_digest_algorithm_t algo)
+{
+  switch (algo)
+    {
+    case GNUTLS_DIG_MD5:
+    case GNUTLS_DIG_SHA1:
+    case GNUTLS_DIG_RMD160:
+    case GNUTLS_DIG_SHA256:
+    case GNUTLS_DIG_SHA384:
+    case GNUTLS_DIG_SHA512:
+    case GNUTLS_DIG_SHA224:
+      return 64;
+    default:
+      return 0;
+    }
+}
+
 #endif /* GNUTLS_HASH_INT_H */
index 77705a3..4058a80 100644 (file)
@@ -223,13 +223,20 @@ typedef struct
 
 typedef enum handshake_state_t
 { STATE0 = 0, STATE1, STATE2,
-  STATE3, STATE4, STATE5,
-  STATE6, STATE7, STATE8, STATE9, STATE11 = 11,
+  STATE3, STATE4, STATE5, STATE6, STATE7, STATE8, 
+  STATE9, STATE10, STATE11, STATE12, STATE13, STATE14,
+  STATE15, STATE16, STATE17,
   STATE20 = 20, STATE21, STATE22,
   STATE30 = 30, STATE31, STATE40 = 40, STATE41, STATE50 = 50,
   STATE60 = 60, STATE61, STATE62, STATE70, STATE71
 } handshake_state_t;
 
+typedef enum recv_state_t
+{  
+  RECV_STATE_0 = 0, 
+  RECV_STATE_DTLS_RETRANSMIT,
+} recv_state_t;
+
 #include <gnutls_str.h>
 
 /* This is the maximum number of algorithms (ciphers or macs etc).
@@ -578,10 +585,12 @@ struct gnutls_priority_st
   safe_renegotiation_t sr;
   unsigned int ssl3_record_version:1;
   unsigned int server_precedence:1;
+  unsigned int allow_wrong_pms:1;
+  /* Whether stateless compression will be used */
+  unsigned int stateless_compression:1;
   unsigned int additional_verify_flags;
 };
 
-
 /* DH and RSA parameters types.
  */
 typedef struct gnutls_dh_params_int
@@ -664,6 +673,7 @@ typedef struct
                                                  * message */
   unsigned int resumable:1;              /* TRUE or FALSE - if we can resume that session */
   unsigned int ticket_sent:1;            /* whether a session ticket was sent */
+  handshake_state_t handshake_final_state;
   handshake_state_t handshake_state;    /* holds
                                          * a number which indicates where
                                          * the handshake procedure has been
@@ -871,7 +881,9 @@ typedef struct
 
   unsigned int cb_tls_unique_len;
   unsigned char cb_tls_unique[MAX_VERIFY_DATA_SIZE];
-
+  
+  recv_state_t recv_state; /* state of the receive function */
+  
   /* If you add anything here, check _gnutls_handshake_internal_state_clear().
    */
 } internals_st;
index 1211e2d..3341f88 100644 (file)
@@ -336,14 +336,11 @@ gnutls_openpgp_crt_t crt;
       goto cleanup;
     }
 
-  if (keyid != NULL)
+  ret = gnutls_openpgp_crt_set_preferred_key_id(crt, keyid);
+  if (ret < 0)
     {
-      ret = gnutls_openpgp_crt_set_preferred_key_id(crt, keyid);
-      if (ret < 0)
-        {
-          ret = gnutls_assert_val(ret);
-          goto cleanup;
-        }
+      ret = gnutls_assert_val(ret);
+      goto cleanup;
     }
 
   ret = gnutls_pcert_import_openpgp(pcert, crt, flags);
@@ -396,8 +393,7 @@ _gnutls_get_auth_info_pcert (gnutls_pcert_st* pcert,
       return gnutls_pcert_import_openpgp_raw(pcert,
                                                &info->raw_certificate_list[0],
                                                GNUTLS_OPENPGP_FMT_RAW,
-                                               info->use_subkey ? info->
-                                               subkey_id : NULL, GNUTLS_PCERT_NO_CERT);
+                                               info->subkey_id, GNUTLS_PCERT_NO_CERT);
 #endif
     default:
       gnutls_assert ();
index 52e5209..178a49d 100644 (file)
@@ -289,9 +289,13 @@ static const int kx_priority_secure[] = {
    */
   GNUTLS_KX_ECDHE_ECDSA,
   GNUTLS_KX_ECDHE_RSA,
+  /* KX-RSA is now ahead of DHE-RSA and DHE-DSS due to the compatibility
+   * issues the DHE ciphersuites have. That is, one cannot enforce a specific
+   * security level without dropping the connection. 
+   */
+  GNUTLS_KX_RSA,
   GNUTLS_KX_DHE_RSA,
   GNUTLS_KX_DHE_DSS,
-  GNUTLS_KX_RSA,
   /* GNUTLS_KX_ANON_DH: Man-in-the-middle prone, don't add!
    * GNUTLS_KX_RSA_EXPORT: Deprecated, don't add!
    */
@@ -911,11 +915,16 @@ gnutls_priority_init (gnutls_priority_t * priority_cache,
             {
               (*priority_cache)->no_padding = 1;
               (*priority_cache)->allow_large_records = 1;
+              (*priority_cache)->allow_wrong_pms = 1;
             }
           else if (strcasecmp (&broken_list[i][1], "NO_EXTENSIONS") == 0)
             {
               (*priority_cache)->no_extensions = 1;
             }
+          else if (strcasecmp (&broken_list[i][1], "STATELESS_COMPRESSION") == 0)
+            {
+              (*priority_cache)->stateless_compression = 1;
+            }
           else if (strcasecmp (&broken_list[i][1],
                                "VERIFY_ALLOW_SIGN_RSA_MD5") == 0)
             {
index 39246f7..941ac93 100644 (file)
@@ -57,8 +57,13 @@ struct gnutls_pubkey_st
    */
   gnutls_pk_params_st params;
 
+#ifdef ENABLE_OPENPGP
   uint8_t openpgp_key_id[GNUTLS_OPENPGP_KEYID_SIZE];
-  int openpgp_key_id_set;
+  unsigned int openpgp_key_id_set;
+
+  uint8_t openpgp_key_fpr[20];
+  unsigned int openpgp_key_fpr_set:1;
+#endif
 
   unsigned int key_usage;       /* bits from GNUTLS_KEY_* */
 };
@@ -349,6 +354,13 @@ gnutls_pubkey_import_openpgp (gnutls_pubkey_t key,
   uint32_t kid32[2];
   uint32_t *k;
   uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
+  size_t len;
+
+  len = sizeof(key->openpgp_key_fpr);
+  ret = gnutls_openpgp_crt_get_fingerprint(crt, key->openpgp_key_fpr, &len);
+  if (ret < 0)
+    return gnutls_assert_val(ret);
+  key->openpgp_key_fpr_set = 1;
 
   ret = gnutls_openpgp_crt_get_preferred_key_id (crt, keyid);
   if (ret == GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR)
@@ -402,20 +414,22 @@ gnutls_pubkey_import_openpgp (gnutls_pubkey_t key,
 /**
  * gnutls_pubkey_get_openpgp_key_id:
  * @key: Holds the public key
- * @flags: should be 0 for now
+ * @flags: should be 0 or %GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT
  * @output_data: will contain the key ID
  * @output_data_size: holds the size of output_data (and will be
  *   replaced by the actual size of parameters)
  * @subkey: Will be non zero if the key ID corresponds to a subkey
  *
- * This function will return a unique ID the depends on the public
- * key parameters. This ID can be used in checking whether a
- * certificate corresponds to the given public key.
+ * This function returns the OpenPGP key ID of the corresponding key.
+ * The key is a unique ID that depends on the public
+ * key parameters. 
+ *
+ * If the flag %GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT is specified
+ * this function returns the fingerprint of the master key.
  *
  * If the buffer provided is not long enough to hold the output, then
  * *output_data_size is updated and %GNUTLS_E_SHORT_MEMORY_BUFFER will
- * be returned.  The output will normally be a SHA-1 hash output,
- * which is 20 bytes.
+ * be returned.  The output is %GNUTLS_OPENPGP_KEYID_SIZE bytes long.
  *
  * Returns: In case of failure a negative error code will be
  *   returned, and 0 on success.
@@ -434,6 +448,24 @@ gnutls_pubkey_get_openpgp_key_id (gnutls_pubkey_t key, unsigned int flags,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  if (flags & GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT)
+    {
+      if (*output_data_size < sizeof(key->openpgp_key_fpr))
+        {
+          *output_data_size = sizeof(key->openpgp_key_fpr);
+          return gnutls_assert_val(GNUTLS_E_SHORT_MEMORY_BUFFER);
+        }
+
+      if (key->openpgp_key_fpr_set == 0)
+        return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+
+      if (output_data)
+        memcpy(output_data, key->openpgp_key_fpr, sizeof(key->openpgp_key_fpr));
+      *output_data_size = sizeof(key->openpgp_key_fpr);
+      
+      return 0;
+    }
+    
   if (*output_data_size < sizeof(key->openpgp_key_id))
     {
       *output_data_size = sizeof(key->openpgp_key_id);
@@ -1315,6 +1347,7 @@ gnutls_pubkey_verify_data (gnutls_pubkey_t pubkey, unsigned int flags,
                           const gnutls_datum_t * signature)
 {
   int ret;
+  gnutls_digest_algorithm_t hash;
 
   if (pubkey == NULL)
     {
@@ -1322,7 +1355,11 @@ gnutls_pubkey_verify_data (gnutls_pubkey_t pubkey, unsigned int flags,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
-  ret = pubkey_verify_data( pubkey->pk_algorithm, GNUTLS_DIG_UNKNOWN, data, signature,
+  ret = gnutls_pubkey_get_verify_algorithm (pubkey, signature, &hash);
+  if (ret < 0)
+    return gnutls_assert_val(ret);
+
+  ret = pubkey_verify_data( pubkey->pk_algorithm, hash, data, signature,
     &pubkey->params);
   if (ret < 0)
     {
@@ -1381,8 +1418,10 @@ gnutls_pubkey_verify_data2 (gnutls_pubkey_t pubkey,
  * @signature: contains the signature
  *
  * This function will verify the given signed digest, using the
- * parameters from the public key. Use gnutls_pubkey_verify_hash2()
- * instead of this function.
+ * parameters from the public key. 
+ *
+ * Deprecated. This function cannot be easily used securely. 
+ * Use gnutls_pubkey_verify_hash2() instead.
  *
  * Returns: In case of a verification failure %GNUTLS_E_PK_SIG_VERIFY_FAILED 
  * is returned, and zero or positive code on success.
@@ -1506,12 +1545,18 @@ gnutls_pubkey_get_verify_algorithm (gnutls_pubkey_t key,
 
 }
 
-
-int _gnutls_pubkey_compatible_with_sig(gnutls_pubkey_t pubkey, gnutls_protocol_t ver, 
-  gnutls_sign_algorithm_t sign)
+/* Checks whether the public key given is compatible with the
+ * signature algorithm used. The session is only used for audit logging, and
+ * it may be null.
+ */
+int _gnutls_pubkey_compatible_with_sig(gnutls_session_t session,
+                                       gnutls_pubkey_t pubkey, 
+                                       gnutls_protocol_t ver, 
+                                       gnutls_sign_algorithm_t sign)
 {
 unsigned int hash_size;
 unsigned int hash_algo;
+unsigned int sig_hash_size;
 
   if (pubkey->pk_algorithm == GNUTLS_PK_DSA)
     {
@@ -1525,8 +1570,10 @@ unsigned int hash_algo;
         }
       else if (sign != GNUTLS_SIGN_UNKNOWN)
         {
-          if (_gnutls_hash_get_algo_len(_gnutls_sign_get_hash_algorithm(sign)) < hash_size)
-            return GNUTLS_E_UNWANTED_ALGORITHM;
+          sig_hash_size = _gnutls_hash_get_algo_len(_gnutls_sign_get_hash_algorithm(sign));
+
+          if (sig_hash_size < hash_size)
+            _gnutls_audit_log(session, "The hash size used in signature (%u) is less than the expected (%u)\n", sig_hash_size, hash_size);
         }
         
     }
@@ -1535,9 +1582,10 @@ unsigned int hash_algo;
       if (_gnutls_version_has_selectable_sighash (ver) && sign != GNUTLS_SIGN_UNKNOWN)
         {
           hash_algo = _gnutls_dsa_q_to_hash (pubkey->pk_algorithm, &pubkey->params, &hash_size);
+          sig_hash_size = _gnutls_hash_get_algo_len(_gnutls_sign_get_hash_algorithm(sign));
 
-          if (_gnutls_hash_get_algo_len(_gnutls_sign_get_hash_algorithm(sign)) < hash_size)
-            return GNUTLS_E_UNWANTED_ALGORITHM;
+          if (sig_hash_size < hash_size)
+            _gnutls_audit_log(session, "The hash size used in signature (%u) is less than the expected (%u)\n", sig_hash_size, hash_size);
         }
         
     }
@@ -1651,16 +1699,18 @@ _pkcs1_rsa_verify_sig (gnutls_digest_algorithm_t hash_algo,
 /* Hashes input data and verifies a signature.
  */
 static int
-dsa_verify_hashed_data (const gnutls_datum_t * hash,
+dsa_verify_hashed_data (gnutls_pk_algorithm_t pk,
+                gnutls_digest_algorithm_t algo,
+                const gnutls_datum_t * hash,
                 const gnutls_datum_t * signature,
-                gnutls_pk_algorithm_t pk,
                 gnutls_pk_params_st* params)
 {
   gnutls_datum_t digest;
-  unsigned int algo;
   unsigned int hash_len;
 
-  algo = _gnutls_dsa_q_to_hash (pk, params, &hash_len);
+  if (algo == GNUTLS_DIG_UNKNOWN)
+    algo = _gnutls_dsa_q_to_hash (pk, params, &hash_len);
+  else hash_len = _gnutls_hash_get_algo_len(algo);
 
   /* SHA1 or better allowed */
   if (!hash->data || hash->size < hash_len)
@@ -1733,7 +1783,7 @@ pubkey_verify_hashed_data (gnutls_pk_algorithm_t pk,
 
     case GNUTLS_PK_EC:
     case GNUTLS_PK_DSA:
-      if (dsa_verify_hashed_data(hash, signature, pk, issuer_params) != 0)
+      if (dsa_verify_hashed_data(pk, hash_algo, hash, signature, issuer_params) != 0)
         {
           gnutls_assert ();
           return GNUTLS_E_PK_SIG_VERIFY_FAILED;
index fbb84a1..5331a87 100644 (file)
@@ -78,6 +78,8 @@ void
 gnutls_record_disable_padding (gnutls_session_t session)
 {
   session->internals.priorities.no_padding = 1;
+  session->internals.priorities.allow_wrong_pms = 1;
+  session->internals.priorities.allow_large_records = 1;
 }
 
 /**
@@ -694,7 +696,7 @@ record_add_to_buffers (gnutls_session_t session,
                   ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
                   goto unexpected_packet;
                 }
-                
+
               if (_dtls_is_async(session) && _dtls_async_timer_active(session))
                 {
                   if (session->security_parameters.entity == GNUTLS_SERVER &&
@@ -705,9 +707,11 @@ record_add_to_buffers (gnutls_session_t session,
                     }
                   else
                     {
+                      session->internals.recv_state = RECV_STATE_DTLS_RETRANSMIT;
                       ret = _dtls_retransmit(session);
                       if (ret == 0) 
                         {
+                          session->internals.recv_state = RECV_STATE_0;
                           ret = gnutls_assert_val(GNUTLS_E_AGAIN);
                           goto unexpected_packet;
                         }
@@ -1196,21 +1200,33 @@ _gnutls_recv_int (gnutls_session_t session, content_type_t type,
       gnutls_assert ();
       return GNUTLS_E_INVALID_SESSION;
     }
+    
+  switch(session->internals.recv_state)
+    {
+      case RECV_STATE_DTLS_RETRANSMIT:
+        ret = _dtls_retransmit(session);
+        if (ret < 0)
+          return gnutls_assert_val(ret);
+        
+        session->internals.recv_state = RECV_STATE_0;
+      case RECV_STATE_0:
+
+        _dtls_async_timer_check(session);
+        /* If we have enough data in the cache do not bother receiving
+         * a new packet. (in order to flush the cache)
+         */ 
+        ret = check_buffers (session, type, data, data_size, seq);
+        if (ret != 0)
+          return ret;
 
-  _dtls_async_timer_check(session);
-  
-  /* If we have enough data in the cache do not bother receiving
-   * a new packet. (in order to flush the cache)
-   */
-  ret = check_buffers (session, type, data, data_size, seq);
-  if (ret != 0)
-    return ret;
-
-  ret = _gnutls_recv_in_buffers(session, type, htype);
-  if (ret < 0 && ret != GNUTLS_E_SESSION_EOF)
-    return gnutls_assert_val(ret);
+        ret = _gnutls_recv_in_buffers(session, type, htype);
+        if (ret < 0 && ret != GNUTLS_E_SESSION_EOF)
+          return gnutls_assert_val(ret);
 
-  return check_buffers (session, type, data, data_size, seq);
+        return check_buffers (session, type, data, data_size, seq);
+      default:
+        return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+    }
 }
 
 
index 63bd782..c88aee4 100644 (file)
@@ -149,10 +149,10 @@ gnutls_rsa_params_generate2 (gnutls_rsa_params_t params, unsigned int bits)
 /**
  * gnutls_rsa_params_import_pkcs1:
  * @params: A structure where the parameters will be copied to
- * @pkcs1_params: should contain a PKCS1 RSAPublicKey structure PEM or DER encoded
+ * @pkcs1_params: should contain a PKCS1 RSAPrivateKey structure PEM or DER encoded
  * @format: the format of params. PEM or DER.
  *
- * This function will extract the RSAPublicKey found in a PKCS1 formatted
+ * This function will extract the RSAPrivateKey found in a PKCS1 formatted
  * structure.
  *
  * If the structure is PEM encoded, it should have a header
@@ -172,11 +172,11 @@ gnutls_rsa_params_import_pkcs1 (gnutls_rsa_params_t params,
  * gnutls_rsa_params_export_pkcs1:
  * @params: Holds the RSA parameters
  * @format: the format of output params. One of PEM or DER.
- * @params_data: will contain a PKCS1 RSAPublicKey structure PEM or DER encoded
+ * @params_data: will contain a PKCS1 RSAPrivateKey structure PEM or DER encoded
  * @params_data_size: holds the size of params_data (and will be replaced by the actual size of parameters)
  *
  * This function will export the given RSA parameters to a PKCS1
- * RSAPublicKey structure. If the buffer provided is not long enough to
+ * RSAPrivateKey structure. If the buffer provided is not long enough to
  * hold the output, then GNUTLS_E_SHORT_MEMORY_BUFFER will be returned.
  *
  * If the structure is PEM encoded, it will have a header
index 2588873..4ace959 100644 (file)
@@ -41,6 +41,7 @@
 #include <gnutls_extensions.h>
 #include <gnutls_constate.h>
 #include <algorithms.h>
+#include <gnutls_state.h>
 
 static int pack_certificate_auth_info (gnutls_session_t,
                                        gnutls_buffer_st * packed_session);
@@ -103,7 +104,7 @@ _gnutls_session_pack (gnutls_session_t session,
       if (ret < 0)
         {
           gnutls_assert ();
-          return ret;
+          goto fail;
         }
       break;
 #endif
@@ -113,7 +114,7 @@ _gnutls_session_pack (gnutls_session_t session,
       if (ret < 0)
         {
           gnutls_assert ();
-          return ret;
+          goto fail;
         }
       break;
 #endif
@@ -123,7 +124,7 @@ _gnutls_session_pack (gnutls_session_t session,
       if (ret < 0)
         {
           gnutls_assert ();
-          return ret;
+          goto fail;
         }
       break;
 #endif
@@ -132,7 +133,7 @@ _gnutls_session_pack (gnutls_session_t session,
       if (ret < 0)
         {
           gnutls_assert ();
-          return ret;
+          goto fail;
         }
       break;
     default:
@@ -147,20 +148,20 @@ _gnutls_session_pack (gnutls_session_t session,
   if (ret < 0)
     {
       gnutls_assert ();
-      _gnutls_buffer_clear (&sb);
-      return ret;
+      goto fail;
     }
 
   ret = _gnutls_ext_pack (session, &sb);
   if (ret < 0)
     {
       gnutls_assert ();
-      _gnutls_buffer_clear (&sb);
-      return ret;
+      goto fail;
     }
 
-  ret = _gnutls_buffer_to_datum (&sb, packed_session);
+  return _gnutls_buffer_to_datum (&sb, packed_session);
 
+fail:
+  _gnutls_buffer_clear (&sb);
   return ret;
 }
 
@@ -363,10 +364,7 @@ unpack_certificate_auth_info (gnutls_session_t session, gnutls_buffer_st * ps)
 
   info = _gnutls_get_auth_info (session);
   if (info == NULL)
-    {
-      gnutls_assert ();
-      return GNUTLS_E_INTERNAL_ERROR;
-    }
+    return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
 
   BUFFER_POP_NUM (ps, info->dh.secret_bits);
 
@@ -433,9 +431,13 @@ pack_srp_auth_info (gnutls_session_t session, gnutls_buffer_st * ps)
   int len, ret;
   int size_offset;
   size_t cur_size;
+  const char* username = NULL;
 
   if (info && info->username)
-    len = strlen (info->username) + 1;  /* include the terminating null */
+    {
+      username = info->username;
+      len = strlen (info->username) + 1;  /* include the terminating null */
+    }
   else
     len = 0;
 
@@ -443,7 +445,7 @@ pack_srp_auth_info (gnutls_session_t session, gnutls_buffer_st * ps)
   BUFFER_APPEND_NUM (ps, 0);
   cur_size = ps->length;
 
-  BUFFER_APPEND_PFX (ps, info->username, len);
+  BUFFER_APPEND_PFX (ps, username, len);
 
   /* write the real size */
   _gnutls_write_uint32 (ps->length - cur_size, ps->data + size_offset);
@@ -466,7 +468,6 @@ unpack_srp_auth_info (gnutls_session_t session, gnutls_buffer_st * ps)
       return GNUTLS_E_INTERNAL_ERROR;
     }
 
-
   ret =
     _gnutls_auth_info_set (session, GNUTLS_CRD_SRP,
                            sizeof (srp_server_auth_info_st), 1);
@@ -478,12 +479,11 @@ unpack_srp_auth_info (gnutls_session_t session, gnutls_buffer_st * ps)
 
   info = _gnutls_get_auth_info (session);
   if (info == NULL)
-    {
-      gnutls_assert ();
-      return GNUTLS_E_INTERNAL_ERROR;
-    }
+    return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
 
   BUFFER_POP (ps, info->username, username_size);
+  if (username_size == 0)
+    info->username[0] = 0;
 
   ret = 0;
 
@@ -561,10 +561,7 @@ unpack_anon_auth_info (gnutls_session_t session, gnutls_buffer_st * ps)
 
   info = _gnutls_get_auth_info (session);
   if (info == NULL)
-    {
-      gnutls_assert ();
-      return GNUTLS_E_INTERNAL_ERROR;
-    }
+    return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
 
   BUFFER_POP_NUM (ps, info->dh.secret_bits);
 
@@ -614,13 +611,15 @@ pack_psk_auth_info (gnutls_session_t session, gnutls_buffer_st * ps)
   size_t cur_size;
 
   info = _gnutls_get_auth_info (session);
+  if (info == NULL)
+    return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
 
-  if (info && info->username)
+  if (info->username)
     username_len = strlen (info->username) + 1; /* include the terminating null */
   else
     username_len = 0;
 
-  if (info && info->hint)
+  if (info->hint)
     hint_len = strlen (info->hint) + 1; /* include the terminating null */
   else
     hint_len = 0;
@@ -661,10 +660,7 @@ unpack_psk_auth_info (gnutls_session_t session, gnutls_buffer_st * ps)
 
   info = _gnutls_get_auth_info (session);
   if (info == NULL)
-    {
-      gnutls_assert ();
-      return GNUTLS_E_INTERNAL_ERROR;
-    }
+    return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
 
   BUFFER_POP_NUM (ps, username_size);
   if (username_size > sizeof (info->username))
@@ -905,7 +901,7 @@ gnutls_session_set_premaster (gnutls_session_t session, unsigned int entity,
     return gnutls_assert_val(ret);
 
   session->internals.resumed_security_parameters.compression_method = comp;
-  session->internals.resumed_security_parameters.cert_type = GNUTLS_CRT_UNKNOWN;
+  session->internals.resumed_security_parameters.cert_type = DEFAULT_CERT_TYPE;
   session->internals.resumed_security_parameters.version = version;
 
   if (master->size != GNUTLS_MASTER_SIZE)
index b30dcc3..b9a26bf 100644 (file)
@@ -221,7 +221,7 @@ sign_tls_hash (gnutls_session_t session, gnutls_digest_algorithm_t hash_algo,
         if (!(key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE))
           {
             gnutls_assert ();
-            return GNUTLS_E_KEY_USAGE_VIOLATION;
+            _gnutls_audit_log(session, "Peer's certificate does not allow digital signatures. Key usage violation detected (ignored).\n");
           }
 
       /* External signing. Deprecated. To be removed. */
@@ -244,7 +244,7 @@ sign_tls_hash (gnutls_session_t session, gnutls_digest_algorithm_t hash_algo,
               if (ret < 0)
                 return gnutls_assert_val(ret);
               
-              ret = pk_prepare_hash (gnutls_privkey_get_pk_algorithm(pkey, NULL), hash_algo, &digest);
+              ret = pk_prepare_hash (gnutls_pubkey_get_pk_algorithm(cert->pubkey, NULL), hash_algo, &digest);
               if (ret < 0)
                 {
                   gnutls_assert ();
@@ -269,7 +269,7 @@ es_cleanup:
 }
 
 static int
-verify_tls_hash (gnutls_protocol_t ver, gnutls_pcert_st* cert,
+verify_tls_hash (gnutls_session_t session, gnutls_protocol_t ver, gnutls_pcert_st* cert,
                     const gnutls_datum_t * hash_concat,
                     gnutls_datum_t * signature, size_t sha1pos,
                     gnutls_sign_algorithm_t sign_algo,
@@ -293,7 +293,7 @@ verify_tls_hash (gnutls_protocol_t ver, gnutls_pcert_st* cert,
     if (!(key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE))
       {
         gnutls_assert ();
-        return GNUTLS_E_KEY_USAGE_VIOLATION;
+        _gnutls_audit_log(session, "Peer's certificate does not allow digital signatures. Key usage violation detected (ignored).\n");
       }
 
   if (pk_algo == GNUTLS_PK_UNKNOWN)
@@ -360,7 +360,7 @@ _gnutls_handshake_verify_data (gnutls_session_t session, gnutls_pcert_st* cert,
       _gnutls_handshake_log ("HSK[%p]: verify handshake data: using %s\n",
                     session, gnutls_sign_algorithm_get_name (sign_algo));
 
-      ret = _gnutls_pubkey_compatible_with_sig(cert->pubkey, ver, sign_algo);
+      ret = _gnutls_pubkey_compatible_with_sig(session, cert->pubkey, ver, sign_algo);
       if (ret < 0)
         return gnutls_assert_val(ret);
 
@@ -418,7 +418,7 @@ _gnutls_handshake_verify_data (gnutls_session_t session, gnutls_pcert_st* cert,
       dconcat.size = _gnutls_hash_get_algo_len (hash_algo);
     }
 
-  ret = verify_tls_hash (ver, cert, &dconcat, signature,
+  ret = verify_tls_hash (session, ver, cert, &dconcat, signature,
                             dconcat.size -
                             _gnutls_hash_get_algo_len (hash_algo),
                             sign_algo,
@@ -467,7 +467,7 @@ _gnutls_handshake_verify_crt_vrfy12 (gnutls_session_t session,
   dconcat.size = _gnutls_hash_get_algo_len (hash_algo);
 
   ret =
-    verify_tls_hash (ver, cert, &dconcat, signature, 0, sign_algo, pk);
+    verify_tls_hash (session, ver, cert, &dconcat, signature, 0, sign_algo, pk);
   if (ret < 0)
     {
       gnutls_assert ();
@@ -561,7 +561,7 @@ _gnutls_handshake_verify_crt_vrfy (gnutls_session_t session,
   dconcat.size = 20 + 16;       /* md5+ sha */
 
   ret =
-    verify_tls_hash (ver, cert, &dconcat, signature, 16,
+    verify_tls_hash (session, ver, cert, &dconcat, signature, 16,
                         GNUTLS_SIGN_UNKNOWN,
                         gnutls_pubkey_get_pk_algorithm(cert->pubkey, NULL));
   if (ret < 0)
@@ -677,7 +677,7 @@ _gnutls_handshake_sign_crt_vrfy (gnutls_session_t session,
     _gnutls_hash_deinit (&td_sha, &concat[16]);
 
   /* ensure 1024 bit DSA keys are used */
-  ret = _gnutls_pubkey_compatible_with_sig(cert->pubkey, ver, GNUTLS_SIGN_UNKNOWN);
+  ret = _gnutls_pubkey_compatible_with_sig(session, cert->pubkey, ver, GNUTLS_SIGN_UNKNOWN);
   if (ret < 0)
     return gnutls_assert_val(ret);
 
index 01590a4..eba6621 100644 (file)
@@ -291,7 +291,7 @@ _gnutls_handshake_internal_state_clear (gnutls_session_t session)
  * @flags can be one of %GNUTLS_CLIENT and %GNUTLS_SERVER. For a DTLS
  * entity, the flags %GNUTLS_DATAGRAM and  %GNUTLS_NONBLOCK are
  * also available. The latter flag will enable a non-blocking
- * operation of the DTLS timers.
+ * operation of the DTLS timers. 
  *
  * Returns: %GNUTLS_E_SUCCESS on success, or an error code.
  **/
index 0d6d087..706047a 100644 (file)
@@ -247,8 +247,9 @@ _gnutls_buffer_pop_datum (gnutls_buffer_st * str, gnutls_datum_t * data,
   return;
 }
 
-/* converts the buffer to a datum if possible. After this call the buffer
- * is at an usable state and might not be used or deinitialized */
+/* converts the buffer to a datum if possible. After this call 
+ * (failed or not) the buffer should be considered deinitialized.
+ */
 int
 _gnutls_buffer_to_datum (gnutls_buffer_st * str, gnutls_datum_t * data)
 {
@@ -257,6 +258,7 @@ _gnutls_buffer_to_datum (gnutls_buffer_st * str, gnutls_datum_t * data)
     {
       data->data = NULL;
       data->size = 0;
+      _gnutls_buffer_clear (str);
       return 0;
     }
 
@@ -266,6 +268,7 @@ _gnutls_buffer_to_datum (gnutls_buffer_st * str, gnutls_datum_t * data)
       if (data->data == NULL)
         {
           gnutls_assert ();
+          _gnutls_buffer_clear (str);
           return GNUTLS_E_MEMORY_ERROR;
         }
       memcpy (data->data, str->data, str->length);
@@ -276,6 +279,7 @@ _gnutls_buffer_to_datum (gnutls_buffer_st * str, gnutls_datum_t * data)
     {
       data->data = str->data;
       data->size = str->length;
+      _gnutls_buffer_init(str);
     }
 
   return 0;
index 6221b5e..320b1ff 100644 (file)
@@ -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
index 130d75c..3efe111 100644 (file)
@@ -39,6 +39,7 @@
 #include <x509_b64.h>
 #include <gnutls_x509.h>
 #include "x509/common.h"
+#include "x509/verify-high.h"
 #include "x509/x509_int.h"
 #include <gnutls_str_array.h>
 #include "read-file.h"
@@ -641,7 +642,7 @@ read_cas_url (gnutls_certificate_credentials_t res, const char *url)
   /* FIXME: should we use login? */
   ret =
     gnutls_pkcs11_obj_list_import_url (NULL, &pcrt_list_size, url,
-                                       GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED, 0);
+                                       GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA, 0);
   if (ret < 0 && ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
     {
       gnutls_assert ();
@@ -663,7 +664,7 @@ read_cas_url (gnutls_certificate_credentials_t res, const char *url)
 
   ret =
     gnutls_pkcs11_obj_list_import_url (pcrt_list, &pcrt_list_size, url,
-                                       GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED, 0);
+                                       GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA, 0);
   if (ret < 0)
     {
       gnutls_assert ();
@@ -681,10 +682,9 @@ read_cas_url (gnutls_certificate_credentials_t res, const char *url)
   ret =
     gnutls_x509_crt_list_import_pkcs11 (xcrt_list, pcrt_list_size, pcrt_list,
                                         0);
-  if (xcrt_list == NULL)
+  if (ret < 0)
     {
       gnutls_assert ();
-      ret = GNUTLS_E_MEMORY_ERROR;
       goto cleanup;
     }
 
@@ -774,6 +774,9 @@ cleanup:
   gnutls_free (ccert);
   return ret;
 }
+#else
+# define read_cert_url(x,y) gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE)
+# define read_cas_url(x,y) gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE)
 #endif
 
 /* Reads a certificate file
@@ -786,12 +789,10 @@ read_cert_file (gnutls_certificate_credentials_t res,
   size_t size;
   char *data;
 
-#ifdef ENABLE_PKCS11
   if (strncmp (certfile, "pkcs11:", 7) == 0)
     {
       return read_cert_url (res, certfile);
     }
-#endif /* ENABLE_PKCS11 */
 
   data = read_binary_file (certfile, &size);
 
@@ -821,12 +822,14 @@ read_key_file (gnutls_certificate_credentials_t res,
   size_t size;
   char *data;
 
-#ifdef ENABLE_PKCS11
   if (strncmp (keyfile, "pkcs11:", 7) == 0)
     {
+#ifdef ENABLE_PKCS11
       return read_key_url (res, keyfile);
-    }
+#else
+      return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
 #endif /* ENABLE_PKCS11 */
+    }
 
   data = read_binary_file (keyfile, &size);
 
@@ -1562,12 +1565,10 @@ gnutls_certificate_set_x509_trust_file (gnutls_certificate_credentials_t cred,
   gnutls_datum_t cas;
   size_t size;
 
-#ifdef ENABLE_PKCS11
   if (strncmp (cafile, "pkcs11:", 7) == 0)
     {
       return read_cas_url (cred, cafile);
     }
-#endif
 
   cas.data = (void*)read_binary_file (cafile, &size);
   if (cas.data == NULL)
@@ -1591,7 +1592,7 @@ gnutls_certificate_set_x509_trust_file (gnutls_certificate_credentials_t cred,
   return ret;
 }
 
-#ifdef _WIN32
+#if defined(_WIN32)
 static int
 set_x509_system_trust_file (gnutls_certificate_credentials_t cred)
 {
@@ -1641,6 +1642,148 @@ unsigned int i;
 
   return ret;
 }
+#elif defined(ANDROID) || defined(__ANDROID__)
+# include <dirent.h>
+# include <unistd.h>
+# include "read-file.h"
+
+static int load_dir_certs(const char* dirname, gnutls_certificate_credentials_t cred,
+       unsigned type)
+{
+DIR * dirp;
+struct dirent *d;
+int ret;
+int r = 0;
+char path[512];
+
+  dirp = opendir(dirname);
+  if (dirp != NULL) 
+    {
+      do
+        {
+         d = readdir(dirp);
+         if (d != NULL && d->d_type == DT_REG) {
+               snprintf(path, sizeof(path), "%s/%s", dirname, d->d_name);
+                ret = gnutls_certificate_set_x509_trust_file (cred, path, type);
+               if (ret >= 0)
+                 r += ret;
+         }
+       }
+      while(d != NULL);
+      closedir(dirp);
+    }
+    
+  return r;
+}
+
+static int
+gnutls_x509_trust_list_remove_trust_mem(gnutls_x509_trust_list_t list,
+                                     const gnutls_datum_t * cas, 
+                                     gnutls_x509_crt_fmt_t type)
+{
+  int ret;
+  gnutls_x509_crt_t *x509_ca_list = NULL;
+  unsigned int x509_ncas;
+  unsigned int r = 0, i;
+  
+  if (cas != NULL && cas->data != NULL)
+    {
+      ret = gnutls_x509_crt_list_import2( &x509_ca_list, &x509_ncas, cas, type, 0);
+      if (ret < 0)
+        return gnutls_assert_val(ret);
+
+      ret = _gnutls_x509_trust_list_remove_cas(list, x509_ca_list, x509_ncas);
+      
+      for (i=0;i<x509_ncas;i++)
+        gnutls_x509_crt_deinit(x509_ca_list[i]);
+      gnutls_free(x509_ca_list);
+
+      if (ret < 0)
+        return gnutls_assert_val(ret);
+      else
+        r += ret;
+    }
+
+  return r;
+}
+
+static int
+gnutls_x509_trust_list_remove_trust_file(gnutls_x509_trust_list_t list,
+                                      const char* ca_file, 
+                                      gnutls_x509_crt_fmt_t type)
+{
+  gnutls_datum_t cas = { NULL, 0 };
+  size_t size;
+  int ret;
+
+    {
+      cas.data = (void*)read_binary_file (ca_file, &size);
+      if (cas.data == NULL)
+        {
+          gnutls_assert ();
+          return GNUTLS_E_FILE_ERROR;
+        }
+      cas.size = size;
+    }
+
+  ret = gnutls_x509_trust_list_remove_trust_mem(list, &cas, type);
+  free(cas.data);
+
+  return ret;
+}
+
+static int load_revoked_certs(gnutls_x509_trust_list_t list, unsigned type)
+{
+DIR * dirp;
+struct dirent *d;
+int ret;
+int r = 0;
+char path[512];
+
+  dirp = opendir("/data/misc/keychain/cacerts-removed/");
+  if (dirp != NULL) 
+    {
+      do
+        {
+         d = readdir(dirp);
+         if (d != NULL && d->d_type == DT_REG) 
+           {
+               snprintf(path, sizeof(path), "/data/misc/keychain/cacerts-removed/%s", d->d_name);
+
+                ret = gnutls_x509_trust_list_remove_trust_file(list, path, type);
+                if (ret >= 0)
+                  r += ret;
+           }
+       }
+      while(d != NULL);
+      closedir(dirp);
+    }
+    
+  return r;
+}
+
+/* This works on android 4.x 
+ */
+static int
+set_x509_system_trust_file (gnutls_certificate_credentials_t cred)
+{
+  int r = 0, ret;
+
+  ret = load_dir_certs("/system/etc/security/cacerts/", cred, GNUTLS_X509_FMT_PEM);
+  if (ret >= 0)
+    r += ret;
+
+  ret = load_revoked_certs(cred->tlist, GNUTLS_X509_FMT_DER);
+  if (ret >= 0)
+    r -= ret;
+  
+  ret = load_dir_certs("/data/misc/keychain/cacerts-added/", cred, GNUTLS_X509_FMT_DER);
+  if (ret >= 0)
+    r += ret;
+
+  return r;
+}
+
 #elif defined(DEFAULT_TRUST_STORE_FILE)
 static int
 set_x509_system_trust_file (gnutls_certificate_credentials_t cred)
@@ -1693,6 +1836,12 @@ set_x509_system_trust_file (gnutls_certificate_credentials_t cred)
 
   return r;
 }
+#else
+static int
+set_x509_system_trust_file (gnutls_certificate_credentials_t cred)
+{
+  return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
 #endif
 
 /**
@@ -1713,11 +1862,7 @@ set_x509_system_trust_file (gnutls_certificate_credentials_t cred)
 int
 gnutls_certificate_set_x509_system_trust (gnutls_certificate_credentials_t cred)
 {
-#if !defined(_WIN32) && !defined(DEFAULT_TRUST_STORE_PKCS11) && !defined(DEFAULT_TRUST_STORE_FILE)
-  int r = GNUTLS_E_UNIMPLEMENTED_FEATURE;
-#else
   int ret, r = 0;
-#endif
 
 #if defined(ENABLE_PKCS11) && defined(DEFAULT_TRUST_STORE_PKCS11)
   ret = read_cas_url (cred, DEFAULT_TRUST_STORE_PKCS11);
@@ -1725,11 +1870,12 @@ gnutls_certificate_set_x509_system_trust (gnutls_certificate_credentials_t cred)
     r += ret;
 #endif
 
-#ifdef DEFAULT_TRUST_STORE_FILE
   ret = set_x509_system_trust_file(cred);
   if (ret > 0)
     r += ret;
-#endif
+  
+  if (ret == GNUTLS_E_UNIMPLEMENTED_FEATURE && r == 0)
+    return ret;
 
   return r;
 }
@@ -2436,3 +2582,4 @@ gnutls_certificate_free_crls (gnutls_certificate_credentials_t sc)
   /* do nothing for now */
   return;
 }
+
index bb0345f..99f2c39 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -73,14 +90,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -195,6 +215,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__nobase_include_HEADERS_DIST = gnutls/x509.h gnutls/pkcs12.h \
        gnutls/compat.h gnutls/openpgp.h gnutls/crypto.h \
        gnutls/pkcs11.h gnutls/abstract.h gnutls/dtls.h gnutls/ocsp.h \
@@ -548,6 +573,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -833,7 +859,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -907,6 +932,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1042,8 +1068,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1062,7 +1088,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1293,6 +1318,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1505,15 +1531,18 @@ clean-libtool:
        -rm -rf .libs _libs
 install-nobase_includeHEADERS: $(nobase_include_HEADERS)
        @$(NORMAL_INSTALL)
-       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
        @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for file in $$files; do \
            if test -f "$$file"; then xfiles="$$xfiles $$file"; \
            else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
            echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
            $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
@@ -1526,15 +1555,18 @@ uninstall-nobase_includeHEADERS:
        dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
 install-nobase_nodist_includeHEADERS: $(nobase_nodist_include_HEADERS)
        @$(NORMAL_INSTALL)
-       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
        @list='$(nobase_nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for file in $$files; do \
            if test -f "$$file"; then xfiles="$$xfiles $$file"; \
            else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
            echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
            $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
index 50c1eca..e9b0e0f 100644 (file)
@@ -36,6 +36,12 @@ extern "C"
 
 /* Public key operations */
 
+#define GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA 1
+/* The following flag disables call to PIN callbacks etc.
+ * Only works for TPM keys.
+ */
+#define GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT (1<<3)
+
 struct gnutls_pubkey_st;
 typedef struct gnutls_pubkey_st *gnutls_pubkey_t;
 
@@ -135,7 +141,6 @@ int gnutls_x509_crt_set_pubkey (gnutls_x509_crt_t crt, gnutls_pubkey_t key);
 
 int gnutls_x509_crq_set_pubkey (gnutls_x509_crq_t crq, gnutls_pubkey_t key);
 
-#define GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA 1
 int
 gnutls_pubkey_verify_hash (gnutls_pubkey_t key, unsigned int flags,
                            const gnutls_datum_t * hash,
index 02832bf..c157a04 100644 (file)
@@ -294,7 +294,6 @@ extern "C"
    * @GNUTLS_DATAGRAM: Connection is datagram oriented (DTLS).
    * @GNUTLS_NONBLOCK: Connection should not block (DTLS).
    *
-   * Enumeration of different TLS connection end types.
    */
 #define GNUTLS_SERVER 1
 #define GNUTLS_CLIENT (1<<1)
@@ -438,6 +437,8 @@ extern "C"
  *   should not be trusted.
  * @GNUTLS_CERT_NOT_ACTIVATED: The certificate is not yet activated.
  * @GNUTLS_CERT_EXPIRED: The certificate has expired.
+ * @GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED: The revocation data are old and have been superseded.
+ * @GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE: The revocation data have a future issue date.
  *
  * Enumeration of certificate status codes.  Note that the status
  * bits have different meanings in OpenPGP keys and X.509
@@ -445,13 +446,16 @@ extern "C"
  */
   typedef enum
   {
-    GNUTLS_CERT_INVALID = 2,
-    GNUTLS_CERT_REVOKED = 32,
-    GNUTLS_CERT_SIGNER_NOT_FOUND = 64,
-    GNUTLS_CERT_SIGNER_NOT_CA = 128,
-    GNUTLS_CERT_INSECURE_ALGORITHM = 256,
-    GNUTLS_CERT_NOT_ACTIVATED = 512,
-    GNUTLS_CERT_EXPIRED = 1024
+    GNUTLS_CERT_INVALID = 1<<1,
+    GNUTLS_CERT_REVOKED = 1<<5,
+    GNUTLS_CERT_SIGNER_NOT_FOUND = 1<<6,
+    GNUTLS_CERT_SIGNER_NOT_CA = 1<<7,
+    GNUTLS_CERT_INSECURE_ALGORITHM = 1<<8,
+    GNUTLS_CERT_NOT_ACTIVATED = 1<<9,
+    GNUTLS_CERT_EXPIRED = 1<<10,
+    GNUTLS_CERT_SIGNATURE_FAILURE = 1<<11,
+    GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED = 1<<12,
+    GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE = 1<<15,
   } gnutls_certificate_status_t;
 
 /**
@@ -1906,6 +1910,8 @@ gnutls_ecc_curve_t gnutls_ecc_curve_get(gnutls_session_t session);
 #define GNUTLS_E_X509_UNSUPPORTED_EXTENSION -327
 #define GNUTLS_E_SESSION_EOF -328
 
+#define GNUTLS_E_OCSP_RESPONSE_ERROR -341
+
 #define GNUTLS_E_UNIMPLEMENTED_FEATURE -1250
 
 
index db16b70..52ea028 100644 (file)
@@ -249,6 +249,10 @@ extern "C"
                               unsigned int *verify,
                               unsigned int flags);
 
+  int gnutls_ocsp_resp_check_crt (gnutls_ocsp_resp_t resp,
+                                  unsigned int indx,
+                                  gnutls_x509_crt_t crt);
+
 #ifdef __cplusplus
 }
 #endif
index 1d4e0cd..4c0dbf8 100644 (file)
@@ -28,6 +28,7 @@
 #define GNUTLS_OPENPGP_H
 
 #include <gnutls/gnutls.h>
+#include <limits.h>
 
 #ifdef __cplusplus
 extern "C"
@@ -51,6 +52,7 @@ extern "C"
   } gnutls_openpgp_crt_fmt_t;
 
 #define GNUTLS_OPENPGP_KEYID_SIZE 8
+#define GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE 20
   typedef unsigned char gnutls_openpgp_keyid_t[GNUTLS_OPENPGP_KEYID_SIZE];
 
 /* gnutls_openpgp_cert_t should be defined in gnutls.h
@@ -76,6 +78,8 @@ extern "C"
 /* The key_usage flags are defined in gnutls.h. They are
  * the GNUTLS_KEY_* definitions.
  */
+#define GNUTLS_OPENPGP_MASTER_KEYID_IDX INT_MAX
+
   int gnutls_openpgp_crt_get_key_usage (gnutls_openpgp_crt_t key,
                                         unsigned int *key_usage);
   int gnutls_openpgp_crt_get_fingerprint (gnutls_openpgp_crt_t key, void *fpr,
@@ -299,6 +303,8 @@ extern "C"
  * fingerprint instead of a full key.  See also
  * gnutls_openpgp_set_recv_key_function().
  *
+ * The variable @key must be allocated using gnutls_malloc().
+ *
  * Returns: On success, %GNUTLS_E_SUCCESS (zero) is returned,
  *   otherwise an error code is returned.
  */
index 1382954..2272fcb 100644 (file)
@@ -228,6 +228,7 @@ int gnutls_pkcs11_obj_get_info (gnutls_pkcs11_obj_t crt,
  * gnutls_pkcs11_obj_attr_t:
  * @GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL: Specify all certificates.
  * @GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED: Specify all certificates marked as trusted.
+ * @GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA: Specify all certificates marked as trusted and are CAs.
  * @GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY: Specify all certificates with a corresponding private key.
  * @GNUTLS_PKCS11_OBJ_ATTR_PUBKEY: Specify all public keys.
  * @GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY: Specify all private keys.
@@ -242,7 +243,8 @@ typedef enum
     GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY,      /* certificates with corresponding private key */
     GNUTLS_PKCS11_OBJ_ATTR_PUBKEY,        /* public keys */
     GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY,       /* private keys */
-    GNUTLS_PKCS11_OBJ_ATTR_ALL    /* everything! */
+    GNUTLS_PKCS11_OBJ_ATTR_ALL,    /* everything! */
+    GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA,
   } gnutls_pkcs11_obj_attr_t;
 
 /**
index 859966b..52adb7e 100644 (file)
@@ -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,
index 1078a07..f164733 100644 (file)
@@ -790,6 +790,7 @@ GNUTLS_3_0_0 {
        gnutls_pk_to_sign;
        gnutls_certificate_set_x509_system_trust;
        gnutls_session_set_premaster;
+       gnutls_ocsp_resp_check_crt;
 } GNUTLS_2_12;
 
 GNUTLS_PRIVATE {
index 5cb3ea3..cb9b353 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # MA 02110-1301, USA
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -73,14 +90,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -223,6 +243,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libminitasn1_la_SOURCES)
 DIST_SOURCES = $(libminitasn1_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -543,6 +568,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -828,7 +854,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -902,6 +927,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1037,8 +1063,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1057,7 +1083,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1288,6 +1313,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 8b72eba..581ef96 100644 (file)
@@ -44,7 +44,7 @@
 /* Return:                                            */
 /******************************************************/
 static void
-_asn1_error_description_value_not_found (ASN1_TYPE node,
+_asn1_error_description_value_not_found (asn1_node node,
                                         char *ErrorDescription)
 {
 
@@ -177,7 +177,7 @@ asn1_octet_der (const unsigned char *str, int str_len,
 /*   ASN1_MEM_ERROR when DER isn't big enough         */
 /*   ASN1_SUCCESS otherwise                           */
 /******************************************************/
-static asn1_retCode
+static int
 _asn1_time_der (unsigned char *str, unsigned char *der, int *der_len)
 {
   int len_len;
@@ -249,24 +249,24 @@ _asn1_get_utctime_der(unsigned char *der,int *der_len,unsigned char *str)
 /*   ASN1_MEM_ERROR when DER isn't big enough         */
 /*   ASN1_SUCCESS otherwise                           */
 /******************************************************/
-static asn1_retCode
+static int
 _asn1_objectid_der (unsigned char *str, unsigned char *der, int *der_len)
 {
   int len_len, counter, k, first, max_len;
   char *temp, *n_end, *n_start;
   unsigned char bit7;
   unsigned long val, val1 = 0;
-  int str_len = _asn1_strlen(str);
+  int str_len = _asn1_strlen (str);
 
   max_len = *der_len;
 
-  temp = _asn1_malloc (str_len + 2);
+  temp = malloc (str_len + 2);
   if (temp == NULL)
     return ASN1_MEM_ALLOC_ERROR;
 
   memcpy (temp, str, str_len);
   temp[str_len] = '.';
-  temp[str_len+1] = 0;
+  temp[str_len + 1] = 0;
 
   counter = 0;
   n_start = temp;
@@ -313,7 +313,7 @@ _asn1_objectid_der (unsigned char *str, unsigned char *der, int *der_len)
     }
   *der_len += len_len;
 
-  _asn1_free (temp);
+  free (temp);
 
   if (max_len < (*der_len))
     return ASN1_MEM_ERROR;
@@ -372,11 +372,11 @@ asn1_bit_der (const unsigned char *str, int bit_len,
 /*   ASN1_MEM_ERROR if der vector isn't big enough,   */
 /*   otherwise ASN1_SUCCESS.                          */
 /******************************************************/
-static asn1_retCode
-_asn1_complete_explicit_tag (ASN1_TYPE node, unsigned char *der,
+static int
+_asn1_complete_explicit_tag (asn1_node node, unsigned char *der,
                             int *counter, int *max_len)
 {
-  ASN1_TYPE p;
+  asn1_node p;
   int is_tag_implicit, len2, len3;
   unsigned char temp[SIZEOF_UNSIGNED_INT];
 
@@ -445,11 +445,11 @@ _asn1_complete_explicit_tag (ASN1_TYPE node, unsigned char *der,
 /*   ASN1_MEM_ERROR if der vector isn't big enough,   */
 /*   otherwise ASN1_SUCCESS.                          */
 /******************************************************/
-static asn1_retCode
-_asn1_insert_tag_der (ASN1_TYPE node, unsigned char *der, int *counter,
+static int
+_asn1_insert_tag_der (asn1_node node, unsigned char *der, int *counter,
                      int *max_len)
 {
-  ASN1_TYPE p;
+  asn1_node p;
   int tag_len, is_tag_implicit;
   unsigned char class, class_implicit = 0, temp[SIZEOF_UNSIGNED_INT * 3 + 1];
   unsigned long tag_implicit = 0;
@@ -607,7 +607,7 @@ _asn1_insert_tag_der (ASN1_TYPE node, unsigned char *der, int *counter,
 /* Return:                                            */
 /******************************************************/
 static void
-_asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
+_asn1_ordering_set (unsigned char *der, int der_len, asn1_node node)
 {
   struct vet
   {
@@ -618,7 +618,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
 
   int counter, len, len2;
   struct vet *first, *last, *p_vet, *p2_vet;
-  ASN1_TYPE p;
+  asn1_node p;
   unsigned char class, *temp;
   unsigned long tag;
 
@@ -638,7 +638,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
   first = last = NULL;
   while (p)
     {
-      p_vet = (struct vet *) _asn1_malloc (sizeof (struct vet));
+      p_vet = malloc (sizeof (struct vet));
       if (p_vet == NULL)
        return;
 
@@ -679,7 +679,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
          if (p_vet->value > p2_vet->value)
            {
              /* change position */
-             temp = (unsigned char *) _asn1_malloc (p_vet->end - counter);
+             temp = malloc (p_vet->end - counter);
              if (temp == NULL)
                return;
 
@@ -688,7 +688,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
                      p2_vet->end - p_vet->end);
              memcpy (der + counter + p2_vet->end - p_vet->end, temp,
                      p_vet->end - counter);
-             _asn1_free (temp);
+             free (temp);
 
              tag = p_vet->value;
              p_vet->value = p2_vet->value;
@@ -706,7 +706,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
        p_vet->prev->next = NULL;
       else
        first = NULL;
-      _asn1_free (p_vet);
+      free (p_vet);
       p_vet = first;
     }
 }
@@ -721,7 +721,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
 /* Return:                                            */
 /******************************************************/
 static void
-_asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
+_asn1_ordering_set_of (unsigned char *der, int der_len, asn1_node node)
 {
   struct vet
   {
@@ -731,7 +731,7 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
 
   int counter, len, len2, change;
   struct vet *first, *last, *p_vet, *p2_vet;
-  ASN1_TYPE p;
+  asn1_node p;
   unsigned char *temp, class;
   unsigned long k, max;
 
@@ -752,7 +752,7 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
   first = last = NULL;
   while (p)
     {
-      p_vet = (struct vet *) _asn1_malloc (sizeof (struct vet));
+      p_vet = malloc (sizeof (struct vet));
       if (p_vet == NULL)
        return;
 
@@ -817,7 +817,7 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
          if (change == 1)
            {
              /* change position */
-             temp = (unsigned char *) _asn1_malloc (p_vet->end - counter);
+             temp = malloc (p_vet->end - counter);
              if (temp == NULL)
                return;
 
@@ -826,7 +826,7 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
                      (p2_vet->end) - (p_vet->end));
              memcpy (der + counter + (p2_vet->end) - (p_vet->end), temp,
                      (p_vet->end) - counter);
-             _asn1_free (temp);
+             free (temp);
 
              p_vet->end = counter + (p2_vet->end - p_vet->end);
            }
@@ -840,7 +840,7 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
        p_vet->prev->next = NULL;
       else
        first = NULL;
-      _asn1_free (p_vet);
+      free (p_vet);
       p_vet = first;
     }
 }
@@ -866,14 +866,14 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
  *   vector isn't big enough and in this case @len will contain the
  *   length needed.
  **/
-asn1_retCode
-asn1_der_coding (ASN1_TYPE element, const char *name, void *ider, int *len,
+int
+asn1_der_coding (asn1_node element, const char *name, void *ider, int *len,
                 char *ErrorDescription)
 {
-  ASN1_TYPE node, p, p2;
+  asn1_node node, p, p2;
   unsigned char temp[SIZEOF_UNSIGNED_LONG_INT * 3 + 1];
   int counter, counter_old, len2, len3, tlen, move, max_len, max_len_old;
-  asn1_retCode err;
+  int err;
   unsigned char *der = ider;
 
   node = asn1_find_node (element, name);
index 1cfad35..79766a1 100644 (file)
 #include "element.h"
 #include <limits.h>
 
-static asn1_retCode
+static int
 _asn1_get_indefinite_length_string (const unsigned char *der, int *len);
 
 static void
-_asn1_error_description_tag_error (ASN1_TYPE node, char *ErrorDescription)
+_asn1_error_description_tag_error (asn1_node node, char *ErrorDescription)
 {
 
   Estrcpy (ErrorDescription, ":: tag error near element '");
@@ -58,11 +58,11 @@ _asn1_error_description_tag_error (ASN1_TYPE node, char *ErrorDescription)
  *   length, or -2 when the value was too big to fit in a int, or -4
  *   when the decoded length value plus @len would exceed @der_len.
  **/
-signed long
+long
 asn1_get_length_der (const unsigned char *der, int der_len, int *len)
 {
   unsigned int ans, sum, last;
-  unsigned int k, punt;
+  int k, punt;
 
   *len = 0;
   if (der_len <= 0)
@@ -87,7 +87,7 @@ asn1_get_length_der (const unsigned char *der, int der_len, int *len)
              last = ans;
 
              ans = (ans*256) + der[punt++];
-             if (ans < last) 
+             if (ans < last)
                /* we wrapped around, no bignum support... */
                return -2;
            }
@@ -102,13 +102,13 @@ asn1_get_length_der (const unsigned char *der, int der_len, int *len)
     }
 
   sum = ans + *len;
-  
+
   /* check for overflow as well INT_MAX as a maximum upper
    * limit for length */
   if (sum >= INT_MAX || sum < ans)
     return -2;
-  
-  if (sum > der_len)
+
+  if (((int) sum) > der_len)
     return -4;
 
   return ans;
@@ -130,7 +130,8 @@ int
 asn1_get_tag_der (const unsigned char *der, int der_len,
                  unsigned char *cls, int *len, unsigned long *tag)
 {
-  unsigned int punt, ris;
+  unsigned int ris;
+  int punt;
   unsigned int last;
 
   if (der == NULL || der_len < 2 || len == NULL)
@@ -162,10 +163,10 @@ asn1_get_tag_der (const unsigned char *der, int der_len,
        return ASN1_DER_ERROR;
 
       last = ris;
-        
+
       ris = (ris * 128) + (der[punt++] & 0x7F);
       if (ris < last)
-        return ASN1_DER_ERROR;
+       return ASN1_DER_ERROR;
 
       *len = punt;
     }
@@ -189,7 +190,7 @@ asn1_get_tag_der (const unsigned char *der, int der_len,
  *
  * Since: 2.0
  **/
-signed long
+long
 asn1_get_length_ber (const unsigned char *ber, int ber_len, int *len)
 {
   int ret;
@@ -368,10 +369,10 @@ asn1_get_bit_der (const unsigned char *der, int der_len,
 }
 
 static int
-_asn1_extract_tag_der (ASN1_TYPE node, const unsigned char *der, int der_len,
+_asn1_extract_tag_der (asn1_node node, const unsigned char *der, int der_len,
                       int *ret_len)
 {
-  ASN1_TYPE p;
+  asn1_node p;
   int counter, len2, len3, is_tag_implicit;
   unsigned long tag, tag_implicit = 0;
   unsigned char class, class2, class_implicit = 0;
@@ -566,9 +567,9 @@ _asn1_extract_tag_der (ASN1_TYPE node, const unsigned char *der, int der_len,
 }
 
 static int
-_asn1_delete_not_used (ASN1_TYPE node)
+_asn1_delete_not_used (asn1_node node)
 {
-  ASN1_TYPE p, p2;
+  asn1_node p, p2;
 
   if (node == NULL)
     return ASN1_ELEMENT_NOT_FOUND;
@@ -624,8 +625,8 @@ _asn1_delete_not_used (ASN1_TYPE node)
   return ASN1_SUCCESS;
 }
 
-static asn1_retCode
-_asn1_extract_der_octet (ASN1_TYPE node, const unsigned char *der,
+static int
+_asn1_extract_der_octet (asn1_node node, const unsigned char *der,
                         int der_len)
 {
   int len2, len3;
@@ -669,8 +670,8 @@ _asn1_extract_der_octet (ASN1_TYPE node, const unsigned char *der,
   return ASN1_SUCCESS;
 }
 
-static asn1_retCode
-_asn1_get_octet_string (const unsigned char *der, ASN1_TYPE node, int *len)
+static int
+_asn1_get_octet_string (const unsigned char *der, asn1_node node, int *len)
 {
   int len2, len3, counter, tot_len, indefinite;
 
@@ -727,8 +728,6 @@ _asn1_get_octet_string (const unsigned char *der, ASN1_TYPE node, int *len)
          asn1_length_der (tot_len, temp, &len2);
          _asn1_set_value (node, temp, len2);
 
-         tot_len += len2;
-
          ret = _asn1_extract_der_octet (node, der, *len);
          if (ret != ASN1_SUCCESS)
            return ret;
@@ -740,9 +739,10 @@ _asn1_get_octet_string (const unsigned char *der, ASN1_TYPE node, int *len)
       len2 = asn1_get_length_der (der, *len, &len3);
       if (len2 < 0)
        return ASN1_DER_ERROR;
-      if (node)
-       _asn1_set_value (node, der, len3 + len2);
+
       counter = len3 + len2;
+      if (node)
+       _asn1_set_value (node, der, counter);
     }
 
   *len = counter;
@@ -750,7 +750,7 @@ _asn1_get_octet_string (const unsigned char *der, ASN1_TYPE node, int *len)
 
 }
 
-static asn1_retCode
+static int
 _asn1_get_indefinite_length_string (const unsigned char *der, int *len)
 {
   int len2, len3, counter, indefinite;
@@ -812,18 +812,18 @@ _asn1_get_indefinite_length_string (const unsigned char *der, int *len)
  * string. The structure must just be created with function
  * asn1_create_element().  If an error occurs during the decoding
  * procedure, the *@ELEMENT is deleted and set equal to
- * %ASN1_TYPE_EMPTY.
+ * %NULL.
  *
  * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- *   if @ELEMENT is %ASN1_TYPE_EMPTY, and %ASN1_TAG_ERROR or
+ *   if @ELEMENT is %NULL, and %ASN1_TAG_ERROR or
  *   %ASN1_DER_ERROR if the der encoding doesn't match the structure
  *   name (*@ELEMENT deleted).
  **/
-asn1_retCode
-asn1_der_decoding (ASN1_TYPE * element, const void *ider, int len,
+int
+asn1_der_decoding (asn1_node * element, const void *ider, int len,
                   char *errorDescription)
 {
-  ASN1_TYPE node, p, p2, p3;
+  asn1_node node, p, p2, p3;
   char temp[128];
   int counter, len2, len3, len4, move, ris, tlen;
   unsigned char class;
@@ -833,7 +833,10 @@ asn1_der_decoding (ASN1_TYPE * element, const void *ider, int len,
 
   node = *element;
 
-  if (node == ASN1_TYPE_EMPTY)
+  if (errorDescription != NULL)
+    errorDescription[0] = 0;
+
+  if (node == NULL)
     return ASN1_ELEMENT_NOT_FOUND;
 
   if (node->type & CONST_OPTION)
@@ -1390,18 +1393,18 @@ cleanup:
  * asn1_create_element().  The DER vector must contain the encoding
  * string of the whole @STRUCTURE.  If an error occurs during the
  * decoding procedure, the *@STRUCTURE is deleted and set equal to
- * %ASN1_TYPE_EMPTY.
+ * %NULL.
  *
  * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- *   if ELEMENT is %ASN1_TYPE_EMPTY or @elementName == NULL, and
+ *   if ELEMENT is %NULL or @elementName == NULL, and
  *   %ASN1_TAG_ERROR or %ASN1_DER_ERROR if the der encoding doesn't
  *   match the structure @structure (*ELEMENT deleted).
  **/
-asn1_retCode
-asn1_der_decoding_element (ASN1_TYPE * structure, const char *elementName,
+int
+asn1_der_decoding_element (asn1_node * structure, const char *elementName,
                           const void *ider, int len, char *errorDescription)
 {
-  ASN1_TYPE node, p, p2, p3, nodeFound = ASN1_TYPE_EMPTY;
+  asn1_node node, p, p2, p3, nodeFound = NULL;
   char temp[128], currentName[ASN1_MAX_NAME_SIZE * 10], *dot_p, *char_p;
   int nameLen = ASN1_MAX_NAME_SIZE * 10 - 1, state;
   int counter, len2, len3, len4, move, ris, tlen;
@@ -1412,7 +1415,7 @@ asn1_der_decoding_element (ASN1_TYPE * structure, const char *elementName,
 
   node = *structure;
 
-  if (node == ASN1_TYPE_EMPTY)
+  if (node == NULL)
     return ASN1_ELEMENT_NOT_FOUND;
 
   if (elementName == NULL)
@@ -1427,7 +1430,7 @@ asn1_der_decoding_element (ASN1_TYPE * structure, const char *elementName,
       goto cleanup;
     }
 
-  if ((*structure)->name)
+  if ((*structure)->name[0] != 0)
     {                          /* Has *structure got a name? */
       nameLen -= strlen ((*structure)->name);
       if (nameLen > 0)
@@ -2207,15 +2210,15 @@ cleanup:
  * certificate.
  *
  * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- *   if ELEMENT is %ASN1_TYPE EMPTY or @name_element is not a valid
+ *   if ELEMENT is %asn1_node EMPTY or @name_element is not a valid
  *   element, %ASN1_TAG_ERROR or %ASN1_DER_ERROR if the der encoding
  *   doesn't match the structure ELEMENT.
  **/
-asn1_retCode
-asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
+int
+asn1_der_decoding_startEnd (asn1_node element, const void *ider, int len,
                            const char *name_element, int *start, int *end)
 {
-  ASN1_TYPE node, node_to_find, p, p2, p3;
+  asn1_node node, node_to_find, p, p2, p3;
   int counter, len2, len3, len4, move, ris;
   unsigned char class;
   unsigned long tag;
@@ -2224,7 +2227,7 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
 
   node = element;
 
-  if (node == ASN1_TYPE_EMPTY)
+  if (node == NULL)
     return ASN1_ELEMENT_NOT_FOUND;
 
   node_to_find = asn1_find_node (node, name_element);
@@ -2247,6 +2250,9 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
   p = node;
   while (1)
     {
+      if (p == NULL)
+        return ASN1_DER_ERROR;
+
       ris = ASN1_SUCCESS;
 
       if (move != UP)
@@ -2254,6 +2260,9 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
          if (p->type & CONST_SET)
            {
              p2 = _asn1_find_up (p);
+              if (p2 == NULL)
+                return ASN1_DER_ERROR;
+
              len2 = _asn1_strtol (p2->value, NULL, 10);
              if (len2 == -1)
                {
@@ -2273,7 +2282,9 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
                }
              else if (counter > len2)
                return ASN1_DER_ERROR;
+
              p2 = p2->down;
+
              while (p2)
                {
                  if ((p2->type & CONST_SET) && (p2->type & CONST_NOT_USED))
@@ -2285,6 +2296,9 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
                      else
                        {
                          p3 = p2->down;
+                          if (p3 == NULL)
+                            return ASN1_DER_ERROR;
+
                          ris =
                            _asn1_extract_tag_der (p3, der + counter,
                                                   len - counter, &len2);
@@ -2308,6 +2322,9 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
          if (type_field (p->type) == TYPE_CHOICE)
            {
              p = p->down;
+              if (p == NULL)
+                return ASN1_DER_ERROR;
+
              ris =
                _asn1_extract_tag_der (p, der + counter, len - counter,
                                       &len2);
@@ -2548,17 +2565,17 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
  *   problem in OBJECT_ID -> TYPE association, or other error codes
  *   depending on DER decoding.
  **/
-asn1_retCode
-asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
+int
+asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element)
 {
   char definitionsName[ASN1_MAX_NAME_SIZE], name[2 * ASN1_MAX_NAME_SIZE + 1],
     value[ASN1_MAX_NAME_SIZE];
-  asn1_retCode retCode = ASN1_SUCCESS, result;
+  int retCode = ASN1_SUCCESS, result;
   int len, len2, len3;
-  ASN1_TYPE p, p2, p3, aux = ASN1_TYPE_EMPTY;
+  asn1_node p, p2, p3, aux = NULL;
   char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
 
-  if ((definitions == ASN1_TYPE_EMPTY) || (*element == ASN1_TYPE_EMPTY))
+  if ((definitions == NULL) || (*element == NULL))
     return ASN1_ELEMENT_NOT_FOUND;
 
   strcpy (definitionsName, definitions->name);
@@ -2595,7 +2612,7 @@ asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
              p3 = p3->down;
              while (p3)
                {
-                 if ((p3->name) && !(strcmp (p3->name, p2->name)))
+                 if (!(strcmp (p3->name, p2->name)))
                    break;
                  p3 = p3->right;
                }
@@ -2617,7 +2634,7 @@ asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
 
                  while (p3)
                    {
-                     if ((p3->name) && !(strcmp (p3->name, p2->name)))
+                     if (!(strcmp (p3->name, p2->name)))
                        break;
                      p3 = p3->right;
                    }
@@ -2661,7 +2678,7 @@ asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
                                asn1_create_element (definitions, name, &aux);
                              if (result == ASN1_SUCCESS)
                                {
-                                 _asn1_set_name (aux, p->name);
+                                 _asn1_cpy_name (aux, p);
                                  len2 =
                                    asn1_get_length_der (p->value,
                                                         p->value_len, &len3);
@@ -2682,7 +2699,7 @@ asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
                                      if (result == ASN1_SUCCESS)
                                        {
                                          p = aux;
-                                         aux = ASN1_TYPE_EMPTY;
+                                         aux = NULL;
                                          break;
                                        }
                                      else
@@ -2778,22 +2795,22 @@ asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
  *   %ASN1_VALUE_NOT_VALID if it wasn't possible to find the type to
  *   use for expansion, or other errors depending on DER decoding.
  **/
-asn1_retCode
-asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE * element,
+int
+asn1_expand_octet_string (asn1_node definitions, asn1_node * element,
                          const char *octetName, const char *objectName)
 {
   char name[2 * ASN1_MAX_NAME_SIZE + 1], value[ASN1_MAX_NAME_SIZE];
-  asn1_retCode retCode = ASN1_SUCCESS, result;
+  int retCode = ASN1_SUCCESS, result;
   int len, len2, len3;
-  ASN1_TYPE p2, aux = ASN1_TYPE_EMPTY;
-  ASN1_TYPE octetNode = ASN1_TYPE_EMPTY, objectNode = ASN1_TYPE_EMPTY;
+  asn1_node p2, aux = NULL;
+  asn1_node octetNode = NULL, objectNode = NULL;
   char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
 
-  if ((definitions == ASN1_TYPE_EMPTY) || (*element == ASN1_TYPE_EMPTY))
+  if ((definitions == NULL) || (*element == NULL))
     return ASN1_ELEMENT_NOT_FOUND;
 
   octetNode = asn1_find_node (*element, octetName);
-  if (octetNode == ASN1_TYPE_EMPTY)
+  if (octetNode == NULL)
     return ASN1_ELEMENT_NOT_FOUND;
   if (type_field (octetNode->type) != TYPE_OCTET_STRING)
     return ASN1_ELEMENT_NOT_FOUND;
@@ -2801,7 +2818,7 @@ asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE * element,
     return ASN1_VALUE_NOT_FOUND;
 
   objectNode = asn1_find_node (*element, objectName);
-  if (objectNode == ASN1_TYPE_EMPTY)
+  if (objectNode == NULL)
     return ASN1_ELEMENT_NOT_FOUND;
 
   if (type_field (objectNode->type) != TYPE_OBJECT_ID)
@@ -2843,7 +2860,7 @@ asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE * element,
                  result = asn1_create_element (definitions, name, &aux);
                  if (result == ASN1_SUCCESS)
                    {
-                     _asn1_set_name (aux, octetNode->name);
+                     _asn1_cpy_name (aux, octetNode);
                      len2 =
                        asn1_get_length_der (octetNode->value,
                                             octetNode->value_len, &len3);
@@ -2862,7 +2879,7 @@ asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE * element,
                          result = asn1_delete_structure (&octetNode);
                          if (result == ASN1_SUCCESS)
                            {
-                             aux = ASN1_TYPE_EMPTY;
+                             aux = NULL;
                              break;
                            }
                          else
index ead899c..4c871a1 100644 (file)
@@ -34,9 +34,9 @@
 #include "element.h"
 
 void
-_asn1_hierarchical_name (ASN1_TYPE node, char *name, int name_size)
+_asn1_hierarchical_name (asn1_node node, char *name, int name_size)
 {
-  ASN1_TYPE p;
+  asn1_node p;
   char tmp_name[64];
 
   p = node;
@@ -45,7 +45,7 @@ _asn1_hierarchical_name (ASN1_TYPE node, char *name, int name_size)
 
   while (p != NULL)
     {
-      if (p->name != NULL)
+      if (p->name[0] != 0)
        {
          _asn1_str_cpy (tmp_name, sizeof (tmp_name), name),
            _asn1_str_cpy (name, name_size, p->name);
@@ -74,7 +74,7 @@ _asn1_hierarchical_name (ASN1_TYPE node, char *name, int name_size)
 /*   len: number of significant byte of value_out.                */
 /* Return: ASN1_MEM_ERROR or ASN1_SUCCESS                         */
 /******************************************************************/
-asn1_retCode
+int
 _asn1_convert_integer (const unsigned char *value, unsigned char *value_out,
                       int value_out_size, int *len)
 {
@@ -127,9 +127,9 @@ _asn1_convert_integer (const unsigned char *value, unsigned char *value_out,
 
 
 int
-_asn1_append_sequence_set (ASN1_TYPE node)
+_asn1_append_sequence_set (asn1_node node)
 {
-  ASN1_TYPE p, p2;
+  asn1_node p, p2;
   char temp[10];
   long n;
 
@@ -145,7 +145,7 @@ _asn1_append_sequence_set (ASN1_TYPE node)
     p = p->right;
   _asn1_set_right (p, p2);
 
-  if (p->name == NULL)
+  if (p->name[0] == 0)
     _asn1_str_cpy (temp, sizeof (temp), "?1");
   else
     {
@@ -267,11 +267,11 @@ _asn1_append_sequence_set (ASN1_TYPE node)
  *   %ASN1_ELEMENT_NOT_FOUND if @name is not a valid element, and
  *   %ASN1_VALUE_NOT_VALID if @ivalue has a wrong format.
  **/
-asn1_retCode
-asn1_write_value (ASN1_TYPE node_root, const char *name,
+int
+asn1_write_value (asn1_node node_root, const char *name,
                  const void *ivalue, int len)
 {
-  ASN1_TYPE node, p, p2;
+  asn1_node node, p, p2;
   unsigned char *temp, *value_temp = NULL, *default_temp = NULL;
   int len2, k, k2, negative;
   size_t i;
@@ -343,8 +343,7 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
        {
          if ((isdigit (value[0])) || (value[0] == '-'))
            {
-             value_temp =
-               (unsigned char *) _asn1_malloc (SIZEOF_UNSIGNED_LONG_INT);
+             value_temp = malloc (SIZEOF_UNSIGNED_LONG_INT);
              if (value_temp == NULL)
                return ASN1_MEM_ALLOC_ERROR;
 
@@ -360,11 +359,9 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
                {
                  if (type_field (p->type) == TYPE_CONSTANT)
                    {
-                     if ((p->name) && (!_asn1_strcmp (p->name, value)))
+                     if (!_asn1_strcmp (p->name, value))
                        {
-                         value_temp =
-                           (unsigned char *)
-                           _asn1_malloc (SIZEOF_UNSIGNED_LONG_INT);
+                         value_temp = malloc (SIZEOF_UNSIGNED_LONG_INT);
                          if (value_temp == NULL)
                            return ASN1_MEM_ALLOC_ERROR;
 
@@ -383,7 +380,7 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
        }
       else
        {                       /* len != 0 */
-         value_temp = (unsigned char *) _asn1_malloc (len);
+         value_temp = malloc (len);
          if (value_temp == NULL)
            return ASN1_MEM_ALLOC_ERROR;
          memcpy (value_temp, value, len);
@@ -397,7 +394,7 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
 
       if (negative && (type_field (node->type) == TYPE_ENUMERATED))
        {
-         _asn1_free (value_temp);
+         free (value_temp);
          return ASN1_VALUE_NOT_VALID;
        }
 
@@ -420,11 +417,10 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
            p = p->right;
          if ((isdigit (p->value[0])) || (p->value[0] == '-'))
            {
-             default_temp =
-               (unsigned char *) _asn1_malloc (SIZEOF_UNSIGNED_LONG_INT);
+             default_temp = malloc (SIZEOF_UNSIGNED_LONG_INT);
              if (default_temp == NULL)
                {
-                 _asn1_free (value_temp);
+                 free (value_temp);
                  return ASN1_MEM_ALLOC_ERROR;
                }
 
@@ -435,7 +431,7 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
            {                   /* is an identifier like v1 */
              if (!(node->type & CONST_LIST))
                {
-                 _asn1_free (value_temp);
+                 free (value_temp);
                  return ASN1_VALUE_NOT_VALID;
                }
              p2 = node->down;
@@ -443,14 +439,12 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
                {
                  if (type_field (p2->type) == TYPE_CONSTANT)
                    {
-                     if ((p2->name) && (!_asn1_strcmp (p2->name, p->value)))
+                     if (!_asn1_strcmp (p2->name, p->value))
                        {
-                         default_temp =
-                           (unsigned char *)
-                           _asn1_malloc (SIZEOF_UNSIGNED_LONG_INT);
+                         default_temp = malloc (SIZEOF_UNSIGNED_LONG_INT);
                          if (default_temp == NULL)
                            {
-                             _asn1_free (value_temp);
+                             free (value_temp);
                              return ASN1_MEM_ALLOC_ERROR;
                            }
 
@@ -465,7 +459,7 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
                }
              if (p2 == NULL)
                {
-                 _asn1_free (value_temp);
+                 free (value_temp);
                  return ASN1_VALUE_NOT_VALID;
                }
            }
@@ -481,9 +475,9 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
              if (k2 == len2)
                _asn1_set_value (node, NULL, 0);
            }
-         _asn1_free (default_temp);
+         free (default_temp);
        }
-      _asn1_free (value_temp);
+      free (value_temp);
       break;
     case TYPE_OBJECT_ID:
       for (i = 0; i < _asn1_strlen (value); i++)
@@ -562,7 +556,7 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
       if (len == 0)
        len = _asn1_strlen (value);
       asn1_length_der ((len >> 3) + 2, NULL, &len2);
-      temp = (unsigned char *) _asn1_malloc ((len >> 3) + 2 + len2);
+      temp = malloc ((len >> 3) + 2 + len2);
       if (temp == NULL)
        return ASN1_MEM_ALLOC_ERROR;
 
@@ -699,10 +693,10 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
  *   to store the result, and in this case @len will contain the number of
  *   bytes needed.
  **/
-asn1_retCode
-asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len)
+int
+asn1_read_value (asn1_node root, const char *name, void *ivalue, int *len)
 {
-  ASN1_TYPE node, p, p2;
+  asn1_node node, p, p2;
   int len2, len3;
   int value_size = *len;
   unsigned char *value = ivalue;
@@ -767,7 +761,7 @@ asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len)
                {
                  if (type_field (p2->type) == TYPE_CONSTANT)
                    {
-                     if ((p2->name) && (!_asn1_strcmp (p2->name, p->value)))
+                     if (!_asn1_strcmp (p2->name, p->value))
                        {
                          if (_asn1_convert_integer
                              (p2->value, value, value_size,
@@ -877,11 +871,11 @@ asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len)
  * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
  *   @name is not a valid element.
  **/
-asn1_retCode
-asn1_read_tag (ASN1_TYPE root, const char *name, int *tagValue,
+int
+asn1_read_tag (asn1_node root, const char *name, int *tagValue,
               int *classValue)
 {
-  ASN1_TYPE node, p, pTag;
+  asn1_node node, p, pTag;
 
   node = asn1_find_node (root, name);
   if (node == NULL)
@@ -976,3 +970,23 @@ asn1_read_tag (ASN1_TYPE root, const char *name, int *tagValue,
 
   return ASN1_SUCCESS;
 }
+
+/**
+ * asn1_read_node_value:
+ * @node: pointer to a node.
+ * @data: a point to a asn1_data_node_st
+ *
+ * Returns the value a data node inside a asn1_node structure.
+ * The data returned should be handled as constant values.
+ *
+ * Returns: %ASN1_SUCCESS if the node exists.
+ **/
+int asn1_read_node_value (asn1_node node, asn1_data_node_st* data)
+{
+  data->name = node->name;
+  data->value = node->value;
+  data->value_len = node->value_len;
+  data->type = type_field(node->type);
+  
+  return ASN1_SUCCESS;
+}
index 9cad46e..3bd38bb 100644 (file)
 #define _ELEMENT_H
 
 
-asn1_retCode _asn1_append_sequence_set (ASN1_TYPE node);
+int _asn1_append_sequence_set (asn1_node node);
 
-asn1_retCode _asn1_convert_integer (const unsigned char *value,
+int _asn1_convert_integer (const unsigned char *value,
                                    unsigned char *value_out,
                                    int value_out_size, int *len);
 
-void _asn1_hierarchical_name (ASN1_TYPE node, char *name, int name_size);
+void _asn1_hierarchical_name (asn1_node node, char *name, int name_size);
 
 #endif
index 7878c50..e01c3ee 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <int.h>
 #ifdef STDC_HEADERS
-# include <stdarg.h>
+#include <stdarg.h>
 #endif
 
 #define LIBTASN1_ERROR_ENTRY(name) { #name, name }
@@ -68,7 +68,7 @@ static const libtasn1_error_entry error_algorithms[] = {
  * Since: 1.6
  **/
 void
-asn1_perror (asn1_retCode error)
+asn1_perror (int error)
 {
   const char *str = asn1_strerror (error);
   fprintf (stderr, "LIBTASN1 ERROR: %s\n", str ? str : "(null)");
@@ -90,7 +90,7 @@ asn1_perror (asn1_retCode error)
  * Since: 1.6
  **/
 const char *
-asn1_strerror (asn1_retCode error)
+asn1_strerror (int error)
 {
   const libtasn1_error_entry *p;
 
@@ -100,44 +100,3 @@ asn1_strerror (asn1_retCode error)
 
   return NULL;
 }
-
-#ifndef ASN1_DISABLE_DEPRECATED
-
-/* Compatibility mappings to preserve ABI. */
-
-/**
- * libtasn1_perror:
- * @error: is an error returned by a libtasn1 function.
- *
- * Prints a string to stderr with a description of an error.  This
- * function is like perror(). The only difference is that it accepts
- * an error returned by a libtasn1 function.
- *
- * Deprecated: Use asn1_perror() instead.
- **/
-void
-libtasn1_perror (asn1_retCode error)
-{
-  asn1_perror (error);
-}
-
-/**
- * libtasn1_strerror:
- * @error: is an error returned by a libtasn1 function.
- *
- * Returns a string with a description of an error.  This function is
- * similar to strerror.  The only difference is that it accepts an
- * error (number) returned by a libtasn1 function.
- *
- * Returns: Pointer to static zero-terminated string describing error
- *   code.
- *
- * Deprecated: Use asn1_strerror() instead.
- **/
-const char *
-libtasn1_strerror (asn1_retCode error)
-{
-  return asn1_strerror (error);
-}
-
-#endif
index 9590b45..0558c77 100644 (file)
@@ -48,7 +48,8 @@ _asn1_str_cat (char *dest, size_t dest_tot_size, const char *src)
     }
 }
 
-void
+/* Returns the bytes copied (not including the null terminator) */
+unsigned int
 _asn1_str_cpy (char *dest, size_t dest_tot_size, const char *src)
 {
   size_t str_size = strlen (src);
@@ -56,13 +57,17 @@ _asn1_str_cpy (char *dest, size_t dest_tot_size, const char *src)
   if (dest_tot_size > str_size)
     {
       strcpy (dest, src);
+      return str_size;
     }
   else
     {
       if (dest_tot_size > 0)
        {
-         strncpy (dest, src, (dest_tot_size) - 1);
-         dest[dest_tot_size - 1] = 0;
+         str_size = dest_tot_size - 1;
+         memcpy (dest, src, str_size);
+         dest[str_size] = 0;
+         return str_size;
        }
+      else return 0;
     }
 }
index baaa6a0..672d59e 100644 (file)
@@ -19,7 +19,7 @@
  * 02110-1301, USA
  */
 
-void _asn1_str_cpy (char *dest, size_t dest_tot_size, const char *src);
+unsigned int _asn1_str_cpy (char *dest, size_t dest_tot_size, const char *src);
 void _asn1_str_cat (char *dest, size_t dest_tot_size, const char *src);
 
 #define Estrcpy(x,y) _asn1_str_cpy(x,ASN1_MAX_ERROR_DESCRIPTION_SIZE,y)
index fcaf0d8..0908284 100644 (file)
@@ -23,7 +23,7 @@
 #define INT_H
 
 #ifdef HAVE_CONFIG_H
-# include <config.h>
+#include <config.h>
 #endif
 
 #include <string.h>
@@ -33,7 +33,7 @@
 #include <stdint.h>
 
 #ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
+#include <sys/types.h>
 #endif
 
 #include <libtasn1.h>
 /* This structure is also in libtasn1.h, but then contains less
    fields.  You cannot make any modifications to these first fields
    without breaking ABI.  */
-struct node_asn_struct
+struct asn1_node_st
 {
   /* public fields: */
-  char *name;                  /* Node name */
+  char name[ASN1_MAX_NAME_SIZE+1];                     /* Node name */
+  unsigned int name_hash;
   unsigned int type;           /* Node type */
   unsigned char *value;                /* Node value */
   int value_len;
-  ASN1_TYPE down;              /* Pointer to the son node */
-  ASN1_TYPE right;             /* Pointer to the brother node */
-  ASN1_TYPE left;              /* Pointer to the next list element */
+  asn1_node down;              /* Pointer to the son node */
+  asn1_node right;             /* Pointer to the brother node */
+  asn1_node left;              /* Pointer to the next list element */
   /* private fields: */
   unsigned char small_value[ASN1_SMALL_VALUE_SIZE];    /* For small values */
 };
 
-#define _asn1_malloc malloc
-#define _asn1_free free
-#define _asn1_calloc calloc
-#define _asn1_realloc realloc
-#define _asn1_strdup strdup
 #define _asn1_strlen(s) strlen((const char *) s)
 #define _asn1_strtol(n,e,b) strtol((const char *) n, e, b)
 #define _asn1_strtoul(n,e,b) strtoul((const char *) n, e, b)
@@ -78,37 +74,37 @@ struct node_asn_struct
 
 /****************************************/
 /* Returns the first 8 bits.            */
-/* Used with the field type of node_asn */
+/* Used with the field type of asn1_node_st */
 /****************************************/
 #define type_field(x)     (x&0xFF)
 
-/* List of constants for field type of typedef node_asn  */
-#define TYPE_CONSTANT       1
-#define TYPE_IDENTIFIER     2
-#define TYPE_INTEGER        3
-#define TYPE_BOOLEAN        4
-#define TYPE_SEQUENCE       5
-#define TYPE_BIT_STRING     6
-#define TYPE_OCTET_STRING   7
-#define TYPE_TAG            8
-#define TYPE_DEFAULT        9
-#define TYPE_SIZE          10
-#define TYPE_SEQUENCE_OF   11
-#define TYPE_OBJECT_ID     12
-#define TYPE_ANY           13
-#define TYPE_SET           14
-#define TYPE_SET_OF        15
-#define TYPE_DEFINITIONS   16
-#define TYPE_TIME          17
-#define TYPE_CHOICE        18
-#define TYPE_IMPORTS       19
-#define TYPE_NULL          20
-#define TYPE_ENUMERATED    21
-#define TYPE_GENERALSTRING 27
+/* List of constants for field type of typedef asn1_node_st  */
+#define TYPE_CONSTANT      ASN1_ETYPE_CONSTANT
+#define TYPE_IDENTIFIER    ASN1_ETYPE_IDENTIFIER
+#define TYPE_INTEGER       ASN1_ETYPE_INTEGER
+#define TYPE_BOOLEAN       ASN1_ETYPE_BOOLEAN
+#define TYPE_SEQUENCE      ASN1_ETYPE_SEQUENCE
+#define TYPE_BIT_STRING    ASN1_ETYPE_BIT_STRING
+#define TYPE_OCTET_STRING  ASN1_ETYPE_OCTET_STRING
+#define TYPE_TAG           ASN1_ETYPE_TAG
+#define TYPE_DEFAULT       ASN1_ETYPE_DEFAULT
+#define TYPE_SIZE          ASN1_ETYPE_SIZE
+#define TYPE_SEQUENCE_OF   ASN1_ETYPE_SEQUENCE_OF
+#define TYPE_OBJECT_ID     ASN1_ETYPE_OBJECT_ID
+#define TYPE_ANY           ASN1_ETYPE_ANY
+#define TYPE_SET           ASN1_ETYPE_SET
+#define TYPE_SET_OF        ASN1_ETYPE_SET_OF
+#define TYPE_DEFINITIONS   ASN1_ETYPE_DEFINITIONS
+#define TYPE_TIME          ASN1_ETYPE_TIME
+#define TYPE_CHOICE        ASN1_ETYPE_CHOICE
+#define TYPE_IMPORTS       ASN1_ETYPE_IMPORTS
+#define TYPE_NULL          ASN1_ETYPE_NULL
+#define TYPE_ENUMERATED    ASN1_ETYPE_ENUMERATED
+#define TYPE_GENERALSTRING ASN1_ETYPE_GENERALSTRING
 
 
 /***********************************************************************/
-/* List of constants to better specify the type of typedef node_asn.   */
+/* List of constants to better specify the type of typedef asn1_node_st.   */
 /***********************************************************************/
 /*  Used with TYPE_TAG  */
 #define CONST_UNIVERSAL   (1<<8)
index 289fb57..5be46d0 100644 (file)
@@ -44,9 +44,7 @@ extern "C"
 {
 #endif
 
-#define ASN1_VERSION "2.12"
-
-  typedef int asn1_retCode;    /* type returned by libtasn1 functions */
+#define ASN1_VERSION "3.0"
 
   /*****************************************/
   /* Errors returned by libtasn1 functions */
@@ -108,46 +106,63 @@ extern "C"
   /* that represent an ASN.1 DEFINITION.                */
   /******************************************************/
 
-#if !defined ASN1_BUILDING
-  /* This structure is also in internal.h, but then contains more
-     fields.  You cannot make any modifications to these fields
-     without breaking ABI.  */
-  struct node_asn_struct
-  {
-    char *name;                        /* Node name */
-    unsigned int type;         /* Node type */
-    unsigned char *value;      /* Node value */
-    int value_len;
-    struct node_asn_struct *down;      /* Pointer to the son node */
-    struct node_asn_struct *right;     /* Pointer to the brother node */
-    struct node_asn_struct *left;      /* Pointer to the next list element */
-  };
-#endif
+  typedef struct asn1_node_st asn1_node_st;
 
-  typedef struct node_asn_struct node_asn;
+  typedef asn1_node_st *asn1_node;
 
-  typedef node_asn *ASN1_TYPE;
+  /* maximum number of characters of a name */
+  /* inside a file with ASN1 definitons     */
+#define ASN1_MAX_NAME_SIZE 64
 
-#define ASN1_TYPE_EMPTY  NULL
 
   /*****************************************/
   /* For the on-disk format of ASN.1 trees */
   /*****************************************/
-  struct static_struct_asn
+  struct asn1_static_node_st
   {
     const char *name;          /* Node name */
     unsigned int type;         /* Node type */
     const void *value;         /* Node value */
   };
-  typedef struct static_struct_asn ASN1_ARRAY_TYPE;
+  typedef struct asn1_static_node_st asn1_static_node_t;
+
+/* List of constants for field type of typedef node_asn  */
+#define ASN1_ETYPE_CONSTANT       1
+#define ASN1_ETYPE_IDENTIFIER     2
+#define ASN1_ETYPE_INTEGER        3
+#define ASN1_ETYPE_BOOLEAN        4
+#define ASN1_ETYPE_SEQUENCE       5
+#define ASN1_ETYPE_BIT_STRING     6
+#define ASN1_ETYPE_OCTET_STRING   7
+#define ASN1_ETYPE_TAG            8
+#define ASN1_ETYPE_DEFAULT        9
+#define ASN1_ETYPE_SIZE          10
+#define ASN1_ETYPE_SEQUENCE_OF   11
+#define ASN1_ETYPE_OBJECT_ID     12
+#define ASN1_ETYPE_ANY           13
+#define ASN1_ETYPE_SET           14
+#define ASN1_ETYPE_SET_OF        15
+#define ASN1_ETYPE_DEFINITIONS   16
+#define ASN1_ETYPE_TIME          17
+#define ASN1_ETYPE_CHOICE        18
+#define ASN1_ETYPE_IMPORTS       19
+#define ASN1_ETYPE_NULL          20
+#define ASN1_ETYPE_ENUMERATED    21
+#define ASN1_ETYPE_GENERALSTRING 27
+
+  struct asn1_data_node_st
+  {
+    const char *name;          /* Node name */
+    const void *value;         /* Node value */
+    unsigned int value_len;     /* Node value size */
+    unsigned int type;         /* Node value type (ASN1_ETYPE_*) */
+  };
+  typedef struct asn1_data_node_st asn1_data_node_st;
 
   /***********************************/
   /*  Fixed constants                */
   /***********************************/
 
-  /* maximum number of characters of a name */
-  /* inside a file with ASN1 definitons     */
-#define ASN1_MAX_NAME_SIZE 128
 
   /* maximum number of characters */
   /* of a description message     */
@@ -158,85 +173,88 @@ extern "C"
   /*  Functions definitions          */
   /***********************************/
 
-  extern ASN1_API asn1_retCode
+  extern ASN1_API int
     asn1_parser2tree (const char *file_name,
-                     ASN1_TYPE * definitions, char *errorDescription);
+                     asn1_node * definitions, char *errorDescription);
 
-  extern ASN1_API asn1_retCode
+  extern ASN1_API int
     asn1_parser2array (const char *inputFileName,
                       const char *outputFileName,
                       const char *vectorName, char *errorDescription);
 
-  extern ASN1_API asn1_retCode
-    asn1_array2tree (const ASN1_ARRAY_TYPE * array,
-                    ASN1_TYPE * definitions, char *errorDescription);
+  extern ASN1_API int
+    asn1_array2tree (const asn1_static_node_t * array,
+                    asn1_node * definitions, char *errorDescription);
 
   extern ASN1_API void
-    asn1_print_structure (FILE * out, ASN1_TYPE structure,
+    asn1_print_structure (FILE * out, asn1_node structure,
                          const char *name, int mode);
 
-  extern ASN1_API asn1_retCode
-    asn1_create_element (ASN1_TYPE definitions,
-                        const char *source_name, ASN1_TYPE * element);
+  extern ASN1_API int
+    asn1_create_element (asn1_node definitions,
+                        const char *source_name, asn1_node * element);
 
-  extern ASN1_API asn1_retCode asn1_delete_structure (ASN1_TYPE * structure);
+  extern ASN1_API int asn1_delete_structure (asn1_node * structure);
 
-  extern ASN1_API asn1_retCode
-    asn1_delete_element (ASN1_TYPE structure, const char *element_name);
+  extern ASN1_API int
+    asn1_delete_element (asn1_node structure, const char *element_name);
 
-  extern ASN1_API asn1_retCode
-    asn1_write_value (ASN1_TYPE node_root, const char *name,
+  extern ASN1_API int
+    asn1_write_value (asn1_node node_root, const char *name,
                      const void *ivalue, int len);
 
-  extern ASN1_API asn1_retCode
-    asn1_read_value (ASN1_TYPE root, const char *name,
+  extern ASN1_API int
+    asn1_read_value (asn1_node root, const char *name,
                     void *ivalue, int *len);
 
-  extern ASN1_API asn1_retCode
-    asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num);
+  extern ASN1_API int
+    asn1_read_node_value (asn1_node node, asn1_data_node_st* data);
 
-  extern ASN1_API asn1_retCode
-    asn1_der_coding (ASN1_TYPE element, const char *name,
+  extern ASN1_API int
+    asn1_number_of_elements (asn1_node element, const char *name, int *num);
+
+  extern ASN1_API int
+    asn1_der_coding (asn1_node element, const char *name,
                     void *ider, int *len, char *ErrorDescription);
 
-  extern ASN1_API asn1_retCode
-    asn1_der_decoding (ASN1_TYPE * element, const void *ider,
+  extern ASN1_API int
+    asn1_der_decoding (asn1_node * element, const void *ider,
                       int len, char *errorDescription);
 
-  extern ASN1_API asn1_retCode
-    asn1_der_decoding_element (ASN1_TYPE * structure,
+  extern ASN1_API int
+    asn1_der_decoding_element (asn1_node * structure,
                               const char *elementName,
                               const void *ider, int len,
                               char *errorDescription);
 
-  extern ASN1_API asn1_retCode
-    asn1_der_decoding_startEnd (ASN1_TYPE element,
+  extern ASN1_API int
+    asn1_der_decoding_startEnd (asn1_node element,
                                const void *ider, int len,
                                const char *name_element,
                                int *start, int *end);
 
-  extern ASN1_API asn1_retCode
-    asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element);
+  extern ASN1_API int
+    asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element);
 
-  extern ASN1_API asn1_retCode
-    asn1_expand_octet_string (ASN1_TYPE definitions,
-                             ASN1_TYPE * element,
+  extern ASN1_API int
+    asn1_expand_octet_string (asn1_node definitions,
+                             asn1_node * element,
                              const char *octetName, const char *objectName);
 
-  extern ASN1_API asn1_retCode
-    asn1_read_tag (ASN1_TYPE root, const char *name,
+  extern ASN1_API int
+    asn1_read_tag (asn1_node root, const char *name,
                   int *tagValue, int *classValue);
 
-  extern ASN1_API const char *asn1_find_structure_from_oid (ASN1_TYPE
+  extern ASN1_API const char *asn1_find_structure_from_oid (asn1_node
                                                            definitions,
                                                            const char
                                                            *oidValue);
 
   extern ASN1_API const char *asn1_check_version (const char *req_version);
 
-  extern ASN1_API const char *asn1_strerror (asn1_retCode error);
+  extern ASN1_API const char *asn1_strerror (int error);
 
-  extern ASN1_API void asn1_perror (asn1_retCode error);
+  extern ASN1_API void asn1_perror (int error);
 
   /* DER utility functions. */
 
@@ -248,7 +266,7 @@ extern "C"
     asn1_octet_der (const unsigned char *str, int str_len,
                    unsigned char *der, int *der_len);
 
-  extern ASN1_API asn1_retCode
+  extern ASN1_API int
     asn1_get_octet_der (const unsigned char *der, int der_len,
                        int *ret_len, unsigned char *str,
                        int str_size, int *str_len);
@@ -256,15 +274,15 @@ extern "C"
   extern ASN1_API void asn1_bit_der (const unsigned char *str, int bit_len,
                                     unsigned char *der, int *der_len);
 
-  extern ASN1_API asn1_retCode
+  extern ASN1_API int
     asn1_get_bit_der (const unsigned char *der, int der_len,
                      int *ret_len, unsigned char *str,
                      int str_size, int *bit_len);
 
-  extern ASN1_API signed long
+  extern ASN1_API long
     asn1_get_length_der (const unsigned char *der, int der_len, int *len);
 
-  extern ASN1_API signed long
+  extern ASN1_API long
     asn1_get_length_ber (const unsigned char *ber, int ber_len, int *len);
 
   extern ASN1_API void
@@ -272,43 +290,27 @@ extern "C"
 
   /* Other utility functions. */
 
-  extern ASN1_API ASN1_TYPE
-    asn1_find_node (ASN1_TYPE pointer, const char *name);
-
-  extern ASN1_API asn1_retCode
-    asn1_copy_node (ASN1_TYPE dst, const char *dst_name,
-                   ASN1_TYPE src, const char *src_name);
+  extern ASN1_API asn1_node
+    asn1_find_node (asn1_node pointer, const char *name);
 
-  /* Deprecated stuff. */
-
-#ifndef ASN1_DISABLE_DEPRECATED
-
-#define LIBTASN1_VERSION ASN1_VERSION
-
-#ifndef MAX_NAME_SIZE
-# define MAX_NAME_SIZE ASN1_MAX_NAME_SIZE
-#endif
+  extern ASN1_API int
+    asn1_copy_node (asn1_node dst, const char *dst_name,
+                   asn1_node src, const char *src_name);
 
-#ifndef MAX_ERROR_DESCRIPTION_SIZE
-# define MAX_ERROR_DESCRIPTION_SIZE ASN1_MAX_ERROR_DESCRIPTION_SIZE
-#endif
+/* Compatibility types */
 
-#ifndef __attribute__
-  /* This feature is available in gcc versions 2.5 and later.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#  define __attribute__(Spec)  /* empty */
-# endif
-#endif
+typedef int asn1_retCode;      /* type returned by libtasn1 functions */
 
-  /* Use asn1_strerror instead. */
-  extern ASN1_API const char *libtasn1_strerror (asn1_retCode error)
-    __attribute__ ((deprecated));
+#define node_asn_struct asn1_node_st
+#define node_asn asn1_node_st
+#define ASN1_TYPE asn1_node
+#define ASN1_TYPE_EMPTY NULL
 
-  /* Use asn1_perror instead. */
-  extern ASN1_API void
-    libtasn1_perror (asn1_retCode error) __attribute__ ((deprecated));
+#define static_struct_asn asn1_static_node_st
+#define ASN1_ARRAY_TYPE asn1_static_node_t
 
-#endif
+#define node_data_struct asn1_data_node_st
+#define ASN1_DATA_NODE asn1_data_node_st
 
 #ifdef __cplusplus
 }
index ce55253..96ecac6 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include <int.h>
+#include <hash-pjw-bare.h>
 #include "parser_aux.h"
 #include "gstr.h"
 #include "structure.h"
@@ -34,7 +35,7 @@ char _asn1_identifierMissing[ASN1_MAX_NAME_SIZE + 1]; /* identifier name not fou
 /***********************************************/
 typedef struct list_struct
 {
-  ASN1_TYPE node;
+  asn1_node node;
   struct list_struct *next;
 } list_type;
 
@@ -43,7 +44,7 @@ typedef struct list_struct
 list_type *firstElement = NULL;
 
 /******************************************************/
-/* Function : _asn1_add_node                          */
+/* Function : _asn1_add_static_node                   */
 /* Description: creates a new NODE_ASN element and    */
 /* puts it in the list pointed by firstElement.       */
 /* Parameters:                                        */
@@ -51,20 +52,20 @@ list_type *firstElement = NULL;
 /*         and CONST_ constants).                     */
 /* Return: pointer to the new element.                */
 /******************************************************/
-ASN1_TYPE
-_asn1_add_node (unsigned int type)
+asn1_node
+_asn1_add_static_node (unsigned int type)
 {
   list_type *listElement;
-  ASN1_TYPE punt;
+  asn1_node punt;
 
-  punt = (ASN1_TYPE) _asn1_calloc (1, sizeof (struct node_asn_struct));
+  punt = calloc (1, sizeof (struct asn1_node_st));
   if (punt == NULL)
     return NULL;
 
-  listElement = (list_type *) _asn1_malloc (sizeof (list_type));
+  listElement = malloc (sizeof (list_type));
   if (listElement == NULL)
     {
-      _asn1_free (punt);
+      free (punt);
       return NULL;
     }
 
@@ -89,12 +90,14 @@ _asn1_add_node (unsigned int type)
  *
  * Returns: the search result, or %NULL if not found.
  **/
-ASN1_TYPE
-asn1_find_node (ASN1_TYPE pointer, const char *name)
+asn1_node
+asn1_find_node (asn1_node pointer, const char *name)
 {
-  ASN1_TYPE p;
+  asn1_node p;
   char *n_end, n[ASN1_MAX_NAME_SIZE + 1];
   const char *n_start;
+  unsigned int nsize;
+  unsigned int nhash;
 
   if (pointer == NULL)
     return NULL;
@@ -105,25 +108,30 @@ asn1_find_node (ASN1_TYPE pointer, const char *name)
   p = pointer;
   n_start = name;
 
-  if (p->name != NULL)
+  if (p->name[0] != 0)
     {                          /* has *pointer got a name ? */
       n_end = strchr (n_start, '.');   /* search the first dot */
       if (n_end)
        {
-         memcpy (n, n_start, n_end - n_start);
-         n[n_end - n_start] = 0;
+         nsize = n_end - n_start;
+         memcpy (n, n_start, nsize);
+         n[nsize] = 0;
          n_start = n_end;
          n_start++;
+
+          nhash = hash_pjw_bare(n, nsize);
        }
       else
        {
-         _asn1_str_cpy (n, sizeof (n), n_start);
+         nsize = _asn1_str_cpy (n, sizeof (n), n_start);
+          nhash = hash_pjw_bare(n, nsize);
+
          n_start = NULL;
        }
 
       while (p)
        {
-         if ((p->name) && (!strcmp (p->name, n)))
+         if ((p->name) && nhash == p->name_hash && (!strcmp (p->name, n)))
            break;
          else
            p = p->right;
@@ -143,14 +151,18 @@ asn1_find_node (ASN1_TYPE pointer, const char *name)
       n_end = strchr (n_start, '.');   /* search the next dot */
       if (n_end)
        {
-         memcpy (n, n_start, n_end - n_start);
-         n[n_end - n_start] = 0;
+         nsize = n_end - n_start;
+         memcpy (n, n_start, nsize);
+         n[nsize] = 0;
          n_start = n_end;
          n_start++;
+
+          nhash = hash_pjw_bare(n, nsize);
        }
       else
        {
-         _asn1_str_cpy (n, sizeof (n), n_start);
+         nsize = _asn1_str_cpy (n, sizeof (n), n_start);
+          nhash = hash_pjw_bare(n, nsize);
          n_start = NULL;
        }
 
@@ -172,7 +184,7 @@ asn1_find_node (ASN1_TYPE pointer, const char *name)
        {                       /* no "?LAST" */
          while (p)
            {
-             if ((p->name) && (!strcmp (p->name, n)))
+             if (p->name_hash == nhash && !strcmp (p->name, n))
                break;
              else
                p = p->right;
@@ -196,15 +208,15 @@ asn1_find_node (ASN1_TYPE pointer, const char *name)
 /*   len: character number of value.                              */
 /* Return: pointer to the NODE_ASN element.                       */
 /******************************************************************/
-ASN1_TYPE
-_asn1_set_value (ASN1_TYPE node, const void *value, unsigned int len)
+asn1_node
+_asn1_set_value (asn1_node node, const void *value, unsigned int len)
 {
   if (node == NULL)
     return node;
   if (node->value)
     {
       if (node->value != node->small_value)
-       _asn1_free (node->value);
+       free (node->value);
       node->value = NULL;
       node->value_len = 0;
     }
@@ -218,7 +230,7 @@ _asn1_set_value (ASN1_TYPE node, const void *value, unsigned int len)
     }
   else
     {
-      node->value = _asn1_malloc (len);
+      node->value = malloc (len);
       if (node->value == NULL)
        return NULL;
     }
@@ -239,8 +251,8 @@ _asn1_set_value (ASN1_TYPE node, const void *value, unsigned int len)
 /*   len: character number of value.                              */
 /* Return: pointer to the NODE_ASN element.                       */
 /******************************************************************/
-ASN1_TYPE
-_asn1_set_value_octet (ASN1_TYPE node, const void *value, unsigned int len)
+asn1_node
+_asn1_set_value_octet (asn1_node node, const void *value, unsigned int len)
 {
   int len2;
   void *temp;
@@ -249,7 +261,7 @@ _asn1_set_value_octet (ASN1_TYPE node, const void *value, unsigned int len)
     return node;
 
   asn1_length_der (len, NULL, &len2);
-  temp = (unsigned char *) _asn1_malloc (len + len2);
+  temp = malloc (len + len2);
   if (temp == NULL)
     return NULL;
 
@@ -260,8 +272,8 @@ _asn1_set_value_octet (ASN1_TYPE node, const void *value, unsigned int len)
 /* the same as _asn1_set_value except that it sets an already malloc'ed
  * value.
  */
-ASN1_TYPE
-_asn1_set_value_m (ASN1_TYPE node, void *value, unsigned int len)
+asn1_node
+_asn1_set_value_m (asn1_node node, void *value, unsigned int len)
 {
   if (node == NULL)
     return node;
@@ -269,7 +281,7 @@ _asn1_set_value_m (ASN1_TYPE node, void *value, unsigned int len)
   if (node->value)
     {
       if (node->value != node->small_value)
-       _asn1_free (node->value);
+       free (node->value);
       node->value = NULL;
       node->value_len = 0;
     }
@@ -293,8 +305,8 @@ _asn1_set_value_m (ASN1_TYPE node, void *value, unsigned int len)
 /*   len: character number of value.                              */
 /* Return: pointer to the NODE_ASN element.                       */
 /******************************************************************/
-ASN1_TYPE
-_asn1_append_value (ASN1_TYPE node, const void *value, unsigned int len)
+asn1_node
+_asn1_append_value (asn1_node node, const void *value, unsigned int len)
 {
   if (node == NULL)
     return node;
@@ -303,7 +315,7 @@ _asn1_append_value (ASN1_TYPE node, const void *value, unsigned int len)
       /* value is allocated */
       int prev_len = node->value_len;
       node->value_len += len;
-      node->value = _asn1_realloc (node->value, node->value_len);
+      node->value = realloc (node->value, node->value_len);
       if (node->value == NULL)
        {
          node->value_len = 0;
@@ -318,7 +330,7 @@ _asn1_append_value (ASN1_TYPE node, const void *value, unsigned int len)
       /* value is in node */
       int prev_len = node->value_len;
       node->value_len += len;
-      node->value = _asn1_malloc (node->value_len);
+      node->value = malloc (node->value_len);
       if (node->value == NULL)
        {
          node->value_len = 0;
@@ -343,30 +355,52 @@ _asn1_append_value (ASN1_TYPE node, const void *value, unsigned int len)
 /*         to set.                                                */
 /* Return: pointer to the NODE_ASN element.                       */
 /******************************************************************/
-ASN1_TYPE
-_asn1_set_name (ASN1_TYPE node, const char *name)
+asn1_node
+_asn1_set_name (asn1_node node, const char *name)
 {
+unsigned int nsize;
+
   if (node == NULL)
     return node;
 
-  if (node->name)
+  if (name == NULL)
     {
-      _asn1_free (node->name);
-      node->name = NULL;
+      node->name[0] = 0;
+      node->name_hash = hash_pjw_bare(node->name, 0);
+      return node;
     }
 
-  if (name == NULL)
-    return node;
+  nsize = _asn1_str_cpy (node->name, sizeof (node->name), name);
+  node->name_hash = hash_pjw_bare(node->name, nsize);
+
+  return node;
+}
 
-  if (strlen (name))
+/******************************************************************/
+/* Function : _asn1_cpy_name                                      */
+/* Description: copies the field NAME in a NODE_ASN element.      */
+/* Parameters:                                                    */
+/*   dst: a dest element pointer.                                 */
+/*   src: a source element pointer.                               */
+/* Return: pointer to the NODE_ASN element.                       */
+/******************************************************************/
+asn1_node
+_asn1_cpy_name (asn1_node dst, asn1_node src)
+{
+  if (dst == NULL)
+    return dst;
+
+  if (src == NULL)
     {
-      node->name = (char *) _asn1_strdup (name);
-      if (node->name == NULL)
-       return NULL;
+      dst->name[0] = 0;
+      dst->name_hash = hash_pjw_bare(dst->name, 0);
+      return dst;
     }
-  else
-    node->name = NULL;
-  return node;
+
+  _asn1_str_cpy (dst->name, sizeof (dst->name), src->name);
+  dst->name_hash = src->name_hash;
+
+  return dst;
 }
 
 /******************************************************************/
@@ -378,8 +412,8 @@ _asn1_set_name (ASN1_TYPE node, const char *name)
 /*          by NODE.                                              */
 /* Return: pointer to *NODE.                                      */
 /******************************************************************/
-ASN1_TYPE
-_asn1_set_right (ASN1_TYPE node, ASN1_TYPE right)
+asn1_node
+_asn1_set_right (asn1_node node, asn1_node right)
 {
   if (node == NULL)
     return node;
@@ -389,21 +423,6 @@ _asn1_set_right (ASN1_TYPE node, ASN1_TYPE right)
   return node;
 }
 
-/******************************************************************/
-/* Function : _asn1_get_right                                     */
-/* Description: returns the element pointed by the RIGHT field of */
-/*              a NODE_ASN element.                               */
-/* Parameters:                                                    */
-/*   node: NODE_ASN element pointer.                              */
-/* Return: field RIGHT of NODE.                                   */
-/******************************************************************/
-ASN1_TYPE
-_asn1_get_right (ASN1_TYPE node)
-{
-  if (node == NULL)
-    return NULL;
-  return node->right;
-}
 
 /******************************************************************/
 /* Function : _asn1_get_last_right                                */
@@ -412,10 +431,10 @@ _asn1_get_right (ASN1_TYPE node)
 /*   node: starting element pointer.                              */
 /* Return: pointer to the last element along the right chain.     */
 /******************************************************************/
-ASN1_TYPE
-_asn1_get_last_right (ASN1_TYPE node)
+asn1_node
+_asn1_get_last_right (asn1_node node)
 {
-  ASN1_TYPE p;
+  asn1_node p;
 
   if (node == NULL)
     return NULL;
@@ -426,78 +445,6 @@ _asn1_get_last_right (ASN1_TYPE node)
 }
 
 /******************************************************************/
-/* Function : _asn1_set_down                                      */
-/* Description: sets the field DOWN in a NODE_ASN element.        */
-/* Parameters:                                                    */
-/*   node: element pointer.                                       */
-/*   down: pointer to a NODE_ASN element that you want be pointed */
-/*          by NODE.                                              */
-/* Return: pointer to *NODE.                                      */
-/******************************************************************/
-ASN1_TYPE
-_asn1_set_down (ASN1_TYPE node, ASN1_TYPE down)
-{
-  if (node == NULL)
-    return node;
-  node->down = down;
-  if (down)
-    down->left = node;
-  return node;
-}
-
-/******************************************************************/
-/* Function : _asn1_get_down                                      */
-/* Description: returns the element pointed by the DOWN field of  */
-/*              a NODE_ASN element.                               */
-/* Parameters:                                                    */
-/*   node: NODE_ASN element pointer.                              */
-/* Return: field DOWN of NODE.                                    */
-/******************************************************************/
-ASN1_TYPE
-_asn1_get_down (ASN1_TYPE node)
-{
-  if (node == NULL)
-    return NULL;
-  return node->down;
-}
-
-/******************************************************************/
-/* Function : _asn1_get_name                                      */
-/* Description: returns the name of a NODE_ASN element.           */
-/* Parameters:                                                    */
-/*   node: NODE_ASN element pointer.                              */
-/* Return: a null terminated string.                              */
-/******************************************************************/
-char *
-_asn1_get_name (ASN1_TYPE node)
-{
-  if (node == NULL)
-    return NULL;
-  return node->name;
-}
-
-/******************************************************************/
-/* Function : _asn1_mod_type                                      */
-/* Description: change the field TYPE of an NODE_ASN element.     */
-/*              The new value is the old one | (bitwise or) the   */
-/*              paramener VALUE.                                  */
-/* Parameters:                                                    */
-/*   node: NODE_ASN element pointer.                              */
-/*   value: the integer value that must be or-ed with the current */
-/*          value of field TYPE.                                  */
-/* Return: NODE pointer.                                          */
-/******************************************************************/
-ASN1_TYPE
-_asn1_mod_type (ASN1_TYPE node, unsigned int value)
-{
-  if (node == NULL)
-    return node;
-  node->type |= value;
-  return node;
-}
-
-
-/******************************************************************/
 /* Function : _asn1_remove_node                                   */
 /* Description: gets free the memory allocated for an NODE_ASN    */
 /*              element (not the elements pointed by it).         */
@@ -505,16 +452,14 @@ _asn1_mod_type (ASN1_TYPE node, unsigned int value)
 /*   node: NODE_ASN element pointer.                              */
 /******************************************************************/
 void
-_asn1_remove_node (ASN1_TYPE node)
+_asn1_remove_node (asn1_node node)
 {
   if (node == NULL)
     return;
 
-  if (node->name != NULL)
-    _asn1_free (node->name);
   if (node->value != NULL && node->value != node->small_value)
-    _asn1_free (node->value);
-  _asn1_free (node);
+    free (node->value);
+  free (node);
 }
 
 /******************************************************************/
@@ -524,10 +469,10 @@ _asn1_remove_node (ASN1_TYPE node)
 /*   node: NODE_ASN element pointer.                              */
 /* Return: Null if not found.                                     */
 /******************************************************************/
-ASN1_TYPE
-_asn1_find_up (ASN1_TYPE node)
+asn1_node
+_asn1_find_up (asn1_node node)
 {
-  ASN1_TYPE p;
+  asn1_node p;
 
   if (node == NULL)
     return NULL;
@@ -554,7 +499,7 @@ _asn1_delete_list (void)
     {
       listElement = firstElement;
       firstElement = firstElement->next;
-      _asn1_free (listElement);
+      free (listElement);
     }
 }
 
@@ -573,7 +518,7 @@ _asn1_delete_list_and_nodes (void)
       listElement = firstElement;
       firstElement = firstElement->next;
       _asn1_remove_node (listElement->node);
-      _asn1_free (listElement);
+      free (listElement);
     }
 }
 
@@ -622,10 +567,10 @@ _asn1_ltostr (long v, char *str)
 /*   ASN1_ELEMENT_NOT_FOUND if NODE is NULL,                       */
 /*   otherwise ASN1_SUCCESS                                             */
 /******************************************************************/
-asn1_retCode
-_asn1_change_integer_value (ASN1_TYPE node)
+int
+_asn1_change_integer_value (asn1_node node)
 {
-  ASN1_TYPE p;
+  asn1_node p;
   unsigned char val[SIZEOF_UNSIGNED_LONG_INT];
   unsigned char val2[SIZEOF_UNSIGNED_LONG_INT + 1];
   int len;
@@ -689,10 +634,10 @@ _asn1_change_integer_value (ASN1_TYPE node)
 /*   ASN1_ELEMENT_NOT_FOUND if NODE is NULL,                       */
 /*   otherwise ASN1_SUCCESS                                             */
 /******************************************************************/
-asn1_retCode
-_asn1_expand_object_id (ASN1_TYPE node)
+int
+_asn1_expand_object_id (asn1_node node)
 {
-  ASN1_TYPE p, p2, p3, p4, p5;
+  asn1_node p, p2, p3, p4, p5;
   char name_root[ASN1_MAX_NAME_SIZE], name2[2 * ASN1_MAX_NAME_SIZE + 1];
   int move, tlen;
 
@@ -718,7 +663,8 @@ _asn1_expand_object_id (ASN1_TYPE node)
                    {
                      _asn1_str_cpy (name2, sizeof (name2), name_root);
                      _asn1_str_cat (name2, sizeof (name2), ".");
-                     _asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
+                     _asn1_str_cat (name2, sizeof (name2),
+                                    (char *) p2->value);
                      p3 = asn1_find_node (node, name2);
                      if (!p3 || (type_field (p3->type) != TYPE_OBJECT_ID) ||
                          !(p3->type & CONST_ASSIGN))
@@ -731,7 +677,7 @@ _asn1_expand_object_id (ASN1_TYPE node)
                        {
                          if (type_field (p4->type) == TYPE_CONSTANT)
                            {
-                             p5 = _asn1_add_node_only (TYPE_CONSTANT);
+                             p5 = _asn1_add_single_node (TYPE_CONSTANT);
                              _asn1_set_name (p5, p4->name);
                              tlen = _asn1_strlen (p4->value);
                              if (tlen > 0)
@@ -871,10 +817,10 @@ _asn1_expand_object_id (ASN1_TYPE node)
 /*   ASN1_ELEMENT_NOT_FOUND if NODE is NULL,                       */
 /*   otherwise ASN1_SUCCESS                                             */
 /******************************************************************/
-asn1_retCode
-_asn1_type_set_config (ASN1_TYPE node)
+int
+_asn1_type_set_config (asn1_node node)
 {
-  ASN1_TYPE p, p2;
+  asn1_node p, p2;
   int move;
 
   if (node == NULL)
@@ -944,10 +890,10 @@ _asn1_type_set_config (ASN1_TYPE node)
 /*   ASN1_IDENTIFIER_NOT_FOUND   if an identifier is not defined, */
 /*   otherwise ASN1_SUCCESS                                       */
 /******************************************************************/
-asn1_retCode
-_asn1_check_identifier (ASN1_TYPE node)
+int
+_asn1_check_identifier (asn1_node node)
 {
-  ASN1_TYPE p, p2;
+  asn1_node p, p2;
   char name2[ASN1_MAX_NAME_SIZE * 2 + 2];
 
   if (node == NULL)
@@ -964,7 +910,10 @@ _asn1_check_identifier (ASN1_TYPE node)
          p2 = asn1_find_node (node, name2);
          if (p2 == NULL)
            {
-             _asn1_strcpy (_asn1_identifierMissing, p->value);
+             if (p->value)
+               _asn1_strcpy (_asn1_identifierMissing, p->value);
+              else
+               _asn1_strcpy (_asn1_identifierMissing, "(null)");
              return ASN1_IDENTIFIER_NOT_FOUND;
            }
        }
@@ -1048,10 +997,10 @@ _asn1_check_identifier (ASN1_TYPE node)
 /*     a DEFINITIONS element,                                     */
 /*   otherwise ASN1_SUCCESS                                       */
 /******************************************************************/
-asn1_retCode
-_asn1_set_default_tag (ASN1_TYPE node)
+int
+_asn1_set_default_tag (asn1_node node)
 {
-  ASN1_TYPE p;
+  asn1_node p;
 
   if ((node == NULL) || (type_field (node->type) != TYPE_DEFINITIONS))
     return ASN1_ELEMENT_NOT_FOUND;
index 374f599..df369c7 100644 (file)
 /***************************************/
 /*  Functions used by ASN.1 parser     */
 /***************************************/
-ASN1_TYPE _asn1_add_node (unsigned int type);
+asn1_node _asn1_add_static_node (unsigned int type);
 
-ASN1_TYPE
-_asn1_set_value (ASN1_TYPE node, const void *value, unsigned int len);
+asn1_node
+_asn1_set_value (asn1_node node, const void *value, unsigned int len);
 
-ASN1_TYPE _asn1_set_value_m (ASN1_TYPE node, void *value, unsigned int len);
+asn1_node _asn1_set_value_m (asn1_node node, void *value, unsigned int len);
 
-ASN1_TYPE
-_asn1_set_value_octet (ASN1_TYPE node, const void *value, unsigned int len);
+asn1_node
+_asn1_set_value_octet (asn1_node node, const void *value, unsigned int len);
 
-ASN1_TYPE
-_asn1_append_value (ASN1_TYPE node, const void *value, unsigned int len);
+asn1_node
+_asn1_append_value (asn1_node node, const void *value, unsigned int len);
 
-ASN1_TYPE _asn1_set_name (ASN1_TYPE node, const char *name);
+asn1_node _asn1_set_name (asn1_node node, const char *name);
 
-ASN1_TYPE _asn1_set_right (ASN1_TYPE node, ASN1_TYPE right);
+asn1_node _asn1_cpy_name (asn1_node dst, asn1_node src);
 
-ASN1_TYPE _asn1_get_right (ASN1_TYPE node);
+asn1_node _asn1_set_right (asn1_node node, asn1_node right);
 
-ASN1_TYPE _asn1_get_last_right (ASN1_TYPE node);
+asn1_node _asn1_get_last_right (asn1_node node);
 
-ASN1_TYPE _asn1_set_down (ASN1_TYPE node, ASN1_TYPE down);
-
-char *_asn1_get_name (ASN1_TYPE node);
-
-ASN1_TYPE _asn1_get_down (ASN1_TYPE node);
-
-ASN1_TYPE _asn1_mod_type (ASN1_TYPE node, unsigned int value);
-
-void _asn1_remove_node (ASN1_TYPE node);
+void _asn1_remove_node (asn1_node node);
 
 void _asn1_delete_list (void);
 
@@ -64,16 +56,103 @@ void _asn1_delete_list_and_nodes (void);
 
 char *_asn1_ltostr (long v, char *str);
 
-ASN1_TYPE _asn1_find_up (ASN1_TYPE node);
-
-asn1_retCode _asn1_change_integer_value (ASN1_TYPE node);
-
-asn1_retCode _asn1_expand_object_id (ASN1_TYPE node);
-
-asn1_retCode _asn1_type_set_config (ASN1_TYPE node);
-
-asn1_retCode _asn1_check_identifier (ASN1_TYPE node);
-
-asn1_retCode _asn1_set_default_tag (ASN1_TYPE node);
+asn1_node _asn1_find_up (asn1_node node);
+
+int _asn1_change_integer_value (asn1_node node);
+
+int _asn1_expand_object_id (asn1_node node);
+
+int _asn1_type_set_config (asn1_node node);
+
+int _asn1_check_identifier (asn1_node node);
+
+int _asn1_set_default_tag (asn1_node node);
+
+/******************************************************************/
+/* Function : _asn1_get_right                                     */
+/* Description: returns the element pointed by the RIGHT field of */
+/*              a NODE_ASN element.                               */
+/* Parameters:                                                    */
+/*   node: NODE_ASN element pointer.                              */
+/* Return: field RIGHT of NODE.                                   */
+/******************************************************************/
+inline static asn1_node
+_asn1_get_right (asn1_node node)
+{
+  if (node == NULL)
+    return NULL;
+  return node->right;
+}
+
+/******************************************************************/
+/* Function : _asn1_set_down                                      */
+/* Description: sets the field DOWN in a NODE_ASN element.        */
+/* Parameters:                                                    */
+/*   node: element pointer.                                       */
+/*   down: pointer to a NODE_ASN element that you want be pointed */
+/*          by NODE.                                              */
+/* Return: pointer to *NODE.                                      */
+/******************************************************************/
+inline static asn1_node
+_asn1_set_down (asn1_node node, asn1_node down)
+{
+  if (node == NULL)
+    return node;
+  node->down = down;
+  if (down)
+    down->left = node;
+  return node;
+}
+
+/******************************************************************/
+/* Function : _asn1_get_down                                      */
+/* Description: returns the element pointed by the DOWN field of  */
+/*              a NODE_ASN element.                               */
+/* Parameters:                                                    */
+/*   node: NODE_ASN element pointer.                              */
+/* Return: field DOWN of NODE.                                    */
+/******************************************************************/
+inline static asn1_node
+_asn1_get_down (asn1_node node)
+{
+  if (node == NULL)
+    return NULL;
+  return node->down;
+}
+
+/******************************************************************/
+/* Function : _asn1_get_name                                      */
+/* Description: returns the name of a NODE_ASN element.           */
+/* Parameters:                                                    */
+/*   node: NODE_ASN element pointer.                              */
+/* Return: a null terminated string.                              */
+/******************************************************************/
+inline static char *
+_asn1_get_name (asn1_node node)
+{
+  if (node == NULL)
+    return NULL;
+  return node->name;
+}
+
+/******************************************************************/
+/* Function : _asn1_mod_type                                      */
+/* Description: change the field TYPE of an NODE_ASN element.     */
+/*              The new value is the old one | (bitwise or) the   */
+/*              paramener VALUE.                                  */
+/* Parameters:                                                    */
+/*   node: NODE_ASN element pointer.                              */
+/*   value: the integer value that must be or-ed with the current */
+/*          value of field TYPE.                                  */
+/* Return: NODE pointer.                                          */
+/******************************************************************/
+inline static asn1_node
+_asn1_mod_type (asn1_node node, unsigned int value)
+{
+  if (node == NULL)
+    return node;
+  node->type |= value;
+  return node;
+}
 
 #endif
index 41cebe4..4613d06 100644 (file)
@@ -37,19 +37,19 @@ extern char _asn1_identifierMissing[];
 
 
 /******************************************************/
-/* Function : _asn1_add_node_only                     */
+/* Function : _asn1_add_single_node                     */
 /* Description: creates a new NODE_ASN element.       */
 /* Parameters:                                        */
 /*   type: type of the new element (see TYPE_         */
 /*         and CONST_ constants).                     */
 /* Return: pointer to the new element.                */
 /******************************************************/
-ASN1_TYPE
-_asn1_add_node_only (unsigned int type)
+asn1_node
+_asn1_add_single_node (unsigned int type)
 {
-  ASN1_TYPE punt;
+  asn1_node punt;
 
-  punt = (ASN1_TYPE) _asn1_calloc (1, sizeof (struct node_asn_struct));
+  punt = calloc (1, sizeof (struct asn1_node_st));
   if (punt == NULL)
     return NULL;
 
@@ -67,8 +67,8 @@ _asn1_add_node_only (unsigned int type)
 /*   node: NODE_ASN element pointer.                              */
 /* Return: NULL if not found.                                     */
 /******************************************************************/
-ASN1_TYPE
-_asn1_find_left (ASN1_TYPE node)
+asn1_node
+_asn1_find_left (asn1_node node)
 {
   if ((node == NULL) || (node->left == NULL) || (node->left->down == node))
     return NULL;
@@ -77,12 +77,12 @@ _asn1_find_left (ASN1_TYPE node)
 }
 
 
-asn1_retCode
-_asn1_create_static_structure (ASN1_TYPE pointer, char *output_file_name,
+int
+_asn1_create_static_structure (asn1_node pointer, char *output_file_name,
                               char *vector_name)
 {
   FILE *file;
-  ASN1_TYPE p;
+  asn1_node p;
   unsigned long t;
 
   file = fopen (output_file_name, "w");
@@ -96,7 +96,7 @@ _asn1_create_static_structure (ASN1_TYPE pointer, char *output_file_name,
 
   fprintf (file, "#include <libtasn1.h>\n\n");
 
-  fprintf (file, "const ASN1_ARRAY_TYPE %s[] = {\n", vector_name);
+  fprintf (file, "const asn1_static_node_t %s[] = {\n", vector_name);
 
   p = pointer;
 
@@ -104,7 +104,7 @@ _asn1_create_static_structure (ASN1_TYPE pointer, char *output_file_name,
     {
       fprintf (file, "  { ");
 
-      if (p->name)
+      if (p->name[0] != 0)
        fprintf (file, "\"%s\", ", p->name);
       else
        fprintf (file, "NULL, ");
@@ -168,22 +168,22 @@ _asn1_create_static_structure (ASN1_TYPE pointer, char *output_file_name,
  * @array is a vector created by asn1_parser2array().
  *
  * Returns: %ASN1_SUCCESS if structure was created correctly,
- *   %ASN1_ELEMENT_NOT_EMPTY if *@definitions not ASN1_TYPE_EMPTY,
+ *   %ASN1_ELEMENT_NOT_EMPTY if *@definitions not NULL,
  *   %ASN1_IDENTIFIER_NOT_FOUND if in the file there is an identifier
  *   that is not defined (see @errorDescription for more information),
  *   %ASN1_ARRAY_ERROR if the array pointed by @array is wrong.
  **/
-asn1_retCode
-asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
+int
+asn1_array2tree (const asn1_static_node_t * array, asn1_node * definitions,
                 char *errorDescription)
 {
-  ASN1_TYPE p, p_last = NULL;
+  asn1_node p, p_last = NULL;
   unsigned long k;
   int move;
-  asn1_retCode result;
+  int result;
 
 
-  if (*definitions != ASN1_TYPE_EMPTY)
+  if (*definitions != NULL)
     return ASN1_ELEMENT_NOT_EMPTY;
 
   move = UP;
@@ -191,7 +191,7 @@ asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
   k = 0;
   while (array[k].value || array[k].type || array[k].name)
     {
-      p = _asn1_add_node (array[k].type & (~CONST_DOWN));
+      p = _asn1_add_static_node (array[k].type & (~CONST_DOWN));
       if (array[k].name)
        _asn1_set_name (p, array[k].name);
       if (array[k].value)
@@ -263,7 +263,7 @@ asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
   if (result != ASN1_SUCCESS)
     {
       _asn1_delete_list_and_nodes ();
-      *definitions = ASN1_TYPE_EMPTY;
+      *definitions = NULL;
     }
   else
     _asn1_delete_list ();
@@ -276,17 +276,17 @@ asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
  * @structure: pointer to the structure that you want to delete.
  *
  * Deletes the structure *@structure.  At the end, *@structure is set
- * to ASN1_TYPE_EMPTY.
+ * to NULL.
  *
  * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
- *   *@structure was ASN1_TYPE_EMPTY.
+ *   *@structure was NULL.
  **/
-asn1_retCode
-asn1_delete_structure (ASN1_TYPE * structure)
+int
+asn1_delete_structure (asn1_node * structure)
 {
-  ASN1_TYPE p, p2, p3;
+  asn1_node p, p2, p3;
 
-  if (*structure == ASN1_TYPE_EMPTY)
+  if (*structure == NULL)
     return ASN1_ELEMENT_NOT_FOUND;
 
   p = *structure;
@@ -328,7 +328,7 @@ asn1_delete_structure (ASN1_TYPE * structure)
        }
     }
 
-  *structure = ASN1_TYPE_EMPTY;
+  *structure = NULL;
   return ASN1_SUCCESS;
 }
 
@@ -345,14 +345,14 @@ asn1_delete_structure (ASN1_TYPE * structure)
  * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
  *   the @element_name was not found.
  **/
-asn1_retCode
-asn1_delete_element (ASN1_TYPE structure, const char *element_name)
+int
+asn1_delete_element (asn1_node structure, const char *element_name)
 {
-  ASN1_TYPE p2, p3, source_node;
+  asn1_node p2, p3, source_node;
 
   source_node = asn1_find_node (structure, element_name);
 
-  if (source_node == ASN1_TYPE_EMPTY)
+  if (source_node == NULL)
     return ASN1_ELEMENT_NOT_FOUND;
 
   p2 = source_node->right;
@@ -371,16 +371,16 @@ asn1_delete_element (ASN1_TYPE structure, const char *element_name)
   return asn1_delete_structure (&source_node);
 }
 
-ASN1_TYPE
-_asn1_copy_structure3 (ASN1_TYPE source_node)
+asn1_node
+_asn1_copy_structure3 (asn1_node source_node)
 {
-  ASN1_TYPE dest_node, p_s, p_d, p_d_prev;
+  asn1_node dest_node, p_s, p_d, p_d_prev;
   int move;
 
   if (source_node == NULL)
     return NULL;
 
-  dest_node = _asn1_add_node_only (source_node->type);
+  dest_node = _asn1_add_single_node (source_node->type);
 
   p_s = source_node;
   p_d = dest_node;
@@ -391,48 +391,37 @@ _asn1_copy_structure3 (ASN1_TYPE source_node)
     {
       if (move != UP)
        {
-         if (p_s->name)
-           _asn1_set_name (p_d, p_s->name);
+         if (p_s->name[0] != 0)
+           _asn1_cpy_name (p_d, p_s);
          if (p_s->value)
            _asn1_set_value (p_d, p_s->value, p_s->value_len);
-         move = DOWN;
-       }
-      else
-       move = RIGHT;
-
-      if (move == DOWN)
-       {
          if (p_s->down)
            {
              p_s = p_s->down;
              p_d_prev = p_d;
-             p_d = _asn1_add_node_only (p_s->type);
+             p_d = _asn1_add_single_node (p_s->type);
              _asn1_set_down (p_d_prev, p_d);
+             continue;
            }
-         else
-           move = RIGHT;
        }
 
       if (p_s == source_node)
-       break;
+        break;
 
-      if (move == RIGHT)
-       {
-         if (p_s->right)
-           {
-             p_s = p_s->right;
-             p_d_prev = p_d;
-             p_d = _asn1_add_node_only (p_s->type);
-             _asn1_set_right (p_d_prev, p_d);
-           }
-         else
+      if (p_s->right)
+        {
+           move = RIGHT;
+           p_s = p_s->right;
+           p_d_prev = p_d;
+           p_d = _asn1_add_single_node (p_s->type);
+           _asn1_set_right (p_d_prev, p_d);
+        }
+      else
+        {
            move = UP;
-       }
-      if (move == UP)
-       {
-         p_s = _asn1_find_up (p_s);
-         p_d = _asn1_find_up (p_d);
-       }
+           p_s = _asn1_find_up (p_s);
+           p_d = _asn1_find_up (p_d);
+        }
     }
   while (p_s != source_node);
 
@@ -440,10 +429,10 @@ _asn1_copy_structure3 (ASN1_TYPE source_node)
 }
 
 
-static ASN1_TYPE
-_asn1_copy_structure2 (ASN1_TYPE root, const char *source_name)
+static asn1_node
+_asn1_copy_structure2 (asn1_node root, const char *source_name)
 {
-  ASN1_TYPE source_node;
+  asn1_node source_node;
 
   source_node = asn1_find_node (root, source_name);
 
@@ -452,10 +441,10 @@ _asn1_copy_structure2 (ASN1_TYPE root, const char *source_name)
 }
 
 
-static asn1_retCode
-_asn1_type_choice_config (ASN1_TYPE node)
+static int
+_asn1_type_choice_config (asn1_node node)
 {
-  ASN1_TYPE p, p2, p3, p4;
+  asn1_node p, p2, p3, p4;
   int move, tlen;
 
   if (node == NULL)
@@ -481,7 +470,7 @@ _asn1_type_choice_config (ASN1_TYPE node)
                        {
                          if (type_field (p3->type) == TYPE_TAG)
                            {
-                             p4 = _asn1_add_node_only (p3->type);
+                             p4 = _asn1_add_single_node (p3->type);
                              tlen = _asn1_strlen (p3->value);
                              if (tlen > 0)
                                _asn1_set_value (p4, p3->value, tlen + 1);
@@ -537,10 +526,10 @@ _asn1_type_choice_config (ASN1_TYPE node)
 }
 
 
-static asn1_retCode
-_asn1_expand_identifier (ASN1_TYPE * node, ASN1_TYPE root)
+static int
+_asn1_expand_identifier (asn1_node * node, asn1_node root)
 {
-  ASN1_TYPE p, p2, p3;
+  asn1_node p, p2, p3;
   char name2[ASN1_MAX_NAME_SIZE + 2];
   int move;
 
@@ -556,15 +545,13 @@ _asn1_expand_identifier (ASN1_TYPE * node, ASN1_TYPE root)
        {
          if (type_field (p->type) == TYPE_IDENTIFIER)
            {
-             _asn1_str_cpy (name2, sizeof (name2), root->name);
-             _asn1_str_cat (name2, sizeof (name2), ".");
-             _asn1_str_cat (name2, sizeof (name2), (char *) p->value);
+             snprintf(name2, sizeof (name2), "%s.%s", root->name, p->value);
              p2 = _asn1_copy_structure2 (root, name2);
              if (p2 == NULL)
                {
                  return ASN1_IDENTIFIER_NOT_FOUND;
                }
-             _asn1_set_name (p2, p->name);
+             _asn1_cpy_name (p2, p);
              p2->right = p->right;
              p2->left = p->left;
              if (p->right)
@@ -661,11 +648,11 @@ _asn1_expand_identifier (ASN1_TYPE * node, ASN1_TYPE root)
  * Returns: %ASN1_SUCCESS if creation OK, %ASN1_ELEMENT_NOT_FOUND if
  *   @source_name is not known.
  **/
-asn1_retCode
-asn1_create_element (ASN1_TYPE definitions, const char *source_name,
-                    ASN1_TYPE * element)
+int
+asn1_create_element (asn1_node definitions, const char *source_name,
+                    asn1_node * element)
 {
-  ASN1_TYPE dest_node;
+  asn1_node dest_node;
   int res;
 
   dest_node = _asn1_copy_structure2 (definitions, source_name);
@@ -697,10 +684,10 @@ asn1_create_element (ASN1_TYPE definitions, const char *source_name,
  * from the @name element inside the structure @structure.
  **/
 void
-asn1_print_structure (FILE * out, ASN1_TYPE structure, const char *name,
+asn1_print_structure (FILE * out, asn1_node structure, const char *name,
                      int mode)
 {
-  ASN1_TYPE p, root;
+  asn1_node p, root;
   int k, indent = 0, len, len2, len3;
 
   if (out == NULL)
@@ -719,7 +706,7 @@ asn1_print_structure (FILE * out, ASN1_TYPE structure, const char *name,
          for (k = 0; k < indent; k++)
            fprintf (out, " ");
          fprintf (out, "name:");
-         if (p->name)
+         if (p->name[0] != 0)
            fprintf (out, "%s  ", p->name);
          else
            fprintf (out, "NULL  ");
@@ -736,7 +723,7 @@ asn1_print_structure (FILE * out, ASN1_TYPE structure, const char *name,
              for (k = 0; k < indent; k++)
                fprintf (out, " ");
              fprintf (out, "name:");
-             if (p->name)
+             if (p->name[0] != 0)
                fprintf (out, "%s  ", p->name);
              else
                fprintf (out, "NULL  ");
@@ -1060,10 +1047,10 @@ asn1_print_structure (FILE * out, ASN1_TYPE structure, const char *name,
  * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
  *   @name is not known, %ASN1_GENERIC_ERROR if pointer @num is %NULL.
  **/
-asn1_retCode
-asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num)
+int
+asn1_number_of_elements (asn1_node element, const char *name, int *num)
 {
-  ASN1_TYPE node, p;
+  asn1_node node, p;
 
   if (num == NULL)
     return ASN1_GENERIC_ERROR;
@@ -1078,7 +1065,7 @@ asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num)
 
   while (p)
     {
-      if ((p->name) && (p->name[0] == '?'))
+      if (p->name[0] == '?')
        (*num)++;
       p = p->right;
     }
@@ -1099,15 +1086,15 @@ asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num)
  *   the OID.
  **/
 const char *
-asn1_find_structure_from_oid (ASN1_TYPE definitions, const char *oidValue)
+asn1_find_structure_from_oid (asn1_node definitions, const char *oidValue)
 {
   char definitionsName[ASN1_MAX_NAME_SIZE], name[2 * ASN1_MAX_NAME_SIZE + 1];
   char value[ASN1_MAX_NAME_SIZE];
-  ASN1_TYPE p;
+  asn1_node p;
   int len;
-  asn1_retCode result;
+  int result;
 
-  if ((definitions == ASN1_TYPE_EMPTY) || (oidValue == NULL))
+  if ((definitions == NULL) || (oidValue == NULL))
     return NULL;               /* ASN1_ELEMENT_NOT_FOUND; */
 
 
@@ -1144,24 +1131,24 @@ asn1_find_structure_from_oid (ASN1_TYPE definitions, const char *oidValue)
 
 /**
  * asn1_copy_node:
- * @dst: Destination ASN1_TYPE node.
+ * @dst: Destination asn1_node node.
  * @dst_name: Field name in destination node.
- * @src: Source ASN1_TYPE node.
+ * @src: Source asn1_node node.
  * @src_name: Field name in source node.
  *
- * Create a deep copy of a ASN1_TYPE variable.
+ * Create a deep copy of a asn1_node variable.
  *
  * Returns: Return %ASN1_SUCCESS on success.
  **/
-asn1_retCode
-asn1_copy_node (ASN1_TYPE dst, const char *dst_name,
-               ASN1_TYPE src, const char *src_name)
+int
+asn1_copy_node (asn1_node dst, const char *dst_name,
+               asn1_node src, const char *src_name)
 {
 /* FIXME: rewrite using copy_structure().
  * It seems quite hard to do.
  */
   int result;
-  ASN1_TYPE dst_node;
+  asn1_node dst_node;
   void *data = NULL;
   int size = 0;
 
@@ -1169,27 +1156,27 @@ asn1_copy_node (ASN1_TYPE dst, const char *dst_name,
   if (result != ASN1_MEM_ERROR)
     return result;
 
-  data = _asn1_malloc (size);
+  data = malloc (size);
   if (data == NULL)
     return ASN1_MEM_ERROR;
 
   result = asn1_der_coding (src, src_name, data, &size, NULL);
   if (result != ASN1_SUCCESS)
     {
-      _asn1_free (data);
+      free (data);
       return result;
     }
 
   dst_node = asn1_find_node (dst, dst_name);
   if (dst_node == NULL)
     {
-      _asn1_free (data);
+      free (data);
       return ASN1_ELEMENT_NOT_FOUND;
     }
 
   result = asn1_der_decoding (&dst_node, data, size, NULL);
 
-  _asn1_free (data);
+  free (data);
 
   return result;
 }
index 0a84e26..986e13a 100644 (file)
 #ifndef _STRUCTURE_H
 #define _STRUCTURE_H
 
-asn1_retCode _asn1_create_static_structure (ASN1_TYPE pointer,
+int _asn1_create_static_structure (asn1_node pointer,
                                            char *output_file_name,
                                            char *vector_name);
 
-ASN1_TYPE _asn1_copy_structure3 (ASN1_TYPE source_node);
+asn1_node _asn1_copy_structure3 (asn1_node source_node);
 
-ASN1_TYPE _asn1_add_node_only (unsigned int type);
+asn1_node _asn1_add_single_node (unsigned int type);
 
-ASN1_TYPE _asn1_find_left (ASN1_TYPE node);
+asn1_node _asn1_find_left (asn1_node node);
 
 #endif
index fb17223..83d70c9 100644 (file)
@@ -20,7 +20,7 @@
  */
 
 #ifdef HAVE_CONFIG_H
-# include <config.h>
+#include <config.h>
 #endif
 
 #include <string.h>            /* for strverscmp */
index 95ed4d9..1c540e7 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -226,6 +246,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libcrypto_la_SOURCES)
 DIST_SOURCES = $(libcrypto_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -546,6 +571,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -831,7 +857,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -905,6 +930,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1040,8 +1066,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1060,7 +1086,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1291,6 +1316,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 1333cae..5bae0f1 100644 (file)
@@ -90,7 +90,7 @@ static void _gcm_encrypt(void *_ctx, nettle_crypt_func f,
             unsigned length, uint8_t *dst,
             const uint8_t *src)
 {
-  return gcm_aes_encrypt(_ctx, length, dst, src);
+  gcm_aes_encrypt(_ctx, length, dst, src);
 }
 
 static void _gcm_decrypt(void *_ctx, nettle_crypt_func f,  
@@ -98,7 +98,7 @@ static void _gcm_decrypt(void *_ctx, nettle_crypt_func f,
             unsigned length, uint8_t *dst,
             const uint8_t *src)
 {
-  return gcm_aes_decrypt(_ctx, length, dst, src);
+  gcm_aes_decrypt(_ctx, length, dst, src);
 }
 
 static int wrap_nettle_cipher_exists(gnutls_cipher_algorithm_t algo)
index d7e9a05..0a26356 100644 (file)
@@ -140,6 +140,7 @@ static int _wrap_nettle_pk_derive(gnutls_pk_algorithm_t algo, gnutls_datum_t * o
 
         _ecc_params_to_pubkey(pub, &ecc_pub);
         _ecc_params_to_privkey(priv, &ecc_priv);
+        sz = ECC_BUF_SIZE;
         
         if (ecc_projective_check_point(&ecc_pub.pubkey, pub->params[ECC_B], pub->params[ECC_PRIME]) != 0)
           {
@@ -147,7 +148,6 @@ static int _wrap_nettle_pk_derive(gnutls_pk_algorithm_t algo, gnutls_datum_t * o
             goto ecc_cleanup;
           }
 
-        sz = ECC_BUF_SIZE;
         out->data = gnutls_malloc(sz);
         if (out->data == NULL)
           {
@@ -208,7 +208,7 @@ _wrap_nettle_pk_encrypt (gnutls_pk_algorithm_t algo,
         mpz_powm (p, p, TOMPZ (pk_params->params[1]) /*e */ ,
                   TOMPZ (pk_params->params[0] /*m */ ));
 
-        ret = _gnutls_mpi_dprint_size (p, ciphertext, plaintext->size);
+        ret = _gnutls_mpi_dprint_size (p, ciphertext, nettle_mpz_sizeinbase_256_u(TOMPZ (pk_params->params[0])));
         _gnutls_mpi_release (&p);
 
         if (ret < 0)
@@ -312,6 +312,12 @@ _wrap_nettle_pk_decrypt (gnutls_pk_algorithm_t algo,
       {
         struct rsa_private_key priv;
         bigint_t c, ri, nc;
+        
+        if (ciphertext->size != nettle_mpz_sizeinbase_256_u(TOMPZ (pk_params->params[0])))
+          {
+            gnutls_assert ();
+            return GNUTLS_E_DECRYPTION_FAILED;
+          }
 
         if (_gnutls_mpi_scan_nz (&c, ciphertext->data, ciphertext->size) != 0)
           {
@@ -487,7 +493,7 @@ _wrap_nettle_pk_sign (gnutls_pk_algorithm_t algo,
 
         rsa_unblind (nc, ri, pk_params->params[0] /*m */ );
 
-        ret = _gnutls_mpi_dprint (nc, signature);
+        ret = _gnutls_mpi_dprint_size (nc, signature, nettle_mpz_sizeinbase_256_u(TOMPZ (pk_params->params[0])));
 
 rsa_fail:
         _gnutls_mpi_release (&nc);
@@ -627,12 +633,18 @@ _wrap_nettle_pk_verify (gnutls_pk_algorithm_t algo,
       {
         bigint_t hash;
 
+        if (signature->size != nettle_mpz_sizeinbase_256_u(TOMPZ (pk_params->params[0])))
+          {
+            gnutls_assert ();
+            return GNUTLS_E_PK_SIG_VERIFY_FAILED;
+          }
+
         if (_gnutls_mpi_scan_nz (&hash, vdata->data, vdata->size) != 0)
           {
             gnutls_assert ();
             return GNUTLS_E_MPI_SCAN_FAILED;
           }
-
+        
         ret = _gnutls_mpi_scan_nz (&tmp[0], signature->data, signature->size);
         if (ret < 0)
           {
index da87873..1b144dd 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -223,6 +243,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libminiopencdk_la_SOURCES)
 DIST_SOURCES = $(libminiopencdk_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -543,6 +568,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -828,7 +854,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -902,6 +927,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1037,8 +1063,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1057,7 +1083,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1288,6 +1313,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index fbfab15..1d2a645 100644 (file)
@@ -526,10 +526,9 @@ cdk_armor_encode_buffer (const byte * inbuf, size_t inlen,
       return 0;
     }
 
-  pos = 0;
   memset (outbuf, 0, outlen);
-  memcpy (outbuf + pos, "-----", 5);
-  pos += 5;
+  memcpy (outbuf, "-----", 5);
+  pos = 5;
   memcpy (outbuf + pos, head, strlen (head));
   pos += strlen (head);
   memcpy (outbuf + pos, "-----", 5);
index 8a93e9b..51c2748 100644 (file)
@@ -415,11 +415,11 @@ cdk_kbnode_read_from_mem (cdk_kbnode_t * ret_node,
 
   *ret_node = NULL;
   if (!buflen)
-    return CDK_Too_Short;
+    return gnutls_assert_val(CDK_Too_Short);
 
   rc = cdk_stream_tmp_from_mem (buf, buflen, &inp);
   if (rc)
-    return rc;
+    return gnutls_assert_val(rc);
   
   if (armor)
     cdk_stream_set_armor_flag (inp, 0);
index b74feda..646904d 100644 (file)
@@ -1198,7 +1198,7 @@ _cdk_keydb_get_sk_byusage (cdk_keydb_hd_t hd, const char *name,
       return CDK_Unusable_Key;
     }
   node = find_selfsig_node (knode, pk_node->pkt->pkt.secret_key->pk);
-  if (sk->pk->uid && node)
+  if (sk && sk->pk && sk->pk->uid && node)
     _cdk_copy_signature (&sk->pk->uid->selfsig, node->pkt->pkt.signature);
 
   /* We only release the outer packet. */
@@ -1275,7 +1275,7 @@ _cdk_keydb_get_pk_byusage (cdk_keydb_hd_t hd, const char *name,
       return CDK_Unusable_Key;
     }
   node = find_selfsig_node (knode, pk_node->pkt->pkt.public_key);
-  if (pk->uid && node)
+  if (pk && pk->uid && node)
     _cdk_copy_signature (&pk->uid->selfsig, node->pkt->pkt.signature);
   cdk_kbnode_release (knode);
 
index eb16188..7b0ec0d 100644 (file)
@@ -215,7 +215,6 @@ literal_encode (void *data, FILE * in, FILE * out)
   pt->buf = si;
   pkt->old_ctb = 1;
   pkt->pkttype = CDK_PKT_LITERAL;
-  pkt->pkt.literal = pt;
   rc = _cdk_pkt_write_fp (out, pkt);
 
   cdk_pkt_release (pkt);
index e786fe6..3d3472e 100644 (file)
@@ -68,13 +68,13 @@ cdk_error_t map_gnutls_error (int err);
 #define IS_UID_SIG(s) (((s)->sig_class & ~3) == 0x10)
 #define IS_UID_REV(s) ((s)->sig_class == 0x30)
 
-#define DEBUG_PKT (_cdk_get_log_level () == (CDK_LOG_DEBUG+1))
-
 /* Helper to find out if a key has the requested capability. */
 #define KEY_CAN_ENCRYPT(a) ((_cdk_pk_algo_usage ((a))) & CDK_KEY_USG_ENCR)
 #define KEY_CAN_SIGN(a)    ((_cdk_pk_algo_usage ((a))) & CDK_KEY_USG_SIGN)
 #define KEY_CAN_AUTH(a)    ((_cdk_pk_algo_usage ((a))) & CDK_KEY_USG_AUTH)
 
+#define DEBUG_PKT 0
+
 /*-- main.c --*/
 char *_cdk_passphrase_get (cdk_ctx_t hd, const char *prompt);
 
index ec6ad08..f270e6f 100644 (file)
@@ -276,6 +276,8 @@ _pgp_cipher_to_gnutls (int cipher)
 {
   switch (cipher)
     {
+    case 0:
+      return GNUTLS_CIPHER_NULL;
     case 1:
       return GNUTLS_CIPHER_IDEA_PGP_CFB;
     case 2:
@@ -297,7 +299,8 @@ _pgp_cipher_to_gnutls (int cipher)
 
     default:
       gnutls_assert ();
-      return GNUTLS_CIPHER_NULL;
+      _gnutls_debug_log("Unknown openpgp cipher %u\n", cipher);
+      return GNUTLS_CIPHER_UNKNOWN;
     }
 }
 
@@ -306,7 +309,8 @@ _gnutls_cipher_to_pgp (int cipher)
 {
   switch (cipher)
     {
-
+    case GNUTLS_CIPHER_NULL:
+      return 0;
     case GNUTLS_CIPHER_IDEA_PGP_CFB:
       return 1;
     case GNUTLS_CIPHER_3DES_PGP_CFB:
index 9453476..7a7179a 100644 (file)
@@ -711,8 +711,9 @@ _cdk_subpkt_get_array (cdk_subpkt_t s, int count, size_t * r_nbytes)
         buf[n++] = nbytes;
       else if (nbytes < 8384)
         {
+          nbytes -= 192;
           buf[n++] = nbytes / 256 + 192;
-          buf[n++] = nbytes % 256;
+          buf[n++] = nbytes & 0xff;
         }
       else
         {
@@ -722,6 +723,7 @@ _cdk_subpkt_get_array (cdk_subpkt_t s, int count, size_t * r_nbytes)
           buf[n++] = nbytes >> 8;
           buf[n++] = nbytes;
         }
+
       buf[n++] = list->type;
       memcpy (buf + n, list->d, list->size);
       n += list->size;
index 3e92909..6abb088 100644 (file)
@@ -130,7 +130,7 @@ read_mpi (cdk_stream_t inp, bigint_t * ret_m, int secure)
   if (nbits > MAX_MPI_BITS || nbits == 0)
     {
       _gnutls_write_log ("read_mpi: too large %d bits\n", (int) nbits);
-      return CDK_MPI_Error;     /* Sanity check */
+      return gnutls_assert_val(CDK_MPI_Error);     /* Sanity check */
     }
 
   rc = stream_read (inp, buf + 2, nread, &nread);
@@ -138,7 +138,7 @@ read_mpi (cdk_stream_t inp, bigint_t * ret_m, int secure)
     {
       _gnutls_write_log ("read_mpi: too short %d < %d\n", (int) nread,
                          (int) ((nbits + 7) / 8));
-      return CDK_MPI_Error;
+      return gnutls_assert_val(CDK_MPI_Error);
     }
 
   buf[0] = nbits >> 8;
@@ -146,7 +146,7 @@ read_mpi (cdk_stream_t inp, bigint_t * ret_m, int secure)
   nread += 2;
   err = _gnutls_mpi_scan_pgp (&m, buf, nread);
   if (err < 0)
-    return map_gnutls_error (err);
+    return gnutls_assert_val(map_gnutls_error (err));
 
   *ret_m = m;
   return rc;
@@ -217,7 +217,7 @@ read_pubkey_enc (cdk_stream_t inp, size_t pktlen, cdk_pkt_pubkey_enc_t pke)
     {
       cdk_error_t rc = read_mpi (inp, &pke->mpi[i], 0);
       if (rc)
-        return rc;
+        return gnutls_assert_val(rc);
     }
 
   return 0;
@@ -309,7 +309,7 @@ read_public_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_pubkey_t pk)
     {
       cdk_error_t rc = read_mpi (inp, &pk->mpi[i], 0);
       if (rc)
-        return rc;
+        return gnutls_assert_val(rc);
     }
 
   /* This value is just for the first run and will be
@@ -351,6 +351,9 @@ read_secret_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk)
     {
       sk->protect.sha1chk = (sk->s2k_usage == 254);
       sk->protect.algo = _pgp_cipher_to_gnutls (cdk_stream_getc (inp));
+      if (sk->protect.algo == GNUTLS_CIPHER_UNKNOWN)
+        return gnutls_assert_val(CDK_Inv_Algo);
+
       sk->protect.s2k = cdk_calloc (1, sizeof *sk->protect.s2k);
       if (!sk->protect.s2k)
         return CDK_Out_Of_Core;
@@ -374,7 +377,9 @@ read_secret_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk)
     }
   else
     sk->protect.algo = _pgp_cipher_to_gnutls (sk->s2k_usage);
-  if (sk->protect.algo == GNUTLS_CIPHER_NULL)
+  if (sk->protect.algo == GNUTLS_CIPHER_UNKNOWN)
+    return gnutls_assert_val(CDK_Inv_Algo);
+  else if (sk->protect.algo == GNUTLS_CIPHER_NULL)
     {
       sk->csum = 0;
       nskey = cdk_pk_get_nskey (sk->pk->pubkey_algo);
@@ -387,7 +392,7 @@ read_secret_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk)
         {
           rc = read_mpi (inp, &sk->mpi[i], 1);
           if (rc)
-            return rc;
+            return gnutls_assert_val(rc);
         }
       sk->csum = read_16 (inp);
       sk->is_protected = 0;
@@ -405,7 +410,7 @@ read_secret_key (cdk_stream_t inp, size_t pktlen, cdk_pkt_seckey_t sk)
         {
           rc = read_mpi (inp, &sk->mpi[i], 1);
           if (rc)
-            return rc;
+            return gnutls_assert_val(rc);
         }
       sk->csum = read_16 (inp);
       sk->is_protected = 1;
@@ -726,20 +731,21 @@ static cdk_error_t
 read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig)
 {
   size_t nbytes;
-  size_t i, size, nsig;
+  size_t i, nsig;
+  ssize_t size;
   cdk_error_t rc;
 
   if (!inp || !sig)
-    return CDK_Inv_Value;
+    return gnutls_assert_val(CDK_Inv_Value);
 
   if (DEBUG_PKT)
     _gnutls_write_log ("read_signature: %d octets\n", (int) pktlen);
 
   if (pktlen < 16)
-    return CDK_Inv_Packet;
+    return gnutls_assert_val(CDK_Inv_Packet);
   sig->version = cdk_stream_getc (inp);
   if (sig->version < 2 || sig->version > 4)
-    return CDK_Inv_Packet_Ver;
+    return gnutls_assert_val(CDK_Inv_Packet_Ver);
 
   sig->flags.exportable = 1;
   sig->flags.revocable = 1;
@@ -747,7 +753,7 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig)
   if (sig->version < 4)
     {
       if (cdk_stream_getc (inp) != 5)
-        return CDK_Inv_Packet;
+        return gnutls_assert_val(CDK_Inv_Packet);
       sig->sig_class = cdk_stream_getc (inp);
       sig->timestamp = read_32 (inp);
       sig->keyid[0] = read_32 (inp);
@@ -758,12 +764,12 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig)
       sig->digest_start[1] = cdk_stream_getc (inp);
       nsig = cdk_pk_get_nsig (sig->pubkey_algo);
       if (!nsig)
-        return CDK_Inv_Algo;
+        return gnutls_assert_val(CDK_Inv_Algo);
       for (i = 0; i < nsig; i++)
         {
           rc = read_mpi (inp, &sig->mpi[i], 0);
           if (rc)
-            return rc;
+            return gnutls_assert_val(rc);
         }
     }
   else
@@ -778,7 +784,7 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig)
         {
           rc = read_subpkt (inp, &sig->hashed, &nbytes);
           if (rc)
-            return rc;
+            return gnutls_assert_val(rc);
           size -= nbytes;
         }
       sig->unhashed_size = read_16 (inp);
@@ -788,24 +794,24 @@ read_signature (cdk_stream_t inp, size_t pktlen, cdk_pkt_signature_t sig)
         {
           rc = read_subpkt (inp, &sig->unhashed, &nbytes);
           if (rc)
-            return rc;
+            return gnutls_assert_val(rc);
           size -= nbytes;
         }
 
       rc = parse_sig_subpackets (sig);
       if (rc)
-        return rc;
+        return gnutls_assert_val(rc);
 
       sig->digest_start[0] = cdk_stream_getc (inp);
       sig->digest_start[1] = cdk_stream_getc (inp);
       nsig = cdk_pk_get_nsig (sig->pubkey_algo);
       if (!nsig)
-        return CDK_Inv_Algo;
+        return gnutls_assert_val(CDK_Inv_Algo);
       for (i = 0; i < nsig; i++)
         {
           rc = read_mpi (inp, &sig->mpi[i], 0);
           if (rc)
-            return rc;
+            return gnutls_assert_val(rc);
         }
     }
 
@@ -955,7 +961,7 @@ cdk_pkt_read (cdk_stream_t inp, cdk_packet_t pkt)
   if (cdk_stream_eof (inp) || ctb == EOF)
     return CDK_EOF;
   else if (!ctb)
-    return CDK_Inv_Packet;
+    return gnutls_assert_val(CDK_Inv_Packet);
 
   pktsize++;
   if (!(ctb & 0x80))
@@ -963,7 +969,7 @@ cdk_pkt_read (cdk_stream_t inp, cdk_packet_t pkt)
       _cdk_log_info ("cdk_pkt_read: no openpgp data found. "
                      "(ctb=%02X; fpos=%02X)\n", (int) ctb,
                      (int) cdk_stream_tell (inp));
-      return CDK_Inv_Packet;
+      return gnutls_assert_val(CDK_Inv_Packet);
     }
 
   if (ctb & 0x40)               /* RFC2440 packet format. */
@@ -981,7 +987,7 @@ cdk_pkt_read (cdk_stream_t inp, cdk_packet_t pkt)
   if (pkttype > 63)
     {
       _cdk_log_info ("cdk_pkt_read: unknown type %d\n", pkttype);
-      return CDK_Inv_Packet;
+      return gnutls_assert_val(CDK_Inv_Packet);
     }
 
   if (is_newctb)
@@ -1002,100 +1008,124 @@ cdk_pkt_read (cdk_stream_t inp, cdk_packet_t pkt)
       pkt->pkt.user_id = cdk_calloc (1, sizeof *pkt->pkt.user_id
                                      + NAME_SIZE);
       if (!pkt->pkt.user_id)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       pkt->pkt.user_id->name =
         (char *) pkt->pkt.user_id + sizeof (*pkt->pkt.user_id);
 
       rc = read_attribute (inp, pktlen, pkt->pkt.user_id, NAME_SIZE);
       pkt->pkttype = CDK_PKT_ATTRIBUTE;
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_USER_ID:
       pkt->pkt.user_id = cdk_calloc (1, sizeof *pkt->pkt.user_id
                                      + pkt->pktlen + 1);
       if (!pkt->pkt.user_id)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       pkt->pkt.user_id->name =
         (char *) pkt->pkt.user_id + sizeof (*pkt->pkt.user_id);
       rc = read_user_id (inp, pktlen, pkt->pkt.user_id);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_PUBLIC_KEY:
       pkt->pkt.public_key = cdk_calloc (1, sizeof *pkt->pkt.public_key);
       if (!pkt->pkt.public_key)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_public_key (inp, pktlen, pkt->pkt.public_key);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_PUBLIC_SUBKEY:
       pkt->pkt.public_key = cdk_calloc (1, sizeof *pkt->pkt.public_key);
       if (!pkt->pkt.public_key)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_public_subkey (inp, pktlen, pkt->pkt.public_key);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_SECRET_KEY:
       pkt->pkt.secret_key = cdk_calloc (1, sizeof *pkt->pkt.secret_key);
       if (!pkt->pkt.secret_key)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       pkt->pkt.secret_key->pk = cdk_calloc (1,
                                             sizeof *pkt->pkt.secret_key->pk);
       if (!pkt->pkt.secret_key->pk)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_secret_key (inp, pktlen, pkt->pkt.secret_key);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_SECRET_SUBKEY:
       pkt->pkt.secret_key = cdk_calloc (1, sizeof *pkt->pkt.secret_key);
       if (!pkt->pkt.secret_key)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       pkt->pkt.secret_key->pk = cdk_calloc (1,
                                             sizeof *pkt->pkt.secret_key->pk);
       if (!pkt->pkt.secret_key->pk)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_secret_subkey (inp, pktlen, pkt->pkt.secret_key);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_LITERAL:
       pkt->pkt.literal = cdk_calloc (1, sizeof *pkt->pkt.literal);
       if (!pkt->pkt.literal)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_literal (inp, pktlen, &pkt->pkt.literal, is_partial);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_ONEPASS_SIG:
       pkt->pkt.onepass_sig = cdk_calloc (1, sizeof *pkt->pkt.onepass_sig);
       if (!pkt->pkt.onepass_sig)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_onepass_sig (inp, pktlen, pkt->pkt.onepass_sig);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_SIGNATURE:
       pkt->pkt.signature = cdk_calloc (1, sizeof *pkt->pkt.signature);
       if (!pkt->pkt.signature)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_signature (inp, pktlen, pkt->pkt.signature);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_PUBKEY_ENC:
       pkt->pkt.pubkey_enc = cdk_calloc (1, sizeof *pkt->pkt.pubkey_enc);
       if (!pkt->pkt.pubkey_enc)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_pubkey_enc (inp, pktlen, pkt->pkt.pubkey_enc);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_COMPRESSED:
       pkt->pkt.compressed = cdk_calloc (1, sizeof *pkt->pkt.compressed);
       if (!pkt->pkt.compressed)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_compressed (inp, pktlen, pkt->pkt.compressed);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     case CDK_PKT_MDC:
       pkt->pkt.mdc = cdk_calloc (1, sizeof *pkt->pkt.mdc);
       if (!pkt->pkt.mdc)
-        return CDK_Out_Of_Core;
+        return gnutls_assert_val(CDK_Out_Of_Core);
       rc = read_mdc (inp, pkt->pkt.mdc);
+      if (rc)
+        return gnutls_assert_val(rc);
       break;
 
     default:
index 7c62095..aff1109 100644 (file)
@@ -82,7 +82,9 @@ _cdk_stream_open_mode (const char *file, const char *mode,
       return CDK_Inv_Value;
     }
 
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("open stream `%s'\n", file);
+#endif
   *ret_s = NULL;
   s = cdk_calloc (1, sizeof *s);
   if (!s)
@@ -105,7 +107,9 @@ _cdk_stream_open_mode (const char *file, const char *mode,
       gnutls_assert ();
       return CDK_File_Error;
     }
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("open stream fd=%d\n", fileno (s->fp));
+#endif
   s->flags.write = 0;
   *ret_s = s;
   return 0;
@@ -175,7 +179,9 @@ cdk_stream_new (const char *file, cdk_stream_t * ret_s)
       return CDK_Inv_Value;
     }
 
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("new stream `%s'\n", file ? file : "[temp]");
+#endif
   *ret_s = NULL;
   s = cdk_calloc (1, sizeof *s);
   if (!s)
@@ -204,7 +210,9 @@ cdk_stream_new (const char *file, cdk_stream_t * ret_s)
       gnutls_assert ();
       return CDK_File_Error;
     }
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("new stream fd=%d\n", fileno (s->fp));
+#endif
   *ret_s = s;
   return 0;
 }
@@ -229,7 +237,9 @@ cdk_stream_create (const char *file, cdk_stream_t * ret_s)
       return CDK_Inv_Value;
     }
 
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("create stream `%s'\n", file);
+#endif
   *ret_s = NULL;
   s = cdk_calloc (1, sizeof *s);
   if (!s)
@@ -254,7 +264,9 @@ cdk_stream_create (const char *file, cdk_stream_t * ret_s)
       gnutls_assert ();
       return CDK_File_Error;
     }
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("stream create fd=%d\n", fileno (s->fp));
+#endif
   *ret_s = s;
   return 0;
 }
@@ -323,7 +335,9 @@ _cdk_stream_fpopen (FILE * fp, unsigned write_mode, cdk_stream_t * ret_out)
       return CDK_Out_Of_Core;
     }
 
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("stream ref fd=%d\n", fileno (fp));
+#endif
   s->fp = fp;
   s->fp_ref = 1;
   s->flags.filtrated = 1;
@@ -457,8 +471,10 @@ cdk_stream_close (cdk_stream_t s)
       return CDK_Inv_Value;
     }
 
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("close stream ref=%d `%s'\n",
                     s->fp_ref, s->fname ? s->fname : "[temp]");
+#endif
 
   /* In the user callback mode, we call the release cb if possible
      and just free the stream. */
@@ -481,7 +497,9 @@ cdk_stream_close (cdk_stream_t s)
     {
       int err;
 
+#ifdef DEBUG_STREAM
       _gnutls_read_log ("close stream fd=%d\n", fileno (s->fp));
+#endif
       err = fclose (s->fp);
       s->fp = NULL;
       if (err)
@@ -510,7 +528,10 @@ cdk_stream_close (cdk_stream_t s)
   s->cache.alloced = 0;
 
   cdk_free (s);
-  gnutls_assert ();
+  
+  if (rc)
+    gnutls_assert ();
+
   return rc;
 }
 
@@ -754,8 +775,10 @@ stream_fp_replace (cdk_stream_t s, FILE ** tmp)
 
   assert (s);
 
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("replace stream fd=%d with fd=%d\n",
                     fileno (s->fp), fileno (*tmp));
+#endif
   rc = fclose (s->fp);
   if (rc)
     {
@@ -791,8 +814,10 @@ stream_filter_write (cdk_stream_t s)
       if (!f->flags.enabled)
         continue;
       /* if there is no next filter, create the final output file */
+#ifdef DEBUG_STREAM
       _gnutls_read_log ("filter [write]: last filter=%d fname=%s\n",
                         f->next ? 1 : 0, s->fname);
+#endif
       if (!f->next && s->fname)
         f->tmp = fopen (s->fname, "w+b");
       else
@@ -812,14 +837,18 @@ stream_filter_write (cdk_stream_t s)
             break;
         }
       rc = f->fnct (f->uint8_t, f->ctl, s->fp, f->tmp);
+#ifdef DEBUG_STREAM
       _gnutls_read_log ("filter [write]: type=%d rc=%d\n", f->type, rc);
+#endif
       if (!rc)
         rc = stream_fp_replace (s, &f->tmp);
       if (!rc)
         rc = cdk_stream_seek (s, 0);
       if (rc)
         {
+#ifdef DEBUG_STREAM
           _gnutls_read_log ("filter [close]: fd=%d\n", fileno (f->tmp));
+#endif
           fclose (f->tmp);
           f->tmp = NULL;
           break;
@@ -851,8 +880,10 @@ stream_filter_read (cdk_stream_t s)
         continue;
       if (f->flags.error)
         {
+#ifdef DEBUG_STREAM
           _gnutls_read_log ("filter %s [read]: has the error flag; skipped\n",
                             s->fname ? s->fname : "[temp]");
+#endif
           continue;
         }
 
@@ -863,8 +894,10 @@ stream_filter_read (cdk_stream_t s)
           break;
         }
       rc = f->fnct (f->uint8_t, f->ctl, s->fp, f->tmp);
+#ifdef DEBUG_STREAM
       _gnutls_read_log ("filter %s [read]: type=%d rc=%d\n",
                         s->fname ? s->fname : "[temp]", f->type, rc);
+#endif
       if (rc)
         {
           f->flags.error = 1;
@@ -1042,11 +1075,15 @@ cdk_stream_write (cdk_stream_t s, const void *buf, size_t count)
       return EOF;
     }
 
-  if (!buf && !count)
+  if (!buf || !count)
     return stream_flush (s);
 
   if (s->cache.on)
     {
+#ifdef DEBUG_STREAM
+      _gnutls_read_log ("stream[ref=%u]: written %d bytes\n", s->fp_ref, (int) count);
+#endif
+
       /* We need to resize the buffer if the additional data wouldn't
          fit into it. We allocate more memory to avoid to resize it the
          next time the function is used. */
@@ -1059,14 +1096,21 @@ cdk_stream_write (cdk_stream_t s, const void *buf, size_t count)
           s->cache.alloced += (count + STREAM_BUFSIZE);
           memcpy (s->cache.buf, old, s->cache.size);
           cdk_free (old);
+#ifdef DEBUG_STREAM
           _gnutls_read_log ("stream: enlarge cache to %d octets\n",
                             (int) s->cache.alloced);
+#endif
         }
+
       memcpy (s->cache.buf + s->cache.size, buf, count);
       s->cache.size += count;
       return count;
     }
 
+#ifdef DEBUG_STREAM
+  _gnutls_read_log ("stream[fd=%u]: written %d bytes\n", fileno (s->fp), (int) count);
+#endif
+
   nwritten = fwrite (buf, 1, count, s->fp);
   if (!nwritten)
     nwritten = EOF;
@@ -1197,7 +1241,9 @@ cdk_stream_set_literal_flag (cdk_stream_t s, cdk_lit_format_t mode,
   struct stream_filter_s *f;
   const char *orig_fname;
 
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("stream: enable literal mode.\n");
+#endif
 
   if (!s)
     {
@@ -1242,20 +1288,6 @@ cdk_stream_set_compress_flag (cdk_stream_t s, int algo, int level)
 
   gnutls_assert ();
   return CDK_Not_Implemented;
-
-#if 0
-  struct stream_filter_s *f;
-
-  if (!s)
-    return CDK_Inv_Value;
-  f = filter_add (s, _cdk_filter_compress, fCOMPRESS);
-  if (!f)
-    return CDK_Out_Of_Core;
-  f->ctl = stream_get_mode (s);
-  f->u.zfx.algo = algo;
-  f->u.zfx.level = level;
-  return 0;
-#endif
 }
 
 
@@ -1349,8 +1381,10 @@ cdk_stream_enable_cache (cdk_stream_t s, int val)
     {
       s->cache.buf = cdk_calloc (1, STREAM_BUFSIZE);
       s->cache.alloced = STREAM_BUFSIZE;
+#ifdef DEBUG_STREAM
       _gnutls_read_log ("stream: allocate cache of %d octets\n",
                         STREAM_BUFSIZE);
+#endif
     }
   return 0;
 }
@@ -1455,7 +1489,9 @@ cdk_stream_mmap_part (cdk_stream_t s, off_t off, size_t len,
   /* Memory mapping is not supported on custom I/O objects. */
   if (s->cbs_hd)
     {
+#ifdef DEBUG_STREAM
       _gnutls_read_log ("cdk_stream_mmap_part: not supported on callbacks\n");
+#endif
       gnutls_assert ();
       return CDK_Inv_Mode;
     }
@@ -1579,8 +1615,10 @@ _cdk_stream_set_blockmode (cdk_stream_t s, size_t nbytes)
 {
   assert (s);
 
+#ifdef DEBUG_STREAM
   _gnutls_read_log ("stream: activate block mode with blocksize %d\n",
                     (int) nbytes);
+#endif
   s->blkmode = nbytes;
   return 0;
 }
index 0937c77..7a53e84 100644 (file)
@@ -146,9 +146,9 @@ pkt_encode_len (cdk_stream_t out, size_t pktlen)
 {
   cdk_error_t rc;
 
-  assert (out);
+  if (!out)
+    return CDK_Inv_Value;
 
-  rc = 0;
   if (!pktlen)
     {
       /* Block mode, partial bodies, with 'DEF_BLOCKSIZE' from main.h */
@@ -179,7 +179,8 @@ write_head_new (cdk_stream_t out, size_t size, int type)
 {
   cdk_error_t rc;
 
-  assert (out);
+  if (!out)
+    return CDK_Inv_Value;
 
   if (type < 0 || type > 63)
     return CDK_Inv_Packet;
@@ -196,7 +197,8 @@ write_head_old (cdk_stream_t out, size_t size, int type)
   cdk_error_t rc;
   int ctb;
 
-  assert (out);
+  if (!out)
+    return CDK_Inv_Value;
 
   if (type < 0 || type > 16)
     return CDK_Inv_Packet;
@@ -257,8 +259,8 @@ write_pubkey_enc (cdk_stream_t out, cdk_pkt_pubkey_enc_t pke, int old_ctb)
   size_t size;
   int rc, nenc;
 
-  assert (out);
-  assert (pke);
+  if (!out || !pke)
+    return CDK_Inv_Value;
 
   if (pke->version < 2 || pke->version > 3)
     return CDK_Inv_Packet;
@@ -292,8 +294,8 @@ write_mdc (cdk_stream_t out, cdk_pkt_mdc_t mdc)
 {
   cdk_error_t rc;
 
-  assert (mdc);
-  assert (out);
+  if (!out || !mdc)
+    return CDK_Inv_Value;
 
   if (DEBUG_PKT)
     _gnutls_write_log ("write_mdc:\n");
@@ -363,61 +365,85 @@ write_signature (cdk_stream_t out, cdk_pkt_signature_t sig, int old_ctb)
   size_t nbytes, size, nsig;
   cdk_error_t rc;
 
-  assert (out);
-  assert (sig);
+  if (!out || !sig)
+    return CDK_Inv_Value;
 
   if (!KEY_CAN_SIGN (sig->pubkey_algo))
-    return CDK_Inv_Algo;
+    return gnutls_assert_val(CDK_Inv_Algo);
   if (sig->version < 2 || sig->version > 4)
-    return CDK_Inv_Packet;
+    return gnutls_assert_val(CDK_Inv_Packet);
 
   if (DEBUG_PKT)
     _gnutls_write_log ("write_signature:\n");
 
   nsig = cdk_pk_get_nsig (sig->pubkey_algo);
   if (!nsig)
-    return CDK_Inv_Algo;
+    return gnutls_assert_val(CDK_Inv_Algo);
   if (sig->version < 4)
     return write_v3_sig (out, sig, nsig);
 
   size = 10 + calc_subpktsize (sig->hashed)
     + calc_subpktsize (sig->unhashed) + calc_mpisize (sig->mpi, nsig);
+
   rc = pkt_write_head (out, 0, size, CDK_PKT_SIGNATURE);
-  if (!rc)
-    rc = stream_putc (out, 4);
-  if (!rc)
-    rc = stream_putc (out, sig->sig_class);
-  if (!rc)
-    rc = stream_putc (out, _cdk_pub_algo_to_pgp (sig->pubkey_algo));
-  if (!rc)
-    rc = stream_putc (out, _gnutls_hash_algo_to_pgp (sig->digest_algo));
-  if (!rc)
-    rc = write_16 (out, sig->hashed_size);
-  if (!rc)
-    {
-      buf = _cdk_subpkt_get_array (sig->hashed, 0, &nbytes);
-      if (!buf)
-        return CDK_Out_Of_Core;
-      rc = stream_write (out, buf, nbytes);
-      cdk_free (buf);
-    }
-  if (!rc)
-    rc = write_16 (out, sig->unhashed_size);
-  if (!rc)
-    {
-      buf = _cdk_subpkt_get_array (sig->unhashed, 0, &nbytes);
-      if (!buf)
-        return CDK_Out_Of_Core;
-      rc = stream_write (out, buf, nbytes);
-      cdk_free (buf);
-    }
-  if (!rc)
-    rc = stream_putc (out, sig->digest_start[0]);
-  if (!rc)
-    rc = stream_putc (out, sig->digest_start[1]);
-  if (!rc)
-    rc = write_mpibuf (out, sig->mpi, nsig);
-  return rc;
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = stream_putc (out, 4);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = stream_putc (out, sig->sig_class);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = stream_putc (out, _cdk_pub_algo_to_pgp (sig->pubkey_algo));
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = stream_putc (out, _gnutls_hash_algo_to_pgp (sig->digest_algo));
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = write_16 (out, sig->hashed_size);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  buf = _cdk_subpkt_get_array (sig->hashed, 0, &nbytes);
+  if (!buf)
+    return gnutls_assert_val(CDK_Out_Of_Core);
+
+  rc = stream_write (out, buf, nbytes);
+  cdk_free (buf);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = write_16 (out, sig->unhashed_size);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  buf = _cdk_subpkt_get_array (sig->unhashed, 0, &nbytes);
+  if (!buf)
+    return gnutls_assert_val(CDK_Out_Of_Core);
+
+  rc = stream_write (out, buf, nbytes);
+  cdk_free (buf);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = stream_putc (out, sig->digest_start[0]);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = stream_putc (out, sig->digest_start[1]);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  rc = write_mpibuf (out, sig->mpi, nsig);
+  if (rc)
+    return gnutls_assert_val(rc);
+
+  return 0;
 }
 
 
@@ -429,8 +455,8 @@ write_public_key (cdk_stream_t out, cdk_pkt_pubkey_t pk,
   size_t npkey = 0, size = 6;
   cdk_error_t rc;
 
-  assert (out);
-  assert (pk);
+  if (!out || !pk)
+    return CDK_Inv_Value;
 
   if (pk->version < 2 || pk->version > 4)
     return CDK_Inv_Packet;
@@ -506,8 +532,8 @@ write_secret_key (cdk_stream_t out, cdk_pkt_seckey_t sk,
   int pkttype, s2k_mode;
   cdk_error_t rc;
 
-  assert (out);
-  assert (sk);
+  if (!out || !sk)
+    return CDK_Inv_Value;
 
   if (!sk->pk)
     return CDK_Inv_Value;
@@ -626,8 +652,8 @@ write_compressed (cdk_stream_t out, cdk_pkt_compressed_t cd)
 {
   cdk_error_t rc;
 
-  assert (out);
-  assert (cd);
+  if (!out || !cd)
+    return CDK_Inv_Value;
 
   if (DEBUG_PKT)
     _gnutls_write_log ("packet: write_compressed\n");
@@ -647,8 +673,8 @@ write_literal (cdk_stream_t out, cdk_pkt_literal_t pt, int old_ctb)
   size_t size;
   cdk_error_t rc;
 
-  assert (out);
-  assert (pt);
+  if (!out || !pt)
+    return CDK_Inv_Value;
 
   /* We consider a packet without a body as an invalid packet.
      At least one octet must be present. */
@@ -694,8 +720,8 @@ write_onepass_sig (cdk_stream_t out, cdk_pkt_onepass_sig_t sig)
 {
   cdk_error_t rc;
 
-  assert (out);
-  assert (sig);
+  if (!out || !sig)
+    return CDK_Inv_Value;
 
   if (sig->version != 3)
     return CDK_Inv_Packet;
@@ -774,7 +800,9 @@ cdk_pkt_write (cdk_stream_t out, cdk_packet_t pkt)
   if (!out || !pkt)
     return CDK_Inv_Value;
 
-  _gnutls_write_log ("write packet pkttype=%d\n", pkt->pkttype);
+  if (DEBUG_PKT)
+    _gnutls_write_log ("write packet pkttype=%d\n", pkt->pkttype);
+
   switch (pkt->pkttype)
     {
     case CDK_PKT_LITERAL:
index de66984..1074d2e 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -223,6 +243,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgnutls_openpgp_la_SOURCES)
 DIST_SOURCES = $(libgnutls_openpgp_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -543,6 +568,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -828,7 +854,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -902,6 +927,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1037,8 +1063,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1057,7 +1083,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1288,6 +1313,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 7065bf2..99e2c4e 100644 (file)
@@ -681,6 +681,8 @@ error:
  * callback is only useful in server side, and will be used if the peer
  * sent a key fingerprint instead of a full key.
  *
+ * The retrieved key must be allocated using gnutls_malloc().
+ *
  **/
 void
 gnutls_openpgp_set_recv_key_function (gnutls_session_t session,
index 7ace55d..b6946c5 100644 (file)
@@ -125,7 +125,7 @@ int
 _gnutls_openpgp_export (cdk_kbnode_t node,
                         gnutls_openpgp_crt_fmt_t format,
                         void *output_data,
-                        size_t * output_data_size, int private)
+                        size_t * output_data_size, int priv)
 {
   size_t input_data_size = *output_data_size;
   size_t calc_size;
@@ -141,7 +141,7 @@ _gnutls_openpgp_export (cdk_kbnode_t node,
 
   /* If the caller uses output_data == NULL then return what he expects.
    */
-  if (!output_data)
+  if (!output_data && format != GNUTLS_OPENPGP_FMT_BASE64)
     {
       gnutls_assert ();
       return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -156,7 +156,7 @@ _gnutls_openpgp_export (cdk_kbnode_t node,
          buffer is large enough. */
       rc = cdk_armor_encode_buffer (in, *output_data_size,
                                     NULL, 0, &calc_size,
-                                    private ? CDK_ARMOR_SECKEY :
+                                    priv ? CDK_ARMOR_SECKEY :
                                     CDK_ARMOR_PUBKEY);
       if (rc || calc_size > input_data_size)
         {
@@ -168,7 +168,7 @@ _gnutls_openpgp_export (cdk_kbnode_t node,
 
       rc = cdk_armor_encode_buffer (in, *output_data_size,
                                     output_data, input_data_size, &calc_size,
-                                    private ? CDK_ARMOR_SECKEY :
+                                    priv ? CDK_ARMOR_SECKEY :
                                     CDK_ARMOR_PUBKEY);
       gnutls_free (in);
       *output_data_size = calc_size;
@@ -189,7 +189,7 @@ _gnutls_openpgp_export (cdk_kbnode_t node,
  * gnutls_openpgp_crt_export:
  * @key: Holds the key.
  * @format: One of gnutls_openpgp_crt_fmt_t elements.
- * @output_data: will contain the key base64 encoded or raw
+ * @output_data: will contain the raw or base64 encoded key
  * @output_data_size: holds the size of output_data (and will
  *   be replaced by the actual size of parameters)
  *
@@ -367,7 +367,8 @@ gnutls_openpgp_crt_get_pk_algorithm (gnutls_openpgp_crt_t key,
                                      unsigned int *bits)
 {
   cdk_packet_t pkt;
-  int algo;
+  int algo = 0, ret;
+  uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
 
   if (!key)
     {
@@ -375,7 +376,20 @@ gnutls_openpgp_crt_get_pk_algorithm (gnutls_openpgp_crt_t key,
       return GNUTLS_PK_UNKNOWN;
     }
 
-  algo = 0;
+  ret = gnutls_openpgp_crt_get_preferred_key_id (key, keyid);
+  if (ret == 0)
+    {
+      int idx;
+
+      idx = gnutls_openpgp_crt_get_subkey_idx (key, keyid);
+      if (idx != GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+        {
+          algo =
+            gnutls_openpgp_crt_get_subkey_pk_algorithm (key, idx, bits);
+          return algo;
+        }
+    }
+
   pkt = cdk_kbnode_find_packet (key->knode, CDK_PKT_PUBLIC_KEY);
   if (pkt)
     {
@@ -799,6 +813,9 @@ gnutls_openpgp_crt_get_subkey_revoked_status (gnutls_openpgp_crt_t key,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_revoked_status(key);
+
   pkt = _get_public_subkey (key, idx);
   if (!pkt)
     return GNUTLS_E_OPENPGP_GETKEY_FAILED;
@@ -840,6 +857,9 @@ gnutls_openpgp_crt_get_subkey_pk_algorithm (gnutls_openpgp_crt_t key,
       return GNUTLS_PK_UNKNOWN;
     }
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_pk_algorithm(key, bits);
+
   pkt = _get_public_subkey (key, idx);
 
   algo = 0;
@@ -874,6 +894,9 @@ gnutls_openpgp_crt_get_subkey_creation_time (gnutls_openpgp_crt_t key,
   if (!key)
     return (time_t) - 1;
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_creation_time(key);
+
   pkt = _get_public_subkey (key, idx);
   if (pkt)
     timestamp = pkt->pkt.public_key->timestamp;
@@ -906,6 +929,9 @@ gnutls_openpgp_crt_get_subkey_expiration_time (gnutls_openpgp_crt_t key,
   if (!key)
     return (time_t) - 1;
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_expiration_time(key);
+
   pkt = _get_public_subkey (key, idx);
   if (pkt)
     expiredate = pkt->pkt.public_key->expiredate;
@@ -938,6 +964,9 @@ gnutls_openpgp_crt_get_subkey_id (gnutls_openpgp_crt_t key,
       gnutls_assert ();
       return GNUTLS_E_INVALID_REQUEST;
     }
+  
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_key_id(key, keyid);
 
   pkt = _get_public_subkey (key, idx);
   if (!pkt)
@@ -977,6 +1006,9 @@ gnutls_openpgp_crt_get_subkey_fingerprint (gnutls_openpgp_crt_t key,
       gnutls_assert ();
       return GNUTLS_E_INVALID_REQUEST;
     }
+  
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_fingerprint(key, fpr, fprlen);
 
   *fprlen = 0;
 
@@ -1012,6 +1044,7 @@ gnutls_openpgp_crt_get_subkey_idx (gnutls_openpgp_crt_t key,
 {
   int ret;
   uint32_t kid[2];
+  uint8_t master_id[GNUTLS_OPENPGP_KEYID_SIZE];
 
   if (!key)
     {
@@ -1019,6 +1052,12 @@ gnutls_openpgp_crt_get_subkey_idx (gnutls_openpgp_crt_t key,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  ret = gnutls_openpgp_crt_get_key_id (key, master_id);
+  if (ret < 0)
+    return gnutls_assert_val(ret);  
+  if (memcmp(master_id, keyid, GNUTLS_OPENPGP_KEYID_SIZE)==0)
+    return GNUTLS_OPENPGP_MASTER_KEYID_IDX;
+
   KEYID_IMPORT (kid, keyid);
   ret = _gnutls_openpgp_find_subkey_idx (key->knode, kid, 0);
 
@@ -1059,6 +1098,9 @@ gnutls_openpgp_crt_get_subkey_usage (gnutls_openpgp_crt_t key,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_key_usage(key, key_usage);
+
   pkt = _get_public_subkey (key, idx);
   if (!pkt)
     return GNUTLS_E_OPENPGP_SUBKEY_ERROR;
@@ -1456,6 +1498,9 @@ gnutls_openpgp_crt_get_subkey_pk_rsa_raw (gnutls_openpgp_crt_t crt,
   uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
   int ret;
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_pk_rsa_raw(crt, m, e);
+
   ret = gnutls_openpgp_crt_get_subkey_id (crt, idx, keyid);
   if (ret < 0)
     {
@@ -1494,6 +1539,9 @@ gnutls_openpgp_crt_get_subkey_pk_dsa_raw (gnutls_openpgp_crt_t crt,
   uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
   int ret;
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_crt_get_pk_dsa_raw(crt, p,q, g, y);
+
   ret = gnutls_openpgp_crt_get_subkey_id (crt, idx, keyid);
   if (ret < 0)
     {
@@ -1540,6 +1588,9 @@ gnutls_openpgp_crt_get_preferred_key_id (gnutls_openpgp_crt_t key,
  * This allows setting a preferred key id for the given certificate.
  * This key will be used by functions that involve key handling.
  *
+ * If the provided @keyid is %NULL then the master key is
+ * set as preferred.
+ *
  * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned,
  *   otherwise a negative error code is returned.
  **/
@@ -1554,6 +1605,20 @@ gnutls_openpgp_crt_set_preferred_key_id (gnutls_openpgp_crt_t key,
       gnutls_assert ();
       return GNUTLS_E_INVALID_REQUEST;
     }
+    
+  if (keyid == NULL) /* set the master as preferred */
+    {
+      uint8_t tmp[GNUTLS_OPENPGP_KEYID_SIZE];
+      
+      ret = gnutls_openpgp_crt_get_key_id (key, tmp);
+      if (ret < 0)
+        return gnutls_assert_val(ret);
+        
+      key->preferred_set = 1;
+      memcpy (key->preferred_keyid, tmp, GNUTLS_OPENPGP_KEYID_SIZE);
+
+      return 0;
+    }
 
   /* check if the id is valid */
   ret = gnutls_openpgp_crt_get_subkey_idx (key, keyid);
@@ -1574,14 +1639,10 @@ gnutls_openpgp_crt_set_preferred_key_id (gnutls_openpgp_crt_t key,
  * gnutls_openpgp_crt_get_auth_subkey:
  * @crt: the structure that contains the OpenPGP public key.
  * @keyid: the struct to save the keyid.
- * @flag: Non (0) indicates that a valid subkey is always returned.
+ * @flag: Non-zero indicates that a valid subkey is always returned.
  *
  * Returns the 64-bit keyID of the first valid OpenPGP subkey marked
- * for authentication.  If flag is non (0) and no authentication
- * subkey exists, then a valid subkey will be returned even if it is
- * not marked for authentication.
- * Returns the 64-bit keyID of the first valid OpenPGP subkey marked
- * for authentication.  If flag is non (0) and no authentication
+ * for authentication.  If flag is non-zero and no authentication
  * subkey exists, then a valid subkey will be returned even if it is
  * not marked for authentication.
  *
index 9be87b0..ec4c306 100644 (file)
@@ -230,7 +230,6 @@ gnutls_openpgp_privkey_export (gnutls_openpgp_privkey_t key,
                                  output_data_size, 1);
 }
 
-
 /**
  * gnutls_openpgp_privkey_get_pk_algorithm:
  * @key: is an OpenPGP key
@@ -253,7 +252,8 @@ gnutls_openpgp_privkey_get_pk_algorithm (gnutls_openpgp_privkey_t key,
                                          unsigned int *bits)
 {
   cdk_packet_t pkt;
-  int algo;
+  int algo = 0, ret;
+  uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
 
   if (!key)
     {
@@ -261,7 +261,20 @@ gnutls_openpgp_privkey_get_pk_algorithm (gnutls_openpgp_privkey_t key,
       return GNUTLS_PK_UNKNOWN;
     }
 
-  algo = 0;
+  ret = gnutls_openpgp_privkey_get_preferred_key_id (key, keyid);
+  if (ret == 0)
+    {
+      int idx;
+
+      idx = gnutls_openpgp_privkey_get_subkey_idx (key, keyid);
+      if (idx != GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+        {
+          algo =
+            gnutls_openpgp_privkey_get_subkey_pk_algorithm (key, idx, bits);
+          return algo;
+        }
+    }
+
   pkt = cdk_kbnode_find_packet (key->knode, CDK_PKT_SECRET_KEY);
   if (pkt)
     {
@@ -403,7 +416,6 @@ gnutls_openpgp_privkey_get_key_id (gnutls_openpgp_privkey_t key,
   return 0;
 }
 
-
 /**
  * gnutls_openpgp_privkey_get_subkey_count:
  * @key: is an OpenPGP key
@@ -484,6 +496,9 @@ gnutls_openpgp_privkey_get_subkey_revoked_status (gnutls_openpgp_privkey_t
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_privkey_get_revoked_status(key);
+
   pkt = _get_secret_subkey (key, idx);
   if (!pkt)
     return GNUTLS_E_OPENPGP_GETKEY_FAILED;
@@ -525,6 +540,9 @@ gnutls_openpgp_privkey_get_subkey_pk_algorithm (gnutls_openpgp_privkey_t key,
       return GNUTLS_PK_UNKNOWN;
     }
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_privkey_get_pk_algorithm(key, bits);
+
   pkt = _get_secret_subkey (key, idx);
 
   algo = 0;
@@ -561,6 +579,7 @@ gnutls_openpgp_privkey_get_subkey_idx (gnutls_openpgp_privkey_t key,
 {
   int ret;
   uint32_t kid[2];
+  uint8_t master_id[GNUTLS_OPENPGP_KEYID_SIZE];
 
   if (!key)
     {
@@ -568,6 +587,12 @@ gnutls_openpgp_privkey_get_subkey_idx (gnutls_openpgp_privkey_t key,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  ret = gnutls_openpgp_privkey_get_key_id (key, master_id);
+  if (ret < 0)
+    return gnutls_assert_val(ret);  
+  if (memcmp(master_id, keyid, GNUTLS_OPENPGP_KEYID_SIZE)==0)
+    return GNUTLS_OPENPGP_MASTER_KEYID_IDX;
+
   KEYID_IMPORT (kid, keyid);
   ret = _gnutls_openpgp_find_subkey_idx (key->knode, kid, 1);
 
@@ -600,7 +625,11 @@ gnutls_openpgp_privkey_get_subkey_creation_time (gnutls_openpgp_privkey_t key,
   if (!key)
     return (time_t) - 1;
 
-  pkt = _get_secret_subkey (key, idx);
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    pkt = cdk_kbnode_find_packet (key->knode, CDK_PKT_SECRET_KEY);
+  else 
+    pkt = _get_secret_subkey (key, idx);
+
   if (pkt)
     timestamp = pkt->pkt.secret_key->pk->timestamp;
   else
@@ -626,18 +655,22 @@ gnutls_openpgp_privkey_get_subkey_expiration_time (gnutls_openpgp_privkey_t
                                                    key, unsigned int idx)
 {
   cdk_packet_t pkt;
-  time_t expiredate;
+  time_t timestamp;
 
   if (!key)
     return (time_t) - 1;
 
-  pkt = _get_secret_subkey (key, idx);
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    pkt = cdk_kbnode_find_packet (key->knode, CDK_PKT_SECRET_KEY);
+  else 
+    pkt = _get_secret_subkey (key, idx);
+
   if (pkt)
-    expiredate = pkt->pkt.secret_key->expiredate;
+    timestamp = pkt->pkt.secret_key->pk->expiredate;
   else
-    expiredate = 0;
+    timestamp = 0;
 
-  return expiredate;
+  return timestamp;
 }
 
 /**
@@ -666,6 +699,9 @@ gnutls_openpgp_privkey_get_subkey_id (gnutls_openpgp_privkey_t key,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_privkey_get_key_id(key, keyid);
+
   pkt = _get_secret_subkey (key, idx);
   if (!pkt)
     return GNUTLS_E_OPENPGP_GETKEY_FAILED;
@@ -705,6 +741,9 @@ gnutls_openpgp_privkey_get_subkey_fingerprint (gnutls_openpgp_privkey_t key,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    return gnutls_openpgp_privkey_get_fingerprint(key, fpr, fprlen);
+
   *fprlen = 0;
 
   pkt = _get_secret_subkey (key, idx);
@@ -1106,7 +1145,10 @@ gnutls_openpgp_privkey_export_subkey_rsa_raw (gnutls_openpgp_privkey_t pkey,
   uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
   int ret;
 
-  ret = gnutls_openpgp_privkey_get_subkey_id (pkey, idx, keyid);
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    ret = gnutls_openpgp_privkey_get_key_id (pkey, keyid);
+  else
+    ret = gnutls_openpgp_privkey_get_subkey_id (pkey, idx, keyid);
   if (ret < 0)
     {
       gnutls_assert ();
@@ -1146,7 +1188,11 @@ gnutls_openpgp_privkey_export_subkey_dsa_raw (gnutls_openpgp_privkey_t pkey,
   uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
   int ret;
 
-  ret = gnutls_openpgp_privkey_get_subkey_id (pkey, idx, keyid);
+  if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX)
+    ret = gnutls_openpgp_privkey_get_key_id (pkey, keyid);
+  else
+    ret = gnutls_openpgp_privkey_get_subkey_id (pkey, idx, keyid);
+
   if (ret < 0)
     {
       gnutls_assert ();
@@ -1192,7 +1238,11 @@ gnutls_openpgp_privkey_get_preferred_key_id (gnutls_openpgp_privkey_t key,
  * This allows setting a preferred key id for the given certificate.
  * This key will be used by functions that involve key handling.
  *
- * Returns: On success, 0 is returned, or an error code.
+ * If the provided @keyid is %NULL then the master key is
+ * set as preferred.
+ *
+ * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned,
+ *   otherwise a negative error code is returned.
  **/
 int
 gnutls_openpgp_privkey_set_preferred_key_id (gnutls_openpgp_privkey_t key,
@@ -1207,6 +1257,20 @@ gnutls_openpgp_privkey_set_preferred_key_id (gnutls_openpgp_privkey_t key,
       return GNUTLS_E_INVALID_REQUEST;
     }
 
+  if (keyid == NULL) /* set the master as preferred */
+    {
+      uint8_t tmp[GNUTLS_OPENPGP_KEYID_SIZE];
+      
+      ret = gnutls_openpgp_privkey_get_key_id (key, tmp);
+      if (ret < 0)
+        return gnutls_assert_val(ret);
+        
+      key->preferred_set = 1;
+      memcpy (key->preferred_keyid, tmp, GNUTLS_OPENPGP_KEYID_SIZE);
+
+      return 0;
+    }
+
   /* check if the id is valid */
   ret = gnutls_openpgp_privkey_get_subkey_idx (key, keyid);
   if (ret < 0)
@@ -1246,6 +1310,7 @@ gnutls_openpgp_privkey_sign_hash (gnutls_openpgp_privkey_t key,
   gnutls_pk_params_st params;
   int pk_algorithm;
   uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
+  char buf[2*GNUTLS_OPENPGP_KEYID_SIZE+1];
 
   if (key == NULL)
     {
@@ -1260,6 +1325,8 @@ gnutls_openpgp_privkey_sign_hash (gnutls_openpgp_privkey_t key,
       int idx;
 
       KEYID_IMPORT (kid, keyid);
+      
+      _gnutls_hard_log("Signing using PGP key ID %s\n", _gnutls_bin2hex(keyid, GNUTLS_OPENPGP_KEYID_SIZE, buf, sizeof(buf), NULL));
 
       idx = gnutls_openpgp_privkey_get_subkey_idx (key, keyid);
       pk_algorithm =
@@ -1269,6 +1336,8 @@ gnutls_openpgp_privkey_sign_hash (gnutls_openpgp_privkey_t key,
     }
   else
     {
+      _gnutls_hard_log("Signing using master PGP key\n");
+
       pk_algorithm = gnutls_openpgp_privkey_get_pk_algorithm (key, NULL);
       result = _gnutls_openpgp_privkey_get_mpis (key, NULL, &params);
     }
@@ -1318,6 +1387,7 @@ _gnutls_openpgp_privkey_decrypt_data (gnutls_openpgp_privkey_t key,
   gnutls_pk_params_st params;
   int pk_algorithm;
   uint8_t keyid[GNUTLS_OPENPGP_KEYID_SIZE];
+  char buf[2*GNUTLS_OPENPGP_KEYID_SIZE+1];
 
   if (key == NULL)
     {
@@ -1331,6 +1401,9 @@ _gnutls_openpgp_privkey_decrypt_data (gnutls_openpgp_privkey_t key,
       uint32_t kid[2];
 
       KEYID_IMPORT (kid, keyid);
+
+      _gnutls_hard_log("Decrypting using PGP key ID %s\n", _gnutls_bin2hex(keyid, GNUTLS_OPENPGP_KEYID_SIZE, buf, sizeof(buf), NULL));
+
       result = _gnutls_openpgp_privkey_get_mpis (key, kid, &params);
 
       i = gnutls_openpgp_privkey_get_subkey_idx (key, keyid);
@@ -1339,6 +1412,8 @@ _gnutls_openpgp_privkey_decrypt_data (gnutls_openpgp_privkey_t key,
     }
   else
     {
+      _gnutls_hard_log("Decrypting using master PGP key\n");
+
       pk_algorithm = gnutls_openpgp_privkey_get_pk_algorithm (key, NULL);
 
       result = _gnutls_openpgp_privkey_get_mpis (key, NULL, &params);
@@ -1352,21 +1427,14 @@ _gnutls_openpgp_privkey_decrypt_data (gnutls_openpgp_privkey_t key,
     }
 
   if (pk_algorithm != GNUTLS_PK_RSA)
-    {
-      gnutls_assert ();
-      return GNUTLS_E_INVALID_REQUEST;
-    }
-
-  result =
-    _gnutls_pkcs1_rsa_decrypt (plaintext, ciphertext, &params, 2);
+    return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+  
+  result = _gnutls_pkcs1_rsa_decrypt (plaintext, ciphertext, &params, 2);
 
   gnutls_pk_params_release(&params);
 
   if (result < 0)
-    {
-      gnutls_assert ();
-      return result;
-    }
+    return gnutls_assert_val(result);
 
   return 0;
 }
index 056c68c..6dec239 100644 (file)
 
 /* XXX: try to eliminate this */
 #define MAX_CERT_SIZE 8*1024
+#define MAX_SLOTS 48
 
 struct gnutls_pkcs11_provider_s
 {
   struct ck_function_list *module;
-  unsigned long nslots;
-  ck_slot_id_t *slots;
   struct ck_info info;
   unsigned int initialized;
 };
@@ -167,14 +166,19 @@ pkcs11_rv_to_err (ck_rv_t rv)
     }
 }
 
-/* Fake scan */
-void
-pkcs11_rescan_slots (void)
+
+static int scan_slots(struct gnutls_pkcs11_provider_s * p, ck_slot_id_t *slots,
+        unsigned long *nslots)
 {
-  unsigned long slots;
+ck_rv_t rv;
 
-  pkcs11_get_slot_list (providers[active_providers - 1].module, 0,
-                          NULL, &slots);
+  rv = pkcs11_get_slot_list(p->module, 1, slots, nslots);
+  if (rv != CKR_OK)
+    {
+      gnutls_assert ();
+      return pkcs11_rv_to_err(rv);
+    }
+  return 0;
 }
 
 static int
@@ -205,44 +209,11 @@ pkcs11_add_module (const char *name, struct ck_function_list *module)
   active_providers++;
   providers[active_providers - 1].module = module;
 
-  /* cache the number of slots in this module */
-  if (pkcs11_get_slot_list
-      (providers[active_providers - 1].module, 0, NULL,
-       &providers[active_providers - 1].nslots) != CKR_OK)
-    {
-      gnutls_assert ();
-      goto fail;
-    }
-
-  providers[active_providers - 1].slots =
-    gnutls_malloc (sizeof (*providers[active_providers - 1].slots) *
-                   providers[active_providers - 1].nslots);
-  if (providers[active_providers - 1].slots == NULL)
-    {
-      gnutls_assert ();
-      goto fail;
-    }
-
-  if (pkcs11_get_slot_list
-      (providers[active_providers - 1].module, 0,
-       providers[active_providers - 1].slots,
-       &providers[active_providers - 1].nslots) != CKR_OK)
-    {
-      gnutls_assert ();
-      gnutls_free (providers[active_providers - 1].slots);
-      goto fail;
-    }
-
   memcpy (&providers[active_providers - 1].info, &info, sizeof(info));
 
-  _gnutls_debug_log ("p11: loaded provider '%s' with %d slots\n",
-                     name, (int) providers[active_providers - 1].nslots);
+  _gnutls_debug_log ("p11: loaded provider '%s'\n", name);
 
   return 0;
-
-fail:
-  active_providers--;
-  return GNUTLS_E_PKCS11_LOAD_ERROR;
 }
 
 
@@ -266,12 +237,10 @@ gnutls_pkcs11_add_provider (const char *name, const char *params)
   struct ck_function_list *module;
   int ret;
 
-  active_providers++;
   if (p11_kit_load_initialize_module (name, &module) != CKR_OK)
     {
       gnutls_assert ();
       _gnutls_debug_log ("p11: Cannot load provider %s\n", name);
-      active_providers--;
       return GNUTLS_E_PKCS11_LOAD_ERROR;
     }
 
@@ -503,7 +472,7 @@ initialize_automatic_p11_kit (void)
       gnutls_assert ();
       _gnutls_debug_log ("Cannot initialize registered module: %s\n",
                          p11_kit_strerror (rv));
-      return GNUTLS_E_INTERNAL_ERROR;
+      return pkcs11_rv_to_err(rv);
     }
 
   initialized_registered = 1;
@@ -589,15 +558,18 @@ gnutls_pkcs11_init (unsigned int flags, const char *deprecated_config_file)
  **/
 int gnutls_pkcs11_reinit (void)
 {
+  unsigned i;
   int rv;
 
-  rv = p11_kit_initialize_registered ();
-  if (rv != CKR_OK)
+  for (i = 0; i < active_providers; i++)
     {
-      gnutls_assert ();
-      _gnutls_debug_log ("Cannot initialize registered module: %s\n",
-                         p11_kit_strerror (rv));
-      return GNUTLS_E_INTERNAL_ERROR;
+      if (providers[i].module != NULL) 
+        {
+          rv = p11_kit_initialize_module(providers[i].module);
+          if (rv != CKR_OK)
+            _gnutls_debug_log ("Cannot initialize registered module '%s': %s\n", 
+              providers[i].info.library_description, p11_kit_strerror (rv));
+        }
     }
 
   return 0;
@@ -884,24 +856,34 @@ pkcs11_find_slot (struct ck_function_list ** module, ck_slot_id_t * slot,
                   struct p11_kit_uri *info, struct token_info *_tinfo)
 {
   unsigned int x, z;
+  int ret;
+  unsigned long nslots;
+  ck_slot_id_t slots[MAX_SLOTS];
 
   for (x = 0; x < active_providers; x++)
     {
-      for (z = 0; z < providers[x].nslots; z++)
+      nslots = sizeof(slots)/sizeof(slots[0]);
+      ret = scan_slots(&providers[x], slots, &nslots);
+      if (ret < 0)
+        {
+          gnutls_assert();
+          continue;
+        }
+
+      for (z = 0; z < nslots; z++)
         {
           struct token_info tinfo;
 
           if (pkcs11_get_token_info
-              (providers[x].module, providers[x].slots[z],
-               &tinfo.tinfo) != CKR_OK)
+              (providers[x].module, slots[z], &tinfo.tinfo) != CKR_OK)
             {
               continue;
             }
-          tinfo.sid = providers[x].slots[z];
+          tinfo.sid = slots[z];
           tinfo.prov = &providers[x];
 
           if (pkcs11_get_slot_info
-              (providers[x].module, providers[x].slots[z],
+              (providers[x].module, slots[z],
                &tinfo.sinfo) != CKR_OK)
             {
               continue;
@@ -915,7 +897,7 @@ pkcs11_find_slot (struct ck_function_list ** module, ck_slot_id_t * slot,
 
           /* ok found */
           *module = providers[x].module;
-          *slot = providers[x].slots[z];
+          *slot = slots[z];
 
           if (_tinfo != NULL)
             memcpy (_tinfo, &tinfo, sizeof (tinfo));
@@ -983,31 +965,39 @@ _pkcs11_traverse_tokens (find_func_t find_func, void *input,
   int ret;
   ck_session_handle_t pks = 0;
   struct ck_function_list *module = NULL;
+  unsigned long nslots;
+  ck_slot_id_t slots[MAX_SLOTS];
 
   for (x = 0; x < active_providers; x++)
     {
+      nslots = sizeof(slots)/sizeof(slots[0]);
+      ret = scan_slots(&providers[x], slots, &nslots);
+      if (ret < 0)
+        {
+          gnutls_assert();
+          continue;
+        }
+
       module = providers[x].module;
-      for (z = 0; z < providers[x].nslots; z++)
+      for (z = 0; z < nslots; z++)
         {
           struct token_info tinfo;
 
-          ret = GNUTLS_E_PKCS11_ERROR;
-
-          if (pkcs11_get_token_info (module, providers[x].slots[z],
+          if (pkcs11_get_token_info (module, slots[z],
                &tinfo.tinfo) != CKR_OK)
             {
               continue;
             }
-          tinfo.sid = providers[x].slots[z];
+          tinfo.sid = slots[z];
           tinfo.prov = &providers[x];
 
-          if (pkcs11_get_slot_info (module, providers[x].slots[z],
+          if (pkcs11_get_slot_info (module, slots[z],
                &tinfo.sinfo) != CKR_OK)
             {
               continue;
             }
 
-          rv = (module)->C_OpenSession (providers[x].slots[z],
+          rv = (module)->C_OpenSession (slots[z],
                                         ((flags & SESSION_WRITE)
                                           ? CKF_RW_SESSION : 0) |
                                         CKF_SERIAL_SESSION, NULL, NULL, &pks);
@@ -2201,11 +2191,12 @@ find_objs (struct ck_function_list * module, ck_session_handle_t pks,
            struct token_info *info, struct ck_info *lib_info, void *input)
 {
   struct crt_find_data_st *find_data = input;
-  struct ck_attribute a[4];
+  struct ck_attribute a[6];
   struct ck_attribute *attr;
   ck_object_class_t class = (ck_object_class_t)-1;
   ck_certificate_type_t type = (ck_certificate_type_t)-1;
   unsigned int trusted;
+  unsigned long category;
   ck_rv_t rv;
   ck_object_handle_t obj;
   unsigned long count;
@@ -2301,6 +2292,28 @@ find_objs (struct ck_function_list * module, ck_session_handle_t pks,
       tot_values++;
 
     }
+  else if (find_data->flags == GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA)
+    {
+      class = CKO_CERTIFICATE;
+      type = CKC_X_509;
+      trusted = 1;
+
+      a[tot_values].type = CKA_CLASS;
+      a[tot_values].value = &class;
+      a[tot_values].value_len = sizeof class;
+      tot_values++;
+
+      a[tot_values].type = CKA_TRUSTED;
+      a[tot_values].value = &trusted;
+      a[tot_values].value_len = sizeof trusted;
+      tot_values++;
+
+      category = 2;
+      a[tot_values].type = CKA_CERTIFICATE_CATEGORY;
+      a[tot_values].value = &category;
+      a[tot_values].value_len = sizeof category;
+      tot_values++;
+    }
   else if (find_data->flags == GNUTLS_PKCS11_OBJ_ATTR_PUBKEY)
     {
       class = CKO_PUBLIC_KEY;
@@ -2548,6 +2561,11 @@ gnutls_pkcs11_obj_list_import_url (gnutls_pkcs11_obj_t * p_list,
   if (ret < 0)
     {
       gnutls_assert ();
+      if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+        {
+          *n_list = 0;
+          ret = 0;
+        }
       return ret;
     }
 
index ccec17e..ec70930 100644 (file)
@@ -26,6 +26,7 @@
 #include <gnutls_datum.h>
 #include <pkcs11_int.h>
 #include <gnutls_sig.h>
+#include <gnutls_pk.h>
 #include <p11-kit/uri.h>
 
 struct gnutls_pkcs11_privkey_st
@@ -141,6 +142,23 @@ gnutls_pkcs11_privkey_get_info (gnutls_pkcs11_privkey_t pkey,
                 } \
        } while (0);
 
+
+static int read_rs(bigint_t *r, bigint_t *s, uint8_t *data, size_t data_size)
+{
+unsigned int dhalf = data_size/2;
+
+  if (_gnutls_mpi_scan_nz (r, data, dhalf) != 0)
+    return gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+
+  if (_gnutls_mpi_scan_nz (s, &data[dhalf], dhalf) != 0)
+    {
+      _gnutls_mpi_release(r);
+      return gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+    }
+
+  return 0;
+}
+
 /*-
  * _gnutls_pkcs11_privkey_sign_hash:
  * @key: Holds the key
@@ -205,6 +223,36 @@ _gnutls_pkcs11_privkey_sign_hash (gnutls_pkcs11_privkey_t key,
     }
 
   signature->size = siglen;
+  
+  if (key->pk_algorithm == GNUTLS_PK_EC || key->pk_algorithm == GNUTLS_PK_DSA)
+    {
+      bigint_t r,s;
+
+      if (siglen % 2 != 0)
+        {
+          gnutls_assert();
+          ret = GNUTLS_E_PK_SIGN_FAILED;
+          goto cleanup;
+        }
+
+      ret = read_rs(&r, &s, signature->data, signature->size);
+      if (ret < 0)
+        {
+          gnutls_assert();
+          goto cleanup;
+        }
+      
+      gnutls_free(signature->data);
+      ret = _gnutls_encode_ber_rs (signature, r, s);
+      _gnutls_mpi_release(&r);
+      _gnutls_mpi_release(&s);
+      
+      if (ret < 0)
+        {
+          gnutls_assert();
+          goto cleanup;
+        }
+    }
 
   ret = 0;
 
index 59919ae..d892c26 100644 (file)
@@ -214,7 +214,7 @@ Certificate  ::=  SEQUENCE  {
      signature            BIT STRING  }
 
 TBSCertificate  ::=  SEQUENCE  {
-     version         [0]  EXPLICIT Version DEFAULT v1,
+     version         [0]  EXPLICIT INTEGER DEFAULT 0,
      serialNumber         CertificateSerialNumber,
      signature            AlgorithmIdentifier,
      issuer               Name,
@@ -229,8 +229,6 @@ TBSCertificate  ::=  SEQUENCE  {
                           -- If present, version shall be v3 --  
 }
 
-Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
-
 CertificateSerialNumber  ::=  INTEGER
 
 Validity ::= SEQUENCE {
@@ -265,7 +263,7 @@ CertificateList  ::=  SEQUENCE  {
      signature            BIT STRING  }
 
 TBSCertList  ::=  SEQUENCE  {
-     version                 Version OPTIONAL,
+     version                 INTEGER OPTIONAL,
                                   -- if present, shall be v2
      signature               AlgorithmIdentifier,
      issuer                  Name,
@@ -356,16 +354,14 @@ pkcs-7-ContentInfo ::= SEQUENCE {
   content [0] EXPLICIT ANY DEFINED BY contentType }
 
 pkcs-7-DigestInfo ::= SEQUENCE {
-  digestAlgorithm pkcs-7-DigestAlgorithmIdentifier,
-  digest pkcs-7-Digest 
+  digestAlgorithm AlgorithmIdentifier,
+  digest OCTET STRING 
 }
 
-pkcs-7-Digest ::= OCTET STRING
-
 pkcs-7-ContentType ::= OBJECT IDENTIFIER
 
 pkcs-7-SignedData ::= SEQUENCE {
-  version pkcs-7-CMSVersion,
+  version INTEGER,
   digestAlgorithms pkcs-7-DigestAlgorithmIdentifiers,
   encapContentInfo pkcs-7-EncapsulatedContentInfo,
   certificates [0] IMPLICIT pkcs-7-CertificateSet OPTIONAL,
@@ -373,11 +369,7 @@ pkcs-7-SignedData ::= SEQUENCE {
   signerInfos pkcs-7-SignerInfos 
 }
 
-pkcs-7-CMSVersion ::= INTEGER  { v0(0), v1(1), v2(2), v3(3), v4(4) }
-
-pkcs-7-DigestAlgorithmIdentifiers ::= SET OF pkcs-7-DigestAlgorithmIdentifier
-
-pkcs-7-DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+pkcs-7-DigestAlgorithmIdentifiers ::= SET OF AlgorithmIdentifier
 
 pkcs-7-EncapsulatedContentInfo ::= SEQUENCE {
   eContentType pkcs-7-ContentType,
@@ -404,7 +396,7 @@ pkcs-7-SignerInfos ::= SET OF ANY -- this is not correct but we don't use it
 
 -- Certificate requests
 pkcs-10-CertificationRequestInfo ::= SEQUENCE {
-     version       INTEGER { v1(0) },
+     version       INTEGER,
      subject       Name,
      subjectPKInfo SubjectPublicKeyInfo,
      attributes    [0] Attributes
@@ -433,15 +425,11 @@ pkcs-9-localKeyId ::= OCTET STRING
 -- Private-key information syntax
 
 pkcs-8-PrivateKeyInfo ::= SEQUENCE {
-  version pkcs-8-Version,
+  version INTEGER,
   privateKeyAlgorithm AlgorithmIdentifier,
-  privateKey pkcs-8-PrivateKey,
+  privateKey OCTET STRING,
   attributes [0] Attributes OPTIONAL }
 
-pkcs-8-Version ::= INTEGER {v1(0)}
-
-pkcs-8-PrivateKey ::= OCTET STRING
-
 pkcs-8-Attributes ::= SET OF Attribute
 
 -- Encrypted private-key information syntax
@@ -510,17 +498,9 @@ pkcs-12-SafeContents ::= SEQUENCE OF pkcs-12-SafeBag
 pkcs-12-SafeBag ::= SEQUENCE {
   bagId          OBJECT IDENTIFIER,
   bagValue       [0] EXPLICIT ANY DEFINED BY badId,
-  bagAttributes  SET OF pkcs-12-PKCS12Attribute OPTIONAL
+  bagAttributes  SET OF Attribute OPTIONAL
 }
 
--- Bag types
-
-pkcs-12-KeyBag ::= pkcs-8-PrivateKeyInfo
-
--- Shrouded KeyBag
-
-pkcs-12-PKCS8ShroudedKeyBag ::= pkcs-8-EncryptedPrivateKeyInfo
-
 -- CertBag
 
 pkcs-12-CertBag ::= SEQUENCE {
@@ -544,26 +524,22 @@ pkcs-12-SecretBag ::= SEQUENCE {
 -- x509CRL BAG-TYPE ::= {OCTET STRING IDENTIFIED BY {pkcs-9-crlTypes 1}}
 -- DER-encoded X.509 CRL stored in OCTET STRING
 
-pkcs-12-PKCS12Attribute ::= Attribute
-
 -- PKCS #7 stuff (needed in PKCS 12)
 
 pkcs-7-Data ::= OCTET STRING
 
 pkcs-7-EncryptedData ::= SEQUENCE {
-    version pkcs-7-CMSVersion,
+    version INTEGER,
     encryptedContentInfo pkcs-7-EncryptedContentInfo,
     unprotectedAttrs [1] IMPLICIT pkcs-7-UnprotectedAttributes OPTIONAL }
 
 pkcs-7-EncryptedContentInfo ::= SEQUENCE {
     contentType pkcs-7-ContentType,
     contentEncryptionAlgorithm pkcs-7-ContentEncryptionAlgorithmIdentifier,
-    encryptedContent [0] IMPLICIT pkcs-7-EncryptedContent OPTIONAL }
+    encryptedContent [0] IMPLICIT OCTET STRING OPTIONAL }
 
 pkcs-7-ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
 
-pkcs-7-EncryptedContent ::= OCTET STRING
-
 pkcs-7-UnprotectedAttributes ::= SET SIZE (1..MAX) OF Attribute
 
 -- rfc3820
@@ -583,7 +559,7 @@ OCSPRequest     ::=     SEQUENCE {
     optionalSignature   [0]     EXPLICIT Signature OPTIONAL }
 
 TBSRequest      ::=     SEQUENCE {
-    version             [0] EXPLICIT Version DEFAULT v1,
+    version             [0] EXPLICIT INTEGER DEFAULT 0,
     requestorName       [1] EXPLICIT GeneralName OPTIONAL,
     requestList             SEQUENCE OF Request,
     requestExtensions   [2] EXPLICIT Extensions OPTIONAL }
@@ -593,9 +569,6 @@ Signature       ::=     SEQUENCE {
     signature            BIT STRING,
     certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
 
--- comment out, already used above, fortunately with same values and names
--- Version  ::=  INTEGER  {  v1(0) }
-
 Request ::=     SEQUENCE {
     reqCert                    CertID,
     singleRequestExtensions    [0] EXPLICIT Extensions OPTIONAL }
@@ -631,7 +604,7 @@ BasicOCSPResponse       ::= SEQUENCE {
    certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
 
 ResponseData ::= SEQUENCE {
-   version              [0] EXPLICIT Version DEFAULT v1,
+   version              [0] EXPLICIT INTEGER DEFAULT 0,
    responderID              ResponderID,
    producedAt               GeneralizedTime,
    responses                SEQUENCE OF SingleResponse,
index d5b820c..abd3b84 100644 (file)
@@ -159,8 +159,8 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"},
   { "signature", 6, NULL },
   { "TBSCertificate", 1610612741, NULL },
-  { "version", 1610653698, "Version"},
-  { NULL, 1073741833, "v1"},
+  { "version", 1610653699, NULL },
+  { NULL, 1073741833, "0"},
   { NULL, 2056, "0"},
   { "serialNumber", 1073741826, "CertificateSerialNumber"},
   { "signature", 1073741826, "AlgorithmIdentifier"},
@@ -174,10 +174,6 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { NULL, 4104, "2"},
   { "extensions", 536895490, "Extensions"},
   { NULL, 2056, "3"},
-  { "Version", 1610874883, NULL },
-  { "v1", 1073741825, "0"},
-  { "v2", 1073741825, "1"},
-  { "v3", 1, "2"},
   { "CertificateSerialNumber", 1073741827, NULL },
   { "Validity", 1610612741, NULL },
   { "notBefore", 1073741826, "Time"},
@@ -202,7 +198,7 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"},
   { "signature", 6, NULL },
   { "TBSCertList", 1610612741, NULL },
-  { "version", 1073758210, "Version"},
+  { "version", 1073758211, NULL },
   { "signature", 1073741826, "AlgorithmIdentifier"},
   { "issuer", 1073741826, "Name"},
   { "thisUpdate", 1073741826, "Time"},
@@ -256,12 +252,11 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { NULL, 1073743880, "0"},
   { "contentType", 1, NULL },
   { "pkcs-7-DigestInfo", 1610612741, NULL },
-  { "digestAlgorithm", 1073741826, "pkcs-7-DigestAlgorithmIdentifier"},
-  { "digest", 2, "pkcs-7-Digest"},
-  { "pkcs-7-Digest", 1073741831, NULL },
+  { "digestAlgorithm", 1073741826, "AlgorithmIdentifier"},
+  { "digest", 7, NULL },
   { "pkcs-7-ContentType", 1073741836, NULL },
   { "pkcs-7-SignedData", 1610612741, NULL },
-  { "version", 1073741826, "pkcs-7-CMSVersion"},
+  { "version", 1073741827, NULL },
   { "digestAlgorithms", 1073741826, "pkcs-7-DigestAlgorithmIdentifiers"},
   { "encapContentInfo", 1073741826, "pkcs-7-EncapsulatedContentInfo"},
   { "certificates", 1610637314, "pkcs-7-CertificateSet"},
@@ -269,15 +264,8 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { "crls", 1610637314, "pkcs-7-CertificateRevocationLists"},
   { NULL, 4104, "1"},
   { "signerInfos", 2, "pkcs-7-SignerInfos"},
-  { "pkcs-7-CMSVersion", 1610874883, NULL },
-  { "v0", 1073741825, "0"},
-  { "v1", 1073741825, "1"},
-  { "v2", 1073741825, "2"},
-  { "v3", 1073741825, "3"},
-  { "v4", 1, "4"},
   { "pkcs-7-DigestAlgorithmIdentifiers", 1610612751, NULL },
-  { NULL, 2, "pkcs-7-DigestAlgorithmIdentifier"},
-  { "pkcs-7-DigestAlgorithmIdentifier", 1073741826, "AlgorithmIdentifier"},
+  { NULL, 2, "AlgorithmIdentifier"},
   { "pkcs-7-EncapsulatedContentInfo", 1610612741, NULL },
   { "eContentType", 1073741826, "pkcs-7-ContentType"},
   { "eContent", 536895495, NULL },
@@ -291,8 +279,7 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { "pkcs-7-SignerInfos", 1610612751, NULL },
   { NULL, 13, NULL },
   { "pkcs-10-CertificationRequestInfo", 1610612741, NULL },
-  { "version", 1610874883, NULL },
-  { "v1", 1, "0"},
+  { "version", 1073741827, NULL },
   { "subject", 1073741826, "Name"},
   { "subjectPKInfo", 1073741826, "SubjectPublicKeyInfo"},
   { "attributes", 536879106, "Attributes"},
@@ -316,14 +303,11 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { "utf8String", 2, "UTF8String"},
   { "pkcs-9-localKeyId", 1073741831, NULL },
   { "pkcs-8-PrivateKeyInfo", 1610612741, NULL },
-  { "version", 1073741826, "pkcs-8-Version"},
+  { "version", 1073741827, NULL },
   { "privateKeyAlgorithm", 1073741826, "AlgorithmIdentifier"},
-  { "privateKey", 1073741826, "pkcs-8-PrivateKey"},
+  { "privateKey", 1073741831, NULL },
   { "attributes", 536895490, "Attributes"},
   { NULL, 4104, "0"},
-  { "pkcs-8-Version", 1610874883, NULL },
-  { "v1", 1, "0"},
-  { "pkcs-8-PrivateKey", 1073741831, NULL },
   { "pkcs-8-Attributes", 1610612751, NULL },
   { NULL, 2, "Attribute"},
   { "pkcs-8-EncryptedPrivateKeyInfo", 1610612741, NULL },
@@ -373,9 +357,7 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { NULL, 1073743880, "0"},
   { "badId", 1, NULL },
   { "bagAttributes", 536887311, NULL },
-  { NULL, 2, "pkcs-12-PKCS12Attribute"},
-  { "pkcs-12-KeyBag", 1073741826, "pkcs-8-PrivateKeyInfo"},
-  { "pkcs-12-PKCS8ShroudedKeyBag", 1073741826, "pkcs-8-EncryptedPrivateKeyInfo"},
+  { NULL, 2, "Attribute"},
   { "pkcs-12-CertBag", 1610612741, NULL },
   { "certId", 1073741836, NULL },
   { "certValue", 541073421, NULL },
@@ -391,20 +373,18 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { "secretValue", 541073421, NULL },
   { NULL, 1073743880, "0"},
   { "secretTypeId", 1, NULL },
-  { "pkcs-12-PKCS12Attribute", 1073741826, "Attribute"},
   { "pkcs-7-Data", 1073741831, NULL },
   { "pkcs-7-EncryptedData", 1610612741, NULL },
-  { "version", 1073741826, "pkcs-7-CMSVersion"},
+  { "version", 1073741827, NULL },
   { "encryptedContentInfo", 1073741826, "pkcs-7-EncryptedContentInfo"},
   { "unprotectedAttrs", 536895490, "pkcs-7-UnprotectedAttributes"},
   { NULL, 4104, "1"},
   { "pkcs-7-EncryptedContentInfo", 1610612741, NULL },
   { "contentType", 1073741826, "pkcs-7-ContentType"},
   { "contentEncryptionAlgorithm", 1073741826, "pkcs-7-ContentEncryptionAlgorithmIdentifier"},
-  { "encryptedContent", 536895490, "pkcs-7-EncryptedContent"},
+  { "encryptedContent", 536895495, NULL },
   { NULL, 4104, "0"},
   { "pkcs-7-ContentEncryptionAlgorithmIdentifier", 1073741826, "AlgorithmIdentifier"},
-  { "pkcs-7-EncryptedContent", 1073741831, NULL },
   { "pkcs-7-UnprotectedAttributes", 1612709903, NULL },
   { "MAX", 1074266122, "1"},
   { NULL, 2, "Attribute"},
@@ -420,8 +400,8 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { "optionalSignature", 536895490, "Signature"},
   { NULL, 2056, "0"},
   { "TBSRequest", 1610612741, NULL },
-  { "version", 1610653698, "Version"},
-  { NULL, 1073741833, "v1"},
+  { "version", 1610653699, NULL },
+  { NULL, 1073741833, "0"},
   { NULL, 2056, "0"},
   { "requestorName", 1610637314, "GeneralName"},
   { NULL, 2056, "1"},
@@ -466,8 +446,8 @@ const ASN1_ARRAY_TYPE pkix_asn1_tab[] = {
   { NULL, 1073743880, "0"},
   { NULL, 2, "Certificate"},
   { "ResponseData", 1610612741, NULL },
-  { "version", 1610653698, "Version"},
-  { NULL, 1073741833, "v1"},
+  { "version", 1610653699, NULL },
+  { NULL, 1073741833, "0"},
   { NULL, 2056, "0"},
   { "responderID", 1073741826, "ResponderID"},
   { "producedAt", 1082130449, NULL },
index 272bd29..781e7b5 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this program.  If not, see <http://www.gnu.org/licenses/>
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -71,14 +88,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -232,6 +252,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgnutls_x509_la_SOURCES)
 DIST_SOURCES = $(am__libgnutls_x509_la_SOURCES_DIST)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -552,6 +577,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -837,7 +863,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -911,6 +936,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1046,8 +1072,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1066,7 +1092,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1297,6 +1322,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 052eb7c..c0e29bc 100644 (file)
@@ -56,7 +56,7 @@ static const struct oid2string _oid2str[] = {
 
   {"2.5.4.6", "C", 0, 1, "PKIX1.PrintableString"},
   {"2.5.4.9", "STREET", 1, 1, "PKIX1.DirectoryString"},
-  {"2.5.4.12", "T", 1, 1, "PKIX1.DirectoryString"},
+  {"2.5.4.12", "title", 1, 1, "PKIX1.DirectoryString"},
   {"2.5.4.10", "O", 1, 1, "PKIX1.DirectoryString"},
   {"2.5.4.11", "OU", 1, 1, "PKIX1.DirectoryString"},
   {"2.5.4.3", "CN", 1, 1, "PKIX1.DirectoryString"},
index baef1ee..c9d3058 100644 (file)
@@ -229,9 +229,6 @@ _gnutls_x509_write_sig_params (ASN1_TYPE dst, const char *dst_name,
   return 0;
 }
 
-
-
-
 /* this function reads a (small) unsigned integer
  * from asn1 structs. Combines the read and the convertion
  * steps.
index 0857e33..d3849e8 100644 (file)
@@ -1275,9 +1275,108 @@ gnutls_ocsp_resp_get_produced (gnutls_ocsp_resp_t resp)
 }
 
 /**
+ * gnutls_ocsp_resp_check_crt:
+ * @resp: should contain a #gnutls_ocsp_resp_t structure
+ * @indx: Specifies response number to get. Use (0) to get the first one.
+ * @crt: The certificate to check
+ *
+ * This function will check whether the OCSP response
+ * is about the provided certificate.
+ *
+ * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
+ *   negative error code is returned.  
+ **/
+int
+gnutls_ocsp_resp_check_crt (gnutls_ocsp_resp_t resp,
+                            unsigned int indx,
+                           gnutls_x509_crt_t crt)
+{
+int ret;
+gnutls_digest_algorithm_t digest;
+gnutls_datum_t rdn_hash = {NULL, 0}, rserial = {NULL, 0};
+gnutls_datum_t cserial = {NULL, 0};
+gnutls_datum_t dn = {NULL, 0};
+uint8_t cdn_hash[MAX_HASH_SIZE];
+size_t t, hash_len;
+
+  ret = gnutls_ocsp_resp_get_single (resp, indx, &digest, &rdn_hash, NULL,
+                                     &rserial, NULL, NULL, NULL, NULL, NULL);
+  if (ret < 0)
+    return gnutls_assert_val(ret);
+    
+  if (rserial.size == 0 || digest == GNUTLS_DIG_UNKNOWN)
+    {
+      ret = gnutls_assert_val(GNUTLS_E_OCSP_RESPONSE_ERROR);
+      goto cleanup;
+    }
+  
+  hash_len = _gnutls_hash_get_algo_len(digest);
+  if (hash_len != rdn_hash.size)
+    {
+      ret = gnutls_assert_val(GNUTLS_E_OCSP_RESPONSE_ERROR);
+      goto cleanup;
+    }
+
+  cserial.size = rserial.size;
+  cserial.data = gnutls_malloc(cserial.size);
+  if (cserial.data == NULL)
+    {
+      ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
+      goto cleanup;
+    }
+  
+  t = cserial.size;
+  ret = gnutls_x509_crt_get_serial(crt, cserial.data, &t);
+  if (ret < 0)
+    {
+      gnutls_assert();
+      goto cleanup;
+    }
+
+  if (rserial.size != cserial.size || memcmp(cserial.data, rserial.data, rserial.size) != 0)
+    {
+      ret = GNUTLS_E_OCSP_RESPONSE_ERROR;
+      gnutls_assert();
+      goto cleanup;
+    }
+  
+  ret = gnutls_x509_crt_get_raw_issuer_dn(crt, &dn);
+  if (ret < 0)
+    {
+      gnutls_assert();
+      goto cleanup;
+    }
+    
+  ret = _gnutls_hash_fast( digest, dn.data, dn.size, cdn_hash);
+  if (ret < 0)
+    {
+      gnutls_assert();
+      goto cleanup;
+    }
+
+  if (memcmp(cdn_hash, rdn_hash.data, hash_len) != 0)
+    {
+      ret = GNUTLS_E_OCSP_RESPONSE_ERROR;
+      gnutls_assert();
+      goto cleanup;
+    }
+
+  ret = 0;
+  
+cleanup:
+  gnutls_free(rdn_hash.data);
+  gnutls_free(rserial.data);
+  gnutls_free(cserial.data);
+  gnutls_free(dn.data);
+
+  return ret;
+}
+
+
+/**
  * gnutls_ocsp_resp_get_single:
  * @resp: should contain a #gnutls_ocsp_resp_t structure
- * @indx: Specifies which extension OID to get. Use (0) to get the first one.
+ * @indx: Specifies response number to get. Use (0) to get the first one.
  * @digest: output variable with #gnutls_digest_algorithm_t hash algorithm
  * @issuer_name_hash: output buffer with hash of issuer's DN
  * @issuer_key_hash: output buffer with hash of issuer's public key
index 737b227..e451085 100644 (file)
@@ -571,8 +571,13 @@ print_resp (gnutls_buffer_st * str, gnutls_ocsp_resp_t resp,
                  {
                    ret = gnutls_x509_crt_export (certs[i], GNUTLS_X509_FMT_PEM,
                                                  out.data, &s);
-                   out.size = s;
-                   addf (str, "%.*s", out.size, out.data);
+                   if (ret < 0)
+                     addf (str, "error: crt_export: %s\n", gnutls_strerror (ret));
+                    else
+                      {
+                       out.size = s;
+                       addf (str, "%.*s", out.size, out.data);
+                      }
                    gnutls_free (out.data);
                  }
              }
index 68b5286..34aaf11 100644 (file)
@@ -43,6 +43,8 @@ _pkcs12_check_pass (const char *pass, size_t plen)
   return 0;
 }
 
+#define MAX_PASS_LEN 128
+
 /* ID should be:
  * 3 for MAC
  * 2 for IV
@@ -60,9 +62,10 @@ _gnutls_pkcs12_string_to_key (unsigned int id, const uint8_t * salt,
   bigint_t num_b1 = NULL, num_ij = NULL;
   bigint_t mpi512 = NULL;
   unsigned int pwlen;
-  uint8_t hash[20], buf_b[64], buf_i[128], *p;
+  uint8_t hash[20], buf_b[64], buf_i[MAX_PASS_LEN*2+64], *p;
+  uint8_t d[64];
   size_t cur_keylen;
-  size_t n, m;
+  size_t n, m, p_size, i_size;
   const uint8_t buf_512[] =      /* 2^64 */
   { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -79,7 +82,7 @@ _gnutls_pkcs12_string_to_key (unsigned int id, const uint8_t * salt,
   else
     pwlen = strlen (pw);
 
-  if (pwlen > 63 / 2)
+  if (pwlen > MAX_PASS_LEN)
     {
       gnutls_assert ();
       return GNUTLS_E_INVALID_REQUEST;
@@ -99,12 +102,17 @@ _gnutls_pkcs12_string_to_key (unsigned int id, const uint8_t * salt,
     }
 
   /* Store salt and password in BUF_I */
+  p_size = ((pwlen/64)*64) + 64;
+  
+  if (p_size > sizeof(buf_i)-64)
+    return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+  
   p = buf_i;
   for (i = 0; i < 64; i++)
     *p++ = salt[i % salt_size];
   if (pw)
     {
-      for (i = j = 0; i < 64; i += 2)
+      for (i = j = 0; i < p_size; i += 2)
         {
           *p++ = 0;
           *p++ = pw[j];
@@ -113,7 +121,9 @@ _gnutls_pkcs12_string_to_key (unsigned int id, const uint8_t * salt,
         }
     }
   else
-    memset (p, 0, 64);
+    memset (p, 0, p_size);
+
+  i_size = 64+p_size;
 
   for (;;)
     {
@@ -123,12 +133,9 @@ _gnutls_pkcs12_string_to_key (unsigned int id, const uint8_t * salt,
           gnutls_assert ();
           goto cleanup;
         }
-      for (i = 0; i < 64; i++)
-        {
-          unsigned char lid = id & 0xFF;
-          _gnutls_hash (&md, &lid, 1);
-        }
-      _gnutls_hash (&md, buf_i, pw ? 128 : 64);
+      memset(d, id & 0xff, 64);
+      _gnutls_hash (&md, d, 64);
+      _gnutls_hash (&md, buf_i, pw ? i_size : 64);
       _gnutls_hash_deinit (&md, hash);
       for (i = 1; i < iter; i++)
         {
index c2f2563..b6c7b9a 100644 (file)
@@ -1591,7 +1591,7 @@ gnutls_x509_privkey_sign_data (gnutls_x509_privkey_t key,
     }
 
   result =
-    _gnutls_x509_privkey_sign_hash2 (key, digest, flags, &hash, signature);
+    _gnutls_x509_privkey_sign_hash2 (key, digest, flags, &hash, &sig);
 
   _gnutls_free_datum(&hash);
 
index 825ba83..2e3417f 100644 (file)
@@ -1228,7 +1228,7 @@ gnutls_x509_privkey_import_pkcs8 (gnutls_x509_privkey_t key,
       need_free = 1;
     }
 
-  if (password == NULL || (flags & GNUTLS_PKCS_PLAIN))
+  if (flags & GNUTLS_PKCS_PLAIN)
     {
       result = decode_private_key_info (&_data, key);
     }
@@ -1593,6 +1593,10 @@ decrypt_data (schema_id schema, ASN1_TYPE pkcs8_asn,
   cipher_hd_st ch;
   int ch_init = 0;
   int key_size;
+  unsigned int pass_len = 0;
+  
+  if (password)
+    pass_len = strlen(password);
 
   data_size = 0;
   result = asn1_read_value (pkcs8_asn, root, NULL, &data_size);
@@ -1641,7 +1645,7 @@ decrypt_data (schema_id schema, ASN1_TYPE pkcs8_asn,
     case PBES2_AES_192:
     case PBES2_AES_256:
 
-      result = _gnutls_pbkdf2_sha1 (password, strlen (password),
+      result = _gnutls_pbkdf2_sha1 (password, pass_len,
                                     kdf_params->salt, kdf_params->salt_size,
                                     kdf_params->iter_count, key, key_size);
 
@@ -1896,8 +1900,12 @@ generate_key (schema_id schema,
               struct pbe_enc_params *enc_params, gnutls_datum_t * key)
 {
   unsigned char rnd[2];
+  unsigned int pass_len = 0;
   int ret;
 
+  if (password)
+    pass_len = strlen(password);
+
   ret = _gnutls_rnd (GNUTLS_RND_RANDOM, rnd, 2);
   if (ret < 0)
     {
@@ -1971,7 +1979,7 @@ generate_key (schema_id schema,
     case PBES2_AES_192:
     case PBES2_AES_256:
 
-      ret = _gnutls_pbkdf2_sha1 (password, strlen (password),
+      ret = _gnutls_pbkdf2_sha1 (password, pass_len,
                                  kdf_params->salt, kdf_params->salt_size,
                                  kdf_params->iter_count,
                                  key->data, kdf_params->key_size);
index b9572b2..277ebd8 100644 (file)
@@ -35,7 +35,7 @@
 
 struct named_cert_st {
   gnutls_x509_crt_t cert;
-  uint8_t name[MAX_NAME_SIZE];
+  uint8_t name[MAX_SERVER_NAME_SIZE];
   unsigned int name_size;
 };
 
@@ -58,7 +58,7 @@ struct gnutls_x509_trust_list_st {
 };
 
 #define INIT_HASH 0x33a1
-#define DEFAULT_SIZE 503
+#define DEFAULT_SIZE 127
 
 /**
  * gnutls_x509_trust_list_init:
@@ -188,6 +188,45 @@ gnutls_x509_trust_list_add_cas(gnutls_x509_trust_list_t list,
     return i;
 }
 
+int
+_gnutls_x509_trust_list_remove_cas(gnutls_x509_trust_list_t list,
+                               const gnutls_x509_crt_t * clist,
+                               int clist_size)
+{
+    int i, r = 0, ret;
+    unsigned j;
+    uint32_t hash;
+    gnutls_datum_t dn;
+
+    for (i = 0; i < clist_size; i++) 
+      {
+        ret = gnutls_x509_crt_get_raw_dn(clist[i], &dn);
+        if (ret < 0) {
+            gnutls_assert();
+            return i;
+        }
+
+        hash = _gnutls_bhash(dn.data, dn.size, INIT_HASH);
+        hash %= list->size;
+
+        _gnutls_free_datum(&dn);
+
+        for (j=0;j<list->node[hash].trusted_ca_size;j++) 
+          {
+           if (check_if_same_cert(clist[i], list->node[hash].trusted_cas[j]) == 0)
+             {
+               gnutls_x509_crt_deinit(list->node[hash].trusted_cas[j]);
+                list->node[hash].trusted_cas[j] = 
+                       list->node[hash].trusted_cas[list->node[hash].trusted_ca_size-1];
+               list->node[hash].trusted_ca_size--;
+               r++;
+              }
+          }
+      }
+
+    return r;
+}
+
 /**
  * gnutls_x509_trust_list_add_named_crt:
  * @list: The structure of the list
@@ -223,7 +262,7 @@ gnutls_x509_trust_list_add_named_crt(gnutls_x509_trust_list_t list,
     int ret;
     uint32_t hash;
 
-    if (name_size >= MAX_NAME_SIZE)
+    if (name_size >= MAX_SERVER_NAME_SIZE)
         return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
 
     ret = gnutls_x509_crt_get_raw_issuer_dn(cert, &dn);
@@ -350,6 +389,18 @@ static int shorten_clist(gnutls_x509_trust_list_t list,
     uint32_t hash;
     gnutls_datum_t dn;
 
+    /* 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=1;i<clist_size;i++) {
+        if (!gnutls_x509_crt_check_issuer(certificate_list[i-1],
+                                          certificate_list[i])) {
+            gnutls_assert();
+            clist_size = i;
+        }
+    }
+
     if (clist_size > 1) {
         /* Check if the last certificate in the path is self signed.
          * In that case ignore it (a certificate is trusted only if it
@@ -399,6 +450,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
@@ -477,10 +593,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);
index 67d96c5..d7204ad 100644 (file)
@@ -22,3 +22,7 @@
 
 int _gnutls_trustlist_inlist (gnutls_x509_trust_list_t list,
                              gnutls_x509_crt_t cert);
+int
+_gnutls_x509_trust_list_remove_cas(gnutls_x509_trust_list_t list,
+                               const gnutls_x509_crt_t * clist,
+                               int clist_size);
index bcca386..f336633 100644 (file)
@@ -943,7 +943,8 @@ gnutls_x509_crl_check_issuer (gnutls_x509_crl_t crl,
  *
  * This function will try to verify the given crl and return its status.
  * See gnutls_x509_crt_list_verify() for a detailed description of
- * return values.
+ * return values. Note that since GnuTLS 3.1.4 this function includes
+ * the time checks.
  *
  * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
  *   negative error value.
@@ -1039,6 +1040,7 @@ _gnutls_verify_crl2 (gnutls_x509_crl_t crl,
   gnutls_datum_t crl_signature = { NULL, 0 };
   gnutls_x509_crt_t issuer;
   int result, hash_algo;
+  time_t now = gnutls_time(0);
 
   if (output)
     *output = 0;
@@ -1127,12 +1129,21 @@ _gnutls_verify_crl2 (gnutls_x509_crl_t crl,
          !(flags & GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5)))
       {
         if (output)
-          *output |= GNUTLS_CERT_INSECURE_ALGORITHM | GNUTLS_CERT_INVALID;
+          *output |= GNUTLS_CERT_INSECURE_ALGORITHM;
         result = 0;
       }
   }
+  
+  if (gnutls_x509_crl_get_this_update (crl) > now)
+    *output |= GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE;
+    
+  if (gnutls_x509_crl_get_next_update (crl) < now)
+    *output |= GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED;
+
 
 cleanup:
+  if (*output) *output |= GNUTLS_CERT_INVALID;
+
   _gnutls_free_datum (&crl_signed_data);
   _gnutls_free_datum (&crl_signature);
 
index 4b533eb..61c8598 100644 (file)
@@ -206,7 +206,7 @@ gnutls_x509_crt_import (gnutls_x509_crt_t cert,
       need_free = 1;
     }
 
-  if (cert->cert)
+  if (cert->expanded)
     {
       /* Any earlier asn1_der_decoding will modify the ASN.1
          structure, so we need to replace it with a fresh
@@ -230,6 +230,8 @@ gnutls_x509_crt_import (gnutls_x509_crt_t cert,
       gnutls_assert ();
       goto cleanup;
     }
+  
+  cert->expanded = 1;
 
   /* Since we do not want to disable any extension
    */
@@ -2160,10 +2162,12 @@ gnutls_x509_dn_get_rdn_ava (gnutls_x509_dn_t dn,
                             int irdn, int iava, gnutls_x509_ava_st * ava)
 {
   ASN1_TYPE rdn, elem;
+  ASN1_DATA_NODE vnode;
   long len;
   int lenlen, remlen, ret;
   char rbuf[ASN1_MAX_NAME_SIZE];
-  unsigned char cls, *ptr;
+  unsigned char cls;
+  const unsigned char *ptr;
 
   iava++;
   irdn++;                       /* 0->1, 1->2 etc */
@@ -2184,8 +2188,15 @@ gnutls_x509_dn_get_rdn_ava (gnutls_x509_dn_t dn,
       return GNUTLS_E_ASN1_ELEMENT_NOT_FOUND;
     }
 
-  ava->oid.data = elem->value;
-  ava->oid.size = elem->value_len;
+  ret = asn1_read_node_value(elem, &vnode);
+  if (ret != ASN1_SUCCESS)
+    {
+      gnutls_assert ();
+      return GNUTLS_E_ASN1_ELEMENT_NOT_FOUND;
+    }
+
+  ava->oid.data = (void*)vnode.value;
+  ava->oid.size = vnode.value_len;
 
   snprintf (rbuf, sizeof (rbuf), "?%d.value", iava);
   elem = asn1_find_node (rdn, rbuf);
@@ -2195,12 +2206,18 @@ gnutls_x509_dn_get_rdn_ava (gnutls_x509_dn_t dn,
       return GNUTLS_E_ASN1_ELEMENT_NOT_FOUND;
     }
 
+  ret = asn1_read_node_value(elem, &vnode);
+  if (ret != ASN1_SUCCESS)
+    {
+      gnutls_assert ();
+      return GNUTLS_E_ASN1_ELEMENT_NOT_FOUND;
+    }
   /* The value still has the previous tag's length bytes, plus the
    * current value's tag and length bytes. Decode them.
    */
 
-  ptr = elem->value;
-  remlen = elem->value_len;
+  ptr = vnode.value;
+  remlen = vnode.value_len;
   len = asn1_get_length_der (ptr, remlen, &lenlen);
   if (len < 0)
     {
@@ -2231,7 +2248,7 @@ gnutls_x509_dn_get_rdn_ava (gnutls_x509_dn_t dn,
       }
     ava->value.size = tmp;
   }
-  ava->value.data = ptr + lenlen;
+  ava->value.data = (void*)(ptr + lenlen);
 
   return 0;
 }
index 3cc18e4..95aa3a3 100644 (file)
 
 #include <libtasn1.h>
 
-/* Remove these when we require libtasn1 v1.6 or later. */
-#ifndef ASN1_MAX_NAME_SIZE
-#define ASN1_MAX_NAME_SIZE MAX_NAME_SIZE
-#endif
-#ifndef ASN1_MAX_ERROR_DESCRIPTION_SIZE
-#define ASN1_MAX_ERROR_DESCRIPTION_SIZE MAX_ERROR_DESCRIPTION_SIZE
-#endif
-
 #define MAX_CRQ_EXTENSIONS_SIZE 8*1024
 #define MAX_OID_SIZE 128
 
@@ -58,6 +50,7 @@ typedef struct gnutls_x509_crt_int
 {
   ASN1_TYPE cert;
   int use_extensions;
+  int expanded; /* a certificate has been expanded */
 } gnutls_x509_crt_int;
 
 typedef struct gnutls_x509_crq_int
index 767f35b..bcbb0cf 100644 (file)
@@ -39,9 +39,9 @@ AC_DEFUN([LIBGNUTLS_HOOKS],
   # Interfaces changed/added/removed:   CURRENT++       REVISION=0
   # Interfaces added:                             AGE++
   # Interfaces removed:                           AGE=0
-  AC_SUBST(LT_CURRENT, 38)
-  AC_SUBST(LT_REVISION, 0)
-  AC_SUBST(LT_AGE, 10)
+  AC_SUBST(LT_CURRENT, 39)
+  AC_SUBST(LT_REVISION, 5)
+  AC_SUBST(LT_AGE, 11)
 
   AC_SUBST(LT_SSL_CURRENT, 27)
   AC_SUBST(LT_SSL_REVISION, 2)
@@ -99,10 +99,8 @@ fi
       included_libtasn1=$withval,
       included_libtasn1=no)
   if test "$included_libtasn1" = "no"; then
-    AC_LIB_HAVE_LINKFLAGS(tasn1,, [#include <libtasn1.h>],
-                          [asn1_check_version (NULL)])
-    if test "$ac_cv_libtasn1" != yes; then
-      included_libtasn1=yes
+    PKG_CHECK_MODULES(LIBTASN1, [libtasn1 >= 2.14], [], [included_libtasn1=yes])
+    if test "$included_libtasn1" = yes; then
       AC_MSG_WARN([[
   *** 
   *** Libtasn1 was not found. Will use the included one.
index 828104c..02b4bbe 100644 (file)
@@ -1324,7 +1324,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
            LD="${LD-ld} -m elf_i386_fbsd"
            ;;
          x86_64-*linux*)
-           LD="${LD-ld} -m elf_i386"
+           case `/usr/bin/file conftest.o` in
+             *x86-64*)
+               LD="${LD-ld} -m elf32_x86_64"
+               ;;
+             *)
+               LD="${LD-ld} -m elf_i386"
+               ;;
+           esac
            ;;
          ppc64-*linux*|powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
@@ -1688,7 +1695,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
@@ -2512,17 +2520,6 @@ freebsd* | dragonfly*)
   esac
   ;;
 
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
@@ -2639,7 +2636,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
@@ -3255,10 +3252,6 @@ freebsd* | dragonfly*)
   fi
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3297,7 +3290,7 @@ irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -4049,7 +4042,7 @@ m4_if([$1], [CXX], [
            ;;
        esac
        ;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
        case $cc_basename in
          KCC*)
            # KAI C++ Compiler
@@ -4348,7 +4341,7 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -6241,9 +6234,6 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(ld_shlibs, $1)=yes
         ;;
 
-      gnu*)
-        ;;
-
       haiku*)
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -6405,7 +6395,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
         case $cc_basename in
           KCC*)
            # Kuck and Associates, Inc. (KAI) C++ Compiler
index 11cb6a6..c1b786f 100644 (file)
--- a/maint.mk
+++ b/maint.mk
@@ -2,7 +2,7 @@
 # This Makefile fragment tries to be general-purpose enough to be
 # used by many projects via the gnulib maintainer-makefile module.
 
-## Copyright (C) 2001-2012 Free Software Foundation, Inc.
+## Copyright (C) 2001-2013 Free Software Foundation, Inc.
 ##
 ## This program is free software: you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -28,6 +28,28 @@ ifneq ($(build_aux),)
 set $$(_build-aux) relative to $$(srcdir) instead of $$(build_aux)")
 endif
 
+# Helper variables.
+_empty =
+_sp = $(_empty) $(_empty)
+
+# _equal,S1,S2
+# ------------
+# If S1 == S2, return S1, otherwise the empty string.
+_equal = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1)))
+
+# member-check,VARIABLE,VALID-VALUES
+# ----------------------------------
+# Check that $(VARIABLE) is in the space-separated list of VALID-VALUES, and
+# return it.  Die otherwise.
+member-check =                                                         \
+  $(strip                                                              \
+    $(if $($(1)),                                                      \
+      $(if $(findstring $(_sp),$($(1))),                               \
+          $(error invalid $(1): '$($(1))', expected $(2)),             \
+          $(or $(findstring $(_sp)$($(1))$(_sp),$(_sp)$(2)$(_sp)),     \
+            $(error invalid $(1): '$($(1))', expected $(2)))),         \
+      $(error $(1) undefined)))
+
 # Do not save the original name or timestamp in the .tar.gz file.
 # Use --rsyncable if available.
 gzip_rsyncable := \
@@ -52,16 +74,16 @@ _dot_escaped_srcdir = $(subst .,\.,$(srcdir))
 # Post-process $(VC_LIST) output, prepending $(srcdir)/, but only
 # when $(srcdir) is not ".".
 ifeq ($(srcdir),.)
-_prepend_srcdir_prefix =
+  _prepend_srcdir_prefix =
 else
-_prepend_srcdir_prefix = | sed 's|^|$(srcdir)/|'
+  _prepend_srcdir_prefix = | sed 's|^|$(srcdir)/|'
 endif
 
 # In order to be able to consistently filter "."-relative names,
 # (i.e., with no $(srcdir) prefix), this definition is careful to
 # remove any $(srcdir) prefix, and to restore what it removes.
 _sc_excl = \
-  $(if $(exclude_file_name_regexp--$@),$(exclude_file_name_regexp--$@),^$$)
+  $(or $(exclude_file_name_regexp--$@),^$$)
 VC_LIST_EXCEPT = \
   $(VC_LIST) | sed 's|^$(_dot_escaped_srcdir)/||' \
        | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \
@@ -78,32 +100,41 @@ VERSION_REGEXP = $(subst .,\.,$(VERSION))
 PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION))
 
 ifeq ($(VC),$(GIT))
-this-vc-tag = v$(VERSION)
-this-vc-tag-regexp = v$(VERSION_REGEXP)
+  this-vc-tag = v$(VERSION)
+  this-vc-tag-regexp = v$(VERSION_REGEXP)
 else
-tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]')
-tag-this-version = $(subst .,_,$(VERSION))
-this-vc-tag = $(tag-package)-$(tag-this-version)
-this-vc-tag-regexp = $(this-vc-tag)
+  tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]')
+  tag-this-version = $(subst .,_,$(VERSION))
+  this-vc-tag = $(tag-package)-$(tag-this-version)
+  this-vc-tag-regexp = $(this-vc-tag)
 endif
 my_distdir = $(PACKAGE)-$(VERSION)
 
 # Old releases are stored here.
 release_archive_dir ?= ../release
 
+# If RELEASE_TYPE is undefined, but RELEASE is, use its second word.
+# But overwrite VERSION.
+ifdef RELEASE
+  VERSION := $(word 1, $(RELEASE))
+  RELEASE_TYPE ?= $(word 2, $(RELEASE))
+endif
+
+# Validate and return $(RELEASE_TYPE), or die.
+RELEASE_TYPES = alpha beta stable
+release-type = $(call member-check,RELEASE_TYPE,$(RELEASE_TYPES))
+
 # Override gnu_rel_host and url_dir_list in cfg.mk if these are not right.
 # Use alpha.gnu.org for alpha and beta releases.
 # Use ftp.gnu.org for stable releases.
 gnu_ftp_host-alpha = alpha.gnu.org
 gnu_ftp_host-beta = alpha.gnu.org
 gnu_ftp_host-stable = ftp.gnu.org
-gnu_rel_host ?= $(gnu_ftp_host-$(RELEASE_TYPE))
+gnu_rel_host ?= $(gnu_ftp_host-$(release-type))
 
-ifeq ($(gnu_rel_host),ftp.gnu.org)
-url_dir_list ?= http://ftpmirror.gnu.org/$(PACKAGE)
-else
-url_dir_list ?= ftp://$(gnu_rel_host)/gnu/$(PACKAGE)
-endif
+url_dir_list ?= $(if $(call _equal,$(gnu_rel_host),ftp.gnu.org),       \
+                     http://ftpmirror.gnu.org/$(PACKAGE),              \
+                     ftp://$(gnu_rel_host)/gnu/$(PACKAGE))
 
 # Override this in cfg.mk if you are using a different format in your
 # NEWS file.
@@ -124,7 +155,7 @@ export LC_ALL = C
 ## Sanity checks.  ##
 ## --------------- ##
 
-_cfg_mk := $(shell test -f $(srcdir)/cfg.mk && echo '$(srcdir)/cfg.mk')
+_cfg_mk := $(wildcard $(srcdir)/cfg.mk)
 
 # Collect the names of rules starting with 'sc_'.
 syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
@@ -132,9 +163,9 @@ syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
 .PHONY: $(syntax-check-rules)
 
 ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0)
-local-checks-available += $(syntax-check-rules)
+  local-checks-available += $(syntax-check-rules)
 else
-local-checks-available += no-vc-detected
+  local-checks-available += no-vc-detected
 no-vc-detected:
        @echo "No version control files detected; skipping syntax check"
 endif
@@ -187,9 +218,11 @@ syntax-check: $(local-check)
 #
 #  in_vc_files | in_files
 #
-#     grep-E-style regexp denoting the files to check.  If no files
-#     are specified the default are all the files that are under
-#     version control.
+#     grep-E-style regexp selecting the files to check.  For in_vc_files,
+#     the regexp is used to select matching files from the list of all
+#     version-controlled files; for in_files, it's from the names printed
+#     by "find $(srcdir)".  When neither is specified, use all files that
+#     are under version control.
 #
 #  containing | non_containing
 #
@@ -261,7 +294,7 @@ define _sc_search_regexp
    : Filter by file name;                                              \
    if test -n "$$in_files"; then                                       \
      files=$$(find $(srcdir) | grep -E "$$in_files"                    \
-              | grep -Ev '$(exclude_file_name_regexp--$@)');           \
+              | grep -Ev '$(_sc_excl)');                               \
    else                                                                        \
      files=$$($(VC_LIST_EXCEPT));                                      \
      if test -n "$$in_vc_files"; then                                  \
@@ -328,8 +361,8 @@ sc_prohibit_atoi_atof:
 sp_ = strcmp *\(.+\)
 sc_prohibit_strcmp:
        @prohibit='! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)'         \
-       exclude=':# *define STRN?EQ\('                                  \
-       halt='$(ME): replace strcmp calls above with STREQ/STRNEQ'      \
+       exclude='# *define STRN?EQ\('                                   \
+       halt='replace strcmp calls above with STREQ/STRNEQ'             \
          $(_sc_search_regexp)
 
 # Really.  You don't want to use this function.
@@ -351,8 +384,9 @@ sc_prohibit_strncpy:
 #  | xargs --no-run-if-empty \
 #      perl -pi -e 's/(^|[^.])\b(exit ?)\(0\)/$1$2(EXIT_SUCCESS)/'
 sc_prohibit_magic_number_exit:
-       @prohibit='(^|[^.])\<(usage|exit) ?\([0-9]|\<error ?\([1-9][0-9]*,'     \
-       halt='use EXIT_* values rather than magic number'                       \
+       @prohibit='(^|[^.])\<(usage|exit|error) ?\(-?[0-9]+[,)]'        \
+       exclude='exit \(77\)|error ?\(((0|77),|[^,]*)'                  \
+       halt='use EXIT_* values rather than magic number'               \
          $(_sc_search_regexp)
 
 # Using EXIT_SUCCESS as the first argument to error is misleading,
@@ -567,8 +601,6 @@ sc_prohibit_c_ctype_without_use:
        @h='c-ctype.h' re='\<c_($(ctype_re)) *\(' \
          $(_sc_header_without_use)
 
-_empty =
-_sp = $(_empty) $(_empty)
 # The following list was generated by running:
 # man signal.h|col -b|perl -ne '/bsd_signal.*;/.../sigwaitinfo.*;/ and print' \
 #   | perl -lne '/^\s+(?:int|void).*?(\w+).*/ and print $1' | fmt
@@ -721,6 +753,7 @@ sc_require_test_exit_idiom:
 sc_trailing_blank:
        @prohibit='[     ]$$'                                           \
        halt='found trailing blank(s)'                                  \
+       exclude='^Binary file .* matches$$'                             \
          $(_sc_search_regexp)
 
 # Match lines like the following, but where there is only one space
@@ -741,7 +774,7 @@ _gl_translatable_diag_func_re ?= error
 sc_unmarked_diagnostics:
        @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
        exclude='(_|ngettext ?)\('                                      \
-       halt='$(ME): found unmarked diagnostic(s)'                      \
+       halt='found unmarked diagnostic(s)'                             \
          $(_sc_search_regexp)
 
 # Avoid useless parentheses like those in this example:
@@ -775,6 +808,11 @@ sc_prohibit_always_true_header_tests:
        '  with the corresponding gnulib module, they are always true') \
          $(_sc_search_regexp)
 
+sc_prohibit_defined_have_decl_tests:
+       @prohibit='(#[   ]*ifn?def|\<defined)\>[         (]+HAVE_DECL_' \
+       halt='HAVE_DECL macros are always defined'                      \
+         $(_sc_search_regexp)
+
 # ==================================================================
 gl_other_headers_ ?= \
   intprops.h   \
@@ -1012,7 +1050,7 @@ sc_redundant_const:
 sc_const_long_option:
        @prohibit='^ *static.*struct option '                           \
        exclude='const struct option|struct option const'               \
-       halt='$(ME): add "const" to the above declarations'             \
+       halt='add "const" to the above declarations'                    \
          $(_sc_search_regexp)
 
 NEWS_hash =                                                            \
@@ -1059,7 +1097,7 @@ sc_makefile_at_at_check:
          && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
 
 news-check: NEWS
-       if sed -n $(news-check-lines-spec)p $(srcdir)/NEWS              \
+       $(AM_V_GEN)if sed -n $(news-check-lines-spec)p $<               \
            | grep -E $(news-check-regexp) >/dev/null; then             \
          :;                                                            \
        else                                                            \
@@ -1083,9 +1121,11 @@ fix_po_file_diag = \
 'you have changed the set of files with translatable diagnostics;\n\
 apply the above patch\n'
 
-# Verify that all source files using _() are listed in po/POTFILES.in.
+# Verify that all source files using _() (more specifically, files that
+# match $(_gl_translatable_string_re)) are listed in po/POTFILES.in.
 po_file ?= $(srcdir)/po/POTFILES.in
 generated_files ?= $(srcdir)/lib/*.[ch]
+_gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$)
 sc_po_check:
        @if test -f $(po_file); then                                    \
          grep -E -v '^(#|$$)' $(po_file)                               \
@@ -1105,7 +1145,7 @@ sc_po_check:
            esac;                                                       \
            files="$$files $$file";                                     \
          done;                                                         \
-         grep -E -l '\b(N?_|gettext *)\([^)"]*("|$$)' $$files          \
+         grep -E -l '$(_gl_translatable_string_re)' $$files            \
            | sed 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2;      \
          diff -u -L $(po_file) -L $(po_file) $@-1 $@-2                 \
            || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; };   \
@@ -1115,7 +1155,7 @@ sc_po_check:
 # Sometimes it is useful to change the PATH environment variable
 # in Makefiles.  When doing so, it's better not to use the Unix-centric
 # path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'.
-msg = '$(ME): Do not use ":" above; use $$(PATH_SEPARATOR) instead'
+msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead'
 sc_makefile_path_separator_check:
        @prohibit='PATH[=].*:'                                          \
        in_vc_files='akefile|\.mk$$'                                    \
@@ -1126,7 +1166,7 @@ sc_makefile_path_separator_check:
 # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release)
 # and is read-only.
 writable-files:
-       if test -d $(release_archive_dir); then                         \
+       $(AM_V_GEN)if test -d $(release_archive_dir); then              \
          for file in $(DIST_ARCHIVES); do                              \
            for p in ./ $(release_archive_dir)/; do                     \
              test -e $$p$$file || continue;                            \
@@ -1208,22 +1248,31 @@ sc_Wundef_boolean:
 # not be constant, or might overflow a stack.  In general, use PATH_MAX as
 # a limit, not an array or alloca size.
 sc_prohibit_path_max_allocation:
-       @prohibit='(\balloca *\([^)]*|\[[^]]*)PATH_MAX'                 \
+       @prohibit='(\balloca *\([^)]*|\[[^]]*)\bPATH_MAX'               \
        halt='Avoid stack allocations of size PATH_MAX'                 \
          $(_sc_search_regexp)
 
 sc_vulnerable_makefile_CVE-2009-4029:
        @prohibit='perm -777 -exec chmod a\+rwx|chmod 777 \$$\(distdir\)' \
-       in_files=$$(find $(srcdir) -name Makefile.in)                   \
+       in_files='(^|/)Makefile\.in$$'                                  \
        halt=$$(printf '%s\n'                                           \
          'the above files are vulnerable; beware of running'           \
          '  "make dist*" rules, and upgrade to fixed automake'         \
          '  see http://bugzilla.redhat.com/542609 for details')        \
          $(_sc_search_regexp)
 
+sc_vulnerable_makefile_CVE-2012-3386:
+       @prohibit='chmod a\+w \$$\(distdir\)'                           \
+       in_files='(^|/)Makefile\.in$$'                                  \
+       halt=$$(printf '%s\n'                                           \
+         'the above files are vulnerable; beware of running'           \
+         '  "make distcheck", and upgrade to fixed automake'           \
+         '  see http://bugzilla.redhat.com/CVE-2012-3386 for details') \
+         $(_sc_search_regexp)
+
 vc-diff-check:
-       (unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || :
-       if test -s vc-diffs; then                               \
+       $(AM_V_GEN)(unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || :
+       $(AM_V_at)if test -s vc-diffs; then                     \
          cat vc-diffs;                                         \
          echo "Some files are locally modified:" 1>&2;         \
          exit 1;                                               \
@@ -1239,35 +1288,42 @@ bootstrap-tools ?= autoconf,automake,gnulib
 
 # If it's not already specified, derive the GPG key ID from
 # the signed tag we've just applied to mark this release.
-gpg_key_ID ?= \
-  $$(git cat-file tag v$(VERSION) \
-     | gpgv --status-fd 1 --keyring /dev/null - - 2>/dev/null \
-     | awk '/^\[GNUPG:\] ERRSIG / {print $3; exit}')
+gpg_key_ID ?=                                                          \
+  $$(cd $(srcdir)                                                      \
+     && git cat-file tag v$(VERSION)                                   \
+        | gpgv --status-fd 1 --keyring /dev/null - - 2>/dev/null       \
+        | awk '/^\[GNUPG:\] ERRSIG / {print $$3; exit}')
 
 translation_project_ ?= coordinator@translationproject.org
 
 # Make info-gnu the default only for a stable release.
-ifeq ($(RELEASE_TYPE),stable)
-  announcement_Cc_ ?= $(translation_project_), $(PACKAGE_BUGREPORT)
-  announcement_mail_headers_ ?=                                                \
-    To: info-gnu@gnu.org                                               \
-    Cc: $(announcement_Cc_)                                            \
-    Mail-Followup-To: $(PACKAGE_BUGREPORT)
-else
-  announcement_Cc_ ?= $(translation_project_)
-  announcement_mail_headers_ ?=                                                \
-    To: $(PACKAGE_BUGREPORT)                                           \
-    Cc: $(announcement_Cc_)
-endif
-
+announcement_Cc_stable = $(translation_project_), $(PACKAGE_BUGREPORT)
+announcement_mail_headers_stable =             \
+  To: info-gnu@gnu.org                         \
+  Cc: $(announcement_Cc_)                      \
+  Mail-Followup-To: $(PACKAGE_BUGREPORT)
+
+announcement_Cc_alpha = $(translation_project_)
+announcement_mail_headers_alpha =              \
+  To: $(PACKAGE_BUGREPORT)                     \
+  Cc: $(announcement_Cc_)
+
+announcement_mail_Cc_beta = $(announcement_mail_Cc_alpha)
+announcement_mail_headers_beta = $(announcement_mail_headers_alpha)
+
+announcement_mail_Cc_ ?= $(announcement_mail_Cc_$(release-type))
+announcement_mail_headers_ ?= $(announcement_mail_headers_$(release-type))
 announcement: NEWS ChangeLog $(rel-files)
-       @$(srcdir)/$(_build-aux)/announce-gen                           \
+# Not $(AM_V_GEN) since the output of this command serves as
+# announcement message: it would start with " GEN announcement".
+       $(AM_V_at)$(srcdir)/$(_build-aux)/announce-gen                  \
            --mail-headers='$(announcement_mail_headers_)'              \
-           --release-type=$(RELEASE_TYPE)                              \
+           --release-type=$(release-type)                              \
            --package=$(PACKAGE)                                        \
            --prev=$(PREV_VERSION)                                      \
            --curr=$(VERSION)                                           \
            --gpg-key-id=$(gpg_key_ID)                                  \
+           --srcdir=$(srcdir)                                          \
            --news=$(srcdir)/NEWS                                       \
            --bootstrap-tools=$(bootstrap-tools)                        \
            $$(case ,$(bootstrap-tools), in (*,gnulib,*)                \
@@ -1275,6 +1331,12 @@ announcement: NEWS ChangeLog $(rel-files)
            --no-print-checksums                                        \
            $(addprefix --url-dir=, $(url_dir_list))
 
+.PHONY: release-commit
+release-commit:
+       $(AM_V_GEN)cd $(srcdir)                         \
+         && $(_build-aux)/do-release-commit-and-tag    \
+              -C $(abs_builddir) $(RELEASE)
+
 ## ---------------- ##
 ## Updating files.  ##
 ## ---------------- ##
@@ -1283,16 +1345,22 @@ ftp-gnu = ftp://ftp.gnu.org/gnu
 www-gnu = http://www.gnu.org
 
 upload_dest_dir_ ?= $(PACKAGE)
+upload_command =                                               \
+  $(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS)            \
+  --to $(gnu_rel_host):$(upload_dest_dir_)                     \
+  $(rel-files)
 emit_upload_commands:
        @echo =====================================
        @echo =====================================
-       @echo "$(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \\"
-       @echo "    --to $(gnu_rel_host):$(upload_dest_dir_) \\"
-       @echo "  $(rel-files)"
+       @echo '$(upload_command)'
        @echo '# send the ~/announce-$(my_distdir) e-mail'
        @echo =====================================
        @echo =====================================
 
+.PHONY: upload
+upload:
+       $(AM_V_GEN)$(upload_command)
+
 define emit-commit-log
   printf '%s\n' 'maint: post-release administrivia' ''                 \
     '* NEWS: Add header line for next release.'                                \
@@ -1302,7 +1370,8 @@ endef
 
 .PHONY: no-submodule-changes
 no-submodule-changes:
-       if test -d $(srcdir)/.git; then                                 \
+       $(AM_V_GEN)if test -d $(srcdir)/.git                            \
+               && git --version >/dev/null 2>&1; then                  \
          diff=$$(cd $(srcdir) && git submodule -q foreach              \
                  git diff-index --name-only HEAD)                      \
            || exit 1;                                                  \
@@ -1320,10 +1389,12 @@ submodule-checks ?= no-submodule-changes public-submodule-commit
 # cannot be built from a fresh clone.
 .PHONY: public-submodule-commit
 public-submodule-commit:
-       $(AM_V_GEN)if test -d $(srcdir)/.git; then                      \
+       $(AM_V_GEN)if test -d $(srcdir)/.git                            \
+               && git --version >/dev/null 2>&1; then                  \
          cd $(srcdir) &&                                               \
-         git submodule --quiet foreach test '$$(git rev-parse $$sha1)' \
-             = '$$(git merge-base origin $$sha1)'                      \
+         git submodule --quiet foreach                                 \
+             test '"$$(git rev-parse "$$sha1")"'                       \
+             = '"$$(git merge-base origin "$$sha1")"'                  \
            || { echo '$(ME): found non-public submodule commit' >&2;   \
                 exit 1; };                                             \
        else                                                            \
@@ -1338,19 +1409,22 @@ public-submodule-commit:
 gl_public_submodule_commit ?= public-submodule-commit
 check: $(gl_public_submodule_commit)
 
-.PHONY: alpha beta stable
+.PHONY: alpha beta stable release
 ALL_RECURSIVE_TARGETS += alpha beta stable
 alpha beta stable: $(local-check) writable-files $(submodule-checks)
-       test $@ = stable                                                \
+       $(AM_V_GEN)test $@ = stable                                     \
          && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$'         \
               || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
          || :
-       $(MAKE) vc-diff-check
-       $(MAKE) news-check
-       $(MAKE) distcheck
-       $(MAKE) dist
-       $(MAKE) $(release-prep-hook) RELEASE_TYPE=$@
-       $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
+       $(AM_V_at)$(MAKE) vc-diff-check
+       $(AM_V_at)$(MAKE) news-check
+       $(AM_V_at)$(MAKE) distcheck
+       $(AM_V_at)$(MAKE) dist
+       $(AM_V_at)$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@
+       $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
+
+release:
+       $(AM_V_GEN)$(MAKE) $(release-type)
 
 # Override this in cfg.mk if you follow different procedures.
 release-prep-hook ?= release-prep
@@ -1358,19 +1432,19 @@ release-prep-hook ?= release-prep
 gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?]
 .PHONY: release-prep
 release-prep:
-       case $$RELEASE_TYPE in alpha|beta|stable) ;; \
-         *) echo "invalid RELEASE_TYPE: $$RELEASE_TYPE" 1>&2; exit 1;; esac
-       $(MAKE) --no-print-directory -s announcement > ~/announce-$(my_distdir)
-       if test -d $(release_archive_dir); then                 \
+       $(AM_V_GEN)$(MAKE) --no-print-directory -s announcement \
+         > ~/announce-$(my_distdir)
+       $(AM_V_at)if test -d $(release_archive_dir); then       \
          ln $(rel-files) $(release_archive_dir);               \
          chmod a-w $(rel-files);                               \
        fi
-       echo $(VERSION) > $(prev_version_file)
-       $(MAKE) update-NEWS-hash
-       perl -pi -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' NEWS
-       $(emit-commit-log) > .ci-msg
-       $(VC) commit -F .ci-msg -a
-       rm .ci-msg
+       $(AM_V_at)echo $(VERSION) > $(prev_version_file)
+       $(AM_V_at)$(MAKE) update-NEWS-hash
+       $(AM_V_at)perl -pi                                              \
+         -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"'        \
+         $(srcdir)/NEWS
+       $(AM_V_at)msg=$$($(emit-commit-log)) || exit 1;         \
+       cd $(srcdir) && $(VC) commit -m "$$msg" -a
 
 # Override this with e.g., -s $(srcdir)/some_other_name.texi
 # if the default $(PACKAGE)-derived name doesn't apply.
@@ -1378,14 +1452,20 @@ gendocs_options_ ?=
 
 .PHONY: web-manual
 web-manual:
-       @test -z "$(manual_title)" \
+       $(AM_V_GEN)test -z "$(manual_title)" \
          && { echo define manual_title in cfg.mk 1>&2; exit 1; } || :
-       @cd '$(srcdir)/doc'; \
+       $(AM_V_at)cd '$(srcdir)/doc'; \
          $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \
             -o '$(abs_builddir)/doc/manual' \
             --email $(PACKAGE_BUGREPORT) $(PACKAGE) \
            "$(PACKAGE_NAME) - $(manual_title)"
-       @echo " *** Upload the doc/manual directory to web-cvs."
+       $(AM_V_at)echo " *** Upload the doc/manual directory to web-cvs."
+
+.PHONY: web-manual-update
+web-manual-update:
+       $(AM_V_GEN)cd $(srcdir) \
+         && $(_build-aux)/gnu-web-doc-update -C $(abs_builddir)
+
 
 # Code Coverage
 
@@ -1411,6 +1491,31 @@ gen-coverage:
 
 coverage: init-coverage build-coverage gen-coverage
 
+# Some projects carry local adjustments for gnulib modules via patches in
+# a gnulib patch directory whose default name is gl/ (defined in bootstrap
+# via local_gl_dir=gl).  Those patches become stale as the originals evolve
+# in gnulib.  Use this rule to refresh any stale patches.  It applies each
+# patch to the original in $(gnulib_dir) and uses the temporary result to
+# generate a fuzz-free .diff file.  If you customize the name of your local
+# gnulib patch directory via bootstrap.conf, this rule detects that name.
+# Run this from a non-VPATH (i.e., srcdir) build directory.
+.PHONY: refresh-gnulib-patches
+refresh-gnulib-patches:
+       gl=gl;                                                          \
+       if test -f bootstrap.conf; then                                 \
+         t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;'        \
+              -e 'END{defined $$d and print $$d}' bootstrap.conf);     \
+         test -n "$$t" && gl=$$t;                                      \
+       fi;                                                             \
+       for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do     \
+         b=$$(printf %s "$$diff"|sed 's/\.diff$$//');                  \
+         VERSION_CONTROL=none                                          \
+           patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1;          \
+         ( cd $(gnulib_dir) || exit 1;                                 \
+           git diff "$$b" > "../$$gl/$$diff";                          \
+           git checkout $$b ) || exit 1;                               \
+       done
+
 # Update gettext files.
 PACKAGE ?= $(shell basename $(PWD))
 PO_DOMAIN ?= $(PACKAGE)
@@ -1444,7 +1549,7 @@ update-copyright-env ?=
 # in the file .x-update-copyright.
 .PHONY: update-copyright
 update-copyright:
-       grep -l -w Copyright                                             \
+       $(AM_V_GEN)grep -l -w Copyright                                  \
          $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \
          | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@
 
@@ -1517,6 +1622,7 @@ _gl_TS_obj_files ?= *.$(OBJEXT)
 # Files in which to search for the one-line style extern declarations.
 # $(_gl_TS_dir)-relative.
 _gl_TS_headers ?= $(noinst_HEADERS)
+_gl_TS_other_headers ?= *.h
 
 .PHONY: _gl_tight_scope
 _gl_tight_scope: $(bin_PROGRAMS)
@@ -1539,7 +1645,8 @@ _gl_tight_scope: $(bin_PROGRAMS)
          && { echo the above functions should have static scope >&2;   \
               exit 1; } || : ;                                         \
        ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars);       \
-         perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' $$hdr *.h \
+         perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"'           \
+               $$hdr $(_gl_TS_other_headers)                           \
        ) | sort -u > $$t;                                              \
        nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p'          \
             | sort -u | grep -Ev -f $$t                                        \
index 757f908..3aa129c 100644 (file)
@@ -2,6 +2,7 @@ en@boldquot
 en@quot
 cs
 de
+eo
 fi
 fr
 it
index d96dea9..bbfa092 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index a88a584..60090f7 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls 3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-01-21 20:05+0100\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -701,7 +701,12 @@ msgid ""
 msgstr ""
 "Poskytnutý seznam certifikátů X.509 není seřazen (od předmětu po vydavatele)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Požadavek je neplatný."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(neznámý chybový kód)"
 
@@ -938,7 +943,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tPodpis:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "Údaje odpovědi OCSP:\n"
 
index 80b0ad1..b7c6383 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index a1d1542..d708b64 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls 3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-04-11 20:14+0100\n"
 "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -713,7 +713,12 @@ msgstr ""
 "Die bereitgestellte Liste der X.509-Zertifikate ist nicht sortiert (in der "
 "Reihenfolge der Ausgabe)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Die Anfrage ist ungültig."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(Unbekannter Fehlercode)"
 
@@ -947,7 +952,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tSignatur:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr ""
 
index a89b096..e1a02d3 100644 (file)
Binary files a/po/en@boldquot.gmo and b/po/en@boldquot.gmo differ
index e4fc6cc..8a711c2 100644 (file)
@@ -1,7 +1,7 @@
 # English translations for gnutls package.
-# Copyright (C) 2012 Free Software Foundation, Inc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gnutls package.
-# Automatically generated, 2012.
+# Automatically generated, 2013.
 #
 # All this catalog "translates" are quotation characters.
 # The msgids must be ASCII and therefore cannot contain real quotation
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gnutls 3.0.21\n"
+"Project-Id-Version: gnutls 3.0.30\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
-"PO-Revision-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
+"PO-Revision-Date: 2013-06-01 12:47+0200\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "Language: en@boldquot\n"
@@ -720,7 +720,11 @@ msgstr ""
 "The provided X.509 certificate list is not sorted (in subject to issuer "
 "order)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+msgid "The OCSP response is invalid"
+msgstr "The OCSP response is invalid"
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(unknown error code)"
 
@@ -955,7 +959,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tSignature:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "OCSP Response Information:\n"
 
index fe334f7..7de4c6b 100644 (file)
Binary files a/po/en@quot.gmo and b/po/en@quot.gmo differ
index f5cbd16..0f1e282 100644 (file)
@@ -1,7 +1,7 @@
 # English translations for gnutls package.
-# Copyright (C) 2012 Free Software Foundation, Inc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gnutls package.
-# Automatically generated, 2012.
+# Automatically generated, 2013.
 #
 # All this catalog "translates" are quotation characters.
 # The msgids must be ASCII and therefore cannot contain real quotation
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gnutls 3.0.21\n"
+"Project-Id-Version: gnutls 3.0.30\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
-"PO-Revision-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
+"PO-Revision-Date: 2013-06-01 12:47+0200\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "Language: en@quot\n"
@@ -717,7 +717,11 @@ msgstr ""
 "The provided X.509 certificate list is not sorted (in subject to issuer "
 "order)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+msgid "The OCSP response is invalid"
+msgstr "The OCSP response is invalid"
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(unknown error code)"
 
@@ -952,7 +956,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tSignature:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "OCSP Response Information:\n"
 
diff --git a/po/eo.gmo b/po/eo.gmo
new file mode 100644 (file)
index 0000000..e8b4983
Binary files /dev/null and b/po/eo.gmo differ
diff --git a/po/eo.po b/po/eo.po
new file mode 100644 (file)
index 0000000..abbf153
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,1390 @@
+# Esperanto translation for libgnutls.
+# Copyright (C) 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the libgnutls package.
+# Felipe Castro <fefcas@gmail.com>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libgnutls 3.0.12\n"
+"Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
+"PO-Revision-Date: 2013-02-28 14:32-0300\n"
+"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Bookmarks: -1,-1,0,-1,-1,-1,-1,-1,-1,-1\n"
+
+#: lib/gnutls_alert.c:44
+msgid "Close notify"
+msgstr "Fermo-atentigo"
+
+#: lib/gnutls_alert.c:45
+msgid "Unexpected message"
+msgstr "Neatendita mesaĝo"
+
+#: lib/gnutls_alert.c:46
+msgid "Bad record MAC"
+msgstr "Malĝusta rikordo MAC"
+
+#: lib/gnutls_alert.c:47
+msgid "Decryption failed"
+msgstr "Malĉifro fiaskis"
+
+#: lib/gnutls_alert.c:48
+msgid "Record overflow"
+msgstr "Rikorda troigo"
+
+#: lib/gnutls_alert.c:49
+msgid "Decompression failed"
+msgstr "Maldensigo fiakis"
+
+#: lib/gnutls_alert.c:50
+msgid "Handshake failed"
+msgstr "Kvitanco fiaskis"
+
+#: lib/gnutls_alert.c:51
+msgid "Certificate is bad"
+msgstr "Atestilo malĝustas"
+
+#: lib/gnutls_alert.c:52
+msgid "Certificate is not supported"
+msgstr "Atestilo ne estas subtenata"
+
+#: lib/gnutls_alert.c:53
+msgid "Certificate was revoked"
+msgstr "Atestilo estis revokata"
+
+#: lib/gnutls_alert.c:54
+msgid "Certificate is expired"
+msgstr "Atestilo senvalidiĝis"
+
+#: lib/gnutls_alert.c:55
+msgid "Unknown certificate"
+msgstr "Nekonata atestilo"
+
+#: lib/gnutls_alert.c:56
+msgid "Illegal parameter"
+msgstr "Malpermesata parametro"
+
+#: lib/gnutls_alert.c:57
+msgid "CA is unknown"
+msgstr "CA ne estas konata"
+
+#: lib/gnutls_alert.c:58
+msgid "Access was denied"
+msgstr "Aliro estis rifuzata"
+
+#: lib/gnutls_alert.c:59
+msgid "Decode error"
+msgstr "Dekodiga eraro"
+
+#: lib/gnutls_alert.c:60
+msgid "Decrypt error"
+msgstr "Malĉifra eraro"
+
+#: lib/gnutls_alert.c:61
+msgid "Export restriction"
+msgstr "Eksporta limigo"
+
+#: lib/gnutls_alert.c:62
+msgid "Error in protocol version"
+msgstr "Eraro en versio de protokolo"
+
+#: lib/gnutls_alert.c:63
+msgid "Insufficient security"
+msgstr "Nesufiĉa sekureco"
+
+#: lib/gnutls_alert.c:64
+msgid "User canceled"
+msgstr "Nuligita de uzanto"
+
+#: lib/gnutls_alert.c:65
+msgid "No certificate (SSL 3.0)"
+msgstr "Neniu atestilo (SSL 3.0)"
+
+#: lib/gnutls_alert.c:66
+msgid "Internal error"
+msgstr "Interna eraro"
+
+#: lib/gnutls_alert.c:67
+msgid "No renegotiation is allowed"
+msgstr "Neniu renegocigo estas permesata"
+
+#: lib/gnutls_alert.c:69
+msgid "Could not retrieve the specified certificate"
+msgstr "Ne eblis havigi la indikitan atestilon"
+
+#: lib/gnutls_alert.c:70
+msgid "An unsupported extension was sent"
+msgstr "Nesubtenata etendo estis sendata"
+
+#: lib/gnutls_alert.c:72
+msgid "The server name sent was not recognized"
+msgstr "La sendita servilnomo ne estis rekonata"
+
+#: lib/gnutls_alert.c:74
+msgid "The SRP/PSK username is missing or not known"
+msgstr "Mankas uzantnomo SRP/PSK aŭ ĝi ne estas konata"
+
+#: lib/gnutls_errors.c:51
+msgid "Success."
+msgstr "Sukceso."
+
+#: lib/gnutls_errors.c:52
+msgid "Could not negotiate a supported cipher suite."
+msgstr "Ne eblis negoci subtenatan ĉifran algoritmaron."
+
+#: lib/gnutls_errors.c:54
+msgid "No or insufficient priorities were set."
+msgstr "Neniu aŭ nesufiĉaj prioritatoj estis difinataj."
+
+#: lib/gnutls_errors.c:56
+msgid "The cipher type is unsupported."
+msgstr "La ĉifra tipo estas nesubtenata."
+
+#: lib/gnutls_errors.c:58
+msgid "The certificate and the given key do not match."
+msgstr "La atestilo kaj la indikita ŝlosilo ne interkongruas."
+
+#: lib/gnutls_errors.c:60
+msgid "Could not negotiate a supported compression method."
+msgstr "Ne eblis negoci subtenatan densigan metodon."
+
+#: lib/gnutls_errors.c:62
+msgid "An unknown public key algorithm was encountered."
+msgstr "Nekonata publik-ŝlosila algoritmo estis trovata."
+
+#: lib/gnutls_errors.c:65
+msgid "An algorithm that is not enabled was negotiated."
+msgstr "Algoritmo kiu ne estas ebligata estis negocata."
+
+#: lib/gnutls_errors.c:67
+msgid "A record packet with illegal version was received."
+msgstr "Rikord-paketo kun malpermesata versio estis ricevata."
+
+#: lib/gnutls_errors.c:70
+msgid ""
+"The Diffie-Hellman prime sent by the server is not acceptable (not long "
+"enough)."
+msgstr ""
+"La primo Diffie-Hellman sendita de la servilo ne estas akceptebla (ne sufiĉe "
+"longa)."
+
+#: lib/gnutls_errors.c:72
+msgid "A TLS packet with unexpected length was received."
+msgstr "TLS-paketo kun neatendita longo estis ricevata."
+
+#: lib/gnutls_errors.c:74
+msgid "The TLS connection was non-properly terminated."
+msgstr "La TLS-konekto estis finigita neĝuste."
+
+#: lib/gnutls_errors.c:77
+msgid "The specified session has been invalidated for some reason."
+msgstr "La specifa seanco estis ial malvalidigata."
+
+#: lib/gnutls_errors.c:80
+msgid "GnuTLS internal error."
+msgstr "Interna eraro e GnuTLS."
+
+#: lib/gnutls_errors.c:81
+msgid "An illegal TLS extension was received."
+msgstr "Malpermesata TLS-etendo estis ricevata."
+
+#: lib/gnutls_errors.c:83
+msgid "A TLS fatal alert has been received."
+msgstr "Gravega atentigo TLS estas ricevita."
+
+#: lib/gnutls_errors.c:85
+msgid "An unexpected TLS packet was received."
+msgstr "Neatendita paketo TLS estis ricevata."
+
+#: lib/gnutls_errors.c:87
+msgid "A TLS warning alert has been received."
+msgstr "Averta atentigo TLS estas ricevita."
+
+#: lib/gnutls_errors.c:90
+msgid "An error was encountered at the TLS Finished packet calculation."
+msgstr "Eraro estis trovata ĉe la kalkulo de paketo TLS Finigita."
+
+#: lib/gnutls_errors.c:92
+msgid "No certificate was found."
+msgstr "Neniu atestilo estis trovata."
+
+#: lib/gnutls_errors.c:94
+msgid "The given DSA key is incompatible with the selected TLS protocol."
+msgstr "La indikita ŝlosilo DSA malkongruas kun la elektita protokolo TLS."
+
+#: lib/gnutls_errors.c:97
+msgid "There is already a crypto algorithm with lower priority."
+msgstr "Jam ekzistas ĉifra algoritmo kun pli malalta prioritato."
+
+#: lib/gnutls_errors.c:100
+msgid "No temporary RSA parameters were found."
+msgstr "Neniu provizora parametro RSA estis trovata."
+
+#: lib/gnutls_errors.c:102
+msgid "No temporary DH parameters were found."
+msgstr "Neniu provizora parametro DH estis trovata."
+
+#: lib/gnutls_errors.c:104
+msgid "An unexpected TLS handshake packet was received."
+msgstr "Neatendita TLS-kvitanca paketo estis ricevata."
+
+#: lib/gnutls_errors.c:106
+msgid "The scanning of a large integer has failed."
+msgstr "La skanado de granda entjero fiaskis."
+
+#: lib/gnutls_errors.c:108
+msgid "Could not export a large integer."
+msgstr "Ne eblis eksporti grandan entjeron."
+
+#: lib/gnutls_errors.c:110
+msgid "Decryption has failed."
+msgstr "Malĉifrigo fiaskis."
+
+#: lib/gnutls_errors.c:111
+msgid "Encryption has failed."
+msgstr "Ĉifrigo fiaskis."
+
+#: lib/gnutls_errors.c:112
+msgid "Public key decryption has failed."
+msgstr "Malĉifrigo de publika ŝlosilo fiaskis."
+
+#: lib/gnutls_errors.c:114
+msgid "Public key encryption has failed."
+msgstr "Ĉifrigo de publika ŝlosilo fiaskis."
+
+#: lib/gnutls_errors.c:116
+msgid "Public key signing has failed."
+msgstr "Subskribo de publika ŝlosilo fiaskis."
+
+#: lib/gnutls_errors.c:118
+msgid "Public key signature verification has failed."
+msgstr "Kontrolo de publik-ŝlosila subskribo fiaskis."
+
+#: lib/gnutls_errors.c:120
+msgid "Decompression of the TLS record packet has failed."
+msgstr "Maldensigo de la rikord-paketo TLS fiaskis."
+
+#: lib/gnutls_errors.c:122
+msgid "Compression of the TLS record packet has failed."
+msgstr "Densigo de la rikord-paketo TLS fiaskis."
+
+#: lib/gnutls_errors.c:125
+msgid "Internal error in memory allocation."
+msgstr "Interna eraro en rezervigo de memoro."
+
+#: lib/gnutls_errors.c:127
+msgid "An unimplemented or disabled feature has been requested."
+msgstr "Nerealigita aŭ malebligita trajto estas petata."
+
+#: lib/gnutls_errors.c:129
+msgid "Insufficient credentials for that request."
+msgstr "Nesufiĉe da legitimaĵojj por tiu peto."
+
+#: lib/gnutls_errors.c:131
+msgid "Error in password file."
+msgstr "Eraro en pasvorta dosiero."
+
+#: lib/gnutls_errors.c:132
+msgid "Wrong padding in PKCS1 packet."
+msgstr "Malĝusta ŝtopado en paketo PKCS1."
+
+#: lib/gnutls_errors.c:134
+msgid "The requested session has expired."
+msgstr "La petita seanco senvalidiĝis."
+
+#: lib/gnutls_errors.c:135
+msgid "Hashing has failed."
+msgstr "Haketado fiaskis."
+
+#: lib/gnutls_errors.c:136
+msgid "Base64 decoding error."
+msgstr "Dekodig-eraro de Base64."
+
+#: lib/gnutls_errors.c:138
+msgid "Base64 unexpected header error."
+msgstr "Neatendita kap-eraro de Base64."
+
+#: lib/gnutls_errors.c:141
+msgid "Base64 encoding error."
+msgstr "Enkodig-eraro de Base64."
+
+#: lib/gnutls_errors.c:143
+msgid "Parsing error in password file."
+msgstr "Analiz-eraro en pasvorta dosiero."
+
+#: lib/gnutls_errors.c:145
+msgid "The requested data were not available."
+msgstr "La petita datumaro ne estis disponebla."
+
+#: lib/gnutls_errors.c:147
+msgid "Error in the pull function."
+msgstr "Eraro en tira funkcio."
+
+#: lib/gnutls_errors.c:148
+msgid "Error in the push function."
+msgstr "Eraro en puŝa funkcio."
+
+#: lib/gnutls_errors.c:150
+msgid ""
+"The upper limit of record packet sequence numbers has been reached. Wow!"
+msgstr "La supra limo de rikord-paketa sekvo-numeroj estas atingita. Hoo!"
+
+#: lib/gnutls_errors.c:152
+msgid "Error in the certificate."
+msgstr "Eraro en atestilo."
+
+#: lib/gnutls_errors.c:154
+msgid "Unknown Subject Alternative name in X.509 certificate."
+msgstr "Nekonata nomo de temo-alternativo en atestilo X.509."
+
+#: lib/gnutls_errors.c:157
+msgid "Unsupported critical extension in X.509 certificate."
+msgstr "Nesubtenata gravega etendo en atestilo X.509."
+
+#: lib/gnutls_errors.c:159
+#, fuzzy
+msgid "Unsupported extension in X.509 certificate."
+msgstr "Nesubtenata gravega etendo en atestilo X.509."
+
+#: lib/gnutls_errors.c:161
+msgid "Key usage violation in certificate has been detected."
+msgstr "Malrespekto en ŝlosil-uzmaniero estas detektita."
+
+#: lib/gnutls_errors.c:163
+msgid "Resource temporarily unavailable, try again."
+msgstr "La rimedo estas provizore nedisponebla, provu refoje."
+
+#: lib/gnutls_errors.c:165
+msgid "The transmitted packet is too large (EMSGSIZE)."
+msgstr ""
+
+#: lib/gnutls_errors.c:167
+msgid "Function was interrupted."
+msgstr "Funkcio estis haltigata."
+
+#: lib/gnutls_errors.c:168
+msgid "Rehandshake was requested by the peer."
+msgstr "Rekvitanco estis petata de la samtavolano."
+
+#: lib/gnutls_errors.c:171
+msgid "TLS Application data were received, while expecting handshake data."
+msgstr ""
+"TLS-aplikaĵa datumaro estis ricevata, dum ni atendis kvitancan datumaron."
+
+#: lib/gnutls_errors.c:173
+msgid "Error in Database backend."
+msgstr "Eraro en datumara internaĵo."
+
+#: lib/gnutls_errors.c:174
+msgid "The certificate type is not supported."
+msgstr "La tipo de atestilo ne estas subtenata."
+
+#: lib/gnutls_errors.c:176
+msgid "The given memory buffer is too short to hold parameters."
+msgstr "La indikita memor-bufro estas tro mallonga por teni parametrojn."
+
+#: lib/gnutls_errors.c:178
+msgid "The request is invalid."
+msgstr "La pedo malvalidas."
+
+#: lib/gnutls_errors.c:179
+msgid "The cookie was bad."
+msgstr "La kuketo malĝustis."
+
+#: lib/gnutls_errors.c:180
+msgid "An illegal parameter has been received."
+msgstr "Malpermesata parametro estas ricevita."
+
+#: lib/gnutls_errors.c:182
+msgid "An illegal parameter was found."
+msgstr "Malpermesata parametro estis trovata."
+
+#: lib/gnutls_errors.c:184
+msgid "Error while reading file."
+msgstr "Eraro dum lego de dosiero."
+
+#: lib/gnutls_errors.c:186
+msgid "ASN1 parser: Element was not found."
+msgstr "Analizilo ASN1: elemento ne estis trovata."
+
+#: lib/gnutls_errors.c:188
+msgid "ASN1 parser: Identifier was not found"
+msgstr "Analizilo ASN1: identiganto ne estis trovata"
+
+#: lib/gnutls_errors.c:190
+msgid "ASN1 parser: Error in DER parsing."
+msgstr "Analizilo ASN1: eraro en analizo de DER."
+
+#: lib/gnutls_errors.c:192
+msgid "ASN1 parser: Value was not found."
+msgstr "Analizilo ASN1: valoro ne estis trovata."
+
+#: lib/gnutls_errors.c:194
+msgid "ASN1 parser: Generic parsing error."
+msgstr "Analizilo ASN1: ĝenerala analiz-eraro."
+
+#: lib/gnutls_errors.c:196
+msgid "ASN1 parser: Value is not valid."
+msgstr "Analizilo ASN1: valoro ne validas."
+
+#: lib/gnutls_errors.c:198
+msgid "ASN1 parser: Error in TAG."
+msgstr "Analizilo ASN1: eraro en TAG."
+
+#: lib/gnutls_errors.c:199
+msgid "ASN1 parser: error in implicit tag"
+msgstr "Analizilo ASN1: eraro en implicita marko"
+
+#: lib/gnutls_errors.c:201
+msgid "ASN1 parser: Error in type 'ANY'."
+msgstr "Analizilo ASN1: eraro en tipo 'ANY'."
+
+#: lib/gnutls_errors.c:203
+msgid "ASN1 parser: Syntax error."
+msgstr "Analizilo ASN1: sintaks-eraro."
+
+#: lib/gnutls_errors.c:205
+msgid "ASN1 parser: Overflow in DER parsing."
+msgstr "Analizilo ASN1: troigo en analizo de DER."
+
+#: lib/gnutls_errors.c:208
+msgid "Too many empty record packets have been received."
+msgstr "Tro multaj malplenaj rikord-paketoj estas ricevitaj."
+
+#: lib/gnutls_errors.c:210
+msgid "Too many handshake packets have been received."
+msgstr "Tro multaj kvitancaj paketoj estas ricevitaj."
+
+#: lib/gnutls_errors.c:212
+msgid "The crypto library version is too old."
+msgstr "La versio de ĉifra biblioteko tro malnovas."
+
+#: lib/gnutls_errors.c:215
+msgid "The tasn1 library version is too old."
+msgstr "La versio de biblioteko tasn1 tro malnovas."
+
+#: lib/gnutls_errors.c:217
+msgid "The OpenPGP User ID is revoked."
+msgstr "La uzant-ID de OpenPGP estas revokita."
+
+#: lib/gnutls_errors.c:219
+msgid "The OpenPGP key has not a preferred key set."
+msgstr "La ŝlosilo OpenPGP ne havas preferatan ŝlosilaron."
+
+#: lib/gnutls_errors.c:221
+msgid "Error loading the keyring."
+msgstr "Eraro dum ŝargo je la ŝlosilringo."
+
+#: lib/gnutls_errors.c:223
+msgid "The initialization of crypto backend has failed."
+msgstr "La ekigo de ĉifra internaĵo fiaskis."
+
+#: lib/gnutls_errors.c:225
+msgid "No supported compression algorithms have been found."
+msgstr "Neniu subtenata densig-algoritmo estas trovita."
+
+#: lib/gnutls_errors.c:227
+msgid "No supported cipher suites have been found."
+msgstr "Neniu subtenata ĉifra algoritmaro estas trovita."
+
+#: lib/gnutls_errors.c:229
+msgid "Could not get OpenPGP key."
+msgstr "Ne eblis havigi ŝlosilon OpenPGP."
+
+#: lib/gnutls_errors.c:231
+msgid "Could not find OpenPGP subkey."
+msgstr "Ne eblis trovi subŝlosilon OpenPGP."
+
+#: lib/gnutls_errors.c:233
+msgid "Safe renegotiation failed."
+msgstr "Sekura renegocado fiaskis."
+
+#: lib/gnutls_errors.c:235
+msgid "Unsafe renegotiation denied."
+msgstr "Malsekura renegocado estas rifuzita."
+
+#: lib/gnutls_errors.c:238
+msgid "The SRP username supplied is illegal."
+msgstr "La liverita SRP-uzantnomo estas malpermesata."
+
+#: lib/gnutls_errors.c:240
+msgid "The SRP username supplied is unknown."
+msgstr "La liverita SRP-uzantnomo estas nekonata."
+
+#: lib/gnutls_errors.c:243
+msgid "The OpenPGP fingerprint is not supported."
+msgstr "La fingropremo OpenPGP ne esats subtenata."
+
+#: lib/gnutls_errors.c:245
+msgid "The signature algorithm is not supported."
+msgstr "La subskriba algoritmo ne estas subtenata."
+
+#: lib/gnutls_errors.c:247
+msgid "The certificate has unsupported attributes."
+msgstr "La atestilo havas nesubtenatajn atributojn."
+
+#: lib/gnutls_errors.c:249
+msgid "The OID is not supported."
+msgstr "La OID ne estas subtenata."
+
+#: lib/gnutls_errors.c:251
+msgid "The hash algorithm is unknown."
+msgstr "La haketa algoritmo estas nekonata."
+
+#: lib/gnutls_errors.c:253
+msgid "The PKCS structure's content type is unknown."
+msgstr "La enhav-tipo de strukturo PKCS estas ne konata."
+
+#: lib/gnutls_errors.c:255
+msgid "The PKCS structure's bag type is unknown."
+msgstr "La ujo-tipo de strukturo PKCS estas ne konata."
+
+#: lib/gnutls_errors.c:257
+msgid "The given password contains invalid characters."
+msgstr "La indikita pasvorto enhavas malvalidajn signojn."
+
+#: lib/gnutls_errors.c:259
+msgid "The Message Authentication Code verification failed."
+msgstr "La kontrolo de mesaĝ-aŭtentikiga kodo fiaskis."
+
+#: lib/gnutls_errors.c:261
+msgid "Some constraint limits were reached."
+msgstr "Kelkaj limigoj estis atingataj."
+
+#: lib/gnutls_errors.c:263
+msgid "Failed to acquire random data."
+msgstr "Ni fiaskis havigi hazardan datumaron."
+
+#: lib/gnutls_errors.c:266
+msgid "Received a TLS/IA Intermediate Phase Finished message"
+msgstr "Ricevita mesaĝo: 'TLS/IA intermeza fazo finis'"
+
+#: lib/gnutls_errors.c:268
+msgid "Received a TLS/IA Final Phase Finished message"
+msgstr "Ricevita mesaĝo: 'TLS/IA fina fazo finis'"
+
+#: lib/gnutls_errors.c:270
+msgid "Verifying TLS/IA phase checksum failed"
+msgstr "Kontrolo de faza kontrolsumo de TLS/IA fiaskis"
+
+#: lib/gnutls_errors.c:273
+msgid "The specified algorithm or protocol is unknown."
+msgstr "La indikita algoritmo aŭ protokolo estas nekonata."
+
+#: lib/gnutls_errors.c:276
+msgid "The handshake data size is too large."
+msgstr "La kvitanca damutara grando estas troa."
+
+#: lib/gnutls_errors.c:279
+msgid "Error opening /dev/crypto"
+msgstr "Eraro dum malfermo de /dev/crypto"
+
+#: lib/gnutls_errors.c:282
+msgid "Error interfacing with /dev/crypto"
+msgstr "Eraro dum interfaco kun /dev/crypto"
+
+#: lib/gnutls_errors.c:284
+msgid "Peer has terminated the connection"
+msgstr ""
+
+#: lib/gnutls_errors.c:286
+msgid "Channel binding data not available"
+msgstr "Kanal-bindiga datumaro ne disponeblas"
+
+#: lib/gnutls_errors.c:289
+msgid "PKCS #11 error."
+msgstr "Eraro PKCS #11."
+
+#: lib/gnutls_errors.c:291
+msgid "PKCS #11 initialization error."
+msgstr "Ekiga eraro PKCS #11."
+
+#: lib/gnutls_errors.c:293
+msgid "Error in parsing."
+msgstr "Eraro dum analizo."
+
+#: lib/gnutls_errors.c:295
+msgid "PKCS #11 error in PIN."
+msgstr "Eraro PKCS #11 en PIN."
+
+#: lib/gnutls_errors.c:297
+msgid "PKCS #11 PIN should be saved."
+msgstr "PKCS #11 PIN devus esti konservata."
+
+#: lib/gnutls_errors.c:299
+msgid "PKCS #11 error in slot"
+msgstr "Eraro PKCS #11 en konektingo"
+
+#: lib/gnutls_errors.c:301
+msgid "Thread locking error"
+msgstr "Eraro de faden-ŝloso"
+
+#: lib/gnutls_errors.c:303
+msgid "PKCS #11 error in attribute"
+msgstr "Eraro PKCS #11 en atributo"
+
+#: lib/gnutls_errors.c:305
+msgid "PKCS #11 error in device"
+msgstr "Eraro PKCS #11 en aparato"
+
+#: lib/gnutls_errors.c:307
+msgid "PKCS #11 error in data"
+msgstr "Eraro PKCS #11 en datumaro"
+
+#: lib/gnutls_errors.c:309
+msgid "PKCS #11 unsupported feature"
+msgstr "PKCS #11 nesubtenata trajto"
+
+#: lib/gnutls_errors.c:311
+msgid "PKCS #11 error in key"
+msgstr "Eraro PKCS #11 en ŝlosilo"
+
+#: lib/gnutls_errors.c:313
+msgid "PKCS #11 PIN expired"
+msgstr "PKCS #11 PIN senvalidiĝis"
+
+#: lib/gnutls_errors.c:315
+msgid "PKCS #11 PIN locked"
+msgstr "PKCS #11 PIN ŝlosita"
+
+#: lib/gnutls_errors.c:317
+msgid "PKCS #11 error in session"
+msgstr "Eraro PKCS #11 en seanco"
+
+#: lib/gnutls_errors.c:319
+msgid "PKCS #11 error in signature"
+msgstr "Eraro PKCS #11 en subskribo"
+
+#: lib/gnutls_errors.c:321
+msgid "PKCS #11 error in token"
+msgstr "Eraro PKCS #11 en ĵetono"
+
+#: lib/gnutls_errors.c:323
+msgid "PKCS #11 user error"
+msgstr "PKCS #11 uzant-eraro"
+
+#: lib/gnutls_errors.c:325
+msgid "The operation timed out"
+msgstr "La tempo por operacio finis"
+
+#: lib/gnutls_errors.c:327
+msgid "The operation was cancelled due to user error"
+msgstr "La operacio estis nuligata pro uzant-eraro"
+
+#: lib/gnutls_errors.c:329
+msgid "No supported ECC curves were found"
+msgstr "Neniu subtenata kurbo ECC estis trovata"
+
+#: lib/gnutls_errors.c:331
+msgid "The curve is unsupported"
+msgstr "La kurbo estas nesubtenata"
+
+#: lib/gnutls_errors.c:333
+msgid "The requested PKCS #11 object is not available"
+msgstr "La petita objekto PKCS #11 ne disponeblas"
+
+#: lib/gnutls_errors.c:335
+msgid ""
+"The provided X.509 certificate list is not sorted (in subject to issuer "
+"order)"
+msgstr ""
+"La provizita atestilo-listo X.509 ne estas ordigita (laŭ ordo de temo al "
+"eldonanto)"
+
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "La pedo malvalidas."
+
+#: lib/gnutls_errors.c:424
+msgid "(unknown error code)"
+msgstr "(nekonata erar-kodo)"
+
+#: lib/openpgp/output.c:45
+msgid "\t\tKey Usage:\n"
+msgstr "\t\tŜlosila uzmaniero:\n"
+
+#: lib/openpgp/output.c:54
+#, c-format
+msgid "error: get_key_usage: %s\n"
+msgstr "eraro: get_key_usage: %s\n"
+
+#: lib/openpgp/output.c:59
+msgid "\t\t\tDigital signatures.\n"
+msgstr "\t\t\tCiferecaj subskriboj.\n"
+
+#: lib/openpgp/output.c:61
+msgid "\t\t\tCommunications encipherment.\n"
+msgstr "\t\t\tKomunikada ĉifrigo.\n"
+
+#: lib/openpgp/output.c:63
+msgid "\t\t\tStorage data encipherment.\n"
+msgstr "\t\t\tKonserv-datumara ĉifrigo.\n"
+
+#: lib/openpgp/output.c:65
+msgid "\t\t\tAuthentication.\n"
+msgstr "\t\t\tAŭtentikigo.\n"
+
+#: lib/openpgp/output.c:67
+msgid "\t\t\tCertificate signing.\n"
+msgstr "\t\t\tSubskribo de atestilo.\n"
+
+#: lib/openpgp/output.c:88
+msgid "\tID (hex): "
+msgstr "\tID (16-ume): "
+
+#: lib/openpgp/output.c:113
+msgid "\tFingerprint (hex): "
+msgstr "\tFingropremo (16-ume): "
+
+#: lib/openpgp/output.c:130
+msgid "\tFingerprint's random art:\n"
+msgstr "\tHazarda artaĵo de fingropremo:\n"
+
+#: lib/openpgp/output.c:148
+msgid "\tRevoked: True\n"
+msgstr "\tRevokita: vere\n"
+
+#: lib/openpgp/output.c:150
+msgid "\tRevoked: False\n"
+msgstr "\tRevokita: false\n"
+
+#: lib/openpgp/output.c:158
+msgid "\tTime stamps:\n"
+msgstr "\tTempindikoj:\n"
+
+#: lib/openpgp/output.c:175
+#, c-format
+msgid "\t\tCreation: %s\n"
+msgstr "\t\tKreo: %s\n"
+
+#: lib/openpgp/output.c:189
+msgid "\t\tExpiration: Never\n"
+msgstr "\t\tLimdato: Neniam\n"
+
+#: lib/openpgp/output.c:198
+#, c-format
+msgid "\t\tExpiration: %s\n"
+msgstr "\t\tLimdato: %s\n"
+
+#: lib/openpgp/output.c:220 lib/x509/ocsp_output.c:513 lib/x509/output.c:1293
+#: lib/x509/output.c:1424 lib/x509/output.c:1614 lib/x509/output.c:2041
+#: lib/x509/output.c:2168
+msgid "unknown"
+msgstr "nekonata"
+
+#: lib/openpgp/output.c:222
+#, c-format
+msgid "\tPublic Key Algorithm: %s\n"
+msgstr "\tPublik-ŝlosila algoritmo: %s\n"
+
+#: lib/openpgp/output.c:223
+#, c-format
+msgid "\tKey Security Level: %s\n"
+msgstr "\tŜlosila sekurec-nivelo: %s\n"
+
+#: lib/openpgp/output.c:244 lib/x509/output.c:1327 lib/x509/output.c:2183
+#, c-format
+msgid "\t\tModulus (bits %d):\n"
+msgstr "\t\tDividresto (bitoj %d):\n"
+
+#: lib/openpgp/output.c:246 lib/x509/output.c:2185
+msgid "\t\tExponent:\n"
+msgstr "\t\tEksponento:\n"
+
+#: lib/openpgp/output.c:271 lib/x509/output.c:1372 lib/x509/output.c:2205
+#, c-format
+msgid "\t\tPublic key (bits %d):\n"
+msgstr "\t\tPublika ŝlosilo (bitoj %d):\n"
+
+#: lib/openpgp/output.c:273 lib/x509/output.c:1374 lib/x509/output.c:2207
+msgid "\t\tP:\n"
+msgstr "\t\tP:\n"
+
+#: lib/openpgp/output.c:275 lib/x509/output.c:1376 lib/x509/output.c:2209
+msgid "\t\tQ:\n"
+msgstr "\t\tQ:\n"
+
+#: lib/openpgp/output.c:277 lib/x509/output.c:1378 lib/x509/output.c:2211
+msgid "\t\tG:\n"
+msgstr "\t\tG:\n"
+
+#: lib/openpgp/output.c:308 lib/x509/ocsp_output.c:53
+#: lib/x509/ocsp_output.c:284 lib/x509/output.c:1169 lib/x509/output.c:1794
+#: lib/x509/output.c:2126
+#, c-format
+msgid "\tVersion: %d\n"
+msgstr "\tVersio: %d\n"
+
+#: lib/openpgp/output.c:341
+#, c-format
+msgid "\tName[%d]: %s\n"
+msgstr "\tNomo[%d]: %s\n"
+
+#: lib/openpgp/output.c:343
+#, c-format
+msgid "\tRevoked Name[%d]: %s\n"
+msgstr "\tRevokita nomo[%d]: %s\n"
+
+#: lib/openpgp/output.c:364
+#, c-format
+msgid ""
+"\n"
+"\tSubkey[%d]:\n"
+msgstr ""
+"\n"
+"\tSubŝlosilo[%d]:\n"
+
+#: lib/openpgp/output.c:404
+#, c-format
+msgid "name[%d]: %s, "
+msgstr "nomo[%d]: %s, "
+
+#: lib/openpgp/output.c:406
+#, c-format
+msgid "revoked name[%d]: %s, "
+msgstr "revokita nomo[%d]: %s, "
+
+#: lib/openpgp/output.c:426
+msgid "fingerprint: "
+msgstr "fingropremo: "
+
+#: lib/openpgp/output.c:446
+#, c-format
+msgid "created: %s, "
+msgstr "kreita: %s, "
+
+#: lib/openpgp/output.c:456
+msgid "never expires, "
+msgstr "neniam senvalidiĝas, "
+
+#: lib/openpgp/output.c:464
+#, c-format
+msgid "expires: %s, "
+msgstr "senvalidiĝas: %s, "
+
+#: lib/openpgp/output.c:476
+#, c-format
+msgid "key algorithm %s (%d bits)"
+msgstr "ŝlosil-algoritmo %s (%d bitoj)"
+
+#: lib/openpgp/output.c:478
+#, c-format
+msgid "unknown key algorithm (%d)"
+msgstr "nekonata ŝlosil-algoritmo (%d)"
+
+#: lib/openpgp/output.c:519
+msgid "OpenPGP Certificate Information:\n"
+msgstr "Atestil-informo de OpenPGP:\n"
+
+#: lib/x509/ocsp_output.c:139 lib/x509/ocsp_output.c:487
+#: lib/x509/output.c:1971 lib/x509/output.c:2343
+msgid "\t\t\tASCII: "
+msgstr "\t\t\tASCII: "
+
+#: lib/x509/ocsp_output.c:143 lib/x509/ocsp_output.c:491
+#: lib/x509/output.c:1975 lib/x509/output.c:2347
+msgid "\t\t\tHexdump: "
+msgstr "\t\t\t16-uma nekropsio: "
+
+#: lib/x509/ocsp_output.c:188
+msgid "OCSP Request Information:\n"
+msgstr "Pet-informo de OCSP:\n"
+
+#: lib/x509/ocsp_output.c:298
+#, c-format
+msgid "\tResponder ID: %.*s\n"
+msgstr "\tRespondanta ID: %.*s\n"
+
+#: lib/x509/ocsp_output.c:316
+#, c-format
+msgid "\tProduced At: %s\n"
+msgstr "\tProduktita ĉe: %s\n"
+
+#: lib/x509/ocsp_output.c:410
+#, c-format
+msgid "\t\tRevocation time: %s\n"
+msgstr "\t\tRevoka horo: %s\n"
+
+#: lib/x509/ocsp_output.c:425
+#, c-format
+msgid "\t\tThis Update: %s\n"
+msgstr "\t\tTiu ĉi ĝisdatigo: %s\n"
+
+#: lib/x509/ocsp_output.c:440
+#, c-format
+msgid "\t\tNext Update: %s\n"
+msgstr "\t\tVenonta ĝisdatigo: %s\n"
+
+#: lib/x509/ocsp_output.c:514 lib/x509/output.c:1425 lib/x509/output.c:2042
+#, c-format
+msgid "\tSignature Algorithm: %s\n"
+msgstr "\tSubskriba algoritmo: %s\n"
+
+#: lib/x509/ocsp_output.c:518 lib/x509/output.c:1429 lib/x509/output.c:2046
+msgid ""
+"warning: signed using a broken signature algorithm that can be forged.\n"
+msgstr ""
+"averto: subskribita uzante rompitan subskrib-algoritmon kiu povas esti "
+"imitata.\n"
+
+#: lib/x509/ocsp_output.c:527 lib/x509/output.c:1456 lib/x509/output.c:2073
+msgid "\tSignature:\n"
+msgstr "\tSubskribo:\n"
+
+#: lib/x509/ocsp_output.c:619
+msgid "OCSP Response Information:\n"
+msgstr "Respond-informo de OCSP:\n"
+
+#: lib/x509/output.c:94 lib/x509/output.c:796
+msgid "warning: altname contains an embedded NUL, replacing with '!'\n"
+msgstr "averto: altname enhavas enkorpigitan NUL, ni anstataŭigas per '!'\n"
+
+#: lib/x509/output.c:151
+#, c-format
+msgid "\t\t\tPath Length Constraint: %d\n"
+msgstr "\t\t\tLimigo de voj-longo: %d\n"
+
+#: lib/x509/output.c:152
+#, c-format
+msgid "\t\t\tPolicy Language: %s"
+msgstr "\t\t\tLingvo de politiko: %s"
+
+#: lib/x509/output.c:161
+msgid ""
+"\t\t\tPolicy:\n"
+"\t\t\t\tASCII: "
+msgstr ""
+"\t\t\tPolitiko:\n"
+"\t\t\t\tASCII: "
+
+#: lib/x509/output.c:163
+msgid ""
+"\n"
+"\t\t\t\tHexdump: "
+msgstr ""
+"\n"
+"\t\t\t\t16-uma nekropsio: "
+
+#: lib/x509/output.c:188
+#, c-format
+msgid "\t\t\tAccess Method: %.*s"
+msgstr "\t\t\tAlir-metodo: %.*s"
+
+#: lib/x509/output.c:421
+#, c-format
+msgid "%s\t\t\tDigital signature.\n"
+msgstr "%s\t\t\tCifereca subskribo.\n"
+
+#: lib/x509/output.c:423
+#, c-format
+msgid "%s\t\t\tNon repudiation.\n"
+msgstr "%s\t\t\tNe-repudio.\n"
+
+#: lib/x509/output.c:425
+#, c-format
+msgid "%s\t\t\tKey encipherment.\n"
+msgstr "%s\t\t\tŜlosila ĉifrigo.\n"
+
+#: lib/x509/output.c:427
+#, c-format
+msgid "%s\t\t\tData encipherment.\n"
+msgstr "%s\t\t\tDatumara ĉifrigo.\n"
+
+#: lib/x509/output.c:429
+#, c-format
+msgid "%s\t\t\tKey agreement.\n"
+msgstr "%s\t\t\tŜlosila interakordo.\n"
+
+#: lib/x509/output.c:431
+#, c-format
+msgid "%s\t\t\tCertificate signing.\n"
+msgstr "%s\t\t\tAtestila subskribo.\n"
+
+#: lib/x509/output.c:433
+#, c-format
+msgid "%s\t\t\tCRL signing.\n"
+msgstr "%s\t\t\tSubskribo de CRL.\n"
+
+#: lib/x509/output.c:435
+#, c-format
+msgid "%s\t\t\tKey encipher only.\n"
+msgstr "%s\t\t\tNur ŝlosil-ĉifrigo.\n"
+
+#: lib/x509/output.c:437
+#, c-format
+msgid "%s\t\t\tKey decipher only.\n"
+msgstr "%s\t\t\tNur ŝlosil-malĉifrigo.\n"
+
+#: lib/x509/output.c:470
+#, fuzzy, c-format
+msgid "\t\t\tNot Before: %s\n"
+msgstr "\t\tNe antaŭ ol: %s\n"
+
+#: lib/x509/output.c:477
+#, fuzzy, c-format
+msgid "\t\t\tNot After: %s\n"
+msgstr "\t\tNe post: %s\n"
+
+#: lib/x509/output.c:527
+msgid ""
+"warning: distributionPoint contains an embedded NUL, replacing with '!'\n"
+msgstr ""
+"averto: distributionPoint enhavas enkorpigitan NUL, ni anstataŭigas per '!'\n"
+
+#: lib/x509/output.c:620
+#, c-format
+msgid "%s\t\t\tTLS WWW Server.\n"
+msgstr "%s\t\t\tServilo TLS WWW.\n"
+
+#: lib/x509/output.c:622
+#, c-format
+msgid "%s\t\t\tTLS WWW Client.\n"
+msgstr "%s\t\t\tKliento TLS WWW.\n"
+
+#: lib/x509/output.c:624
+#, c-format
+msgid "%s\t\t\tCode signing.\n"
+msgstr "%s\t\t\tSubskribo de kodo.\n"
+
+#: lib/x509/output.c:626
+#, c-format
+msgid "%s\t\t\tEmail protection.\n"
+msgstr "%s\t\t\tRetadresa protekto.\n"
+
+#: lib/x509/output.c:628
+#, c-format
+msgid "%s\t\t\tTime stamping.\n"
+msgstr "%s\t\t\tTempindikigo.\n"
+
+#: lib/x509/output.c:630
+#, c-format
+msgid "%s\t\t\tOCSP signing.\n"
+msgstr "%s\t\t\tSubskribo de OCSP.\n"
+
+#: lib/x509/output.c:632
+#, c-format
+msgid "%s\t\t\tIpsec IKE.\n"
+msgstr "%s\t\t\tIpsec IKE.\n"
+
+#: lib/x509/output.c:634
+#, c-format
+msgid "%s\t\t\tAny purpose.\n"
+msgstr "%s\t\t\tIu ajn celo.\n"
+
+#: lib/x509/output.c:665
+#, c-format
+msgid "%s\t\t\tCertificate Authority (CA): FALSE\n"
+msgstr "%s\t\t\tAtestila aŭtoritato (CA): FALSA\n"
+
+#: lib/x509/output.c:667
+#, c-format
+msgid "%s\t\t\tCertificate Authority (CA): TRUE\n"
+msgstr "%s\t\t\tAtestila aŭtoritato (CA): VERA\n"
+
+#: lib/x509/output.c:670
+#, c-format
+msgid "%s\t\t\tPath Length Constraint: %d\n"
+msgstr "%s\t\t\tLimigo de voj-longo: %d\n"
+
+#: lib/x509/output.c:802
+#, c-format
+msgid "%s\t\t\tXMPP Address: %.*s\n"
+msgstr "%s\t\t\tAdreso XMPP: %.*s\n"
+
+#: lib/x509/output.c:807
+#, c-format
+msgid "%s\t\t\totherName OID: %.*s\n"
+msgstr "%s\t\t\taliNomo OID: %.*s\n"
+
+#: lib/x509/output.c:809
+#, c-format
+msgid "%s\t\t\totherName DER: "
+msgstr "%s\t\t\taliNomo DER: "
+
+#: lib/x509/output.c:811
+#, c-format
+msgid ""
+"\n"
+"%s\t\t\totherName ASCII: "
+msgstr ""
+"\n"
+"%s\t\t\taliNomo ASCII: "
+
+#: lib/x509/output.c:931
+#, c-format
+msgid "%s\tExtensions:\n"
+msgstr "%s\tEtendoj:\n"
+
+#: lib/x509/output.c:941
+#, c-format
+msgid "%s\t\tBasic Constraints (%s):\n"
+msgstr "%s\t\tBazaj limigoj (%s):\n"
+
+#: lib/x509/output.c:942 lib/x509/output.c:957 lib/x509/output.c:974
+#: lib/x509/output.c:990 lib/x509/output.c:1005 lib/x509/output.c:1020
+#: lib/x509/output.c:1034 lib/x509/output.c:1049 lib/x509/output.c:1064
+#: lib/x509/output.c:1079 lib/x509/output.c:1090 lib/x509/output.c:1101
+#: lib/x509/output.c:1906 lib/x509/output.c:1929 lib/x509/output.c:1942
+msgid "critical"
+msgstr "gravega"
+
+#: lib/x509/output.c:942 lib/x509/output.c:957 lib/x509/output.c:974
+#: lib/x509/output.c:990 lib/x509/output.c:1005 lib/x509/output.c:1020
+#: lib/x509/output.c:1034 lib/x509/output.c:1049 lib/x509/output.c:1064
+#: lib/x509/output.c:1079 lib/x509/output.c:1090 lib/x509/output.c:1101
+#: lib/x509/output.c:1906 lib/x509/output.c:1929 lib/x509/output.c:1942
+msgid "not critical"
+msgstr "ne gravega"
+
+#: lib/x509/output.c:956
+#, c-format
+msgid "%s\t\tSubject Key Identifier (%s):\n"
+msgstr "%s\t\tTema ŝlosil-identiganto (%s):\n"
+
+#: lib/x509/output.c:973
+#, c-format
+msgid "%s\t\tAuthority Key Identifier (%s):\n"
+msgstr "%s\t\tAŭtoritata ŝlosil-identiganto (%s):\n"
+
+#: lib/x509/output.c:989
+#, c-format
+msgid "%s\t\tKey Usage (%s):\n"
+msgstr "%s\t\tŜlosila uzmaniero (%s):\n"
+
+#: lib/x509/output.c:1004
+#, fuzzy, c-format
+msgid "%s\t\tPrivate Key Usage Period (%s):\n"
+msgstr "%s\t\tŜlosila uzmaniero (%s):\n"
+
+#: lib/x509/output.c:1019
+#, c-format
+msgid "%s\t\tKey Purpose (%s):\n"
+msgstr "%s\t\tŜlosila celo (%s):\n"
+
+#: lib/x509/output.c:1033
+#, c-format
+msgid "%s\t\tSubject Alternative Name (%s):\n"
+msgstr "%s\t\tNomo de temo-alternativo (%s):\n"
+
+#: lib/x509/output.c:1048
+#, c-format
+msgid "%s\t\tIssuer Alternative Name (%s):\n"
+msgstr "%s\t\tNomo de eldonant-alternativo (%s):\n"
+
+#: lib/x509/output.c:1063
+#, c-format
+msgid "%s\t\tCRL Distribution points (%s):\n"
+msgstr "%s\t\tDistribu-pukntoj de CRL (%s):\n"
+
+#: lib/x509/output.c:1078
+#, c-format
+msgid "%s\t\tProxy Certificate Information (%s):\n"
+msgstr "%s\t\tProkuril-atestila informo (%s):\n"
+
+#: lib/x509/output.c:1088
+#, c-format
+msgid "%s\t\tAuthority Information Access (%s):\n"
+msgstr "%s\t\tAŭtoritat-informa aliro (%s):\n"
+
+#: lib/x509/output.c:1100
+#, c-format
+msgid "%s\t\tUnknown extension %s (%s):\n"
+msgstr "%s\t\tNekonata etendo %s (%s):\n"
+
+#: lib/x509/output.c:1147
+#, c-format
+msgid "%s\t\t\tASCII: "
+msgstr "%s\t\t\tASCII: "
+
+#: lib/x509/output.c:1151
+#, c-format
+msgid "%s\t\t\tHexdump: "
+msgstr "%s\t\t\t16-uma nekropsio: "
+
+#: lib/x509/output.c:1183
+msgid "\tSerial Number (hex): "
+msgstr "\tSeri-numero (16-ume): "
+
+#: lib/x509/output.c:1212 lib/x509/output.c:1820
+#, c-format
+msgid "\tIssuer: %s\n"
+msgstr "\tEldonanto: %s\n"
+
+#: lib/x509/output.c:1222
+msgid "\tValidity:\n"
+msgstr "\tValideco:\n"
+
+#: lib/x509/output.c:1235
+#, c-format
+msgid "\t\tNot Before: %s\n"
+msgstr "\t\tNe antaŭ ol: %s\n"
+
+#: lib/x509/output.c:1249
+#, c-format
+msgid "\t\tNot After: %s\n"
+msgstr "\t\tNe post: %s\n"
+
+#: lib/x509/output.c:1274 lib/x509/output.c:2150
+#, c-format
+msgid "\tSubject: %s\n"
+msgstr "\tTemo: %s\n"
+
+#: lib/x509/output.c:1297 lib/x509/output.c:2170
+#, c-format
+msgid "\tSubject Public Key Algorithm: %s\n"
+msgstr "\tTema publik-ŝlosila algoritmo: %s\n"
+
+#: lib/x509/output.c:1298
+#, c-format
+msgid "\tCertificate Security Level: %s (%d bits)\n"
+msgstr "\tAtestil-sekureca nivelo: %s (%d bitoj)\n"
+
+#: lib/x509/output.c:1329
+#, c-format
+msgid "\t\tExponent (bits %d):\n"
+msgstr "\t\tEksponanto (bitoj %d):\n"
+
+#: lib/x509/output.c:1350
+#, c-format
+msgid "\t\tCurve:\t%s\n"
+msgstr "\t\tKurbo:\t%s\n"
+
+#: lib/x509/output.c:1351
+msgid "\t\tX:\n"
+msgstr "\t\tX:\n"
+
+#: lib/x509/output.c:1353
+msgid "\t\tY:\n"
+msgstr "\t\tY:\n"
+
+#: lib/x509/output.c:1479
+msgid ""
+"\tMD5 fingerprint:\n"
+"\t\t"
+msgstr ""
+"\tFingropremo MD5:\n"
+"\t\t"
+
+#: lib/x509/output.c:1481
+msgid ""
+"\tSHA-1 fingerprint:\n"
+"\t\t"
+msgstr ""
+"\tFingropremo SHA-1:\n"
+"\t\t"
+
+#: lib/x509/output.c:1503 lib/x509/output.c:2387
+msgid ""
+"\tPublic Key Id:\n"
+"\t\t"
+msgstr ""
+"\tPublik-ŝlosila Id:\n"
+"\t\t"
+
+#: lib/x509/output.c:1519
+msgid "\tPublic key's random art:\n"
+msgstr "\tHazarda artaĵo de fingropremo:\n"
+
+#: lib/x509/output.c:1616
+#, c-format
+msgid "signed using %s (broken!), "
+msgstr "subskribita uzante %s (fuŝita!), "
+
+#: lib/x509/output.c:1618
+#, c-format
+msgid "signed using %s, "
+msgstr "subskribita uzante %s, "
+
+#: lib/x509/output.c:1732
+msgid "X.509 Certificate Information:\n"
+msgstr "Atestil-informo de X.509:\n"
+
+#: lib/x509/output.c:1736 lib/x509/output.c:2425
+msgid "Other Information:\n"
+msgstr "Alia informo:\n"
+
+#: lib/x509/output.c:1790
+msgid "\tVersion: 1 (default)\n"
+msgstr "\tVersio: 1 (apriora)\n"
+
+#: lib/x509/output.c:1830
+msgid "\tUpdate dates:\n"
+msgstr "\tĜisdatigaj datoj:\n"
+
+#: lib/x509/output.c:1843
+#, c-format
+msgid "\t\tIssued: %s\n"
+msgstr "\t\tEldonita: %s\n"
+
+#: lib/x509/output.c:1859
+#, c-format
+msgid "\t\tNext at: %s\n"
+msgstr "\t\tVenonta ĉe: %s\n"
+
+#: lib/x509/output.c:1890
+msgid "\tExtensions:\n"
+msgstr "\tEtendoj:\n"
+
+#: lib/x509/output.c:1905
+#, c-format
+msgid "\t\tCRL Number (%s): "
+msgstr "\t\tNumero CRL (%s): "
+
+#: lib/x509/output.c:1928
+#, c-format
+msgid "\t\tAuthority Key Identifier (%s):\n"
+msgstr "\t\tAŭtoritata ŝlosil-identiganto (%s):\n"
+
+#: lib/x509/output.c:1941
+#, c-format
+msgid "\t\tUnknown extension %s (%s):\n"
+msgstr "\t\tNekonata etendo %s (%s):\n"
+
+#: lib/x509/output.c:1991
+#, c-format
+msgid "\tRevoked certificates (%d):\n"
+msgstr "\tRevokitaj atestiloj (%d):\n"
+
+#: lib/x509/output.c:1993
+msgid "\tNo revoked certificates.\n"
+msgstr "\tNeniu revokita atestilo.\n"
+
+#: lib/x509/output.c:2012
+msgid "\t\tSerial Number (hex): "
+msgstr "\t\tSeri-numero (16-ume): "
+
+#: lib/x509/output.c:2021
+#, c-format
+msgid "\t\tRevoked at: %s\n"
+msgstr "\t\tRevokita ĉe: %s\n"
+
+#: lib/x509/output.c:2105
+msgid "X.509 Certificate Revocation List Information:\n"
+msgstr "Informo de atestil-revoka listo de X.509:\n"
+
+#: lib/x509/output.c:2252
+msgid "\tAttributes:\n"
+msgstr "\tAtributoj:\n"
+
+#: lib/x509/output.c:2304
+#, c-format
+msgid "\t\tChallenge password: %s\n"
+msgstr "\t\tDefia pasvorto: %s\n"
+
+#: lib/x509/output.c:2315
+#, c-format
+msgid "\t\tUnknown attribute %s:\n"
+msgstr "\t\tNekonata atributo %s:\n"
+
+#: lib/x509/output.c:2421
+msgid "PKCS #10 Certificate Request Information:\n"
+msgstr "Atestil-peta informo de PKCS #10:\n"
+
+#~ msgid "A large TLS record packet was received."
+#~ msgstr "Granda rikord-paketo TLS estis ricevata."
index b83691b..f83c169 100644 (file)
Binary files a/po/fi.gmo and b/po/fi.gmo differ
index a869392..8b7b752 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls 3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-01-28 16:24+0200\n"
 "Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -697,7 +697,12 @@ msgstr ""
 "Tarjottua X.599-varmenneluetteloa ei ole lajiteltu (aiheessa "
 "julkaisijajärjestys)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Pyyntö on virheellinen."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(tuntematon virhekoodi)"
 
@@ -933,7 +938,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tAllekirjoitus:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "OCSP-vastaustietoa:\n"
 
index 6f9710a..ebce757 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 44a8201..f441fe1 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls 2.8.5\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2009-12-29 21:15+0100\n"
 "Last-Translator: Nicolas Provost <nprovost@quadriv.com>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -730,7 +730,12 @@ msgid ""
 "order)"
 msgstr ""
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Requête incorrecte."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(code d'erreur inconnu)"
 
@@ -967,7 +972,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tSignature:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 #, fuzzy
 msgid "OCSP Response Information:\n"
 msgstr "Autres informations :\n"
index 5d54e78..87715fb 100644 (file)
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gnutls 3.0.21\n"
+"Project-Id-Version: gnutls 3.0.30\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -690,7 +690,11 @@ msgid ""
 "order)"
 msgstr ""
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+msgid "The OCSP response is invalid"
+msgstr ""
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr ""
 
@@ -922,7 +926,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr ""
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr ""
 
index 0ca0ac8..ec9ea10 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index 91d1693..5f41c8a 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls-3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-02-29 23:27+0100\n"
 "Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -701,7 +701,12 @@ msgstr ""
 "L'elenco di certificati X.509 fornito non è ordinato (dal soggetto "
 "all'emittente)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "La richiesta non è valida."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(codice di errore sconosciuto)"
 
@@ -937,7 +942,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tFirma:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "Informazioni sulla risposta OCSP:\n"
 
index e018f8f..aeaa34b 100644 (file)
Binary files a/po/ms.gmo and b/po/ms.gmo differ
index e41cc1e..72aa072 100644 (file)
--- a/po/ms.po
+++ b/po/ms.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnutls 2.5.7\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2008-11-01 00:39+0800\n"
 "Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
 "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
@@ -708,7 +708,12 @@ msgid ""
 "order)"
 msgstr ""
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Permintaan tidak sah."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(kod ralat tidak diketahui)"
 
@@ -948,7 +953,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tTandatangan:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 #, fuzzy
 msgid "OCSP Response Information:\n"
 msgstr "Maklumat Lain:\n"
index 5519e08..0acec16 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index 3c445bd..d42de79 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls-3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-01-21 16:53+0100\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -704,7 +704,12 @@ msgstr ""
 "De gegeven lijst van X.509-certificaten is niet gesorteerd (van onderwerp "
 "tot uitgever)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Het verzoek is ongeldig."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(onbekende foutcode)"
 
@@ -938,7 +943,7 @@ msgstr "Waarschuwing: ondertekend met een algoritme dat vervalst kan worden.\n"
 msgid "\tSignature:\n"
 msgstr "\tOndertekening:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "Informatie over OCSP-antwoord:\n"
 
index 1121051..442d7fc 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index a75615f..0c0c41e 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls-3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-01-20 20:45+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -695,7 +695,12 @@ msgstr ""
 "Przekazana lista certyfikatów X.509 nie jest posortowana (w kolejno¶ci "
 "wystawcy)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "¯±danie jest nieprawid³owe."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(nieznany kod b³êdu)"
 
@@ -930,7 +935,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tPodpis:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "Informacje o odpowiedzi OCSP:\n"
 
index 88bf070..911cf61 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index 896d43f..6567175 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls 3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-01-22 10:09+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -697,7 +697,12 @@ msgstr ""
 "Den tillhandahållna X.509-certifikatlistan är inte sorterad (sorterad enligt "
 "utfärdare)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Begäran är ogiltig."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(okänd felkod)"
 
@@ -931,7 +936,7 @@ msgstr "varning: signerad med en trasig signaturalgoritm som kan förfalskas.\n"
 msgid "\tSignature:\n"
 msgstr "\tSignatur:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "Information om OCSP-svar:\n"
 
index 5c5761d..60b8fd0 100644 (file)
Binary files a/po/uk.gmo and b/po/uk.gmo differ
index c117e45..1f8f2c9 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls 3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-01-20 18:50+0200\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -704,7 +704,12 @@ msgstr ""
 "Наданий список сертифікатів X.509 не впорядковано (за призначенням, потім "
 "видавцем)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Некоректний запит."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(невідомий код помилки)"
 
@@ -940,7 +945,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tПідпис:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "Дані відповіді OCSP:\n"
 
index e9c7924..07a70a0 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index 800f0d0..2bcec35 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls-3.0.12\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2012-03-29 08:53+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -701,7 +701,12 @@ msgstr ""
 "Danh sách giấy chứng thực X.509 đã cung cấp không được xắp xếp đúng (theo "
 "thứ tự từ chủ đề đến nhà phát hành)"
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "Yêu cầu không hợp lệ."
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(không rõ mã lỗi)"
 
@@ -936,7 +941,7 @@ msgstr ""
 msgid "\tSignature:\n"
 msgstr "\tChữ ký:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 msgid "OCSP Response Information:\n"
 msgstr "Thông tin OCSP Đáp ứng:\n"
 
index 1cacdc4..ea24604 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index ea9787f..72b2a52 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgnutls 2.8.1\n"
 "Report-Msgid-Bugs-To: bug-gnutls@gnu.org\n"
-"POT-Creation-Date: 2012-07-03 00:02+0200\n"
+"POT-Creation-Date: 2013-06-01 12:47+0200\n"
 "PO-Revision-Date: 2009-11-09 19:16+0800\n"
 "Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -705,7 +705,12 @@ msgid ""
 "order)"
 msgstr ""
 
-#: lib/gnutls_errors.c:422
+#: lib/gnutls_errors.c:337
+#, fuzzy
+msgid "The OCSP response is invalid"
+msgstr "请求无效。"
+
+#: lib/gnutls_errors.c:424
 msgid "(unknown error code)"
 msgstr "(未知错误代码)"
 
@@ -938,7 +943,7 @@ msgstr "警告:使用可伪造的签名算法进行了签名。\n"
 msgid "\tSignature:\n"
 msgstr "\t签名:\n"
 
-#: lib/x509/ocsp_output.c:614
+#: lib/x509/ocsp_output.c:619
 #, fuzzy
 msgid "OCSP Response Information:\n"
 msgstr "其它信息:\n"
index 8b3b578..378a71b 100644 (file)
@@ -72,7 +72,7 @@ libcmd_serv_la_SOURCES = serv-args.def serv-args.c serv-args.h
 if ENABLE_SRP
 srptool_SOURCES = srptool.c
 srptool_LDADD = ../lib/libgnutls.la libcmd-srp.la ../gl/libgnu.la 
-srptool_LDADD += $(LIBOPTS_LDADD) 
+srptool_LDADD += $(LIBOPTS_LDADD) $(LTLIBINTL)
 noinst_LTLIBRARIES += libcmd-srp.la
 libcmd_srp_la_CFLAGS =
 libcmd_srp_la_SOURCES = srptool-args.def srptool-args.c srptool-args.h
index a30a0c8..ccf4c1b 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -82,14 +99,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -345,7 +365,7 @@ am__srptool_SOURCES_DIST = srptool.c
 srptool_OBJECTS = $(am_srptool_OBJECTS)
 @ENABLE_SRP_TRUE@srptool_DEPENDENCIES = ../lib/libgnutls.la \
 @ENABLE_SRP_TRUE@      libcmd-srp.la ../gl/libgnu.la \
-@ENABLE_SRP_TRUE@      $(am__DEPENDENCIES_1)
+@ENABLE_SRP_TRUE@      $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
@@ -397,6 +417,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -748,6 +773,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -1033,7 +1059,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -1107,6 +1132,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1242,8 +1268,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1262,7 +1288,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1493,6 +1518,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1690,7 +1716,7 @@ libcmd_serv_la_CFLAGS =
 libcmd_serv_la_SOURCES = serv-args.def serv-args.c serv-args.h
 @ENABLE_SRP_TRUE@srptool_SOURCES = srptool.c
 @ENABLE_SRP_TRUE@srptool_LDADD = ../lib/libgnutls.la libcmd-srp.la \
-@ENABLE_SRP_TRUE@      ../gl/libgnu.la $(LIBOPTS_LDADD)
+@ENABLE_SRP_TRUE@      ../gl/libgnu.la $(LIBOPTS_LDADD) $(LTLIBINTL)
 @ENABLE_SRP_TRUE@libcmd_srp_la_CFLAGS = 
 @ENABLE_SRP_TRUE@libcmd_srp_la_SOURCES = srptool-args.def srptool-args.c srptool-args.h
 @ENABLE_OCSP_TRUE@ocsptool_SOURCES = ocsptool.c ocsptool-common.h ocsptool-common.c \
@@ -1815,8 +1841,11 @@ libcmd-srp.la: $(libcmd_srp_la_OBJECTS) $(libcmd_srp_la_DEPENDENCIES) $(EXTRA_li
        $(AM_V_CCLD)$(libcmd_srp_la_LINK) $(am_libcmd_srp_la_rpath) $(libcmd_srp_la_OBJECTS) $(libcmd_srp_la_LIBADD) $(LIBS)
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
        @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+       fi; \
        for p in $$list; do echo "$$p $$p"; done | \
        sed 's/$(EXEEXT)$$//' | \
        while read p p1; do if test -f $$p || test -f $$p1; \
@@ -2182,13 +2211,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
index 1567777..7b24bca 100644 (file)
@@ -5,7 +5,7 @@ gnu-usage;
 disable-save;
 long-opts;
 no-xlate        = opt;
-version         = "3.0.21";
+version         = "3.0.30";
 no-misuse-usage;
 export          = '#include <gettext.h>';
 
index 03be9f4..900786d 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (certtool-args.c)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:38 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:07 PM by AutoGen 5.17.3
  *  From the definitions    certtool-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  certtool 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.
- *  
+ *
  *  certtool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (certtool_opt_strs+0)
-#define zLicenseDescrip (certtool_opt_strs+276)
+#define zLicenseDescrip (certtool_opt_strs+272)
 
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
-/*
- *  certtool option static const strings
+/**
+ *  static const strings for certtool options
  */
-static char const certtool_opt_strs[4597] =
-/*     0 */ "certtool 3.0.21\n"
+static char const certtool_opt_strs[4583] =
+/*     0 */ "certtool 3.0.30\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   276 */ "certtool is free software: you can redistribute it and/or modify it under\n"
+            "redistribution under the terms of the GNU General Public License,\n"
+            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
+/*   272 */ "certtool is free software: you can redistribute it and/or modify it under\n"
             "the terms of the GNU General Public License as published by the Free\n"
             "Software Foundation, either version 3 of the License, or (at your option)\n"
             "any later version.\n\n"
@@ -84,643 +79,859 @@ static char const certtool_opt_strs[4597] =
             "details.\n\n"
             "You should have received a copy of the GNU General Public License along\n"
             "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   881 */ "Enable debugging.\0"
-/*   899 */ "DEBUG\0"
-/*   905 */ "debug\0"
-/*   911 */ "Input file\0"
-/*   922 */ "INFILE\0"
-/*   929 */ "infile\0"
-/*   936 */ "Output file\0"
-/*   948 */ "OUTFILE\0"
-/*   956 */ "outfile\0"
-/*   964 */ "Generate a self-signed certificate\0"
-/*   999 */ "GENERATE_SELF_SIGNED\0"
-/*  1020 */ "generate-self-signed\0"
-/*  1041 */ "Generate a signed certificate\0"
-/*  1071 */ "GENERATE_CERTIFICATE\0"
-/*  1092 */ "generate-certificate\0"
-/*  1113 */ "Generates a proxy certificate\0"
-/*  1143 */ "GENERATE_PROXY\0"
-/*  1158 */ "generate-proxy\0"
-/*  1173 */ "Generate a CRL\0"
-/*  1188 */ "GENERATE_CRL\0"
-/*  1201 */ "generate-crl\0"
-/*  1214 */ "Update a signed certificate\0"
-/*  1242 */ "UPDATE_CERTIFICATE\0"
-/*  1261 */ "update-certificate\0"
-/*  1280 */ "Generate a private key\0"
-/*  1303 */ "GENERATE_PRIVKEY\0"
-/*  1320 */ "generate-privkey\0"
-/*  1337 */ "Generate a PKCS #10 certificate request\0"
-/*  1377 */ "GENERATE_REQUEST\0"
-/*  1394 */ "generate-request\0"
-/*  1411 */ "Verify a PEM encoded certificate chain.\0"
-/*  1451 */ "VERIFY_CHAIN\0"
-/*  1464 */ "verify-chain\0"
-/*  1477 */ "Verify a PEM encoded certificate chain using a trusted list.\0"
-/*  1538 */ "VERIFY\0"
-/*  1545 */ "verify\0"
-/*  1552 */ "Verify a CRL using a trusted list.\0"
-/*  1587 */ "VERIFY_CRL\0"
-/*  1598 */ "verify-crl\0"
-/*  1609 */ "Generate PKCS #3 encoded Diffie-Hellman parameters.\0"
-/*  1661 */ "GENERATE_DH_PARAMS\0"
-/*  1680 */ "generate-dh-params\0"
-/*  1699 */ "Get the included PKCS #3 encoded Diffie-Hellman parameters.\0"
-/*  1759 */ "GET_DH_PARAMS\0"
-/*  1773 */ "get-dh-params\0"
-/*  1787 */ "Print information PKCS #3 encoded Diffie-Hellman parameters\0"
-/*  1847 */ "DH_INFO\0"
-/*  1855 */ "dh-info\0"
-/*  1863 */ "Loads a private key file\0"
-/*  1888 */ "LOAD_PRIVKEY\0"
-/*  1901 */ "load-privkey\0"
-/*  1914 */ "Loads a public key file\0"
-/*  1938 */ "LOAD_PUBKEY\0"
-/*  1950 */ "load-pubkey\0"
-/*  1962 */ "Loads a certificate request file\0"
-/*  1995 */ "LOAD_REQUEST\0"
-/*  2008 */ "load-request\0"
-/*  2021 */ "Loads a certificate file\0"
-/*  2046 */ "LOAD_CERTIFICATE\0"
-/*  2063 */ "load-certificate\0"
-/*  2080 */ "Loads the certificate authority's private key file\0"
-/*  2131 */ "LOAD_CA_PRIVKEY\0"
-/*  2147 */ "load-ca-privkey\0"
-/*  2163 */ "Loads the certificate authority's certificate file\0"
-/*  2214 */ "LOAD_CA_CERTIFICATE\0"
-/*  2234 */ "load-ca-certificate\0"
-/*  2254 */ "Password to use\0"
-/*  2270 */ "PASSWORD\0"
-/*  2279 */ "password\0"
-/*  2288 */ "Print information on the given certificate\0"
-/*  2331 */ "CERTIFICATE_INFO\0"
-/*  2348 */ "certificate-info\0"
-/*  2365 */ "Print certificate's public key\0"
-/*  2396 */ "CERTIFICATE_PUBKEY\0"
-/*  2415 */ "certificate-pubkey\0"
-/*  2434 */ "Print information on the given OpenPGP certificate\0"
-/*  2485 */ "PGP_CERTIFICATE_INFO\0"
-/*  2506 */ "pgp-certificate-info\0"
-/*  2527 */ "Print information on the given OpenPGP keyring structure\0"
-/*  2584 */ "PGP_RING_INFO\0"
-/*  2598 */ "pgp-ring-info\0"
-/*  2612 */ "Print information on the given CRL structure\0"
-/*  2657 */ "CRL_INFO\0"
-/*  2666 */ "crl-info\0"
-/*  2675 */ "Print information on the given certificate request\0"
-/*  2726 */ "CRQ_INFO\0"
-/*  2735 */ "crq-info\0"
-/*  2744 */ "Do not use extensions in certificate requests\0"
-/*  2790 */ "NO_CRQ_EXTENSIONS\0"
-/*  2808 */ "no-crq-extensions\0"
-/*  2826 */ "Print information on a PKCS #12 structure\0"
-/*  2868 */ "P12_INFO\0"
-/*  2877 */ "p12-info\0"
-/*  2886 */ "Print information on a PKCS #7 structure\0"
-/*  2927 */ "P7_INFO\0"
-/*  2935 */ "p7-info\0"
-/*  2943 */ "Convert S/MIME to PKCS #7 structure\0"
-/*  2979 */ "SMIME_TO_P7\0"
-/*  2991 */ "smime-to-p7\0"
-/*  3003 */ "Print information on a private key\0"
-/*  3038 */ "KEY_INFO\0"
-/*  3047 */ "key-info\0"
-/*  3056 */ "Print information on an OpenPGP private key\0"
-/*  3100 */ "PGP_KEY_INFO\0"
-/*  3113 */ "pgp-key-info\0"
-/*  3126 */ "Print information on a public key\0"
-/*  3160 */ "PUBKEY_INFO\0"
-/*  3172 */ "pubkey-info\0"
-/*  3184 */ "Generate an X.509 version 1 certificate (with no extensions)\0"
-/*  3245 */ "V1\0"
-/*  3248 */ "v1\0"
-/*  3251 */ "Generate a PKCS #12 structure\0"
-/*  3281 */ "TO_P12\0"
-/*  3288 */ "to-p12\0"
-/*  3295 */ "Generate a PKCS #8 structure\0"
-/*  3324 */ "TO_P8\0"
-/*  3330 */ "to-p8\0"
-/*  3336 */ "Use PKCS #8 format for private keys\0"
-/*  3372 */ "PKCS8\0"
-/*  3378 */ "pkcs8\0"
-/*  3384 */ "Generate RSA key\0"
-/*  3401 */ "RSA\0"
-/*  3405 */ "rsa\0"
-/*  3409 */ "Generate DSA key\0"
-/*  3426 */ "DSA\0"
-/*  3430 */ "dsa\0"
-/*  3434 */ "Generate ECC (ECDSA) key\0"
-/*  3459 */ "ECC\0"
-/*  3463 */ "ecc\0"
-/*  3467 */ "Hash algorithm to use for signing.\0"
-/*  3502 */ "HASH\0"
-/*  3507 */ "hash\0"
-/*  3512 */ "Use DER format for input certificates and private keys.\0"
-/*  3568 */ "INDER\0"
-/*  3574 */ "no-inder\0"
-/*  3583 */ "no\0"
-/*  3586 */ "This is an alias for 'inder'\0"
-/*  3615 */ "inraw\0"
-/*  3621 */ "Use DER format for output certificates and private keys\0"
-/*  3677 */ "OUTDER\0"
-/*  3684 */ "no-outder\0"
-/*  3694 */ "This is an alias for 'outder'\0"
-/*  3724 */ "outraw\0"
-/*  3731 */ "Specify the number of bits for key generate\0"
-/*  3775 */ "BITS\0"
-/*  3780 */ "bits\0"
-/*  3785 */ "Specify the security level [low, legacy, normal, high, ultra].\0"
-/*  3848 */ "SEC_PARAM\0"
-/*  3858 */ "sec-param\0"
-/*  3868 */ "No effect\0"
-/*  3878 */ "DISABLE_QUICK_RANDOM\0"
-/*  3899 */ "disable-quick-random\0"
-/*  3920 */ "Template file to use for non-interactive operation\0"
-/*  3971 */ "TEMPLATE\0"
-/*  3980 */ "template\0"
-/*  3989 */ "Cipher to use for PKCS #8 and #12 operations\0"
-/*  4034 */ "PKCS_CIPHER\0"
-/*  4046 */ "pkcs-cipher\0"
-/*  4058 */ "Display extended usage information and exit\0"
-/*  4102 */ "help\0"
-/*  4107 */ "Extended usage information passed thru pager\0"
-/*  4152 */ "more-help\0"
-/*  4162 */ "Output version information and exit\0"
-/*  4198 */ "version\0"
-/*  4206 */ "CERTTOOL\0"
-/*  4215 */ "certtool - GnuTLS PKCS #11 tool - Ver. 3.0.21\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/*  4319 */ "bug-gnutls@gnu.org\0"
-/*  4338 */ "\n\n\0"
-/*  4341 */ "\n"
-            "Tool to parse and generate X.509 certificates, requests and private keys.\n"
+/*   877 */ "Enable debugging.\0"
+/*   895 */ "DEBUG\0"
+/*   901 */ "debug\0"
+/*   907 */ "Input file\0"
+/*   918 */ "INFILE\0"
+/*   925 */ "infile\0"
+/*   932 */ "Output file\0"
+/*   944 */ "OUTFILE\0"
+/*   952 */ "outfile\0"
+/*   960 */ "Generate a self-signed certificate\0"
+/*   995 */ "GENERATE_SELF_SIGNED\0"
+/*  1016 */ "generate-self-signed\0"
+/*  1037 */ "Generate a signed certificate\0"
+/*  1067 */ "GENERATE_CERTIFICATE\0"
+/*  1088 */ "generate-certificate\0"
+/*  1109 */ "Generates a proxy certificate\0"
+/*  1139 */ "GENERATE_PROXY\0"
+/*  1154 */ "generate-proxy\0"
+/*  1169 */ "Generate a CRL\0"
+/*  1184 */ "GENERATE_CRL\0"
+/*  1197 */ "generate-crl\0"
+/*  1210 */ "Update a signed certificate\0"
+/*  1238 */ "UPDATE_CERTIFICATE\0"
+/*  1257 */ "update-certificate\0"
+/*  1276 */ "Generate a private key\0"
+/*  1299 */ "GENERATE_PRIVKEY\0"
+/*  1316 */ "generate-privkey\0"
+/*  1333 */ "Generate a PKCS #10 certificate request\0"
+/*  1373 */ "GENERATE_REQUEST\0"
+/*  1390 */ "generate-request\0"
+/*  1407 */ "Verify a PEM encoded certificate chain.\0"
+/*  1447 */ "VERIFY_CHAIN\0"
+/*  1460 */ "verify-chain\0"
+/*  1473 */ "Verify a PEM encoded certificate chain using a trusted list.\0"
+/*  1534 */ "VERIFY\0"
+/*  1541 */ "verify\0"
+/*  1548 */ "Verify a CRL using a trusted list.\0"
+/*  1583 */ "VERIFY_CRL\0"
+/*  1594 */ "verify-crl\0"
+/*  1605 */ "Generate PKCS #3 encoded Diffie-Hellman parameters.\0"
+/*  1657 */ "GENERATE_DH_PARAMS\0"
+/*  1676 */ "generate-dh-params\0"
+/*  1695 */ "Get the included PKCS #3 encoded Diffie-Hellman parameters.\0"
+/*  1755 */ "GET_DH_PARAMS\0"
+/*  1769 */ "get-dh-params\0"
+/*  1783 */ "Print information PKCS #3 encoded Diffie-Hellman parameters\0"
+/*  1843 */ "DH_INFO\0"
+/*  1851 */ "dh-info\0"
+/*  1859 */ "Loads a private key file\0"
+/*  1884 */ "LOAD_PRIVKEY\0"
+/*  1897 */ "load-privkey\0"
+/*  1910 */ "Loads a public key file\0"
+/*  1934 */ "LOAD_PUBKEY\0"
+/*  1946 */ "load-pubkey\0"
+/*  1958 */ "Loads a certificate request file\0"
+/*  1991 */ "LOAD_REQUEST\0"
+/*  2004 */ "load-request\0"
+/*  2017 */ "Loads a certificate file\0"
+/*  2042 */ "LOAD_CERTIFICATE\0"
+/*  2059 */ "load-certificate\0"
+/*  2076 */ "Loads the certificate authority's private key file\0"
+/*  2127 */ "LOAD_CA_PRIVKEY\0"
+/*  2143 */ "load-ca-privkey\0"
+/*  2159 */ "Loads the certificate authority's certificate file\0"
+/*  2210 */ "LOAD_CA_CERTIFICATE\0"
+/*  2230 */ "load-ca-certificate\0"
+/*  2250 */ "Password to use\0"
+/*  2266 */ "PASSWORD\0"
+/*  2275 */ "password\0"
+/*  2284 */ "Print information on the given certificate\0"
+/*  2327 */ "CERTIFICATE_INFO\0"
+/*  2344 */ "certificate-info\0"
+/*  2361 */ "Print certificate's public key\0"
+/*  2392 */ "CERTIFICATE_PUBKEY\0"
+/*  2411 */ "certificate-pubkey\0"
+/*  2430 */ "Print information on the given OpenPGP certificate\0"
+/*  2481 */ "PGP_CERTIFICATE_INFO\0"
+/*  2502 */ "pgp-certificate-info\0"
+/*  2523 */ "Print information on the given OpenPGP keyring structure\0"
+/*  2580 */ "PGP_RING_INFO\0"
+/*  2594 */ "pgp-ring-info\0"
+/*  2608 */ "Print information on the given CRL structure\0"
+/*  2653 */ "CRL_INFO\0"
+/*  2662 */ "crl-info\0"
+/*  2671 */ "Print information on the given certificate request\0"
+/*  2722 */ "CRQ_INFO\0"
+/*  2731 */ "crq-info\0"
+/*  2740 */ "Do not use extensions in certificate requests\0"
+/*  2786 */ "NO_CRQ_EXTENSIONS\0"
+/*  2804 */ "no-crq-extensions\0"
+/*  2822 */ "Print information on a PKCS #12 structure\0"
+/*  2864 */ "P12_INFO\0"
+/*  2873 */ "p12-info\0"
+/*  2882 */ "Print information on a PKCS #7 structure\0"
+/*  2923 */ "P7_INFO\0"
+/*  2931 */ "p7-info\0"
+/*  2939 */ "Convert S/MIME to PKCS #7 structure\0"
+/*  2975 */ "SMIME_TO_P7\0"
+/*  2987 */ "smime-to-p7\0"
+/*  2999 */ "Print information on a private key\0"
+/*  3034 */ "KEY_INFO\0"
+/*  3043 */ "key-info\0"
+/*  3052 */ "Print information on an OpenPGP private key\0"
+/*  3096 */ "PGP_KEY_INFO\0"
+/*  3109 */ "pgp-key-info\0"
+/*  3122 */ "Print information on a public key\0"
+/*  3156 */ "PUBKEY_INFO\0"
+/*  3168 */ "pubkey-info\0"
+/*  3180 */ "Generate an X.509 version 1 certificate (with no extensions)\0"
+/*  3241 */ "V1\0"
+/*  3244 */ "v1\0"
+/*  3247 */ "Generate a PKCS #12 structure\0"
+/*  3277 */ "TO_P12\0"
+/*  3284 */ "to-p12\0"
+/*  3291 */ "Generate a PKCS #8 structure\0"
+/*  3320 */ "TO_P8\0"
+/*  3326 */ "to-p8\0"
+/*  3332 */ "Use PKCS #8 format for private keys\0"
+/*  3368 */ "PKCS8\0"
+/*  3374 */ "pkcs8\0"
+/*  3380 */ "Generate RSA key\0"
+/*  3397 */ "RSA\0"
+/*  3401 */ "rsa\0"
+/*  3405 */ "Generate DSA key\0"
+/*  3422 */ "DSA\0"
+/*  3426 */ "dsa\0"
+/*  3430 */ "Generate ECC (ECDSA) key\0"
+/*  3455 */ "ECC\0"
+/*  3459 */ "ecc\0"
+/*  3463 */ "Hash algorithm to use for signing.\0"
+/*  3498 */ "HASH\0"
+/*  3503 */ "hash\0"
+/*  3508 */ "Use DER format for input certificates and private keys.\0"
+/*  3564 */ "INDER\0"
+/*  3570 */ "no-inder\0"
+/*  3579 */ "no\0"
+/*  3582 */ "an alias for the 'inder' option\0"
+/*  3614 */ "inraw\0"
+/*  3620 */ "Use DER format for output certificates and private keys\0"
+/*  3676 */ "OUTDER\0"
+/*  3683 */ "no-outder\0"
+/*  3693 */ "an alias for the 'outder' option\0"
+/*  3726 */ "outraw\0"
+/*  3733 */ "Specify the number of bits for key generate\0"
+/*  3777 */ "BITS\0"
+/*  3782 */ "bits\0"
+/*  3787 */ "Specify the security level [low, legacy, normal, high, ultra].\0"
+/*  3850 */ "SEC_PARAM\0"
+/*  3860 */ "sec-param\0"
+/*  3870 */ "No effect\0"
+/*  3880 */ "DISABLE_QUICK_RANDOM\0"
+/*  3901 */ "disable-quick-random\0"
+/*  3922 */ "Template file to use for non-interactive operation\0"
+/*  3973 */ "TEMPLATE\0"
+/*  3982 */ "template\0"
+/*  3991 */ "Cipher to use for PKCS #8 and #12 operations\0"
+/*  4036 */ "PKCS_CIPHER\0"
+/*  4048 */ "pkcs-cipher\0"
+/*  4060 */ "display extended usage information and exit\0"
+/*  4104 */ "help\0"
+/*  4109 */ "extended usage information passed thru pager\0"
+/*  4154 */ "more-help\0"
+/*  4164 */ "output version information and exit\0"
+/*  4200 */ "version\0"
+/*  4208 */ "CERTTOOL\0"
+/*  4217 */ "certtool - GnuTLS PKCS #11 tool\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/*  4307 */ "bug-gnutls@gnu.org\0"
+/*  4326 */ "\n\0"
+/*  4328 */ "Tool to parse and generate X.509 certificates, requests and private keys.\n"
             "It can be used interactively or non interactively by specifying the\n"
             "template command line option.\n\0"
-/*  4515 */ "certtool 3.0.21\0"
-/*  4531 */ "certtool [options] [url]\n"
+/*  4501 */ "certtool 3.0.30\0"
+/*  4517 */ "certtool [options] [url]\n"
             "certtool --help for usage instructions.\n";
 
-/*
+/**
  *  debug option description:
  */
-#define DEBUG_DESC      (certtool_opt_strs+881)
-#define DEBUG_NAME      (certtool_opt_strs+899)
-#define DEBUG_name      (certtool_opt_strs+905)
+/** Descriptive text for the debug option */
+#define DEBUG_DESC      (certtool_opt_strs+877)
+/** Upper-cased name for the debug option */
+#define DEBUG_NAME      (certtool_opt_strs+895)
+/** Name string for the debug option */
+#define DEBUG_name      (certtool_opt_strs+901)
+/** Compiled in flag settings for the debug option */
 #define DEBUG_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  infile option description:
  */
-#define INFILE_DESC      (certtool_opt_strs+911)
-#define INFILE_NAME      (certtool_opt_strs+922)
-#define INFILE_name      (certtool_opt_strs+929)
+/** Descriptive text for the infile option */
+#define INFILE_DESC      (certtool_opt_strs+907)
+/** Upper-cased name for the infile option */
+#define INFILE_NAME      (certtool_opt_strs+918)
+/** Name string for the infile option */
+#define INFILE_name      (certtool_opt_strs+925)
+/** Compiled in flag settings for the infile option */
 #define INFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  outfile option description:
  */
-#define OUTFILE_DESC      (certtool_opt_strs+936)
-#define OUTFILE_NAME      (certtool_opt_strs+948)
-#define OUTFILE_name      (certtool_opt_strs+956)
+/** Descriptive text for the outfile option */
+#define OUTFILE_DESC      (certtool_opt_strs+932)
+/** Upper-cased name for the outfile option */
+#define OUTFILE_NAME      (certtool_opt_strs+944)
+/** Name string for the outfile option */
+#define OUTFILE_name      (certtool_opt_strs+952)
+/** Compiled in flag settings for the outfile option */
 #define OUTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  generate-self-signed option description:
  */
-#define GENERATE_SELF_SIGNED_DESC      (certtool_opt_strs+964)
-#define GENERATE_SELF_SIGNED_NAME      (certtool_opt_strs+999)
-#define GENERATE_SELF_SIGNED_name      (certtool_opt_strs+1020)
+/** Descriptive text for the generate-self-signed option */
+#define GENERATE_SELF_SIGNED_DESC      (certtool_opt_strs+960)
+/** Upper-cased name for the generate-self-signed option */
+#define GENERATE_SELF_SIGNED_NAME      (certtool_opt_strs+995)
+/** Name string for the generate-self-signed option */
+#define GENERATE_SELF_SIGNED_name      (certtool_opt_strs+1016)
+/** Compiled in flag settings for the generate-self-signed option */
 #define GENERATE_SELF_SIGNED_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-certificate option description:
  */
-#define GENERATE_CERTIFICATE_DESC      (certtool_opt_strs+1041)
-#define GENERATE_CERTIFICATE_NAME      (certtool_opt_strs+1071)
-#define GENERATE_CERTIFICATE_name      (certtool_opt_strs+1092)
+/** Descriptive text for the generate-certificate option */
+#define GENERATE_CERTIFICATE_DESC      (certtool_opt_strs+1037)
+/** Upper-cased name for the generate-certificate option */
+#define GENERATE_CERTIFICATE_NAME      (certtool_opt_strs+1067)
+/** Name string for the generate-certificate option */
+#define GENERATE_CERTIFICATE_name      (certtool_opt_strs+1088)
+/** Compiled in flag settings for the generate-certificate option */
 #define GENERATE_CERTIFICATE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-proxy option description:
  */
-#define GENERATE_PROXY_DESC      (certtool_opt_strs+1113)
-#define GENERATE_PROXY_NAME      (certtool_opt_strs+1143)
-#define GENERATE_PROXY_name      (certtool_opt_strs+1158)
+/** Descriptive text for the generate-proxy option */
+#define GENERATE_PROXY_DESC      (certtool_opt_strs+1109)
+/** Upper-cased name for the generate-proxy option */
+#define GENERATE_PROXY_NAME      (certtool_opt_strs+1139)
+/** Name string for the generate-proxy option */
+#define GENERATE_PROXY_name      (certtool_opt_strs+1154)
+/** Compiled in flag settings for the generate-proxy option */
 #define GENERATE_PROXY_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-crl option description:
  */
-#define GENERATE_CRL_DESC      (certtool_opt_strs+1173)
-#define GENERATE_CRL_NAME      (certtool_opt_strs+1188)
-#define GENERATE_CRL_name      (certtool_opt_strs+1201)
+/** Descriptive text for the generate-crl option */
+#define GENERATE_CRL_DESC      (certtool_opt_strs+1169)
+/** Upper-cased name for the generate-crl option */
+#define GENERATE_CRL_NAME      (certtool_opt_strs+1184)
+/** Name string for the generate-crl option */
+#define GENERATE_CRL_name      (certtool_opt_strs+1197)
+/** Compiled in flag settings for the generate-crl option */
 #define GENERATE_CRL_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  update-certificate option description:
  */
-#define UPDATE_CERTIFICATE_DESC      (certtool_opt_strs+1214)
-#define UPDATE_CERTIFICATE_NAME      (certtool_opt_strs+1242)
-#define UPDATE_CERTIFICATE_name      (certtool_opt_strs+1261)
+/** Descriptive text for the update-certificate option */
+#define UPDATE_CERTIFICATE_DESC      (certtool_opt_strs+1210)
+/** Upper-cased name for the update-certificate option */
+#define UPDATE_CERTIFICATE_NAME      (certtool_opt_strs+1238)
+/** Name string for the update-certificate option */
+#define UPDATE_CERTIFICATE_name      (certtool_opt_strs+1257)
+/** Compiled in flag settings for the update-certificate option */
 #define UPDATE_CERTIFICATE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-privkey option description:
  */
-#define GENERATE_PRIVKEY_DESC      (certtool_opt_strs+1280)
-#define GENERATE_PRIVKEY_NAME      (certtool_opt_strs+1303)
-#define GENERATE_PRIVKEY_name      (certtool_opt_strs+1320)
+/** Descriptive text for the generate-privkey option */
+#define GENERATE_PRIVKEY_DESC      (certtool_opt_strs+1276)
+/** Upper-cased name for the generate-privkey option */
+#define GENERATE_PRIVKEY_NAME      (certtool_opt_strs+1299)
+/** Name string for the generate-privkey option */
+#define GENERATE_PRIVKEY_name      (certtool_opt_strs+1316)
+/** Compiled in flag settings for the generate-privkey option */
 #define GENERATE_PRIVKEY_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-request option description:
  */
-#define GENERATE_REQUEST_DESC      (certtool_opt_strs+1337)
-#define GENERATE_REQUEST_NAME      (certtool_opt_strs+1377)
-#define GENERATE_REQUEST_name      (certtool_opt_strs+1394)
+/** Descriptive text for the generate-request option */
+#define GENERATE_REQUEST_DESC      (certtool_opt_strs+1333)
+/** Upper-cased name for the generate-request option */
+#define GENERATE_REQUEST_NAME      (certtool_opt_strs+1373)
+/** Name string for the generate-request option */
+#define GENERATE_REQUEST_name      (certtool_opt_strs+1390)
+/** Compiled in flag settings for the generate-request option */
 #define GENERATE_REQUEST_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  verify-chain option description:
  */
-#define VERIFY_CHAIN_DESC      (certtool_opt_strs+1411)
-#define VERIFY_CHAIN_NAME      (certtool_opt_strs+1451)
-#define VERIFY_CHAIN_name      (certtool_opt_strs+1464)
+/** Descriptive text for the verify-chain option */
+#define VERIFY_CHAIN_DESC      (certtool_opt_strs+1407)
+/** Upper-cased name for the verify-chain option */
+#define VERIFY_CHAIN_NAME      (certtool_opt_strs+1447)
+/** Name string for the verify-chain option */
+#define VERIFY_CHAIN_name      (certtool_opt_strs+1460)
+/** Compiled in flag settings for the verify-chain option */
 #define VERIFY_CHAIN_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  verify option description with
  *  "Must also have options" and "Incompatible options":
  */
-#define VERIFY_DESC      (certtool_opt_strs+1477)
-#define VERIFY_NAME      (certtool_opt_strs+1538)
-#define VERIFY_name      (certtool_opt_strs+1545)
+/** Descriptive text for the verify option */
+#define VERIFY_DESC      (certtool_opt_strs+1473)
+/** Upper-cased name for the verify option */
+#define VERIFY_NAME      (certtool_opt_strs+1534)
+/** Name string for the verify option */
+#define VERIFY_name      (certtool_opt_strs+1541)
+/** Other options that are required by the verify option */
 static int const aVerifyMustList[] = {
     INDEX_OPT_LOAD_CA_CERTIFICATE, NO_EQUIVALENT };
+/** Compiled in flag settings for the verify option */
 #define VERIFY_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  verify-crl option description with
  *  "Must also have options" and "Incompatible options":
  */
-#define VERIFY_CRL_DESC      (certtool_opt_strs+1552)
-#define VERIFY_CRL_NAME      (certtool_opt_strs+1587)
-#define VERIFY_CRL_name      (certtool_opt_strs+1598)
+/** Descriptive text for the verify-crl option */
+#define VERIFY_CRL_DESC      (certtool_opt_strs+1548)
+/** Upper-cased name for the verify-crl option */
+#define VERIFY_CRL_NAME      (certtool_opt_strs+1583)
+/** Name string for the verify-crl option */
+#define VERIFY_CRL_name      (certtool_opt_strs+1594)
+/** Other options that are required by the verify-crl option */
 static int const aVerify_CrlMustList[] = {
     INDEX_OPT_LOAD_CA_CERTIFICATE, NO_EQUIVALENT };
+/** Compiled in flag settings for the verify-crl option */
 #define VERIFY_CRL_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-dh-params option description:
  */
-#define GENERATE_DH_PARAMS_DESC      (certtool_opt_strs+1609)
-#define GENERATE_DH_PARAMS_NAME      (certtool_opt_strs+1661)
-#define GENERATE_DH_PARAMS_name      (certtool_opt_strs+1680)
+/** Descriptive text for the generate-dh-params option */
+#define GENERATE_DH_PARAMS_DESC      (certtool_opt_strs+1605)
+/** Upper-cased name for the generate-dh-params option */
+#define GENERATE_DH_PARAMS_NAME      (certtool_opt_strs+1657)
+/** Name string for the generate-dh-params option */
+#define GENERATE_DH_PARAMS_name      (certtool_opt_strs+1676)
+/** Compiled in flag settings for the generate-dh-params option */
 #define GENERATE_DH_PARAMS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  get-dh-params option description:
  */
-#define GET_DH_PARAMS_DESC      (certtool_opt_strs+1699)
-#define GET_DH_PARAMS_NAME      (certtool_opt_strs+1759)
-#define GET_DH_PARAMS_name      (certtool_opt_strs+1773)
+/** Descriptive text for the get-dh-params option */
+#define GET_DH_PARAMS_DESC      (certtool_opt_strs+1695)
+/** Upper-cased name for the get-dh-params option */
+#define GET_DH_PARAMS_NAME      (certtool_opt_strs+1755)
+/** Name string for the get-dh-params option */
+#define GET_DH_PARAMS_name      (certtool_opt_strs+1769)
+/** Compiled in flag settings for the get-dh-params option */
 #define GET_DH_PARAMS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  dh-info option description:
  */
-#define DH_INFO_DESC      (certtool_opt_strs+1787)
-#define DH_INFO_NAME      (certtool_opt_strs+1847)
-#define DH_INFO_name      (certtool_opt_strs+1855)
+/** Descriptive text for the dh-info option */
+#define DH_INFO_DESC      (certtool_opt_strs+1783)
+/** Upper-cased name for the dh-info option */
+#define DH_INFO_NAME      (certtool_opt_strs+1843)
+/** Name string for the dh-info option */
+#define DH_INFO_name      (certtool_opt_strs+1851)
+/** Compiled in flag settings for the dh-info option */
 #define DH_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  load-privkey option description:
  */
-#define LOAD_PRIVKEY_DESC      (certtool_opt_strs+1863)
-#define LOAD_PRIVKEY_NAME      (certtool_opt_strs+1888)
-#define LOAD_PRIVKEY_name      (certtool_opt_strs+1901)
+/** Descriptive text for the load-privkey option */
+#define LOAD_PRIVKEY_DESC      (certtool_opt_strs+1859)
+/** Upper-cased name for the load-privkey option */
+#define LOAD_PRIVKEY_NAME      (certtool_opt_strs+1884)
+/** Name string for the load-privkey option */
+#define LOAD_PRIVKEY_name      (certtool_opt_strs+1897)
+/** Compiled in flag settings for the load-privkey option */
 #define LOAD_PRIVKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  load-pubkey option description:
  */
-#define LOAD_PUBKEY_DESC      (certtool_opt_strs+1914)
-#define LOAD_PUBKEY_NAME      (certtool_opt_strs+1938)
-#define LOAD_PUBKEY_name      (certtool_opt_strs+1950)
+/** Descriptive text for the load-pubkey option */
+#define LOAD_PUBKEY_DESC      (certtool_opt_strs+1910)
+/** Upper-cased name for the load-pubkey option */
+#define LOAD_PUBKEY_NAME      (certtool_opt_strs+1934)
+/** Name string for the load-pubkey option */
+#define LOAD_PUBKEY_name      (certtool_opt_strs+1946)
+/** Compiled in flag settings for the load-pubkey option */
 #define LOAD_PUBKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  load-request option description:
  */
-#define LOAD_REQUEST_DESC      (certtool_opt_strs+1962)
-#define LOAD_REQUEST_NAME      (certtool_opt_strs+1995)
-#define LOAD_REQUEST_name      (certtool_opt_strs+2008)
+/** Descriptive text for the load-request option */
+#define LOAD_REQUEST_DESC      (certtool_opt_strs+1958)
+/** Upper-cased name for the load-request option */
+#define LOAD_REQUEST_NAME      (certtool_opt_strs+1991)
+/** Name string for the load-request option */
+#define LOAD_REQUEST_name      (certtool_opt_strs+2004)
+/** Compiled in flag settings for the load-request option */
 #define LOAD_REQUEST_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  load-certificate option description:
  */
-#define LOAD_CERTIFICATE_DESC      (certtool_opt_strs+2021)
-#define LOAD_CERTIFICATE_NAME      (certtool_opt_strs+2046)
-#define LOAD_CERTIFICATE_name      (certtool_opt_strs+2063)
+/** Descriptive text for the load-certificate option */
+#define LOAD_CERTIFICATE_DESC      (certtool_opt_strs+2017)
+/** Upper-cased name for the load-certificate option */
+#define LOAD_CERTIFICATE_NAME      (certtool_opt_strs+2042)
+/** Name string for the load-certificate option */
+#define LOAD_CERTIFICATE_name      (certtool_opt_strs+2059)
+/** Compiled in flag settings for the load-certificate option */
 #define LOAD_CERTIFICATE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  load-ca-privkey option description:
  */
-#define LOAD_CA_PRIVKEY_DESC      (certtool_opt_strs+2080)
-#define LOAD_CA_PRIVKEY_NAME      (certtool_opt_strs+2131)
-#define LOAD_CA_PRIVKEY_name      (certtool_opt_strs+2147)
+/** Descriptive text for the load-ca-privkey option */
+#define LOAD_CA_PRIVKEY_DESC      (certtool_opt_strs+2076)
+/** Upper-cased name for the load-ca-privkey option */
+#define LOAD_CA_PRIVKEY_NAME      (certtool_opt_strs+2127)
+/** Name string for the load-ca-privkey option */
+#define LOAD_CA_PRIVKEY_name      (certtool_opt_strs+2143)
+/** Compiled in flag settings for the load-ca-privkey option */
 #define LOAD_CA_PRIVKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  load-ca-certificate option description:
  */
-#define LOAD_CA_CERTIFICATE_DESC      (certtool_opt_strs+2163)
-#define LOAD_CA_CERTIFICATE_NAME      (certtool_opt_strs+2214)
-#define LOAD_CA_CERTIFICATE_name      (certtool_opt_strs+2234)
+/** Descriptive text for the load-ca-certificate option */
+#define LOAD_CA_CERTIFICATE_DESC      (certtool_opt_strs+2159)
+/** Upper-cased name for the load-ca-certificate option */
+#define LOAD_CA_CERTIFICATE_NAME      (certtool_opt_strs+2210)
+/** Name string for the load-ca-certificate option */
+#define LOAD_CA_CERTIFICATE_name      (certtool_opt_strs+2230)
+/** Compiled in flag settings for the load-ca-certificate option */
 #define LOAD_CA_CERTIFICATE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  password option description:
  */
-#define PASSWORD_DESC      (certtool_opt_strs+2254)
-#define PASSWORD_NAME      (certtool_opt_strs+2270)
-#define PASSWORD_name      (certtool_opt_strs+2279)
+/** Descriptive text for the password option */
+#define PASSWORD_DESC      (certtool_opt_strs+2250)
+/** Upper-cased name for the password option */
+#define PASSWORD_NAME      (certtool_opt_strs+2266)
+/** Name string for the password option */
+#define PASSWORD_name      (certtool_opt_strs+2275)
+/** Compiled in flag settings for the password option */
 #define PASSWORD_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  certificate-info option description:
  */
-#define CERTIFICATE_INFO_DESC      (certtool_opt_strs+2288)
-#define CERTIFICATE_INFO_NAME      (certtool_opt_strs+2331)
-#define CERTIFICATE_INFO_name      (certtool_opt_strs+2348)
+/** Descriptive text for the certificate-info option */
+#define CERTIFICATE_INFO_DESC      (certtool_opt_strs+2284)
+/** Upper-cased name for the certificate-info option */
+#define CERTIFICATE_INFO_NAME      (certtool_opt_strs+2327)
+/** Name string for the certificate-info option */
+#define CERTIFICATE_INFO_name      (certtool_opt_strs+2344)
+/** Compiled in flag settings for the certificate-info option */
 #define CERTIFICATE_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  certificate-pubkey option description:
  */
-#define CERTIFICATE_PUBKEY_DESC      (certtool_opt_strs+2365)
-#define CERTIFICATE_PUBKEY_NAME      (certtool_opt_strs+2396)
-#define CERTIFICATE_PUBKEY_name      (certtool_opt_strs+2415)
+/** Descriptive text for the certificate-pubkey option */
+#define CERTIFICATE_PUBKEY_DESC      (certtool_opt_strs+2361)
+/** Upper-cased name for the certificate-pubkey option */
+#define CERTIFICATE_PUBKEY_NAME      (certtool_opt_strs+2392)
+/** Name string for the certificate-pubkey option */
+#define CERTIFICATE_PUBKEY_name      (certtool_opt_strs+2411)
+/** Compiled in flag settings for the certificate-pubkey option */
 #define CERTIFICATE_PUBKEY_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  pgp-certificate-info option description:
  */
-#define PGP_CERTIFICATE_INFO_DESC      (certtool_opt_strs+2434)
-#define PGP_CERTIFICATE_INFO_NAME      (certtool_opt_strs+2485)
-#define PGP_CERTIFICATE_INFO_name      (certtool_opt_strs+2506)
+/** Descriptive text for the pgp-certificate-info option */
+#define PGP_CERTIFICATE_INFO_DESC      (certtool_opt_strs+2430)
+/** Upper-cased name for the pgp-certificate-info option */
+#define PGP_CERTIFICATE_INFO_NAME      (certtool_opt_strs+2481)
+/** Name string for the pgp-certificate-info option */
+#define PGP_CERTIFICATE_INFO_name      (certtool_opt_strs+2502)
+/** Compiled in flag settings for the pgp-certificate-info option */
 #define PGP_CERTIFICATE_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  pgp-ring-info option description:
  */
-#define PGP_RING_INFO_DESC      (certtool_opt_strs+2527)
-#define PGP_RING_INFO_NAME      (certtool_opt_strs+2584)
-#define PGP_RING_INFO_name      (certtool_opt_strs+2598)
+/** Descriptive text for the pgp-ring-info option */
+#define PGP_RING_INFO_DESC      (certtool_opt_strs+2523)
+/** Upper-cased name for the pgp-ring-info option */
+#define PGP_RING_INFO_NAME      (certtool_opt_strs+2580)
+/** Name string for the pgp-ring-info option */
+#define PGP_RING_INFO_name      (certtool_opt_strs+2594)
+/** Compiled in flag settings for the pgp-ring-info option */
 #define PGP_RING_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  crl-info option description:
  */
-#define CRL_INFO_DESC      (certtool_opt_strs+2612)
-#define CRL_INFO_NAME      (certtool_opt_strs+2657)
-#define CRL_INFO_name      (certtool_opt_strs+2666)
+/** Descriptive text for the crl-info option */
+#define CRL_INFO_DESC      (certtool_opt_strs+2608)
+/** Upper-cased name for the crl-info option */
+#define CRL_INFO_NAME      (certtool_opt_strs+2653)
+/** Name string for the crl-info option */
+#define CRL_INFO_name      (certtool_opt_strs+2662)
+/** Compiled in flag settings for the crl-info option */
 #define CRL_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  crq-info option description:
  */
-#define CRQ_INFO_DESC      (certtool_opt_strs+2675)
-#define CRQ_INFO_NAME      (certtool_opt_strs+2726)
-#define CRQ_INFO_name      (certtool_opt_strs+2735)
+/** Descriptive text for the crq-info option */
+#define CRQ_INFO_DESC      (certtool_opt_strs+2671)
+/** Upper-cased name for the crq-info option */
+#define CRQ_INFO_NAME      (certtool_opt_strs+2722)
+/** Name string for the crq-info option */
+#define CRQ_INFO_name      (certtool_opt_strs+2731)
+/** Compiled in flag settings for the crq-info option */
 #define CRQ_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  no-crq-extensions option description:
  */
-#define NO_CRQ_EXTENSIONS_DESC      (certtool_opt_strs+2744)
-#define NO_CRQ_EXTENSIONS_NAME      (certtool_opt_strs+2790)
-#define NO_CRQ_EXTENSIONS_name      (certtool_opt_strs+2808)
+/** Descriptive text for the no-crq-extensions option */
+#define NO_CRQ_EXTENSIONS_DESC      (certtool_opt_strs+2740)
+/** Upper-cased name for the no-crq-extensions option */
+#define NO_CRQ_EXTENSIONS_NAME      (certtool_opt_strs+2786)
+/** Name string for the no-crq-extensions option */
+#define NO_CRQ_EXTENSIONS_name      (certtool_opt_strs+2804)
+/** Compiled in flag settings for the no-crq-extensions option */
 #define NO_CRQ_EXTENSIONS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  p12-info option description:
  */
-#define P12_INFO_DESC      (certtool_opt_strs+2826)
-#define P12_INFO_NAME      (certtool_opt_strs+2868)
-#define P12_INFO_name      (certtool_opt_strs+2877)
+/** Descriptive text for the p12-info option */
+#define P12_INFO_DESC      (certtool_opt_strs+2822)
+/** Upper-cased name for the p12-info option */
+#define P12_INFO_NAME      (certtool_opt_strs+2864)
+/** Name string for the p12-info option */
+#define P12_INFO_name      (certtool_opt_strs+2873)
+/** Compiled in flag settings for the p12-info option */
 #define P12_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  p7-info option description:
  */
-#define P7_INFO_DESC      (certtool_opt_strs+2886)
-#define P7_INFO_NAME      (certtool_opt_strs+2927)
-#define P7_INFO_name      (certtool_opt_strs+2935)
+/** Descriptive text for the p7-info option */
+#define P7_INFO_DESC      (certtool_opt_strs+2882)
+/** Upper-cased name for the p7-info option */
+#define P7_INFO_NAME      (certtool_opt_strs+2923)
+/** Name string for the p7-info option */
+#define P7_INFO_name      (certtool_opt_strs+2931)
+/** Compiled in flag settings for the p7-info option */
 #define P7_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  smime-to-p7 option description:
  */
-#define SMIME_TO_P7_DESC      (certtool_opt_strs+2943)
-#define SMIME_TO_P7_NAME      (certtool_opt_strs+2979)
-#define SMIME_TO_P7_name      (certtool_opt_strs+2991)
+/** Descriptive text for the smime-to-p7 option */
+#define SMIME_TO_P7_DESC      (certtool_opt_strs+2939)
+/** Upper-cased name for the smime-to-p7 option */
+#define SMIME_TO_P7_NAME      (certtool_opt_strs+2975)
+/** Name string for the smime-to-p7 option */
+#define SMIME_TO_P7_name      (certtool_opt_strs+2987)
+/** Compiled in flag settings for the smime-to-p7 option */
 #define SMIME_TO_P7_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  key-info option description:
  */
-#define KEY_INFO_DESC      (certtool_opt_strs+3003)
-#define KEY_INFO_NAME      (certtool_opt_strs+3038)
-#define KEY_INFO_name      (certtool_opt_strs+3047)
+/** Descriptive text for the key-info option */
+#define KEY_INFO_DESC      (certtool_opt_strs+2999)
+/** Upper-cased name for the key-info option */
+#define KEY_INFO_NAME      (certtool_opt_strs+3034)
+/** Name string for the key-info option */
+#define KEY_INFO_name      (certtool_opt_strs+3043)
+/** Compiled in flag settings for the key-info option */
 #define KEY_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  pgp-key-info option description:
  */
-#define PGP_KEY_INFO_DESC      (certtool_opt_strs+3056)
-#define PGP_KEY_INFO_NAME      (certtool_opt_strs+3100)
-#define PGP_KEY_INFO_name      (certtool_opt_strs+3113)
+/** Descriptive text for the pgp-key-info option */
+#define PGP_KEY_INFO_DESC      (certtool_opt_strs+3052)
+/** Upper-cased name for the pgp-key-info option */
+#define PGP_KEY_INFO_NAME      (certtool_opt_strs+3096)
+/** Name string for the pgp-key-info option */
+#define PGP_KEY_INFO_name      (certtool_opt_strs+3109)
+/** Compiled in flag settings for the pgp-key-info option */
 #define PGP_KEY_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  pubkey-info option description:
  */
-#define PUBKEY_INFO_DESC      (certtool_opt_strs+3126)
-#define PUBKEY_INFO_NAME      (certtool_opt_strs+3160)
-#define PUBKEY_INFO_name      (certtool_opt_strs+3172)
+/** Descriptive text for the pubkey-info option */
+#define PUBKEY_INFO_DESC      (certtool_opt_strs+3122)
+/** Upper-cased name for the pubkey-info option */
+#define PUBKEY_INFO_NAME      (certtool_opt_strs+3156)
+/** Name string for the pubkey-info option */
+#define PUBKEY_INFO_name      (certtool_opt_strs+3168)
+/** Compiled in flag settings for the pubkey-info option */
 #define PUBKEY_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  v1 option description:
  */
-#define V1_DESC      (certtool_opt_strs+3184)
-#define V1_NAME      (certtool_opt_strs+3245)
-#define V1_name      (certtool_opt_strs+3248)
+/** Descriptive text for the v1 option */
+#define V1_DESC      (certtool_opt_strs+3180)
+/** Upper-cased name for the v1 option */
+#define V1_NAME      (certtool_opt_strs+3241)
+/** Name string for the v1 option */
+#define V1_name      (certtool_opt_strs+3244)
+/** Compiled in flag settings for the v1 option */
 #define V1_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  to-p12 option description with
  *  "Must also have options" and "Incompatible options":
  */
-#define TO_P12_DESC      (certtool_opt_strs+3251)
-#define TO_P12_NAME      (certtool_opt_strs+3281)
-#define TO_P12_name      (certtool_opt_strs+3288)
+/** Descriptive text for the to-p12 option */
+#define TO_P12_DESC      (certtool_opt_strs+3247)
+/** Upper-cased name for the to-p12 option */
+#define TO_P12_NAME      (certtool_opt_strs+3277)
+/** Name string for the to-p12 option */
+#define TO_P12_name      (certtool_opt_strs+3284)
+/** Other options that are required by the to-p12 option */
 static int const aTo_P12MustList[] = {
     INDEX_OPT_LOAD_CERTIFICATE, NO_EQUIVALENT };
+/** Compiled in flag settings for the to-p12 option */
 #define TO_P12_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  to-p8 option description:
  */
-#define TO_P8_DESC      (certtool_opt_strs+3295)
-#define TO_P8_NAME      (certtool_opt_strs+3324)
-#define TO_P8_name      (certtool_opt_strs+3330)
+/** Descriptive text for the to-p8 option */
+#define TO_P8_DESC      (certtool_opt_strs+3291)
+/** Upper-cased name for the to-p8 option */
+#define TO_P8_NAME      (certtool_opt_strs+3320)
+/** Name string for the to-p8 option */
+#define TO_P8_name      (certtool_opt_strs+3326)
+/** Compiled in flag settings for the to-p8 option */
 #define TO_P8_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  pkcs8 option description:
  */
-#define PKCS8_DESC      (certtool_opt_strs+3336)
-#define PKCS8_NAME      (certtool_opt_strs+3372)
-#define PKCS8_name      (certtool_opt_strs+3378)
+/** Descriptive text for the pkcs8 option */
+#define PKCS8_DESC      (certtool_opt_strs+3332)
+/** Upper-cased name for the pkcs8 option */
+#define PKCS8_NAME      (certtool_opt_strs+3368)
+/** Name string for the pkcs8 option */
+#define PKCS8_name      (certtool_opt_strs+3374)
+/** Compiled in flag settings for the pkcs8 option */
 #define PKCS8_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  rsa option description:
  */
-#define RSA_DESC      (certtool_opt_strs+3384)
-#define RSA_NAME      (certtool_opt_strs+3401)
-#define RSA_name      (certtool_opt_strs+3405)
+/** Descriptive text for the rsa option */
+#define RSA_DESC      (certtool_opt_strs+3380)
+/** Upper-cased name for the rsa option */
+#define RSA_NAME      (certtool_opt_strs+3397)
+/** Name string for the rsa option */
+#define RSA_name      (certtool_opt_strs+3401)
+/** Compiled in flag settings for the rsa option */
 #define RSA_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  dsa option description:
  */
-#define DSA_DESC      (certtool_opt_strs+3409)
-#define DSA_NAME      (certtool_opt_strs+3426)
-#define DSA_name      (certtool_opt_strs+3430)
+/** Descriptive text for the dsa option */
+#define DSA_DESC      (certtool_opt_strs+3405)
+/** Upper-cased name for the dsa option */
+#define DSA_NAME      (certtool_opt_strs+3422)
+/** Name string for the dsa option */
+#define DSA_name      (certtool_opt_strs+3426)
+/** Compiled in flag settings for the dsa option */
 #define DSA_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  ecc option description:
  */
-#define ECC_DESC      (certtool_opt_strs+3434)
-#define ECC_NAME      (certtool_opt_strs+3459)
-#define ECC_name      (certtool_opt_strs+3463)
+/** Descriptive text for the ecc option */
+#define ECC_DESC      (certtool_opt_strs+3430)
+/** Upper-cased name for the ecc option */
+#define ECC_NAME      (certtool_opt_strs+3455)
+/** Name string for the ecc option */
+#define ECC_name      (certtool_opt_strs+3459)
+/** Compiled in flag settings for the ecc option */
 #define ECC_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  hash option description:
  */
-#define HASH_DESC      (certtool_opt_strs+3467)
-#define HASH_NAME      (certtool_opt_strs+3502)
-#define HASH_name      (certtool_opt_strs+3507)
+/** Descriptive text for the hash option */
+#define HASH_DESC      (certtool_opt_strs+3463)
+/** Upper-cased name for the hash option */
+#define HASH_NAME      (certtool_opt_strs+3498)
+/** Name string for the hash option */
+#define HASH_name      (certtool_opt_strs+3503)
+/** Compiled in flag settings for the hash option */
 #define HASH_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  inder option description:
  */
-#define INDER_DESC      (certtool_opt_strs+3512)
-#define INDER_NAME      (certtool_opt_strs+3568)
-#define NOT_INDER_name  (certtool_opt_strs+3574)
-#define NOT_INDER_PFX   (certtool_opt_strs+3583)
+/** Descriptive text for the inder option */
+#define INDER_DESC      (certtool_opt_strs+3508)
+/** Upper-cased name for the inder option */
+#define INDER_NAME      (certtool_opt_strs+3564)
+/** disablement name for the inder option */
+#define NOT_INDER_name  (certtool_opt_strs+3570)
+/** disablement prefix for the inder option */
+#define NOT_INDER_PFX   (certtool_opt_strs+3579)
+/** Name string for the inder option */
 #define INDER_name      (NOT_INDER_name + 3)
+/** Compiled in flag settings for the inder option */
 #define INDER_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  inraw option description:
  */
-#define INRAW_DESC    (certtool_opt_strs+3586)
+/** Descriptive text for the inraw option */
+#define INRAW_DESC    (certtool_opt_strs+3582)
 #define INRAW_NAME    NULL
-#define INRAW_name    (certtool_opt_strs+3615)
+/** Unmodified name string for the inraw option */
+#define INRAW_name    (certtool_opt_strs+3614)
+/** Compiled in flag settings for the inraw option */
 #define INRAW_FLAGS     (INDER_FLAGS | OPTST_ALIAS)
 
-/*
+/**
  *  outder option description:
  */
-#define OUTDER_DESC      (certtool_opt_strs+3621)
-#define OUTDER_NAME      (certtool_opt_strs+3677)
-#define NOT_OUTDER_name  (certtool_opt_strs+3684)
-#define NOT_OUTDER_PFX   (certtool_opt_strs+3583)
+/** Descriptive text for the outder option */
+#define OUTDER_DESC      (certtool_opt_strs+3620)
+/** Upper-cased name for the outder option */
+#define OUTDER_NAME      (certtool_opt_strs+3676)
+/** disablement name for the outder option */
+#define NOT_OUTDER_name  (certtool_opt_strs+3683)
+/** disablement prefix for the outder option */
+#define NOT_OUTDER_PFX   (certtool_opt_strs+3579)
+/** Name string for the outder option */
 #define OUTDER_name      (NOT_OUTDER_name + 3)
+/** Compiled in flag settings for the outder option */
 #define OUTDER_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  outraw option description:
  */
-#define OUTRAW_DESC    (certtool_opt_strs+3694)
+/** Descriptive text for the outraw option */
+#define OUTRAW_DESC    (certtool_opt_strs+3693)
 #define OUTRAW_NAME    NULL
-#define OUTRAW_name    (certtool_opt_strs+3724)
+/** Unmodified name string for the outraw option */
+#define OUTRAW_name    (certtool_opt_strs+3726)
+/** Compiled in flag settings for the outraw option */
 #define OUTRAW_FLAGS     (OUTDER_FLAGS | OPTST_ALIAS)
 
-/*
+/**
  *  bits option description:
  */
-#define BITS_DESC      (certtool_opt_strs+3731)
-#define BITS_NAME      (certtool_opt_strs+3775)
-#define BITS_name      (certtool_opt_strs+3780)
+/** Descriptive text for the bits option */
+#define BITS_DESC      (certtool_opt_strs+3733)
+/** Upper-cased name for the bits option */
+#define BITS_NAME      (certtool_opt_strs+3777)
+/** Name string for the bits option */
+#define BITS_name      (certtool_opt_strs+3782)
+/** Compiled in flag settings for the bits option */
 #define BITS_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  sec-param option description:
  */
-#define SEC_PARAM_DESC      (certtool_opt_strs+3785)
-#define SEC_PARAM_NAME      (certtool_opt_strs+3848)
-#define SEC_PARAM_name      (certtool_opt_strs+3858)
+/** Descriptive text for the sec-param option */
+#define SEC_PARAM_DESC      (certtool_opt_strs+3787)
+/** Upper-cased name for the sec-param option */
+#define SEC_PARAM_NAME      (certtool_opt_strs+3850)
+/** Name string for the sec-param option */
+#define SEC_PARAM_name      (certtool_opt_strs+3860)
+/** Compiled in flag settings for the sec-param option */
 #define SEC_PARAM_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  disable-quick-random option description:
  */
-#define DISABLE_QUICK_RANDOM_DESC      (certtool_opt_strs+3868)
-#define DISABLE_QUICK_RANDOM_NAME      (certtool_opt_strs+3878)
-#define DISABLE_QUICK_RANDOM_name      (certtool_opt_strs+3899)
+/** Descriptive text for the disable-quick-random option */
+#define DISABLE_QUICK_RANDOM_DESC      (certtool_opt_strs+3870)
+/** Upper-cased name for the disable-quick-random option */
+#define DISABLE_QUICK_RANDOM_NAME      (certtool_opt_strs+3880)
+/** Name string for the disable-quick-random option */
+#define DISABLE_QUICK_RANDOM_name      (certtool_opt_strs+3901)
+/** Compiled in flag settings for the disable-quick-random option */
 #define DISABLE_QUICK_RANDOM_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  template option description:
  */
-#define TEMPLATE_DESC      (certtool_opt_strs+3920)
-#define TEMPLATE_NAME      (certtool_opt_strs+3971)
-#define TEMPLATE_name      (certtool_opt_strs+3980)
+/** Descriptive text for the template option */
+#define TEMPLATE_DESC      (certtool_opt_strs+3922)
+/** Upper-cased name for the template option */
+#define TEMPLATE_NAME      (certtool_opt_strs+3973)
+/** Name string for the template option */
+#define TEMPLATE_name      (certtool_opt_strs+3982)
+/** Compiled in flag settings for the template option */
 #define TEMPLATE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pkcs-cipher option description:
  */
-#define PKCS_CIPHER_DESC      (certtool_opt_strs+3989)
-#define PKCS_CIPHER_NAME      (certtool_opt_strs+4034)
-#define PKCS_CIPHER_name      (certtool_opt_strs+4046)
+/** Descriptive text for the pkcs-cipher option */
+#define PKCS_CIPHER_DESC      (certtool_opt_strs+3991)
+/** Upper-cased name for the pkcs-cipher option */
+#define PKCS_CIPHER_NAME      (certtool_opt_strs+4036)
+/** Name string for the pkcs-cipher option */
+#define PKCS_CIPHER_name      (certtool_opt_strs+4048)
+/** Compiled in flag settings for the pkcs-cipher option */
 #define PKCS_CIPHER_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (certtool_opt_strs+4058)
-#define HELP_name       (certtool_opt_strs+4102)
+#define HELP_DESC       (certtool_opt_strs+4060)
+#define HELP_name       (certtool_opt_strs+4104)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (certtool_opt_strs+4107)
-#define MORE_HELP_name  (certtool_opt_strs+4152)
+#define MORE_HELP_DESC  (certtool_opt_strs+4109)
+#define MORE_HELP_name  (certtool_opt_strs+4154)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -733,9 +944,9 @@ static int const aTo_P12MustList[] = {
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (certtool_opt_strs+4162)
-#define VER_name        (certtool_opt_strs+4198)
-/*
+#define VER_DESC        (certtool_opt_strs+4164)
+#define VER_name        (certtool_opt_strs+4200)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -1396,7 +1607,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -1410,7 +1621,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -1422,7 +1633,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -1432,19 +1643,24 @@ static tOptDesc optDesc[OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the certtool Option Environment
- */
-#define zPROGNAME       (certtool_opt_strs+4206)
-#define zUsageTitle     (certtool_opt_strs+4215)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of certtool. */
+#define zPROGNAME       (certtool_opt_strs+4208)
+/** Reference to the title line for certtool usage. */
+#define zUsageTitle     (certtool_opt_strs+4217)
+/** There is no certtool configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for certtool config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (certtool_opt_strs+4319)
-#define zExplain        (certtool_opt_strs+4338)
-#define zDetail         (certtool_opt_strs+4341)
-#define zFullVersion    (certtool_opt_strs+4515)
-/* extracted from optcode.tlib near line 350 */
+/** The certtool program bug email address. */
+#define zBugsAddr       (certtool_opt_strs+4307)
+/** Clarification/explanation of what certtool does. */
+#define zExplain        (certtool_opt_strs+4326)
+/** Extra detail explaining what certtool does. */
+#define zDetail         (certtool_opt_strs+4328)
+/** The full version string for certtool. */
+#define zFullVersion    (certtool_opt_strs+4501)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -1454,10 +1670,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define certtool_full_usage (NULL)
-
-#define certtool_short_usage (certtool_opt_strs+4531)
+#define certtool_short_usage (certtool_opt_strs+4517)
 
 #endif /* not defined __doxygen__ */
 
@@ -1467,8 +1681,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 /**
  * The callout function that invokes the optionUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -1483,9 +1697,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the debug option.
- *
- * @param pOptions the certtool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * Specifies the debug level.
+ * @param[in] pOptions the certtool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1511,8 +1725,7 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -1520,8 +1733,8 @@ emit_ranges:
 /**
  * Code to handle the infile option.
  *
- * @param pOptions the certtool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the certtool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1534,6 +1747,9 @@ doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1541,8 +1757,8 @@ doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-request option.
  *
- * @param pOptions the certtool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the certtool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1555,6 +1771,9 @@ doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1562,15 +1781,15 @@ doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the inraw option.
  *
- * @param pOptions the certtool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the certtool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
 {
     int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_INDER);
     if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
-        USAGE(CERTTOOL_EXIT_FAILURE);
+        USAGE(CERTTOOL_EXIT_USAGE_ERROR);
 
 }
 
@@ -1578,15 +1797,15 @@ doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the outraw option.
  *
- * @param pOptions the certtool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the certtool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptOutraw(tOptions* pOptions, tOptDesc* pOptDesc)
 {
     int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_OUTDER);
     if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
-        USAGE(CERTTOOL_EXIT_FAILURE);
+        USAGE(CERTTOOL_EXIT_USAGE_ERROR);
 
 }
 
@@ -1594,8 +1813,8 @@ doOptOutraw(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the template option.
  *
- * @param pOptions the certtool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the certtool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptTemplate(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1608,9 +1827,12 @@ doOptTemplate(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with certtool.
@@ -1626,6 +1848,7 @@ doOptTemplate(tOptions* pOptions, tOptDesc* pOptDesc)
 #ifndef  WITH_PACKAGER
 # define certtool_packager_info NULL
 #else
+/** Packager information for certtool. */
 static char const certtool_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -1681,42 +1904,69 @@ tOptions certtoolOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * certtool program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(CERTTOOL_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -1726,56 +1976,562 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &certtoolOptions;
+    tOptions * const opts = &certtoolOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
-
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        coerce_it((void*)&(pOpt->pzShortUsage));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
+
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        certtoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the certtoolOptions structure noted in the comments below.  The
+     literal text is defined in certtool_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     certtool_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via certtoolOptions.pzCopyright */
+  puts(_("certtool 3.0.30\n\
+Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU General Public License,\n\
+version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
+
+  /* referenced via certtoolOptions.pzCopyNotice */
+  puts(_("certtool is free software: you can redistribute it and/or modify it under\n\
+the terms of the GNU General Public License as published by the Free\n\
+Software Foundation, either version 3 of the License, or (at your option)\n\
+any later version.\n\n"));
+  puts(_("certtool is distributed in the hope that it will be useful, but WITHOUT ANY\n\
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more\n\
+details.\n\n"));
+  puts(_("You should have received a copy of the GNU General Public License along\n\
+with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Enable debugging."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Input file"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Output file"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate a self-signed certificate"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate a signed certificate"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generates a proxy certificate"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate a CRL"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Update a signed certificate"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate a private key"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate a PKCS #10 certificate request"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Verify a PEM encoded certificate chain."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Verify a PEM encoded certificate chain using a trusted list."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Verify a CRL using a trusted list."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate PKCS #3 encoded Diffie-Hellman parameters."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Get the included PKCS #3 encoded Diffie-Hellman parameters."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information PKCS #3 encoded Diffie-Hellman parameters"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Loads a private key file"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Loads a public key file"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Loads a certificate request file"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Loads a certificate file"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Loads the certificate authority's private key file"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Loads the certificate authority's certificate file"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Password to use"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on the given certificate"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print certificate's public key"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on the given OpenPGP certificate"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on the given OpenPGP keyring structure"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on the given CRL structure"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on the given certificate request"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Do not use extensions in certificate requests"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on a PKCS #12 structure"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on a PKCS #7 structure"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Convert S/MIME to PKCS #7 structure"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on a private key"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on an OpenPGP private key"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Print information on a public key"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate an X.509 version 1 certificate (with no extensions)"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate a PKCS #12 structure"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate a PKCS #8 structure"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Use PKCS #8 format for private keys"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate RSA key"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate DSA key"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Generate ECC (ECDSA) key"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Hash algorithm to use for signing."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Use DER format for input certificates and private keys."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("an alias for the 'inder' option"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Use DER format for output certificates and private keys"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("an alias for the 'outder' option"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Specify the number of bits for key generate"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Specify the security level [low, legacy, normal, high, ultra]."));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("No effect"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Template file to use for non-interactive operation"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("Cipher to use for PKCS #8 and #12 operations"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via certtoolOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via certtoolOptions.pzUsageTitle */
+  puts(_("certtool - GnuTLS PKCS #11 tool\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
+
+  /* referenced via certtoolOptions.pzExplain */
+  puts(_("\n"));
+
+  /* referenced via certtoolOptions.pzDetail */
+  puts(_("Tool to parse and generate X.509 certificates, requests and private keys.\n\
+It can be used interactively or non interactively by specifying the\n\
+template command line option.\n"));
+
+  /* referenced via certtoolOptions.pzFullVersion */
+  puts(_("certtool 3.0.30"));
+
+  /* referenced via certtoolOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via certtoolOptions.pzShortUsage */
+  puts(_("certtool [options] [url]\n\
+certtool --help for usage instructions.\n"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index d31cb0f..feeb35a 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (certtool-args.h)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:38 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:07 PM by AutoGen 5.17.3
  *  From the definitions    certtool-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  certtool 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.
- *  
+ *
  *  certtool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the certtool program.
  *  These macros are documented in the AutoGen info file in the
 #include "config.h"
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for certtool
  */
 typedef enum {
     INDEX_OPT_DEBUG                 =  0,
@@ -124,44 +123,63 @@ typedef enum {
     INDEX_OPT_HELP                  = 54,
     INDEX_OPT_MORE_HELP             = 55
 } teOptIndex;
-
+/** count of all options for certtool */
 #define OPTION_CT    56
-#define CERTTOOL_VERSION       "3.0.21"
-#define CERTTOOL_FULL_VERSION  "certtool 3.0.21"
+/** certtool version */
+#define CERTTOOL_VERSION       "3.0.30"
+/** Full certtool version text */
+#define CERTTOOL_FULL_VERSION  "certtool 3.0.30"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teOptIndex enumeration above).
  *  e.g. HAVE_OPT(DEBUG)
  */
 #define         DESC(n) (certtoolOptions.pOptDesc[INDEX_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      OPT_ARG(n) (DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_OPT(n) (DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_OPT(n) STMTS( \
                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     DESC(n).fOptState |= OPTST_DISABLED; \
                 DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of certtool exit codes
  */
 typedef enum {
-    CERTTOOL_EXIT_SUCCESS = 0,
-    CERTTOOL_EXIT_FAILURE = 1,
-    CERTTOOL_EXIT_LIBOPTS_FAILURE = 70
+    CERTTOOL_EXIT_SUCCESS           = 0,
+    CERTTOOL_EXIT_FAILURE           = 1,
+    CERTTOOL_EXIT_USAGE_ERROR       = 64,
+    CERTTOOL_EXIT_LIBOPTS_FAILURE   = 70
 } certtool_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_OPT_DEBUG          'd'
 
@@ -220,8 +238,11 @@ typedef enum {
 #define VALUE_OPT_DISABLE_QUICK_RANDOM 146
 #define VALUE_OPT_TEMPLATE       147
 #define VALUE_OPT_PKCS_CIPHER    148
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_MORE_HELP     '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_VERSION       'v'
 /*
  *  Interface defines not associated with particular options
@@ -233,7 +254,7 @@ typedef enum {
                 certtoolOptions.pzCurOpt  = NULL)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*certtoolOptions.pUsageProc)(&certtoolOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -253,6 +274,12 @@ extern tOptions certtoolOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
index e2fdab9..75862ab 100644 (file)
@@ -644,6 +644,10 @@ gnutls_sec_param_t str_to_sec_param (const char *str)
     {
       return GNUTLS_SEC_PARAM_LOW;
     }
+  else if (strcasecmp (str, "legacy") == 0)
+    {
+      return GNUTLS_SEC_PARAM_LEGACY;
+    }
   else if (strcasecmp (str, "normal") == 0)
     {
       return GNUTLS_SEC_PARAM_NORMAL;
index 59d6155..ca9c9ef 100644 (file)
@@ -49,8 +49,6 @@
 #include "certtool-args.h"
 #include "certtool-common.h"
 
-#define SIGN_HASH GNUTLS_DIG_SHA256
-
 static void privkey_info_int (common_info_st*, gnutls_x509_privkey_t key);
 static void print_crl_info (gnutls_x509_crl_t crl, FILE * out);
 void pkcs7_info (void);
@@ -225,7 +223,7 @@ cipher_to_flags (const char *cipher)
 {
   if (cipher == NULL)
     {
-      return GNUTLS_PKCS_USE_PBES2_AES_128;
+      return GNUTLS_PKCS_USE_PKCS12_ARCFOUR;
     }
   else if (strcasecmp (cipher, "3des") == 0)
     {
@@ -511,9 +509,8 @@ generate_certificate (gnutls_privkey_t * ret_key,
 
           pk = gnutls_x509_crt_get_pk_algorithm (crt, NULL);
 
-          if (pk != GNUTLS_PK_DSA)
-            {                   /* DSA keys can only sign.
-                                 */
+          if (pk == GNUTLS_PK_RSA)
+            { /* DSA and ECDSA keys can only sign. */
               result = get_sign_status (server);
               if (result)
                 usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
@@ -727,12 +724,32 @@ generate_crl (gnutls_x509_crt_t ca_crt, common_info_st * cinfo)
 }
 
 static gnutls_digest_algorithm_t
+get_dig_for_pub (gnutls_pubkey_t pubkey)
+{
+  gnutls_digest_algorithm_t dig;
+  int result;
+  unsigned int mand;
+
+  result = gnutls_pubkey_get_preferred_hash_algorithm (pubkey, &dig, &mand);
+  if (result < 0)
+    {
+      error (EXIT_FAILURE, 0, "crt_get_preferred_hash_algorithm: %s",
+             gnutls_strerror (result));
+    }
+
+  /* if algorithm allows alternatives */
+  if (mand == 0 && default_dig != GNUTLS_DIG_UNKNOWN)
+    dig = default_dig;
+
+  return dig;
+}
+
+static gnutls_digest_algorithm_t
 get_dig (gnutls_x509_crt_t crt)
 {
   gnutls_digest_algorithm_t dig;
   gnutls_pubkey_t pubkey;
   int result;
-  unsigned int mand;
 
   gnutls_pubkey_init(&pubkey);
 
@@ -743,19 +760,10 @@ get_dig (gnutls_x509_crt_t crt)
              gnutls_strerror (result));
     }
 
-  result = gnutls_pubkey_get_preferred_hash_algorithm (pubkey, &dig, &mand);
-  if (result < 0)
-    {
-      error (EXIT_FAILURE, 0, "crt_get_preferred_hash_algorithm: %s",
-             gnutls_strerror (result));
-    }
+  dig = get_dig_for_pub (pubkey);
 
   gnutls_pubkey_deinit(pubkey);
 
-  /* if algorithm allows alternatives */
-  if (mand == 0 && default_dig != GNUTLS_DIG_UNKNOWN)
-    dig = default_dig;
-
   return dig;
 }
 
@@ -899,7 +907,7 @@ generate_signed_crl (common_info_st * cinfo)
   crl = generate_crl (ca_crt, cinfo);
 
   fprintf (stderr, "\n");
-  result = gnutls_x509_crl_privkey_sign(crl, ca_crt, ca_key, SIGN_HASH, 0);
+  result = gnutls_x509_crl_privkey_sign(crl, ca_crt, ca_key, get_dig (ca_crt), 0);
   if (result < 0)
     error (EXIT_FAILURE, 0, "crl_privkey_sign: %s", gnutls_strerror (result));
 
@@ -1819,7 +1827,7 @@ generate_request (common_info_st * cinfo)
   gnutls_x509_privkey_t xkey;
   gnutls_pubkey_t pubkey;
   gnutls_privkey_t pkey;
-  int ret, ca_status, path_len;
+  int ret, ca_status, path_len, pk;
   const char *pass;
   unsigned int usage = 0;
 
@@ -1850,6 +1858,8 @@ generate_request (common_info_st * cinfo)
 
   pubkey = load_public_key_or_import (1, pkey, cinfo);
 
+  pk = gnutls_pubkey_get_pk_algorithm (pubkey, NULL);
+
   /* Set the DN.
    */
   get_country_crq_set (crq);
@@ -1889,14 +1899,21 @@ generate_request (common_info_st * cinfo)
         error (EXIT_FAILURE, 0, "set_basic_constraints: %s",
                gnutls_strerror (ret));
 
-      ret = get_sign_status (1);
-      if (ret)
-        usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
+      if (pk == GNUTLS_PK_RSA)
+        {
+          ret = get_sign_status (1);
+          if (ret)
+            usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
 
-      ret = get_encrypt_status (1);
-      if (ret)
-        usage |= GNUTLS_KEY_KEY_ENCIPHERMENT;
-      else
+          /* Only ask for an encryption certificate
+           * if it is an RSA one */
+          ret = get_encrypt_status (1);
+          if (ret)
+            usage |= GNUTLS_KEY_KEY_ENCIPHERMENT;
+          else
+            usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
+        }
+      else /* DSA and ECDSA are always signing */
         usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
 
       if (ca_status)
@@ -1973,7 +1990,7 @@ generate_request (common_info_st * cinfo)
   if (ret < 0)
     error (EXIT_FAILURE, 0, "set_key: %s", gnutls_strerror (ret));
 
-  ret = gnutls_x509_crq_privkey_sign (crq, pkey, SIGN_HASH, 0);
+  ret = gnutls_x509_crq_privkey_sign (crq, pkey, get_dig_for_pub (pubkey), 0);
   if (ret < 0)
     error (EXIT_FAILURE, 0, "sign: %s", gnutls_strerror (ret));
 
@@ -2163,14 +2180,14 @@ print_verification_res (FILE* outfile, unsigned int output)
 {
   int comma = 0;
 
-  if (output & GNUTLS_CERT_INVALID)
+  if (output == 0)
     {
-      fprintf (outfile, "Not verified");
+      fprintf (outfile, "Verified");
       comma = 1;
     }
   else
     {
-      fprintf (outfile, "Verified");
+      fprintf (outfile, "Not verified");
       comma = 1;
     }
 
@@ -2270,7 +2287,6 @@ verify_crl (common_info_st * cinfo)
   int ret;
   gnutls_datum_t pem;
   gnutls_x509_crl_t crl;
-  time_t now = time (0);
   gnutls_x509_crt_t issuer;
 
   issuer = load_ca_cert (cinfo);
@@ -2330,23 +2346,20 @@ verify_crl (common_info_st * cinfo)
       comma = 1;
     }
 
-  /* Check expiration dates.
-   */
-
-  if (gnutls_x509_crl_get_this_update (crl) > now)
+  if (output & GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED)
     {
       if (comma)
         fprintf (outfile, ", ");
+      fprintf (outfile, "CRL is not up to date");
       comma = 1;
-      fprintf (outfile, "Issued in the future!");
     }
 
-  if (gnutls_x509_crl_get_next_update (crl) < now)
+  if (output & GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE)
     {
       if (comma)
         fprintf (outfile, ", ");
+      fprintf (outfile, "Issued in the future!");
       comma = 1;
-      fprintf (outfile, "CRL is not up to date");
     }
 
   fprintf (outfile, "\n");
index a76f881..9bc0398 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (cli-args.c)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:43 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:10 PM by AutoGen 5.17.3
  *  From the definitions    cli-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  gnutls-cli 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-cli 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (gnutls_cli_opt_strs+0)
-#define zLicenseDescrip (gnutls_cli_opt_strs+278)
+#define zLicenseDescrip (gnutls_cli_opt_strs+274)
 
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
-/*
- *  gnutls-cli option static const strings
+/**
+ *  static const strings for gnutls-cli options
  */
-static char const gnutls_cli_opt_strs[3367] =
-/*     0 */ "gnutls-cli 3.0.21\n"
+static char const gnutls_cli_opt_strs[3347] =
+/*     0 */ "gnutls-cli 3.0.30\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   278 */ "gnutls-cli is free software: you can redistribute it and/or modify it under\n"
+            "redistribution under the terms of the GNU General Public License,\n"
+            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
+/*   274 */ "gnutls-cli is free software: you can redistribute it and/or modify it under\n"
             "the terms of the GNU General Public License as published by the Free\n"
             "Software Foundation, either version 3 of the License, or (at your option)\n"
             "any later version.\n\n"
@@ -84,440 +79,583 @@ static char const gnutls_cli_opt_strs[3367] =
             "more details.\n\n"
             "You should have received a copy of the GNU General Public License along\n"
             "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   887 */ "Enable debugging.\0"
-/*   905 */ "DEBUG\0"
-/*   911 */ "debug\0"
-/*   917 */ "More verbose output\0"
-/*   937 */ "VERBOSE\0"
-/*   945 */ "verbose\0"
-/*   953 */ "Enable trust on first use authentication\0"
-/*   994 */ "TOFU\0"
-/*   999 */ "no-tofu\0"
-/*  1007 */ "no\0"
-/*  1010 */ "Enable OCSP certificate verification\0"
-/*  1047 */ "OCSP\0"
-/*  1052 */ "no-ocsp\0"
-/*  1060 */ "Establish a session and resume\0"
-/*  1091 */ "RESUME\0"
-/*  1098 */ "resume\0"
-/*  1105 */ "Establish a session and rehandshake\0"
-/*  1141 */ "REHANDSHAKE\0"
-/*  1153 */ "rehandshake\0"
-/*  1165 */ "Don't accept session tickets\0"
-/*  1194 */ "NOTICKET\0"
-/*  1203 */ "noticket\0"
-/*  1212 */ "Connect, establish a plain session and start TLS.\0"
-/*  1262 */ "STARTTLS\0"
-/*  1271 */ "starttls\0"
-/*  1280 */ "Use DTLS (datagram TLS) over UDP\0"
-/*  1313 */ "UDP\0"
-/*  1317 */ "udp\0"
-/*  1321 */ "Set MTU for datagram TLS\0"
-/*  1346 */ "MTU\0"
-/*  1350 */ "mtu\0"
-/*  1354 */ "Send CR LF instead of LF\0"
-/*  1379 */ "CRLF\0"
-/*  1384 */ "crlf\0"
-/*  1389 */ "Use DER format for certificates to read from\0"
-/*  1434 */ "X509FMTDER\0"
-/*  1445 */ "x509fmtder\0"
-/*  1456 */ "Send the openpgp fingerprint, instead of the key\0"
-/*  1505 */ "FINGERPRINT\0"
-/*  1517 */ "fingerprint\0"
-/*  1529 */ "Disable all the TLS extensions\0"
-/*  1560 */ "DISABLE_EXTENSIONS\0"
-/*  1579 */ "disable-extensions\0"
-/*  1598 */ "Print peer's certificate in PEM format\0"
-/*  1637 */ "PRINT_CERT\0"
-/*  1648 */ "print-cert\0"
-/*  1659 */ "The maximum record size to advertize\0"
-/*  1696 */ "RECORDSIZE\0"
-/*  1707 */ "recordsize\0"
-/*  1718 */ "Priorities string\0"
-/*  1736 */ "PRIORITY\0"
-/*  1745 */ "priority\0"
-/*  1754 */ "Certificate file or PKCS #11 URL to use\0"
-/*  1794 */ "X509CAFILE\0"
-/*  1805 */ "x509cafile\0"
-/*  1816 */ "CRL file to use\0"
-/*  1832 */ "X509CRLFILE\0"
-/*  1844 */ "x509crlfile\0"
-/*  1856 */ "PGP Key file to use\0"
-/*  1876 */ "PGPKEYFILE\0"
-/*  1887 */ "pgpkeyfile\0"
-/*  1898 */ "PGP Key ring file to use\0"
-/*  1923 */ "PGPKEYRING\0"
-/*  1934 */ "pgpkeyring\0"
-/*  1945 */ "PGP Public Key (certificate) file to use\0"
-/*  1986 */ "PGPCERTFILE\0"
-/*  1998 */ "pgpcertfile\0"
-/*  2010 */ "X.509 key file or PKCS #11 URL to use\0"
-/*  2048 */ "X509KEYFILE\0"
-/*  2060 */ "x509keyfile\0"
-/*  2072 */ "X.509 Certificate file or PKCS #11 URL to use\0"
-/*  2118 */ "X509CERTFILE\0"
-/*  2131 */ "x509certfile\0"
-/*  2144 */ "PGP subkey to use (hex or auto)\0"
-/*  2176 */ "PGPSUBKEY\0"
-/*  2186 */ "pgpsubkey\0"
-/*  2196 */ "SRP username to use\0"
-/*  2216 */ "SRPUSERNAME\0"
-/*  2228 */ "srpusername\0"
-/*  2240 */ "SRP password to use\0"
-/*  2260 */ "SRPPASSWD\0"
-/*  2270 */ "srppasswd\0"
-/*  2280 */ "PSK username to use\0"
-/*  2300 */ "PSKUSERNAME\0"
-/*  2312 */ "pskusername\0"
-/*  2324 */ "PSK key (in hex) to use\0"
-/*  2348 */ "PSKKEY\0"
-/*  2355 */ "pskkey\0"
-/*  2362 */ "The port or service to connect to\0"
-/*  2396 */ "PORT\0"
-/*  2401 */ "port\0"
-/*  2406 */ "Don't abort program if server certificate can't be validated\0"
-/*  2467 */ "INSECURE\0"
-/*  2476 */ "insecure\0"
-/*  2485 */ "Benchmark individual ciphers\0"
-/*  2514 */ "BENCHMARK_CIPHERS\0"
-/*  2532 */ "benchmark-ciphers\0"
-/*  2550 */ "Benchmark individual software ciphers (no hw acceleration)\0"
-/*  2609 */ "BENCHMARK_SOFT_CIPHERS\0"
-/*  2632 */ "benchmark-soft-ciphers\0"
-/*  2655 */ "Benchmark ciphers and key exchange methods in TLS\0"
-/*  2705 */ "BENCHMARK_TLS\0"
-/*  2719 */ "benchmark-tls\0"
-/*  2733 */ "Print a list of the supported algorithms and modes\0"
-/*  2784 */ "LIST\0"
-/*  2789 */ "list\0"
-/*  2794 */ "Display extended usage information and exit\0"
-/*  2838 */ "help\0"
-/*  2843 */ "Extended usage information passed thru pager\0"
-/*  2888 */ "more-help\0"
-/*  2898 */ "Output version information and exit\0"
-/*  2934 */ "version\0"
-/*  2942 */ "GNUTLS_CLI\0"
-/*  2953 */ "gnutls-cli - GnuTLS client - Ver. 3.0.21\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostname]\n\0"
-/*  3063 */ "bug-gnutls@gnu.org\0"
-/*  3082 */ "\n\n\0"
-/*  3085 */ "\n"
-            "Simple client program to set up a TLS connection to some other computer.  It\n"
+/*   883 */ "Enable debugging.\0"
+/*   901 */ "DEBUG\0"
+/*   907 */ "debug\0"
+/*   913 */ "More verbose output\0"
+/*   933 */ "VERBOSE\0"
+/*   941 */ "verbose\0"
+/*   949 */ "Enable trust on first use authentication\0"
+/*   990 */ "TOFU\0"
+/*   995 */ "no-tofu\0"
+/*  1003 */ "no\0"
+/*  1006 */ "Enable OCSP certificate verification\0"
+/*  1043 */ "OCSP\0"
+/*  1048 */ "no-ocsp\0"
+/*  1056 */ "Establish a session and resume\0"
+/*  1087 */ "RESUME\0"
+/*  1094 */ "resume\0"
+/*  1101 */ "Establish a session and rehandshake\0"
+/*  1137 */ "REHANDSHAKE\0"
+/*  1149 */ "rehandshake\0"
+/*  1161 */ "Don't accept session tickets\0"
+/*  1190 */ "NOTICKET\0"
+/*  1199 */ "noticket\0"
+/*  1208 */ "Connect, establish a plain session and start TLS.\0"
+/*  1258 */ "STARTTLS\0"
+/*  1267 */ "starttls\0"
+/*  1276 */ "Use DTLS (datagram TLS) over UDP\0"
+/*  1309 */ "UDP\0"
+/*  1313 */ "udp\0"
+/*  1317 */ "Set MTU for datagram TLS\0"
+/*  1342 */ "MTU\0"
+/*  1346 */ "mtu\0"
+/*  1350 */ "Send CR LF instead of LF\0"
+/*  1375 */ "CRLF\0"
+/*  1380 */ "crlf\0"
+/*  1385 */ "Use DER format for certificates to read from\0"
+/*  1430 */ "X509FMTDER\0"
+/*  1441 */ "x509fmtder\0"
+/*  1452 */ "Send the openpgp fingerprint, instead of the key\0"
+/*  1501 */ "FINGERPRINT\0"
+/*  1513 */ "fingerprint\0"
+/*  1525 */ "Disable all the TLS extensions\0"
+/*  1556 */ "DISABLE_EXTENSIONS\0"
+/*  1575 */ "disable-extensions\0"
+/*  1594 */ "Print peer's certificate in PEM format\0"
+/*  1633 */ "PRINT_CERT\0"
+/*  1644 */ "print-cert\0"
+/*  1655 */ "The maximum record size to advertize\0"
+/*  1692 */ "RECORDSIZE\0"
+/*  1703 */ "recordsize\0"
+/*  1714 */ "Priorities string\0"
+/*  1732 */ "PRIORITY\0"
+/*  1741 */ "priority\0"
+/*  1750 */ "Certificate file or PKCS #11 URL to use\0"
+/*  1790 */ "X509CAFILE\0"
+/*  1801 */ "x509cafile\0"
+/*  1812 */ "CRL file to use\0"
+/*  1828 */ "X509CRLFILE\0"
+/*  1840 */ "x509crlfile\0"
+/*  1852 */ "PGP Key file to use\0"
+/*  1872 */ "PGPKEYFILE\0"
+/*  1883 */ "pgpkeyfile\0"
+/*  1894 */ "PGP Key ring file to use\0"
+/*  1919 */ "PGPKEYRING\0"
+/*  1930 */ "pgpkeyring\0"
+/*  1941 */ "PGP Public Key (certificate) file to use\0"
+/*  1982 */ "PGPCERTFILE\0"
+/*  1994 */ "pgpcertfile\0"
+/*  2006 */ "X.509 key file or PKCS #11 URL to use\0"
+/*  2044 */ "X509KEYFILE\0"
+/*  2056 */ "x509keyfile\0"
+/*  2068 */ "X.509 Certificate file or PKCS #11 URL to use\0"
+/*  2114 */ "X509CERTFILE\0"
+/*  2127 */ "x509certfile\0"
+/*  2140 */ "PGP subkey to use (hex or auto)\0"
+/*  2172 */ "PGPSUBKEY\0"
+/*  2182 */ "pgpsubkey\0"
+/*  2192 */ "SRP username to use\0"
+/*  2212 */ "SRPUSERNAME\0"
+/*  2224 */ "srpusername\0"
+/*  2236 */ "SRP password to use\0"
+/*  2256 */ "SRPPASSWD\0"
+/*  2266 */ "srppasswd\0"
+/*  2276 */ "PSK username to use\0"
+/*  2296 */ "PSKUSERNAME\0"
+/*  2308 */ "pskusername\0"
+/*  2320 */ "PSK key (in hex) to use\0"
+/*  2344 */ "PSKKEY\0"
+/*  2351 */ "pskkey\0"
+/*  2358 */ "The port or service to connect to\0"
+/*  2392 */ "PORT\0"
+/*  2397 */ "port\0"
+/*  2402 */ "Don't abort program if server certificate can't be validated\0"
+/*  2463 */ "INSECURE\0"
+/*  2472 */ "insecure\0"
+/*  2481 */ "Benchmark individual ciphers\0"
+/*  2510 */ "BENCHMARK_CIPHERS\0"
+/*  2528 */ "benchmark-ciphers\0"
+/*  2546 */ "Benchmark individual software ciphers (no hw acceleration)\0"
+/*  2605 */ "BENCHMARK_SOFT_CIPHERS\0"
+/*  2628 */ "benchmark-soft-ciphers\0"
+/*  2651 */ "Benchmark ciphers and key exchange methods in TLS\0"
+/*  2701 */ "BENCHMARK_TLS\0"
+/*  2715 */ "benchmark-tls\0"
+/*  2729 */ "Print a list of the supported algorithms and modes\0"
+/*  2780 */ "LIST\0"
+/*  2785 */ "list\0"
+/*  2790 */ "display extended usage information and exit\0"
+/*  2834 */ "help\0"
+/*  2839 */ "extended usage information passed thru pager\0"
+/*  2884 */ "more-help\0"
+/*  2894 */ "output version information and exit\0"
+/*  2930 */ "version\0"
+/*  2938 */ "GNUTLS_CLI\0"
+/*  2949 */ "gnutls-cli - GnuTLS client\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostname]\n\0"
+/*  3045 */ "bug-gnutls@gnu.org\0"
+/*  3064 */ "\n\0"
+/*  3066 */ "Simple client program to set up a TLS connection to some other computer.  It\n"
             "sets up a TLS connection and forwards data from the standard input to the\n"
             "secured socket and vice versa.\n\0"
-/*  3269 */ "gnutls-cli 3.0.21\0"
-/*  3287 */ "Usage: gnutls-cli [options] hostname\n"
+/*  3249 */ "gnutls-cli 3.0.30\0"
+/*  3267 */ "Usage: gnutls-cli [options] hostname\n"
             "gnutls-cli --help for usage instructions.\n";
 
-/*
+/**
  *  debug option description:
  */
-#define DEBUG_DESC      (gnutls_cli_opt_strs+887)
-#define DEBUG_NAME      (gnutls_cli_opt_strs+905)
-#define DEBUG_name      (gnutls_cli_opt_strs+911)
+/** Descriptive text for the debug option */
+#define DEBUG_DESC      (gnutls_cli_opt_strs+883)
+/** Upper-cased name for the debug option */
+#define DEBUG_NAME      (gnutls_cli_opt_strs+901)
+/** Name string for the debug option */
+#define DEBUG_name      (gnutls_cli_opt_strs+907)
+/** Compiled in flag settings for the debug option */
 #define DEBUG_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  verbose option description:
  */
-#define VERBOSE_DESC      (gnutls_cli_opt_strs+917)
-#define VERBOSE_NAME      (gnutls_cli_opt_strs+937)
-#define VERBOSE_name      (gnutls_cli_opt_strs+945)
+/** Descriptive text for the verbose option */
+#define VERBOSE_DESC      (gnutls_cli_opt_strs+913)
+/** Upper-cased name for the verbose option */
+#define VERBOSE_NAME      (gnutls_cli_opt_strs+933)
+/** Name string for the verbose option */
+#define VERBOSE_name      (gnutls_cli_opt_strs+941)
+/** Compiled in flag settings for the verbose option */
 #define VERBOSE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  tofu option description:
  */
-#define TOFU_DESC      (gnutls_cli_opt_strs+953)
-#define TOFU_NAME      (gnutls_cli_opt_strs+994)
-#define NOT_TOFU_name  (gnutls_cli_opt_strs+999)
-#define NOT_TOFU_PFX   (gnutls_cli_opt_strs+1007)
+/** Descriptive text for the tofu option */
+#define TOFU_DESC      (gnutls_cli_opt_strs+949)
+/** Upper-cased name for the tofu option */
+#define TOFU_NAME      (gnutls_cli_opt_strs+990)
+/** disablement name for the tofu option */
+#define NOT_TOFU_name  (gnutls_cli_opt_strs+995)
+/** disablement prefix for the tofu option */
+#define NOT_TOFU_PFX   (gnutls_cli_opt_strs+1003)
+/** Name string for the tofu option */
 #define TOFU_name      (NOT_TOFU_name + 3)
+/** Compiled in flag settings for the tofu option */
 #define TOFU_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  ocsp option description:
  */
-#define OCSP_DESC      (gnutls_cli_opt_strs+1010)
-#define OCSP_NAME      (gnutls_cli_opt_strs+1047)
-#define NOT_OCSP_name  (gnutls_cli_opt_strs+1052)
-#define NOT_OCSP_PFX   (gnutls_cli_opt_strs+1007)
+/** Descriptive text for the ocsp option */
+#define OCSP_DESC      (gnutls_cli_opt_strs+1006)
+/** Upper-cased name for the ocsp option */
+#define OCSP_NAME      (gnutls_cli_opt_strs+1043)
+/** disablement name for the ocsp option */
+#define NOT_OCSP_name  (gnutls_cli_opt_strs+1048)
+/** disablement prefix for the ocsp option */
+#define NOT_OCSP_PFX   (gnutls_cli_opt_strs+1003)
+/** Name string for the ocsp option */
 #define OCSP_name      (NOT_OCSP_name + 3)
+/** Compiled in flag settings for the ocsp option */
 #define OCSP_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  resume option description:
  */
-#define RESUME_DESC      (gnutls_cli_opt_strs+1060)
-#define RESUME_NAME      (gnutls_cli_opt_strs+1091)
-#define RESUME_name      (gnutls_cli_opt_strs+1098)
+/** Descriptive text for the resume option */
+#define RESUME_DESC      (gnutls_cli_opt_strs+1056)
+/** Upper-cased name for the resume option */
+#define RESUME_NAME      (gnutls_cli_opt_strs+1087)
+/** Name string for the resume option */
+#define RESUME_name      (gnutls_cli_opt_strs+1094)
+/** Compiled in flag settings for the resume option */
 #define RESUME_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  rehandshake option description:
  */
-#define REHANDSHAKE_DESC      (gnutls_cli_opt_strs+1105)
-#define REHANDSHAKE_NAME      (gnutls_cli_opt_strs+1141)
-#define REHANDSHAKE_name      (gnutls_cli_opt_strs+1153)
+/** Descriptive text for the rehandshake option */
+#define REHANDSHAKE_DESC      (gnutls_cli_opt_strs+1101)
+/** Upper-cased name for the rehandshake option */
+#define REHANDSHAKE_NAME      (gnutls_cli_opt_strs+1137)
+/** Name string for the rehandshake option */
+#define REHANDSHAKE_name      (gnutls_cli_opt_strs+1149)
+/** Compiled in flag settings for the rehandshake option */
 #define REHANDSHAKE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  noticket option description:
  */
-#define NOTICKET_DESC      (gnutls_cli_opt_strs+1165)
-#define NOTICKET_NAME      (gnutls_cli_opt_strs+1194)
-#define NOTICKET_name      (gnutls_cli_opt_strs+1203)
+/** Descriptive text for the noticket option */
+#define NOTICKET_DESC      (gnutls_cli_opt_strs+1161)
+/** Upper-cased name for the noticket option */
+#define NOTICKET_NAME      (gnutls_cli_opt_strs+1190)
+/** Name string for the noticket option */
+#define NOTICKET_name      (gnutls_cli_opt_strs+1199)
+/** Compiled in flag settings for the noticket option */
 #define NOTICKET_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  starttls option description:
  */
-#define STARTTLS_DESC      (gnutls_cli_opt_strs+1212)
-#define STARTTLS_NAME      (gnutls_cli_opt_strs+1262)
-#define STARTTLS_name      (gnutls_cli_opt_strs+1271)
+/** Descriptive text for the starttls option */
+#define STARTTLS_DESC      (gnutls_cli_opt_strs+1208)
+/** Upper-cased name for the starttls option */
+#define STARTTLS_NAME      (gnutls_cli_opt_strs+1258)
+/** Name string for the starttls option */
+#define STARTTLS_name      (gnutls_cli_opt_strs+1267)
+/** Compiled in flag settings for the starttls option */
 #define STARTTLS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  udp option description:
  */
-#define UDP_DESC      (gnutls_cli_opt_strs+1280)
-#define UDP_NAME      (gnutls_cli_opt_strs+1313)
-#define UDP_name      (gnutls_cli_opt_strs+1317)
+/** Descriptive text for the udp option */
+#define UDP_DESC      (gnutls_cli_opt_strs+1276)
+/** Upper-cased name for the udp option */
+#define UDP_NAME      (gnutls_cli_opt_strs+1309)
+/** Name string for the udp option */
+#define UDP_name      (gnutls_cli_opt_strs+1313)
+/** Compiled in flag settings for the udp option */
 #define UDP_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  mtu option description:
  */
-#define MTU_DESC      (gnutls_cli_opt_strs+1321)
-#define MTU_NAME      (gnutls_cli_opt_strs+1346)
-#define MTU_name      (gnutls_cli_opt_strs+1350)
+/** Descriptive text for the mtu option */
+#define MTU_DESC      (gnutls_cli_opt_strs+1317)
+/** Upper-cased name for the mtu option */
+#define MTU_NAME      (gnutls_cli_opt_strs+1342)
+/** Name string for the mtu option */
+#define MTU_name      (gnutls_cli_opt_strs+1346)
+/** Compiled in flag settings for the mtu option */
 #define MTU_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  crlf option description:
  */
-#define CRLF_DESC      (gnutls_cli_opt_strs+1354)
-#define CRLF_NAME      (gnutls_cli_opt_strs+1379)
-#define CRLF_name      (gnutls_cli_opt_strs+1384)
+/** Descriptive text for the crlf option */
+#define CRLF_DESC      (gnutls_cli_opt_strs+1350)
+/** Upper-cased name for the crlf option */
+#define CRLF_NAME      (gnutls_cli_opt_strs+1375)
+/** Name string for the crlf option */
+#define CRLF_name      (gnutls_cli_opt_strs+1380)
+/** Compiled in flag settings for the crlf option */
 #define CRLF_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  x509fmtder option description:
  */
-#define X509FMTDER_DESC      (gnutls_cli_opt_strs+1389)
-#define X509FMTDER_NAME      (gnutls_cli_opt_strs+1434)
-#define X509FMTDER_name      (gnutls_cli_opt_strs+1445)
+/** Descriptive text for the x509fmtder option */
+#define X509FMTDER_DESC      (gnutls_cli_opt_strs+1385)
+/** Upper-cased name for the x509fmtder option */
+#define X509FMTDER_NAME      (gnutls_cli_opt_strs+1430)
+/** Name string for the x509fmtder option */
+#define X509FMTDER_name      (gnutls_cli_opt_strs+1441)
+/** Compiled in flag settings for the x509fmtder option */
 #define X509FMTDER_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  fingerprint option description:
  */
-#define FINGERPRINT_DESC      (gnutls_cli_opt_strs+1456)
-#define FINGERPRINT_NAME      (gnutls_cli_opt_strs+1505)
-#define FINGERPRINT_name      (gnutls_cli_opt_strs+1517)
+/** Descriptive text for the fingerprint option */
+#define FINGERPRINT_DESC      (gnutls_cli_opt_strs+1452)
+/** Upper-cased name for the fingerprint option */
+#define FINGERPRINT_NAME      (gnutls_cli_opt_strs+1501)
+/** Name string for the fingerprint option */
+#define FINGERPRINT_name      (gnutls_cli_opt_strs+1513)
+/** Compiled in flag settings for the fingerprint option */
 #define FINGERPRINT_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  disable-extensions option description:
  */
-#define DISABLE_EXTENSIONS_DESC      (gnutls_cli_opt_strs+1529)
-#define DISABLE_EXTENSIONS_NAME      (gnutls_cli_opt_strs+1560)
-#define DISABLE_EXTENSIONS_name      (gnutls_cli_opt_strs+1579)
+/** Descriptive text for the disable-extensions option */
+#define DISABLE_EXTENSIONS_DESC      (gnutls_cli_opt_strs+1525)
+/** Upper-cased name for the disable-extensions option */
+#define DISABLE_EXTENSIONS_NAME      (gnutls_cli_opt_strs+1556)
+/** Name string for the disable-extensions option */
+#define DISABLE_EXTENSIONS_name      (gnutls_cli_opt_strs+1575)
+/** Compiled in flag settings for the disable-extensions option */
 #define DISABLE_EXTENSIONS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  print-cert option description:
  */
-#define PRINT_CERT_DESC      (gnutls_cli_opt_strs+1598)
-#define PRINT_CERT_NAME      (gnutls_cli_opt_strs+1637)
-#define PRINT_CERT_name      (gnutls_cli_opt_strs+1648)
+/** Descriptive text for the print-cert option */
+#define PRINT_CERT_DESC      (gnutls_cli_opt_strs+1594)
+/** Upper-cased name for the print-cert option */
+#define PRINT_CERT_NAME      (gnutls_cli_opt_strs+1633)
+/** Name string for the print-cert option */
+#define PRINT_CERT_name      (gnutls_cli_opt_strs+1644)
+/** Compiled in flag settings for the print-cert option */
 #define PRINT_CERT_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  recordsize option description:
  */
-#define RECORDSIZE_DESC      (gnutls_cli_opt_strs+1659)
-#define RECORDSIZE_NAME      (gnutls_cli_opt_strs+1696)
-#define RECORDSIZE_name      (gnutls_cli_opt_strs+1707)
+/** Descriptive text for the recordsize option */
+#define RECORDSIZE_DESC      (gnutls_cli_opt_strs+1655)
+/** Upper-cased name for the recordsize option */
+#define RECORDSIZE_NAME      (gnutls_cli_opt_strs+1692)
+/** Name string for the recordsize option */
+#define RECORDSIZE_name      (gnutls_cli_opt_strs+1703)
+/** Compiled in flag settings for the recordsize option */
 #define RECORDSIZE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  priority option description:
  */
-#define PRIORITY_DESC      (gnutls_cli_opt_strs+1718)
-#define PRIORITY_NAME      (gnutls_cli_opt_strs+1736)
-#define PRIORITY_name      (gnutls_cli_opt_strs+1745)
+/** Descriptive text for the priority option */
+#define PRIORITY_DESC      (gnutls_cli_opt_strs+1714)
+/** Upper-cased name for the priority option */
+#define PRIORITY_NAME      (gnutls_cli_opt_strs+1732)
+/** Name string for the priority option */
+#define PRIORITY_name      (gnutls_cli_opt_strs+1741)
+/** Compiled in flag settings for the priority option */
 #define PRIORITY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509cafile option description:
  */
-#define X509CAFILE_DESC      (gnutls_cli_opt_strs+1754)
-#define X509CAFILE_NAME      (gnutls_cli_opt_strs+1794)
-#define X509CAFILE_name      (gnutls_cli_opt_strs+1805)
+/** Descriptive text for the x509cafile option */
+#define X509CAFILE_DESC      (gnutls_cli_opt_strs+1750)
+/** Upper-cased name for the x509cafile option */
+#define X509CAFILE_NAME      (gnutls_cli_opt_strs+1790)
+/** Name string for the x509cafile option */
+#define X509CAFILE_name      (gnutls_cli_opt_strs+1801)
+/** Compiled in flag settings for the x509cafile option */
 #define X509CAFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509crlfile option description:
  */
-#define X509CRLFILE_DESC      (gnutls_cli_opt_strs+1816)
-#define X509CRLFILE_NAME      (gnutls_cli_opt_strs+1832)
-#define X509CRLFILE_name      (gnutls_cli_opt_strs+1844)
+/** Descriptive text for the x509crlfile option */
+#define X509CRLFILE_DESC      (gnutls_cli_opt_strs+1812)
+/** Upper-cased name for the x509crlfile option */
+#define X509CRLFILE_NAME      (gnutls_cli_opt_strs+1828)
+/** Name string for the x509crlfile option */
+#define X509CRLFILE_name      (gnutls_cli_opt_strs+1840)
+/** Compiled in flag settings for the x509crlfile option */
 #define X509CRLFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pgpkeyfile option description:
  */
-#define PGPKEYFILE_DESC      (gnutls_cli_opt_strs+1856)
-#define PGPKEYFILE_NAME      (gnutls_cli_opt_strs+1876)
-#define PGPKEYFILE_name      (gnutls_cli_opt_strs+1887)
+/** Descriptive text for the pgpkeyfile option */
+#define PGPKEYFILE_DESC      (gnutls_cli_opt_strs+1852)
+/** Upper-cased name for the pgpkeyfile option */
+#define PGPKEYFILE_NAME      (gnutls_cli_opt_strs+1872)
+/** Name string for the pgpkeyfile option */
+#define PGPKEYFILE_name      (gnutls_cli_opt_strs+1883)
+/** Compiled in flag settings for the pgpkeyfile option */
 #define PGPKEYFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pgpkeyring option description:
  */
-#define PGPKEYRING_DESC      (gnutls_cli_opt_strs+1898)
-#define PGPKEYRING_NAME      (gnutls_cli_opt_strs+1923)
-#define PGPKEYRING_name      (gnutls_cli_opt_strs+1934)
+/** Descriptive text for the pgpkeyring option */
+#define PGPKEYRING_DESC      (gnutls_cli_opt_strs+1894)
+/** Upper-cased name for the pgpkeyring option */
+#define PGPKEYRING_NAME      (gnutls_cli_opt_strs+1919)
+/** Name string for the pgpkeyring option */
+#define PGPKEYRING_name      (gnutls_cli_opt_strs+1930)
+/** Compiled in flag settings for the pgpkeyring option */
 #define PGPKEYRING_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pgpcertfile option description:
  */
-#define PGPCERTFILE_DESC      (gnutls_cli_opt_strs+1945)
-#define PGPCERTFILE_NAME      (gnutls_cli_opt_strs+1986)
-#define PGPCERTFILE_name      (gnutls_cli_opt_strs+1998)
+/** Descriptive text for the pgpcertfile option */
+#define PGPCERTFILE_DESC      (gnutls_cli_opt_strs+1941)
+/** Upper-cased name for the pgpcertfile option */
+#define PGPCERTFILE_NAME      (gnutls_cli_opt_strs+1982)
+/** Name string for the pgpcertfile option */
+#define PGPCERTFILE_name      (gnutls_cli_opt_strs+1994)
+/** Compiled in flag settings for the pgpcertfile option */
 #define PGPCERTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  x509keyfile option description:
  */
-#define X509KEYFILE_DESC      (gnutls_cli_opt_strs+2010)
-#define X509KEYFILE_NAME      (gnutls_cli_opt_strs+2048)
-#define X509KEYFILE_name      (gnutls_cli_opt_strs+2060)
+/** Descriptive text for the x509keyfile option */
+#define X509KEYFILE_DESC      (gnutls_cli_opt_strs+2006)
+/** Upper-cased name for the x509keyfile option */
+#define X509KEYFILE_NAME      (gnutls_cli_opt_strs+2044)
+/** Name string for the x509keyfile option */
+#define X509KEYFILE_name      (gnutls_cli_opt_strs+2056)
+/** Compiled in flag settings for the x509keyfile option */
 #define X509KEYFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509certfile option description:
  */
-#define X509CERTFILE_DESC      (gnutls_cli_opt_strs+2072)
-#define X509CERTFILE_NAME      (gnutls_cli_opt_strs+2118)
-#define X509CERTFILE_name      (gnutls_cli_opt_strs+2131)
+/** Descriptive text for the x509certfile option */
+#define X509CERTFILE_DESC      (gnutls_cli_opt_strs+2068)
+/** Upper-cased name for the x509certfile option */
+#define X509CERTFILE_NAME      (gnutls_cli_opt_strs+2114)
+/** Name string for the x509certfile option */
+#define X509CERTFILE_name      (gnutls_cli_opt_strs+2127)
+/** Compiled in flag settings for the x509certfile option */
 #define X509CERTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  pgpsubkey option description:
  */
-#define PGPSUBKEY_DESC      (gnutls_cli_opt_strs+2144)
-#define PGPSUBKEY_NAME      (gnutls_cli_opt_strs+2176)
-#define PGPSUBKEY_name      (gnutls_cli_opt_strs+2186)
+/** Descriptive text for the pgpsubkey option */
+#define PGPSUBKEY_DESC      (gnutls_cli_opt_strs+2140)
+/** Upper-cased name for the pgpsubkey option */
+#define PGPSUBKEY_NAME      (gnutls_cli_opt_strs+2172)
+/** Name string for the pgpsubkey option */
+#define PGPSUBKEY_name      (gnutls_cli_opt_strs+2182)
+/** Compiled in flag settings for the pgpsubkey option */
 #define PGPSUBKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  srpusername option description:
  */
-#define SRPUSERNAME_DESC      (gnutls_cli_opt_strs+2196)
-#define SRPUSERNAME_NAME      (gnutls_cli_opt_strs+2216)
-#define SRPUSERNAME_name      (gnutls_cli_opt_strs+2228)
+/** Descriptive text for the srpusername option */
+#define SRPUSERNAME_DESC      (gnutls_cli_opt_strs+2192)
+/** Upper-cased name for the srpusername option */
+#define SRPUSERNAME_NAME      (gnutls_cli_opt_strs+2212)
+/** Name string for the srpusername option */
+#define SRPUSERNAME_name      (gnutls_cli_opt_strs+2224)
+/** Compiled in flag settings for the srpusername option */
 #define SRPUSERNAME_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  srppasswd option description:
  */
-#define SRPPASSWD_DESC      (gnutls_cli_opt_strs+2240)
-#define SRPPASSWD_NAME      (gnutls_cli_opt_strs+2260)
-#define SRPPASSWD_name      (gnutls_cli_opt_strs+2270)
+/** Descriptive text for the srppasswd option */
+#define SRPPASSWD_DESC      (gnutls_cli_opt_strs+2236)
+/** Upper-cased name for the srppasswd option */
+#define SRPPASSWD_NAME      (gnutls_cli_opt_strs+2256)
+/** Name string for the srppasswd option */
+#define SRPPASSWD_name      (gnutls_cli_opt_strs+2266)
+/** Compiled in flag settings for the srppasswd option */
 #define SRPPASSWD_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  pskusername option description:
  */
-#define PSKUSERNAME_DESC      (gnutls_cli_opt_strs+2280)
-#define PSKUSERNAME_NAME      (gnutls_cli_opt_strs+2300)
-#define PSKUSERNAME_name      (gnutls_cli_opt_strs+2312)
+/** Descriptive text for the pskusername option */
+#define PSKUSERNAME_DESC      (gnutls_cli_opt_strs+2276)
+/** Upper-cased name for the pskusername option */
+#define PSKUSERNAME_NAME      (gnutls_cli_opt_strs+2296)
+/** Name string for the pskusername option */
+#define PSKUSERNAME_name      (gnutls_cli_opt_strs+2308)
+/** Compiled in flag settings for the pskusername option */
 #define PSKUSERNAME_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  pskkey option description:
  */
-#define PSKKEY_DESC      (gnutls_cli_opt_strs+2324)
-#define PSKKEY_NAME      (gnutls_cli_opt_strs+2348)
-#define PSKKEY_name      (gnutls_cli_opt_strs+2355)
+/** Descriptive text for the pskkey option */
+#define PSKKEY_DESC      (gnutls_cli_opt_strs+2320)
+/** Upper-cased name for the pskkey option */
+#define PSKKEY_NAME      (gnutls_cli_opt_strs+2344)
+/** Name string for the pskkey option */
+#define PSKKEY_name      (gnutls_cli_opt_strs+2351)
+/** Compiled in flag settings for the pskkey option */
 #define PSKKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  port option description:
  */
-#define PORT_DESC      (gnutls_cli_opt_strs+2362)
-#define PORT_NAME      (gnutls_cli_opt_strs+2396)
-#define PORT_name      (gnutls_cli_opt_strs+2401)
+/** Descriptive text for the port option */
+#define PORT_DESC      (gnutls_cli_opt_strs+2358)
+/** Upper-cased name for the port option */
+#define PORT_NAME      (gnutls_cli_opt_strs+2392)
+/** Name string for the port option */
+#define PORT_name      (gnutls_cli_opt_strs+2397)
+/** Compiled in flag settings for the port option */
 #define PORT_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  insecure option description:
  */
-#define INSECURE_DESC      (gnutls_cli_opt_strs+2406)
-#define INSECURE_NAME      (gnutls_cli_opt_strs+2467)
-#define INSECURE_name      (gnutls_cli_opt_strs+2476)
+/** Descriptive text for the insecure option */
+#define INSECURE_DESC      (gnutls_cli_opt_strs+2402)
+/** Upper-cased name for the insecure option */
+#define INSECURE_NAME      (gnutls_cli_opt_strs+2463)
+/** Name string for the insecure option */
+#define INSECURE_name      (gnutls_cli_opt_strs+2472)
+/** Compiled in flag settings for the insecure option */
 #define INSECURE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  benchmark-ciphers option description:
  */
-#define BENCHMARK_CIPHERS_DESC      (gnutls_cli_opt_strs+2485)
-#define BENCHMARK_CIPHERS_NAME      (gnutls_cli_opt_strs+2514)
-#define BENCHMARK_CIPHERS_name      (gnutls_cli_opt_strs+2532)
+/** Descriptive text for the benchmark-ciphers option */
+#define BENCHMARK_CIPHERS_DESC      (gnutls_cli_opt_strs+2481)
+/** Upper-cased name for the benchmark-ciphers option */
+#define BENCHMARK_CIPHERS_NAME      (gnutls_cli_opt_strs+2510)
+/** Name string for the benchmark-ciphers option */
+#define BENCHMARK_CIPHERS_name      (gnutls_cli_opt_strs+2528)
+/** Compiled in flag settings for the benchmark-ciphers option */
 #define BENCHMARK_CIPHERS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  benchmark-soft-ciphers option description:
  */
-#define BENCHMARK_SOFT_CIPHERS_DESC      (gnutls_cli_opt_strs+2550)
-#define BENCHMARK_SOFT_CIPHERS_NAME      (gnutls_cli_opt_strs+2609)
-#define BENCHMARK_SOFT_CIPHERS_name      (gnutls_cli_opt_strs+2632)
+/** Descriptive text for the benchmark-soft-ciphers option */
+#define BENCHMARK_SOFT_CIPHERS_DESC      (gnutls_cli_opt_strs+2546)
+/** Upper-cased name for the benchmark-soft-ciphers option */
+#define BENCHMARK_SOFT_CIPHERS_NAME      (gnutls_cli_opt_strs+2605)
+/** Name string for the benchmark-soft-ciphers option */
+#define BENCHMARK_SOFT_CIPHERS_name      (gnutls_cli_opt_strs+2628)
+/** Compiled in flag settings for the benchmark-soft-ciphers option */
 #define BENCHMARK_SOFT_CIPHERS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  benchmark-tls option description:
  */
-#define BENCHMARK_TLS_DESC      (gnutls_cli_opt_strs+2655)
-#define BENCHMARK_TLS_NAME      (gnutls_cli_opt_strs+2705)
-#define BENCHMARK_TLS_name      (gnutls_cli_opt_strs+2719)
+/** Descriptive text for the benchmark-tls option */
+#define BENCHMARK_TLS_DESC      (gnutls_cli_opt_strs+2651)
+/** Upper-cased name for the benchmark-tls option */
+#define BENCHMARK_TLS_NAME      (gnutls_cli_opt_strs+2701)
+/** Name string for the benchmark-tls option */
+#define BENCHMARK_TLS_name      (gnutls_cli_opt_strs+2715)
+/** Compiled in flag settings for the benchmark-tls option */
 #define BENCHMARK_TLS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  list option description:
  */
-#define LIST_DESC      (gnutls_cli_opt_strs+2733)
-#define LIST_NAME      (gnutls_cli_opt_strs+2784)
-#define LIST_name      (gnutls_cli_opt_strs+2789)
+/** Descriptive text for the list option */
+#define LIST_DESC      (gnutls_cli_opt_strs+2729)
+/** Upper-cased name for the list option */
+#define LIST_NAME      (gnutls_cli_opt_strs+2780)
+/** Name string for the list option */
+#define LIST_name      (gnutls_cli_opt_strs+2785)
+/** Compiled in flag settings for the list option */
 #define LIST_FLAGS     (OPTST_DISABLED)
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (gnutls_cli_opt_strs+2794)
-#define HELP_name       (gnutls_cli_opt_strs+2838)
+#define HELP_DESC       (gnutls_cli_opt_strs+2790)
+#define HELP_name       (gnutls_cli_opt_strs+2834)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (gnutls_cli_opt_strs+2843)
-#define MORE_HELP_name  (gnutls_cli_opt_strs+2888)
+#define MORE_HELP_DESC  (gnutls_cli_opt_strs+2839)
+#define MORE_HELP_name  (gnutls_cli_opt_strs+2884)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -530,9 +668,9 @@ static char const gnutls_cli_opt_strs[3367] =
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (gnutls_cli_opt_strs+2898)
-#define VER_name        (gnutls_cli_opt_strs+2934)
-/*
+#define VER_DESC        (gnutls_cli_opt_strs+2894)
+#define VER_name        (gnutls_cli_opt_strs+2930)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -976,7 +1114,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -990,7 +1128,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -1002,7 +1140,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -1012,19 +1150,24 @@ static tOptDesc optDesc[OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the gnutls-cli Option Environment
- */
-#define zPROGNAME       (gnutls_cli_opt_strs+2942)
-#define zUsageTitle     (gnutls_cli_opt_strs+2953)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of gnutls-cli. */
+#define zPROGNAME       (gnutls_cli_opt_strs+2938)
+/** Reference to the title line for gnutls-cli usage. */
+#define zUsageTitle     (gnutls_cli_opt_strs+2949)
+/** There is no gnutls-cli configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for gnutls-cli config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (gnutls_cli_opt_strs+3063)
-#define zExplain        (gnutls_cli_opt_strs+3082)
-#define zDetail         (gnutls_cli_opt_strs+3085)
-#define zFullVersion    (gnutls_cli_opt_strs+3269)
-/* extracted from optcode.tlib near line 350 */
+/** The gnutls-cli program bug email address. */
+#define zBugsAddr       (gnutls_cli_opt_strs+3045)
+/** Clarification/explanation of what gnutls-cli does. */
+#define zExplain        (gnutls_cli_opt_strs+3064)
+/** Extra detail explaining what gnutls-cli does. */
+#define zDetail         (gnutls_cli_opt_strs+3066)
+/** The full version string for gnutls-cli. */
+#define zFullVersion    (gnutls_cli_opt_strs+3249)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -1034,10 +1177,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define gnutls_cli_full_usage (NULL)
-
-#define gnutls_cli_short_usage (gnutls_cli_opt_strs+3287)
+#define gnutls_cli_short_usage (gnutls_cli_opt_strs+3267)
 
 #endif /* not defined __doxygen__ */
 
@@ -1047,8 +1188,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 /**
  * The callout function that invokes the optionUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -1063,9 +1204,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the debug option.
- *
- * @param pOptions the gnutls-cli options data structure
- * @param pOptDesc the option descriptor for this option.
+ * Specifies the debug level.
+ * @param[in] pOptions the gnutls-cli options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1091,8 +1232,7 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -1100,8 +1240,8 @@ emit_ranges:
 /**
  * Code to handle the mtu option.
  *
- * @param pOptions the gnutls-cli options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-cli options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptMtu(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1127,8 +1267,7 @@ doOptMtu(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -1136,8 +1275,8 @@ emit_ranges:
 /**
  * Code to handle the recordsize option.
  *
- * @param pOptions the gnutls-cli options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-cli options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptRecordsize(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1163,8 +1302,7 @@ doOptRecordsize(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -1172,8 +1310,8 @@ emit_ranges:
 /**
  * Code to handle the x509crlfile option.
  *
- * @param pOptions the gnutls-cli options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-cli options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptX509crlfile(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1186,6 +1324,9 @@ doOptX509crlfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1193,8 +1334,8 @@ doOptX509crlfile(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the pgpkeyfile option.
  *
- * @param pOptions the gnutls-cli options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-cli options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptPgpkeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1207,6 +1348,9 @@ doOptPgpkeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1214,8 +1358,8 @@ doOptPgpkeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the pgpkeyring option.
  *
- * @param pOptions the gnutls-cli options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-cli options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptPgpkeyring(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1228,6 +1372,9 @@ doOptPgpkeyring(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1235,8 +1382,8 @@ doOptPgpkeyring(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the pgpcertfile option.
  *
- * @param pOptions the gnutls-cli options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-cli options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1249,9 +1396,12 @@ doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with gnutls-cli.
@@ -1267,6 +1417,7 @@ doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #ifndef  WITH_PACKAGER
 # define gnutls_cli_packager_info NULL
 #else
+/** Packager information for gnutls-cli. */
 static char const gnutls_cli_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -1322,42 +1473,69 @@ tOptions gnutls_cliOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * gnutls-cli program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(GNUTLS_CLI_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -1367,56 +1545,508 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &gnutls_cliOptions;
+    tOptions * const opts = &gnutls_cliOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
-
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        coerce_it((void*)&(pOpt->pzShortUsage));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
+
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        gnutls_cliOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the gnutls_cliOptions structure noted in the comments below.  The
+     literal text is defined in gnutls_cli_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     gnutls_cli_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via gnutls_cliOptions.pzCopyright */
+  puts(_("gnutls-cli 3.0.30\n\
+Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU General Public License,\n\
+version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
+
+  /* referenced via gnutls_cliOptions.pzCopyNotice */
+  puts(_("gnutls-cli is free software: you can redistribute it and/or modify it under\n\
+the terms of the GNU General Public License as published by the Free\n\
+Software Foundation, either version 3 of the License, or (at your option)\n\
+any later version.\n\n"));
+  puts(_("gnutls-cli is distributed in the hope that it will be useful, but WITHOUT\n\
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n\
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\n\
+more details.\n\n"));
+  puts(_("You should have received a copy of the GNU General Public License along\n\
+with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Enable debugging."));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("More verbose output"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Enable trust on first use authentication"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Enable OCSP certificate verification"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Establish a session and resume"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Establish a session and rehandshake"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Don't accept session tickets"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Connect, establish a plain session and start TLS."));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Use DTLS (datagram TLS) over UDP"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Set MTU for datagram TLS"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Send CR LF instead of LF"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Use DER format for certificates to read from"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Send the openpgp fingerprint, instead of the key"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Disable all the TLS extensions"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Print peer's certificate in PEM format"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("The maximum record size to advertize"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Priorities string"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Certificate file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("CRL file to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("PGP Key file to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("PGP Key ring file to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("PGP Public Key (certificate) file to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("X.509 key file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("X.509 Certificate file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("PGP subkey to use (hex or auto)"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("SRP username to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("SRP password to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("PSK username to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("PSK key (in hex) to use"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("The port or service to connect to"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Don't abort program if server certificate can't be validated"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Benchmark individual ciphers"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Benchmark individual software ciphers (no hw acceleration)"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Benchmark ciphers and key exchange methods in TLS"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Print a list of the supported algorithms and modes"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via gnutls_cliOptions.pzUsageTitle */
+  puts(_("gnutls-cli - GnuTLS client\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostname]\n"));
+
+  /* referenced via gnutls_cliOptions.pzExplain */
+  puts(_("\n"));
+
+  /* referenced via gnutls_cliOptions.pzDetail */
+  puts(_("Simple client program to set up a TLS connection to some other computer.  It\n\
+sets up a TLS connection and forwards data from the standard input to the\n\
+secured socket and vice versa.\n"));
+
+  /* referenced via gnutls_cliOptions.pzFullVersion */
+  puts(_("gnutls-cli 3.0.30"));
+
+  /* referenced via gnutls_cliOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via gnutls_cliOptions.pzShortUsage */
+  puts(_("Usage: gnutls-cli [options] hostname\n\
+gnutls-cli --help for usage instructions.\n"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index 2e5c45a..8aadcb2 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (cli-args.h)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:43 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:10 PM by AutoGen 5.17.3
  *  From the definitions    cli-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  gnutls-cli 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-cli 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the gnutls-cli program.
  *  These macros are documented in the AutoGen info file in the
 #include "config.h"
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for gnutls-cli
  */
 typedef enum {
     INDEX_OPT_DEBUG                   =  0,
@@ -106,44 +105,63 @@ typedef enum {
     INDEX_OPT_HELP                    = 36,
     INDEX_OPT_MORE_HELP               = 37
 } teOptIndex;
-
+/** count of all options for gnutls-cli */
 #define OPTION_CT    38
-#define GNUTLS_CLI_VERSION       "3.0.21"
-#define GNUTLS_CLI_FULL_VERSION  "gnutls-cli 3.0.21"
+/** gnutls-cli version */
+#define GNUTLS_CLI_VERSION       "3.0.30"
+/** Full gnutls-cli version text */
+#define GNUTLS_CLI_FULL_VERSION  "gnutls-cli 3.0.30"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teOptIndex enumeration above).
  *  e.g. HAVE_OPT(DEBUG)
  */
 #define         DESC(n) (gnutls_cliOptions.pOptDesc[INDEX_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      OPT_ARG(n) (DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_OPT(n) (DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_OPT(n) STMTS( \
                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     DESC(n).fOptState |= OPTST_DISABLED; \
                 DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of gnutls-cli exit codes
  */
 typedef enum {
-    GNUTLS_CLI_EXIT_SUCCESS = 0,
-    GNUTLS_CLI_EXIT_FAILURE = 1,
+    GNUTLS_CLI_EXIT_SUCCESS         = 0,
+    GNUTLS_CLI_EXIT_FAILURE         = 1,
+    GNUTLS_CLI_EXIT_USAGE_ERROR     = 64,
     GNUTLS_CLI_EXIT_LIBOPTS_FAILURE = 70
 } gnutls_cli_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_OPT_DEBUG          'd'
 
@@ -186,8 +204,11 @@ typedef enum {
 #define VALUE_OPT_BENCHMARK_SOFT_CIPHERS 32
 #define VALUE_OPT_BENCHMARK_TLS  129
 #define VALUE_OPT_LIST           'l'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_MORE_HELP     '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_VERSION       'v'
 /*
  *  Interface defines not associated with particular options
@@ -199,7 +220,7 @@ typedef enum {
                 gnutls_cliOptions.pzCurOpt  = NULL)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*gnutls_cliOptions.pUsageProc)(&gnutls_cliOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -219,6 +240,12 @@ extern tOptions gnutls_cliOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
index bdcca85..d486bb1 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (cli-debug-args.c)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:46 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:13 PM by AutoGen 5.17.3
  *  From the definitions    cli-debug-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  gnutls-cli-debug 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-cli-debug 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (gnutls_cli_debug_opt_strs+0)
-#define zLicenseDescrip (gnutls_cli_debug_opt_strs+284)
+#define zLicenseDescrip (gnutls_cli_debug_opt_strs+280)
 
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
-/*
- *  gnutls-cli-debug option static const strings
+/**
+ *  static const strings for gnutls-cli-debug options
  */
-static char const gnutls_cli_debug_opt_strs[1832] =
-/*     0 */ "gnutls-cli-debug 3.0.21\n"
+static char const gnutls_cli_debug_opt_strs[1812] =
+/*     0 */ "gnutls-cli-debug 3.0.30\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   284 */ "gnutls-cli-debug is free software: you can redistribute it and/or modify it\n"
+            "redistribution under the terms of the GNU General Public License,\n"
+            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
+/*   280 */ "gnutls-cli-debug is free software: you can redistribute it and/or modify it\n"
             "under the terms of the GNU General Public License as published by the Free\n"
             "Software Foundation, either version 3 of the License, or (at your option)\n"
             "any later version.\n\n"
@@ -84,71 +79,82 @@ static char const gnutls_cli_debug_opt_strs[1832] =
             "for more details.\n\n"
             "You should have received a copy of the GNU General Public License along\n"
             "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   905 */ "Enable debugging.\0"
-/*   923 */ "DEBUG\0"
-/*   929 */ "debug\0"
-/*   935 */ "More verbose output\0"
-/*   955 */ "VERBOSE\0"
-/*   963 */ "verbose\0"
-/*   971 */ "The port to connect to\0"
-/*   994 */ "PORT\0"
-/*   999 */ "port\0"
-/*  1004 */ "Display extended usage information and exit\0"
-/*  1048 */ "help\0"
-/*  1053 */ "Extended usage information passed thru pager\0"
-/*  1098 */ "more-help\0"
-/*  1108 */ "Output version information and exit\0"
-/*  1144 */ "version\0"
-/*  1152 */ "GNUTLS_CLI_DEBUG\0"
-/*  1169 */ "gnutls-cli-debug - GnuTLS debug client - Ver. 3.0.21\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \n\0"
-/*  1281 */ "bug-gnutls@gnu.org\0"
-/*  1300 */ "\n\n\0"
-/*  1303 */ "\n"
-            "TLS debug client.  It sets up multiple TLS connections to a server and\n"
+/*   901 */ "Enable debugging.\0"
+/*   919 */ "DEBUG\0"
+/*   925 */ "debug\0"
+/*   931 */ "More verbose output\0"
+/*   951 */ "VERBOSE\0"
+/*   959 */ "verbose\0"
+/*   967 */ "The port to connect to\0"
+/*   990 */ "PORT\0"
+/*   995 */ "port\0"
+/*  1000 */ "display extended usage information and exit\0"
+/*  1044 */ "help\0"
+/*  1049 */ "extended usage information passed thru pager\0"
+/*  1094 */ "more-help\0"
+/*  1104 */ "output version information and exit\0"
+/*  1140 */ "version\0"
+/*  1148 */ "GNUTLS_CLI_DEBUG\0"
+/*  1165 */ "gnutls-cli-debug - GnuTLS debug client\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \n\0"
+/*  1263 */ "bug-gnutls@gnu.org\0"
+/*  1282 */ "\n\0"
+/*  1284 */ "TLS debug client.  It sets up multiple TLS connections to a server and\n"
             "queries its capabilities.  It was created to assist in debugging GnuTLS,\n"
             "but it might be useful to extract a TLS server's capabilities.  It connects\n"
             "to a TLS server, performs tests and print the server's capabilities.  If\n"
             "called with the `-v' parameter more checks will be performed.  Can be used\n"
             "to check for servers with special needs or bugs.\n\0"
-/*  1722 */ "gnutls-cli-debug 3.0.21\0"
-/*  1746 */ "Usage: gnutls-cli-debug [options] hostname\n"
+/*  1702 */ "gnutls-cli-debug 3.0.30\0"
+/*  1726 */ "Usage: gnutls-cli-debug [options] hostname\n"
             "gnutls-cli --help for usage instructions.\n";
 
-/*
+/**
  *  debug option description:
  */
-#define DEBUG_DESC      (gnutls_cli_debug_opt_strs+905)
-#define DEBUG_NAME      (gnutls_cli_debug_opt_strs+923)
-#define DEBUG_name      (gnutls_cli_debug_opt_strs+929)
+/** Descriptive text for the debug option */
+#define DEBUG_DESC      (gnutls_cli_debug_opt_strs+901)
+/** Upper-cased name for the debug option */
+#define DEBUG_NAME      (gnutls_cli_debug_opt_strs+919)
+/** Name string for the debug option */
+#define DEBUG_name      (gnutls_cli_debug_opt_strs+925)
+/** Compiled in flag settings for the debug option */
 #define DEBUG_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  verbose option description:
  */
-#define VERBOSE_DESC      (gnutls_cli_debug_opt_strs+935)
-#define VERBOSE_NAME      (gnutls_cli_debug_opt_strs+955)
-#define VERBOSE_name      (gnutls_cli_debug_opt_strs+963)
+/** Descriptive text for the verbose option */
+#define VERBOSE_DESC      (gnutls_cli_debug_opt_strs+931)
+/** Upper-cased name for the verbose option */
+#define VERBOSE_NAME      (gnutls_cli_debug_opt_strs+951)
+/** Name string for the verbose option */
+#define VERBOSE_name      (gnutls_cli_debug_opt_strs+959)
+/** Compiled in flag settings for the verbose option */
 #define VERBOSE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  port option description:
  */
-#define PORT_DESC      (gnutls_cli_debug_opt_strs+971)
-#define PORT_NAME      (gnutls_cli_debug_opt_strs+994)
-#define PORT_name      (gnutls_cli_debug_opt_strs+999)
+/** Descriptive text for the port option */
+#define PORT_DESC      (gnutls_cli_debug_opt_strs+967)
+/** Upper-cased name for the port option */
+#define PORT_NAME      (gnutls_cli_debug_opt_strs+990)
+/** Name string for the port option */
+#define PORT_name      (gnutls_cli_debug_opt_strs+995)
+/** Compiled in flag settings for the port option */
 #define PORT_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (gnutls_cli_debug_opt_strs+1004)
-#define HELP_name       (gnutls_cli_debug_opt_strs+1048)
+#define HELP_DESC       (gnutls_cli_debug_opt_strs+1000)
+#define HELP_name       (gnutls_cli_debug_opt_strs+1044)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (gnutls_cli_debug_opt_strs+1053)
-#define MORE_HELP_name  (gnutls_cli_debug_opt_strs+1098)
+#define MORE_HELP_DESC  (gnutls_cli_debug_opt_strs+1049)
+#define MORE_HELP_name  (gnutls_cli_debug_opt_strs+1094)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -161,9 +167,9 @@ static char const gnutls_cli_debug_opt_strs[1832] =
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (gnutls_cli_debug_opt_strs+1108)
-#define VER_name        (gnutls_cli_debug_opt_strs+1144)
-/*
+#define VER_DESC        (gnutls_cli_debug_opt_strs+1104)
+#define VER_name        (gnutls_cli_debug_opt_strs+1140)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -222,7 +228,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -236,7 +242,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -248,7 +254,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -258,19 +264,24 @@ static tOptDesc optDesc[OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the gnutls-cli-debug Option Environment
- */
-#define zPROGNAME       (gnutls_cli_debug_opt_strs+1152)
-#define zUsageTitle     (gnutls_cli_debug_opt_strs+1169)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of gnutls-cli-debug. */
+#define zPROGNAME       (gnutls_cli_debug_opt_strs+1148)
+/** Reference to the title line for gnutls-cli-debug usage. */
+#define zUsageTitle     (gnutls_cli_debug_opt_strs+1165)
+/** There is no gnutls-cli-debug configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for gnutls-cli-debug config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (gnutls_cli_debug_opt_strs+1281)
-#define zExplain        (gnutls_cli_debug_opt_strs+1300)
-#define zDetail         (gnutls_cli_debug_opt_strs+1303)
-#define zFullVersion    (gnutls_cli_debug_opt_strs+1722)
-/* extracted from optcode.tlib near line 350 */
+/** The gnutls-cli-debug program bug email address. */
+#define zBugsAddr       (gnutls_cli_debug_opt_strs+1263)
+/** Clarification/explanation of what gnutls-cli-debug does. */
+#define zExplain        (gnutls_cli_debug_opt_strs+1282)
+/** Extra detail explaining what gnutls-cli-debug does. */
+#define zDetail         (gnutls_cli_debug_opt_strs+1284)
+/** The full version string for gnutls-cli-debug. */
+#define zFullVersion    (gnutls_cli_debug_opt_strs+1702)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -280,10 +291,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define gnutls_cli_debug_full_usage (NULL)
-
-#define gnutls_cli_debug_short_usage (gnutls_cli_debug_opt_strs+1746)
+#define gnutls_cli_debug_short_usage (gnutls_cli_debug_opt_strs+1726)
 
 #endif /* not defined __doxygen__ */
 
@@ -293,8 +302,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 /**
  * The callout function that invokes the optionUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -309,9 +318,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the debug option.
- *
- * @param pOptions the gnutls-cli-debug options data structure
- * @param pOptDesc the option descriptor for this option.
+ * Specifies the debug level.
+ * @param[in] pOptions the gnutls-cli-debug options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -337,8 +346,7 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -346,8 +354,8 @@ emit_ranges:
 /**
  * Code to handle the port option.
  *
- * @param pOptions the gnutls-cli-debug options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-cli-debug options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptPort(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -373,11 +381,10 @@ doOptPort(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with gnutls-cli-debug.
@@ -393,6 +400,7 @@ emit_ranges:
 #ifndef  WITH_PACKAGER
 # define gnutls_cli_debug_packager_info NULL
 #else
+/** Packager information for gnutls-cli-debug. */
 static char const gnutls_cli_debug_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -448,42 +456,69 @@ tOptions gnutls_cli_debugOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * gnutls-cli-debug program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(GNUTLS_CLI_DEBUG_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -493,56 +528,415 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &gnutls_cli_debugOptions;
+    tOptions * const opts = &gnutls_cli_debugOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
-
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        coerce_it((void*)&(pOpt->pzShortUsage));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
+
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        gnutls_cli_debugOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the gnutls_cli_debugOptions structure noted in the comments below.  The
+     literal text is defined in gnutls_cli_debug_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     gnutls_cli_debug_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via gnutls_cli_debugOptions.pzCopyright */
+  puts(_("gnutls-cli-debug 3.0.30\n\
+Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU General Public License,\n\
+version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
+
+  /* referenced via gnutls_cli_debugOptions.pzCopyNotice */
+  puts(_("gnutls-cli-debug is free software: you can redistribute it and/or modify it\n\
+under the terms of the GNU General Public License as published by the Free\n\
+Software Foundation, either version 3 of the License, or (at your option)\n\
+any later version.\n\n"));
+  puts(_("gnutls-cli-debug is distributed in the hope that it will be useful, but\n\
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n\
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\n\
+for more details.\n\n"));
+  puts(_("You should have received a copy of the GNU General Public License along\n\
+with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
+
+  /* referenced via gnutls_cli_debugOptions.pOptDesc->pzText */
+  puts(_("Enable debugging."));
+
+  /* referenced via gnutls_cli_debugOptions.pOptDesc->pzText */
+  puts(_("More verbose output"));
+
+  /* referenced via gnutls_cli_debugOptions.pOptDesc->pzText */
+  puts(_("The port to connect to"));
+
+  /* referenced via gnutls_cli_debugOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via gnutls_cli_debugOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via gnutls_cli_debugOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via gnutls_cli_debugOptions.pzUsageTitle */
+  puts(_("gnutls-cli-debug - GnuTLS debug client\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \n"));
+
+  /* referenced via gnutls_cli_debugOptions.pzExplain */
+  puts(_("\n"));
+
+  /* referenced via gnutls_cli_debugOptions.pzDetail */
+  puts(_("TLS debug client.  It sets up multiple TLS connections to a server and\n\
+queries its capabilities.  It was created to assist in debugging GnuTLS,\n\
+but it might be useful to extract a TLS server's capabilities.  It connects\n\
+to a TLS server, performs tests and print the server's capabilities.  If\n\
+called with the `-v' parameter more checks will be performed.  Can be used\n\
+to check for servers with special needs or bugs.\n"));
+
+  /* referenced via gnutls_cli_debugOptions.pzFullVersion */
+  puts(_("gnutls-cli-debug 3.0.30"));
+
+  /* referenced via gnutls_cli_debugOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via gnutls_cli_debugOptions.pzShortUsage */
+  puts(_("Usage: gnutls-cli-debug [options] hostname\n\
+gnutls-cli --help for usage instructions.\n"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index 17fc6a7..c17b7e0 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (cli-debug-args.h)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:46 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:13 PM by AutoGen 5.17.3
  *  From the definitions    cli-debug-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  gnutls-cli-debug 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-cli-debug 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the gnutls-cli-debug program.
  *  These macros are documented in the AutoGen info file in the
 #include "config.h"
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for gnutls-cli-debug
  */
 typedef enum {
     INDEX_OPT_DEBUG       =  0,
@@ -74,44 +73,63 @@ typedef enum {
     INDEX_OPT_HELP        =  4,
     INDEX_OPT_MORE_HELP   =  5
 } teOptIndex;
-
+/** count of all options for gnutls-cli-debug */
 #define OPTION_CT    6
-#define GNUTLS_CLI_DEBUG_VERSION       "3.0.21"
-#define GNUTLS_CLI_DEBUG_FULL_VERSION  "gnutls-cli-debug 3.0.21"
+/** gnutls-cli-debug version */
+#define GNUTLS_CLI_DEBUG_VERSION       "3.0.30"
+/** Full gnutls-cli-debug version text */
+#define GNUTLS_CLI_DEBUG_FULL_VERSION  "gnutls-cli-debug 3.0.30"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teOptIndex enumeration above).
  *  e.g. HAVE_OPT(DEBUG)
  */
 #define         DESC(n) (gnutls_cli_debugOptions.pOptDesc[INDEX_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      OPT_ARG(n) (DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_OPT(n) (DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_OPT(n) STMTS( \
                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     DESC(n).fOptState |= OPTST_DISABLED; \
                 DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of gnutls-cli-debug exit codes
  */
 typedef enum {
-    GNUTLS_CLI_DEBUG_EXIT_SUCCESS = 0,
-    GNUTLS_CLI_DEBUG_EXIT_FAILURE = 1,
+    GNUTLS_CLI_DEBUG_EXIT_SUCCESS   = 0,
+    GNUTLS_CLI_DEBUG_EXIT_FAILURE   = 1,
+    GNUTLS_CLI_DEBUG_EXIT_USAGE_ERROR = 64,
     GNUTLS_CLI_DEBUG_EXIT_LIBOPTS_FAILURE = 70
 } gnutls_cli_debug_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_OPT_DEBUG          'd'
 
@@ -120,8 +138,11 @@ typedef enum {
 #define VALUE_OPT_PORT           'p'
 
 #define OPT_VALUE_PORT           (DESC(PORT).optArg.argInt)
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_MORE_HELP     '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_VERSION       'v'
 /*
  *  Interface defines not associated with particular options
@@ -133,7 +154,7 @@ typedef enum {
                 gnutls_cli_debugOptions.pzCurOpt  = NULL)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*gnutls_cli_debugOptions.pUsageProc)(&gnutls_cli_debugOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -153,6 +174,12 @@ extern tOptions gnutls_cli_debugOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
index b9368dc..388e906 100644 (file)
--- a/src/cli.c
+++ b/src/cli.c
@@ -685,7 +685,6 @@ init_tls_session (const char *hostname)
 
   gnutls_certificate_set_retrieve_function2 (xcred, cert_callback);
   gnutls_certificate_set_verify_function (xcred, cert_verify_callback);
-  gnutls_certificate_set_verify_flags (xcred, 0);
 
   /* send the fingerprint */
 #ifdef ENABLE_OPENPGP
@@ -957,7 +956,7 @@ after_handshake:
     }
 
 #ifndef _WIN32
-  signal (SIGALRM, &starttls_alarm);
+  signal (SIGALRM, starttls_alarm);
 #endif
 
   fflush (stdout);
index 95de4b4..e5057b0 100644 (file)
@@ -159,7 +159,7 @@ print_x509_info (gnutls_session_t session, int flag, int print_cert)
                                             &size);
                 if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER)
                   {
-                      p = malloc (size);
+                      p = malloc (size+1);
                       if (!p)
                         {
                             fprintf (stderr, "gnutls_malloc\n");
@@ -177,6 +177,7 @@ print_x509_info (gnutls_session_t session, int flag, int print_cert)
                       return;
                   }
 
+                p[size] = 0;
                 fputs ("\n", stdout);
                 fputs (p, stdout);
                 fputs ("\n", stdout);
index db13d01..9fd9d92 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -69,14 +86,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -219,6 +239,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(crywrap_SOURCES)
 DIST_SOURCES = $(crywrap_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -539,6 +564,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -824,7 +850,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -898,6 +923,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1033,8 +1059,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1053,7 +1079,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1284,6 +1309,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1498,8 +1524,11 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
        @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+       fi; \
        for p in $$list; do echo "$$p $$p"; done | \
        sed 's/$(EXEEXT)$$//' | \
        while read p p1; do if test -f $$p || test -f $$p1; \
index f22cdbb..e9bf0ff 100644 (file)
@@ -1,7 +1,7 @@
                     GNU GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
- Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
-    copyright (c) by Bruce Korb - all rights reserved
+    Copyright (C) by Bruce Korb - all rights reserved
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
   If the program does terminal interaction, make it output a short
 notice like this when it starts in an interactive mode:
 
-    <program>  copyright (c)  by Bruce Korb - all rights reserved
+    <program>  Copyright (C)  by Bruce Korb - all rights reserved
     This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
index a1bc40d..b8a3768 100644 (file)
@@ -1,7 +1,7 @@
                   GNU LESSER GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
- Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
index db754db..550299b 100644 (file)
@@ -1,30 +1,30 @@
 ## LIBOPTS Makefile
 MAINTAINERCLEANFILES    = Makefile.in
-if INSTALL_LIBOPTS
-lib_LTLIBRARIES         = libopts.la
-else
+
 noinst_LTLIBRARIES      = libopts.la
-endif
+
 libopts_la_SOURCES      = libopts.c
 libopts_la_CPPFLAGS     = -I$(top_srcdir)
-libopts_la_LDFLAGS      = -version-info  36:4:11
+libopts_la_LIBADD       = $(LTLIBINTL)
+
 EXTRA_DIST              = \
     ag-char-map.h           alias.c                 ao-strs.c  \
     ao-strs.h               autoopts/options.h      autoopts/project.h  \
     autoopts/usage-txt.h    autoopts.c              autoopts.h  \
     boolean.c               check.c                 compat/strchr.c  \
-    compat/pathfind.c       compat/strdup.c         compat/windows-config.h  \
-    compat/snprintf.c       compat/compat.h         configfile.c  \
+    compat/snprintf.c       compat/compat.h         compat/windows-config.h  \
+    compat/pathfind.c       compat/strdup.c         configfile.c  \
     cook.c                  COPYING.gplv3           COPYING.lgplv3  \
     COPYING.mbsd            enum.c                  env.c  \
     file.c                  find.c                  genshell.c  \
-    genshell.h              load.c                  m4/liboptschk.m4  \
-    m4/libopts.m4           MakeDefs.inc            makeshell.c  \
-    nested.c                numeric.c               parse-duration.c  \
+    genshell.h              gettext.h               init.c  \
+    load.c                  m4/libopts.m4           m4/liboptschk.m4  \
+    MakeDefs.inc            makeshell.c             nested.c  \
+    numeric.c               option-value-type.c     option-value-type.h  \
+    option-xat-attribute.c  option-xat-attribute.h  parse-duration.c  \
     parse-duration.h        pgusage.c               proto.h  \
     putshell.c              README                  reset.c  \
     restore.c               save.c                  sort.c  \
     stack.c                 streqvcmp.c             text_mmap.c  \
     time.c                  tokenize.c              usage.c  \
-    value-type.c            value-type.h            version.c  \
-    xat-attribute.c         xat-attribute.h
+    version.c
index 1b278dc..fbe0882 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -42,8 +59,7 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/alphasort.m4 $(top_srcdir)/gl/m4/argp.m4 \
        $(top_srcdir)/gl/m4/arpa_inet_h.m4 \
        $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/byteswap.m4 \
-       $(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
-       $(top_srcdir)/gl/m4/closedir.m4 \
+       $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/closedir.m4 \
        $(top_srcdir)/gl/m4/dirent_h.m4 $(top_srcdir)/gl/m4/dirname.m4 \
        $(top_srcdir)/gl/m4/double-slash-root.m4 \
        $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \
@@ -52,33 +68,44 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
        $(top_srcdir)/gl/m4/getsubopt.m4 \
-       $(top_srcdir)/gl/m4/gettime.m4 \
        $(top_srcdir)/gl/m4/gettimeofday.m4 \
        $(top_srcdir)/gl/m4/gnulib-common.m4 \
        $(top_srcdir)/gl/m4/gnulib-comp.m4 \
-       $(top_srcdir)/gl/m4/hostent.m4 \
+       $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv_h.m4 \
+       $(top_srcdir)/gl/m4/iconv_open-utf.m4 \
+       $(top_srcdir)/gl/m4/iconv_open.m4 \
        $(top_srcdir)/gl/m4/include_next.m4 \
        $(top_srcdir)/gl/m4/inet_ntop.m4 \
-       $(top_srcdir)/gl/m4/inet_pton.m4 \
+       $(top_srcdir)/gl/m4/inet_pton.m4 $(top_srcdir)/gl/m4/inline.m4 \
        $(top_srcdir)/gl/m4/intmax_t.m4 \
        $(top_srcdir)/gl/m4/inttypes.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
        $(top_srcdir)/gl/m4/isnand.m4 $(top_srcdir)/gl/m4/isnanf.m4 \
        $(top_srcdir)/gl/m4/isnanl.m4 $(top_srcdir)/gl/m4/largefile.m4 \
        $(top_srcdir)/gl/m4/ld-output-def.m4 \
        $(top_srcdir)/gl/m4/ld-version-script.m4 \
-       $(top_srcdir)/gl/m4/ldexpl.m4 $(top_srcdir)/gl/m4/lseek.m4 \
+       $(top_srcdir)/gl/m4/ldexpl.m4 \
+       $(top_srcdir)/gl/m4/libunistring-base.m4 \
+       $(top_srcdir)/gl/m4/locale-fr.m4 \
+       $(top_srcdir)/gl/m4/locale-ja.m4 \
+       $(top_srcdir)/gl/m4/locale-tr.m4 \
+       $(top_srcdir)/gl/m4/locale-zh.m4 \
+       $(top_srcdir)/gl/m4/locale_h.m4 \
+       $(top_srcdir)/gl/m4/localename.m4 $(top_srcdir)/gl/m4/lseek.m4 \
        $(top_srcdir)/gl/m4/lstat.m4 $(top_srcdir)/gl/m4/malloc.m4 \
        $(top_srcdir)/gl/m4/malloca.m4 \
        $(top_srcdir)/gl/m4/manywarnings.m4 \
@@ -104,6 +131,7 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/readdir.m4 $(top_srcdir)/gl/m4/realloc.m4 \
        $(top_srcdir)/gl/m4/scandir.m4 $(top_srcdir)/gl/m4/select.m4 \
        $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \
+       $(top_srcdir)/gl/m4/setlocale.m4 \
        $(top_srcdir)/gl/m4/signal_h.m4 $(top_srcdir)/gl/m4/signbit.m4 \
        $(top_srcdir)/gl/m4/sleep.m4 $(top_srcdir)/gl/m4/snprintf.m4 \
        $(top_srcdir)/gl/m4/socketlib.m4 \
@@ -131,9 +159,7 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/sys_types_h.m4 \
        $(top_srcdir)/gl/m4/sys_uio_h.m4 \
        $(top_srcdir)/gl/m4/sysexits.m4 $(top_srcdir)/gl/m4/time_h.m4 \
-       $(top_srcdir)/gl/m4/time_r.m4 \
-       $(top_srcdir)/gl/m4/timer_time.m4 \
-       $(top_srcdir)/gl/m4/timespec.m4 $(top_srcdir)/gl/m4/ungetc.m4 \
+       $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/ungetc.m4 \
        $(top_srcdir)/gl/m4/unistd_h.m4 \
        $(top_srcdir)/gl/m4/valgrind-tests.m4 \
        $(top_srcdir)/gl/m4/vasnprintf.m4 \
@@ -144,68 +170,37 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/vsnprintf.m4 \
        $(top_srcdir)/gl/m4/warn-on-use.m4 \
        $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \
-       $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \
-       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/guile.m4 \
-       $(top_srcdir)/m4/hooks.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/fcntl-o.m4 \
+       $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
+       $(top_srcdir)/m4/guile.m4 $(top_srcdir)/m4/hooks.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
        $(top_srcdir)/m4/inttypes-pri.m4 \
-       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
-       $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/ltoptions.m4 \
-       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \
-       $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/threadlib.m4 \
-       $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wint_t.m4 \
-       $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \
+       $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/wchar_t.m4 \
+       $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(libdir)"
-LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
-libopts_la_LIBADD =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libopts_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
 am_libopts_la_OBJECTS = libopts_la-libopts.lo
 libopts_la_OBJECTS = $(am_libopts_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-libopts_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libopts_la_LDFLAGS) $(LDFLAGS) -o $@
-@INSTALL_LIBOPTS_FALSE@am_libopts_la_rpath =
-@INSTALL_LIBOPTS_TRUE@am_libopts_la_rpath = -rpath $(libdir)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
@@ -234,6 +229,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libopts_la_SOURCES)
 DIST_SOURCES = $(libopts_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -337,6 +337,7 @@ GNULIB_DPRINTF = @GNULIB_DPRINTF@
 GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_EXP2 = @GNULIB_EXP2@
@@ -421,6 +422,7 @@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_HYPOT = @GNULIB_HYPOT@
 GNULIB_HYPOTF = @GNULIB_HYPOTF@
 GNULIB_HYPOTL = @GNULIB_HYPOTL@
+GNULIB_ICONV = @GNULIB_ICONV@
 GNULIB_ILOGB = @GNULIB_ILOGB@
 GNULIB_ILOGBF = @GNULIB_ILOGBF@
 GNULIB_ILOGBL = @GNULIB_ILOGBL@
@@ -443,6 +445,7 @@ GNULIB_LDEXPL = @GNULIB_LDEXPL@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
 GNULIB_LISTEN = @GNULIB_LISTEN@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LOG = @GNULIB_LOG@
 GNULIB_LOG10 = @GNULIB_LOG10@
 GNULIB_LOG10F = @GNULIB_LOG10F@
@@ -554,11 +557,13 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
 GNULIB_SETENV = @GNULIB_SETENV@
 GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
 GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@
 GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@
 GNULIB_SIGACTION = @GNULIB_SIGACTION@
@@ -667,7 +672,6 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
 GNULIB__EXIT = @GNULIB__EXIT@
 GNUTLS_REQUIRES_PRIVATE = @GNUTLS_REQUIRES_PRIVATE@
-GNUTLS_ZLIB_LIBS_PRIVATE = @GNUTLS_ZLIB_LIBS_PRIVATE@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -785,6 +789,7 @@ HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_EXPF = @HAVE_EXPF@
 HAVE_EXPL = @HAVE_EXPL@
@@ -837,9 +842,7 @@ HAVE_ISNANL = @HAVE_ISNANL@
 HAVE_LCHMOD = @HAVE_LCHMOD@
 HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
-HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -913,6 +916,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1010,10 +1014,15 @@ HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
+HOGWEED_CFLAGS = @HOGWEED_CFLAGS@
+HOGWEED_LIBS = @HOGWEED_LIBS@
 HOSTENT_LIB = @HOSTENT_LIB@
 HTML_DIR = @HTML_DIR@
+ICONV_CONST = @ICONV_CONST@
+ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
 INET_NTOP_LIB = @INET_NTOP_LIB@
@@ -1036,8 +1045,6 @@ LIBIDN_CFLAGS = @LIBIDN_CFLAGS@
 LIBIDN_LIBS = @LIBIDN_LIBS@
 LIBINTL = @LIBINTL@
 LIBMULTITHREAD = @LIBMULTITHREAD@
-LIBNETTLE = @LIBNETTLE@
-LIBNETTLE_PREFIX = @LIBNETTLE_PREFIX@
 LIBOBJS = @LIBOBJS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
 LIBOPTS_DIR = @LIBOPTS_DIR@
@@ -1048,35 +1055,44 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
+LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBZ = @LIBZ@
 LIBZ_PREFIX = @LIBZ_PREFIX@
-LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
 LIB_SELECT = @LIB_SELECT@
-LIB_TIMER_TIME = @LIB_TIMER_TIME@
 LIPO = @LIPO@
 LN_S = @LN_S@
+LOCALE_FR = @LOCALE_FR@
+LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
+LOCALE_JA = @LOCALE_JA@
+LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@
+LOCALE_ZH_CN = @LOCALE_ZH_CN@
 LTALLOCA = @LTALLOCA@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
 LT_CURRENT = @LT_CURRENT@
+LT_DANE_AGE = @LT_DANE_AGE@
+LT_DANE_CURRENT = @LT_DANE_CURRENT@
+LT_DANE_REVISION = @LT_DANE_REVISION@
 LT_REVISION = @LT_REVISION@
 LT_SSL_AGE = @LT_SSL_AGE@
 LT_SSL_CURRENT = @LT_SSL_CURRENT@
 LT_SSL_REVISION = @LT_SSL_REVISION@
+LT_XSSL_AGE = @LT_XSSL_AGE@
+LT_XSSL_CURRENT = @LT_XSSL_CURRENT@
+LT_XSSL_REVISION = @LT_XSSL_REVISION@
 MAJOR_VERSION = @MAJOR_VERSION@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -1086,6 +1102,8 @@ MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
 NETINET_IN_H = @NETINET_IN_H@
+NETTLE_CFLAGS = @NETTLE_CFLAGS@
+NETTLE_LIBS = @NETTLE_LIBS@
 NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
 NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@
@@ -1093,7 +1111,9 @@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
+NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
 NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
 NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
@@ -1121,7 +1141,9 @@ NEXT_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
+NEXT_ICONV_H = @NEXT_ICONV_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
 NEXT_MATH_H = @NEXT_MATH_H@
 NEXT_NETDB_H = @NEXT_NETDB_H@
 NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
@@ -1188,6 +1210,7 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_EXP2 = @REPLACE_EXP2@
 REPLACE_EXP2L = @REPLACE_EXP2L@
 REPLACE_EXPM1 = @REPLACE_EXPM1@
@@ -1236,6 +1259,9 @@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
 REPLACE_HYPOT = @REPLACE_HYPOT@
 REPLACE_HYPOTF = @REPLACE_HYPOTF@
 REPLACE_HYPOTL = @REPLACE_HYPOTL@
+REPLACE_ICONV = @REPLACE_ICONV@
+REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
+REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
 REPLACE_ILOGB = @REPLACE_ILOGB@
 REPLACE_ILOGBF = @REPLACE_ILOGBF@
 REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
@@ -1250,6 +1276,7 @@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LDEXPL = @REPLACE_LDEXPL@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LOG = @REPLACE_LOG@
 REPLACE_LOG10 = @REPLACE_LOG10@
@@ -1299,6 +1326,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1320,6 +1348,7 @@ REPLACE_ROUNDF = @REPLACE_ROUNDF@
 REPLACE_ROUNDL = @REPLACE_ROUNDL@
 REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
 REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1343,6 +1372,7 @@ REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
 REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
@@ -1387,8 +1417,12 @@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
 SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
+TSS_CFLAGS = @TSS_CFLAGS@
+TSS_LIBS = @TSS_LIBS@
 UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
 UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
+UNBOUND_CFLAGS = @UNBOUND_CFLAGS@
+UNBOUND_LIBS = @UNBOUND_LIBS@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
@@ -1467,31 +1501,31 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 MAINTAINERCLEANFILES = Makefile.in
-@INSTALL_LIBOPTS_TRUE@lib_LTLIBRARIES = libopts.la
-@INSTALL_LIBOPTS_FALSE@noinst_LTLIBRARIES = libopts.la
+noinst_LTLIBRARIES = libopts.la
 libopts_la_SOURCES = libopts.c
 libopts_la_CPPFLAGS = -I$(top_srcdir)
-libopts_la_LDFLAGS = -version-info  36:4:11
+libopts_la_LIBADD = $(LTLIBINTL)
 EXTRA_DIST = \
     ag-char-map.h           alias.c                 ao-strs.c  \
     ao-strs.h               autoopts/options.h      autoopts/project.h  \
     autoopts/usage-txt.h    autoopts.c              autoopts.h  \
     boolean.c               check.c                 compat/strchr.c  \
-    compat/pathfind.c       compat/strdup.c         compat/windows-config.h  \
-    compat/snprintf.c       compat/compat.h         configfile.c  \
+    compat/snprintf.c       compat/compat.h         compat/windows-config.h  \
+    compat/pathfind.c       compat/strdup.c         configfile.c  \
     cook.c                  COPYING.gplv3           COPYING.lgplv3  \
     COPYING.mbsd            enum.c                  env.c  \
     file.c                  find.c                  genshell.c  \
-    genshell.h              load.c                  m4/liboptschk.m4  \
-    m4/libopts.m4           MakeDefs.inc            makeshell.c  \
-    nested.c                numeric.c               parse-duration.c  \
+    genshell.h              gettext.h               init.c  \
+    load.c                  m4/libopts.m4           m4/liboptschk.m4  \
+    MakeDefs.inc            makeshell.c             nested.c  \
+    numeric.c               option-value-type.c     option-value-type.h  \
+    option-xat-attribute.c  option-xat-attribute.h  parse-duration.c  \
     parse-duration.h        pgusage.c               proto.h  \
     putshell.c              README                  reset.c  \
     restore.c               save.c                  sort.c  \
     stack.c                 streqvcmp.c             text_mmap.c  \
     time.c                  tokenize.c              usage.c  \
-    value-type.c            value-type.h            version.c  \
-    xat-attribute.c         xat-attribute.h
+    version.c
 
 all: all-am
 
@@ -1527,37 +1561,6 @@ $(top_srcdir)/configure:  $(am__configure_deps)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-       @$(NORMAL_INSTALL)
-       test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-       @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-       list2=; for p in $$list; do \
-         if test -f $$p; then \
-           list2="$$list2 $$p"; \
-         else :; fi; \
-       done; \
-       test -z "$$list2" || { \
-         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
-         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
-       }
-
-uninstall-libLTLIBRARIES:
-       @$(NORMAL_UNINSTALL)
-       @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-       for p in $$list; do \
-         $(am__strip_dir) \
-         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
-         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
-       done
-
-clean-libLTLIBRARIES:
-       -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-         test "$$dir" != "$$p" || dir=.; \
-         echo "rm -f \"$${dir}/so_locations\""; \
-         rm -f "$${dir}/so_locations"; \
-       done
 
 clean-noinstLTLIBRARIES:
        -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -1568,7 +1571,7 @@ clean-noinstLTLIBRARIES:
          rm -f "$${dir}/so_locations"; \
        done
 libopts.la: $(libopts_la_OBJECTS) $(libopts_la_DEPENDENCIES) $(EXTRA_libopts_la_DEPENDENCIES) 
-       $(AM_V_CCLD)$(libopts_la_LINK) $(am_libopts_la_rpath) $(libopts_la_OBJECTS) $(libopts_la_LIBADD) $(LIBS)
+       $(AM_V_CCLD)$(LINK)  $(libopts_la_OBJECTS) $(libopts_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -1698,9 +1701,6 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(LTLIBRARIES)
 installdirs:
-       for dir in "$(DESTDIR)$(libdir)"; do \
-         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-       done
 install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
@@ -1734,8 +1734,8 @@ maintainer-clean-generic:
        -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
 clean: clean-am
 
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-       clean-noinstLTLIBRARIES mostlyclean-am
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+       mostlyclean-am
 
 distclean: distclean-am
        -rm -rf ./$(DEPDIR)
@@ -1761,7 +1761,7 @@ install-dvi: install-dvi-am
 
 install-dvi-am:
 
-install-exec-am: install-libLTLIBRARIES
+install-exec-am:
 
 install-html: install-html-am
 
@@ -1801,23 +1801,22 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-libLTLIBRARIES
+uninstall-am:
 
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \
-       ctags distclean distclean-compile distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-libLTLIBRARIES install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-libLTLIBRARIES
+       clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
index 0d9ac64..184473d 100644 (file)
@@ -115,7 +115,7 @@ These macros work as follows:
 
 LICENSING:
 
-This material is Copyright (c) 1992-2012 by Bruce Korb.  You are
+This material is Copyright (C) 1992-2013 by Bruce Korb.  You are
 licensed to use this under the terms of either the GNU Lesser General
 Public License (see: COPYING.lgpl), or, at your option, the modified
 Berkeley Software Distribution License (see: COPYING.mbsd).  Both of
index 33d4fe6..ff91b2c 100644 (file)
@@ -1,25 +1,30 @@
 /*
- *  28 bits for 44 character classifications
- *  generated by char-mapper on 05/06/12 at 16:20:58
+ *  29 bits for 46 character classifications
+ *  generated by char-mapper on 03/31/13 at 10:41:23
  *
  *  This file contains the character classifications
  *  used by AutoGen and AutoOpts for identifying tokens.
  *  The table is static scope, so %guard is empty.
  *
- *  This file is part of AutoGen.
- *  Copyright (c) 1992-2012 Bruce Korb - all rights reserved
+ *  This file is part of AutoOpts, a companion to AutoGen.
+ *  AutoOpts is free software.
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
- *  AutoGen 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.
+ *  AutoOpts is available under any one of two licenses.  The license
+ *  in use must be one of these two and the choice is under the control
+ *  of the user of the license.
  *
- *  AutoGen 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.
+ *  The GNU Lesser General Public License, version 3 or later
+ *  See the files "COPYING.lgplv3" and "COPYING.gplv3"
  *
- *  You should have received a copy of the GNU General Public License along
- *  with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *  The Modified Berkeley Software Distribution License
+ *  See the file "COPYING.mbsd"
+ *
+ *  These files have the following sha256 sums:
+ *
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 #ifndef AG_CHAR_MAP_H_GUARD
 #define AG_CHAR_MAP_H_GUARD 1
@@ -62,6 +67,7 @@
 // underscore      "_"
 // plus            "+"
 // dollar          "$"
+// option-marker   "-"
 // 
 // horiz-white     "\t "
 // alt-white       "\v\f\r\b"
 // set-separator   "|+"          +end-list-entry
 // signed-number   +inversion    +dec-digit
 // make-script     +dollar       +newline
+// load-line-skip  +horiz-white  +option-marker
 //
 #endif /* 0 -- mapping spec. source */
 
 
 typedef uint32_t ag_char_map_mask_t;
 
-#define  IS_NEWLINE_CHAR( _c)          is_ag_char_map_char((char)( _c), 0x0000001)
-#define SPN_NEWLINE_CHARS(_s)         spn_ag_char_map_chars((char *)_s, 0)
-#define BRK_NEWLINE_CHARS(_s)         brk_ag_char_map_chars((char *)_s, 0)
-#define SPN_NEWLINE_BACK(s,e)         spn_ag_char_map_back((char *)s, (char *)e, 0)
-#define BRK_NEWLINE_BACK(s,e)         brk_ag_char_map_back((char *)s, (char *)e, 0)
-#define  IS_NUL_BYTE_CHAR( _c)         is_ag_char_map_char((char)( _c), 0x0000002)
-#define SPN_NUL_BYTE_CHARS(_s)        spn_ag_char_map_chars((char *)_s, 1)
-#define BRK_NUL_BYTE_CHARS(_s)        brk_ag_char_map_chars((char *)_s, 1)
-#define SPN_NUL_BYTE_BACK(s,e)        spn_ag_char_map_back((char *)s, (char *)e, 1)
-#define BRK_NUL_BYTE_BACK(s,e)        brk_ag_char_map_back((char *)s, (char *)e, 1)
-#define  IS_DIR_SEP_CHAR( _c)          is_ag_char_map_char((char)( _c), 0x0000004)
-#define SPN_DIR_SEP_CHARS(_s)         spn_ag_char_map_chars((char *)_s, 2)
-#define BRK_DIR_SEP_CHARS(_s)         brk_ag_char_map_chars((char *)_s, 2)
-#define SPN_DIR_SEP_BACK(s,e)         spn_ag_char_map_back((char *)s, (char *)e, 2)
-#define BRK_DIR_SEP_BACK(s,e)         brk_ag_char_map_back((char *)s, (char *)e, 2)
-#define  IS_PERCENT_CHAR( _c)          is_ag_char_map_char((char)( _c), 0x0000008)
-#define SPN_PERCENT_CHARS(_s)         spn_ag_char_map_chars((char *)_s, 3)
-#define BRK_PERCENT_CHARS(_s)         brk_ag_char_map_chars((char *)_s, 3)
-#define SPN_PERCENT_BACK(s,e)         spn_ag_char_map_back((char *)s, (char *)e, 3)
-#define BRK_PERCENT_BACK(s,e)         brk_ag_char_map_back((char *)s, (char *)e, 3)
-#define  IS_COMMA_CHAR( _c)            is_ag_char_map_char((char)( _c), 0x0000010)
-#define SPN_COMMA_CHARS(_s)           spn_ag_char_map_chars((char *)_s, 4)
-#define BRK_COMMA_CHARS(_s)           brk_ag_char_map_chars((char *)_s, 4)
-#define SPN_COMMA_BACK(s,e)           spn_ag_char_map_back((char *)s, (char *)e, 4)
-#define BRK_COMMA_BACK(s,e)           brk_ag_char_map_back((char *)s, (char *)e, 4)
-#define  IS_COLON_CHAR( _c)            is_ag_char_map_char((char)( _c), 0x0000020)
-#define SPN_COLON_CHARS(_s)           spn_ag_char_map_chars((char *)_s, 5)
-#define BRK_COLON_CHARS(_s)           brk_ag_char_map_chars((char *)_s, 5)
-#define SPN_COLON_BACK(s,e)           spn_ag_char_map_back((char *)s, (char *)e, 5)
-#define BRK_COLON_BACK(s,e)           brk_ag_char_map_back((char *)s, (char *)e, 5)
-#define  IS_UNDERSCORE_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x0000040)
-#define SPN_UNDERSCORE_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 6)
-#define BRK_UNDERSCORE_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 6)
-#define SPN_UNDERSCORE_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 6)
-#define BRK_UNDERSCORE_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 6)
-#define  IS_PLUS_CHAR( _c)             is_ag_char_map_char((char)( _c), 0x0000080)
-#define SPN_PLUS_CHARS(_s)            spn_ag_char_map_chars((char *)_s, 7)
-#define BRK_PLUS_CHARS(_s)            brk_ag_char_map_chars((char *)_s, 7)
-#define SPN_PLUS_BACK(s,e)            spn_ag_char_map_back((char *)s, (char *)e, 7)
-#define BRK_PLUS_BACK(s,e)            brk_ag_char_map_back((char *)s, (char *)e, 7)
-#define  IS_DOLLAR_CHAR( _c)           is_ag_char_map_char((char)( _c), 0x0000100)
-#define SPN_DOLLAR_CHARS(_s)          spn_ag_char_map_chars((char *)_s, 8)
-#define BRK_DOLLAR_CHARS(_s)          brk_ag_char_map_chars((char *)_s, 8)
-#define SPN_DOLLAR_BACK(s,e)          spn_ag_char_map_back((char *)s, (char *)e, 8)
-#define BRK_DOLLAR_BACK(s,e)          brk_ag_char_map_back((char *)s, (char *)e, 8)
-#define  IS_HORIZ_WHITE_CHAR( _c)      is_ag_char_map_char((char)( _c), 0x0000200)
-#define SPN_HORIZ_WHITE_CHARS(_s)     spn_ag_char_map_chars((char *)_s, 9)
-#define BRK_HORIZ_WHITE_CHARS(_s)     brk_ag_char_map_chars((char *)_s, 9)
-#define SPN_HORIZ_WHITE_BACK(s,e)     spn_ag_char_map_back((char *)s, (char *)e, 9)
-#define BRK_HORIZ_WHITE_BACK(s,e)     brk_ag_char_map_back((char *)s, (char *)e, 9)
-#define  IS_ALT_WHITE_CHAR( _c)        is_ag_char_map_char((char)( _c), 0x0000400)
-#define SPN_ALT_WHITE_CHARS(_s)       spn_ag_char_map_chars((char *)_s, 10)
-#define BRK_ALT_WHITE_CHARS(_s)       brk_ag_char_map_chars((char *)_s, 10)
-#define SPN_ALT_WHITE_BACK(s,e)       spn_ag_char_map_back((char *)s, (char *)e, 10)
-#define BRK_ALT_WHITE_BACK(s,e)       brk_ag_char_map_back((char *)s, (char *)e, 10)
-#define  IS_WHITESPACE_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x0000601)
-#define SPN_WHITESPACE_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 11)
-#define BRK_WHITESPACE_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 11)
-#define SPN_WHITESPACE_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 11)
-#define BRK_WHITESPACE_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 11)
-#define  IS_NON_NL_WHITE_CHAR( _c)     is_ag_char_map_char((char)( _c), 0x0000600)
-#define SPN_NON_NL_WHITE_CHARS(_s)    spn_ag_char_map_chars((char *)_s, 12)
-#define BRK_NON_NL_WHITE_CHARS(_s)    brk_ag_char_map_chars((char *)_s, 12)
-#define SPN_NON_NL_WHITE_BACK(s,e)    spn_ag_char_map_back((char *)s, (char *)e, 12)
-#define BRK_NON_NL_WHITE_BACK(s,e)    brk_ag_char_map_back((char *)s, (char *)e, 12)
-#define  IS_QUOTE_CHAR( _c)            is_ag_char_map_char((char)( _c), 0x0000800)
-#define SPN_QUOTE_CHARS(_s)           spn_ag_char_map_chars((char *)_s, 13)
-#define BRK_QUOTE_CHARS(_s)           brk_ag_char_map_chars((char *)_s, 13)
-#define SPN_QUOTE_BACK(s,e)           spn_ag_char_map_back((char *)s, (char *)e, 13)
-#define BRK_QUOTE_BACK(s,e)           brk_ag_char_map_back((char *)s, (char *)e, 13)
-#define  IS_PARENTHESES_CHAR( _c)      is_ag_char_map_char((char)( _c), 0x0001000)
-#define SPN_PARENTHESES_CHARS(_s)     spn_ag_char_map_chars((char *)_s, 14)
-#define BRK_PARENTHESES_CHARS(_s)     brk_ag_char_map_chars((char *)_s, 14)
-#define SPN_PARENTHESES_BACK(s,e)     spn_ag_char_map_back((char *)s, (char *)e, 14)
-#define BRK_PARENTHESES_BACK(s,e)     brk_ag_char_map_back((char *)s, (char *)e, 14)
-#define  IS_GRAPHIC_CHAR( _c)          is_ag_char_map_char((char)( _c), 0x0002000)
-#define SPN_GRAPHIC_CHARS(_s)         spn_ag_char_map_chars((char *)_s, 15)
-#define BRK_GRAPHIC_CHARS(_s)         brk_ag_char_map_chars((char *)_s, 15)
-#define SPN_GRAPHIC_BACK(s,e)         spn_ag_char_map_back((char *)s, (char *)e, 15)
-#define BRK_GRAPHIC_BACK(s,e)         brk_ag_char_map_back((char *)s, (char *)e, 15)
-#define  IS_INVERSION_CHAR( _c)        is_ag_char_map_char((char)( _c), 0x0004000)
-#define SPN_INVERSION_CHARS(_s)       spn_ag_char_map_chars((char *)_s, 16)
-#define BRK_INVERSION_CHARS(_s)       brk_ag_char_map_chars((char *)_s, 16)
-#define SPN_INVERSION_BACK(s,e)       spn_ag_char_map_back((char *)s, (char *)e, 16)
-#define BRK_INVERSION_BACK(s,e)       brk_ag_char_map_back((char *)s, (char *)e, 16)
-#define  IS_OCT_DIGIT_CHAR( _c)        is_ag_char_map_char((char)( _c), 0x0008000)
-#define SPN_OCT_DIGIT_CHARS(_s)       spn_ag_char_map_chars((char *)_s, 17)
-#define BRK_OCT_DIGIT_CHARS(_s)       brk_ag_char_map_chars((char *)_s, 17)
-#define SPN_OCT_DIGIT_BACK(s,e)       spn_ag_char_map_back((char *)s, (char *)e, 17)
-#define BRK_OCT_DIGIT_BACK(s,e)       brk_ag_char_map_back((char *)s, (char *)e, 17)
-#define  IS_DEC_DIGIT_CHAR( _c)        is_ag_char_map_char((char)( _c), 0x0018000)
-#define SPN_DEC_DIGIT_CHARS(_s)       spn_ag_char_map_chars((char *)_s, 18)
-#define BRK_DEC_DIGIT_CHARS(_s)       brk_ag_char_map_chars((char *)_s, 18)
-#define SPN_DEC_DIGIT_BACK(s,e)       spn_ag_char_map_back((char *)s, (char *)e, 18)
-#define BRK_DEC_DIGIT_BACK(s,e)       brk_ag_char_map_back((char *)s, (char *)e, 18)
-#define  IS_HEX_DIGIT_CHAR( _c)        is_ag_char_map_char((char)( _c), 0x0038000)
-#define SPN_HEX_DIGIT_CHARS(_s)       spn_ag_char_map_chars((char *)_s, 19)
-#define BRK_HEX_DIGIT_CHARS(_s)       brk_ag_char_map_chars((char *)_s, 19)
-#define SPN_HEX_DIGIT_BACK(s,e)       spn_ag_char_map_back((char *)s, (char *)e, 19)
-#define BRK_HEX_DIGIT_BACK(s,e)       brk_ag_char_map_back((char *)s, (char *)e, 19)
-#define  IS_LOWER_CASE_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x0040000)
-#define SPN_LOWER_CASE_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 20)
-#define BRK_LOWER_CASE_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 20)
-#define SPN_LOWER_CASE_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 20)
-#define BRK_LOWER_CASE_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 20)
-#define  IS_UPPER_CASE_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x0080000)
-#define SPN_UPPER_CASE_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 21)
-#define BRK_UPPER_CASE_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 21)
-#define SPN_UPPER_CASE_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 21)
-#define BRK_UPPER_CASE_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 21)
-#define  IS_ALPHABETIC_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x00C0000)
-#define SPN_ALPHABETIC_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 22)
-#define BRK_ALPHABETIC_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 22)
-#define SPN_ALPHABETIC_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 22)
-#define BRK_ALPHABETIC_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 22)
-#define  IS_ALPHANUMERIC_CHAR( _c)     is_ag_char_map_char((char)( _c), 0x00D8000)
-#define SPN_ALPHANUMERIC_CHARS(_s)    spn_ag_char_map_chars((char *)_s, 23)
-#define BRK_ALPHANUMERIC_CHARS(_s)    brk_ag_char_map_chars((char *)_s, 23)
-#define SPN_ALPHANUMERIC_BACK(s,e)    spn_ag_char_map_back((char *)s, (char *)e, 23)
-#define BRK_ALPHANUMERIC_BACK(s,e)    brk_ag_char_map_back((char *)s, (char *)e, 23)
-#define  IS_VAR_FIRST_CHAR( _c)        is_ag_char_map_char((char)( _c), 0x00C0040)
-#define SPN_VAR_FIRST_CHARS(_s)       spn_ag_char_map_chars((char *)_s, 24)
-#define BRK_VAR_FIRST_CHARS(_s)       brk_ag_char_map_chars((char *)_s, 24)
-#define SPN_VAR_FIRST_BACK(s,e)       spn_ag_char_map_back((char *)s, (char *)e, 24)
-#define BRK_VAR_FIRST_BACK(s,e)       brk_ag_char_map_back((char *)s, (char *)e, 24)
-#define  IS_VARIABLE_NAME_CHAR( _c)    is_ag_char_map_char((char)( _c), 0x00D8040)
-#define SPN_VARIABLE_NAME_CHARS(_s)   spn_ag_char_map_chars((char *)_s, 25)
-#define BRK_VARIABLE_NAME_CHARS(_s)   brk_ag_char_map_chars((char *)_s, 25)
-#define SPN_VARIABLE_NAME_BACK(s,e)   spn_ag_char_map_back((char *)s, (char *)e, 25)
-#define BRK_VARIABLE_NAME_BACK(s,e)   brk_ag_char_map_back((char *)s, (char *)e, 25)
-#define  IS_OPTION_NAME_CHAR( _c)      is_ag_char_map_char((char)( _c), 0x01D8040)
-#define SPN_OPTION_NAME_CHARS(_s)     spn_ag_char_map_chars((char *)_s, 26)
-#define BRK_OPTION_NAME_CHARS(_s)     brk_ag_char_map_chars((char *)_s, 26)
-#define SPN_OPTION_NAME_BACK(s,e)     spn_ag_char_map_back((char *)s, (char *)e, 26)
-#define BRK_OPTION_NAME_BACK(s,e)     brk_ag_char_map_back((char *)s, (char *)e, 26)
-#define  IS_VALUE_NAME_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x01D8060)
-#define SPN_VALUE_NAME_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 27)
-#define BRK_VALUE_NAME_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 27)
-#define SPN_VALUE_NAME_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 27)
-#define BRK_VALUE_NAME_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 27)
-#define  IS_NAME_SEP_CHAR( _c)         is_ag_char_map_char((char)( _c), 0x0200000)
-#define SPN_NAME_SEP_CHARS(_s)        spn_ag_char_map_chars((char *)_s, 28)
-#define BRK_NAME_SEP_CHARS(_s)        brk_ag_char_map_chars((char *)_s, 28)
-#define SPN_NAME_SEP_BACK(s,e)        spn_ag_char_map_back((char *)s, (char *)e, 28)
-#define BRK_NAME_SEP_BACK(s,e)        brk_ag_char_map_back((char *)s, (char *)e, 28)
-#define  IS_COMPOUND_NAME_CHAR( _c)    is_ag_char_map_char((char)( _c), 0x03D8260)
-#define SPN_COMPOUND_NAME_CHARS(_s)   spn_ag_char_map_chars((char *)_s, 29)
-#define BRK_COMPOUND_NAME_CHARS(_s)   brk_ag_char_map_chars((char *)_s, 29)
-#define SPN_COMPOUND_NAME_BACK(s,e)   spn_ag_char_map_back((char *)s, (char *)e, 29)
-#define BRK_COMPOUND_NAME_BACK(s,e)   brk_ag_char_map_back((char *)s, (char *)e, 29)
-#define  IS_SCHEME_NOTE_CHAR( _c)      is_ag_char_map_char((char)( _c), 0x0001800)
-#define SPN_SCHEME_NOTE_CHARS(_s)     spn_ag_char_map_chars((char *)_s, 30)
-#define BRK_SCHEME_NOTE_CHARS(_s)     brk_ag_char_map_chars((char *)_s, 30)
-#define SPN_SCHEME_NOTE_BACK(s,e)     spn_ag_char_map_back((char *)s, (char *)e, 30)
-#define BRK_SCHEME_NOTE_BACK(s,e)     brk_ag_char_map_back((char *)s, (char *)e, 30)
-#define  IS_UNQUOTABLE_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x0400000)
-#define SPN_UNQUOTABLE_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 31)
-#define BRK_UNQUOTABLE_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 31)
-#define SPN_UNQUOTABLE_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 31)
-#define BRK_UNQUOTABLE_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 31)
-#define  IS_END_XML_TOKEN_CHAR( _c)    is_ag_char_map_char((char)( _c), 0x0800601)
-#define SPN_END_XML_TOKEN_CHARS(_s)   spn_ag_char_map_chars((char *)_s, 32)
-#define BRK_END_XML_TOKEN_CHARS(_s)   brk_ag_char_map_chars((char *)_s, 32)
-#define SPN_END_XML_TOKEN_BACK(s,e)   spn_ag_char_map_back((char *)s, (char *)e, 32)
-#define BRK_END_XML_TOKEN_BACK(s,e)   brk_ag_char_map_back((char *)s, (char *)e, 32)
-#define  IS_PLUS_N_SPACE_CHAR( _c)     is_ag_char_map_char((char)( _c), 0x0000681)
-#define SPN_PLUS_N_SPACE_CHARS(_s)    spn_ag_char_map_chars((char *)_s, 33)
-#define BRK_PLUS_N_SPACE_CHARS(_s)    brk_ag_char_map_chars((char *)_s, 33)
-#define SPN_PLUS_N_SPACE_BACK(s,e)    spn_ag_char_map_back((char *)s, (char *)e, 33)
-#define BRK_PLUS_N_SPACE_BACK(s,e)    brk_ag_char_map_back((char *)s, (char *)e, 33)
-#define  IS_PUNCTUATION_CHAR( _c)      is_ag_char_map_char((char)( _c), 0x1000000)
-#define SPN_PUNCTUATION_CHARS(_s)     spn_ag_char_map_chars((char *)_s, 34)
-#define BRK_PUNCTUATION_CHARS(_s)     brk_ag_char_map_chars((char *)_s, 34)
-#define SPN_PUNCTUATION_BACK(s,e)     spn_ag_char_map_back((char *)s, (char *)e, 34)
-#define BRK_PUNCTUATION_BACK(s,e)     brk_ag_char_map_back((char *)s, (char *)e, 34)
-#define  IS_SUFFIX_CHAR( _c)           is_ag_char_map_char((char)( _c), 0x20D8000)
-#define SPN_SUFFIX_CHARS(_s)          spn_ag_char_map_chars((char *)_s, 35)
-#define BRK_SUFFIX_CHARS(_s)          brk_ag_char_map_chars((char *)_s, 35)
-#define SPN_SUFFIX_BACK(s,e)          spn_ag_char_map_back((char *)s, (char *)e, 35)
-#define BRK_SUFFIX_BACK(s,e)          brk_ag_char_map_back((char *)s, (char *)e, 35)
-#define  IS_SUFFIX_FMT_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x20D800C)
-#define SPN_SUFFIX_FMT_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 36)
-#define BRK_SUFFIX_FMT_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 36)
-#define SPN_SUFFIX_FMT_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 36)
-#define BRK_SUFFIX_FMT_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 36)
-#define  IS_FALSE_TYPE_CHAR( _c)       is_ag_char_map_char((char)( _c), 0x4000002)
-#define SPN_FALSE_TYPE_CHARS(_s)      spn_ag_char_map_chars((char *)_s, 37)
-#define BRK_FALSE_TYPE_CHARS(_s)      brk_ag_char_map_chars((char *)_s, 37)
-#define SPN_FALSE_TYPE_BACK(s,e)      spn_ag_char_map_back((char *)s, (char *)e, 37)
-#define BRK_FALSE_TYPE_BACK(s,e)      brk_ag_char_map_back((char *)s, (char *)e, 37)
-#define  IS_FILE_NAME_CHAR( _c)        is_ag_char_map_char((char)( _c), 0x20D8004)
-#define SPN_FILE_NAME_CHARS(_s)       spn_ag_char_map_chars((char *)_s, 38)
-#define BRK_FILE_NAME_CHARS(_s)       brk_ag_char_map_chars((char *)_s, 38)
-#define SPN_FILE_NAME_BACK(s,e)       spn_ag_char_map_back((char *)s, (char *)e, 38)
-#define BRK_FILE_NAME_BACK(s,e)       brk_ag_char_map_back((char *)s, (char *)e, 38)
-#define  IS_END_TOKEN_CHAR( _c)        is_ag_char_map_char((char)( _c), 0x0000603)
-#define SPN_END_TOKEN_CHARS(_s)       spn_ag_char_map_chars((char *)_s, 39)
-#define BRK_END_TOKEN_CHARS(_s)       brk_ag_char_map_chars((char *)_s, 39)
-#define SPN_END_TOKEN_BACK(s,e)       spn_ag_char_map_back((char *)s, (char *)e, 39)
-#define BRK_END_TOKEN_BACK(s,e)       brk_ag_char_map_back((char *)s, (char *)e, 39)
-#define  IS_END_LIST_ENTRY_CHAR( _c)   is_ag_char_map_char((char)( _c), 0x0000613)
-#define SPN_END_LIST_ENTRY_CHARS(_s)  spn_ag_char_map_chars((char *)_s, 40)
-#define BRK_END_LIST_ENTRY_CHARS(_s)  brk_ag_char_map_chars((char *)_s, 40)
-#define SPN_END_LIST_ENTRY_BACK(s,e)  spn_ag_char_map_back((char *)s, (char *)e, 40)
-#define BRK_END_LIST_ENTRY_BACK(s,e)  brk_ag_char_map_back((char *)s, (char *)e, 40)
-#define  IS_SET_SEPARATOR_CHAR( _c)    is_ag_char_map_char((char)( _c), 0x8000613)
-#define SPN_SET_SEPARATOR_CHARS(_s)   spn_ag_char_map_chars((char *)_s, 41)
-#define BRK_SET_SEPARATOR_CHARS(_s)   brk_ag_char_map_chars((char *)_s, 41)
-#define SPN_SET_SEPARATOR_BACK(s,e)   spn_ag_char_map_back((char *)s, (char *)e, 41)
-#define BRK_SET_SEPARATOR_BACK(s,e)   brk_ag_char_map_back((char *)s, (char *)e, 41)
-#define  IS_SIGNED_NUMBER_CHAR( _c)    is_ag_char_map_char((char)( _c), 0x001C000)
-#define SPN_SIGNED_NUMBER_CHARS(_s)   spn_ag_char_map_chars((char *)_s, 42)
-#define BRK_SIGNED_NUMBER_CHARS(_s)   brk_ag_char_map_chars((char *)_s, 42)
-#define SPN_SIGNED_NUMBER_BACK(s,e)   spn_ag_char_map_back((char *)s, (char *)e, 42)
-#define BRK_SIGNED_NUMBER_BACK(s,e)   brk_ag_char_map_back((char *)s, (char *)e, 42)
-#define  IS_MAKE_SCRIPT_CHAR( _c)      is_ag_char_map_char((char)( _c), 0x0000101)
-#define SPN_MAKE_SCRIPT_CHARS(_s)     spn_ag_char_map_chars((char *)_s, 43)
-#define BRK_MAKE_SCRIPT_CHARS(_s)     brk_ag_char_map_chars((char *)_s, 43)
-#define SPN_MAKE_SCRIPT_BACK(s,e)     spn_ag_char_map_back((char *)s, (char *)e, 43)
-#define BRK_MAKE_SCRIPT_BACK(s,e)     brk_ag_char_map_back((char *)s, (char *)e, 43)
+#define  IS_NEWLINE_CHAR( _c)          is_ag_char_map_char((char)(_c), 0x00000001)
+#define SPN_NEWLINE_CHARS(_s)         spn_ag_char_map_chars(_s, 0)
+#define BRK_NEWLINE_CHARS(_s)         brk_ag_char_map_chars(_s, 0)
+#define SPN_NEWLINE_BACK(s,e)         spn_ag_char_map_back(s, e, 0)
+#define BRK_NEWLINE_BACK(s,e)         brk_ag_char_map_back(s, e, 0)
+#define  IS_NUL_BYTE_CHAR( _c)         is_ag_char_map_char((char)(_c), 0x00000002)
+#define SPN_NUL_BYTE_CHARS(_s)        spn_ag_char_map_chars(_s, 1)
+#define BRK_NUL_BYTE_CHARS(_s)        brk_ag_char_map_chars(_s, 1)
+#define SPN_NUL_BYTE_BACK(s,e)        spn_ag_char_map_back(s, e, 1)
+#define BRK_NUL_BYTE_BACK(s,e)        brk_ag_char_map_back(s, e, 1)
+#define  IS_DIR_SEP_CHAR( _c)          is_ag_char_map_char((char)(_c), 0x00000004)
+#define SPN_DIR_SEP_CHARS(_s)         spn_ag_char_map_chars(_s, 2)
+#define BRK_DIR_SEP_CHARS(_s)         brk_ag_char_map_chars(_s, 2)
+#define SPN_DIR_SEP_BACK(s,e)         spn_ag_char_map_back(s, e, 2)
+#define BRK_DIR_SEP_BACK(s,e)         brk_ag_char_map_back(s, e, 2)
+#define  IS_PERCENT_CHAR( _c)          is_ag_char_map_char((char)(_c), 0x00000008)
+#define SPN_PERCENT_CHARS(_s)         spn_ag_char_map_chars(_s, 3)
+#define BRK_PERCENT_CHARS(_s)         brk_ag_char_map_chars(_s, 3)
+#define SPN_PERCENT_BACK(s,e)         spn_ag_char_map_back(s, e, 3)
+#define BRK_PERCENT_BACK(s,e)         brk_ag_char_map_back(s, e, 3)
+#define  IS_COMMA_CHAR( _c)            is_ag_char_map_char((char)(_c), 0x00000010)
+#define SPN_COMMA_CHARS(_s)           spn_ag_char_map_chars(_s, 4)
+#define BRK_COMMA_CHARS(_s)           brk_ag_char_map_chars(_s, 4)
+#define SPN_COMMA_BACK(s,e)           spn_ag_char_map_back(s, e, 4)
+#define BRK_COMMA_BACK(s,e)           brk_ag_char_map_back(s, e, 4)
+#define  IS_COLON_CHAR( _c)            is_ag_char_map_char((char)(_c), 0x00000020)
+#define SPN_COLON_CHARS(_s)           spn_ag_char_map_chars(_s, 5)
+#define BRK_COLON_CHARS(_s)           brk_ag_char_map_chars(_s, 5)
+#define SPN_COLON_BACK(s,e)           spn_ag_char_map_back(s, e, 5)
+#define BRK_COLON_BACK(s,e)           brk_ag_char_map_back(s, e, 5)
+#define  IS_UNDERSCORE_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x00000040)
+#define SPN_UNDERSCORE_CHARS(_s)      spn_ag_char_map_chars(_s, 6)
+#define BRK_UNDERSCORE_CHARS(_s)      brk_ag_char_map_chars(_s, 6)
+#define SPN_UNDERSCORE_BACK(s,e)      spn_ag_char_map_back(s, e, 6)
+#define BRK_UNDERSCORE_BACK(s,e)      brk_ag_char_map_back(s, e, 6)
+#define  IS_PLUS_CHAR( _c)             is_ag_char_map_char((char)(_c), 0x00000080)
+#define SPN_PLUS_CHARS(_s)            spn_ag_char_map_chars(_s, 7)
+#define BRK_PLUS_CHARS(_s)            brk_ag_char_map_chars(_s, 7)
+#define SPN_PLUS_BACK(s,e)            spn_ag_char_map_back(s, e, 7)
+#define BRK_PLUS_BACK(s,e)            brk_ag_char_map_back(s, e, 7)
+#define  IS_DOLLAR_CHAR( _c)           is_ag_char_map_char((char)(_c), 0x00000100)
+#define SPN_DOLLAR_CHARS(_s)          spn_ag_char_map_chars(_s, 8)
+#define BRK_DOLLAR_CHARS(_s)          brk_ag_char_map_chars(_s, 8)
+#define SPN_DOLLAR_BACK(s,e)          spn_ag_char_map_back(s, e, 8)
+#define BRK_DOLLAR_BACK(s,e)          brk_ag_char_map_back(s, e, 8)
+#define  IS_OPTION_MARKER_CHAR( _c)    is_ag_char_map_char((char)(_c), 0x00000200)
+#define SPN_OPTION_MARKER_CHARS(_s)   spn_ag_char_map_chars(_s, 9)
+#define BRK_OPTION_MARKER_CHARS(_s)   brk_ag_char_map_chars(_s, 9)
+#define SPN_OPTION_MARKER_BACK(s,e)   spn_ag_char_map_back(s, e, 9)
+#define BRK_OPTION_MARKER_BACK(s,e)   brk_ag_char_map_back(s, e, 9)
+#define  IS_HORIZ_WHITE_CHAR( _c)      is_ag_char_map_char((char)(_c), 0x00000400)
+#define SPN_HORIZ_WHITE_CHARS(_s)     spn_ag_char_map_chars(_s, 10)
+#define BRK_HORIZ_WHITE_CHARS(_s)     brk_ag_char_map_chars(_s, 10)
+#define SPN_HORIZ_WHITE_BACK(s,e)     spn_ag_char_map_back(s, e, 10)
+#define BRK_HORIZ_WHITE_BACK(s,e)     brk_ag_char_map_back(s, e, 10)
+#define  IS_ALT_WHITE_CHAR( _c)        is_ag_char_map_char((char)(_c), 0x00000800)
+#define SPN_ALT_WHITE_CHARS(_s)       spn_ag_char_map_chars(_s, 11)
+#define BRK_ALT_WHITE_CHARS(_s)       brk_ag_char_map_chars(_s, 11)
+#define SPN_ALT_WHITE_BACK(s,e)       spn_ag_char_map_back(s, e, 11)
+#define BRK_ALT_WHITE_BACK(s,e)       brk_ag_char_map_back(s, e, 11)
+#define  IS_WHITESPACE_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x00000C01)
+#define SPN_WHITESPACE_CHARS(_s)      spn_ag_char_map_chars(_s, 12)
+#define BRK_WHITESPACE_CHARS(_s)      brk_ag_char_map_chars(_s, 12)
+#define SPN_WHITESPACE_BACK(s,e)      spn_ag_char_map_back(s, e, 12)
+#define BRK_WHITESPACE_BACK(s,e)      brk_ag_char_map_back(s, e, 12)
+#define  IS_NON_NL_WHITE_CHAR( _c)     is_ag_char_map_char((char)(_c), 0x00000C00)
+#define SPN_NON_NL_WHITE_CHARS(_s)    spn_ag_char_map_chars(_s, 13)
+#define BRK_NON_NL_WHITE_CHARS(_s)    brk_ag_char_map_chars(_s, 13)
+#define SPN_NON_NL_WHITE_BACK(s,e)    spn_ag_char_map_back(s, e, 13)
+#define BRK_NON_NL_WHITE_BACK(s,e)    brk_ag_char_map_back(s, e, 13)
+#define  IS_QUOTE_CHAR( _c)            is_ag_char_map_char((char)(_c), 0x00001000)
+#define SPN_QUOTE_CHARS(_s)           spn_ag_char_map_chars(_s, 14)
+#define BRK_QUOTE_CHARS(_s)           brk_ag_char_map_chars(_s, 14)
+#define SPN_QUOTE_BACK(s,e)           spn_ag_char_map_back(s, e, 14)
+#define BRK_QUOTE_BACK(s,e)           brk_ag_char_map_back(s, e, 14)
+#define  IS_PARENTHESES_CHAR( _c)      is_ag_char_map_char((char)(_c), 0x00002000)
+#define SPN_PARENTHESES_CHARS(_s)     spn_ag_char_map_chars(_s, 15)
+#define BRK_PARENTHESES_CHARS(_s)     brk_ag_char_map_chars(_s, 15)
+#define SPN_PARENTHESES_BACK(s,e)     spn_ag_char_map_back(s, e, 15)
+#define BRK_PARENTHESES_BACK(s,e)     brk_ag_char_map_back(s, e, 15)
+#define  IS_GRAPHIC_CHAR( _c)          is_ag_char_map_char((char)(_c), 0x00004000)
+#define SPN_GRAPHIC_CHARS(_s)         spn_ag_char_map_chars(_s, 16)
+#define BRK_GRAPHIC_CHARS(_s)         brk_ag_char_map_chars(_s, 16)
+#define SPN_GRAPHIC_BACK(s,e)         spn_ag_char_map_back(s, e, 16)
+#define BRK_GRAPHIC_BACK(s,e)         brk_ag_char_map_back(s, e, 16)
+#define  IS_INVERSION_CHAR( _c)        is_ag_char_map_char((char)(_c), 0x00008000)
+#define SPN_INVERSION_CHARS(_s)       spn_ag_char_map_chars(_s, 17)
+#define BRK_INVERSION_CHARS(_s)       brk_ag_char_map_chars(_s, 17)
+#define SPN_INVERSION_BACK(s,e)       spn_ag_char_map_back(s, e, 17)
+#define BRK_INVERSION_BACK(s,e)       brk_ag_char_map_back(s, e, 17)
+#define  IS_OCT_DIGIT_CHAR( _c)        is_ag_char_map_char((char)(_c), 0x00010000)
+#define SPN_OCT_DIGIT_CHARS(_s)       spn_ag_char_map_chars(_s, 18)
+#define BRK_OCT_DIGIT_CHARS(_s)       brk_ag_char_map_chars(_s, 18)
+#define SPN_OCT_DIGIT_BACK(s,e)       spn_ag_char_map_back(s, e, 18)
+#define BRK_OCT_DIGIT_BACK(s,e)       brk_ag_char_map_back(s, e, 18)
+#define  IS_DEC_DIGIT_CHAR( _c)        is_ag_char_map_char((char)(_c), 0x00030000)
+#define SPN_DEC_DIGIT_CHARS(_s)       spn_ag_char_map_chars(_s, 19)
+#define BRK_DEC_DIGIT_CHARS(_s)       brk_ag_char_map_chars(_s, 19)
+#define SPN_DEC_DIGIT_BACK(s,e)       spn_ag_char_map_back(s, e, 19)
+#define BRK_DEC_DIGIT_BACK(s,e)       brk_ag_char_map_back(s, e, 19)
+#define  IS_HEX_DIGIT_CHAR( _c)        is_ag_char_map_char((char)(_c), 0x00070000)
+#define SPN_HEX_DIGIT_CHARS(_s)       spn_ag_char_map_chars(_s, 20)
+#define BRK_HEX_DIGIT_CHARS(_s)       brk_ag_char_map_chars(_s, 20)
+#define SPN_HEX_DIGIT_BACK(s,e)       spn_ag_char_map_back(s, e, 20)
+#define BRK_HEX_DIGIT_BACK(s,e)       brk_ag_char_map_back(s, e, 20)
+#define  IS_LOWER_CASE_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x00080000)
+#define SPN_LOWER_CASE_CHARS(_s)      spn_ag_char_map_chars(_s, 21)
+#define BRK_LOWER_CASE_CHARS(_s)      brk_ag_char_map_chars(_s, 21)
+#define SPN_LOWER_CASE_BACK(s,e)      spn_ag_char_map_back(s, e, 21)
+#define BRK_LOWER_CASE_BACK(s,e)      brk_ag_char_map_back(s, e, 21)
+#define  IS_UPPER_CASE_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x00100000)
+#define SPN_UPPER_CASE_CHARS(_s)      spn_ag_char_map_chars(_s, 22)
+#define BRK_UPPER_CASE_CHARS(_s)      brk_ag_char_map_chars(_s, 22)
+#define SPN_UPPER_CASE_BACK(s,e)      spn_ag_char_map_back(s, e, 22)
+#define BRK_UPPER_CASE_BACK(s,e)      brk_ag_char_map_back(s, e, 22)
+#define  IS_ALPHABETIC_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x00180000)
+#define SPN_ALPHABETIC_CHARS(_s)      spn_ag_char_map_chars(_s, 23)
+#define BRK_ALPHABETIC_CHARS(_s)      brk_ag_char_map_chars(_s, 23)
+#define SPN_ALPHABETIC_BACK(s,e)      spn_ag_char_map_back(s, e, 23)
+#define BRK_ALPHABETIC_BACK(s,e)      brk_ag_char_map_back(s, e, 23)
+#define  IS_ALPHANUMERIC_CHAR( _c)     is_ag_char_map_char((char)(_c), 0x001B0000)
+#define SPN_ALPHANUMERIC_CHARS(_s)    spn_ag_char_map_chars(_s, 24)
+#define BRK_ALPHANUMERIC_CHARS(_s)    brk_ag_char_map_chars(_s, 24)
+#define SPN_ALPHANUMERIC_BACK(s,e)    spn_ag_char_map_back(s, e, 24)
+#define BRK_ALPHANUMERIC_BACK(s,e)    brk_ag_char_map_back(s, e, 24)
+#define  IS_VAR_FIRST_CHAR( _c)        is_ag_char_map_char((char)(_c), 0x00180040)
+#define SPN_VAR_FIRST_CHARS(_s)       spn_ag_char_map_chars(_s, 25)
+#define BRK_VAR_FIRST_CHARS(_s)       brk_ag_char_map_chars(_s, 25)
+#define SPN_VAR_FIRST_BACK(s,e)       spn_ag_char_map_back(s, e, 25)
+#define BRK_VAR_FIRST_BACK(s,e)       brk_ag_char_map_back(s, e, 25)
+#define  IS_VARIABLE_NAME_CHAR( _c)    is_ag_char_map_char((char)(_c), 0x001B0040)
+#define SPN_VARIABLE_NAME_CHARS(_s)   spn_ag_char_map_chars(_s, 26)
+#define BRK_VARIABLE_NAME_CHARS(_s)   brk_ag_char_map_chars(_s, 26)
+#define SPN_VARIABLE_NAME_BACK(s,e)   spn_ag_char_map_back(s, e, 26)
+#define BRK_VARIABLE_NAME_BACK(s,e)   brk_ag_char_map_back(s, e, 26)
+#define  IS_OPTION_NAME_CHAR( _c)      is_ag_char_map_char((char)(_c), 0x003B0040)
+#define SPN_OPTION_NAME_CHARS(_s)     spn_ag_char_map_chars(_s, 27)
+#define BRK_OPTION_NAME_CHARS(_s)     brk_ag_char_map_chars(_s, 27)
+#define SPN_OPTION_NAME_BACK(s,e)     spn_ag_char_map_back(s, e, 27)
+#define BRK_OPTION_NAME_BACK(s,e)     brk_ag_char_map_back(s, e, 27)
+#define  IS_VALUE_NAME_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x003B0060)
+#define SPN_VALUE_NAME_CHARS(_s)      spn_ag_char_map_chars(_s, 28)
+#define BRK_VALUE_NAME_CHARS(_s)      brk_ag_char_map_chars(_s, 28)
+#define SPN_VALUE_NAME_BACK(s,e)      spn_ag_char_map_back(s, e, 28)
+#define BRK_VALUE_NAME_BACK(s,e)      brk_ag_char_map_back(s, e, 28)
+#define  IS_NAME_SEP_CHAR( _c)         is_ag_char_map_char((char)(_c), 0x00400000)
+#define SPN_NAME_SEP_CHARS(_s)        spn_ag_char_map_chars(_s, 29)
+#define BRK_NAME_SEP_CHARS(_s)        brk_ag_char_map_chars(_s, 29)
+#define SPN_NAME_SEP_BACK(s,e)        spn_ag_char_map_back(s, e, 29)
+#define BRK_NAME_SEP_BACK(s,e)        brk_ag_char_map_back(s, e, 29)
+#define  IS_COMPOUND_NAME_CHAR( _c)    is_ag_char_map_char((char)(_c), 0x007B0460)
+#define SPN_COMPOUND_NAME_CHARS(_s)   spn_ag_char_map_chars(_s, 30)
+#define BRK_COMPOUND_NAME_CHARS(_s)   brk_ag_char_map_chars(_s, 30)
+#define SPN_COMPOUND_NAME_BACK(s,e)   spn_ag_char_map_back(s, e, 30)
+#define BRK_COMPOUND_NAME_BACK(s,e)   brk_ag_char_map_back(s, e, 30)
+#define  IS_SCHEME_NOTE_CHAR( _c)      is_ag_char_map_char((char)(_c), 0x00003000)
+#define SPN_SCHEME_NOTE_CHARS(_s)     spn_ag_char_map_chars(_s, 31)
+#define BRK_SCHEME_NOTE_CHARS(_s)     brk_ag_char_map_chars(_s, 31)
+#define SPN_SCHEME_NOTE_BACK(s,e)     spn_ag_char_map_back(s, e, 31)
+#define BRK_SCHEME_NOTE_BACK(s,e)     brk_ag_char_map_back(s, e, 31)
+#define  IS_UNQUOTABLE_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x00800000)
+#define SPN_UNQUOTABLE_CHARS(_s)      spn_ag_char_map_chars(_s, 32)
+#define BRK_UNQUOTABLE_CHARS(_s)      brk_ag_char_map_chars(_s, 32)
+#define SPN_UNQUOTABLE_BACK(s,e)      spn_ag_char_map_back(s, e, 32)
+#define BRK_UNQUOTABLE_BACK(s,e)      brk_ag_char_map_back(s, e, 32)
+#define  IS_END_XML_TOKEN_CHAR( _c)    is_ag_char_map_char((char)(_c), 0x01000C01)
+#define SPN_END_XML_TOKEN_CHARS(_s)   spn_ag_char_map_chars(_s, 33)
+#define BRK_END_XML_TOKEN_CHARS(_s)   brk_ag_char_map_chars(_s, 33)
+#define SPN_END_XML_TOKEN_BACK(s,e)   spn_ag_char_map_back(s, e, 33)
+#define BRK_END_XML_TOKEN_BACK(s,e)   brk_ag_char_map_back(s, e, 33)
+#define  IS_PLUS_N_SPACE_CHAR( _c)     is_ag_char_map_char((char)(_c), 0x00000C81)
+#define SPN_PLUS_N_SPACE_CHARS(_s)    spn_ag_char_map_chars(_s, 34)
+#define BRK_PLUS_N_SPACE_CHARS(_s)    brk_ag_char_map_chars(_s, 34)
+#define SPN_PLUS_N_SPACE_BACK(s,e)    spn_ag_char_map_back(s, e, 34)
+#define BRK_PLUS_N_SPACE_BACK(s,e)    brk_ag_char_map_back(s, e, 34)
+#define  IS_PUNCTUATION_CHAR( _c)      is_ag_char_map_char((char)(_c), 0x02000000)
+#define SPN_PUNCTUATION_CHARS(_s)     spn_ag_char_map_chars(_s, 35)
+#define BRK_PUNCTUATION_CHARS(_s)     brk_ag_char_map_chars(_s, 35)
+#define SPN_PUNCTUATION_BACK(s,e)     spn_ag_char_map_back(s, e, 35)
+#define BRK_PUNCTUATION_BACK(s,e)     brk_ag_char_map_back(s, e, 35)
+#define  IS_SUFFIX_CHAR( _c)           is_ag_char_map_char((char)(_c), 0x041B0000)
+#define SPN_SUFFIX_CHARS(_s)          spn_ag_char_map_chars(_s, 36)
+#define BRK_SUFFIX_CHARS(_s)          brk_ag_char_map_chars(_s, 36)
+#define SPN_SUFFIX_BACK(s,e)          spn_ag_char_map_back(s, e, 36)
+#define BRK_SUFFIX_BACK(s,e)          brk_ag_char_map_back(s, e, 36)
+#define  IS_SUFFIX_FMT_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x041B000C)
+#define SPN_SUFFIX_FMT_CHARS(_s)      spn_ag_char_map_chars(_s, 37)
+#define BRK_SUFFIX_FMT_CHARS(_s)      brk_ag_char_map_chars(_s, 37)
+#define SPN_SUFFIX_FMT_BACK(s,e)      spn_ag_char_map_back(s, e, 37)
+#define BRK_SUFFIX_FMT_BACK(s,e)      brk_ag_char_map_back(s, e, 37)
+#define  IS_FALSE_TYPE_CHAR( _c)       is_ag_char_map_char((char)(_c), 0x08000002)
+#define SPN_FALSE_TYPE_CHARS(_s)      spn_ag_char_map_chars(_s, 38)
+#define BRK_FALSE_TYPE_CHARS(_s)      brk_ag_char_map_chars(_s, 38)
+#define SPN_FALSE_TYPE_BACK(s,e)      spn_ag_char_map_back(s, e, 38)
+#define BRK_FALSE_TYPE_BACK(s,e)      brk_ag_char_map_back(s, e, 38)
+#define  IS_FILE_NAME_CHAR( _c)        is_ag_char_map_char((char)(_c), 0x041B0004)
+#define SPN_FILE_NAME_CHARS(_s)       spn_ag_char_map_chars(_s, 39)
+#define BRK_FILE_NAME_CHARS(_s)       brk_ag_char_map_chars(_s, 39)
+#define SPN_FILE_NAME_BACK(s,e)       spn_ag_char_map_back(s, e, 39)
+#define BRK_FILE_NAME_BACK(s,e)       brk_ag_char_map_back(s, e, 39)
+#define  IS_END_TOKEN_CHAR( _c)        is_ag_char_map_char((char)(_c), 0x00000C03)
+#define SPN_END_TOKEN_CHARS(_s)       spn_ag_char_map_chars(_s, 40)
+#define BRK_END_TOKEN_CHARS(_s)       brk_ag_char_map_chars(_s, 40)
+#define SPN_END_TOKEN_BACK(s,e)       spn_ag_char_map_back(s, e, 40)
+#define BRK_END_TOKEN_BACK(s,e)       brk_ag_char_map_back(s, e, 40)
+#define  IS_END_LIST_ENTRY_CHAR( _c)   is_ag_char_map_char((char)(_c), 0x00000C13)
+#define SPN_END_LIST_ENTRY_CHARS(_s)  spn_ag_char_map_chars(_s, 41)
+#define BRK_END_LIST_ENTRY_CHARS(_s)  brk_ag_char_map_chars(_s, 41)
+#define SPN_END_LIST_ENTRY_BACK(s,e)  spn_ag_char_map_back(s, e, 41)
+#define BRK_END_LIST_ENTRY_BACK(s,e)  brk_ag_char_map_back(s, e, 41)
+#define  IS_SET_SEPARATOR_CHAR( _c)    is_ag_char_map_char((char)(_c), 0x10000C13)
+#define SPN_SET_SEPARATOR_CHARS(_s)   spn_ag_char_map_chars(_s, 42)
+#define BRK_SET_SEPARATOR_CHARS(_s)   brk_ag_char_map_chars(_s, 42)
+#define SPN_SET_SEPARATOR_BACK(s,e)   spn_ag_char_map_back(s, e, 42)
+#define BRK_SET_SEPARATOR_BACK(s,e)   brk_ag_char_map_back(s, e, 42)
+#define  IS_SIGNED_NUMBER_CHAR( _c)    is_ag_char_map_char((char)(_c), 0x00038000)
+#define SPN_SIGNED_NUMBER_CHARS(_s)   spn_ag_char_map_chars(_s, 43)
+#define BRK_SIGNED_NUMBER_CHARS(_s)   brk_ag_char_map_chars(_s, 43)
+#define SPN_SIGNED_NUMBER_BACK(s,e)   spn_ag_char_map_back(s, e, 43)
+#define BRK_SIGNED_NUMBER_BACK(s,e)   brk_ag_char_map_back(s, e, 43)
+#define  IS_MAKE_SCRIPT_CHAR( _c)      is_ag_char_map_char((char)(_c), 0x00000101)
+#define SPN_MAKE_SCRIPT_CHARS(_s)     spn_ag_char_map_chars(_s, 44)
+#define BRK_MAKE_SCRIPT_CHARS(_s)     brk_ag_char_map_chars(_s, 44)
+#define SPN_MAKE_SCRIPT_BACK(s,e)     spn_ag_char_map_back(s, e, 44)
+#define BRK_MAKE_SCRIPT_BACK(s,e)     brk_ag_char_map_back(s, e, 44)
+#define  IS_LOAD_LINE_SKIP_CHAR( _c)   is_ag_char_map_char((char)(_c), 0x00000600)
+#define SPN_LOAD_LINE_SKIP_CHARS(_s)  spn_ag_char_map_chars(_s, 45)
+#define BRK_LOAD_LINE_SKIP_CHARS(_s)  brk_ag_char_map_chars(_s, 45)
+#define SPN_LOAD_LINE_SKIP_BACK(s,e)  spn_ag_char_map_back(s, e, 45)
+#define BRK_LOAD_LINE_SKIP_BACK(s,e)  brk_ag_char_map_back(s, e, 45)
 
 static ag_char_map_mask_t const ag_char_map_table[128] = {
-  /*NUL*/ 0x0000002, /*x01*/ 0x0000000, /*x02*/ 0x0000000, /*x03*/ 0x0000000,
-  /*x04*/ 0x0000000, /*x05*/ 0x0000000, /*x06*/ 0x0000000, /*BEL*/ 0x0000000,
-  /* BS*/ 0x0000400, /* HT*/ 0x0000200, /* NL*/ 0x0000001, /* VT*/ 0x0000400,
-  /* FF*/ 0x0000400, /* CR*/ 0x0000400, /*x0E*/ 0x0000000, /*x0F*/ 0x0000000,
-  /*x10*/ 0x0000000, /*x11*/ 0x0000000, /*x12*/ 0x0000000, /*x13*/ 0x0000000,
-  /*x14*/ 0x0000000, /*x15*/ 0x0000000, /*x16*/ 0x0000000, /*x17*/ 0x0000000,
-  /*x18*/ 0x0000000, /*x19*/ 0x0000000, /*x1A*/ 0x0000000, /*ESC*/ 0x0000000,
-  /*x1C*/ 0x0000000, /*x1D*/ 0x0000000, /*x1E*/ 0x0000000, /*x1F*/ 0x0000000,
-  /*   */ 0x0000200, /* ! */ 0x1402000, /* " */ 0x1002800, /* # */ 0x1002000,
-  /* $ */ 0x1402100, /* % */ 0x1402008, /* & */ 0x1402000, /* ' */ 0x1002800,
-  /* ( */ 0x1003000, /* ) */ 0x1003000, /* * */ 0x1002000, /* + */ 0x9402080,
-  /* , */ 0x1002010, /* - */ 0x3506000, /* . */ 0x3602000, /* / */ 0x1C02004,
-  /* 0 */ 0x440A000, /* 1 */ 0x040A000, /* 2 */ 0x040A000, /* 3 */ 0x040A000,
-  /* 4 */ 0x040A000, /* 5 */ 0x040A000, /* 6 */ 0x040A000, /* 7 */ 0x040A000,
-  /* 8 */ 0x0412000, /* 9 */ 0x0412000, /* : */ 0x1402020, /* ; */ 0x1002000,
-  /* < */ 0x1002000, /* = */ 0x1002000, /* > */ 0x1802000, /* ? */ 0x1002000,
-  /* @ */ 0x1402000, /* A */ 0x04A2000, /* B */ 0x04A2000, /* C */ 0x04A2000,
-  /* D */ 0x04A2000, /* E */ 0x04A2000, /* F */ 0x44A2000, /* G */ 0x0482000,
-  /* H */ 0x0482000, /* I */ 0x0482000, /* J */ 0x0482000, /* K */ 0x0482000,
-  /* L */ 0x0482000, /* M */ 0x0482000, /* N */ 0x4482000, /* O */ 0x0482000,
-  /* P */ 0x0482000, /* Q */ 0x0482000, /* R */ 0x0482000, /* S */ 0x0482000,
-  /* T */ 0x0482000, /* U */ 0x0482000, /* V */ 0x0482000, /* W */ 0x0482000,
-  /* X */ 0x0482000, /* Y */ 0x0482000, /* Z */ 0x0482000, /* [ */ 0x1202000,
-  /* \ */ 0x1002004, /* ] */ 0x1202000, /* ^ */ 0x1502000, /* _ */ 0x2402040,
-  /* ` */ 0x1002000, /* a */ 0x0462000, /* b */ 0x0462000, /* c */ 0x0462000,
-  /* d */ 0x0462000, /* e */ 0x0462000, /* f */ 0x4462000, /* g */ 0x0442000,
-  /* h */ 0x0442000, /* i */ 0x0442000, /* j */ 0x0442000, /* k */ 0x0442000,
-  /* l */ 0x0442000, /* m */ 0x0442000, /* n */ 0x4442000, /* o */ 0x0442000,
-  /* p */ 0x0442000, /* q */ 0x0442000, /* r */ 0x0442000, /* s */ 0x0442000,
-  /* t */ 0x0442000, /* u */ 0x0442000, /* v */ 0x0442000, /* w */ 0x0442000,
-  /* x */ 0x0442000, /* y */ 0x0442000, /* z */ 0x0442000, /* { */ 0x1002000,
-  /* | */ 0x9402000, /* } */ 0x1002000, /* ~ */ 0x1406000, /*x7F*/ 0x0000000
+  /*NUL*/ 0x00000002, /*x01*/ 0x00000000, /*x02*/ 0x00000000, /*x03*/ 0x00000000,
+  /*x04*/ 0x00000000, /*x05*/ 0x00000000, /*x06*/ 0x00000000, /*BEL*/ 0x00000000,
+  /* BS*/ 0x00000800, /* HT*/ 0x00000400, /* NL*/ 0x00000001, /* VT*/ 0x00000800,
+  /* FF*/ 0x00000800, /* CR*/ 0x00000800, /*x0E*/ 0x00000000, /*x0F*/ 0x00000000,
+  /*x10*/ 0x00000000, /*x11*/ 0x00000000, /*x12*/ 0x00000000, /*x13*/ 0x00000000,
+  /*x14*/ 0x00000000, /*x15*/ 0x00000000, /*x16*/ 0x00000000, /*x17*/ 0x00000000,
+  /*x18*/ 0x00000000, /*x19*/ 0x00000000, /*x1A*/ 0x00000000, /*ESC*/ 0x00000000,
+  /*x1C*/ 0x00000000, /*x1D*/ 0x00000000, /*x1E*/ 0x00000000, /*x1F*/ 0x00000000,
+  /*   */ 0x00000400, /* ! */ 0x02804000, /* " */ 0x02005000, /* # */ 0x02004000,
+  /* $ */ 0x02804100, /* % */ 0x02804008, /* & */ 0x02804000, /* ' */ 0x02005000,
+  /* ( */ 0x02006000, /* ) */ 0x02006000, /* * */ 0x02004000, /* + */ 0x12804080,
+  /* , */ 0x02004010, /* - */ 0x06A0C200, /* . */ 0x06C04000, /* / */ 0x03804004,
+  /* 0 */ 0x08814000, /* 1 */ 0x00814000, /* 2 */ 0x00814000, /* 3 */ 0x00814000,
+  /* 4 */ 0x00814000, /* 5 */ 0x00814000, /* 6 */ 0x00814000, /* 7 */ 0x00814000,
+  /* 8 */ 0x00824000, /* 9 */ 0x00824000, /* : */ 0x02804020, /* ; */ 0x02004000,
+  /* < */ 0x02004000, /* = */ 0x02004000, /* > */ 0x03004000, /* ? */ 0x02004000,
+  /* @ */ 0x02804000, /* A */ 0x00944000, /* B */ 0x00944000, /* C */ 0x00944000,
+  /* D */ 0x00944000, /* E */ 0x00944000, /* F */ 0x08944000, /* G */ 0x00904000,
+  /* H */ 0x00904000, /* I */ 0x00904000, /* J */ 0x00904000, /* K */ 0x00904000,
+  /* L */ 0x00904000, /* M */ 0x00904000, /* N */ 0x08904000, /* O */ 0x00904000,
+  /* P */ 0x00904000, /* Q */ 0x00904000, /* R */ 0x00904000, /* S */ 0x00904000,
+  /* T */ 0x00904000, /* U */ 0x00904000, /* V */ 0x00904000, /* W */ 0x00904000,
+  /* X */ 0x00904000, /* Y */ 0x00904000, /* Z */ 0x00904000, /* [ */ 0x02404000,
+  /* \ */ 0x02004004, /* ] */ 0x02404000, /* ^ */ 0x02A04000, /* _ */ 0x04804040,
+  /* ` */ 0x02004000, /* a */ 0x008C4000, /* b */ 0x008C4000, /* c */ 0x008C4000,
+  /* d */ 0x008C4000, /* e */ 0x008C4000, /* f */ 0x088C4000, /* g */ 0x00884000,
+  /* h */ 0x00884000, /* i */ 0x00884000, /* j */ 0x00884000, /* k */ 0x00884000,
+  /* l */ 0x00884000, /* m */ 0x00884000, /* n */ 0x08884000, /* o */ 0x00884000,
+  /* p */ 0x00884000, /* q */ 0x00884000, /* r */ 0x00884000, /* s */ 0x00884000,
+  /* t */ 0x00884000, /* u */ 0x00884000, /* v */ 0x00884000, /* w */ 0x00884000,
+  /* x */ 0x00884000, /* y */ 0x00884000, /* z */ 0x00884000, /* { */ 0x02004000,
+  /* | */ 0x12804000, /* } */ 0x02004000, /* ~ */ 0x0280C000, /*x7F*/ 0x00000000
 };
 
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
-static unsigned char const * ag_char_map_spanners[44];
+#ifndef _
+# define _(_s) _s
+#endif
+
+static unsigned char const * ag_char_map_spanners[46];
 /**
  *  Character category masks.  Some categories may have multiple bits,
  *  if their definition incorporates other character categories.
  *  This mask array is only used by calc_ag_char_map_spanners().
  */
-static ag_char_map_mask_t const ag_char_map_masks[44] = {
-    0x0000001, /* NEWLINE         */
-    0x0000002, /* NUL_BYTE        */
-    0x0000004, /* DIR_SEP         */
-    0x0000008, /* PERCENT         */
-    0x0000010, /* COMMA           */
-    0x0000020, /* COLON           */
-    0x0000040, /* UNDERSCORE      */
-    0x0000080, /* PLUS            */
-    0x0000100, /* DOLLAR          */
-    0x0000200, /* HORIZ_WHITE     */
-    0x0000400, /* ALT_WHITE       */
-    0x0000601, /* WHITESPACE      */
-    0x0000600, /* NON_NL_WHITE    */
-    0x0000800, /* QUOTE           */
-    0x0001000, /* PARENTHESES     */
-    0x0002000, /* GRAPHIC         */
-    0x0004000, /* INVERSION       */
-    0x0008000, /* OCT_DIGIT       */
-    0x0018000, /* DEC_DIGIT       */
-    0x0038000, /* HEX_DIGIT       */
-    0x0040000, /* LOWER_CASE      */
-    0x0080000, /* UPPER_CASE      */
-    0x00C0000, /* ALPHABETIC      */
-    0x00D8000, /* ALPHANUMERIC    */
-    0x00C0040, /* VAR_FIRST       */
-    0x00D8040, /* VARIABLE_NAME   */
-    0x01D8040, /* OPTION_NAME     */
-    0x01D8060, /* VALUE_NAME      */
-    0x0200000, /* NAME_SEP        */
-    0x03D8260, /* COMPOUND_NAME   */
-    0x0001800, /* SCHEME_NOTE     */
-    0x0400000, /* UNQUOTABLE      */
-    0x0800601, /* END_XML_TOKEN   */
-    0x0000681, /* PLUS_N_SPACE    */
-    0x1000000, /* PUNCTUATION     */
-    0x20D8000, /* SUFFIX          */
-    0x20D800C, /* SUFFIX_FMT      */
-    0x4000002, /* FALSE_TYPE      */
-    0x20D8004, /* FILE_NAME       */
-    0x0000603, /* END_TOKEN       */
-    0x0000613, /* END_LIST_ENTRY  */
-    0x8000613, /* SET_SEPARATOR   */
-    0x001C000, /* SIGNED_NUMBER   */
-    0x0000101, /* MAKE_SCRIPT     */
+static ag_char_map_mask_t const ag_char_map_masks[46] = {
+    0x00000001, /* NEWLINE         */
+    0x00000002, /* NUL_BYTE        */
+    0x00000004, /* DIR_SEP         */
+    0x00000008, /* PERCENT         */
+    0x00000010, /* COMMA           */
+    0x00000020, /* COLON           */
+    0x00000040, /* UNDERSCORE      */
+    0x00000080, /* PLUS            */
+    0x00000100, /* DOLLAR          */
+    0x00000200, /* OPTION_MARKER   */
+    0x00000400, /* HORIZ_WHITE     */
+    0x00000800, /* ALT_WHITE       */
+    0x00000C01, /* WHITESPACE      */
+    0x00000C00, /* NON_NL_WHITE    */
+    0x00001000, /* QUOTE           */
+    0x00002000, /* PARENTHESES     */
+    0x00004000, /* GRAPHIC         */
+    0x00008000, /* INVERSION       */
+    0x00010000, /* OCT_DIGIT       */
+    0x00030000, /* DEC_DIGIT       */
+    0x00070000, /* HEX_DIGIT       */
+    0x00080000, /* LOWER_CASE      */
+    0x00100000, /* UPPER_CASE      */
+    0x00180000, /* ALPHABETIC      */
+    0x001B0000, /* ALPHANUMERIC    */
+    0x00180040, /* VAR_FIRST       */
+    0x001B0040, /* VARIABLE_NAME   */
+    0x003B0040, /* OPTION_NAME     */
+    0x003B0060, /* VALUE_NAME      */
+    0x00400000, /* NAME_SEP        */
+    0x007B0460, /* COMPOUND_NAME   */
+    0x00003000, /* SCHEME_NOTE     */
+    0x00800000, /* UNQUOTABLE      */
+    0x01000C01, /* END_XML_TOKEN   */
+    0x00000C81, /* PLUS_N_SPACE    */
+    0x02000000, /* PUNCTUATION     */
+    0x041B0000, /* SUFFIX          */
+    0x041B000C, /* SUFFIX_FMT      */
+    0x08000002, /* FALSE_TYPE      */
+    0x041B0004, /* FILE_NAME       */
+    0x00000C03, /* END_TOKEN       */
+    0x00000C13, /* END_LIST_ENTRY  */
+    0x10000C13, /* SET_SEPARATOR   */
+    0x00038000, /* SIGNED_NUMBER   */
+    0x00000101, /* MAKE_SCRIPT     */
+    0x00000600, /* LOAD_LINE_SKIP  */
 };
 
-#define lock_ag_char_map_spanners()
-#define unlock_ag_char_map_spanners()
+#undef  LOCK_SPANNER_TABLES
 
 static unsigned char const *
 calc_ag_char_map_spanners(unsigned int mask_ix)
 {
-    lock_ag_char_map_spanners();
-    if (ag_char_map_spanners[mask_ix] == NULL) {
+#ifdef LOCK_SPANNER_TABLES
+    if (ag_char_map_spanners[mask_ix] != NULL)
+        return ag_char_map_spanners[mask_ix];
+
+    pthread_mutex_lock(&ag_char_map_mutex);
+    if (ag_char_map_spanners[mask_ix] == NULL)
+#endif
+    {
         int ix = 1;
         ag_char_map_mask_t mask = ag_char_map_masks[mask_ix];
         unsigned char * res = malloc(256 /* 1 << NBBY */);
+        if (res == NULL) {
+            fputs(_("no memory for char-mapper span map\n"), stderr);
+            exit(EXIT_FAILURE);
+        }
+
         memset(res, 0, 256);
         for (; ix < 128; ix++)
             if (ag_char_map_table[ix] & mask)
                 res[ix] = 1;
         ag_char_map_spanners[mask_ix] = res;
     }
-    unlock_ag_char_map_spanners();
+#ifdef LOCK_SPANNER_TABLES
+    pthread_mutex_unlock(&ag_char_map_mutex);
+#endif
     return ag_char_map_spanners[mask_ix];
 }
 #define ag_char_map_masks POISONED_ag_char_map_masks
@@ -448,44 +484,44 @@ is_ag_char_map_char(char ch, ag_char_map_mask_t mask)
 }
 
 static inline char *
-spn_ag_char_map_chars(char * p, unsigned int mask_ix)
+spn_ag_char_map_chars(char const * p, unsigned int mask_ix)
 {
     unsigned char const * v = ag_char_map_spanners[mask_ix];
     if (v == NULL)
         v = calc_ag_char_map_spanners(mask_ix);
     while (v[(unsigned)*p])  p++;
-    return p;
+    return (char *)(uintptr_t)p;
 }
 
 static inline char *
-brk_ag_char_map_chars(char * p, unsigned int mask_ix)
+brk_ag_char_map_chars(char const * p, unsigned int mask_ix)
 {
     unsigned char const * v = ag_char_map_spanners[mask_ix];
     if (v == NULL)
         v = calc_ag_char_map_spanners(mask_ix);
     while ((*p != '\0') && (! v[(unsigned)*p]))  p++;
-    return p;
+    return (char *)(uintptr_t)p;
 }
 
 static inline char *
-spn_ag_char_map_back(char * s, char * e, unsigned int mask_ix)
+spn_ag_char_map_back(char const * s, char const * e, unsigned int mask_ix)
 {
     unsigned char const * v = ag_char_map_spanners[mask_ix];
     if (v == NULL)
         v = calc_ag_char_map_spanners(mask_ix);
     if (s >= e) e = s + strlen(s);
     while ((e > s) && v[(unsigned)e[-1]])  e--;
-    return e;
+    return (char *)(uintptr_t)e;
 }
 
 static inline char *
-brk_ag_char_map_back(char * s, char * e, unsigned int mask_ix)
+brk_ag_char_map_back(char const * s, char const * e, unsigned int mask_ix)
 {
     unsigned char const * v = ag_char_map_spanners[mask_ix];
     if (v == NULL)
         v = calc_ag_char_map_spanners(mask_ix);
     if (s == e) e += strlen(e);
     while ((e > s) && (! v[(unsigned)e[-1]]))  e--;
-    return e;
+    return (char *)(uintptr_t)e;
 }
 #endif /* AG_CHAR_MAP_H_GUARD */
index 18a2fd6..d05cc4b 100644 (file)
@@ -2,15 +2,17 @@
 /**
  * \file alias.c
  *
- * Time-stamp:      "2012-02-12 09:41:42 bkorb"
- *
- *   Automated Options Paged Usage module.
+ * Handle options that are aliases for another option.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This routine will forward an option alias to the correct option code.
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
+LOCAL tSuccess
+too_many_occurrences(tOptions * opts, tOptDesc * od)
+{
+    if ((opts->fOptSet & OPTPROC_ERRSTOP) != 0) {
+        char const * eqv = (od->optEquivIndex != NO_EQUIVALENT) ? zequiv : zNil;
+
+        fprintf(stderr, ztoo_often_fmt, opts->pzProgName);
+
+        if (od->optMaxCt > 1)
+            fprintf(stderr, zat_most, od->optMaxCt, od->pz_Name, eqv);
+        else
+            fprintf(stderr, zonly_one, od->pz_Name, eqv);
+        (*opts->pUsageProc)(opts, EXIT_FAILURE);
+        /* NOTREACHED */
+    }
+
+    return FAILURE;
+}
+
 /*=export_func  optionAlias
  * private:
  *
  * what:  relay an option to its alias
- * arg:   + tOptions*    + pOpts    + program options descriptor  +
- * arg:   + tOptDesc*    + pOptDesc + the descriptor for this arg +
- * arg:   + unsigned int + alias    + the aliased-to option index +
+ * arg:   + tOptions *   + opts   + program options descriptor  +
+ * arg:   + tOptDesc *   + old_od + the descriptor for this arg +
+ * arg:   + unsigned int + alias  + the aliased-to option index +
  * ret-type: int
  *
  * doc:
  *  Returns "-1" if the aliased-to option has appeared too many times.
 =*/
 int
-optionAlias(tOptions * pOpts, tOptDesc * pOldOD, unsigned int alias)
+optionAlias(tOptions * opts, tOptDesc * old_od, unsigned int alias)
 {
-    tOptDesc * pOD;
+    tOptDesc * new_od;
 
-    if (pOpts == OPTPROC_EMIT_USAGE)
+    if (opts <= OPTPROC_EMIT_LIMIT)
         return 0;
 
-    pOD = pOpts->pOptDesc + alias;
-    if ((unsigned)pOpts->optCt <= alias) {
-        fwrite(zAliasRange, strlen (zAliasRange), 1, stderr);
+    new_od = opts->pOptDesc + alias;
+    if ((unsigned)opts->optCt <= alias) {
+        fputs(zbad_alias_id, stderr);
         exit(EXIT_FAILURE);
     }
 
     /*
      *  Copy over the option instance flags
      */
-    pOD->fOptState &= OPTST_PERSISTENT_MASK;
-    pOD->fOptState |= (pOldOD->fOptState & ~OPTST_PERSISTENT_MASK);
-    pOD->optArg.argString = pOldOD->optArg.argString;
+    new_od->fOptState &= OPTST_PERSISTENT_MASK;
+    new_od->fOptState |= (old_od->fOptState & ~OPTST_PERSISTENT_MASK);
+    new_od->optArg.argString = old_od->optArg.argString;
 
     /*
      *  Keep track of count only for DEFINED (command line) options.
      *  IF we have too many, build up an error message and bail.
      */
-    if (  (pOD->fOptState & OPTST_DEFINED)
-       && (++pOD->optOccCt > pOD->optMaxCt)  )  {
-
-        if ((pOpts->fOptSet & OPTPROC_ERRSTOP) != 0) {
-            char const * pzEqv =
-                (pOD->optEquivIndex != NO_EQUIVALENT) ? zEquiv : zNil;
-
-            fputs(zErrOnly, stderr);
-
-            if (pOD->optMaxCt > 1)
-                fprintf(stderr, zAtMost, pOD->optMaxCt, pOD->pz_Name, pzEqv);
-            else
-                fprintf(stderr, zOnlyOne, pOD->pz_Name, pzEqv);
-        }
-
-        return -1;
-    }
+    if (  (new_od->fOptState & OPTST_DEFINED)
+       && (++new_od->optOccCt > new_od->optMaxCt)  )
+        return too_many_occurrences(opts, new_od);
 
     /*
      *  Clear the state bits and counters
      */
-    pOldOD->fOptState &= OPTST_PERSISTENT_MASK;
-    pOldOD->optOccCt   = 0;
+    old_od->fOptState &= OPTST_PERSISTENT_MASK;
+    old_od->optOccCt   = 0;
 
     /*
      *  If there is a procedure to call, call it
      */
-    if (pOD->pOptProc != NULL)
-        (*pOD->pOptProc)(pOpts, pOD);
+    if (new_od->pOptProc != NULL)
+        (*new_od->pOptProc)(opts, new_od);
     return 0;
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 30bcbe5..13a7e4f 100644 (file)
@@ -1,16 +1,16 @@
 /*  -*- buffer-read-only: t -*- vi: set ro:
- * 
+ *
  * DO NOT EDIT THIS FILE   (ao-strs.c)
- * 
- * It has been AutoGen-ed  May  6, 2012 at 04:20:58 PM by AutoGen 5.16pre36
+ *
+ * It has been AutoGen-ed  March 31, 2013 at 10:41:23 AM by AutoGen 5.17.3
  * From the definitions    ao-strs.def
  * and the template file   strings
  *
- *  Copyright (C) 2011-2012 Bruce Korb, all rights reserved.
+ *  Copyright (C) 2011-2013 Bruce Korb, all rights reserved.
  *  This is free software. It is licensed for use, modification and
  *  redistribution under the terms of the
  *  Modified (3 clause) Berkeley Software Distribution License
- *    <http://www.xfree86.org/3.3.6/COPYRIGHT2.html>
+ *  <http://www.xfree86.org/3.3.6/COPYRIGHT2.html>
  *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
@@ -23,7 +23,7 @@
  *  3. Neither the name ``Bruce Korb'' nor the name of any other
  *     contributor may be used to endorse or promote products derived
  *     from this software without specific prior written permission.
- *  
+ *
  *  strings IS PROVIDED BY Bruce Korb ``AS IS'' AND ANY EXPRESS
  *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  */
 #include "ao-strs.h"
 
-char const ao_strs_strtable[6266] =
-/*     0 */ " \t\n"
+char const ao_strs_strtable[6637] =
+/*     0 */ "-_^\0"
+/*     4 */ "  %s%s\n\0"
+/*    12 */ "auto-options\0"
+/*    25 */ "program\0"
+/*    33 */ "%%-%ds %%s\n\0"
+/*    45 */ "\n"
+            "%s\n\n\0"
+/*    51 */ "=file\0"
+/*    57 */ "=Mbr\0"
+/*    62 */ "=Cplx\0"
+/*    68 */ "[=arg]\0"
+/*    75 */ "--%2$s%1$s\0"
+/*    86 */ "=Tim\0"
+/*    91 */ "none\0"
+/*    96 */ "#  preset/initialization file\n"
+            "#  %s#\n\0"
+/*   134 */ " %3s %-14s %s\0"
+/*   148 */ "%s\0"
+/*   151 */ "T/F\0"
+/*   155 */ "\n"
+            "%s\n\n"
+            "%s\0"
+/*   163 */ "Fil\0"
+/*   167 */ "KWd\0"
+/*   171 */ "Mbr\0"
+/*   175 */ "Cpx\0"
+/*   179 */ "no \0"
+/*   183 */ "Num\0"
+/*   187 */ "opt\0"
+/*   191 */ "YES\0"
+/*   195 */ "Str\0"
+/*   199 */ "Tim\0"
+/*   203 */ "\t\t\t\t- \0"
+/*   210 */ "\t\t\t\t  \0"
+/*   217 */ "\t\t\t\t-- and \0"
+/*   229 */ "\t\t\t\t%s\n\0"
+/*   237 */ "      \0"
+/*   244 */ "     \0"
+/*   250 */ "   \0"
+/*   254 */ "  \0"
+/*   257 */ "all\0"
+/*   261 */ " \t\n"
             ":=\0"
-/*     6 */ "INVALID-%d\0"
-/*    17 */ "*INVALID*\0"
-/*    27 */ "none\0"
-/*    32 */ " + \0"
-/*    36 */ " | \0"
-/*    40 */ "%s\n\0"
-/*    44 */ "PAGER\0"
-/*    50 */ "/tmp/use.%lu\0"
-/*    63 */ "more\0"
-/*    68 */ "    --* )\n\0"
-/*    79 */ "%s\n"
+/*   267 */ "%s_%s_%d=\0"
+/*   277 */ "''\0"
+/*   280 */ "        ;;\n\n\0"
+/*   293 */ "'\n\n\0"
+/*   297 */ "</%s>\n\0"
+/*   304 */ "  %s\n\0"
+/*   310 */ "%%-%ds\0"
+/*   317 */ "\n"
+            "export %s_%s_%d\n\0"
+/*   335 */ "false\0"
+/*   341 */ "    -* )\n\0"
+/*   351 */ "flag\0"
+/*   356 */ "INVALID-%d\0"
+/*   367 */ "*INVALID*\0"
+/*   377 */ "\\n\\\n\0"
+/*   382 */ "    --* )\n\0"
+/*   393 */ "--\0"
+/*   396 */ "LONGUSAGE\0"
+/*   406 */ "            %s\n\0"
+/*   422 */ "\\%03o\0"
+/*   428 */ "more\0"
+/*   433 */ "<%s type=nested>\n\0"
+/*   451 */ "%s\n\0"
+/*   455 */ "%s\n"
             "  \0"
-/*    85 */ "  \0"
-/*    88 */ "    -* )\n\0"
-/*    98 */ "        ;;\n\n\0"
-/*   111 */ "stdout\0"
-/*   118 */ "%A %B %e, %Y at %r %Z\0"
-/*   140 */ "#! %s\n\0"
-/*   147 */ "%s_%s=\0"
-/*   154 */ "\n"
+/*   461 */ "OPT_ARG_NEEDED=NO\0"
+/*   479 */ "<%s/>\n\0"
+/*   486 */ "OPT_ARG_NEEDED=OK\0"
+/*   504 */ "\t\0"
+/*   506 */ "<%s>\0"
+/*   511 */ "option\0"
+/*   518 */ "\n"
             "export %s_%s\n\0"
-/*   169 */ "''\0"
-/*   172 */ "\\'\0"
-/*   175 */ "'%s'\0"
-/*   180 */ "%s_%s_%d=\0"
-/*   190 */ "\n"
-            "export %s_%s_%d\n\0"
-/*   208 */ "set --\0"
-/*   215 */ " '%s'\0"
-/*   221 */ "'\\''\0"
-/*   226 */ "\n"
-            "OPTION_CT=0\n\0"
-/*   240 */ "=%1$lu # 0x%1$lX\n\0"
-/*   258 */ "true\0"
-/*   263 */ "false\0"
-/*   269 */ "VERSION\0"
-/*   277 */ "OPT_ARG_NEEDED=OK\0"
-/*   295 */ "OPT_ARG_NEEDED=NO\0"
-/*   313 */ "OPT_ARG_NEEDED=YES\0"
-/*   332 */ "LONGUSAGE\0"
-/*   342 */ "flag\0"
-/*   347 */ "%s_%s_TEXT='\0"
-/*   360 */ "'\n\n\0"
-/*   364 */ "option\0"
-/*   371 */ "\n"
+/*   533 */ "%s_%s=\0"
+/*   540 */ " | \0"
+/*   544 */ "PAGER\0"
+/*   550 */ " + \0"
+/*   554 */ "  puts(_(%s));\n\0"
+/*   570 */ "\\'\0"
+/*   573 */ "'%s'\0"
+/*   578 */ " -- %s\0"
+/*   585 */ "%s_%s_TEXT='\0"
+/*   598 */ "#! %s\n\0"
+/*   605 */ "\n"
             "env | grep '^%s_'\n\0"
-/*   391 */ " -- %s\0"
-/*   398 */ "--\0"
-/*   401 */ "\t\t\t\t- \0"
-/*   408 */ "\t\t\t\t  \0"
-/*   415 */ "\t\0"
-/*   417 */ "    * )\n"
-            "         OPT_PROCESS=false\n"
-            "         ;;\n"
-            "    esac\n\0"
-/*   474 */ "  %s\n\0"
-/*   480 */ "%%-%ds\0"
-/*   487 */ "%1$s /tmp/use.%2$lu ; rm -f /tmp/use.%2$lu\0"
-/*   530 */ "# # # # # # # # # # -- do not modify this marker --\n"
-            "#\n"
-            "#  DO NOT EDIT THIS SECTION\n\0"
-/*   613 */ "%s OF %s\n"
-            "#\n"
-            "#  From here to the next `-- do not modify this marker --',\n"
-            "#  the text has been generated %s\n\0"
-/*   719 */ "#  From the %s option definitions\n"
+/*   625 */ "=%1$lu # 0x%1$lX\n\0"
+/*   643 */ "stdout\0"
+/*   650 */ "%A %B %e, %Y at %r %Z\0"
+/*   672 */ "/tmp/use.%lu\0"
+/*   685 */ "true\0"
+/*   690 */ "<%s type=%s>\0"
+/*   703 */ "VERSION\0"
+/*   711 */ "#x%02X;\0"
+/*   719 */ "OPT_ARG_NEEDED=YES\0"
+/*   738 */ "'\\''\0"
+/*   743 */ " '%s'\0"
+/*   749 */ "\n"
+            "OPTION_CT=0\n\0"
+/*   763 */ "set --\0"
+/*   770 */ "            ;;\n\n\0"
+/*   787 */ "        '%c' )\n\0"
+/*   803 */ "        '%s' )\n\0"
+/*   819 */ "        '%s' | \\\n\0"
+/*   837 */ "%1$s /tmp/use.%2$lu ; rm -f /tmp/use.%2$lu\0"
+/*   880 */ "<%1$s type=boolean>%2$s</%1$s>\n\0"
+/*   912 */ "#  From the %s option definitions\n"
             "#\n\0"
-/*   756 */ "\n"
-            "if test -z \"${%1$s_%2$s}\"\n"
-            "then\n"
-            "  %1$s_%2$s_CT=0\n"
-            "else\n"
-            "  %1$s_%2$s_CT=1\n"
-            "  %1$s_%2$s_1=${%1$s_%2$s}\n"
-            "fi\n"
-            "export %1$s_%2$s_CT\0"
-/*   877 */ "\n"
-            "%1$s_%2$s=${%1$s_%2$s-'%3$s'}\n"
-            "%1$s_%2$s_set=false\n"
-            "export %1$s_%2$s\0"
-/*   945 */ "\n"
-            "%1$s_%2$s=${%1$s_%2$s}\n"
-            "%1$s_%2$s_set=false\n"
+/*   949 */ "echo 'Warning:  Cannot load options files' >&2\0"
+/*   996 */ "echo 'Warning:  Cannot save options files' >&2\0"
+/*  1043 */ "echo 'Warning:  Cannot suppress the loading of options files' >&2\0"
+/*  1109 */ "<%1$s type=integer>0x%2$lX</%1$s>\n\0"
+/*  1144 */ "%1$s_%2$s_TEXT='no %2$s text'\n\0"
+/*  1175 */ "%1$s_%2$s_MODE='%3$s'\n"
+            "export %1$s_%2$s_MODE\n\0"
+/*  1220 */ "%1$s_%2$s='%3$s'\n"
             "export %1$s_%2$s\n\0"
-/*  1007 */ "\n"
-            "OPT_PROCESS=true\n"
-            "OPT_ARG=$1\n"
-            "while ${OPT_PROCESS} && [ $# -gt 0 ]\n"
-            "do\n"
-            "    OPT_ELEMENT=''\n"
-            "    OPT_ARG_VAL=''\n\n"
-            "    case \"${OPT_ARG}\" in\n"
-            "    -- )\n"
-            "        OPT_PROCESS=false\n"
-            "        shift\n"
-            "        ;;\n\0"
-/*  1201 */ "\n"
-            "OPT_ARG=$1\n"
-            "while [ $# -gt 0 ]\n"
-            "do\n"
-            "    OPT_ELEMENT=''\n"
-            "    OPT_ARG_VAL=''\n"
-            "    OPT_ARG=${1}\n\0"
-/*  1291 */ "    if [ -n \"${OPT_ARG_VAL}\" ]\n"
+/*  1255 */ "%1$s_%2$s_CT=%3$d\n"
+            "export %1$s_%2$s_CT\n\0"
+/*  1294 */ "OPTION_CT=%d\n"
+            "export OPTION_CT\n\0"
+/*  1325 */ "%1$s_%2$s=%3$s\n"
+            "export %1$s_%2$s\n\0"
+/*  1358 */ "%1$s_%2$s=%3$d # 0x%3$X\n"
+            "export %1$s_%2$s\n\0"
+/*  1400 */ "        case \"${OPT_CODE}\" in\n\0"
+/*  1431 */ "            if [ $%1$s_%2$s_CT -gt %3$u ] ; then\n"
+            "                echo 'Error:  more than %3$d %2$s options'\n"
+            "                echo \"$%1$s_USAGE_TEXT\"\n"
+            "                exit 1\n"
+            "            fi >&2\n\0"
+/*  1622 */ "test ${%1$s_%2$s_CT-0} -ge %3$u || {\n"
+            "    echo %1$s_%2$s has not been set\n"
+            "    exit 1\n"
+            "} 1>&2\n\0"
+/*  1714 */ "test -n \"$%1$s_%2$s\" || {\n"
+            "    echo %1$s_%2$s has not been set\n"
+            "    exit 1\n"
+            "} 1>&2\n\0"
+/*  1795 */ "            echo \"$%s_%s_TEXT\"\n"
+            "            exit 0\n\0"
+/*  1846 */ "\n"
+            "# # # # # # # # # #\n"
+            "#\n"
+            "#  END OF AUTOMATED OPTION PROCESSING\n"
+            "#\n"
+            "# # # # # # # # # # -- do not modify this marker --\n\0"
+/*  1962 */ "    if [ -n \"${OPT_ARG_VAL}\" ]\n"
             "    then\n"
             "        eval %1$s_${OPT_NAME}${OPT_ELEMENT}=\"'${OPT_ARG_VAL}'\"\n"
             "        export %1$s_${OPT_NAME}${OPT_ELEMENT}\n"
             "    fi\n"
             "done\n"
+            "OPTION_COUNT=`expr $ARG_COUNT - $#`\n"
+            "OPERAND_COUNT=$#\n"
             "unset OPT_PROCESS || :\n"
             "unset OPT_ELEMENT || :\n"
             "unset OPT_ARG     || :\n"
             "unset OPT_ARG_NEEDED || :\n"
             "unset OPT_NAME    || :\n"
             "unset OPT_CODE    || :\n"
-            "unset OPT_ARG_VAL || :\n"
-            "%2$s\0"
-/*  1621 */ "\n"
-            "# # # # # # # # # #\n"
-            "#\n"
-            "#  END OF AUTOMATED OPTION PROCESSING\n"
-            "#\n"
-            "# # # # # # # # # # -- do not modify this marker --\n\0"
-/*  1737 */ "        case \"${OPT_CODE}\" in\n\0"
-/*  1768 */ "        '%s' | \\\n\0"
-/*  1786 */ "        '%s' )\n\0"
-/*  1802 */ "        '%c' )\n\0"
-/*  1818 */ "            ;;\n\n\0"
-/*  1835 */ "        * )\n"
-            "            echo Unknown %s: \"${OPT_CODE}\" >&2\n"
-            "            echo \"$%s_USAGE_TEXT\"\n"
-            "            exit 1\n"
-            "            ;;\n"
-            "        esac\n\n\0"
-/*  1977 */ "            echo \"$%s_%s_TEXT\"\n"
-            "            exit 0\n\0"
-/*  2028 */ "            echo \"$%s_LONGUSAGE_TEXT\" | ${PAGER-more}\n"
-            "            exit 0\n\0"
-/*  2102 */ "            %s\n\0"
-/*  2118 */ "            if [ $%1$s_%2$s_CT -ge %3$d ] ; then\n"
-            "                echo Error:  more than %3$d %2$s options >&2\n"
-            "                echo \"$%1$s_USAGE_TEXT\"\n"
-            "                exit 1 ; fi\n\0"
-/*  2297 */ "            %1$s_%2$s_CT=`expr ${%1$s_%2$s_CT} + 1`\n"
-            "            OPT_ELEMENT=\"_${%1$s_%2$s_CT}\"\n"
-            "            OPT_NAME='%2$s'\n\0"
-/*  2421 */ "            if [ -n \"${%1$s_%2$s}\" ] && ${%1$s_%2$s_set} ; then\n"
-            "                echo Error:  duplicate %2$s option >&2\n"
-            "                echo \"$%1$s_USAGE_TEXT\"\n"
-            "                exit 1 ; fi\n"
-            "            %1$s_%2$s_set=true\n"
-            "            OPT_NAME='%2$s'\n\0"
-/*  2668 */ "            %1$s_%2$s_CT=0\n"
-            "            OPT_ELEMENT=''\n"
-            "            %1$s_%2$s='%3$s'\n"
-            "            export %1$s_%2$s\n"
-            "            OPT_NAME='%2$s'\n\0"
-/*  2809 */ "            if [ -n \"${%1$s_%2$s}\" ] && ${%1$s_%2$s_set} ; then\n"
-            "                echo 'Error:  duplicate %2$s option' >&2\n"
-            "                echo \"$%1$s_USAGE_TEXT\"\n"
-            "                exit 1 ; fi\n"
-            "            %1$s_%2$s_set=true\n"
-            "            %1$s_%2$s='%3$s'\n"
-            "            export %1$s_%2$s\n"
-            "            OPT_NAME='%2$s'\n\0"
-/*  3116 */ "            eval %1$s_%2$s${OPT_ELEMENT}=true\n"
-            "            export %1$s_%2$s${OPT_ELEMENT}\n"
-            "            OPT_ARG_NEEDED=OK\n\0"
-/*  3236 */ "            OPT_ARG_NEEDED=YES\n\0"
-/*  3268 */ "            eval %1$s_%2$s${OPT_ELEMENT}=true\n"
-            "            export %1$s_%2$s${OPT_ELEMENT}\n"
-            "            OPT_ARG_NEEDED=NO\n\0"
-/*  3388 */ "        OPT_CODE=`echo \"X${OPT_ARG}\"|sed 's/^X-*//'`\n"
+            "unset OPT_ARG_VAL || :\n\0"
+/*  2341 */ "        OPT_CODE=`echo \"X${OPT_ARG}\"|sed 's/^X-*//'`\n"
             "        shift\n"
             "        OPT_ARG=$1\n"
             "        case \"${OPT_CODE}\" in *=* )\n"
             "            OPT_ARG_VAL=`echo \"${OPT_CODE}\"|sed 's/^[^=]*=//'`\n"
             "            OPT_CODE=`echo \"${OPT_CODE}\"|sed 's/=.*$//'` ;; esac\n\0"
-/*  3639 */ "        case \"${OPT_ARG_NEEDED}\" in\n"
+/*  2592 */ "        OPT_CODE=`echo \"X${OPT_ARG}\" | sed 's/X-\\(.\\).*/\\1/'`\n"
+            "        OPT_ARG=` echo \"X${OPT_ARG}\" | sed 's/X-.//'`\n\0"
+/*  2709 */ "\n"
+            "ARG_COUNT=$#\n"
+            "OPT_PROCESS=true\n"
+            "OPT_ARG=$1\n"
+            "while ${OPT_PROCESS} && [ $# -gt 0 ]\n"
+            "do\n"
+            "    OPT_ELEMENT=''\n"
+            "    OPT_ARG_VAL=''\n\n"
+            "    case \"${OPT_ARG}\" in\n"
+            "    -- )\n"
+            "        OPT_PROCESS=false\n"
+            "        shift\n"
+            "        ;;\n\0"
+/*  2916 */ "        case \"${OPT_ARG_NEEDED}\" in\n"
             "        NO )\n"
             "            OPT_ARG_VAL=''\n"
             "            ;;\n"
@@ -228,10 +233,10 @@ char const ao_strs_strtable[6266] =
             "            then\n"
             "                if [ $# -eq 0 ]\n"
             "                then\n"
-            "                    echo No argument provided for ${OPT_NAME} option >&2\n"
+            "                    echo No argument provided for ${OPT_NAME} option\n"
             "                    echo \"$%s_USAGE_TEXT\"\n"
             "                    exit 1\n"
-            "                fi\n"
+            "                fi >&2\n"
             "                OPT_ARG_VAL=${OPT_ARG}\n"
             "                shift\n"
             "                OPT_ARG=$1\n"
@@ -247,9 +252,46 @@ char const ao_strs_strtable[6266] =
             "            fi\n"
             "            ;;\n"
             "        esac\n\0"
-/*  4418 */ "        OPT_CODE=`echo \"X${OPT_ARG}\" | sed 's/X-\\(.\\).*/\\1/'`\n"
-            "        OPT_ARG=` echo \"X${OPT_ARG}\" | sed 's/X-.//'`\n\0"
-/*  4535 */ "        case \"${OPT_ARG_NEEDED}\" in\n"
+/*  3695 */ "            %1$s_%2$s_CT=`expr ${%1$s_%2$s_CT} + 1`\n"
+            "            OPT_ELEMENT=\"_${%1$s_%2$s_CT}\"\n"
+            "            OPT_NAME='%2$s'\n\0"
+/*  3819 */ "\n"
+            "if test -z \"${%1$s_%2$s}\"\n"
+            "then\n"
+            "  %1$s_%2$s_CT=0\n"
+            "  export %1$s_%2$s_CT\n"
+            "else\n"
+            "  %1$s_%2$s_CT=1\n"
+            "  %1$s_%2$s_1=${%1$s_%2$s}\n"
+            "  export %1$s_%2$s_CT %1$s_%2$s_1\n"
+            "fi\n\0"
+/*  3977 */ "    * )\n"
+            "         OPT_PROCESS=false\n"
+            "         ;;\n"
+            "    esac\n\0"
+/*  4034 */ "            %1$s_%2$s_CT=0\n"
+            "            OPT_ELEMENT=''\n"
+            "            %1$s_%2$s='%3$s'\n"
+            "            export %1$s_%2$s\n"
+            "            OPT_NAME='%2$s'\n\0"
+/*  4175 */ "            if [ -n \"${%1$s_%2$s}\" ] && ${%1$s_%2$s_set} ; then\n"
+            "                echo 'Error:  duplicate %2$s option'\n"
+            "                echo \"$%1$s_USAGE_TEXT\"\n"
+            "                exit 1\n"
+            "            fi >&2\n"
+            "            %1$s_%2$s_set=true\n"
+            "            %1$s_%2$s='%3$s'\n"
+            "            export %1$s_%2$s\n"
+            "            OPT_NAME='%2$s'\n\0"
+/*  4492 */ "\n"
+            "ARG_COUNT=$#\n"
+            "OPT_ARG=$1\n"
+            "while [ $# -gt 0 ]\n"
+            "do\n"
+            "    OPT_ELEMENT=''\n"
+            "    OPT_ARG_VAL=''\n"
+            "    OPT_ARG=${1}\n\0"
+/*  4595 */ "        case \"${OPT_ARG_NEEDED}\" in\n"
             "        NO )\n"
             "            if [ -n \"${OPT_ARG}\" ]\n"
             "            then\n"
@@ -266,10 +308,10 @@ char const ao_strs_strtable[6266] =
             "            else\n"
             "                if [ $# -eq 0 ]\n"
             "                then\n"
-            "                    echo No argument provided for ${OPT_NAME} option >&2\n"
+            "                    echo No argument provided for ${OPT_NAME} option\n"
             "                    echo \"$%s_USAGE_TEXT\"\n"
             "                    exit 1\n"
-            "                fi\n"
+            "                fi >&2\n"
             "                shift\n"
             "                OPT_ARG_VAL=$1\n"
             "            fi\n"
@@ -294,30 +336,37 @@ char const ao_strs_strtable[6266] =
             "            fi\n"
             "            ;;\n"
             "        esac\n\0"
-/*  5689 */ "%1$s_%2$s=%3$d # 0x%3$X\n"
-            "export %1$s_%2$s\n\0"
-/*  5731 */ "%1$s_%2$s_CT=%3$d\n"
-            "export %1$s_%2$s_CT\n\0"
-/*  5770 */ "OPTION_CT=%d\n"
-            "export OPTION_CT\n\0"
-/*  5801 */ "%1$s_%2$s=%3$s\n"
+/*  5749 */ "            echo \"$%s_LONGUSAGE_TEXT\" | ${PAGER-more}\n"
+            "            exit 0\n\0"
+/*  5823 */ "%s OF %s\n"
+            "#\n"
+            "#  From here to the next `-- do not modify this marker --',\n"
+            "#  the text has been generated %s\n\0"
+/*  5929 */ "            eval %1$s_%2$s${OPT_ELEMENT}=true\n"
+            "            export %1$s_%2$s${OPT_ELEMENT}\n\0"
+/*  6019 */ "            if [ -n \"${%1$s_%2$s}\" ] && ${%1$s_%2$s_set} ; then\n"
+            "                echo 'Error:  duplicate %2$s option'\n"
+            "                echo \"$%1$s_USAGE_TEXT\"\n"
+            "                exit 1\n"
+            "            fi >&2\n"
+            "            %1$s_%2$s_set=true\n"
+            "            OPT_NAME='%2$s'\n\0"
+/*  6278 */ "\n"
+            "%1$s_%2$s=${%1$s_%2$s-'%3$s'}\n"
+            "%1$s_%2$s_set=false\n"
             "export %1$s_%2$s\n\0"
-/*  5834 */ "%1$s_%2$s='%3$s'\n"
+/*  6347 */ "\n"
+            "%1$s_%2$s=${%1$s_%2$s}\n"
+            "%1$s_%2$s_set=false\n"
             "export %1$s_%2$s\n\0"
-/*  5869 */ "%1$s_%2$s_MODE='%3$s'\n"
-            "export %1$s_%2$s_MODE\n\0"
-/*  5914 */ "echo 'Warning:  Cannot load options files' >&2\0"
-/*  5961 */ "echo 'Warning:  Cannot save options files' >&2\0"
-/*  6008 */ "echo 'Warning:  Cannot suppress the loading of options files' >&2\0"
-/*  6074 */ "%1$s_%2$s_TEXT='no %2$s text'\n\0"
-/*  6105 */ "%s WARNING:  cannot save options - \0"
-/*  6141 */ "<%s/>\n\0"
-/*  6148 */ "<%s>\0"
-/*  6153 */ "</%s>\n\0"
-/*  6160 */ "<%s type=%s>\0"
-/*  6173 */ "<%s type=nested>\n\0"
-/*  6191 */ "#x%02X;\0"
-/*  6199 */ "<%1$s type=boolean>%2$s</%1$s>\n\0"
-/*  6231 */ "<%1$s type=integer>0x%2$lX</%1$s>\n";
+/*  6409 */ "# # # # # # # # # # -- do not modify this marker --\n"
+            "#\n"
+            "#  DO NOT EDIT THIS SECTION\n\0"
+/*  6492 */ "        * )\n"
+            "            echo Unknown %s: \"${OPT_CODE}\" >&2\n"
+            "            echo \"$%s_USAGE_TEXT\" >&2\n"
+            "            exit 1\n"
+            "            ;;\n"
+            "        esac\n";
 
 /* end of ao-strs.c */
index 30bbc3b..0ea42ff 100644 (file)
@@ -1,16 +1,16 @@
 /*  -*- buffer-read-only: t -*- vi: set ro:
- * 
+ *
  * DO NOT EDIT THIS FILE   (ao-strs.h)
- * 
- * It has been AutoGen-ed  May  6, 2012 at 04:20:58 PM by AutoGen 5.16pre36
+ *
+ * It has been AutoGen-ed  March 31, 2013 at 10:41:23 AM by AutoGen 5.17.3
  * From the definitions    ao-strs.def
  * and the template file   strings
  *
- *  Copyright (C) 2011-2012 Bruce Korb, all rights reserved.
+ *  Copyright (C) 2011-2013 Bruce Korb, all rights reserved.
  *  This is free software. It is licensed for use, modification and
  *  redistribution under the terms of the
  *  Modified (3 clause) Berkeley Software Distribution License
- *    <http://www.xfree86.org/3.3.6/COPYRIGHT2.html>
+ *  <http://www.xfree86.org/3.3.6/COPYRIGHT2.html>
  *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
@@ -23,7 +23,7 @@
  *  3. Neither the name ``Bruce Korb'' nor the name of any other
  *     contributor may be used to endorse or promote products derived
  *     from this software without specific prior written permission.
- *  
+ *
  *  strings IS PROVIDED BY Bruce Korb ``AS IS'' AND ANY EXPRESS
  *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 #ifndef STRINGS_AO_STRS_H_GUARD
 #define STRINGS_AO_STRS_H_GUARD 1
 /*
- * 102 strings in ao_strs_strtable string table
+ * 140 strings in ao_strs_strtable string table
  */
-#define ARG_BREAK_STR                   (ao_strs_strtable+0)
-#define ARG_BREAK_STR_LEN               5
-#define INVALID_FMT                     (ao_strs_strtable+6)
-#define INVALID_FMT_LEN                 10
-#define INVALID_STR                     (ao_strs_strtable+17)
-#define INVALID_STR_LEN                 9
-#define NONE_STR                        (ao_strs_strtable+27)
-#define NONE_STR_LEN                    4
-#define PLUS_STR                        (ao_strs_strtable+32)
-#define PLUS_STR_LEN                    3
-#define OR_STR                          (ao_strs_strtable+36)
-#define OR_STR_LEN                      3
-#define NLSTR_FMT                       (ao_strs_strtable+40)
-#define NLSTR_FMT_LEN                   3
-#define PAGER_NAME                      (ao_strs_strtable+44)
-#define PAGER_NAME_LEN                  5
-#define TMP_USAGE_FMT                   (ao_strs_strtable+50)
-#define TMP_USAGE_FMT_LEN               12
-#define MORE_STR                        (ao_strs_strtable+63)
-#define MORE_STR_LEN                    4
-#define LONG_OPT_MARK                   (ao_strs_strtable+68)
-#define LONG_OPT_MARK_LEN               10
-#define NLSTR_SPACE_FMT                 (ao_strs_strtable+79)
-#define NLSTR_SPACE_FMT_LEN             5
-#define TWO_SPACES_STR                  (ao_strs_strtable+85)
-#define TWO_SPACES_STR_LEN              2
-#define FLAG_OPT_MARK                   (ao_strs_strtable+88)
-#define FLAG_OPT_MARK_LEN               9
-#define END_OPT_SEL_STR                 (ao_strs_strtable+98)
-#define END_OPT_SEL_STR_LEN             12
-#define STDOUT                          (ao_strs_strtable+111)
-#define STDOUT_LEN                      6
-#define TIME_FMT                        (ao_strs_strtable+118)
-#define TIME_FMT_LEN                    21
-#define SHELL_MAGIC                     (ao_strs_strtable+140)
-#define SHELL_MAGIC_LEN                 6
-#define OPT_VAL_FMT                     (ao_strs_strtable+147)
-#define OPT_VAL_FMT_LEN                 6
-#define OPT_END_FMT                     (ao_strs_strtable+154)
-#define OPT_END_FMT_LEN                 14
-#define EMPTY_ARG                       (ao_strs_strtable+169)
-#define EMPTY_ARG_LEN                   2
-#define QUOT_APOS                       (ao_strs_strtable+172)
-#define QUOT_APOS_LEN                   2
-#define QUOT_ARG_FMT                    (ao_strs_strtable+175)
-#define QUOT_ARG_FMT_LEN                4
-#define ARG_BY_NUM_FMT                  (ao_strs_strtable+180)
-#define ARG_BY_NUM_FMT_LEN              9
-#define EXPORT_ARG_FMT                  (ao_strs_strtable+190)
-#define EXPORT_ARG_FMT_LEN              17
-#define set_dash                        (ao_strs_strtable+208)
-#define set_dash_LEN                    6
-#define arg_fmt                         (ao_strs_strtable+215)
-#define arg_fmt_LEN                     5
-#define apostrophy                      (ao_strs_strtable+221)
-#define apostrophy_LEN                  4
-#define init_optct                      (ao_strs_strtable+226)
-#define init_optct_LEN                  13
-#define SHOW_VAL_FMT                    (ao_strs_strtable+240)
-#define SHOW_VAL_FMT_LEN                17
-#define TRUE_STR                        (ao_strs_strtable+258)
-#define TRUE_STR_LEN                    4
-#define FALSE_STR                       (ao_strs_strtable+263)
-#define FALSE_STR_LEN                   5
-#define VER_STR                         (ao_strs_strtable+269)
-#define VER_STR_LEN                     7
-#define OK_NEED_OPT_ARG                 (ao_strs_strtable+277)
-#define OK_NEED_OPT_ARG_LEN             17
-#define NO_ARG_NEEDED                   (ao_strs_strtable+295)
-#define NO_ARG_NEEDED_LEN               17
-#define YES_NEED_OPT_ARG                (ao_strs_strtable+313)
-#define YES_NEED_OPT_ARG_LEN            18
-#define LONG_USE_STR                    (ao_strs_strtable+332)
-#define LONG_USE_STR_LEN                9
-#define FLAG_STR                        (ao_strs_strtable+342)
-#define FLAG_STR_LEN                    4
-#define SET_TEXT_FMT                    (ao_strs_strtable+347)
-#define SET_TEXT_FMT_LEN                12
-#define END_SET_TEXT                    (ao_strs_strtable+360)
-#define END_SET_TEXT_LEN                3
-#define OPTION_STR                      (ao_strs_strtable+364)
-#define OPTION_STR_LEN                  6
-#define SHOW_PROG_ENV                   (ao_strs_strtable+371)
-#define SHOW_PROG_ENV_LEN               19
-#define SET_OFF_FMT                     (ao_strs_strtable+391)
-#define SET_OFF_FMT_LEN                 6
-#define LONG_OPT_MARKER                 (ao_strs_strtable+398)
-#define LONG_OPT_MARKER_LEN             2
-#define BULLET_STR                      (ao_strs_strtable+401)
-#define BULLET_STR_LEN                  6
-#define DEEP_INDENT_STR                 (ao_strs_strtable+408)
-#define DEEP_INDENT_STR_LEN             6
-#define ONE_TAB_STR                     (ao_strs_strtable+415)
-#define ONE_TAB_STR_LEN                 1
-#define NOT_FOUND_STR                   (ao_strs_strtable+417)
-#define NOT_FOUND_STR_LEN               56
-#define ENUM_ERR_SEP_LINE_FMT           (ao_strs_strtable+474)
-#define ENUM_ERR_SEP_LINE_FMT_LEN       5
-#define ENUM_ERR_STR_WIDTH_FMT          (ao_strs_strtable+480)
-#define ENUM_ERR_STR_WIDTH_FMT_LEN      6
-#define PAGE_USAGE_FMT                  (ao_strs_strtable+487)
-#define PAGE_USAGE_FMT_LEN              42
-#define START_MARK                      (ao_strs_strtable+530)
-#define START_MARK_LEN                  82
-#define PREAMBLE_FMT                    (ao_strs_strtable+613)
-#define PREAMBLE_FMT_LEN                105
-#define END_PRE_FMT                     (ao_strs_strtable+719)
-#define END_PRE_FMT_LEN                 36
-#define MULTI_DEF_FMT                   (ao_strs_strtable+756)
-#define MULTI_DEF_FMT_LEN               120
-#define SGL_DEF_FMT                     (ao_strs_strtable+877)
-#define SGL_DEF_FMT_LEN                 67
-#define SGL_NO_DEF_FMT                  (ao_strs_strtable+945)
-#define SGL_NO_DEF_FMT_LEN              61
-#define LOOP_STR                        (ao_strs_strtable+1007)
-#define LOOP_STR_LEN                    193
-#define ONLY_OPTS_LOOP                  (ao_strs_strtable+1201)
-#define ONLY_OPTS_LOOP_LEN              89
-#define zLoopEnd                        (ao_strs_strtable+1291)
-#define zLoopEnd_LEN                    329
-#define END_MARK                        (ao_strs_strtable+1621)
-#define END_MARK_LEN                    115
-#define zOptionCase                     (ao_strs_strtable+1737)
-#define zOptionCase_LEN                 30
-#define zOptionPartName                 (ao_strs_strtable+1768)
-#define zOptionPartName_LEN             17
-#define zOptionFullName                 (ao_strs_strtable+1786)
-#define zOptionFullName_LEN             15
-#define zOptionFlag                     (ao_strs_strtable+1802)
-#define zOptionFlag_LEN                 15
-#define zOptionEndSelect                (ao_strs_strtable+1818)
-#define zOptionEndSelect_LEN            16
-#define UNK_OPT_FMT                     (ao_strs_strtable+1835)
-#define UNK_OPT_FMT_LEN                 141
-#define zTextExit                       (ao_strs_strtable+1977)
-#define zTextExit_LEN                   50
-#define zPagedUsageExit                 (ao_strs_strtable+2028)
-#define zPagedUsageExit_LEN             73
-#define zCmdFmt                         (ao_strs_strtable+2102)
-#define zCmdFmt_LEN                     15
-#define zCountTest                      (ao_strs_strtable+2118)
-#define zCountTest_LEN                  178
-#define MULTI_ARG_FMT                   (ao_strs_strtable+2297)
-#define MULTI_ARG_FMT_LEN               123
-#define SGL_ARG_FMT                     (ao_strs_strtable+2421)
-#define SGL_ARG_FMT_LEN                 246
-#define NO_MULTI_ARG_FMT                (ao_strs_strtable+2668)
-#define NO_MULTI_ARG_FMT_LEN            140
-#define NO_SGL_ARG_FMT                  (ao_strs_strtable+2809)
-#define NO_SGL_ARG_FMT_LEN              306
-#define zMayArg                         (ao_strs_strtable+3116)
-#define zMayArg_LEN                     119
-#define zMustArg                        (ao_strs_strtable+3236)
-#define zMustArg_LEN                    31
-#define zCantArg                        (ao_strs_strtable+3268)
-#define zCantArg_LEN                    119
-#define INIT_LOPT_STR                   (ao_strs_strtable+3388)
-#define INIT_LOPT_STR_LEN               250
-#define LOPT_ARG_FMT                    (ao_strs_strtable+3639)
-#define LOPT_ARG_FMT_LEN                778
-#define INIT_OPT_STR                    (ao_strs_strtable+4418)
-#define INIT_OPT_STR_LEN                116
-#define OPT_ARG_FMT                     (ao_strs_strtable+4535)
-#define OPT_ARG_FMT_LEN                 1153
-#define zOptNumFmt                      (ao_strs_strtable+5689)
-#define zOptNumFmt_LEN                  41
-#define zOptCookieCt                    (ao_strs_strtable+5731)
-#define zOptCookieCt_LEN                38
-#define zOptCtFmt                       (ao_strs_strtable+5770)
-#define zOptCtFmt_LEN                   30
-#define zOptDisabl                      (ao_strs_strtable+5801)
-#define zOptDisabl_LEN                  32
-#define zFullOptFmt                     (ao_strs_strtable+5834)
-#define zFullOptFmt_LEN                 34
-#define zEquivMode                      (ao_strs_strtable+5869)
-#define zEquivMode_LEN                  44
-#define NO_LOAD_WARN                    (ao_strs_strtable+5914)
-#define NO_LOAD_WARN_LEN                46
-#define NO_SAVE_OPTS                    (ao_strs_strtable+5961)
-#define NO_SAVE_OPTS_LEN                46
-#define NO_SUPPRESS_LOAD                (ao_strs_strtable+6008)
-#define NO_SUPPRESS_LOAD_LEN            65
-#define SET_NO_TEXT_FMT                 (ao_strs_strtable+6074)
-#define SET_NO_TEXT_FMT_LEN             30
-#define SAVE_WARN                       (ao_strs_strtable+6105)
-#define SAVE_WARN_LEN                   35
-#define OPEN_CLOSE_FMT                  (ao_strs_strtable+6141)
-#define OPEN_CLOSE_FMT_LEN              6
-#define OPEN_XML_FMT                    (ao_strs_strtable+6148)
-#define OPEN_XML_FMT_LEN                4
-#define END_XML_FMT                     (ao_strs_strtable+6153)
-#define END_XML_FMT_LEN                 6
-#define TYPE_ATR_FMT                    (ao_strs_strtable+6160)
-#define TYPE_ATR_FMT_LEN                12
-#define NULL_ATR_FMT                    (ao_strs_strtable+6141)
-#define NULL_ATR_FMT_LEN                6
-#define NESTED_OPT_FMT                  (ao_strs_strtable+6173)
-#define NESTED_OPT_FMT_LEN              17
-#define XML_HEX_BYTE_FMT                (ao_strs_strtable+6191)
-#define XML_HEX_BYTE_FMT_LEN            7
-#define BOOL_ATR_FMT                    (ao_strs_strtable+6199)
-#define BOOL_ATR_FMT_LEN                31
-#define NUMB_ATR_FMT                    (ao_strs_strtable+6231)
-#define NUMB_ATR_FMT_LEN                34
-
-extern char const ao_strs_strtable[6266];
+#define ARG_BREAK_STR         (ao_strs_strtable+261)
+#define ARG_BREAK_STR_LEN     5
+#define ARG_BY_NUM_FMT        (ao_strs_strtable+267)
+#define ARG_BY_NUM_FMT_LEN    9
+#define BOOL_ATR_FMT          (ao_strs_strtable+880)
+#define BOOL_ATR_FMT_LEN      31
+#define CHK_MAX_COUNT         (ao_strs_strtable+1431)
+#define CHK_MAX_COUNT_LEN     190
+#define CHK_MIN_COUNT         (ao_strs_strtable+1622)
+#define CHK_MIN_COUNT_LEN     91
+#define CHK_ONE_REQUIRED      (ao_strs_strtable+1714)
+#define CHK_ONE_REQUIRED_LEN  80
+#define ECHO_N_EXIT           (ao_strs_strtable+1795)
+#define ECHO_N_EXIT_LEN       50
+#define EMPTY_ARG             (ao_strs_strtable+277)
+#define EMPTY_ARG_LEN         2
+#define END_MARK              (ao_strs_strtable+1846)
+#define END_MARK_LEN          115
+#define END_OPT_SEL_STR       (ao_strs_strtable+280)
+#define END_OPT_SEL_STR_LEN   12
+#define END_PRE_FMT           (ao_strs_strtable+912)
+#define END_PRE_FMT_LEN       36
+#define END_SET_TEXT          (ao_strs_strtable+293)
+#define END_SET_TEXT_LEN      3
+#define END_XML_FMT           (ao_strs_strtable+297)
+#define END_XML_FMT_LEN       6
+#define ENUM_ERR_LINE         (ao_strs_strtable+304)
+#define ENUM_ERR_LINE_LEN     5
+#define ENUM_ERR_WIDTH        (ao_strs_strtable+310)
+#define ENUM_ERR_WIDTH_LEN    6
+#define EXPORT_ARG_FMT        (ao_strs_strtable+317)
+#define EXPORT_ARG_FMT_LEN    17
+#define FALSE_STR             (ao_strs_strtable+335)
+#define FALSE_STR_LEN         5
+#define FINISH_LOOP           (ao_strs_strtable+1962)
+#define FINISH_LOOP_LEN       378
+#define FLAG_OPT_MARK         (ao_strs_strtable+341)
+#define FLAG_OPT_MARK_LEN     9
+#define FLAG_STR              (ao_strs_strtable+351)
+#define FLAG_STR_LEN          4
+#define INIT_LOPT_STR         (ao_strs_strtable+2341)
+#define INIT_LOPT_STR_LEN     250
+#define INIT_OPT_STR          (ao_strs_strtable+2592)
+#define INIT_OPT_STR_LEN      116
+#define INVALID_FMT           (ao_strs_strtable+356)
+#define INVALID_FMT_LEN       10
+#define INVALID_STR           (ao_strs_strtable+367)
+#define INVALID_STR_LEN       9
+#define LINE_SPLICE           (ao_strs_strtable+377)
+#define LINE_SPLICE_LEN       4
+#define LONG_OPT_MARK         (ao_strs_strtable+382)
+#define LONG_OPT_MARKER       (ao_strs_strtable+393)
+#define LONG_OPT_MARKER_LEN   2
+#define LONG_OPT_MARK_LEN     10
+#define LONG_USE_STR          (ao_strs_strtable+396)
+#define LONG_USE_STR_LEN      9
+#define LOOP_STR              (ao_strs_strtable+2709)
+#define LOOP_STR_LEN          206
+#define LOPT_ARG_FMT          (ao_strs_strtable+2916)
+#define LOPT_ARG_FMT_LEN      778
+#define LVL3_CMD              (ao_strs_strtable+406)
+#define LVL3_CMD_LEN          15
+#define MK_STR_OCT_FMT        (ao_strs_strtable+422)
+#define MK_STR_OCT_FMT_LEN    5
+#define MORE_STR              (ao_strs_strtable+428)
+#define MORE_STR_LEN          4
+#define MULTI_ARG_FMT         (ao_strs_strtable+3695)
+#define MULTI_ARG_FMT_LEN     123
+#define MULTI_DEF_FMT         (ao_strs_strtable+3819)
+#define MULTI_DEF_FMT_LEN     157
+#define NESTED_OPT_FMT        (ao_strs_strtable+433)
+#define NESTED_OPT_FMT_LEN    17
+#define NLSTR_FMT             (ao_strs_strtable+451)
+#define NLSTR_FMT_LEN         3
+#define NLSTR_SPACE_FMT       (ao_strs_strtable+455)
+#define NLSTR_SPACE_FMT_LEN   5
+#define NONE_STR              (ao_strs_strtable+91)
+#define NONE_STR_LEN          4
+#define NOT_FOUND_STR         (ao_strs_strtable+3977)
+#define NOT_FOUND_STR_LEN     56
+#define NO_ARG_NEEDED         (ao_strs_strtable+461)
+#define NO_ARG_NEEDED_LEN     17
+#define NO_LOAD_WARN          (ao_strs_strtable+949)
+#define NO_LOAD_WARN_LEN      46
+#define NO_MULTI_ARG_FMT      (ao_strs_strtable+4034)
+#define NO_MULTI_ARG_FMT_LEN  140
+#define NO_SAVE_OPTS          (ao_strs_strtable+996)
+#define NO_SAVE_OPTS_LEN      46
+#define NO_SGL_ARG_FMT        (ao_strs_strtable+4175)
+#define NO_SGL_ARG_FMT_LEN    316
+#define NO_SUPPRESS_LOAD      (ao_strs_strtable+1043)
+#define NO_SUPPRESS_LOAD_LEN  65
+#define NULL_ATR_FMT          (ao_strs_strtable+479)
+#define NULL_ATR_FMT_LEN      6
+#define NUMB_ATR_FMT          (ao_strs_strtable+1109)
+#define NUMB_ATR_FMT_LEN      34
+#define OK_NEED_OPT_ARG       (ao_strs_strtable+486)
+#define OK_NEED_OPT_ARG_LEN   17
+#define ONE_TAB_STR           (ao_strs_strtable+504)
+#define ONE_TAB_STR_LEN       1
+#define ONLY_OPTS_LOOP        (ao_strs_strtable+4492)
+#define ONLY_OPTS_LOOP_LEN    102
+#define OPEN_CLOSE_FMT        (ao_strs_strtable+479)
+#define OPEN_CLOSE_FMT_LEN    6
+#define OPEN_XML_FMT          (ao_strs_strtable+506)
+#define OPEN_XML_FMT_LEN      4
+#define OPTION_STR            (ao_strs_strtable+511)
+#define OPTION_STR_LEN        6
+#define OPT_ARG_FMT           (ao_strs_strtable+4595)
+#define OPT_ARG_FMT_LEN       1153
+#define OPT_END_FMT           (ao_strs_strtable+518)
+#define OPT_END_FMT_LEN       14
+#define OPT_VAL_FMT           (ao_strs_strtable+533)
+#define OPT_VAL_FMT_LEN       6
+#define OR_STR                (ao_strs_strtable+540)
+#define OR_STR_LEN            3
+#define PAGER_NAME            (ao_strs_strtable+544)
+#define PAGER_NAME_LEN        5
+#define PAGE_USAGE_FMT        (ao_strs_strtable+837)
+#define PAGE_USAGE_FMT        (ao_strs_strtable+837)
+#define PAGE_USAGE_FMT_LEN    42
+#define PAGE_USAGE_FMT_LEN    42
+#define PAGE_USAGE_TEXT       (ao_strs_strtable+5749)
+#define PAGE_USAGE_TEXT_LEN   73
+#define PLUS_STR              (ao_strs_strtable+550)
+#define PLUS_STR_LEN          3
+#define PREAMBLE_FMT          (ao_strs_strtable+5823)
+#define PREAMBLE_FMT_LEN      105
+#define PUTS_FMT              (ao_strs_strtable+554)
+#define PUTS_FMT_LEN          15
+#define QUOT_APOS             (ao_strs_strtable+570)
+#define QUOT_APOS_LEN         2
+#define QUOT_ARG_FMT          (ao_strs_strtable+573)
+#define QUOT_ARG_FMT_LEN      4
+#define SET_MULTI_ARG         (ao_strs_strtable+5929)
+#define SET_MULTI_ARG_LEN     89
+#define SET_NO_TEXT_FMT       (ao_strs_strtable+1144)
+#define SET_NO_TEXT_FMT_LEN   30
+#define SET_OFF_FMT           (ao_strs_strtable+578)
+#define SET_OFF_FMT_LEN       6
+#define SET_TEXT_FMT          (ao_strs_strtable+585)
+#define SET_TEXT_FMT_LEN      12
+#define SGL_ARG_FMT           (ao_strs_strtable+6019)
+#define SGL_ARG_FMT_LEN       258
+#define SGL_DEF_FMT           (ao_strs_strtable+6278)
+#define SGL_DEF_FMT_LEN       68
+#define SGL_NO_DEF_FMT        (ao_strs_strtable+6347)
+#define SGL_NO_DEF_FMT_LEN    61
+#define SHELL_MAGIC           (ao_strs_strtable+598)
+#define SHELL_MAGIC_LEN       6
+#define SHOW_PROG_ENV         (ao_strs_strtable+605)
+#define SHOW_PROG_ENV_LEN     19
+#define SHOW_VAL_FMT          (ao_strs_strtable+625)
+#define SHOW_VAL_FMT_LEN      17
+#define START_MARK            (ao_strs_strtable+6409)
+#define START_MARK_LEN        82
+#define STDOUT                (ao_strs_strtable+643)
+#define STDOUT_LEN            6
+#define TIME_FMT              (ao_strs_strtable+650)
+#define TIME_FMT_LEN          21
+#define TMP_USAGE_FMT         (ao_strs_strtable+672)
+#define TMP_USAGE_FMT_LEN     12
+#define TRUE_STR              (ao_strs_strtable+685)
+#define TRUE_STR_LEN          4
+#define TWO_SPACES_STR        (ao_strs_strtable+254)
+#define TWO_SPACES_STR_LEN    2
+#define TYPE_ATR_FMT          (ao_strs_strtable+690)
+#define TYPE_ATR_FMT_LEN      12
+#define UNK_OPT_FMT           (ao_strs_strtable+6492)
+#define UNK_OPT_FMT_LEN       144
+#define VER_STR               (ao_strs_strtable+703)
+#define VER_STR_LEN           7
+#define XML_HEX_BYTE_FMT      (ao_strs_strtable+711)
+#define XML_HEX_BYTE_FMT_LEN  7
+#define YES_NEED_OPT_ARG      (ao_strs_strtable+719)
+#define YES_NEED_OPT_ARG_LEN  18
+#define apostrophe            (ao_strs_strtable+738)
+#define apostrophe_LEN        4
+#define arg_fmt               (ao_strs_strtable+743)
+#define arg_fmt_LEN           5
+#define init_optct            (ao_strs_strtable+749)
+#define init_optct_LEN        13
+#define set_dash              (ao_strs_strtable+763)
+#define set_dash_LEN          6
+#define zAll                  (ao_strs_strtable+257)
+#define zAll_LEN              3
+#define zCfgAO_Flags          (ao_strs_strtable+12)
+#define zCfgAO_Flags_LEN      12
+#define zCfgProg              (ao_strs_strtable+25)
+#define zCfgProg_LEN          7
+#define zEquivMode            (ao_strs_strtable+1175)
+#define zEquivMode_LEN        44
+#define zFiveSpaces           (ao_strs_strtable+244)
+#define zFiveSpaces_LEN       5
+#define zFmtFmt               (ao_strs_strtable+33)
+#define zFmtFmt_LEN           11
+#define zFullOptFmt           (ao_strs_strtable+1220)
+#define zFullOptFmt_LEN       34
+#define zGnuBreak             (ao_strs_strtable+45)
+#define zGnuBreak_LEN         5
+#define zGnuFileArg           (ao_strs_strtable+51)
+#define zGnuFileArg_LEN       5
+#define zGnuKeyLArg           (ao_strs_strtable+57)
+#define zGnuKeyLArg_LEN       4
+#define zGnuNestArg           (ao_strs_strtable+62)
+#define zGnuNestArg_LEN       5
+#define zGnuOptArg            (ao_strs_strtable+68)
+#define zGnuOptArg_LEN        6
+#define zGnuOptFmt            (ao_strs_strtable+75)
+#define zGnuOptFmt_LEN        10
+#define zGnuTimeArg           (ao_strs_strtable+86)
+#define zGnuTimeArg_LEN       4
+#define zNone                 (ao_strs_strtable+91)
+#define zNone_LEN             4
+#define zOptCookieCt          (ao_strs_strtable+1255)
+#define zOptCookieCt_LEN      38
+#define zOptCtFmt             (ao_strs_strtable+1294)
+#define zOptCtFmt_LEN         30
+#define zOptDisabl            (ao_strs_strtable+1325)
+#define zOptDisabl_LEN        32
+#define zOptNumFmt            (ao_strs_strtable+1358)
+#define zOptNumFmt_LEN        41
+#define zOptionCase           (ao_strs_strtable+1400)
+#define zOptionCase_LEN       30
+#define zOptionEndSelect      (ao_strs_strtable+770)
+#define zOptionEndSelect_LEN  16
+#define zOptionFlag           (ao_strs_strtable+787)
+#define zOptionFlag_LEN       15
+#define zOptionFullName       (ao_strs_strtable+803)
+#define zOptionFullName_LEN   15
+#define zOptionPartName       (ao_strs_strtable+819)
+#define zOptionPartName_LEN   17
+#define zPresetFile           (ao_strs_strtable+96)
+#define zPresetFile_LEN       37
+#define zReqOptFmt            (ao_strs_strtable+134)
+#define zReqOptFmt_LEN        13
+#define zSepChars             (ao_strs_strtable+0)
+#define zSepChars_LEN         3
+#define zShrtGnuOptFmt        (ao_strs_strtable+148)
+#define zShrtGnuOptFmt_LEN    2
+#define zSixSpaces            (ao_strs_strtable+237)
+#define zSixSpaces_LEN        6
+#define zStdBoolArg           (ao_strs_strtable+151)
+#define zStdBoolArg_LEN       3
+#define zStdBreak             (ao_strs_strtable+155)
+#define zStdBreak_LEN         7
+#define zStdFileArg           (ao_strs_strtable+163)
+#define zStdFileArg_LEN       3
+#define zStdKeyArg            (ao_strs_strtable+167)
+#define zStdKeyArg_LEN        3
+#define zStdKeyLArg           (ao_strs_strtable+171)
+#define zStdKeyLArg_LEN       3
+#define zStdNestArg           (ao_strs_strtable+175)
+#define zStdNestArg_LEN       3
+#define zStdNoArg             (ao_strs_strtable+179)
+#define zStdNoArg_LEN         3
+#define zStdNumArg            (ao_strs_strtable+183)
+#define zStdNumArg_LEN        3
+#define zStdOptArg            (ao_strs_strtable+187)
+#define zStdOptArg_LEN        3
+#define zStdReqArg            (ao_strs_strtable+191)
+#define zStdReqArg_LEN        3
+#define zStdStrArg            (ao_strs_strtable+195)
+#define zStdStrArg_LEN        3
+#define zStdTimeArg           (ao_strs_strtable+199)
+#define zStdTimeArg_LEN       3
+#define zTabHyp               (ao_strs_strtable+203)
+#define zTabHypAnd            (ao_strs_strtable+217)
+#define zTabHypAnd_LEN        11
+#define zTabHyp_LEN           6
+#define zTabSpace             (ao_strs_strtable+210)
+#define zTabSpace_LEN         6
+#define zTabout               (ao_strs_strtable+229)
+#define zTabout_LEN           7
+#define zThreeSpaces          (ao_strs_strtable+250)
+#define zThreeSpaces_LEN      3
+#define zTwoSpaces            (ao_strs_strtable+254)
+#define zTwoSpaces_LEN        2
+#define zambig_file           (ao_strs_strtable+4)
+#define zambig_file_LEN       7
+extern char const ao_strs_strtable[6637];
 
 #endif /* STRINGS_AO_STRS_H_GUARD */
index 1eff700..ff54b16 100644 (file)
@@ -2,16 +2,18 @@
 /**
  * \file autoopts.c
  *
- *  Time-stamp:      "2012-03-04 19:44:56 bkorb"
- *
  *  This file contains all of the routines that must be linked into
  *  an executable to use the generated option processing.  The optional
  *  routines are in separately compiled modules so that they will not
  *  necessarily be linked in.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 #ifndef PKGDATADIR
@@ -45,104 +47,98 @@ static tePagerState pagerState           = PAGER_STATE_INITIAL;
 
        FILE *       option_usage_fp      = NULL;
 
-/* = = = START-STATIC-FORWARD = = = */
-static tSuccess
-next_opt_arg_must(tOptions * pOpts, tOptState* pOptState);
-
-static tSuccess
-next_opt_arg_may(tOptions * pOpts, tOptState * pOptState);
-
-static tSuccess
-next_opt_arg_none(tOptions * pOpts, tOptState* pOptState);
-
-static tSuccess
-next_opt(tOptions * pOpts, tOptState * pOptState);
-
-static tSuccess
-doPresets(tOptions * pOpts);
-/* = = = END-STATIC-FORWARD = = = */
+/**
+ * The number of tab characters to skip when printing continuation lines.
+ */
+static unsigned int tab_skip_ct          = 0;
 
 LOCAL void *
 ao_malloc(size_t sz)
 {
     void * res = malloc(sz);
     if (res == NULL) {
-        fprintf(stderr, zAO_Alloc, (int)sz);
+        fprintf(stderr, zalloc_fail, (int)sz);
         exit(EXIT_FAILURE);
     }
     return res;
 }
 #undef  malloc
-#define malloc(_s) ao_malloc(_s)
+#define malloc(_s)        ao_malloc(_s)
 
 LOCAL void *
 ao_realloc(void *p, size_t sz)
 {
     void * res = (p == NULL) ? malloc(sz) : realloc(p, sz);
     if (res == NULL) {
-        fprintf(stderr, zAO_Realloc, (int)sz, p);
+        fprintf(stderr, zrealloc_fail, (int)sz, p);
         exit(EXIT_FAILURE);
     }
     return res;
 }
 #undef  realloc
-#define realloc(_p,_s) ao_realloc(_p,_s)
+#define realloc(_p,_s)    ao_realloc(_p,_s)
 
 LOCAL char *
 ao_strdup(char const *str)
 {
     char * res = strdup(str);
     if (res == NULL) {
-        fprintf(stderr, zAO_Strdup, (int)strlen(str));
+        fprintf(stderr, zalloc_fail, (int)strlen(str));
         exit(EXIT_FAILURE);
     }
     return res;
 }
 #undef  strdup
-#define strdup(_p) ao_strdup(_p)
+#define strdup(_p)        ao_strdup(_p)
 
 #ifndef HAVE_PATHFIND
+#  define  pathfind(_p, _n, _m) option_pathfind(_p, _n, _m)
 #  include "compat/pathfind.c"
 #endif
 
 #ifndef HAVE_SNPRINTF
+#  define vsnprintf       option_vsnprintf
+#  define snprintf        option_snprintf
 #  include "compat/snprintf.c"
 #endif
 
 #ifndef HAVE_STRDUP
+#  define  strdup(_s)     option_strdup(_s)
 #  include "compat/strdup.c"
 #endif
 
 #ifndef HAVE_STRCHR
+#  define strrchr(_s, _c) option_strrchr(_s, _c)
+#  define strchr(_s, _c)  option_strchr(_s, _c)
 #  include "compat/strchr.c"
 #endif
 
-/*
- *  handle_opt
+/**
+ *  handle an option.
  *
  *  This routine handles equivalencing, sets the option state flags and
  *  invokes the handler procedure, if any.
  */
 LOCAL tSuccess
-handle_opt(tOptions * pOpts, tOptState* pOptState)
+handle_opt(tOptions * opts, tOptState * o_st)
 {
     /*
      *  Save a copy of the option procedure pointer.
      *  If this is an equivalence class option, we still want this proc.
      */
-    tOptDesc* pOD = pOptState->pOD;
-    tOptProc* pOP = pOD->pOptProc;
-    if (pOD->fOptState & OPTST_ALLOC_ARG)
-        AGFREE(pOD->optArg.argString);
+    tOptDesc *  od = o_st->pOD;
+    tOptProc *  opt_proc = od->pOptProc;
+    if (od->fOptState & OPTST_ALLOC_ARG)
+        AGFREE(od->optArg.argString);
 
-    pOD->optArg.argString = pOptState->pzOptArg;
+    od->optArg.argString = o_st->pzOptArg;
 
     /*
      *  IF we are presetting options, then we will ignore any un-presettable
      *  options.  They are the ones either marked as such.
      */
-    if (  ((pOpts->fOptSet & OPTPROC_PRESETTING) != 0)
-       && ((pOD->fOptState & OPTST_NO_INIT) != 0)
+    if (  ((opts->fOptSet & OPTPROC_PRESETTING) != 0)
+       && ((od->fOptState & OPTST_NO_INIT) != 0)
        )
         return PROBLEM;
 
@@ -150,19 +146,19 @@ handle_opt(tOptions * pOpts, tOptState* pOptState)
      *  IF this is an equivalence class option,
      *  THEN
      *      Save the option value that got us to this option
-     *      entry.  (It may not be pOD->optChar[0], if this is an
+     *      entry.  (It may not be od->optChar[0], if this is an
      *      equivalence entry.)
      *      set the pointer to the equivalence class base
      */
-    if (pOD->optEquivIndex != NO_EQUIVALENT) {
-        tOptDesc* p = pOpts->pOptDesc + pOD->optEquivIndex;
+    if (od->optEquivIndex != NO_EQUIVALENT) {
+        tOptDesc * eqv_od = opts->pOptDesc + od->optEquivIndex;
 
         /*
          * IF the current option state has not been defined (set on the
          *    command line), THEN we will allow continued resetting of
          *    the value.  Once "defined", then it must not change.
          */
-        if ((pOD->fOptState & OPTST_DEFINED) != 0) {
+        if ((od->fOptState & OPTST_DEFINED) != 0) {
             /*
              *  The equivalenced-to option has been found on the command
              *  line before.  Make sure new occurrences are the same type.
@@ -171,9 +167,9 @@ handle_opt(tOptions * pOpts, tOptState* pOptState)
              *     it was not the same equivalenced-to option,
              *  THEN we have a usage problem.
              */
-            if (p->optActualIndex != pOD->optIndex) {
-                fprintf(stderr, (char*)zMultiEquiv, p->pz_Name, pOD->pz_Name,
-                        (pOpts->pOptDesc + p->optActualIndex)->pz_Name);
+            if (eqv_od->optActualIndex != od->optIndex) {
+                fprintf(stderr, zmultiway_bug, eqv_od->pz_Name, od->pz_Name,
+                        (opts->pOptDesc + eqv_od->optActualIndex)->pz_Name);
                 return FAILURE;
             }
         } else {
@@ -183,310 +179,75 @@ handle_opt(tOptions * pOpts, tOptState* pOptState)
              *  never have been selected before, or else it was selected by
              *  some sort of "presetting" mechanism.
              */
-            p->optActualIndex = NO_EQUIVALENT;
+            eqv_od->optActualIndex = NO_EQUIVALENT;
         }
 
-        if (p->optActualIndex != pOD->optIndex) {
+        if (eqv_od->optActualIndex != od->optIndex) {
             /*
              *  First time through, copy over the state
              *  and add in the equivalence flag
              */
-            p->optActualValue = pOD->optValue;
-            p->optActualIndex = pOD->optIndex;
-            pOptState->flags |= OPTST_EQUIVALENCE;
+            eqv_od->optActualValue = od->optValue;
+            eqv_od->optActualIndex = od->optIndex;
+            o_st->flags |= OPTST_EQUIVALENCE;
         }
 
         /*
          *  Copy the most recent option argument.  set membership state
-         *  is kept in ``p->optCookie''.  Do not overwrite.
+         *  is kept in 'eqv_od->optCookie'.  Do not overwrite.
          */
-        p->optArg.argString = pOD->optArg.argString;
-        pOD = p;
+        eqv_od->optArg.argString = od->optArg.argString;
+        od = eqv_od;
 
     } else {
-        pOD->optActualValue = pOD->optValue;
-        pOD->optActualIndex = pOD->optIndex;
+        od->optActualValue = od->optValue;
+        od->optActualIndex = od->optIndex;
     }
 
-    pOD->fOptState &= OPTST_PERSISTENT_MASK;
-    pOD->fOptState |= (pOptState->flags & ~OPTST_PERSISTENT_MASK);
+    od->fOptState &= OPTST_PERSISTENT_MASK;
+    od->fOptState |= (o_st->flags & ~OPTST_PERSISTENT_MASK);
 
     /*
      *  Keep track of count only for DEFINED (command line) options.
      *  IF we have too many, build up an error message and bail.
      */
-    if (  (pOD->fOptState & OPTST_DEFINED)
-       && (++pOD->optOccCt > pOD->optMaxCt)  )  {
-
-        if ((pOpts->fOptSet & OPTPROC_ERRSTOP) != 0) {
-            char const * pzEqv =
-                (pOD->optEquivIndex != NO_EQUIVALENT) ? zEquiv : zNil;
-
-            fputs(zErrOnly, stderr);
-
-            if (pOD->optMaxCt > 1)
-                fprintf(stderr, zAtMost, pOD->optMaxCt, pOD->pz_Name, pzEqv);
-            else
-                fprintf(stderr, zOnlyOne, pOD->pz_Name, pzEqv);
-        }
-
-        return FAILURE;
-    }
-
+    if (  (od->fOptState & OPTST_DEFINED)
+       && (++od->optOccCt > od->optMaxCt)  )
+        return too_many_occurrences(opts, od);
     /*
      *  If provided a procedure to call, call it
      */
-    if (pOP != NULL)
-        (*pOP)(pOpts, pOD);
+    if (opt_proc != NULL)
+        (*opt_proc)(opts, od);
 
     return SUCCESS;
 }
 
-static tSuccess
-next_opt_arg_must(tOptions * pOpts, tOptState* pOptState)
-{
-    /*
-     *  An option argument is required.  Long options can either have
-     *  a separate command line argument, or an argument attached by
-     *  the '=' character.  Figure out which.
-     */
-    switch (pOptState->optType) {
-    case TOPT_SHORT:
-        /*
-         *  See if an arg string follows the flag character
-         */
-        if (*++(pOpts->pzCurOpt) == NUL)
-            pOpts->pzCurOpt = pOpts->origArgVect[ pOpts->curOptIdx++ ];
-        pOptState->pzOptArg = pOpts->pzCurOpt;
-        break;
-
-    case TOPT_LONG:
-        /*
-         *  See if an arg string has already been assigned (glued on
-         *  with an `=' character)
-         */
-        if (pOptState->pzOptArg == NULL)
-            pOptState->pzOptArg = pOpts->origArgVect[ pOpts->curOptIdx++ ];
-        break;
-
-    default:
-#ifdef DEBUG
-        fputs("AutoOpts lib error: option type not selected\n", stderr);
-        exit(EXIT_FAILURE);
-#endif
-
-    case TOPT_DEFAULT:
-        /*
-         *  The option was selected by default.  The current token is
-         *  the option argument.
-         */
-        break;
-    }
-
-    /*
-     *  Make sure we did not overflow the argument list.
-     */
-    if (pOpts->curOptIdx > pOpts->origArgCt) {
-        fprintf(stderr, zMisArg, pOpts->pzProgPath, pOptState->pOD->pz_Name);
-        return FAILURE;
-    }
-
-    pOpts->pzCurOpt = NULL;  /* next time advance to next arg */
-    return SUCCESS;
-}
-
-/**
- * Process an optional option argument.  For short options, it looks at the
- * character after the option character, or it consumes the next full argument.
- * For long options, it looks for an '=' character attachment to the long
- * option name before deciding to take the next command line argument.
- *
- * @param pOpts      the option descriptor
- * @param pOptState  a structure for managing the current processing state
- * @returns SUCCESS or does not return
- */
-static tSuccess
-next_opt_arg_may(tOptions * pOpts, tOptState * pOptState)
-{
-    /*
-     *  An option argument is optional.
-     */
-    switch (pOptState->optType) {
-    case TOPT_SHORT:
-        if (*++pOpts->pzCurOpt != NUL)
-            pOptState->pzOptArg = pOpts->pzCurOpt;
-        else {
-            char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
-
-            /*
-             *  BECAUSE it is optional, we must make sure
-             *  we did not find another flag and that there
-             *  is such an argument.
-             */
-            if ((pzLA == NULL) || (*pzLA == '-'))
-                pOptState->pzOptArg = NULL;
-            else {
-                pOpts->curOptIdx++; /* argument found */
-                pOptState->pzOptArg = pzLA;
-            }
-        }
-        break;
-
-    case TOPT_LONG:
-        /*
-         *  Look for an argument if we don't already have one (glued on
-         *  with a `=' character) *AND* we are not in named argument mode
-         */
-        if (  (pOptState->pzOptArg == NULL)
-           && (! NAMED_OPTS(pOpts))) {
-            char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
-
-            /*
-             *  BECAUSE it is optional, we must make sure
-             *  we did not find another flag and that there
-             *  is such an argument.
-             */
-            if ((pzLA == NULL) || (*pzLA == '-'))
-                pOptState->pzOptArg = NULL;
-            else {
-                pOpts->curOptIdx++; /* argument found */
-                pOptState->pzOptArg = pzLA;
-            }
-        }
-        break;
-
-    default:
-    case TOPT_DEFAULT:
-        fputs(zAO_Woops, stderr );
-        exit(EX_SOFTWARE);
-    }
-
-    /*
-     *  After an option with an optional argument, we will
-     *  *always* start with the next option because if there
-     *  were any characters following the option name/flag,
-     *  they would be interpreted as the argument.
-     */
-    pOpts->pzCurOpt = NULL;
-    return SUCCESS;
-}
-
-
-static tSuccess
-next_opt_arg_none(tOptions * pOpts, tOptState* pOptState)
-{
-    /*
-     *  No option argument.  Make sure next time around we find
-     *  the correct option flag character for short options
-     */
-    if (pOptState->optType == TOPT_SHORT)
-        (pOpts->pzCurOpt)++;
-
-    /*
-     *  It is a long option.  Make sure there was no ``=xxx'' argument
-     */
-    else if (pOptState->pzOptArg != NULL) {
-        fprintf(stderr, zNoArg, pOpts->pzProgPath, pOptState->pOD->pz_Name);
-        return FAILURE;
-    }
-
-    /*
-     *  It is a long option.  Advance to next command line argument.
-     */
-    else
-        pOpts->pzCurOpt = NULL;
-    return SUCCESS;
-}
-
 /**
  *  Find the option descriptor and option argument (if any) for the
  *  next command line argument.  DO NOT modify the descriptor.  Put
  *  all the state in the state argument so that the option can be skipped
  *  without consequence (side effect).
  *
- * @param pOpts     the program option descriptor
- * @param pOptState the state of the next found option
+ * @param opts the program option descriptor
+ * @param o_st  the state of the next found option
  */
-static tSuccess
-next_opt(tOptions * pOpts, tOptState * pOptState)
+LOCAL tSuccess
+next_opt(tOptions * opts, tOptState * o_st)
 {
     {
-        tSuccess res = find_opt(pOpts, pOptState);
+        tSuccess res = find_opt(opts, o_st);
         if (! SUCCESSFUL(res))
             return res;
     }
 
-    if (  ((pOptState->flags & OPTST_DEFINED) != 0)
-       && ((pOptState->pOD->fOptState & OPTST_NO_COMMAND) != 0)) {
-        fprintf(stderr, zNotCmdOpt, pOptState->pOD->pz_Name);
+    if (  ((o_st->flags & OPTST_DEFINED) != 0)
+       && ((o_st->pOD->fOptState & OPTST_NO_COMMAND) != 0)) {
+        fprintf(stderr, zNotCmdOpt, o_st->pOD->pz_Name);
         return FAILURE;
     }
 
-    return get_opt_arg(pOpts, pOptState);
-}
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  DO PRESETS
- *
- *  The next several routines do the immediate action pass on the command
- *  line options, then the environment variables, then the config files in
- *  reverse order.  Once done with that, the order is reversed and all
- *  the config files and environment variables are processed again, this
- *  time only processing the non-immediate action options.  doPresets()
- *  will then return for optionProcess() to do the final pass on the command
- *  line arguments.
- */
-
-/**
- *  scan the command line for immediate action options.
- *  This is only called the first time through.
- *  While this procedure is active, the OPTPROC_IMMEDIATE is true.
- *
- *  @param pOpts   program options descriptor
- *  @returns SUCCESS or FAILURE
- */
-LOCAL tSuccess
-immediate_opts(tOptions * pOpts)
-{
-    tSuccess  res;
-
-    pOpts->fOptSet  |= OPTPROC_IMMEDIATE;
-    pOpts->curOptIdx = 1;     /* start by skipping program name */
-    pOpts->pzCurOpt  = NULL;
-
-    /*
-     *  Examine all the options from the start.  We process any options that
-     *  are marked for immediate processing.
-     */
-    for (;;) {
-        tOptState opt_st = OPTSTATE_INITIALIZER(PRESET);
-
-        res = next_opt(pOpts, &opt_st);
-        switch (res) {
-        case FAILURE: goto   failed_option;
-        case PROBLEM: res = SUCCESS; goto leave;
-        case SUCCESS: break;
-        }
-
-        /*
-         *  IF this is an immediate-attribute option, then do it.
-         */
-        if (! DO_IMMEDIATELY(opt_st.flags))
-            continue;
-
-        if (! SUCCESSFUL(handle_opt(pOpts, &opt_st)))
-            break;
-    } failed_option:;
-
-    if ((pOpts->fOptSet & OPTPROC_ERRSTOP) != 0)
-        (*pOpts->pUsageProc)(pOpts, EXIT_FAILURE);
-
-leave:
-
-    pOpts->fOptSet &= ~OPTPROC_IMMEDIATE;
-    return res;
+    return get_opt_arg(opts, o_st);
 }
 
 /**
@@ -495,17 +256,17 @@ leave:
  * require it.)  Thus, do not rewind option indexes because some programs
  * choose to re-invoke after a non-option.
  *
- *  @param pOpts   program options descriptor
+ *  @param[in,out] opts   program options descriptor
  *  @returns SUCCESS or FAILURE
  */
 LOCAL tSuccess
-regular_opts(tOptions * pOpts)
+regular_opts(tOptions * opts)
 {
-    /* assert:  pOpts->fOptSet & OPTPROC_IMMEDIATE == 0 */
+    /* assert:  opts->fOptSet & OPTPROC_IMMEDIATE == 0 */
     for (;;) {
         tOptState opt_st = OPTSTATE_INITIALIZER(DEFINED);
 
-        switch (next_opt(pOpts, &opt_st)) {
+        switch (next_opt(opts, &opt_st)) {
         case FAILURE: goto   failed_option;
         case PROBLEM: return SUCCESS; /* no more args */
         case SUCCESS: break;
@@ -521,71 +282,16 @@ regular_opts(tOptions * pOpts)
             opt_st.pOD->optOccCt--; /* don't count this repetition */
         }
 
-        if (! SUCCESSFUL(handle_opt(pOpts, &opt_st)))
+        if (! SUCCESSFUL(handle_opt(opts, &opt_st)))
             break;
     } failed_option:;
 
-    if ((pOpts->fOptSet & OPTPROC_ERRSTOP) != 0)
-        (*pOpts->pUsageProc)(pOpts, EXIT_FAILURE);
+    if ((opts->fOptSet & OPTPROC_ERRSTOP) != 0)
+        (*opts->pUsageProc)(opts, EXIT_FAILURE);
 
     return FAILURE;
 }
 
-
-/**
- *  check for preset values from a config files or envrionment variables
- */
-static tSuccess
-doPresets(tOptions * pOpts)
-{
-    tOptDesc * pOD = NULL;
-
-    if (! SUCCESSFUL(immediate_opts(pOpts)))
-        return FAILURE;
-
-    /*
-     *  IF this option set has a --save-opts option, then it also
-     *  has a --load-opts option.  See if a command line option has disabled
-     *  option presetting.
-     */
-    if (  (pOpts->specOptIdx.save_opts != NO_EQUIVALENT)
-       && (pOpts->specOptIdx.save_opts != 0)) {
-        pOD = pOpts->pOptDesc + pOpts->specOptIdx.save_opts + 1;
-        if (DISABLED_OPT(pOD))
-            return SUCCESS;
-    }
-
-    /*
-     *  Until we return from this procedure, disable non-presettable opts
-     */
-    pOpts->fOptSet |= OPTPROC_PRESETTING;
-    /*
-     *  IF there are no config files,
-     *  THEN do any environment presets and leave.
-     */
-    if (pOpts->papzHomeList == NULL) {
-        env_presets(pOpts, ENV_ALL);
-    }
-    else {
-        env_presets(pOpts, ENV_IMM);
-
-        /*
-         *  Check to see if environment variables have disabled presetting.
-         */
-        if ((pOD != NULL) && ! DISABLED_OPT(pOD))
-            intern_file_load(pOpts);
-
-        /*
-         *  ${PROGRAM_LOAD_OPTS} value of "no" cannot disable other environment
-         *  variable options.  Only the loading of .rc files.
-         */
-        env_presets(pOpts, ENV_NON_IMM);
-    }
-    pOpts->fOptSet &= ~OPTPROC_PRESETTING;
-
-    return SUCCESS;
-}
-
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  *
  *  THESE ROUTINES ARE CALLABLE FROM THE GENERATED OPTION PROCESSING CODE
@@ -608,9 +314,9 @@ doPresets(tOptions * pOpts)
  *
  * what: this is the main option processing routine
  *
- * arg:  + tOptions* + pOpts + program options descriptor +
- * arg:  + int       + argc  + program arg count  +
- * arg:  + char**    + argv  + program arg vector +
+ * arg:  + tOptions* + opts  + program options descriptor +
+ * arg:  + int       + a_ct  + program arg count  +
+ * arg:  + char**    + a_v   + program arg vector +
  *
  * ret_type:  int
  * ret_desc:  the count of the arguments processed
@@ -639,57 +345,29 @@ doPresets(tOptions * pOpts)
  *       ERRSKIP_OPTERR or ERRSTOP_OPTERR macros were invoked.
 =*/
 int
-optionProcess(tOptions * pOpts, int argCt, char ** argVect)
+optionProcess(tOptions * opts, int a_ct, char ** a_v)
 {
-    if (! SUCCESSFUL(validate_struct(pOpts, argVect[0])))
-        exit(EX_SOFTWARE);
-
+    if (! SUCCESSFUL(validate_struct(opts, a_v[0])))
+        ao_bug(zbad_data_msg);
+    
     /*
      *  Establish the real program name, the program full path,
      *  and do all the presetting the first time thru only.
      */
-    if ((pOpts->fOptSet & OPTPROC_INITDONE) == 0) {
-        pOpts->origArgCt   = (unsigned int)argCt;
-        pOpts->origArgVect = argVect;
-        pOpts->fOptSet    |= OPTPROC_INITDONE;
-        if (HAS_pzPkgDataDir(pOpts))
-            program_pkgdatadir = pOpts->pzPkgDataDir;
-
-        if (! SUCCESSFUL(doPresets(pOpts)))
-            return 0;
-
-        /*
-         *  IF option name conversion was suppressed but it is not suppressed
-         *  for the command line, then it's time to translate option names.
-         *  Usage text will not get retranslated.
-         */
-        if (  ((pOpts->fOptSet & OPTPROC_TRANSLATE) != 0)
-           && (pOpts->pTransProc != NULL)
-           && ((pOpts->fOptSet & OPTPROC_NO_XLAT_MASK)
-              == OPTPROC_NXLAT_OPT_CFG)  )  {
-
-            pOpts->fOptSet &= ~OPTPROC_NXLAT_OPT_CFG;
-            (*pOpts->pTransProc)();
-        }
-
-        if ((pOpts->fOptSet & OPTPROC_REORDER) != 0)
-            optionSort(pOpts);
-
-        pOpts->curOptIdx   = 1;
-        pOpts->pzCurOpt    = NULL;
-    }
+    if (! ao_initialize(opts, a_ct, a_v))
+        return 0;
 
     /*
      *  IF we are (re)starting,
      *  THEN reset option location
      */
-    else if (pOpts->curOptIdx <= 0) {
-        pOpts->curOptIdx = 1;
-        pOpts->pzCurOpt  = NULL;
+    if (opts->curOptIdx <= 0) {
+        opts->curOptIdx = 1;
+        opts->pzCurOpt  = NULL;
     }
 
-    if (! SUCCESSFUL(regular_opts(pOpts)))
-        return pOpts->origArgCt;
+    if (! SUCCESSFUL(regular_opts(opts)))
+        return (int)opts->origArgCt;
 
     /*
      *  IF    there were no errors
@@ -698,29 +376,34 @@ optionProcess(tOptions * pOpts, int argCt, char ** argVect)
      *  THEN do that now before testing for conflicts.
      *       (conflicts are ignored in preset options)
      */
-    if (  (pOpts->specOptIdx.save_opts != NO_EQUIVALENT)
-       && (pOpts->specOptIdx.save_opts != 0)) {
-        tOptDesc*  pOD = pOpts->pOptDesc + pOpts->specOptIdx.save_opts;
+    switch (opts->specOptIdx.save_opts) {
+    case 0:
+    case NO_EQUIVALENT:
+        break;
+    default:
+    {
+        tOptDesc * od = opts->pOptDesc + opts->specOptIdx.save_opts;
 
-        if (SELECTED_OPT(pOD)) {
-            optionSaveFile(pOpts);
+        if (SELECTED_OPT(od)) {
+            optionSaveFile(opts);
             exit(EXIT_SUCCESS);
         }
     }
+    }
 
     /*
      *  IF we are checking for errors,
      *  THEN look for too few occurrences of required options
      */
-    if ((pOpts->fOptSet & OPTPROC_ERRSTOP) != 0) {
-        if (! is_consistent(pOpts))
-            (*pOpts->pUsageProc)(pOpts, EXIT_FAILURE);
-    }
+    if (((opts->fOptSet & OPTPROC_ERRSTOP) != 0)
+       && (! is_consistent(opts)))
+        (*opts->pUsageProc)(opts, EXIT_FAILURE);
 
-    return pOpts->curOptIdx;
+    return (int)opts->curOptIdx;
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 194ea5a..67fb86d 100644 (file)
@@ -2,14 +2,16 @@
 /*
  *  \file autoopts.h
  *
- *  Time-stamp:      "2012-03-04 19:05:01 bkorb"
- *
  *  This file defines all the global structures and special values
  *  used in the automated option processing library.
  *
+ * @group autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 #ifndef AUTOGEN_AUTOOPTS_H
 #undef  EXPORT
 #define EXPORT
 
+#ifndef NUL
+#define NUL                     '\0'
+#endif
+#define BEL                     '\a'
+#define BS                      '\b'
+#define HT                      '\t'
+#define LF                      '\n'
+#define VT                      '\v'
+#define FF                      '\f'
+#define CR                      '\r'
+
 #if defined(_WIN32) && !defined(__CYGWIN__)
 # define DIRCH                  '\\'
 #else
 # define DIRCH                  '/'
 #endif
 
-#define AO_EXIT_REQ_USAGE       64
+#ifndef EX_USAGE
+   /**
+    *  Command line usage problem
+    */
+#  define EX_USAGE              64
+#endif
+#ifndef EX_DATAERR
+   /**
+    *  The input data was incorrect in some way.
+    */
+#  define EX_DATAERR            64
+#endif
 #ifndef EX_NOINPUT
    /**
     *  option state was requested from a file that cannot be loaded.
     */
 #  define EX_SOFTWARE           70
 #endif
+#ifndef EX_OSERR
+   /**
+    *  Command line usage problem
+    */
+#  define EX_OSERR              71
+#endif
 
 #define NL '\n'
+#ifndef C
+/**
+ *  Coercive cast.  Compel an address to be interpreted as the type
+ *  of the first argument.  No complaints, just do it.
+ */
+#define C(_t,_p)  ((_t)(void *)(_p))
+#endif
+
+/* The __attribute__((__warn_unused_result__)) feature
+   is available in gcc versions 3.4 and newer,
+   while the typeof feature has been available since 2.7 at least.  */
+# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
+#  define ignore_val(x) ((void) (x))
+# else
+#  define ignore_val(x) (({ __typeof__ (x) __x = (x); (void) __x; }))
+# endif
 
 /*
  *  Convert the number to a list usable in a printf call
@@ -89,37 +135,39 @@ typedef int tDirection;
 
 #define PROCESSING(d)           ((d)>0)
 #define PRESETTING(d)           ((d)<0)
+#define CALLED(d)               ((d)==0)
 
-/*
+/**
  *  When loading a line (or block) of text as an option, the value can
- *  be processed in any of several modes:
- *
- *  @table @samp
- *  @item keep
- *  Every part of the value between the delimiters is saved.
- *
- *  @item uncooked
- *  Even if the value begins with quote characters, do not do quote processing.
- *
- *  @item cooked
- *  If the value looks like a quoted string, then process it.
- *  Double quoted strings are processed the way strings are in "C" programs,
- *  except they are treated as regular characters if the following character
- *  is not a well-established escape sequence.
- *  Single quoted strings (quoted with apostrophies) are handled the way
- *  strings are handled in shell scripts, *except* that backslash escapes
- *  are honored before backslash escapes and apostrophies.
- *  @end table
+ *  be processed in any of several modes.
  */
 typedef enum {
+    /**
+     *  If the value looks like a quoted string, then process it.  Double
+     *  quoted strings are processed the way strings are in "C" programs,
+     *  except they are treated as regular characters if the following
+     *  character is not a well-established escape sequence.  Single quoted
+     *  strings (quoted with apostrophies) are handled the way strings are
+     *  handled in shell scripts, *except* that backslash escapes are
+     *  honored before backslash escapes and apostrophies.
+     */
     OPTION_LOAD_COOKED,
+
+    /**
+     * Even if the value begins with quote characters, do not do quote
+     * processing.  Strip leading and trailing white space.
+     */
     OPTION_LOAD_UNCOOKED,
+
+    /**
+     * Keep every part of the value between the delimiters.
+     */
     OPTION_LOAD_KEEP
 } tOptionLoadMode;
 
 static tOptionLoadMode option_load_mode;
 
-/*
+/**
  *  The pager state is used by optionPagedUsage() procedure.
  *  When it runs, it sets itself up to be called again on exit.
  *  If, however, a routine needs a child process to do some work
@@ -128,8 +176,16 @@ static tOptionLoadMode option_load_mode;
  *  to run the pager program before its time.
  */
 typedef enum {
-    PAGER_STATE_INITIAL,
+    PAGER_STATE_INITIAL, //@< initial option paging state
+
+    /**
+     * temp file created and optionPagedUsage is scheduled to run at exit
+     */
     PAGER_STATE_READY,
+
+    /**
+     *  This is a child process used in creating shell script usage.
+     */
     PAGER_STATE_CHILD
 } tePagerState;
 
@@ -147,10 +203,10 @@ typedef enum {
 } teOptType;
 
 typedef struct {
-    tOptDesc*  pOD;
-    tCC*       pzOptArg;
-    tAoUL      flags;
-    teOptType  optType;
+    tOptDesc *          pOD;
+    char const *        pzOptArg;
+    opt_state_mask_t    flags;
+    teOptType           optType;
 } tOptState;
 #define OPTSTATE_INITIALIZER(st) \
     { NULL, NULL, OPTST_ ## st, TOPT_UNDEFINED }
@@ -166,6 +222,10 @@ typedef enum { TEXTTO_TABLE COUNT_TT } teTextTo;
 
 #undef _TT_
 
+/**
+ * option argument types.  Used to create usage information for
+ * particular options.
+ */
 typedef struct {
     char const * pzStr;
     char const * pzReq;
@@ -200,7 +260,7 @@ ao_realloc(void *p, size_t sz);
 static char *
 ao_strdup(char const *str);
 
-/*
+/**
  *  DO option handling?
  *
  *  Options are examined at two times:  at immediate handling time and at
@@ -230,7 +290,8 @@ ao_strdup(char const *str);
     || (   ((_flg) & (OPTST_DISABLED|OPTST_DISABLE_IMM))    \
         == (OPTST_DISABLED|OPTST_DISABLE_IMM)  ))
 
-/*  B) handling at "regular" time because it was not immediate
+/**
+ *  B) handling at "regular" time because it was not immediate
  *
  *  1.  OPTST_DISABLED is not set:
  *      IMM           must *NOT* be set
@@ -251,7 +312,8 @@ ao_strdup(char const *str);
     || (((_flg) & (OPTST_DISABLED|OPTST_DISABLE_IMM))    ==     \
                   OPTST_DISABLED)  )
 
-/*  C)  handling at "regular" time because it is to be handled twice.
+/**
+ *  C)  handling at "regular" time because it is to be handled twice.
  *      The immediate bit was already tested and found to be set:
  *
  *  3.  OPTST_DISABLED is not set:
@@ -309,7 +371,7 @@ extern char* strchr(char const *s, int c);
 extern char* strrchr(char const *s, int c);
 #endif
 
-/*
+/**
  *  Define and initialize all the user visible strings.
  *  We do not do translations.  If translations are to be done, then
  *  the client will provide a callback for that purpose.
@@ -317,16 +379,22 @@ extern char* strrchr(char const *s, int c);
 #undef DO_TRANSLATIONS
 #include "autoopts/usage-txt.h"
 
-/*
+/**
  *  File pointer for usage output
  */
 FILE * option_usage_fp;
+/**
+ *  If provided in the option structure
+ */
 static char const * program_pkgdatadir;
-
+/**
+ * privately exported functions
+ */
 extern tOptProc optionPrintVersion, optionPagedUsage, optionLoadOpt;
 
 #endif /* AUTOGEN_AUTOOPTS_H */
-/*
+/**
+ * @}
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 356e7e9..5bb31fd 100644 (file)
@@ -1,31 +1,43 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (options.h)
- *  
- *  It has been AutoGen-ed  May  6, 2012 at 04:21:03 PM by AutoGen 5.16pre36
+ *
+ *  It has been AutoGen-ed  March 31, 2013 at 10:41:30 AM by AutoGen 5.17.3
  *  From the definitions    funcs.def
  *  and the template file   options_h
  *
  *  This file defines all the global structures and special values
  *  used in the automated option processing library.
  *
- *  Automated Options Copyright (C) 1992-2012 by Bruce Korb
- *
- *   *  AutoOpts is free software: you can redistribute it and/or modify it
- *  under the terms of the GNU Lesser General Public License as published
- *  by the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *  
- *  AutoOpts 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 Lesser General Public License for more details.
- *  
- *  You should have received a copy of the GNU Lesser General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.";
+ *  Automated Options Copyright (C) 1992-2013 by Bruce Korb
+ *
+ *  This file is part of AutoOpts, a companion to AutoGen.
+ *  AutoOpts is free software.
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
+ *
+ *  AutoOpts is available under any one of two licenses.  The license
+ *  in use must be one of these two and the choice is under the control
+ *  of the user of the license.
+ *
+ *   The GNU Lesser General Public License, version 3 or later
+ *      See the files "COPYING.lgplv3" and "COPYING.gplv3"
+ *
+ *   The Modified Berkeley Software Distribution License
+ *      See the file "COPYING.mbsd"
+ *
+ *  These files have the following sha256 sums:
+ *
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 #ifndef AUTOOPTS_OPTIONS_H_GUARD
 #define AUTOOPTS_OPTIONS_H_GUARD 1
+/** \file options.h
+ *
+ * @addtogroup autoopts
+ * @{
+ */
 #include <sys/types.h>
 #include <stdio.h>
 
 // END-CONFIGURED-HEADERS
 
 /**
- * Defined to normal value of EX_USAGE.  Used to indicate that paged usage
+ * Defined to abnormal value of EX_USAGE.  Used to indicate that paged usage
  * was requested.  It is used to distinguish a --usage from a --help request.
  * --usage is abbreviated and --help gives as much help as possible.
  */
-#define AO_EXIT_REQ_USAGE 64
+#define AO_EXIT_REQ_USAGE 10064
 
-/*
+/**
  *  PUBLIC DEFINES
  *
  *  The following defines may be used in applications that need to test the
  *
  *  See the relevant generated header file to determine which and what
  *  values for "opt_name" are available.
+ * @group version
+ * @{
  */
-#define OPTIONS_STRUCT_VERSION      147460
-#define OPTIONS_VERSION_STRING      "36:4:11"
+/// autoopts structure version
+#define OPTIONS_STRUCT_VERSION      155648
+/// autoopts structure version string
+#define OPTIONS_VERSION_STRING      "38:0:13"
+/// minimum version the autoopts library supports
 #define OPTIONS_MINIMUM_VERSION     102400
+/// minimum version the autoopts library supports as a string
 #define OPTIONS_MIN_VER_STRING      "25:0:0"
+/// the display version of the autoopts library, as a string
+#define OPTIONS_DOTTED_VERSION      "38.0"
+/// convert a version/release number pair to an integer value
 #define OPTIONS_VER_TO_NUM(_v, _r)  (((_v) * 4096) + (_r))
-       
+/// @}
+
+/**
+ * Option argument types.  This must fit in the OPTST_ARG_TYPE_MASK
+ * field of the fOptState field of an option descriptor (tOptDesc).
+ * It will be a problem to extend beyond 4 bits.
+ */
 typedef enum {
-    OPARG_TYPE_NONE             =  0,
-    OPARG_TYPE_STRING           =  1,    /* default type/ vanilla string      */
-    OPARG_TYPE_ENUMERATION      =  2,    /* opt arg is an enum (keyword list) */
-    OPARG_TYPE_BOOLEAN          =  3,    /* opt arg is boolean-valued         */
-    OPARG_TYPE_MEMBERSHIP       =  4,    /* opt arg sets set membership bits  */
-    OPARG_TYPE_NUMERIC          =  5,    /* opt arg is a long int             */
-    OPARG_TYPE_HIERARCHY        =  6,    /* option arg is hierarchical value  */
-    OPARG_TYPE_FILE             =  7,    /* option arg names a file           */
-    OPARG_TYPE_TIME             =  8,    /* opt arg is a time duration        */
-    OPARG_TYPE_FLOAT            =  9,    /* opt arg is a floating point num   */
-    OPARG_TYPE_DOUBLE           = 10,    /* opt arg is a double prec. float   */
-    OPARG_TYPE_LONG_DOUBLE      = 11,    /* opt arg is a long double prec.    */
-    OPARG_TYPE_LONG_LONG        = 12     /* opt arg is a long long int        */
+    OPARG_TYPE_NONE         =  0, ///< does not take an argument
+    OPARG_TYPE_STRING       =  1, ///< default type/ vanilla string
+    OPARG_TYPE_ENUMERATION  =  2, ///< opt arg is an enum (keyword list)
+    OPARG_TYPE_BOOLEAN      =  3, ///< opt arg is boolean-valued
+    OPARG_TYPE_MEMBERSHIP   =  4, ///< opt arg sets set membership bits
+    OPARG_TYPE_NUMERIC      =  5, ///< opt arg is a long int
+    OPARG_TYPE_HIERARCHY    =  6, ///< option arg is hierarchical value
+    OPARG_TYPE_FILE         =  7, ///< option arg names a file
+    OPARG_TYPE_TIME         =  8, ///< opt arg is a time duration
+    OPARG_TYPE_FLOAT        =  9, ///< opt arg is a floating point num
+    OPARG_TYPE_DOUBLE       = 10, ///< opt arg is a double prec. float
+    OPARG_TYPE_LONG_DOUBLE  = 11, ///< opt arg is a long double prec.
+    OPARG_TYPE_LONG_LONG    = 12  ///< opt arg is a long long int
 } teOptArgType;
 
+/**
+ * value descriptor for sub options
+ */
 typedef struct optionValue {
-    teOptArgType        valType;
-    char*               pzName;
+    teOptArgType        valType;        ///< which argument type
+    char *              pzName;         ///< name of the sub-option
     union {
-        char            strVal[1];      /* OPARG_TYPE_STRING      */
-        unsigned int    enumVal;        /* OPARG_TYPE_ENUMERATION */
-        unsigned int    boolVal;        /* OPARG_TYPE_BOOLEAN     */
-        unsigned long   setVal;         /* OPARG_TYPE_MEMBERSHIP  */
-        long            longVal;        /* OPARG_TYPE_NUMERIC     */
-        void*           nestVal;        /* OPARG_TYPE_HIERARCHY   */
+        char            strVal[1];      ///< OPARG_TYPE_STRING
+        unsigned int    enumVal;        ///< OPARG_TYPE_ENUMERATION
+        unsigned int    boolVal;        ///< OPARG_TYPE_BOOLEAN
+        unsigned long   setVal;         ///< OPARG_TYPE_MEMBERSHIP
+        long            longVal;        ///< OPARG_TYPE_NUMERIC
+        void*           nestVal;        ///< OPARG_TYPE_HIERARCHY
     } v;
 } tOptionValue;
 
+/**
+ * file argument state and handling.
+ */
 typedef enum {
-    FTYPE_MODE_MAY_EXIST        = 0x00,
-    FTYPE_MODE_MUST_EXIST       = 0x01,
-    FTYPE_MODE_MUST_NOT_EXIST   = 0x02,
-    FTYPE_MODE_EXIST_MASK       = 0x03,
-    FTYPE_MODE_NO_OPEN          = 0x00,
-    FTYPE_MODE_OPEN_FD          = 0x10,
-    FTYPE_MODE_FOPEN_FP         = 0x20,
-    FTYPE_MODE_OPEN_MASK        = 0x30
+    FTYPE_MODE_MAY_EXIST        = 0x00, ///< may or may not exist
+    FTYPE_MODE_MUST_EXIST       = 0x01, ///< must pre-exist
+    FTYPE_MODE_MUST_NOT_EXIST   = 0x02, ///< must *not* pre-exist
+    FTYPE_MODE_EXIST_MASK       = 0x03, ///< mask for these bits
+    FTYPE_MODE_NO_OPEN          = 0x00, ///< leave file closed
+    FTYPE_MODE_OPEN_FD          = 0x10, ///< call open(2)
+    FTYPE_MODE_FOPEN_FP         = 0x20, ///< call fopen(3)
+    FTYPE_MODE_OPEN_MASK        = 0x30  ///< open/fopen/not open
 } teOptFileType;
 
+/**
+ * the open flag bits or the mode string, depending on the open type.
+ */
 typedef union {
-    int             file_flags;
-    char const *    file_mode;
+    int             file_flags;  ///< open(2) flag bits
+    char const *    file_mode;   ///< fopen(3) mode string
 } tuFileMode;
 
-typedef struct argList tArgList;
+/// initial number of option argument holders to allocate
 #define MIN_ARG_ALLOC_CT   6
-#define INCR_ARG_ALLOC_CT  8
-struct argList {
-    int             useCt;
+/// amount by which to increment the argument holder allocation.
+#define INCR_ARG_ALLOC_CT  8  
+/**
+ * an argument list.  When an option appears multiple times and
+ * the values get "stacked".  \a apzArgs  holds 8 pointers initially
+ * and is incremented by \a INCR_ARG_ALLOC_CT as needed.
+ */
+typedef struct {
+    int             useCt;  ///< elements in use
+
+    /// allocated elements, mininum \a MIN_ARG_ALLOC_CT
+    /// steps by \a INCR_ARG_ALLOC_CT
     int             allocCt;
-    char const *    apzArgs[MIN_ARG_ALLOC_CT];
-};
+    char const *    apzArgs[MIN_ARG_ALLOC_CT]; ///< element array
+} tArgList;
 
-/*
+/**
  *  Bits in the fOptState option descriptor field.
+ * @{
  */
-typedef enum {
-    OPTST_SET_ID             =   0, /* Set via the "SET_OPT()" macro */
-    OPTST_PRESET_ID          =   1, /* Set via an RC/INI file        */
-    OPTST_DEFINED_ID         =   2, /* Set via a command line option */
-    OPTST_RESET_ID           =   3, /* Reset via command line option */
-    OPTST_EQUIVALENCE_ID     =   4, /* selected by equiv'ed option   */
-    OPTST_DISABLED_ID        =   5, /* option is in disabled state   */
-    OPTST_ALLOC_ARG_ID       =   6, /* pzOptArg was allocated        */
-    OPTST_NO_INIT_ID         =   8, /* option cannot be preset       */
-    OPTST_NUMBER_OPT_ID      =   9, /* opt value (flag) is any digit */
-    OPTST_STACKED_ID         =  10, /* opt uses optionStackArg proc  */
-    OPTST_INITENABLED_ID     =  11, /* option defaults to enabled    */
-    OPTST_ARG_TYPE_1_ID      =  12, /* bit 1 of arg type enum        */
-    OPTST_ARG_TYPE_2_ID      =  13, /* bit 2 of arg type enum        */
-    OPTST_ARG_TYPE_3_ID      =  14, /* bit 3 of arg type enum        */
-    OPTST_ARG_TYPE_4_ID      =  15, /* bit 4 of arg type enum        */
-    OPTST_ARG_OPTIONAL_ID    =  16, /* the option arg not required   */
-    OPTST_IMM_ID             =  17, /* process opt on first pass     */
-    OPTST_DISABLE_IMM_ID     =  18, /* process disablement immed.    */
-    OPTST_OMITTED_ID         =  19, /* compiled out of program       */
-    OPTST_MUST_SET_ID        =  20, /* must be set or pre-set        */
-    OPTST_DOCUMENT_ID        =  21, /* opt is for doc only           */
-    OPTST_TWICE_ID           =  22, /* process opt twice - imm + reg */
-    OPTST_DISABLE_TWICE_ID   =  23, /* process disabled option twice */
-    OPTST_SCALED_NUM_ID      =  24, /* scaled integer value          */
-    OPTST_NO_COMMAND_ID      =  25, /* disable from cmd line         */
-    OPTST_DEPRECATED_ID      =  26, /* support is being removed      */
-    OPTST_ALIAS_ID           =  27  /* alias for other option        */
-} opt_state_enum_t;
-
-#define OPTST_INIT               0U
-#define OPTST_SET            (1U << OPTST_SET_ID)
-#define OPTST_PRESET         (1U << OPTST_PRESET_ID)
-#define OPTST_DEFINED        (1U << OPTST_DEFINED_ID)
-#define OPTST_RESET          (1U << OPTST_RESET_ID)
-#define OPTST_EQUIVALENCE    (1U << OPTST_EQUIVALENCE_ID)
-#define OPTST_DISABLED       (1U << OPTST_DISABLED_ID)
-#define OPTST_ALLOC_ARG      (1U << OPTST_ALLOC_ARG_ID)
-#define OPTST_NO_INIT        (1U << OPTST_NO_INIT_ID)
-#define OPTST_NUMBER_OPT     (1U << OPTST_NUMBER_OPT_ID)
-#define OPTST_STACKED        (1U << OPTST_STACKED_ID)
-#define OPTST_INITENABLED    (1U << OPTST_INITENABLED_ID)
-#define OPTST_ARG_TYPE_1     (1U << OPTST_ARG_TYPE_1_ID)
-#define OPTST_ARG_TYPE_2     (1U << OPTST_ARG_TYPE_2_ID)
-#define OPTST_ARG_TYPE_3     (1U << OPTST_ARG_TYPE_3_ID)
-#define OPTST_ARG_TYPE_4     (1U << OPTST_ARG_TYPE_4_ID)
-#define OPTST_ARG_OPTIONAL   (1U << OPTST_ARG_OPTIONAL_ID)
-#define OPTST_IMM            (1U << OPTST_IMM_ID)
-#define OPTST_DISABLE_IMM    (1U << OPTST_DISABLE_IMM_ID)
-#define OPTST_OMITTED        (1U << OPTST_OMITTED_ID)
-#define OPTST_MUST_SET       (1U << OPTST_MUST_SET_ID)
-#define OPTST_DOCUMENT       (1U << OPTST_DOCUMENT_ID)
-#define OPTST_TWICE          (1U << OPTST_TWICE_ID)
-#define OPTST_DISABLE_TWICE  (1U << OPTST_DISABLE_TWICE_ID)
-#define OPTST_SCALED_NUM     (1U << OPTST_SCALED_NUM_ID)
-#define OPTST_NO_COMMAND     (1U << OPTST_NO_COMMAND_ID)
-#define OPTST_DEPRECATED     (1U << OPTST_DEPRECATED_ID)
-#define OPTST_ALIAS          (1U << OPTST_ALIAS_ID)
-#define OPT_STATE_MASK       0x0FFFFF7FU
-
-#define OPTST_SET_MASK       ( \
-        OPTST_DEFINED | OPTST_PRESET |  OPTST_RESET | \
-        OPTST_SET \
-        /* 0x0000000FU */ )
-
-#define OPTST_MUTABLE_MASK   ( \
-        OPTST_ALLOC_ARG |   OPTST_DEFINED | \
-        OPTST_DISABLED |    OPTST_EQUIVALENCE | \
-        OPTST_PRESET |      OPTST_RESET | \
-        OPTST_SET \
-        /* 0x0000007FU */ )
-
-#define OPTST_SELECTED_MASK  ( \
-        OPTST_DEFINED | OPTST_SET \
-        /* 0x00000005U */ )
-
-#define OPTST_ARG_TYPE_MASK  ( \
-        OPTST_ARG_TYPE_1 | OPTST_ARG_TYPE_2 | OPTST_ARG_TYPE_3 | \
-        OPTST_ARG_TYPE_4 \
-        /* 0x0000F000U */ )
-
-#define OPTST_NO_USAGE_MASK  ( \
-        OPTST_DEPRECATED | OPTST_NO_COMMAND | OPTST_OMITTED \
-        /* 0x06080000U */ )
-
-#define OPTST_IMMUTABLE_MASK ( \
-        OPTST_DOCUMENT | OPTST_OMITTED \
-        /* 0x00280000U */ )
-
-#define OPTST_DO_NOT_SAVE_MASK   ( \
-        OPTST_DOCUMENT | OPTST_NO_INIT |  OPTST_OMITTED \
-        /* 0x00280100U */ )
-
-#define OPTST_NO_OUTPUT_MASK ( \
-        OPTST_ALIAS |    OPTST_DOCUMENT | OPTST_OMITTED \
-        /* 0x08280000U */ )
+
+/** integral type for holding opt_state masks */
+typedef uint32_t opt_state_mask_t;
+
+#define OPTST_ARG_TYPE_SHIFT 12
+/** bits defined for opt_state_mask_t */
+/** opt_state_mask_t - Set via the "SET_OPT()" macro */
+#define OPTST_SET              0x0000001U
+/** opt_state_mask_t - Set via an RC/INI file */
+#define OPTST_PRESET           0x0000002U
+/** opt_state_mask_t - Set via a command line option */
+#define OPTST_DEFINED          0x0000004U
+/** opt_state_mask_t - Reset via command line option */
+#define OPTST_RESET            0x0000008U
+/** opt_state_mask_t - selected by equiv'ed option */
+#define OPTST_EQUIVALENCE      0x0000010U
+/** opt_state_mask_t - option is in disabled state */
+#define OPTST_DISABLED         0x0000020U
+/** opt_state_mask_t - pzOptArg was allocated */
+#define OPTST_ALLOC_ARG        0x0000040U
+/** opt_state_mask_t - option cannot be preset */
+#define OPTST_NO_INIT          0x0000100U
+/** opt_state_mask_t - opt value (flag) is any digit */
+#define OPTST_NUMBER_OPT       0x0000200U
+/** opt_state_mask_t - opt uses optionStackArg proc */
+#define OPTST_STACKED          0x0000400U
+/** opt_state_mask_t - option defaults to enabled */
+#define OPTST_INITENABLED      0x0000800U
+/** opt_state_mask_t - bit 1 of arg type enum */
+#define OPTST_ARG_TYPE_1       0x0001000U
+/** opt_state_mask_t - bit 2 of arg type enum */
+#define OPTST_ARG_TYPE_2       0x0002000U
+/** opt_state_mask_t - bit 3 of arg type enum */
+#define OPTST_ARG_TYPE_3       0x0004000U
+/** opt_state_mask_t - bit 4 of arg type enum */
+#define OPTST_ARG_TYPE_4       0x0008000U
+/** opt_state_mask_t - the option arg not required */
+#define OPTST_ARG_OPTIONAL     0x0010000U
+/** opt_state_mask_t - process opt on first pass */
+#define OPTST_IMM              0x0020000U
+/** opt_state_mask_t - process disablement immed. */
+#define OPTST_DISABLE_IMM      0x0040000U
+/** opt_state_mask_t - compiled out of program */
+#define OPTST_OMITTED          0x0080000U
+/** opt_state_mask_t - must be set or pre-set */
+#define OPTST_MUST_SET         0x0100000U
+/** opt_state_mask_t - opt is for doc only */
+#define OPTST_DOCUMENT         0x0200000U
+/** opt_state_mask_t - process opt twice - imm + reg */
+#define OPTST_TWICE            0x0400000U
+/** opt_state_mask_t - process disabled option twice */
+#define OPTST_DISABLE_TWICE    0x0800000U
+/** opt_state_mask_t - scaled integer value */
+#define OPTST_SCALED_NUM       0x1000000U
+/** opt_state_mask_t - disable from cmd line */
+#define OPTST_NO_COMMAND       0x2000000U
+/** opt_state_mask_t - support is being removed */
+#define OPTST_DEPRECATED       0x4000000U
+/** opt_state_mask_t - alias for other option */
+#define OPTST_ALIAS            0x8000000U
+
+/** bits in SET mask:
+ *  set     preset  reset   defined */
+#define OPTST_SET_MASK         0x000000FU
+
+/** bits in MUTABLE mask:
+ *  set         preset      reset       defined     equivalence disabled
+ *  alloc_arg */
+#define OPTST_MUTABLE_MASK     0x000007FU
+
+/** bits omitted from PERSISTENT mask:
+ *  mutable_mask */
+#define OPTST_PERSISTENT_MASK  0xFFFFF00U
+
+/** bits in SELECTED mask:
+ *  set     defined */
+#define OPTST_SELECTED_MASK    0x0000005U
+
+/** bits in ARG_TYPE mask:
+ *  arg_type_1 arg_type_2 arg_type_3 arg_type_4 */
+#define OPTST_ARG_TYPE_MASK    0x000F000U
+
+/** bits in NO_USAGE mask:
+ *  omitted    no_command deprecated */
+#define OPTST_NO_USAGE_MASK    0x6080000U
+
+/** bits in IMMUTABLE mask:
+ *  document omitted */
+#define OPTST_IMMUTABLE_MASK   0x0280000U
+
+/** bits in DO_NOT_SAVE mask:
+ *  document omitted  no_init */
+#define OPTST_DO_NOT_SAVE_MASK 0x0280100U
+
+/** bits in NO_OUTPUT mask:
+ *  document omitted  alias */
+#define OPTST_NO_OUTPUT_MASK   0x8280000U
+
+/** all bits in opt_state_mask_t masks */
+#define OPTST_MASK_ALL         0xFFFFF7FU
+
+/** no bits in opt_state_mask_t */
+#define OPTST_INIT             0x0000000U
+/** @} */
 
 #ifdef NO_OPTIONAL_OPT_ARGS
 # undef  OPTST_ARG_OPTIONAL
@@ -253,16 +307,16 @@ typedef enum {
 
 #define VENDOR_OPTION_VALUE   'W'
 
-#define OPTST_PERSISTENT_MASK (~OPTST_MUTABLE_MASK)
-
 #define SELECTED_OPT(_od)     ((_od)->fOptState  & OPTST_SELECTED_MASK)
 #define UNUSED_OPT(  _od)     (((_od)->fOptState & OPTST_SET_MASK) == 0)
 #define DISABLED_OPT(_od)     ((_od)->fOptState  & OPTST_DISABLED)
 #define OPTION_STATE(_od)     ((_od)->fOptState)
-#define OPTST_SET_ARGTYPE(_n) ((_n) << OPTST_ARG_TYPE_1_ID)
-#define OPTST_GET_ARGTYPE(_f) (((_f)&OPTST_ARG_TYPE_MASK)>>OPTST_ARG_TYPE_1_ID)
+#define OPTST_SET_ARGTYPE(_n) ((_n) << OPTST_ARG_TYPE_SHIFT)
+#define OPTST_GET_ARGTYPE(_f) \
+    (((_f)&OPTST_ARG_TYPE_MASK) >> OPTST_ARG_TYPE_SHIFT)
 
-/*
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
  *  PRIVATE INTERFACES
  *
  *  The following values are used in the generated code to communicate
@@ -270,243 +324,370 @@ typedef enum {
  *  and may be subject to change.
  */
 
-/*
+/**
  *  Define the processing state flags
+ * @{
  */
-typedef enum {
-    OPTPROC_LONGOPT_ID         =   0, /* Process long style options     */
-    OPTPROC_SHORTOPT_ID        =   1, /* Process short style "flags"    */
-    OPTPROC_ERRSTOP_ID         =   2, /* Stop on argument errors        */
-    OPTPROC_DISABLEDOPT_ID     =   3, /* Current option is disabled     */
-    OPTPROC_NO_REQ_OPT_ID      =   4, /* no options are required        */
-    OPTPROC_NUM_OPT_ID         =   5, /* there is a number option       */
-    OPTPROC_INITDONE_ID        =   6, /* have inits been done?          */
-    OPTPROC_NEGATIONS_ID       =   7, /* any negation options?          */
-    OPTPROC_ENVIRON_ID         =   8, /* check environment?             */
-    OPTPROC_NO_ARGS_ID         =   9, /* Disallow remaining arguments   */
-    OPTPROC_ARGS_REQ_ID        =  10, /* Require args after options     */
-    OPTPROC_REORDER_ID         =  11, /* reorder operands after opts    */
-    OPTPROC_GNUUSAGE_ID        =  12, /* emit usage in GNU style        */
-    OPTPROC_TRANSLATE_ID       =  13, /* Translate strings in tOptions  */
-    OPTPROC_MISUSE_ID          =  14, /* no usage on usage error        */
-    OPTPROC_IMMEDIATE_ID       =  15, /* immediate options active       */
-    OPTPROC_NXLAT_OPT_CFG_ID   =  16, /* suppress for config only       */
-    OPTPROC_NXLAT_OPT_ID       =  17, /* suppress xlation always        */
-    OPTPROC_VENDOR_OPT_ID      =  18, /* vendor options active          */
-    OPTPROC_PRESETTING_ID      =  19  /* opt processing in preset state */
-} optproc_state_enum_t;
-
-#define OPTPROC_NONE               0U
-#define OPTPROC_LONGOPT        (1U << OPTPROC_LONGOPT_ID)
-#define OPTPROC_SHORTOPT       (1U << OPTPROC_SHORTOPT_ID)
-#define OPTPROC_ERRSTOP        (1U << OPTPROC_ERRSTOP_ID)
-#define OPTPROC_DISABLEDOPT    (1U << OPTPROC_DISABLEDOPT_ID)
-#define OPTPROC_NO_REQ_OPT     (1U << OPTPROC_NO_REQ_OPT_ID)
-#define OPTPROC_NUM_OPT        (1U << OPTPROC_NUM_OPT_ID)
-#define OPTPROC_INITDONE       (1U << OPTPROC_INITDONE_ID)
-#define OPTPROC_NEGATIONS      (1U << OPTPROC_NEGATIONS_ID)
-#define OPTPROC_ENVIRON        (1U << OPTPROC_ENVIRON_ID)
-#define OPTPROC_NO_ARGS        (1U << OPTPROC_NO_ARGS_ID)
-#define OPTPROC_ARGS_REQ       (1U << OPTPROC_ARGS_REQ_ID)
-#define OPTPROC_REORDER        (1U << OPTPROC_REORDER_ID)
-#define OPTPROC_GNUUSAGE       (1U << OPTPROC_GNUUSAGE_ID)
-#define OPTPROC_TRANSLATE      (1U << OPTPROC_TRANSLATE_ID)
-#define OPTPROC_MISUSE         (1U << OPTPROC_MISUSE_ID)
-#define OPTPROC_IMMEDIATE      (1U << OPTPROC_IMMEDIATE_ID)
-#define OPTPROC_NXLAT_OPT_CFG  (1U << OPTPROC_NXLAT_OPT_CFG_ID)
-#define OPTPROC_NXLAT_OPT      (1U << OPTPROC_NXLAT_OPT_ID)
-#define OPTPROC_VENDOR_OPT     (1U << OPTPROC_VENDOR_OPT_ID)
-#define OPTPROC_PRESETTING     (1U << OPTPROC_PRESETTING_ID)
-#define OPTPROC_STATE_MASK     0x000FFFFFU
-
-#define OPTPROC_NO_XLAT_MASK   ( \
-        OPTPROC_NXLAT_OPT |     OPTPROC_NXLAT_OPT_CFG \
-        /* 0x00030000U */ )
+
+/** integral type for holding proc_state masks */
+typedef uint32_t proc_state_mask_t;
+
+/** bits defined for proc_state_mask_t */
+/** proc_state_mask_t - Process long style options */
+#define OPTPROC_LONGOPT       0x000001U
+/** proc_state_mask_t - Process short style "flags" */
+#define OPTPROC_SHORTOPT      0x000002U
+/** proc_state_mask_t - Stop on argument errors */
+#define OPTPROC_ERRSTOP       0x000004U
+/** proc_state_mask_t - Current option is disabled */
+#define OPTPROC_DISABLEDOPT   0x000008U
+/** proc_state_mask_t - no options are required */
+#define OPTPROC_NO_REQ_OPT    0x000010U
+/** proc_state_mask_t - there is a number option */
+#define OPTPROC_NUM_OPT       0x000020U
+/** proc_state_mask_t - have inits been done? */
+#define OPTPROC_INITDONE      0x000040U
+/** proc_state_mask_t - any negation options? */
+#define OPTPROC_NEGATIONS     0x000080U
+/** proc_state_mask_t - check environment? */
+#define OPTPROC_ENVIRON       0x000100U
+/** proc_state_mask_t - Disallow remaining arguments */
+#define OPTPROC_NO_ARGS       0x000200U
+/** proc_state_mask_t - Require args after options */
+#define OPTPROC_ARGS_REQ      0x000400U
+/** proc_state_mask_t - reorder operands after opts */
+#define OPTPROC_REORDER       0x000800U
+/** proc_state_mask_t - emit usage in GNU style */
+#define OPTPROC_GNUUSAGE      0x001000U
+/** proc_state_mask_t - Translate strings in tOptions */
+#define OPTPROC_TRANSLATE     0x002000U
+/** proc_state_mask_t - no usage on usage error */
+#define OPTPROC_MISUSE        0x004000U
+/** proc_state_mask_t - immediate options active */
+#define OPTPROC_IMMEDIATE     0x008000U
+/** proc_state_mask_t - suppress for config only */
+#define OPTPROC_NXLAT_OPT_CFG 0x010000U
+/** proc_state_mask_t - suppress xlation always */
+#define OPTPROC_NXLAT_OPT     0x020000U
+/** proc_state_mask_t - vendor options active */
+#define OPTPROC_VENDOR_OPT    0x040000U
+/** proc_state_mask_t - opt processing in preset state */
+#define OPTPROC_PRESETTING    0x080000U
+/** proc_state_mask_t - Ignore pzFullUsage, compute usage text */
+#define OPTPROC_COMPUTE       0x100000U
+
+/** bits in NO_XLAT mask:
+ *  nxlat_opt_cfg nxlat_opt */
+#define OPTPROC_NO_XLAT_MASK  0x030000U
+
+/** all bits in proc_state_mask_t masks */
+#define OPTPROC_MASK_ALL      0x1FFFFFU
+
+/** no bits in proc_state_mask_t */
+#define OPTPROC_NONE          0x000000U
+/** @} */
 
 #define STMTS(s)  do { s; } while (false)
 
-/*
- *  The following must be #defined instead of typedef-ed
- *  because "static const" cannot both be applied to a type,
- *  tho each individually can...so they all are
+/**
+ *  Abbreviation for const memory character.
  */
-#define tSCC        static char const
 #define tCC         char const
-#define tAoSC       static char
-#define tAoUC       unsigned char
-#define tAoUI       unsigned int
-#define tAoUL       unsigned long
-#define tAoUS       unsigned short
 
-/*
- *  It is so disgusting that there must be so many ways
- *  of specifying TRUE and FALSE.
+/**
+ * Magical values for the program's option pointer
+ * @{
  */
-typedef enum { AG_FALSE = 0, AG_TRUE } ag_bool;
+typedef enum {
+    OP_VAL_EMIT_USAGE       = 1,  ///< request for usage
+    OP_VAL_EMIT_SHELL       = 2,  ///< emit value for Bourne shell evaluation
+    OP_VAL_RETURN_VALNAME   = 3,  ///< return the value as a string
+    OP_VAL_EMIT_LIMIT       = 15  ///< limit for magic values
+} opt_proc_vals_t;
 
-/*
- *  Define a structure that describes each option and
- *  a pointer to the procedure that handles it.
- *  The argument is the count of this flag previously seen.
+/// \a OPT_VAL_EMIT_USAGE cast as a pointer
+#define OPTPROC_EMIT_USAGE      ((tOptions *)OP_VAL_EMIT_USAGE)
+
+/// \a OPT_VAL_EMIT_SHELL cast as a pointer
+#define OPTPROC_EMIT_SHELL      ((tOptions *)OP_VAL_EMIT_SHELL)
+
+/// \a OPT_VAL_RETURN_VALNAME cast as a pointer
+#define OPTPROC_RETURN_VALNAME  ((tOptions *)OP_VAL_RETURN_VALNAME)
+
+/// \a OPT_VAL_EMIT_LIMIT cast as a pointer
+#define OPTPROC_EMIT_LIMIT      ((tOptions *)OP_VAL_EMIT_LIMIT)
+/** @} */
+
+/** group option processing procedure types
+ * @{
  */
+/** forward declaration for tOptDesc */
+typedef struct opt_desc tOptDesc;
+/** forward declaration for tOptiond */
 typedef struct options  tOptions;
-typedef struct optDesc  tOptDesc;
-typedef struct optNames tOptNames;
-#define OPTPROC_EMIT_USAGE      ((tOptions *)0x01UL)
-#define OPTPROC_EMIT_SHELL      ((tOptions *)0x02UL)
-#define OPTPROC_RETURN_VALNAME  ((tOptions *)0x03UL)
-#define OPTPROC_EMIT_LIMIT      ((tOptions *)0x0FUL)
 
-/*
+/**
  *  The option procedures do the special processing for each
  *  option flag that needs it.
  */
-typedef void (tOptProc)(tOptions*  pOpts, tOptDesc* pOptDesc);
-typedef tOptProc*  tpOptProc;
+typedef void (tOptProc)(tOptions * pOpts, tOptDesc * pOptDesc);
 
-/*
+/**
+ * a pointer to an option processing procedure
+ */
+typedef tOptProc * tpOptProc;
+
+/**
  *  The usage procedure will never return.  It calls "exit(2)"
  *  with the "exitCode" argument passed to it.
  */
 // coverity[+kill]
 typedef void (tUsageProc)(tOptions* pOpts, int exitCode);
+
+/**
+ * a pointer to a procedure that prints usage and exits.
+ */
 typedef tUsageProc * tpUsageProc;
+/** @} */
 
-/*
+/**
  *  Special definitions.  "NOLIMIT" is the 'max' value to use when
  *  a flag may appear multiple times without limit.  "NO_EQUIVALENT"
  *  is an illegal value for 'optIndex' (option description index).
+ * @{
  */
-#define NOLIMIT          USHRT_MAX
-#define OPTION_LIMIT     SHRT_MAX
+#define NOLIMIT          USHRT_MAX  ///< no occurrance count limit
+#define OPTION_LIMIT     SHRT_MAX   ///< maximum number of option types
+/// option index to indicate no equivalance or alias
 #define NO_EQUIVALENT    (OPTION_LIMIT+1)
+/** @} */
 
+/**
+ * Option argument value.  Which is valid is determined by:
+ * (fOptState & OPTST_ARG_TYPE_MASK) >> OPTST_ARG_TYPE_SHIFT
+ * which will yield one of the teOptArgType values.
+ */
 typedef union {
-    char const *    argString;
-    uintptr_t       argEnum;
-    uintptr_t       argIntptr;
-    long            argInt;
-    unsigned long   argUint;
-    unsigned int    argBool;
-    FILE *          argFp;
-    int             argFd;
-} optArgBucket_t;
-
-#define             pzLastArg   optArg.argString
+    char const *    argString;  ///< as a string
+    uintptr_t       argEnum;    ///< as an enumeration value
+    uintptr_t       argIntptr;  ///< as an integer big enough to hold pointer
+    long            argInt;     ///< as a long integer
+    unsigned long   argUint;    ///< as an unsigned long ingeger
+    unsigned int    argBool;    ///< as a boolean value
+    FILE *          argFp;      ///< as a FILE * pointer
+    int             argFd;      ///< as a file descriptor (int)
+} opt_arg_union_t;
+
+/// Compatibility define: \a pzLastArg is now \a optArg.argString
+#define             pzLastArg       optArg.argString
+/// The old amorphous argument bucket is now the opt_arg_union_t union.
+#define             optArgBucket_t  opt_arg_union_t
 
-/*
+/**
+ * Enumeration of AutoOpts defined options.  The enumeration is used in
+ * marking each option that is defined by AutoOpts so libopts can find
+ * the correct descriptor.  This renders \a option_spec_idx_t redundant.
+ */
+typedef enum {
+    AOUSE_USER_DEFINED = 0,     ///< user specified option
+    AOUSE_RESET_OPTION,         ///< reset option state option
+    AOUSE_VERSION,              ///< request version
+    AOUSE_HELP,                 ///< request usage help
+    AOUSE_MORE_HELP,            ///< request paged usage
+    AOUSE_USAGE,                ///< request short usage
+    AOUSE_SAVE_OPTS,            ///< save option state
+    AOUSE_LOAD_OPTS,            ///< load options from file
+    AOUSE_VENDOR_OPT            ///< specify a vendor option
+} opt_usage_t;
+
+/**
  *  Descriptor structure for each option.
  *  Only the fields marked "PUBLIC" are for public use.
  */
-struct optDesc {
-    tAoUS const     optIndex;         /* PUBLIC */
-    tAoUS const     optValue;         /* PUBLIC */
-    tAoUS           optActualIndex;   /* PUBLIC */
-    tAoUS           optActualValue;   /* PUBLIC */
-
-    tAoUS const     optEquivIndex;    /* PUBLIC */
-    tAoUS const     optMinCt;
-    tAoUS const     optMaxCt;
-    tAoUS           optOccCt;         /* PUBLIC */
-
-    tAoUI           fOptState;        /* PUBLIC */
-    tAoUI           reserved;
-    optArgBucket_t  optArg;           /* PUBLIC */
-    void*           optCookie;        /* PUBLIC */
-
-    int const * const   pOptMust;
-    int const * const   pOptCant;
-    tpOptProc   const   pOptProc;
-    char const* const   pzText;
-
-    char const* const   pz_NAME;
-    char const* const   pz_Name;
-    char const* const   pz_DisableName;
-    char const* const   pz_DisablePfx;
+struct opt_desc {
+    /// Public, the index of this descriptor
+    uint16_t const      optIndex;
+    /// Public, the flag character (value)
+    uint16_t const      optValue;
+    /// Public, the index of the option used to activate option
+    uint16_t            optActualIndex;
+    /// Public, the flag character of the activating option
+    uint16_t            optActualValue;
+
+    /// Public, the index of the equivalenced-to option.
+    /// This is NO_EQUIVALENT unless activated.
+    uint16_t const      optEquivIndex;
+    /// Private, the minimum occurrance count
+    uint16_t const      optMinCt;
+    /// Private, the maximum occurrance count (NOLIMIT, if unlimited)
+    uint16_t const      optMaxCt;
+    /// Public, the actual occurrance count
+    uint16_t            optOccCt;
+
+    /// Public, the option processing state
+    opt_state_mask_t    fOptState;
+    /// Private, how the option is used (opt_usage_t)
+    uint32_t            optUsage;
+    /// Public, The current option argument value
+    opt_arg_union_t     optArg;
+    /// Public, data that is actually private to the code that handles
+    /// this particular option.  It is public IFF you have your own
+    /// handling function.
+    void *              optCookie;
+
+    /// Private, a list of options that must be specified when this option
+    /// has been specified
+    int const  * const  pOptMust;
+
+    /// Private, a list of options that cannot be specified when this option
+    /// has been specified
+    int const  * const  pOptCant;
+
+    /// Private, the function to call for handling this option
+    tpOptProc    const  pOptProc;
+
+    /// Private, usage information about this option
+    char const * const  pzText;
+
+    /// Public, the UPPER CASE, shell variable name syntax name of the option
+    char const * const  pz_NAME;
+
+    /// the unmodified name of the option
+    char const * const  pz_Name;
+
+    /// the option name to use to disable the option.  Long options names
+    /// must be active.
+    char const * const  pz_DisableName;
+
+    /// the special prefix that makes the normal option name become the
+    /// disablement name.
+    char const * const  pz_DisablePfx;
 };
 
-/*
+/**
  *  Some options need special processing, so we store their
- *  indexes in a known place:
+ *  indexes in a known place.
  */
-typedef struct optSpecIndex tOptSpecIndex;
-struct optSpecIndex {
-    const tAoUS         more_help;
-    const tAoUS         save_opts;
-    const tAoUS         number_option;
-    const tAoUS         default_opt;
-};
+typedef struct {
+    uint16_t const  more_help;      ///< passes help text through pager
+    uint16_t const  save_opts;      ///< stores option state to a file
+    uint16_t const  number_option;  ///< the option "name" is an integer
+    /// all arguments are options, this is the default option that must
+    /// take an argument.  That argument is the unrecognized option.
+    uint16_t const  default_opt;
+} option_spec_idx_t;
 
-/*
+/**
  *  The procedure generated for translating option text
  */
 typedef void (tOptionXlateProc)(void);
 
-/*
+/**
  * Everything marked "PUBLIC" is also marked "const".  Public access is not
  * a license to modify.  Other fields are used and modified by the library.
  * They are also subject to change without any notice.
  * Do not even look at these outside of libopts.
  */
 struct options {
-    int const           structVersion;
-    unsigned int        origArgCt;
-    char**              origArgVect;
-    unsigned int        fOptSet;
-    unsigned int        curOptIdx;
-    char*               pzCurOpt;
-
-    char const* const   pzProgPath;         /* PUBLIC */
-    char const* const   pzProgName;         /* PUBLIC */
-    char const* const   pzPROGNAME;         /* PUBLIC */
-    char const* const   pzRcName;           /* PUBLIC */
-    char const* const   pzCopyright;        /* PUBLIC */
-    char const* const   pzCopyNotice;       /* PUBLIC */
-    char const* const   pzFullVersion;      /* PUBLIC */
-    char const* const* const papzHomeList;
-    char const* const   pzUsageTitle;
-    char const* const   pzExplain;
-    char const* const   pzDetail;
-    tOptDesc*   const   pOptDesc;           /* PUBLIC */
-    char const* const   pzBugAddr;          /* PUBLIC */
-
-    void*               pExtensions;
-    void*               pSavedState;
-
+    int const                   structVersion; ///< The version of this struct
+    unsigned int                origArgCt;     ///< program argument count
+    char **                     origArgVect;   ///< program argument vector
+    proc_state_mask_t           fOptSet;       ///< option proc. state flags
+    unsigned int                curOptIdx;     ///< current option index
+    char *                      pzCurOpt;      ///< current option text
+
+    /// Public, the full path of the program
+    char const * const          pzProgPath;
+    /// Public, the name of the executable, without any path
+    char const * const          pzProgName;
+    /// Public, the upper-cased, shell variable syntax-ed program name
+    char const * const          pzPROGNAME;
+    /// the name of the "rc file" (configuration file)
+    char const * const          pzRcName;
+    /// the copyright text
+    char const * const          pzCopyright;
+    /// the full copyright notice
+    char const * const          pzCopyNotice;
+    /// a string with the program name, project name and version
+    char const * const          pzFullVersion;
+    /// a list of pointers to directories to search for the config file
+    char const * const *        const papzHomeList;
+    /// the title line for usage
+    char const * const          pzUsageTitle;
+    /// some added explanation for what this program is trying to do
+    char const * const          pzExplain;
+    /// a detailed explanation of the program's purpose, for use when
+    /// full help has been requested
+    char const * const          pzDetail;
+    /// The public array of option descriptors
+    tOptDesc   * const          pOptDesc;
+    /// the email address for reporting bugs
+    char const * const          pzBugAddr;
+
+    /// Reserved for future use
+    void *                      pExtensions;
+    /// A copy of the option state when optionSaveState was called.
+    void *                      pSavedState;
+
+    /// The procedure to call to print usage text
     // coverity[+kill]
-    tpUsageProc         pUsageProc;
-    tOptionXlateProc*   pTransProc;
-
-    tOptSpecIndex       specOptIdx;
-    int const           optCt;
-    int const           presetOptCt;
-    char const *        pzFullUsage;
-    char const *        pzShortUsage;
-    /* PUBLIC: */
-    optArgBucket_t const * const originalOptArgArray;
-    void * const * const originalOptArgCookie;
-    char const * const  pzPkgDataDir;
-    char const * const  pzPackager;
+    tpUsageProc                 pUsageProc;
+    /// The procedure to call to translate translatable option messages
+    tOptionXlateProc *          pTransProc;
+
+    /// Special option indexes.
+    option_spec_idx_t           specOptIdx;
+    /// the total number of options for the program
+    int const                   optCt;
+    /// The number of "presettable" options, though some may be marked
+    /// "no-preset".  Includes all user specified options, plus a few
+    /// that are specified by AutoOpts.
+    int const                   presetOptCt;
+    /// user specified full usage text
+    char const *                pzFullUsage;
+    /// user specifed short usage (usage error triggered) message
+    char const *                pzShortUsage;
+    /// The option argument settings active when optionSaveState was called
+    opt_arg_union_t const * const originalOptArgArray;
+    /// any saved cookie value
+    void * const * const        originalOptArgCookie;
+    /// the package data directory (e.g. global configuration files)
+    char const * const          pzPkgDataDir;
+    /// email address of the project packager
+    char const * const          pzPackager;
 };
 
 /*
  *  Versions where in various fields first appear:
  *  ($AO_CURRENT * 4096 + $AO_REVISION, but $AO_REVISION must be zero)
  */
-#define originalOptArgArray_STRUCT_VERSION  131072 /* AO_CURRENT = 32 */
+/**
+ * The version that first stored the original argument vector
+ */
+#define originalOptArgArray_STRUCT_VERSION  0x20000 /* AO_CURRENT = 32 */
 #define HAS_originalOptArgArray(_opt) \
     ((_opt)->structVersion >= originalOptArgArray_STRUCT_VERSION)
 
-#define pzPkgDataDir_STRUCT_VERSION  139264 /* AO_CURRENT = 34 */
+/**
+ * The version that first stored the package data directory
+ */
+#define pzPkgDataDir_STRUCT_VERSION  0x22000 /* AO_CURRENT = 34 */
 #define HAS_pzPkgDataDir(_opt) \
     ((_opt)->structVersion >= pzPkgDataDir_STRUCT_VERSION)
 
-/*
+/**
+ * The version that first stored the option usage in each option descriptor
+ */
+#define opt_usage_t_STRUCT_VERSION  0x26000 /* AO_CURRENT = 38 */
+#define HAS_opt_usage_t(_opt) \
+    ((_opt)->structVersion >= opt_usage_t_STRUCT_VERSION)
+
+/**
  *  "token list" structure returned by "string_tokenize()"
  */
 typedef struct {
-    unsigned long   tkn_ct;
-    unsigned char*  tkn_list[1];
+    unsigned long   tkn_ct;      ///< number of tokens found
+    unsigned char*  tkn_list[1]; ///< array of pointers to tokens
 } token_list_t;
 
 /*
@@ -531,16 +712,19 @@ typedef struct {
  *  is not zero, then there *may* not be a terminating NUL.
  */
 typedef struct {
-    void *      txt_data;      /*@< text file data   */
-    size_t      txt_size;      /*@< actual file size */
-    size_t      txt_full_size; /*@< mmaped mem size  */
-    int         txt_fd;        /*@< file descriptor  */
-    int         txt_zero_fd;   /*@< fd for /dev/zero */
-    int         txt_errno;     /*@< warning code     */
-    int         txt_prot;      /*@< "prot" flags     */
-    int         txt_flags;     /*@< mapping type     */
+    void *      txt_data;      ///< text file data
+    size_t      txt_size;      ///< actual file size
+    size_t      txt_full_size; ///< mmaped mem size
+    int         txt_fd;        ///< file descriptor
+    int         txt_zero_fd;   ///< fd for /dev/zero
+    int         txt_errno;     ///< warning code
+    int         txt_prot;      ///< "prot" flags
+    int         txt_flags;     ///< mapping type
 } tmap_info_t;
 
+/**
+ * mmap result wrapper that yields "true" when mmap has failed.
+ */
 #define TEXT_MMAP_FAILED_ADDR(a)  ((void*)(a) ==  (void*)MAP_FAILED)
 
 #ifdef  __cplusplus
@@ -551,29 +735,23 @@ CPLUSPLUS_OPENER
 #define CPLUSPLUS_CLOSER
 #endif
 
-/*
+/**
  *  The following routines may be coded into AutoOpts client code:
  */
 
-/* From: tokenize.c line 164
- *
+/**
  * ao_string_tokenize - tokenize an input string
  *
- * Arguments:
- *   string       string to be tokenized
- *
- * Returns: token_list_t* - pointer to a structure that lists each token
- *
  *  This function will convert one input string into a list of strings.
  *  The list of strings is derived by separating the input based on
  *  white space separation.  However, if the input contains either single
  *  or double quote characters, then the text after that character up to
  *  a matching quote will become the string in the list.
- *  
+ *
  *  The returned pointer should be deallocated with @code{free(3C)} when
  *  are done using the data.  The data are placed in a single block of
  *  allocated memory.  Do not deallocate individual token/strings.
- *  
+ *
  *  The structure pointed to will contain at least these two fields:
  *  @table @samp
  *  @item tkn_ct
@@ -582,7 +760,7 @@ CPLUSPLUS_OPENER
  *  An array of @code{tkn_ct + 1} pointers to substring tokens, with
  *  the last pointer set to NULL.
  *  @end table
- *  
+ *
  *  There are two types of quoted strings: single quoted (@code{'}) and
  *  double quoted (@code{"}).  Singly quoted strings are fairly raw in that
  *  escape characters (@code{\\}) are simply another character, except when
@@ -592,22 +770,20 @@ CPLUSPLUS_OPENER
  *  @code{'}   incorporates the single quote into the string
  *  @code{\n}  suppresses both the backslash and newline character
  *  @end example
- *  
+ *
  *  Double quote strings are formed according to the rules of string
  *  constants in ANSI-C programs.
+ *
+ * @param string       string to be tokenized
+ *
+ * @return token_list_t* - pointer to a structure that lists each token
  */
 extern token_list_t* ao_string_tokenize(char const*);
 
 
-/* From: configfile.c line 77
- *
+/**
  * configFileLoad - parse a configuration file
  *
- * Arguments:
- *   pzFile       the file to load
- *
- * Returns: const tOptionValue* - An allocated, compound value structure
- *
  *  This routine will load a named configuration file and parse the
  *  text as a hierarchically valued option.  The option descriptor
  *  created from an option definition file is not used via this interface.
@@ -615,20 +791,17 @@ extern token_list_t* ao_string_tokenize(char const*);
  *  type "@code{OPARG_TYPE_HIERARCHY}".  It may be used in calls to
  *  @code{optionGetValue()}, @code{optionNextValue()} and
  *  @code{optionUnloadNested()}.
+ *
+ * @param fname        the file to load
+ *
+ * @return const tOptionValue* - An allocated, compound value structure
  */
 extern const tOptionValue* configFileLoad(char const*);
 
 
-/* From: configfile.c line 1066
- *
+/**
  * optionFileLoad - Load the locatable config files, in order
  *
- * Arguments:
- *   pOpts        program options descriptor
- *   pzProg       program name
- *
- * Returns: int - 0 -> SUCCESS, -1 -> FAILURE
- *
  *  This function looks in all the specified directories for a configuration
  *  file ("rc" file or "ini" file) and processes any found twice.  The first
  *  time through, they are processed in reverse order (last file first).  At
@@ -636,164 +809,148 @@ extern const tOptionValue* configFileLoad(char const*);
  *  example, if the last named file specifies not processing any more
  *  configuration files, then no more configuration files will be processed.
  *  Such an option in the @strong{first} named directory will have no effect.
- *  
+ *
  *  Once the immediate action configurables have been handled, then the
  *  directories are handled in normal, forward order.  In that way, later
  *  config files can override the settings of earlier config files.
- *  
+ *
  *  See the AutoOpts documentation for a thorough discussion of the
  *  config file format.
- *  
+ *
  *  Configuration files not found or not decipherable are simply ignored.
+ *
+ * @param opts         program options descriptor
+ * @param prog         program name
+ *
+ * @return int - 0 -> SUCCESS, -1 -> FAILURE
  */
 extern int optionFileLoad(tOptions*, char const*);
 
 
-/* From: configfile.c line 211
- *
+/**
  * optionFindNextValue - find a hierarcicaly valued option instance
  *
- * Arguments:
- *   pOptDesc     an option with a nested arg type
- *   pPrevVal     the last entry
- *   name         name of value to find
- *   value        the matching value
- *
- * Returns: const tOptionValue* - a compound value structure
- *
  *  This routine will find the next entry in a nested value option or
  *  configurable.  It will search through the list and return the next entry
  *  that matches the criteria.
+ *
+ * @param odesc        an option with a nested arg type
+ * @param pPrevVal     the last entry
+ * @param name         name of value to find
+ * @param value        the matching value
+ *
+ * @return const tOptionValue* - a compound value structure
  */
 extern const tOptionValue* optionFindNextValue(const tOptDesc*, const tOptionValue*, char const*, char const*);
 
 
-/* From: configfile.c line 137
- *
+/**
  * optionFindValue - find a hierarcicaly valued option instance
  *
- * Arguments:
- *   pOptDesc     an option with a nested arg type
- *   name         name of value to find
- *   value        the matching value
- *
- * Returns: const tOptionValue* - a compound value structure
- *
  *  This routine will find an entry in a nested value option or configurable.
  *  It will search through the list and return a matching entry.
+ *
+ * @param odesc        an option with a nested arg type
+ * @param name         name of value to find
+ * @param val          the matching value
+ *
+ * @return const tOptionValue* - a compound value structure
  */
 extern const tOptionValue* optionFindValue(const tOptDesc*, char const*, char const*);
 
 
-/* From: restore.c line 166
- *
+/**
  * optionFree - free allocated option processing memory
  *
- * Arguments:
- *   pOpts        program options descriptor
- *
  *  AutoOpts sometimes allocates memory and puts pointers to it in the
  *  option state structures.  This routine deallocates all such memory.
+ *
+ * @param pOpts        program options descriptor
  */
 extern void optionFree(tOptions*);
 
 
-/* From: configfile.c line 280
- *
+/**
  * optionGetValue - get a specific value from a hierarcical list
  *
- * Arguments:
- *   pOptValue    a hierarchcal value
- *   valueName    name of value to get
- *
- * Returns: const tOptionValue* - a compound value structure
- *
  *  This routine will find an entry in a nested value option or configurable.
  *  If "valueName" is NULL, then the first entry is returned.  Otherwise,
  *  the first entry with a name that exactly matches the argument will be
  *  returned.  If there is no matching value, NULL is returned and errno is
  *  set to ENOENT. If the provided option value is not a hierarchical value,
  *  NULL is also returned and errno is set to EINVAL.
+ *
+ * @param pOptValue    a hierarchcal value
+ * @param valueName    name of value to get
+ *
+ * @return const tOptionValue* - a compound value structure
  */
 extern const tOptionValue* optionGetValue(const tOptionValue*, char const*);
 
 
-/* From: load.c line 475
- *
+/**
  * optionLoadLine - process a string for an option name and value
  *
- * Arguments:
- *   pOpts        program options descriptor
- *   pzLine       NUL-terminated text
- *
  *  This is a client program callable routine for setting options from, for
  *  example, the contents of a file that they read in.  Only one option may
  *  appear in the text.  It will be treated as a normal (non-preset) option.
- *  
+ *
  *  When passed a pointer to the option struct and a string, it will find
  *  the option named by the first token on the string and set the option
  *  argument to the remainder of the string.  The caller must NUL terminate
- *  the string.  Any embedded new lines will be included in the option
+ *  the string.  The caller need not skip over any introductory hyphens.
+ *  Any embedded new lines will be included in the option
  *  argument.  If the input looks like one or more quoted strings, then the
  *  input will be "cooked".  The "cooking" is identical to the string
  *  formation used in AutoGen definition files (@pxref{basic expression}),
  *  except that you may not use backquotes.
+ *
+ * @param opts         program options descriptor
+ * @param line         NUL-terminated text
  */
 extern void optionLoadLine(tOptions*, char const*);
 
 
-/* From: configfile.c line 340
- *
+/**
  * optionNextValue - get the next value from a hierarchical list
  *
- * Arguments:
- *   pOptValue    a hierarchcal list value
- *   pOldValue    a value from this list
- *
- * Returns: const tOptionValue* - a compound value structure
- *
  *  This routine will return the next entry after the entry passed in.  At the
  *  end of the list, NULL will be returned.  If the entry is not found on the
  *  list, NULL will be returned and "@var{errno}" will be set to EINVAL.
  *  The "@var{pOldValue}" must have been gotten from a prior call to this
  *  routine or to "@code{opitonGetValue()}".
+ *
+ * @param pOptValue    a hierarchcal list value
+ * @param pOldValue    a value from this list
+ *
+ * @return const tOptionValue* - a compound value structure
  */
 extern const tOptionValue* optionNextValue(const tOptionValue*, const tOptionValue*);
 
 
-/* From: usage.c line 201
- *
+/**
  * optionOnlyUsage - Print usage text for just the options
  *
- * Arguments:
- *   pOpts        program options descriptor
- *   ex_code      exit code for calling exit(3)
- *
  *  This routine will print only the usage for each option.
  *  This function may be used when the emitted usage must incorporate
  *  information not available to AutoOpts.
+ *
+ * @param pOpts        program options descriptor
+ * @param ex_code      exit code for calling exit(3)
  */
 extern void optionOnlyUsage(tOptions*, int);
 
 
-/* From: autoopts.c line 607
- *
+/**
  * optionProcess - this is the main option processing routine
  *
- * Arguments:
- *   pOpts        program options descriptor
- *   argc         program arg count
- *   argv         program arg vector
- *
- * Returns: int - the count of the arguments processed
- *
  *  This is the main entry point for processing options.  It is intended
  *  that this procedure be called once at the beginning of the execution of
  *  a program.  Depending on options selected earlier, it is sometimes
  *  necessary to stop and restart option processing, or to select completely
  *  different sets of options.  This can be done easily, but you generally
  *  do not want to do this.
- *  
+ *
  *  The number of arguments processed always includes the program name.
  *  If one of the arguments is "--", then it is counted and the processing
  *  stops.  If an error was encountered and errors are to be tolerated, then
@@ -802,41 +959,41 @@ extern void optionOnlyUsage(tOptions*, int);
  *  @emph{not} be counted among the processed arguments.  A hyphen by itself
  *  is treated as an operand.  Encountering an operand stops option
  *  processing.
+ *
+ * @param opts         program options descriptor
+ * @param a_ct         program arg count
+ * @param a_v          program arg vector
+ *
+ * @return int - the count of the arguments processed
  */
 extern int optionProcess(tOptions*, int, char**);
 
 
-/* From: restore.c line 123
- *
+/**
  * optionRestore - restore option state from memory copy
  *
- * Arguments:
- *   pOpts        program options descriptor
- *
  *  Copy back the option state from saved memory.
  *  The allocated memory is left intact, so this routine can be
  *  called repeatedly without having to call optionSaveState again.
  *  If you are restoring a state that was saved before the first call
  *  to optionProcess(3AO), then you may change the contents of the
  *  argc/argv parameters to optionProcess.
+ *
+ * @param pOpts        program options descriptor
  */
 extern void optionRestore(tOptions*);
 
 
-/* From: save.c line 648
- *
+/**
  * optionSaveFile - saves the option state to a file
  *
- * Arguments:
- *   pOpts        program options descriptor
- *
  *  This routine will save the state of option processing to a file.  The name
  *  of that file can be specified with the argument to the @code{--save-opts}
  *  option, or by appending the @code{rcfile} attribute to the last
  *  @code{homerc} attribute.  If no @code{rcfile} attribute was specified, it
  *  will default to @code{.@i{programname}rc}.  If you wish to specify another
  *  file, you should invoke the @code{SET_OPT_SAVE_OPTS(@i{filename})} macro.
- *  
+ *
  *  The recommend usage is as follows:
  *  @example
  *  optionProcess(&progOptions, argc, argv);
@@ -844,145 +1001,88 @@ extern void optionRestore(tOptions*);
  *  SET_OPT_SAVE_OPTS("myfilename");
  *  optionSaveFile(&progOptions);
  *  @end example
+ *
+ * @param opts         program options descriptor
  */
 extern void optionSaveFile(tOptions*);
 
 
-/* From: restore.c line 71
- *
+/**
  * optionSaveState - saves the option state to memory
  *
- * Arguments:
- *   pOpts        program options descriptor
- *
  *  This routine will allocate enough memory to save the current option
  *  processing state.  If this routine has been called before, that memory
  *  will be reused.  You may only save one copy of the option state.  This
  *  routine may be called before optionProcess(3AO).  If you do call it
  *  before the first call to optionProcess, then you may also change the
  *  contents of argc/argv after you call optionRestore(3AO)
- *  
+ *
  *  In fact, more strongly put: it is safest to only use this function
  *  before having processed any options.  In particular, the saving and
  *  restoring of stacked string arguments and hierarchical values is
  *  disabled.  The values are not saved.
+ *
+ * @param pOpts        program options descriptor
  */
 extern void optionSaveState(tOptions*);
 
 
-/* From: nested.c line 563
- *
+/**
  * optionUnloadNested - Deallocate the memory for a nested value
  *
- * Arguments:
- *   pOptVal      the hierarchical value
- *
  *  A nested value needs to be deallocated.  The pointer passed in should
  *  have been gotten from a call to @code{configFileLoad()} (See
  *  @pxref{libopts-configFileLoad}).
+ *
+ * @param pOptVal      the hierarchical value
  */
 extern void optionUnloadNested(tOptionValue const *);
 
 
-/* From: version.c line 31
- *
+/**
  * optionVersion - return the compiled AutoOpts version number
  *
- * Returns: char const* - the version string in constant memory
- *
  *  Returns the full version string compiled into the library.
  *  The returned string cannot be modified.
- */
-extern char const* optionVersion(void);
-
-
-/* From: ../compat/pathfind.c line 29
- *
- * pathfind - fild a file in a list of directories
- *
- * Arguments:
- *   path         colon separated list of search directories
- *   file         the name of the file to look for
- *   mode         the mode bits that must be set to match
- *
- * Returns: char* - the path to the located file
  *
- * the pathfind function is available only if HAVE_PATHFIND is not defined
- *
- *  pathfind looks for a a file with name "FILE" and "MODE" access
- *  along colon delimited "PATH", and returns the full pathname as a
- *  string, or NULL if not found.  If "FILE" contains a slash, then
- *  it is treated as a relative or absolute path and "PATH" is ignored.
- *  
- *  @strong{NOTE}: this function is compiled into @file{libopts} only if
- *  it is not natively supplied.
- *  
- *  The "MODE" argument is a string of option letters chosen from the
- *  list below:
- *  @example
- *  Letter    Meaning
- *  r         readable
- *  w         writable
- *  x         executable
- *  f         normal file       (NOT IMPLEMENTED)
- *  b         block special     (NOT IMPLEMENTED)
- *  c         character special (NOT IMPLEMENTED)
- *  d         directory         (NOT IMPLEMENTED)
- *  p         FIFO (pipe)       (NOT IMPLEMENTED)
- *  u         set user ID bit   (NOT IMPLEMENTED)
- *  g         set group ID bit  (NOT IMPLEMENTED)
- *  k         sticky bit        (NOT IMPLEMENTED)
- *  s         size nonzero      (NOT IMPLEMENTED)
- *  @end example
+ * @return char const* - the version string in constant memory
  */
-#ifndef HAVE_PATHFIND
-extern char* pathfind(char const*, char const*, char const*);
-#endif /* HAVE_PATHFIND */
+extern char const* optionVersion(void);
 
 
-/* From: streqvcmp.c line 209
- *
+/**
  * strequate - map a list of characters to the same value
  *
- * Arguments:
- *   ch_list      characters to equivalence
- *
  *  Each character in the input string get mapped to the first character
  *  in the string.
  *  This function name is mapped to option_strequate so as to not conflict
  *  with the POSIX name space.
+ *
+ * @param ch_list      characters to equivalence
  */
 extern void strequate(char const*);
 
 
-/* From: streqvcmp.c line 119
- *
+/**
  * streqvcmp - compare two strings with an equivalence mapping
  *
- * Arguments:
- *   str1         first string
- *   str2         second string
- *
- * Returns: int - the difference between two differing characters
- *
  *  Using a character mapping, two strings are compared for "equivalence".
  *  Each input character is mapped to a comparison character and the
  *  mapped-to characters are compared for the two NUL terminated input strings.
  *  This function name is mapped to option_streqvcmp so as to not conflict
  *  with the POSIX name space.
+ *
+ * @param str1         first string
+ * @param str2         second string
+ *
+ * @return int - the difference between two differing characters
  */
 extern int streqvcmp(char const*, char const*);
 
 
-/* From: streqvcmp.c line 156
- *
+/**
  * streqvmap - Set the character mappings for the streqv functions
  *
- * Arguments:
- *   From         Input character
- *   To           Mapped-to character
- *   ct           compare length
- *
  *  Set the character mapping.  If the count (@code{ct}) is set to zero, then
  *  the map is cleared by setting all entries in the map to their index
  *  value.  Otherwise, the "@code{From}" character is mapped to the "@code{To}"
@@ -995,48 +1095,48 @@ extern int streqvcmp(char const*, char const*);
  *  @noindent
  *  will alter the mapping so that all English lower case letters
  *  will map to upper case.
- *  
+ *
  *  This function name is mapped to option_streqvmap so as to not conflict
  *  with the POSIX name space.
+ *
+ * @param from         Input character
+ * @param to           Mapped-to character
+ * @param ct           compare length
  */
 extern void streqvmap(char, char, int);
 
 
-/* From: streqvcmp.c line 78
- *
+/**
  * strneqvcmp - compare two strings with an equivalence mapping
  *
- * Arguments:
- *   str1         first string
- *   str2         second string
- *   ct           compare length
- *
- * Returns: int - the difference between two differing characters
- *
  *  Using a character mapping, two strings are compared for "equivalence".
  *  Each input character is mapped to a comparison character and the
  *  mapped-to characters are compared for the two NUL terminated input strings.
  *  The comparison is limited to @code{ct} bytes.
  *  This function name is mapped to option_strneqvcmp so as to not conflict
  *  with the POSIX name space.
+ *
+ * @param str1         first string
+ * @param str2         second string
+ * @param ct           compare length
+ *
+ * @return int - the difference between two differing characters
  */
 extern int strneqvcmp(char const*, char const*, int);
 
 
-/* From: streqvcmp.c line 235
- *
+/**
  * strtransform - convert a string into its mapped-to value
  *
- * Arguments:
- *   dest         output string
- *   src          input string
- *
  *  Each character in the input string is mapped and the mapped-to
  *  character is put into the output.
  *  This function name is mapped to option_strtransform so as to not conflict
  *  with the POSIX name space.
- *  
+ *
  *  The source and destination may be the same.
+ *
+ * @param dest         output string
+ * @param src          input string
  */
 extern void strtransform(char*, char const*);
 
@@ -1049,7 +1149,7 @@ extern unsigned int ao_string_cook_escape_char(char const*, char*, unsigned int)
 
 extern void genshelloptUsage(tOptions*, int);
 
-extern int optionAlias(tOptions*, tOptDesc*, unsigned int);
+extern int optionAlias(tOptions *, tOptDesc *, unsigned int);
 
 extern void optionBooleanVal(tOptions*, tOptDesc*);
 
@@ -1071,10 +1171,14 @@ extern void optionPagedUsage(tOptions*, tOptDesc*);
 
 extern void optionParseShell(tOptions*);
 
+extern void optionPrintParagraphs(char const *, bool, FILE *);
+
 extern void optionPrintVersion(tOptions*, tOptDesc*);
 
 extern void optionPutShell(tOptions*);
 
+extern char const * optionQuoteString(char const *, char const *);
+
 extern void optionResetOpt(tOptions*, tOptDesc*);
 
 extern void optionSetMembers(tOptions*, tOptDesc*, char const * const *, unsigned int);
@@ -1101,7 +1205,8 @@ extern int text_munmap(tmap_info_t*);
 
 CPLUSPLUS_CLOSER
 #endif /* AUTOOPTS_OPTIONS_H_GUARD */
-/*
+/** @}
+ *
  * Local Variables:
  * c-file-style: "stroustrup"
  * indent-tabs-mode: nil
index c0df391..34a2153 100644 (file)
@@ -1,4 +1,28 @@
 
+/**
+ * \file project.h
+ *
+ *  This file is part of AutoOpts, a companion to AutoGen.
+ *  AutoOpts is free software.
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
+ *
+ *  AutoOpts is available under any one of two licenses.  The license
+ *  in use must be one of these two and the choice is under the control
+ *  of the user of the license.
+ *
+ *   The GNU Lesser General Public License, version 3 or later
+ *      See the files "COPYING.lgplv3" and "COPYING.gplv3"
+ *
+ *   The Modified Berkeley Software Distribution License
+ *      See the file "COPYING.mbsd"
+ *
+ *  These files have the following sha256 sums:
+ *
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
+ */
+
 #ifndef AUTOGEN_PROJECT_H
 #define AUTOGEN_PROJECT_H
 
@@ -48,3 +72,4 @@ typedef int tSuccess;
 #endif
 
 #endif /* AUTOGEN_PROJECT_H */
+/* end of project.h */
index 3ed7f3b..bf4bf44 100644 (file)
-/*   -*- buffer-read-only: t -*- vi: set ro:
- *  
- *  DO NOT EDIT THIS FILE   (usage-txt.h)
- *  
- *  It has been AutoGen-ed  May  6, 2012 at 04:21:00 PM by AutoGen 5.16pre36
- *  From the definitions    usage-txt.def
- *  and the template file   usage-txt.tpl
+/*  -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE   (usage-txt.h)
+ *
+ * It has been AutoGen-ed  March 31, 2013 at 10:41:28 AM by AutoGen 5.17.3
+ * From the definitions    usage-txt.def
+ * and the template file   usage-txt.tpl
+ *
+ *  This file is part of AutoOpts, a companion to AutoGen.
+ *  AutoOpts is free software.
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
+ *
+ *  AutoOpts is available under any one of two licenses.  The license
+ *  in use must be one of these two and the choice is under the control
+ *  of the user of the license.
+ *
+ *   The GNU Lesser General Public License, version 3 or later
+ *      See the files "COPYING.lgplv3" and "COPYING.gplv3"
+ *
+ *   The Modified Berkeley Software Distribution License
+ *      See the file "COPYING.mbsd"
+ *
+ *  These files have the following sha256 sums:
+ *
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
+ */
+/** @file usage-txt.h
  *
  *  This file handles all the bookkeeping required for tracking all the little
- *  tiny strings used by the AutoOpts library.  There are 145
+ *  tiny strings used by the AutoOpts library.  There are 108
  *  of them.  This is not versioned because it is entirely internal to the
  *  library and accessed by client code only in a very well-controlled way:
  *  they may substitute translated strings using a procedure that steps through
  *  all the string pointers.
- *
- *  Copyright (C) 1992-2012 Bruce Korb, all rights reserved.
- *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU Lesser General Public License, version 3 or later
- *     <http://gnu.org/licenses/lgpl.html>
- *
- *  AutoOpts is free software: you can redistribute it and/or modify it
- *  under the terms of the GNU Lesser General Public License as published
- *  by the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *  
- *  AutoOpts 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 Lesser General Public License for more details.
- *  
- *  You should have received a copy of the GNU Lesser General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.";
  */
 #ifndef AUTOOPTS_USAGE_TXT_H_GUARD
 #define AUTOOPTS_USAGE_TXT_H_GUARD 1
 
-#undef  cch_t
-#define cch_t char const
-
 /*
- *  One structure to hold all the pointers to all the stringlets.
+ *  One structure to hold all the pointers to all the translatable strings.
  */
 typedef struct {
-  int       field_ct;
-  char*     utpz_GnuBoolArg;
-  char*     utpz_GnuKeyArg;
-  char*     utpz_GnuFileArg;
-  char*     utpz_GnuKeyLArg;
-  char*     utpz_GnuTimeArg;
-  char*     utpz_GnuNumArg;
-  char*     utpz_GnuStrArg;
-  cch_t*    apz_str[ 138 ];
+  int           field_ct;
+  char *        utpz_GnuBoolArg;
+  char *        utpz_GnuKeyArg;
+  char *        utpz_GnuNumArg;
+  char *        utpz_GnuStrArg;
+  char const *  apz_str[104];
 } usage_text_t;
 
 /*
- *  Declare the global structure with all the pointers to translated
- *  strings.  This is then used by the usage generation procedure.
+ *  Declare the global structure with all the pointers to translatable
+ *  strings and the text array containing untranslatable strings.
  */
-extern usage_text_t option_usage_text;
+extern usage_text_t option_xlateable_txt;
+extern char const option_lib_text[4285];
 
-#if defined(AUTOOPTS_INTERNAL) /* DEFINE ALL THE STRINGS = = = = = */
+#if defined(AUTOOPTS_INTERNAL)
 /*
- *  Provide a mapping from a short name to fields in this structure.
+ *  Provide a mapping from a short name to either the text directly
+ *  (for untranslatable strings), or to pointers to the text, rendering
+ *  them translatable.
  */
-#define zAO_Alloc             (option_usage_text.apz_str[  0])
-#define zAO_Bad               (option_usage_text.apz_str[  1])
-#define zAO_Big               (option_usage_text.apz_str[  2])
-#define zAO_Err               (option_usage_text.apz_str[  3])
-#define zAO_Realloc           (option_usage_text.apz_str[  4])
-#define zAO_Sml               (option_usage_text.apz_str[  5])
-#define zAO_Strdup            (option_usage_text.apz_str[  6])
-#define zAO_Ver               (option_usage_text.apz_str[  7])
-#define zAO_Woops             (option_usage_text.apz_str[  8])
-#define zAliasRange           (option_usage_text.apz_str[  9])
-#define zAll                  (option_usage_text.apz_str[ 10])
-#define zAlt                  (option_usage_text.apz_str[ 11])
-#define zAmbigKey             (option_usage_text.apz_str[ 12])
-#define zAmbigList            (option_usage_text.apz_str[ 13])
-#define zAmbigOptStr          (option_usage_text.apz_str[ 14])
-#define zAmbiguous            (option_usage_text.apz_str[ 15])
-#define zArgsMust             (option_usage_text.apz_str[ 16])
-#define zAtMost               (option_usage_text.apz_str[ 17])
-#define zAuto                 (option_usage_text.apz_str[ 18])
-#define zBadPipe              (option_usage_text.apz_str[ 19])
-#define zBadVerArg            (option_usage_text.apz_str[ 20])
-#define zCantFmt              (option_usage_text.apz_str[ 21])
-#define zCantSave             (option_usage_text.apz_str[ 22])
-#define zCfgAO_Flags          (option_usage_text.apz_str[ 23])
-#define zCfgProg              (option_usage_text.apz_str[ 24])
-#define zDefaultOpt           (option_usage_text.apz_str[ 25])
-#define zDis                  (option_usage_text.apz_str[ 26])
-#define zDisabledErr          (option_usage_text.apz_str[ 27])
-#define zDisabledOpt          (option_usage_text.apz_str[ 28])
-#define zDisabledWhy          (option_usage_text.apz_str[ 29])
-#define zEnab                 (option_usage_text.apz_str[ 30])
-#define zEquiv                (option_usage_text.apz_str[ 31])
-#define zErrOnly              (option_usage_text.apz_str[ 32])
-#define zExamineFmt           (option_usage_text.apz_str[ 33])
-#define zFiveSpaces           (option_usage_text.apz_str[ 34])
-#define zFlagOkay             (option_usage_text.apz_str[ 35])
-#define zFmtFmt               (option_usage_text.apz_str[ 36])
-#define zForkFail             (option_usage_text.apz_str[ 37])
-#define zFreopenFail          (option_usage_text.apz_str[ 38])
-#define zFSErrOptLoad         (option_usage_text.apz_str[ 39])
-#define zFSErrReadFile        (option_usage_text.apz_str[ 40])
-#define zFSOptError           (option_usage_text.apz_str[ 41])
-#define zFSOptErrMayExist     (option_usage_text.apz_str[ 42])
-#define zFSOptErrMustExist    (option_usage_text.apz_str[ 43])
-#define zFSOptErrNoExist      (option_usage_text.apz_str[ 44])
-#define zFSOptErrOpen         (option_usage_text.apz_str[ 45])
-#define zFSOptErrFopen        (option_usage_text.apz_str[ 46])
-#define zFileCannotExist      (option_usage_text.apz_str[ 47])
-#define zFileMustExist        (option_usage_text.apz_str[ 48])
-#define zGenshell             (option_usage_text.apz_str[ 49])
-#define zGnuBoolArg           (option_usage_text.utpz_GnuBoolArg)
-#define zGnuBreak             (option_usage_text.apz_str[ 50])
-#define zGnuKeyArg            (option_usage_text.utpz_GnuKeyArg)
-#define zGnuFileArg           (option_usage_text.utpz_GnuFileArg)
-#define zGnuKeyLArg           (option_usage_text.utpz_GnuKeyLArg)
-#define zGnuTimeArg           (option_usage_text.utpz_GnuTimeArg)
-#define zGnuNestArg           (option_usage_text.apz_str[ 51])
-#define zGnuNumArg            (option_usage_text.utpz_GnuNumArg)
-#define zGnuOptArg            (option_usage_text.apz_str[ 52])
-#define zGnuOptFmt            (option_usage_text.apz_str[ 53])
-#define zGnuStrArg            (option_usage_text.utpz_GnuStrArg)
-#define zIllOptChr            (option_usage_text.apz_str[ 54])
-#define zIllOptStr            (option_usage_text.apz_str[ 55])
-#define zIllVendOptStr        (option_usage_text.apz_str[ 56])
-#define zIntRange             (option_usage_text.apz_str[ 57])
-#define zInvalOptDesc         (option_usage_text.apz_str[ 58])
-#define zLowerBits            (option_usage_text.apz_str[ 59])
-#define zMembers              (option_usage_text.apz_str[ 60])
-#define zMisArg               (option_usage_text.apz_str[ 61])
-#define zMultiEquiv           (option_usage_text.apz_str[ 62])
-#define zMust                 (option_usage_text.apz_str[ 63])
-#define zNeedOne              (option_usage_text.apz_str[ 64])
-#define zNoArg                (option_usage_text.apz_str[ 65])
-#define zNoArgs               (option_usage_text.apz_str[ 66])
-#define zNoCreat              (option_usage_text.apz_str[ 67])
-#define zNoFlags              (option_usage_text.apz_str[ 68])
-#define zNoKey                (option_usage_text.apz_str[ 69])
-#define zNoLim                (option_usage_text.apz_str[ 70])
-#define zNoPreset             (option_usage_text.apz_str[ 71])
-#define zNoResetArg           (option_usage_text.apz_str[ 72])
-#define zNoRq_NoShrtTtl       (option_usage_text.apz_str[ 73])
-#define zNoRq_ShrtTtl         (option_usage_text.apz_str[ 74])
-#define zNoStat               (option_usage_text.apz_str[ 75])
-#define zNoState              (option_usage_text.apz_str[ 76])
-#define zNone                 (option_usage_text.apz_str[ 77])
-#define zNotDef               (option_usage_text.apz_str[ 78])
-#define zNotCmdOpt            (option_usage_text.apz_str[ 79])
-#define zNotEnough            (option_usage_text.apz_str[ 80])
-#define zNotFile              (option_usage_text.apz_str[ 81])
-#define zNotNumber            (option_usage_text.apz_str[ 82])
-#define zNotDate              (option_usage_text.apz_str[ 83])
-#define zNotDuration          (option_usage_text.apz_str[ 84])
-#define zNrmOptFmt            (option_usage_text.apz_str[ 85])
-#define zNumberOpt            (option_usage_text.apz_str[ 86])
-#define zOnlyOne              (option_usage_text.apz_str[ 87])
-#define zOptsOnly             (option_usage_text.apz_str[ 88])
-#define zOutputFail           (option_usage_text.apz_str[ 89])
-#define zPathFmt              (option_usage_text.apz_str[ 90])
-#define zPlsSendBugs          (option_usage_text.apz_str[ 91])
-#define zPreset               (option_usage_text.apz_str[ 92])
-#define zPresetFile           (option_usage_text.apz_str[ 93])
-#define zPresetIntro          (option_usage_text.apz_str[ 94])
-#define zProhib               (option_usage_text.apz_str[ 95])
-#define zReorder              (option_usage_text.apz_str[ 96])
-#define zRange                (option_usage_text.apz_str[ 97])
-#define zRangeAbove           (option_usage_text.apz_str[ 98])
-#define zRangeLie             (option_usage_text.apz_str[ 99])
-#define zRangeOnly            (option_usage_text.apz_str[100])
-#define zRangeOr              (option_usage_text.apz_str[101])
-#define zRangeErr             (option_usage_text.apz_str[102])
-#define zRangeExact           (option_usage_text.apz_str[103])
-#define zRangeScaled          (option_usage_text.apz_str[104])
-#define zRangeUpto            (option_usage_text.apz_str[105])
-#define zResetNotConfig       (option_usage_text.apz_str[106])
-#define zReqFmt               (option_usage_text.apz_str[107])
-#define zReqOptFmt            (option_usage_text.apz_str[108])
-#define zReqThese             (option_usage_text.apz_str[109])
-#define zReq_NoShrtTtl        (option_usage_text.apz_str[110])
-#define zReq_ShrtTtl          (option_usage_text.apz_str[111])
-#define zSepChars             (option_usage_text.apz_str[112])
-#define zSetMemberSettings    (option_usage_text.apz_str[113])
-#define zShrtGnuOptFmt        (option_usage_text.apz_str[114])
-#define zSixSpaces            (option_usage_text.apz_str[115])
-#define zStdBoolArg           (option_usage_text.apz_str[116])
-#define zStdBreak             (option_usage_text.apz_str[117])
-#define zStdFileArg           (option_usage_text.apz_str[118])
-#define zStdKeyArg            (option_usage_text.apz_str[119])
-#define zStdKeyLArg           (option_usage_text.apz_str[120])
-#define zStdTimeArg           (option_usage_text.apz_str[121])
-#define zStdNestArg           (option_usage_text.apz_str[122])
-#define zStdNoArg             (option_usage_text.apz_str[123])
-#define zStdNumArg            (option_usage_text.apz_str[124])
-#define zStdOptArg            (option_usage_text.apz_str[125])
-#define zStdReqArg            (option_usage_text.apz_str[126])
-#define zStdStrArg            (option_usage_text.apz_str[127])
-#define zTabHyp               (option_usage_text.apz_str[128])
-#define zTabHypAnd            (option_usage_text.apz_str[129])
-#define zTabout               (option_usage_text.apz_str[130])
-#define zThreeSpaces          (option_usage_text.apz_str[131])
-#define zTooLarge             (option_usage_text.apz_str[132])
-#define zTwoSpaces            (option_usage_text.apz_str[133])
-#define zUpTo                 (option_usage_text.apz_str[134])
-#define zValidKeys            (option_usage_text.apz_str[135])
-#define zVendOptsAre          (option_usage_text.apz_str[136])
-#define zVendIntro            (option_usage_text.apz_str[137])
+#define zalloc_fail           (option_xlateable_txt.apz_str[  0])
+#define zno_opt_arg           (option_xlateable_txt.apz_str[  1])
+#define ztoo_new              (option_xlateable_txt.apz_str[  2])
+#define zwrong_ver            (option_xlateable_txt.apz_str[  3])
+#define zrealloc_fail         (option_xlateable_txt.apz_str[  4])
+#define ztoo_old              (option_xlateable_txt.apz_str[  5])
+#define zao_ver_fmt           (option_xlateable_txt.apz_str[  6])
+#define zao_bug_msg           (option_xlateable_txt.apz_str[  7])
+#define zno_reset             (option_xlateable_txt.apz_str[  8])
+#define zmissing_help_msg     (option_xlateable_txt.apz_str[  9])
+#define zbad_data_msg         (option_xlateable_txt.apz_str[ 10])
+#define zbad_arg_type_msg     (option_xlateable_txt.apz_str[ 11])
+#define zbad_default_msg      (option_xlateable_txt.apz_str[ 12])
+#define zbad_alias_id         (option_xlateable_txt.apz_str[ 13])
+#define zambiguous_key        (option_xlateable_txt.apz_str[ 14])
+#define zambig_list_msg       (option_xlateable_txt.apz_str[ 15])
+#define zambig_opt_fmt        (option_xlateable_txt.apz_str[ 16])
+#define zargs_must            (option_xlateable_txt.apz_str[ 17])
+#define zat_most              (option_xlateable_txt.apz_str[ 18])
+#define zfserr_fmt            (option_xlateable_txt.apz_str[ 19])
+#define zinter_proc_pipe      (option_xlateable_txt.apz_str[ 20])
+#define zBadVerArg            (option_xlateable_txt.apz_str[ 21])
+#define zconflict_fmt         (option_xlateable_txt.apz_str[ 22])
+#define zDisabledErr          (option_xlateable_txt.apz_str[ 23])
+#define zequiv                (option_xlateable_txt.apz_str[ 24])
+#define zGnuBoolArg           (option_xlateable_txt.utpz_GnuBoolArg)
+#define zGnuKeyArg            (option_xlateable_txt.utpz_GnuKeyArg)
+#define zGnuNumArg            (option_xlateable_txt.utpz_GnuNumArg)
+#define zGnuStrArg            (option_xlateable_txt.utpz_GnuStrArg)
+#define zIllOptChr            (option_xlateable_txt.apz_str[ 25])
+#define zIllOptStr            (option_xlateable_txt.apz_str[ 26])
+#define zIllVendOptStr        (option_xlateable_txt.apz_str[ 27])
+#define zIntRange             (option_xlateable_txt.apz_str[ 28])
+#define zbad_od               (option_xlateable_txt.apz_str[ 29])
+#define zInvalOptName         (option_xlateable_txt.apz_str[ 30])
+#define zMisArg               (option_xlateable_txt.apz_str[ 31])
+#define zmultiway_bug         (option_xlateable_txt.apz_str[ 32])
+#define zneed_one             (option_xlateable_txt.apz_str[ 33])
+#define zNoArg                (option_xlateable_txt.apz_str[ 34])
+#define zNoArgs               (option_xlateable_txt.apz_str[ 35])
+#define zNoCreat              (option_xlateable_txt.apz_str[ 36])
+#define zNoKey                (option_xlateable_txt.apz_str[ 37])
+#define zreset_arg            (option_xlateable_txt.apz_str[ 38])
+#define zNoStat               (option_xlateable_txt.apz_str[ 39])
+#define zNoState              (option_xlateable_txt.apz_str[ 40])
+#define zNotCmdOpt            (option_xlateable_txt.apz_str[ 41])
+#define zNotDate              (option_xlateable_txt.apz_str[ 42])
+#define zNotDef               (option_xlateable_txt.apz_str[ 43])
+#define zNotDuration          (option_xlateable_txt.apz_str[ 44])
+#define zneed_more            (option_xlateable_txt.apz_str[ 45])
+#define zNotNumber            (option_xlateable_txt.apz_str[ 46])
+#define znum_too_large        (option_xlateable_txt.apz_str[ 47])
+#define zoffer_usage_fmt      (option_xlateable_txt.apz_str[ 48])
+#define zonly_one             (option_xlateable_txt.apz_str[ 49])
+#define zstdout_name          (option_xlateable_txt.apz_str[ 50])
+#define zstderr_name          (option_xlateable_txt.apz_str[ 51])
+#define zwriting              (option_xlateable_txt.apz_str[ 52])
+#define zRangeErr             (option_xlateable_txt.apz_str[ 53])
+#define zneed_fmt             (option_xlateable_txt.apz_str[ 54])
+#define zsave_warn            (option_xlateable_txt.apz_str[ 55])
+#define zalt_opt              (option_xlateable_txt.apz_str[ 56])
+#define zAuto                 (option_xlateable_txt.apz_str[ 57])
+#define zDefaultOpt           (option_xlateable_txt.apz_str[ 58])
+#define zDis                  (option_xlateable_txt.apz_str[ 59])
+#define zDisabledOpt          (option_xlateable_txt.apz_str[ 60])
+#define zDisabledWhy          (option_xlateable_txt.apz_str[ 61])
+#define zEnab                 (option_xlateable_txt.apz_str[ 62])
+#define ztoo_often_fmt        (option_xlateable_txt.apz_str[ 63])
+#define zExamineFmt           (option_xlateable_txt.apz_str[ 64])
+#define zFileCannotExist      (option_xlateable_txt.apz_str[ 65])
+#define zFileMustExist        (option_xlateable_txt.apz_str[ 66])
+#define zFlagOkay             (option_xlateable_txt.apz_str[ 67])
+#define zGenshell             (option_xlateable_txt.apz_str[ 68])
+#define zLowerBits            (option_xlateable_txt.apz_str[ 69])
+#define zMembers              (option_xlateable_txt.apz_str[ 70])
+#define zMust                 (option_xlateable_txt.apz_str[ 71])
+#define zNoFlags              (option_xlateable_txt.apz_str[ 72])
+#define zNoLim                (option_xlateable_txt.apz_str[ 73])
+#define zNoPreset             (option_xlateable_txt.apz_str[ 74])
+#define zNoRq_NoShrtTtl       (option_xlateable_txt.apz_str[ 75])
+#define zNoRq_ShrtTtl         (option_xlateable_txt.apz_str[ 76])
+#define zNrmOptFmt            (option_xlateable_txt.apz_str[ 77])
+#define zNumberOpt            (option_xlateable_txt.apz_str[ 78])
+#define zOptsOnly             (option_xlateable_txt.apz_str[ 79])
+#define zPathFmt              (option_xlateable_txt.apz_str[ 80])
+#define zPlsSendBugs          (option_xlateable_txt.apz_str[ 81])
+#define zPreset               (option_xlateable_txt.apz_str[ 82])
+#define zPresetIntro          (option_xlateable_txt.apz_str[ 83])
+#define zProhib               (option_xlateable_txt.apz_str[ 84])
+#define zProhibOne            (option_xlateable_txt.apz_str[ 85])
+#define zRange                (option_xlateable_txt.apz_str[ 86])
+#define zRangeAbove           (option_xlateable_txt.apz_str[ 87])
+#define zRangeExact           (option_xlateable_txt.apz_str[ 88])
+#define zRangeLie             (option_xlateable_txt.apz_str[ 89])
+#define zRangeOnly            (option_xlateable_txt.apz_str[ 90])
+#define zRangeOr              (option_xlateable_txt.apz_str[ 91])
+#define zRangeScaled          (option_xlateable_txt.apz_str[ 92])
+#define zRangeUpto            (option_xlateable_txt.apz_str[ 93])
+#define zReorder              (option_xlateable_txt.apz_str[ 94])
+#define zReqOne               (option_xlateable_txt.apz_str[ 95])
+#define zReqThese             (option_xlateable_txt.apz_str[ 96])
+#define zReq_NoShrtTtl        (option_xlateable_txt.apz_str[ 97])
+#define zReq_ShrtTtl          (option_xlateable_txt.apz_str[ 98])
+#define zSetMemberSettings    (option_xlateable_txt.apz_str[ 99])
+#define zUpTo                 (option_xlateable_txt.apz_str[100])
+#define zValidKeys            (option_xlateable_txt.apz_str[101])
+#define zVendIntro            (option_xlateable_txt.apz_str[102])
+#define zVendOptsAre          (option_xlateable_txt.apz_str[103])
 
   /*
    *  First, set up the strings.  Some of these are writable.  These are all in
    *  English.  This gets compiled into libopts and is distributed here so that
    *  xgettext (or equivalents) can extract these strings for translation.
    */
-
-  static char    eng_zGnuBoolArg[] = "=T/F";
-  static char    eng_zGnuKeyArg[] = "=KWd";
-  static char    eng_zGnuFileArg[] = "=file";
-  static char    eng_zGnuKeyLArg[] = "=Mbr";
-  static char    eng_zGnuTimeArg[] = "=Tim";
-  static char    eng_zGnuNumArg[] = "=num";
-  static char    eng_zGnuStrArg[] = "=str";
-static char const usage_txt[4631] =
-/*     0 */ "malloc of %d bytes failed\n\0"
-/*    27 */ "AutoOpts function called without option descriptor\n\0"
-/*    79 */ "\tThis exceeds the compiled library version:  \0"
-/*   125 */ "Automated Options Processing Error!\n"
+static char eng_zGnuBoolArg[]  = "=T/F";
+static char eng_zGnuKeyArg[]   = "=KWd";
+static char eng_zGnuNumArg[]   = "=num";
+static char eng_zGnuStrArg[]   = "=str";
+char const option_lib_text[4285] =
+/*     0 */ "allocation of %d bytes failed\n\0"
+/*    31 */ "AutoOpts function called without option descriptor\n\0"
+/*    83 */ "\tThis exceeds the compiled library version:  \0"
+/*   129 */ "Automated Options Processing Error!\n"
             "\t%s called AutoOpts function with structure version %d:%d:%d.\n\0"
-/*   224 */ "realloc of %d bytes at 0x%p failed\n\0"
-/*   260 */ "\tThis is less than the minimum library version:  \0"
-/*   310 */ "strdup of %d byte string failed\n\0"
-/*   343 */ "Automated Options version %s\n"
-            "\tcopyright (c) 1999-2012 by Bruce Korb - all rights reserved\n\0"
-/*   434 */ "AutoOpts lib error: defaulted to option with optional arg\n\0"
-/*   493 */ "(AutoOpts bug):  Aliasing option is out of range.\0"
-/*   543 */ "all\0"
-/*   547 */ "\t\t\t\t- an alternate for %s\n\0"
-/*   574 */ "%s error:  the keyword `%s' is ambiguous for %s\n\0"
-/*   623 */ "  The following options match:\n\0"
-/*   655 */ "%s: ambiguous option name: %s (matches %d options)\n\0"
-/*   707 */ "  %s%s\n\0"
-/*   715 */ "%s: Command line arguments required\n\0"
-/*   752 */ "%d %s%s options allowed\n\0"
-/*   777 */ "version, usage and configuration options:\0"
-/*   819 */ "Error %d (%s) from the pipe(2) syscall\n\0"
-/*   859 */ "ERROR: version option argument '%c' invalid.  Use:\n"
+/*   228 */ "realloc of %d bytes at 0x%p failed\n\0"
+/*   264 */ "\tThis is less than the minimum library version:  \0"
+/*   314 */ "Automated Options version %s\n"
+            "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n\0"
+/*   405 */ "(AutoOpts bug):  %s.\n\0"
+/*   427 */ "optionResetOpt() called, but reset-option not configured\0"
+/*   484 */ "could not locate the 'help' option\0"
+/*   519 */ "optionProcess() was called with invalid data\0"
+/*   564 */ "invalid argument type specified\0"
+/*   596 */ "defaulted to option with optional arg\0"
+/*   634 */ "aliasing option is out of range.\0"
+/*   667 */ "%s error:  the keyword '%s' is ambiguous for %s\n\0"
+/*   716 */ "  The following options match:\n\0"
+/*   748 */ "%s: ambiguous option name: %s (matches %d options)\n\0"
+/*   800 */ "%s: Command line arguments required\n\0"
+/*   837 */ "%d %s%s options allowed\n\0"
+/*   862 */ "%s error %d (%s) calling %s for '%s'\n\0"
+/*   900 */ "interprocess pipe\0"
+/*   918 */ "error: version option argument '%c' invalid.  Use:\n"
             "\t'v' - version only\n"
             "\t'c' - version and copyright\n"
-            "\t'n' - version and copyright notice\n\0"
-/*   996 */ "ERROR:  %s option conflicts with the %s option\n\0"
-/*  1044 */ "%s(optionSaveState): error: cannot allocate %d bytes\n\0"
-/*  1098 */ "auto-options\0"
-/*  1111 */ "program\0"
-/*  1119 */ "\t\t\t\t- default option for unnamed options\n\0"
-/*  1161 */ "\t\t\t\t- disabled as --%s\n\0"
-/*  1185 */ "%s: The ``%s'' option has been disabled\0"
-/*  1225 */ " --- %-14s %s\n\0"
-/*  1240 */ "This option has been disabled\0"
-/*  1270 */ "\t\t\t\t- enabled by default\n\0"
-/*  1296 */ "-equivalence\0"
-/*  1309 */ "ERROR:  only \0"
-/*  1323 */ " - examining environment variables named %s_*\n\0"
-/*  1370 */ "     \0"
-/*  1376 */ "Options are specified by doubled hyphens and their name or by a single\n"
+            "\t'n' - version and full copyright notice\n\0"
+/*  1060 */ "%s error:  the '%s' and '%s' options conflict\n\0"
+/*  1107 */ "%s: The '%s' option has been disabled.\0"
+/*  1146 */ "-equivalence\0"
+/*  1159 */ "%s: illegal option -- %c\n\0"
+/*  1185 */ "%s: illegal option -- %s\n\0"
+/*  1211 */ "%s: unknown vendor extension option -- %s\n\0"
+/*  1254 */ "  or an integer from %d through %d\n\0"
+/*  1290 */ "%s error:  invalid option descriptor for %s\n\0"
+/*  1335 */ "%s: invalid option name: %s\n\0"
+/*  1364 */ "%s: The '%s' option requires an argument.\n\0"
+/*  1407 */ "(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+            "\t'%s' and '%s'.\0"
+/*  1490 */ "%s error:  The %s option is required\n\0"
+/*  1528 */ "%s: The '%s' option cannot have an argument.\n\0"
+/*  1574 */ "%s: Command line arguments are not allowed.\n\0"
+/*  1619 */ "error %d (%s) creating %s\n\0"
+/*  1646 */ "%s error:  '%s' does not match any %s keywords.\n\0"
+/*  1695 */ "%s error: The '%s' option requires an argument.\n\0"
+/*  1744 */ "error %d (%s) stat-ing %s\n\0"
+/*  1771 */ "%s error: no saved option state\n\0"
+/*  1804 */ "'%s' is not a command line option.\n\0"
+/*  1840 */ "%s error:  '%s' is not a recognizable date/time.\n\0"
+/*  1890 */ "'%s' not defined\n\0"
+/*  1908 */ "%s error:  '%s' is not a recognizable time duration.\n\0"
+/*  1962 */ "%s error:  The %s option must appear %d times.\n\0"
+/*  2010 */ "%s error:  '%s' is not a recognizable number.\n\0"
+/*  2057 */ "%s error:  %s exceeds %s keyword count\n\0"
+/*  2097 */ "Try '%s %s' for more information.\n\0"
+/*  2132 */ "one %s%s option allowed\n\0"
+/*  2157 */ "standard output\0"
+/*  2173 */ "standard error\0"
+/*  2188 */ "write\0"
+/*  2194 */ "%s error:  %s option value %ld is out of range.\n\0"
+/*  2243 */ "%s error:  %s option requires the %s option\n\0"
+/*  2288 */ "%s warning:  cannot save options - %s not regular file\n\0"
+/*  2344 */ "\t\t\t\t- an alternate for '%s'\n\0"
+/*  2373 */ "Version, usage and configuration options:\0"
+/*  2415 */ "\t\t\t\t- default option for unnamed options\n\0"
+/*  2457 */ "\t\t\t\t- disabled as '--%s'\n\0"
+/*  2483 */ " --- %-14s %s\n\0"
+/*  2498 */ "This option has been disabled\0"
+/*  2528 */ "\t\t\t\t- enabled by default\n\0"
+/*  2554 */ "%s error:  only \0"
+/*  2571 */ " - examining environment variables named %s_*\n\0"
+/*  2618 */ "\t\t\t\t- file must not pre-exist\n\0"
+/*  2649 */ "\t\t\t\t- file must pre-exist\n\0"
+/*  2676 */ "Options are specified by doubled hyphens and their name or by a single\n"
             "hyphen and the flag character.\n\0"
-/*  1479 */ "%%-%ds %%s\n\0"
-/*  1491 */ "fs error %d (%s) on fork - cannot obtain %s usage\n\0"
-/*  1542 */ "fs error %d (%s) on freopen\n\0"
-/*  1571 */ "File error %d (%s) opening %s for loading options\n\0"
-/*  1622 */ "fs error %d (%s) reading file %s\n\0"
-/*  1656 */ "fs error %d (%s) on %s %s for option %s\n\0"
-/*  1697 */ "stat-ing for directory\0"
-/*  1720 */ "stat-ing for regular file\0"
-/*  1746 */ "stat-ing for non-existant file\0"
-/*  1777 */ "open-ing file\0"
-/*  1791 */ "fopen-ing file\0"
-/*  1806 */ "\t\t\t\t- file must not pre-exist\n\0"
-/*  1837 */ "\t\t\t\t- file must pre-exist\n\0"
-/*  1864 */ "\n"
+/*  2779 */ "\n"
             "= = = = = = = =\n\n"
             "This incarnation of genshell will produce\n"
             "a shell script to parse the options for %s:\n\n\0"
-/*  1970 */ "\n"
-            "%s\n\n\0"
-/*  1976 */ "=Cplx\0"
-/*  1982 */ "[=arg]\0"
-/*  1989 */ "--%2$s%1$s\0"
-/*  2000 */ "%s: illegal option -- %c\n\0"
-/*  2026 */ "%s: illegal option -- %s\n\0"
-/*  2052 */ "%s: unknown vendor extension option -- %s\n\0"
-/*  2095 */ "  or an integer from %d through %d\n\0"
-/*  2131 */ "AutoOpts ERROR:  invalid option descriptor for %s\n\0"
-/*  2182 */ "  or an integer mask with any of the lower %d bits set\n\0"
-/*  2238 */ "\t\t\t\t- is a set membership option\n\0"
-/*  2272 */ "%s: option `%s' requires an argument\n\0"
-/*  2310 */ "Equivalenced option '%s' was equivalenced to both\n"
-            "\t'%s' and '%s'\0"
-/*  2375 */ "\t\t\t\t- must appear between %d and %d times\n\0"
-/*  2418 */ "ERROR:  The %s option is required\n\0"
-/*  2453 */ "%s: option `%s' cannot have an argument\n\0"
-/*  2494 */ "%s: Command line arguments not allowed\n\0"
-/*  2534 */ "error %d (%s) creating %s\n\0"
-/*  2561 */ "Options are specified by single or double hyphens and their name.\n\0"
-/*  2628 */ "%s error:  `%s' does not match any %s keywords\n\0"
-/*  2676 */ "\t\t\t\t- may appear multiple times\n\0"
-/*  2709 */ "\t\t\t\t- may not be preset\n\0"
-/*  2734 */ "The 'reset-option' option requires an argument\n\0"
-/*  2782 */ "   Arg Option-Name    Description\n\0"
-/*  2817 */ "  Flg Arg Option-Name    Description\n\0"
-/*  2855 */ "error %d (%s) stat-ing %s\n\0"
-/*  2882 */ "%s(optionRestore): error: no saved option state\n\0"
-/*  2931 */ "none\0"
-/*  2936 */ "'%s' not defined\n\0"
-/*  2954 */ "'%s' is not a command line option\n\0"
-/*  2989 */ "ERROR:  The %s option must appear %d times\n\0"
-/*  3033 */ "error:  cannot load options from non-regular file %s\n\0"
-/*  3087 */ "%s error:  `%s' is not a recognizable number\n\0"
-/*  3133 */ "%s error:  `%s' is not a recognizable date/time\n\0"
-/*  3182 */ "%s error:  `%s' is not a recognizable time duration\n\0"
-/*  3235 */ " %3s %s\0"
-/*  3243 */ "The '-#<number>' option may omit the hash char\n\0"
-/*  3291 */ "one %s%s option allowed\n\0"
-/*  3316 */ "All arguments are named options.\n\0"
-/*  3350 */ "Write failure to output file\0"
-/*  3379 */ " - reading file %s\0"
-/*  3398 */ "\n"
-            "please send bug reports to:  %s\n\0"
-/*  3432 */ "\t\t\t\t- may NOT appear - preset only\n\0"
-/*  3468 */ "#  preset/initialization file\n"
-            "#  %s#\n\0"
-/*  3506 */ "\n"
+/*  2885 */ "  or an integer mask with any of the lower %d bits set\n\0"
+/*  2941 */ "\t\t\t\t- is a set membership option\n\0"
+/*  2975 */ "\t\t\t\t- must appear between %d and %d times\n\0"
+/*  3018 */ "Options are specified by single or double hyphens and their name.\n\0"
+/*  3085 */ "\t\t\t\t- may appear multiple times\n\0"
+/*  3118 */ "\t\t\t\t- may not be preset\n\0"
+/*  3143 */ "   Arg Option-Name    Description\n\0"
+/*  3178 */ "  Flg Arg Option-Name    Description\n\0"
+/*  3216 */ " %3s %s\0"
+/*  3224 */ "The '-#<number>' option may omit the hash char\n\0"
+/*  3272 */ "All arguments are named options.\n\0"
+/*  3306 */ " - reading file %s\0"
+/*  3325 */ "\n"
+            "Please send bug reports to:  <%s>\n\0"
+/*  3361 */ "\t\t\t\t- may NOT appear - preset only\n\0"
+/*  3397 */ "\n"
             "The following option preset mechanisms are supported:\n\0"
-/*  3562 */ "prohibits these options:\n\0"
-/*  3588 */ "Operands and options may be intermixed.  They will be reordered.\n\0"
-/*  3654 */ "%s%ld to %ld\0"
-/*  3667 */ "%sgreater than or equal to %ld\0"
-/*  3698 */ "%sIt must lie in one of the ranges:\n\0"
-/*  3735 */ "%sIt must be in the range:\n\0"
-/*  3763 */ ", or\n\0"
-/*  3769 */ "%s error:  %s option value %ld is out of range.\n\0"
-/*  3818 */ "%s%ld exactly\0"
-/*  3832 */ "%sis scalable with a suffix: k/K/m/M/g/G/t/T\n\0"
-/*  3878 */ "%sless than or equal to %ld\0"
-/*  3906 */ "The --reset-option has not been configured.\n\0"
-/*  3951 */ "ERROR:  %s option requires the %s option\n\0"
-/*  3993 */ " %3s %-14s %s\0"
-/*  4007 */ "requires these options:\n\0"
-/*  4032 */ "   Arg Option-Name   Req?  Description\n\0"
-/*  4072 */ "  Flg Arg Option-Name   Req?  Description\n\0"
-/*  4115 */ "-_^\0"
-/*  4119 */ "or you may use a numeric representation.  Preceding these with a '!' will\n"
-            "clear the bits, specifying 'none' will clear all bits, and 'all' will set them\n"
-            "all.  Multiple entries may be passed as an option argument list.\n\0"
-/*  4338 */ "%s\0"
-/*  4341 */ "      \0"
-/*  4348 */ "T/F\0"
-/*  4352 */ "\n"
-            "%s\n\n"
-            "%s\0"
-/*  4360 */ "Fil\0"
-/*  4364 */ "KWd\0"
-/*  4368 */ "Mbr\0"
-/*  4372 */ "Tim\0"
-/*  4376 */ "Cpx\0"
-/*  4380 */ "no \0"
-/*  4384 */ "Num\0"
-/*  4388 */ "opt\0"
-/*  4392 */ "YES\0"
-/*  4396 */ "Str\0"
-/*  4400 */ "\t\t\t\t- \0"
-/*  4407 */ "\t\t\t\t-- and \0"
-/*  4419 */ "\t\t\t\t%s\n\0"
-/*  4427 */ "   \0"
-/*  4431 */ "%s error:  %s exceeds %s keyword count\n\0"
-/*  4471 */ "  \0"
-/*  4474 */ "\t\t\t\t- may appear up to %d times\n\0"
-/*  4507 */ "The valid \"%s\" option keywords are:\n\0"
-/*  4544 */ "These additional options are:\0"
-/*  4574 */ "The next option supports vendor supported extra options:";
+/*  3453 */ "prohibits these options:\n\0"
+/*  3479 */ "prohibits the option '%s'\n\0"
+/*  3506 */ "%s%ld to %ld\0"
+/*  3519 */ "%sgreater than or equal to %ld\0"
+/*  3550 */ "%s%ld exactly\0"
+/*  3564 */ "%sit must lie in one of the ranges:\n\0"
+/*  3601 */ "%sit must be in the range:\n\0"
+/*  3629 */ ", or\n\0"
+/*  3635 */ "%sis scalable with a suffix: k/K/m/M/g/G/t/T\n\0"
+/*  3681 */ "%sless than or equal to %ld\0"
+/*  3709 */ "Operands and options may be intermixed.  They will be reordered.\n\0"
+/*  3775 */ "requires the option '%s'\n\0"
+/*  3801 */ "requires these options:\n\0"
+/*  3826 */ "   Arg Option-Name   Req?  Description\n\0"
+/*  3866 */ "  Flg Arg Option-Name   Req?  Description\n\0"
+/*  3909 */ "or you may use a numeric representation.  Preceding these with a '!'\n"
+            "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+            "will set them all.  Multiple entries may be passed as an option\n"
+            "argument list.\n\0"
+/*  4128 */ "\t\t\t\t- may appear up to %d times\n\0"
+/*  4161 */ "The valid \"%s\" option keywords are:\n\0"
+/*  4198 */ "The next option supports vendor supported extra options:\0"
+/*  4255 */ "These additional options are:";
 
-
-  /*
-   *  Now, define (and initialize) the structure that contains
-   *  the pointers to all these strings.
-   *  Aren't you glad you don't maintain this by hand?
-   */
-  usage_text_t option_usage_text = {
-    145,
-    eng_zGnuBoolArg, eng_zGnuKeyArg,  eng_zGnuFileArg, eng_zGnuKeyLArg,
-    eng_zGnuTimeArg, eng_zGnuNumArg,  eng_zGnuStrArg,
+/*
+ *  Now, define (and initialize) the structure that contains
+ *  the pointers to all these strings.
+ *  Aren't you glad you don't maintain this by hand?
+ */
+usage_text_t option_xlateable_txt = {
+  108,
+  eng_zGnuBoolArg, eng_zGnuKeyArg,  eng_zGnuNumArg,  eng_zGnuStrArg,
     {
-      usage_txt +   0, usage_txt +  27, usage_txt +  79, usage_txt + 125,
-      usage_txt + 224, usage_txt + 260, usage_txt + 310, usage_txt + 343,
-      usage_txt + 434, usage_txt + 493, usage_txt + 543, usage_txt + 547,
-      usage_txt + 574, usage_txt + 623, usage_txt + 655, usage_txt + 707,
-      usage_txt + 715, usage_txt + 752, usage_txt + 777, usage_txt + 819,
-      usage_txt + 859, usage_txt + 996, usage_txt +1044, usage_txt +1098,
-      usage_txt +1111, usage_txt +1119, usage_txt +1161, usage_txt +1185,
-      usage_txt +1225, usage_txt +1240, usage_txt +1270, usage_txt +1296,
-      usage_txt +1309, usage_txt +1323, usage_txt +1370, usage_txt +1376,
-      usage_txt +1479, usage_txt +1491, usage_txt +1542, usage_txt +1571,
-      usage_txt +1622, usage_txt +1656, usage_txt +1697, usage_txt +1720,
-      usage_txt +1746, usage_txt +1777, usage_txt +1791, usage_txt +1806,
-      usage_txt +1837, usage_txt +1864, usage_txt +1970, usage_txt +1976,
-      usage_txt +1982, usage_txt +1989, usage_txt +2000, usage_txt +2026,
-      usage_txt +2052, usage_txt +2095, usage_txt +2131, usage_txt +2182,
-      usage_txt +2238, usage_txt +2272, usage_txt +2310, usage_txt +2375,
-      usage_txt +2418, usage_txt +2453, usage_txt +2494, usage_txt +2534,
-      usage_txt +2561, usage_txt +2628, usage_txt +2676, usage_txt +2709,
-      usage_txt +2734, usage_txt +2782, usage_txt +2817, usage_txt +2855,
-      usage_txt +2882, usage_txt +2931, usage_txt +2936, usage_txt +2954,
-      usage_txt +2989, usage_txt +3033, usage_txt +3087, usage_txt +3133,
-      usage_txt +3182, usage_txt +3235, usage_txt +3243, usage_txt +3291,
-      usage_txt +3316, usage_txt +3350, usage_txt +3379, usage_txt +3398,
-      usage_txt +3432, usage_txt +3468, usage_txt +3506, usage_txt +3562,
-      usage_txt +3588, usage_txt +3654, usage_txt +3667, usage_txt +3698,
-      usage_txt +3735, usage_txt +3763, usage_txt +3769, usage_txt +3818,
-      usage_txt +3832, usage_txt +3878, usage_txt +3906, usage_txt +3951,
-      usage_txt +3993, usage_txt +4007, usage_txt +4032, usage_txt +4072,
-      usage_txt +4115, usage_txt +4119, usage_txt +4338, usage_txt +4341,
-      usage_txt +4348, usage_txt +4352, usage_txt +4360, usage_txt +4364,
-      usage_txt +4368, usage_txt +4372, usage_txt +4376, usage_txt +4380,
-      usage_txt +4384, usage_txt +4388, usage_txt +4392, usage_txt +4396,
-      usage_txt +4400, usage_txt +4407, usage_txt +4419, usage_txt +4427,
-      usage_txt +4431, usage_txt +4471, usage_txt +4474, usage_txt +4507,
-      usage_txt +4544, usage_txt +4574
-    }
-  };
+    option_lib_text +    0, option_lib_text +   31, option_lib_text +   83,
+    option_lib_text +  129, option_lib_text +  228, option_lib_text +  264,
+    option_lib_text +  314, option_lib_text +  405, option_lib_text +  427,
+    option_lib_text +  484, option_lib_text +  519, option_lib_text +  564,
+    option_lib_text +  596, option_lib_text +  634, option_lib_text +  667,
+    option_lib_text +  716, option_lib_text +  748, option_lib_text +  800,
+    option_lib_text +  837, option_lib_text +  862, option_lib_text +  900,
+    option_lib_text +  918, option_lib_text + 1060, option_lib_text + 1107,
+    option_lib_text + 1146, option_lib_text + 1159, option_lib_text + 1185,
+    option_lib_text + 1211, option_lib_text + 1254, option_lib_text + 1290,
+    option_lib_text + 1335, option_lib_text + 1364, option_lib_text + 1407,
+    option_lib_text + 1490, option_lib_text + 1528, option_lib_text + 1574,
+    option_lib_text + 1619, option_lib_text + 1646, option_lib_text + 1695,
+    option_lib_text + 1744, option_lib_text + 1771, option_lib_text + 1804,
+    option_lib_text + 1840, option_lib_text + 1890, option_lib_text + 1908,
+    option_lib_text + 1962, option_lib_text + 2010, option_lib_text + 2057,
+    option_lib_text + 2097, option_lib_text + 2132, option_lib_text + 2157,
+    option_lib_text + 2173, option_lib_text + 2188, option_lib_text + 2194,
+    option_lib_text + 2243, option_lib_text + 2288, option_lib_text + 2344,
+    option_lib_text + 2373, option_lib_text + 2415, option_lib_text + 2457,
+    option_lib_text + 2483, option_lib_text + 2498, option_lib_text + 2528,
+    option_lib_text + 2554, option_lib_text + 2571, option_lib_text + 2618,
+    option_lib_text + 2649, option_lib_text + 2676, option_lib_text + 2779,
+    option_lib_text + 2885, option_lib_text + 2941, option_lib_text + 2975,
+    option_lib_text + 3018, option_lib_text + 3085, option_lib_text + 3118,
+    option_lib_text + 3143, option_lib_text + 3178, option_lib_text + 3216,
+    option_lib_text + 3224, option_lib_text + 3272, option_lib_text + 3306,
+    option_lib_text + 3325, option_lib_text + 3361, option_lib_text + 3397,
+    option_lib_text + 3453, option_lib_text + 3479, option_lib_text + 3506,
+    option_lib_text + 3519, option_lib_text + 3550, option_lib_text + 3564,
+    option_lib_text + 3601, option_lib_text + 3629, option_lib_text + 3635,
+    option_lib_text + 3681, option_lib_text + 3709, option_lib_text + 3775,
+    option_lib_text + 3801, option_lib_text + 3826, option_lib_text + 3866,
+    option_lib_text + 3909, option_lib_text + 4128, option_lib_text + 4161,
+    option_lib_text + 4198, option_lib_text + 4255
+  } };
+#endif /* AUTOOPTS_INTERNAL */
+
+#ifdef XGETTEXT_SCAN_DO_NOT_COMPILE
+do not compile this section.
+/* TRANSLATORS: The following dummy functions were crated solely so that
+ * xgettext can extract the correct strings.  These strings are actually
+ * referenced where the preceding "#line" directive states, though you will
+ * not see the literal string there.  The literal string is defined above in
+ * the @code{option_lib_text} table and referenced via a #define name that
+ * redirects into the @code{option_xlateable_txt} structure above.  When
+ * translating is activated, the pointers in @code{option_xlateable_txt} are
+ * updated to point to translated strings.
+ */
+static void dummy_func(void) {
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
 
-#endif /* DO_TRANSLATIONS */
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* XGETTEXT_SCAN_DO_NOT_COMPILE */
 #endif /* AUTOOPTS_USAGE_TXT_H_GUARD */
index f0e5498..e2dff14 100644 (file)
@@ -2,16 +2,18 @@
 /**
  * \file boolean.c
  *
- * Time-stamp:      "2012-03-31 13:46:19 bkorb"
- *
- *   Automated Options Paged Usage module.
+ * Handle options with true/false values for arguments.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This routine will run run-on options through a pager so the
  *  user may examine, print or edit them at their leisure.
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /*=export_func  optionBooleanVal
@@ -50,6 +52,9 @@ optionBooleanVal(tOptions * pOpts, tOptDesc * pOD )
 
     (void)pOpts;
 
+    if (pOpts <= OPTPROC_EMIT_LIMIT)
+        return;
+
     if ((pOD->fOptState & OPTST_RESET) != 0)
         return;
 
@@ -85,7 +90,8 @@ optionBooleanVal(tOptions * pOpts, tOptDesc * pOD )
     }
     pOD->optArg.argBool = res;
 }
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 019a235..3196b00 100644 (file)
@@ -1,16 +1,15 @@
 /**
  * @file check.c
  *
- * @brief consistency checks.
- *
- *  Time-stamp:      "2012-03-31 13:46:35 bkorb"
- *
- *  This file contains the routines that deal with processing quoted strings
- *  into an internal format.
+ * @brief option consistency checks.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /**
  *  Check for conflicts based on "must" and "cannot" attributes.
  */
 static bool
-has_conflict(tOptions * pOpts, tOptDesc * pOD)
+has_conflict(tOptions * pOpts, tOptDesc * od)
 {
-    if (pOD->pOptMust != NULL) {
-        int const * pMust = pOD->pOptMust;
+    if (od->pOptMust != NULL) {
+        int const * must = od->pOptMust;
 
-        while (*pMust != NO_EQUIVALENT) {
-            tOptDesc * p = pOpts->pOptDesc + *(pMust++);
+        while (*must != NO_EQUIVALENT) {
+            tOptDesc * p = pOpts->pOptDesc + *(must++);
             if (UNUSED_OPT(p)) {
-                const tOptDesc * pN = pOpts->pOptDesc + pMust[-1];
-                fprintf(stderr, zReqFmt, pOD->pz_Name, pN->pz_Name);
+                const tOptDesc * ood = pOpts->pOptDesc + must[-1];
+                fprintf(stderr, zneed_fmt, pOpts->pzProgName,
+                        od->pz_Name, ood->pz_Name);
                 return true;
             }
         }
     }
 
-    if (pOD->pOptCant != NULL) {
-        int const * pCant = pOD->pOptCant;
+    if (od->pOptCant != NULL) {
+        int const * cant = od->pOptCant;
 
-        while (*pCant != NO_EQUIVALENT) {
-            tOptDesc * p = pOpts->pOptDesc + *(pCant++);
+        while (*cant != NO_EQUIVALENT) {
+            tOptDesc * p = pOpts->pOptDesc + *(cant++);
             if (SELECTED_OPT(p)) {
-                const tOptDesc* pN = pOpts->pOptDesc + pCant[-1];
-                fprintf(stderr, zCantFmt, pOD->pz_Name, pN->pz_Name);
+                const tOptDesc * ood = pOpts->pOptDesc + cant[-1];
+                fprintf(stderr, zconflict_fmt, pOpts->pzProgName,
+                        od->pz_Name, ood->pz_Name);
                 return true;
             }
         }
@@ -88,8 +89,9 @@ occurs_enough(tOptions * pOpts, tOptDesc * pOD)
         return true;
 
     if (pOD->optMinCt > 1)
-         fprintf(stderr, zNotEnough, pOD->pz_Name, pOD->optMinCt);
-    else fprintf(stderr, zNeedOne, pOD->pz_Name);
+         fprintf(stderr, zneed_more, pOpts->pzProgName, pOD->pz_Name,
+                 pOD->optMinCt);
+    else fprintf(stderr, zneed_one,  pOpts->pzProgName, pOD->pz_Name);
     return false;
 }
 
@@ -156,7 +158,7 @@ is_consistent(tOptions * pOpts)
          */
         else if ((pOpts->fOptSet & OPTPROC_ARGS_REQ) != 0) {
             if (pOpts->origArgCt <= pOpts->curOptIdx) {
-                fprintf(stderr, zArgsMust, pOpts->pzProgName);
+                fprintf(stderr, zargs_must, pOpts->pzProgName);
                 return false;
             }
         }
@@ -164,3 +166,12 @@ is_consistent(tOptions * pOpts)
 
     return true;
 }
+
+/** @}
+ *
+ * Local Variables:
+ * mode: C
+ * c-file-style: "stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * end of autoopts/check.c */
index 9d1c02a..e7b30ea 100644 (file)
@@ -1,50 +1,30 @@
-/*  -*- Mode: C -*-  */
-
-/**
- * \file compat.h --- fake the preprocessor into handlng portability
- *
- *  Time-stamp:      "2012-02-28 19:40:44 bkorb"
+/*  -*- Mode: C -*- 
  *
  *  compat.h is free software.
- *  This file is part of AutoGen.
- *
- *  AutoGen Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
- *
- *  AutoGen 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.
+ *  This file is part of AutoGen and AutoOpts.
  *
- *  AutoGen 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.
+ *  AutoGen Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
- *  You should have received a copy of the GNU General Public License along
- *  with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *  AutoOpts is available under any one of two licenses.  The license
+ *  in use must be one of these two and the choice is under the control
+ *  of the user of the license.
  *
- *  As a special exception, Bruce Korb gives permission for additional
- *  uses of the text contained in the release of compat.h.
+ *   The GNU Lesser General Public License, version 3 or later
+ *      See the files "COPYING.lgplv3" and "COPYING.gplv3"
  *
- *  The exception is that, if you link the compat.h library with other
- *  files to produce an executable, this does not by itself cause the
- *  resulting executable to be covered by the GNU General Public License.
- *  Your use of that executable is in no way restricted on account of
- *  linking the compat.h library code into it.
+ *   The Modified Berkeley Software Distribution License
+ *      See the file "COPYING.mbsd"
  *
- *  This exception does not however invalidate any other reasons why
- *  the executable file might be covered by the GNU General Public License.
+ *  These files have the following sha256 sums:
  *
- *  This exception applies only to the code released by Bruce Korb under
- *  the name compat.h.  If you copy code from other sources under the
- *  General Public License into a copy of compat.h, as the General Public
- *  License permits, the exception does not apply to the code that you add
- *  in this way.  To avoid misleading anyone as to the status of such
- *  modified files, you must delete this exception notice from them.
- *
- *  If you write modifications of your own for compat.h, it is your choice
- *  whether to permit this exception to apply to your modifications.
- *  If you do not wish that, delete this exception notice.
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
+ */
+
+/**
+ * \file compat.h
+ *  fake the preprocessor into handlng stuff portability
  */
 #ifndef COMPAT_H_GUARD
 #define COMPAT_H_GUARD 1
@@ -62,7 +42,9 @@
 
 
 #ifndef HAVE_STRSIGNAL
-   char * strsignal( int signo );
+# ifndef HAVE_RAW_DECL_STRSIGNAL
+   char * strsignal(int signo);
+# endif
 #endif
 
 #define  _GNU_SOURCE    1 /* for strsignal in GNU's libc */
index 2e6f881..ec380bc 100644 (file)
@@ -2,20 +2,22 @@
 
 /* pathfind.c --- find a FILE  MODE along PATH */
 
-/*
- * Author:           Gary V Vaughan <gvaughan@oranda.demon.co.uk>
- * Time-stamp:       "2012-03-31 13:44:42 bkorb"
- */
+/* Author: Gary V Vaughan <gvaughan@oranda.demon.co.uk> */
 
 /* Code: */
 
+static char *
+pathfind( char const * path,
+          char const * fileName,
+          char const * mode );
+
 #include "compat.h"
 #ifndef HAVE_PATHFIND
 #if defined(__windows__) && !defined(__CYGWIN__)
-char*
-pathfind( char const path,
-          char const fileName,
-          char const mode )
+static char *
+pathfind( char const * path,
+          char const * fileName,
+          char const * mode )
 {
     return NULL;
 }
@@ -80,10 +82,10 @@ static char* extract_colon_unit( char* dir, char const *string, int *p_index );
  *
  * err:  returns NULL if the file is not found.
 =*/
-char*
-pathfind( char const path,
-          char const fileName,
-          char const mode )
+static char *
+pathfind( char const * path,
+          char const * fileName,
+          char const * mode )
 {
     int   p_index   = 0;
     int   mode_bits = 0;
@@ -171,7 +173,7 @@ make_absolute( char const *string, char const *dot_path )
         if (dot_path && dot_path[0]) {
             result = malloc( 2 + strlen( dot_path ) + strlen( string ) );
             strcpy( result, dot_path );
-            result_len = strlen( result );
+            result_len = (int)strlen(result);
             if (result[result_len - 1] != '/') {
                 result[result_len++] = '/';
                 result[result_len] = '\0';
@@ -286,7 +288,7 @@ canonicalize_pathname( char *path )
 static char*
 extract_colon_unit( char* pzDir, char const *string, int *p_index )
 {
-    char pzDest = pzDir;
+    char * pzDest = pzDir;
     int    ix     = *p_index;
 
     if (string == NULL)
@@ -296,7 +298,7 @@ extract_colon_unit( char* pzDir, char const *string, int *p_index )
         return NULL;
 
     {
-        char const* pzSrc = string + ix;
+        char const * pzSrc = string + ix;
 
         while (*pzSrc == ':')  pzSrc++;
 
@@ -305,6 +307,7 @@ extract_colon_unit( char* pzDir, char const *string, int *p_index )
             switch (ch) {
             case ':':
                 pzDest[-1] = NUL;
+                /* FALLTHROUGH */
             case NUL:
                 goto copy_done;
             }
@@ -313,7 +316,7 @@ extract_colon_unit( char* pzDir, char const *string, int *p_index )
                 break;
         } copy_done:;
 
-        ix = pzSrc - string;
+        ix = (int)(pzSrc - string);
     }
 
     if (*pzDir == NUL)
index fc91d63..eccea1f 100644 (file)
@@ -1,6 +1,7 @@
 
 #ifndef HAVE_VPRINTF
 #include "choke-me: no vprintf and no snprintf"
+  choke me.
 #endif
 
 #if defined(HAVE_STDARG_H)
@@ -21,6 +22,7 @@
 
 #else
 #  include "must-have-stdarg-or-varargs"
+  choke me.
 #endif
 
 static int
index 413f999..0def700 100644 (file)
        SVID 3, POSIX, BSD 4.3, ISO 9899
 */
 
-char*
-strchr( char const *s, int c)
+static char *
+strchr(char const *s, int c);
+
+static char *
+strrchr(char const *s, int c);
+
+static char *
+strchr(char const *s, int c)
 {
     do {
         if ((unsigned)*s == (unsigned)c)
@@ -36,8 +42,8 @@ strchr( char const *s, int c)
     return NULL;
 }
 
-char*
-strrchr( char const *s, int c)
+static char *
+strrchr(char const *s, int c)
 {
     char const *e = s + strlen(s);
 
index e2933a8..f3a4077 100644 (file)
@@ -3,6 +3,9 @@
  */
 
 static char *
+strdup( char const *s );
+
+static char *
 strdup( char const *s )
 {
     char *cp;
index 076c046..194d228 100644 (file)
@@ -1,24 +1,33 @@
 
-/*
- * Time-stamp:        "2010-02-24 08:39:04 bkorb"
+/**
+ * \file windows-config.h
+ *
+ *  This file contains all of the routines that must be linked into
+ *  an executable to use the generated option processing.  The optional
+ *  routines are in separately compiled modules so that they will not
+ *  necessarily be linked in.
+ *
+ *  This file is part of AutoOpts, a companion to AutoGen.
+ *  AutoOpts is free software.
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
- *  This file is part of AutoGen.
+ *  AutoOpts is available under any one of two licenses.  The license
+ *  in use must be one of these two and the choice is under the control
+ *  of the user of the license.
  *
- *  AutoGen Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *   The GNU Lesser General Public License, version 3 or later
+ *      See the files "COPYING.lgplv3" and "COPYING.gplv3"
  *
- *  AutoGen 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.
+ *   The Modified Berkeley Software Distribution License
+ *      See the file "COPYING.mbsd"
  *
- *  AutoGen 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.
+ *  These files have the following sha256 sums:
  *
- *  You should have received a copy of the GNU General Public License along
- *  with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
+
 #ifndef WINDOWS_CONFIG_HACKERY
 #define WINDOWS_CONFIG_HACKERY 1
 
 #endif
 
 /*
- * Miscellaneous functions that Microsoft maps
- * to other names
- *
- * #define inline __inline
- * #define vsnprintf _vsnprintf
+ * Miscellaneous functions that Microsoft maps to other names
  */
 #define snprintf _snprintf
-/*
- * #define stricmp _stricmp
- * #define strcasecmp _stricmp
- * #define isascii __isascii
- * #define finite _finite
- * #define random      rand
- * #define srandom     srand
- */
 
 #define SIZEOF_INT   4
 #define SIZEOF_CHARP 4
 #define SIZEOF_LONG  4
 #define SIZEOF_SHORT 2
 
-typedef unsigned long uintptr_t;
-
-/*
- * # define HAVE_NET_IF_H
- * # define QSORT_USES_VOID_P
- * # define HAVE_SETVBUF
- * # define HAVE_VSPRINTF
- * # define HAVE_SNPRINTF
- * # define HAVE_VSNPRINTF
- * # define HAVE_PROTOTYPES             /* from ntpq.mak * /
- * # define HAVE_MEMMOVE
- * # define HAVE_TERMIOS_H
- * # define HAVE_ERRNO_H
- * # define HAVE_STDARG_H
- * # define HAVE_NO_NICE
- * # define HAVE_MKTIME
- * # define TIME_WITH_SYS_TIME
- * # define HAVE_IO_COMPLETION_PORT
- * # define ISC_PLATFORM_NEEDNTOP
- * # define ISC_PLATFORM_NEEDPTON
- * # define NEED_S_CHAR_TYPEDEF
- * # define USE_PROTOTYPES              /* for ntp_types.h * /
- *
- * #define ULONG_CONST(a) a ## UL
- */
-
 #define HAVE_LIMITS_H   1
 #define HAVE_STRDUP     1
 #define HAVE_STRCHR     1
 #define HAVE_FCNTL_H    1
 
 /*
- * VS.NET's version of wspiapi.h has a bug in it
- * where it assigns a value to a variable inside
- * an if statement. It should be comparing them.
- * We prevent inclusion since we are not using this
- * code so we don't have to see the warning messages
+ * VS.NET's version of wspiapi.h has a bug in it where it assigns a value
+ * to a variable inside an if statement. It should be comparing them.
+ * We prevent inclusion since we are not using this code so we don't have
+ * to see the warning messages
  */
 #ifndef _WSPIAPI_H_
 #define _WSPIAPI_H_
@@ -116,7 +86,7 @@ typedef unsigned long uintptr_t;
 #define strdup  _strdup
 #define stat    _stat       /* struct stat from <sys/stat.h> */
 #define unlink  _unlink
-#define fchmod( _x, _y );
+#define fchmod( _x, _y )
 #define ssize_t SSIZE_T
 
 #include <io.h>
@@ -142,4 +112,33 @@ typedef unsigned long uintptr_t;
 #  define       S_ISDIR(mode)   (((mode) & S_IFDIR) == S_IFDIR)
 #endif
 
+/* C99 exact size integer support. */
+#if defined(HAVE_INTTYPES_H)
+# include <inttypes.h>
+
+#elif defined(HAVE_STDINT_H)
+# include <stdint.h>
+# define MISSING_INTTYPES_H 1
+
+#elif ! defined(ADDED_EXACT_SIZE_INTEGERS)
+# define ADDED_EXACT_SIZE_INTEGERS 1
+# define MISSING_INTTYPES_H 1
+
+  typedef __int8 int8_t;
+  typedef unsigned __int8 uint8_t;
+
+  typedef __int16 int16_t;
+  typedef unsigned __int16 uint16_t;
+
+  typedef __int32 int32_t;
+  typedef unsigned __int32 uint32_t;
+
+  typedef __int64 int64_t;
+  typedef unsigned __int64 uint64_t;
+
+  typedef unsigned long uintptr_t;
+  typedef long intptr_t;
+#endif
+
 #endif /* WINDOWS_CONFIG_HACKERY */
+/* windows-config.h ends here */
index 56e22b5..8c71111 100644 (file)
@@ -1,13 +1,15 @@
 /**
  * \file configfile.c
  *
- *  Time-stamp:      "2012-03-31 13:56:11 bkorb"
- *
  *  configuration/rc/ini file handling.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /* = = = START-STATIC-FORWARD = = = */
 static void
 file_preset(tOptions * opts, char const * fname, int dir);
 
-static char*
-handle_comment(char* pzText);
+static char *
+handle_comment(char* txt);
 
 static char *
-handle_cfg(tOptions * pOpts, tOptState * pOS, char * pzText, int dir);
+handle_cfg(tOptions * opts, tOptState * ost, char * txt, int dir);
 
 static char *
-handle_directive(tOptions * pOpts, char * pzText);
+handle_directive(tOptions * opts, char * txt);
 
 static char *
-aoflags_directive(tOptions * pOpts, char * pzText);
+aoflags_directive(tOptions * opts, char * txt);
 
 static char *
-program_directive(tOptions * pOpts, char * pzText);
+program_directive(tOptions * opts, char * txt);
 
 static char *
-handle_section(tOptions * pOpts, char * pzText);
+handle_section(tOptions * opts, char * txt);
 
 static int
 parse_xml_encoding(char ** ppz);
@@ -58,26 +60,34 @@ static void
 cook_xml_text(char * pzData);
 
 static char *
-handle_struct(tOptions * pOpts, tOptState * pOS, char * pzText, int dir);
+handle_struct(tOptions * opts, tOptState * ost, char * txt, int dir);
 
-static char*
-parse_keyword(tOptions * pOpts, char * pzText, tOptionValue * pType);
+static char const *
+parse_keyword(tOptions * opts, char const * txt, tOptionValue * typ);
 
-static char*
-parse_set_mem(tOptions * pOpts, char * pzText, tOptionValue * pType);
+static char const *
+parse_set_mem(tOptions * opts, char const * txt, tOptionValue * typ);
 
-static char *
-parse_value(char * pzText, tOptionValue * pType);
-
-static char *
-skip_unkn(char* pzText);
+static char const *
+parse_value(char const * txt, tOptionValue * typ);
 /* = = = END-STATIC-FORWARD = = = */
 
+/**
+ *  Skip over some unknown attribute
+ *  @param[in] txt   start of skpped text
+ *  @returns   character after skipped text
+ */
+inline static char const *
+skip_unkn(char const * txt)
+{
+    txt = BRK_END_XML_TOKEN_CHARS(txt);
+    return (*txt == NUL) ? NULL : txt;
+}
 
 /*=export_func  configFileLoad
  *
  * what:  parse a configuration file
- * arg:   + char const*     + pzFile + the file to load +
+ * arg:   + char const*     + fname + the file to load +
  *
  * ret_type:  const tOptionValue*
  * ret_desc:  An allocated, compound value structure
@@ -106,23 +116,22 @@ skip_unkn(char* pzText);
  *  @code{ENOMEM} - not enough memory to allocate the needed structures.
  *  @end itemize
 =*/
-const tOptionValue*
-configFileLoad(char const* pzFile)
+const tOptionValue *
+configFileLoad(char const * fname)
 {
-    tmap_info_t   cfgfile;
-    tOptionValue* pRes = NULL;
+    tmap_info_t    cfgfile;
+    tOptionValue * res = NULL;
     tOptionLoadMode save_mode = option_load_mode;
 
-    char* pzText =
-        text_mmap(pzFile, PROT_READ, MAP_PRIVATE, &cfgfile);
+    char * txt = text_mmap(fname, PROT_READ, MAP_PRIVATE, &cfgfile);
 
-    if (TEXT_MMAP_FAILED_ADDR(pzText))
+    if (TEXT_MMAP_FAILED_ADDR(txt))
         return NULL; /* errno is set */
 
     option_load_mode = OPTION_LOAD_COOKED;
-    pRes = optionLoadNested(pzText, pzFile, strlen(pzFile));
+    res = optionLoadNested(txt, fname, strlen(fname));
 
-    if (pRes == NULL) {
+    if (res == NULL) {
         int err = errno;
         text_munmap(&cfgfile);
         errno = err;
@@ -130,16 +139,16 @@ configFileLoad(char const* pzFile)
         text_munmap(&cfgfile);
 
     option_load_mode = save_mode;
-    return pRes;
+    return res;
 }
 
 
 /*=export_func  optionFindValue
  *
  * what:  find a hierarcicaly valued option instance
- * arg:   + const tOptDesc* + pOptDesc + an option with a nested arg type +
- * arg:   + char const*     + name     + name of value to find +
- * arg:   + char const*     + value    + the matching value    +
+ * arg:   + const tOptDesc* + odesc + an option with a nested arg type +
+ * arg:   + char const*     + name  + name of value to find +
+ * arg:   + char const*     + val   + the matching value    +
  *
  * ret_type:  const tOptionValue*
  * ret_desc:  a compound value structure
@@ -158,53 +167,52 @@ configFileLoad(char const* pzFile)
  *  @code{ENOENT} - no entry matched the given name.
  *  @end itemize
 =*/
-const tOptionValue*
-optionFindValue(const tOptDesc* pOptDesc, char const* pzName,
-                char const* pzVal)
+const tOptionValue *
+optionFindValue(const tOptDesc * odesc, char const * name, char const * val)
 {
-    const tOptionValue* pRes = NULL;
+    const tOptionValue * res = NULL;
 
-    if (  (pOptDesc == NULL)
-       || (OPTST_GET_ARGTYPE(pOptDesc->fOptState) != OPARG_TYPE_HIERARCHY))  {
+    if (  (odesc == NULL)
+       || (OPTST_GET_ARGTYPE(odesc->fOptState) != OPARG_TYPE_HIERARCHY))  {
         errno = EINVAL;
     }
 
-    else if (pOptDesc->optCookie == NULL) {
+    else if (odesc->optCookie == NULL) {
         errno = ENOENT;
     }
 
     else do {
-        tArgList* pAL = pOptDesc->optCookie;
-        int    ct   = pAL->useCt;
-        void** ppOV = (void**)(pAL->apzArgs);
+        tArgList* argl  = odesc->optCookie;
+        int       argct = argl->useCt;
+        void **   poptv = (void**)(argl->apzArgs);
 
-        if (ct == 0) {
+        if (argct == 0) {
             errno = ENOENT;
             break;
         }
 
-        if (pzName == NULL) {
-            pRes = (tOptionValue*)*ppOV;
+        if (name == NULL) {
+            res = (tOptionValue*)*poptv;
             break;
         }
 
-        while (--ct >= 0) {
-            const tOptionValue* pOV = *(ppOV++);
-            const tOptionValue* pRV = optionGetValue(pOV, pzName);
+        while (--argct >= 0) {
+            const tOptionValue * ov = *(poptv++);
+            const tOptionValue * rv = optionGetValue(ov, name);
 
-            if (pRV == NULL)
+            if (rv == NULL)
                 continue;
 
-            if (pzVal == NULL) {
-                pRes = pOV;
+            if (val == NULL) {
+                res = ov;
                 break;
             }
         }
-        if (pRes == NULL)
+        if (res == NULL)
             errno = ENOENT;
     } while (false);
 
-    return pRes;
+    return res;
 }
 
 
@@ -213,7 +221,7 @@ optionFindValue(const tOptDesc* pOptDesc, char const* pzName,
  * FIXME: the handling of 'pzName' and 'pzVal' is just wrong.
  *
  * what:  find a hierarcicaly valued option instance
- * arg:   + const tOptDesc* + pOptDesc + an option with a nested arg type +
+ * arg:   + const tOptDesc* + odesc + an option with a nested arg type +
  * arg:   + const tOptionValue* + pPrevVal + the last entry +
  * arg:   + char const*     + name     + name of value to find +
  * arg:   + char const*     + value    + the matching value    +
@@ -237,43 +245,43 @@ optionFindValue(const tOptDesc* pOptDesc, char const* pzName,
  *  @end itemize
 =*/
 tOptionValue const *
-optionFindNextValue(const tOptDesc * pOptDesc, const tOptionValue * pPrevVal,
+optionFindNextValue(const tOptDesc * odesc, const tOptionValue * pPrevVal,
                     char const * pzName, char const * pzVal)
 {
     bool old_found = false;
-    tOptionValue* pRes = NULL;
+    tOptionValue* res = NULL;
 
     (void)pzName;
     (void)pzVal;
 
-    if (  (pOptDesc == NULL)
-       || (OPTST_GET_ARGTYPE(pOptDesc->fOptState) != OPARG_TYPE_HIERARCHY))  {
+    if (  (odesc == NULL)
+       || (OPTST_GET_ARGTYPE(odesc->fOptState) != OPARG_TYPE_HIERARCHY))  {
         errno = EINVAL;
     }
 
-    else if (pOptDesc->optCookie == NULL) {
+    else if (odesc->optCookie == NULL) {
         errno = ENOENT;
     }
 
     else do {
-        tArgList* pAL = pOptDesc->optCookie;
-        int    ct   = pAL->useCt;
-        void** ppOV = (void**)pAL->apzArgs;
+        tArgList* argl = odesc->optCookie;
+        int    ct   = argl->useCt;
+        void** poptv = (void**)argl->apzArgs;
 
         while (--ct >= 0) {
-            tOptionValue* pOV = *(ppOV++);
+            tOptionValue* pOV = *(poptv++);
             if (old_found) {
-                pRes = pOV;
+                res = pOV;
                 break;
             }
             if (pOV == pPrevVal)
                 old_found = true;
         }
-        if (pRes == NULL)
+        if (res == NULL)
             errno = ENOENT;
     } while (false);
 
-    return pRes;
+    return res;
 }
 
 
@@ -304,39 +312,38 @@ optionFindNextValue(const tOptDesc * pOptDesc, const tOptionValue * pPrevVal,
  *  @code{ENOENT} - no entry matched the given name.
  *  @end itemize
 =*/
-const tOptionValue*
-optionGetValue(tOptionValue const * pOld, char const * pzValName)
+tOptionValue const *
+optionGetValue(tOptionValue const * oov, char const * vname)
 {
-    tArgList *     pAL;
-    tOptionValue * pRes = NULL;
+    tArgList *     arg_list;
+    tOptionValue * res = NULL;
 
-    if ((pOld == NULL) || (pOld->valType != OPARG_TYPE_HIERARCHY)) {
+    if ((oov == NULL) || (oov->valType != OPARG_TYPE_HIERARCHY)) {
         errno = EINVAL;
-        return pRes;
+        return res;
     }
-    pAL = pOld->v.nestVal;
+    arg_list = oov->v.nestVal;
 
-    if (pAL->useCt > 0) {
-        int     ct    = pAL->useCt;
-        void ** papOV = (void**)(pAL->apzArgs);
+    if (arg_list->useCt > 0) {
+        int     ct     = arg_list->useCt;
+        void ** ovlist = (void**)(arg_list->apzArgs);
 
-        if (pzValName == NULL) {
-            pRes = (tOptionValue*)*papOV;
+        if (vname == NULL) {
+            res = (tOptionValue*)*ovlist;
 
         } else do {
-            tOptionValue * pOV = *(papOV++);
-            if (strcmp(pOV->pzName, pzValName) == 0) {
-                pRes = pOV;
+            tOptionValue * opt_val = *(ovlist++);
+            if (strcmp(opt_val->pzName, vname) == 0) {
+                res = opt_val;
                 break;
             }
         } while (--ct > 0);
     }
-    if (pRes == NULL)
+    if (res == NULL)
         errno = ENOENT;
-    return pRes;
+    return res;
 }
 
-
 /*=export_func  optionNextValue
  *
  * what:  get the next value from a hierarchical list
@@ -365,30 +372,30 @@ optionGetValue(tOptionValue const * pOld, char const * pzValName)
  *  @end itemize
 =*/
 tOptionValue const *
-optionNextValue(tOptionValue const * pOVList,tOptionValue const * pOldOV )
+optionNextValue(tOptionValue const * ov_list,tOptionValue const * oov )
 {
-    tArgList*     pAL;
-    tOptionValue* pRes = NULL;
-    int           err  = EINVAL;
+    tArgList *     arg_list;
+    tOptionValue * res = NULL;
+    int            err = EINVAL;
 
-    if ((pOVList == NULL) || (pOVList->valType != OPARG_TYPE_HIERARCHY)) {
+    if ((ov_list == NULL) || (ov_list->valType != OPARG_TYPE_HIERARCHY)) {
         errno = EINVAL;
         return NULL;
     }
-    pAL = pOVList->v.nestVal;
+    arg_list = ov_list->v.nestVal;
     {
-        int    ct    = pAL->useCt;
-        void** papNV = (void**)(pAL->apzArgs);
+        int     ct    = arg_list->useCt;
+        void ** o_list = (void**)(arg_list->apzArgs);
 
         while (ct-- > 0) {
-            tOptionValue* pNV = *(papNV++);
-            if (pNV == pOldOV) {
+            tOptionValue * nov = *(o_list++);
+            if (nov == oov) {
                 if (ct == 0) {
                     err = ENOENT;
 
                 } else {
-                    err  = 0;
-                    pRes = (tOptionValue*)*papNV;
+                    err = 0;
+                    res = (tOptionValue*)*o_list;
                 }
                 break;
             }
@@ -396,20 +403,19 @@ optionNextValue(tOptionValue const * pOVList,tOptionValue const * pOldOV )
     }
     if (err != 0)
         errno = err;
-    return pRes;
+    return res;
 }
 
-
 /**
  *  Load a file containing presetting information (a configuration file).
  */
 static void
 file_preset(tOptions * opts, char const * fname, int dir)
 {
-    tmap_info_t   cfgfile;
-    tOptState     optst = OPTSTATE_INITIALIZER(PRESET);
-    unsigned long st_flags = optst.flags;
-    char *        ftext =
+    tmap_info_t       cfgfile;
+    tOptState         optst = OPTSTATE_INITIALIZER(PRESET);
+    opt_state_mask_t  st_flags = optst.flags;
+    char *            ftext =
         text_mmap(fname, PROT_READ|PROT_WRITE, MAP_PRIVATE, &cfgfile);
 
     if (TEXT_MMAP_FAILED_ADDR(ftext))
@@ -456,8 +462,10 @@ file_preset(tOptions * opts, char const * fname, int dir)
                     break;
 
             default:
-                goto all_done;
+                ftext = NULL;
             }
+            if (ftext == NULL)
+                goto all_done;
             break;
 
         case '[':
@@ -473,47 +481,45 @@ file_preset(tOptions * opts, char const * fname, int dir)
         }
     } while (ftext != NULL);
 
-all_done:
+ all_done:
     text_munmap(&cfgfile);
 }
 
-
 /**
- *  "pzText" points to a "<!" sequence.
+ *  "txt" points to a "<!" sequence.
  *  Theoretically, we should ensure that it begins with "<!--",
  *  but actually I don't care that much.  It ends with "-->".
  */
-static char*
-handle_comment(char* pzText)
+static char *
+handle_comment(char* txt)
 {
-    char* pz = strstr(pzText, "-->");
+    char* pz = strstr(txt, "-->");
     if (pz != NULL)
         pz += 3;
     return pz;
 }
 
-
 /**
- *  "pzText" points to the start of some value name.
+ *  "txt" points to the start of some value name.
  *  The end of the entry is the end of the line that is not preceded by
  *  a backslash escape character.  The string value is always processed
  *  in "cooked" mode.
  */
 static char *
-handle_cfg(tOptions * pOpts, tOptState * pOS, char * pzText, int dir)
+handle_cfg(tOptions * opts, tOptState * ost, char * txt, int dir)
 {
-    char* pzName = pzText++;
-    char* pzEnd  = strchr(pzText, NL);
+    char* pzName = txt++;
+    char* pzEnd  = strchr(txt, NL);
 
     if (pzEnd == NULL)
-        return pzText + strlen(pzText);
+        return txt + strlen(txt);
 
-    pzText = SPN_VALUE_NAME_CHARS(pzText);
-    pzText = SPN_WHITESPACE_CHARS(pzText);
-    if (pzText > pzEnd) {
+    txt = SPN_VALUE_NAME_CHARS(txt);
+    txt = SPN_WHITESPACE_CHARS(txt);
+    if (txt > pzEnd) {
     name_only:
         *pzEnd++ = NUL;
-        loadOptionLine(pOpts, pOS, pzName, dir, OPTION_LOAD_UNCOOKED);
+        loadOptionLine(opts, ost, pzName, dir, OPTION_LOAD_UNCOOKED);
         return pzEnd;
     }
 
@@ -522,11 +528,11 @@ handle_cfg(tOptions * pOpts, tOptState * pOS, char * pzText, int dir)
      *  or else we must have skipped over white space.  Anything else
      *  is an invalid format and we give up parsing the text.
      */
-    if ((*pzText == '=') || (*pzText == ':')) {
-        pzText = SPN_WHITESPACE_CHARS(pzText+1);
-        if (pzText > pzEnd)
+    if ((*txt == '=') || (*txt == ':')) {
+        txt = SPN_WHITESPACE_CHARS(txt+1);
+        if (txt > pzEnd)
             goto name_only;
-    } else if (! IS_WHITESPACE_CHAR(pzText[-1]))
+    } else if (! IS_WHITESPACE_CHAR(txt[-1]))
         return NULL;
 
     /*
@@ -542,6 +548,7 @@ handle_cfg(tOptions * pOpts, tOptState * pOS, char * pzText, int dir)
             switch (ch) {
             case NUL:
                 pcS = NULL;
+                /* FALLTHROUGH */
 
             case NL:
                 *pcD = NUL;
@@ -549,9 +556,8 @@ handle_cfg(tOptions * pOpts, tOptState * pOS, char * pzText, int dir)
                 goto copy_done;
 
             case '\\':
-                if (*pcS == NL) {
+                if (*pcS == NL)
                     ch = *(pcS++);
-                }
                 /* FALLTHROUGH */
             default:
                 *(pcD++) = ch;
@@ -569,19 +575,22 @@ handle_cfg(tOptions * pOpts, tOptState * pOS, char * pzText, int dir)
      *  "pzName" points to what looks like text for one option/configurable.
      *  It is NUL terminated.  Process it.
      */
-    loadOptionLine(pOpts, pOS, pzName, dir, OPTION_LOAD_UNCOOKED);
+    loadOptionLine(opts, ost, pzName, dir, OPTION_LOAD_UNCOOKED);
 
     return pzEnd;
 }
 
-
 /**
- *  "pzText" points to a "<?" sequence.
+ *  "txt" points to a "<?" sequence.
  *  We handle "<?program" and "<?auto-options" directives.
  *  All others are treated as comments.
+ *
+ *  @param[in,out] opts  program option descriptor
+ *  @param[in]     txt   scanning pointer
+ *  @returns       the next character to look at
  */
 static char *
-handle_directive(tOptions * pOpts, char * pzText)
+handle_directive(tOptions * opts, char * txt)
 {
 #   define DIRECTIVE_TABLE                      \
     _dt_(zCfgProg,     program_directive)       \
@@ -610,112 +619,124 @@ handle_directive(tOptions * pOpts, char * pzText)
 
     for (ix = 0; ix < dir_ct; ix++) {
         size_t len = strlen(dir_names[ix]);
-        if (  (strncmp(pzText + 2, dir_names[ix], len) == 0)
-           && (! IS_VALUE_NAME_CHAR(pzText[len+2])) )
-            return dir_disp[ix](pOpts, pzText + len + 2);
+        if (  (strncmp(txt + 2, dir_names[ix], len) == 0)
+           && (! IS_VALUE_NAME_CHAR(txt[len+2])) )
+            return dir_disp[ix](opts, txt + len + 2);
     }
 
     /*
      *  We don't know what this is.  Skip it.
      */
-    pzText = strchr(pzText+2, '>');
-    if (pzText != NULL)
-        pzText++;
-    return pzText;
+    txt = strchr(txt+2, '>');
+    if (txt != NULL)
+        txt++;
+    return txt;
+#   undef DIRECTIVE_TABLE
 }
 
 /**
- *  handle AutoOpts mode flags
+ *  handle AutoOpts mode flags.
+ *
+ *  @param[in,out] opts  program option descriptor
+ *  @param[in]     txt   scanning pointer
+ *  @returns       the next character to look at
  */
 static char *
-aoflags_directive(tOptions * pOpts, char * pzText)
+aoflags_directive(tOptions * opts, char * txt)
 {
     char * pz;
 
-    pz = SPN_WHITESPACE_CHARS(pzText+1);
-    pzText = strchr(pz, '>');
-    if (pzText != NULL) {
+    pz = SPN_WHITESPACE_CHARS(txt+1);
+    txt = strchr(pz, '>');
+    if (txt != NULL) {
 
-        size_t len  = pzText - pz;
+        size_t len  = (unsigned)(txt - pz);
         char * ftxt = AGALOC(len + 1, "aoflags");
 
         memcpy(ftxt, pz, len);
         ftxt[len] = NUL;
-        set_usage_flags(pOpts, ftxt);
+        set_usage_flags(opts, ftxt);
         AGFREE(ftxt);
 
-        pzText++;
+        txt++;
     }
 
-    return pzText;
+    return txt;
 }
 
 /**
  * handle program segmentation of config file.
+ *
+ *  @param[in,out] opts  program option descriptor
+ *  @param[in]     txt   scanning pointer
+ *  @returns       the next character to look at
  */
 static char *
-program_directive(tOptions * pOpts, char * pzText)
+program_directive(tOptions * opts, char * txt)
 {
     static char const ttlfmt[] = "<?";
     size_t ttl_len  = sizeof(ttlfmt) + strlen(zCfgProg);
     char * ttl      = AGALOC(ttl_len, "prog title");
-    size_t name_len = strlen(pOpts->pzProgName);
+    size_t name_len = strlen(opts->pzProgName);
 
     memcpy(ttl, ttlfmt, sizeof(ttlfmt) - 1);
     memcpy(ttl + sizeof(ttlfmt) - 1, zCfgProg, ttl_len - (sizeof(ttlfmt) - 1));
 
     do  {
-        pzText = SPN_WHITESPACE_CHARS(pzText+1);
+        txt = SPN_WHITESPACE_CHARS(txt+1);
 
-        if (  (strneqvcmp(pzText, pOpts->pzProgName, (int)name_len) == 0)
-           && (IS_END_XML_TOKEN_CHAR(pzText[name_len])) ) {
-            pzText += name_len;
+        if (  (strneqvcmp(txt, opts->pzProgName, (int)name_len) == 0)
+           && (IS_END_XML_TOKEN_CHAR(txt[name_len])) ) {
+            txt += name_len;
             break;
         }
 
-        pzText = strstr(pzText, ttl);
-    } while (pzText != NULL);
+        txt = strstr(txt, ttl);
+    } while (txt != NULL);
 
     AGFREE(ttl);
-    if (pzText != NULL)
+    if (txt != NULL)
         for (;;) {
-            if (*pzText == NUL) {
-                pzText = NULL;
+            if (*txt == NUL) {
+                txt = NULL;
                 break;
             }
-            if (*(pzText++) == '>')
+            if (*(txt++) == '>')
                 break;
         }
 
-    return pzText;
+    return txt;
 }
 
-
 /**
- *  "pzText" points to a '[' character.
+ *  "txt" points to a '[' character.
  *  The "traditional" [PROG_NAME] segmentation of the config file.
  *  Do not ever mix with the "<?program prog-name>" variation.
+ *
+ *  @param[in,out] opts  program option descriptor
+ *  @param[in]     txt   scanning pointer
+ *  @returns       the next character to look at
  */
 static char *
-handle_section(tOptions * pOpts, char * pzText)
+handle_section(tOptions * opts, char * txt)
 {
-    size_t len = strlen(pOpts->pzPROGNAME);
-    if (   (strncmp(pzText+1, pOpts->pzPROGNAME, len) == 0)
-        && (pzText[len+1] == ']'))
-        return strchr(pzText + len + 2, NL);
+    size_t len = strlen(opts->pzPROGNAME);
+    if (   (strncmp(txt+1, opts->pzPROGNAME, len) == 0)
+        && (txt[len+1] == ']'))
+        return strchr(txt + len + 2, NL);
 
     if (len > 16)
         return NULL;
 
     {
         char z[24];
-        sprintf(z, "[%s]", pOpts->pzPROGNAME);
-        pzText = strstr(pzText, z);
+        sprintf(z, "[%s]", opts->pzPROGNAME);
+        txt = strstr(txt, z);
     }
 
-    if (pzText != NULL)
-        pzText = strchr(pzText, NL);
-    return pzText;
+    if (txt != NULL)
+        txt = strchr(txt, NL);
+    return txt;
 }
 
 /**
@@ -820,7 +841,7 @@ trim_xml_text(char * intxt, char const * pznm, tOptionLoadMode mode)
         if (len >= sizeof(z))
             pz = AGALOC(len, "scan name");
 
-        len = sprintf(pz, fmt, pznm);
+        len = (size_t)sprintf(pz, fmt, pznm);
         *intxt = ' ';
         etext = strstr(intxt, pz);
         if (pz != z) AGFREE(pz);
@@ -872,7 +893,7 @@ cook_xml_text(char * pzData)
                 return;
             }
 
-            ch = strtoul(bf, NULL, 16);
+            ch = (int)strtoul(bf, NULL, 16);
             /* FALLTHROUGH */
 
         default:
@@ -882,67 +903,70 @@ cook_xml_text(char * pzData)
 }
 
 /**
- *  "pzText" points to a '<' character, followed by an alpha.
+ *  "txt" points to a '<' character, followed by an alpha.
  *  The end of the entry is either the "/>" following the name, or else a
  *  "</name>" string.
  */
 static char *
-handle_struct(tOptions * pOpts, tOptState * pOS, char * pzText, int dir)
+handle_struct(tOptions * opts, tOptState * ost, char * txt, int dir)
 {
     tOptionLoadMode mode = option_load_mode;
     tOptionValue    valu;
 
-    char* pzName = ++pzText;
+    char* pzName = ++txt;
     char* pzData;
     char* pcNulPoint;
 
-    pzText = SPN_VALUE_NAME_CHARS(pzText);
-    pcNulPoint = pzText;
+    txt = SPN_VALUE_NAME_CHARS(txt);
+    pcNulPoint = txt;
     valu.valType = OPARG_TYPE_STRING;
 
-    switch (*pzText) {
+    switch (*txt) {
     case ' ':
     case '\t':
-        pzText = parse_attrs(pOpts, pzText, &mode, &valu);
-        if (*pzText == '>')
+        txt = (void *)parse_attrs(
+            opts, SPN_WHITESPACE_CHARS(txt), &mode, &valu);
+        if (txt == NULL)
+            return txt;
+        if (*txt == '>')
             break;
-        if (*pzText != '/')
+        if (*txt != '/')
             return NULL;
         /* FALLTHROUGH */
 
     case '/':
-        if (pzText[1] != '>')
+        if (txt[1] != '>')
             return NULL;
-        *pzText = NUL;
-        pzText += 2;
-        loadOptionLine(pOpts, pOS, pzName, dir, mode);
-        return pzText;
+        *txt = NUL;
+        txt += 2;
+        loadOptionLine(opts, ost, pzName, dir, mode);
+        return txt;
 
     case '>':
         break;
 
     default:
-        pzText = strchr(pzText, '>');
-        if (pzText != NULL)
-            pzText++;
-        return pzText;
+        txt = strchr(txt, '>');
+        if (txt != NULL)
+            txt++;
+        return txt;
     }
 
     /*
-     *  If we are here, we have a value.  "pzText" points to a closing angle
+     *  If we are here, we have a value.  "txt" points to a closing angle
      *  bracket.  Separate the name from the value for a moment.
      */
     *pcNulPoint = NUL;
-    pzData = ++pzText;
-    pzText = trim_xml_text(pzText, pzName, mode);
-    if (pzText == NULL)
-        return pzText;
+    pzData = ++txt;
+    txt = trim_xml_text(txt, pzName, mode);
+    if (txt == NULL)
+        return txt;
 
     /*
      *  Rejoin the name and value for parsing by "loadOptionLine()".
      *  Erase any attributes parsed by "parse_attrs()".
      */
-    memset(pcNulPoint, ' ', pzData - pcNulPoint);
+    memset(pcNulPoint, ' ', (size_t)(pzData - pcNulPoint));
 
     /*
      *  If we are getting a "string" value that is to be cooked,
@@ -956,40 +980,39 @@ handle_struct(tOptions * pOpts, tOptState * pOS, char * pzText, int dir)
      *  "pzName" points to what looks like text for one option/configurable.
      *  It is NUL terminated.  Process it.
      */
-    loadOptionLine(pOpts, pOS, pzName, dir, mode);
+    loadOptionLine(opts, ost, pzName, dir, mode);
 
-    return pzText;
+    return txt;
 }
 
-
 /**
  *  Load a configuration file.  This may be invoked either from
  *  scanning the "homerc" list, or from a specific file request.
  *  (see "optionFileLoad()", the implementation for --load-opts)
  */
 LOCAL void
-intern_file_load(tOptions* pOpts)
+intern_file_load(tOptions * opts)
 {
     uint32_t  svfl;
     int       idx;
     int       inc;
-    char      zFileName[ AG_PATH_MAX+1 ];
+    char      f_name[ AG_PATH_MAX+1 ];
 
-    if (pOpts->papzHomeList == NULL)
+    if (opts->papzHomeList == NULL)
         return;
 
-    svfl = pOpts->fOptSet;
+    svfl = opts->fOptSet;
     inc  = DIRECTION_PRESET;
 
     /*
      *  Never stop on errors in config files.
      */
-    pOpts->fOptSet &= ~OPTPROC_ERRSTOP;
+    opts->fOptSet &= ~OPTPROC_ERRSTOP;
 
     /*
      *  Find the last RC entry (highest priority entry)
      */
-    for (idx = 0; pOpts->papzHomeList[ idx+1 ] != NULL; ++idx)  ;
+    for (idx = 0; opts->papzHomeList[ idx+1 ] != NULL; ++idx)  ;
 
     /*
      *  For every path in the home list, ...  *TWICE* We start at the last
@@ -998,8 +1021,8 @@ intern_file_load(tOptions* pOpts)
      *  Then we go back up, doing the normal options.
      */
     for (;;) {
-        struct stat StatBuf;
-        cch_t*  pzPath;
+        struct stat sb;
+        cch_t *  path;
 
         /*
          *  IF we've reached the bottom end, change direction
@@ -1009,18 +1032,18 @@ intern_file_load(tOptions* pOpts)
             idx = 0;
         }
 
-        pzPath = pOpts->papzHomeList[ idx ];
+        path = opts->papzHomeList[ idx ];
 
         /*
          *  IF we've reached the top end, bail out
          */
-        if (pzPath == NULL)
+        if (path == NULL)
             break;
 
         idx += inc;
 
-        if (! optionMakePath(zFileName, (int)sizeof(zFileName),
-                             pzPath, pOpts->pzProgPath))
+        if (! optionMakePath(f_name, (int)sizeof(f_name),
+                             path, opts->pzProgPath))
             continue;
 
         /*
@@ -1028,47 +1051,46 @@ intern_file_load(tOptions* pOpts)
          *  THEN append the Resource Configuration file name
          *  ELSE we must have the complete file name
          */
-        if (stat(zFileName, &StatBuf) != 0)
+        if (stat(f_name, &sb) != 0)
             continue; /* bogus name - skip the home list entry */
 
-        if (S_ISDIR(StatBuf.st_mode)) {
-            size_t len = strlen(zFileName);
-            size_t nln = strlen(pOpts->pzRcName) + 1;
-            char * pz  = zFileName + len;
+        if (S_ISDIR(sb.st_mode)) {
+            size_t len = strlen(f_name);
+            size_t nln = strlen(opts->pzRcName) + 1;
+            char * pz  = f_name + len;
 
-            if (len + 1 + nln >= sizeof(zFileName))
+            if (len + 1 + nln >= sizeof(f_name))
                 continue;
 
             if (pz[-1] != DIRCH)
                 *(pz++) = DIRCH;
-            memcpy(pz, pOpts->pzRcName, nln);
+            memcpy(pz, opts->pzRcName, nln);
         }
 
-        file_preset(pOpts, zFileName, inc);
+        file_preset(opts, f_name, inc);
 
         /*
          *  IF we are now to skip config files AND we are presetting,
          *  THEN change direction.  We must go the other way.
          */
         {
-            tOptDesc * pOD = pOpts->pOptDesc + pOpts->specOptIdx.save_opts+1;
-            if (DISABLED_OPT(pOD) && PRESETTING(inc)) {
+            tOptDesc * od = opts->pOptDesc + opts->specOptIdx.save_opts + 1;
+            if (DISABLED_OPT(od) && PRESETTING(inc)) {
                 idx -= inc;  /* go back and reprocess current file */
                 inc =  DIRECTION_PROCESS;
             }
         }
     } /* twice for every path in the home list, ... */
 
-    pOpts->fOptSet = svfl;
+    opts->fOptSet = svfl;
 }
 
-
 /*=export_func optionFileLoad
  *
  * what: Load the locatable config files, in order
  *
- * arg:  + tOptions*   + pOpts  + program options descriptor +
- * arg:  + char const* + pzProg + program name +
+ * arg:  + tOptions*   + opts + program options descriptor +
+ * arg:  + char const* + prog + program name +
  *
  * ret_type:  int
  * ret_desc:  0 -> SUCCESS, -1 -> FAILURE
@@ -1097,330 +1119,254 @@ intern_file_load(tOptions* pOpts)
  *       always be returned.
 =*/
 int
-optionFileLoad(tOptions * pOpts, char const * pzProgram)
+optionFileLoad(tOptions * opts, char const * prog)
 {
-    if (! SUCCESSFUL(validate_struct(pOpts, pzProgram)))
+    if (! SUCCESSFUL(validate_struct(opts, prog)))
         return -1;
 
+    /*
+     * The pointer to the program name is "const".  However, the
+     * structure is in writable memory, so we coerce the address
+     * of this pointer to point to writable memory.
+     */
     {
         char const ** pp =
-            (char const **)(void *)&(pOpts->pzProgName);
-        *pp = pzProgram;
+            (char const **)(void *)&(opts->pzProgName);
+        *pp = prog;
     }
 
-    intern_file_load(pOpts);
+    intern_file_load(opts);
     return 0;
 }
 
-
 /*=export_func  optionLoadOpt
  * private:
  *
  * what:  Load an option rc/ini file
- * arg:   + tOptions* + pOpts    + program options descriptor +
- * arg:   + tOptDesc* + pOptDesc + the descriptor for this arg +
+ * arg:   + tOptions* + opts  + program options descriptor +
+ * arg:   + tOptDesc* + odesc + the descriptor for this arg +
  *
  * doc:
  *  Processes the options found in the file named with
- *  pOptDesc->optArg.argString.
+ *  odesc->optArg.argString.
 =*/
 void
-optionLoadOpt(tOptions * pOpts, tOptDesc * pOptDesc)
+optionLoadOpt(tOptions * opts, tOptDesc * odesc)
 {
     struct stat sb;
 
+    if (opts <= OPTPROC_EMIT_LIMIT)
+        return;
+
     /*
      *  IF the option is not being disabled, THEN load the file.  There must
      *  be a file.  (If it is being disabled, then the disablement processing
      *  already took place.  It must be done to suppress preloading of ini/rc
      *  files.)
      */
-    if (  DISABLED_OPT(pOptDesc)
-       || ((pOptDesc->fOptState & OPTST_RESET) != 0))
+    if (  DISABLED_OPT(odesc)
+       || ((odesc->fOptState & OPTST_RESET) != 0))
         return;
 
-    if (stat(pOptDesc->optArg.argString, &sb) != 0) {
-        if ((pOpts->fOptSet & OPTPROC_ERRSTOP) == 0)
+    if (stat(odesc->optArg.argString, &sb) != 0) {
+        if ((opts->fOptSet & OPTPROC_ERRSTOP) == 0)
             return;
 
-        fprintf(stderr, zFSErrOptLoad, errno, strerror(errno),
-                pOptDesc->optArg.argString);
-        exit(EX_NOINPUT);
+        fserr_exit(opts->pzProgName, "stat", odesc->optArg.argString);
         /* NOT REACHED */
     }
 
     if (! S_ISREG(sb.st_mode)) {
-        if ((pOpts->fOptSet & OPTPROC_ERRSTOP) == 0)
+        if ((opts->fOptSet & OPTPROC_ERRSTOP) == 0)
             return;
-
-        fprintf(stderr, zNotFile, pOptDesc->optArg.argString);
-        exit(EX_NOINPUT);
+        errno = EINVAL;
+        fserr_exit(opts->pzProgName, "stat", odesc->optArg.argString);
         /* NOT REACHED */
     }
 
-    file_preset(pOpts, pOptDesc->optArg.argString, DIRECTION_CALLED);
+    file_preset(opts, odesc->optArg.argString, DIRECTION_CALLED);
 }
 
-
 /**
  *  Parse the various attributes of an XML-styled config file entry
+ *
+ * @returns NULL on failure, otherwise the scan point
  */
-LOCAL char*
-parse_attrs(tOptions * pOpts, char * pzText, tOptionLoadMode * pMode,
+LOCAL char const *
+parse_attrs(tOptions * opts, char const * txt, tOptionLoadMode * pMode,
             tOptionValue * pType)
 {
-    size_t len;
-
-    do  {
-        if (! IS_WHITESPACE_CHAR(*pzText))
-            switch (*pzText) {
-            case '/': pType->valType = OPARG_TYPE_NONE;
-            case '>': return pzText;
-
-            default:
-            case NUL: return NULL;
-            }
+    size_t len = 0;
 
-        pzText = SPN_WHITESPACE_CHARS(pzText+1);
-        len = SPN_LOWER_CASE_CHARS(pzText) - pzText;
+    for (;;) {
+        len = (size_t)(SPN_LOWER_CASE_CHARS(txt) - txt);
 
-        switch (find_xat_attribute_id(pzText, len)) {
-        case XAT_KWD_TYPE:
-            pzText = parse_value(pzText+len, pType);
+        /*
+         * The enumeration used in this switch is derived from this switch
+         * statement itself.  The "find_option_xat_attribute_cmd" function
+         * will return XAT_CMD_MEMBERS for the "txt" string value
+         * "members", etc.
+         */
+        switch (find_option_xat_attribute_cmd(txt, len)) {
+        case XAT_CMD_TYPE:
+            txt = parse_value(txt+len, pType);
             break;
 
-        case XAT_KWD_WORDS:
-            pzText = parse_keyword(pOpts, pzText+len, pType);
+        case XAT_CMD_WORDS:
+            txt = parse_keyword(opts, txt+len, pType);
             break;
 
-        case XAT_KWD_MEMBERS:
-            pzText = parse_set_mem(pOpts, pzText+len, pType);
+        case XAT_CMD_MEMBERS:
+            txt = parse_set_mem(opts, txt+len, pType);
             break;
 
-        case XAT_KWD_COOKED:
-            pzText += len;
-            if (! IS_END_XML_TOKEN_CHAR(*pzText))
+        case XAT_CMD_COOKED:
+            txt += len;
+            if (! IS_END_XML_TOKEN_CHAR(*txt))
                 goto invalid_kwd;
 
             *pMode = OPTION_LOAD_COOKED;
             break;
 
-        case XAT_KWD_UNCOOKED:
-            pzText += len;
-            if (! IS_END_XML_TOKEN_CHAR(*pzText))
+        case XAT_CMD_UNCOOKED:
+            txt += len;
+            if (! IS_END_XML_TOKEN_CHAR(*txt))
                 goto invalid_kwd;
 
             *pMode = OPTION_LOAD_UNCOOKED;
             break;
 
-        case XAT_KWD_KEEP:
-            pzText += len;
-            if (! IS_END_XML_TOKEN_CHAR(*pzText))
+        case XAT_CMD_KEEP:
+            txt += len;
+            if (! IS_END_XML_TOKEN_CHAR(*txt))
                 goto invalid_kwd;
 
             *pMode = OPTION_LOAD_KEEP;
             break;
 
         default:
-        case XAT_KWD_INVALID:
+        case XAT_INVALID_CMD:
         invalid_kwd:
             pType->valType = OPARG_TYPE_NONE;
-            return skip_unkn(pzText);
+            return skip_unkn(txt);
         }
-    } while (pzText != NULL);
 
-    return pzText;
+        if (txt == NULL)
+            return NULL;
+        txt = SPN_WHITESPACE_CHARS(txt);
+        switch (*txt) {
+            case '/': pType->valType = OPARG_TYPE_NONE;
+                      /* FALLTHROUGH */
+            case '>': return txt;
+        }
+        if (! IS_LOWER_CASE_CHAR(*txt))
+            return NULL;
+    }
 }
 
-
 /**
- *  "pzText" points to the character after "words=".
+ *  "txt" points to the character after "words=".
  *  What should follow is a name of a keyword (enumeration) list.
+ *
+ *  @param     opts  unused
+ *  @param[in] txt   keyword to skip over
+ *  @param     type  unused value type
+ *  @returns   pointer after skipped text
  */
-static char*
-parse_keyword(tOptions * pOpts, char * pzText, tOptionValue * pType)
+static char const *
+parse_keyword(tOptions * opts, char const * txt, tOptionValue * typ)
 {
-    (void)pOpts;
-    (void)pType;
+    (void)opts;
+    (void)typ;
 
-    return skip_unkn(pzText);
+    return skip_unkn(txt);
 }
 
-
 /**
- *  "pzText" points to the character after "members="
+ *  "txt" points to the character after "members="
  *  What should follow is a name of a "set membership".
  *  A collection of bit flags.
+ *
+ *  @param     opts  unused
+ *  @param[in] txt   keyword to skip over
+ *  @param     type  unused value type
+ *  @returns   pointer after skipped text
  */
-static char*
-parse_set_mem(tOptions * pOpts, char * pzText, tOptionValue * pType)
+static char const *
+parse_set_mem(tOptions * opts, char const * txt, tOptionValue * typ)
 {
-    (void)pOpts;
-    (void)pType;
+    (void)opts;
+    (void)typ;
 
-    return skip_unkn(pzText);
+    return skip_unkn(txt);
 }
 
-
 /**
- *  "pzText" points to the character after "type="
+ *  parse the type.  The keyword "type" was found, now figure out
+ *  the type that follows the type.
+ *
+ *  @param[in]  txt  points to the '=' character after the "type" keyword.
+ *  @param[out] typ  where to store the type found
+ *  @returns    the next byte after the type name
  */
-static char *
-parse_value(char * pzText, tOptionValue * pType)
+static char const *
+parse_value(char const * txt, tOptionValue * typ)
 {
     size_t len = 0;
 
-    if (*(pzText++) != '=')
+    if (*(txt++) != '=')
         goto woops;
 
-    len = SPN_OPTION_NAME_CHARS(pzText) - pzText;
+    len = (size_t)(SPN_OPTION_NAME_CHARS(txt) - txt);
 
-    if ((len == 0) || (! IS_END_XML_TOKEN_CHAR(pzText[len]))) {
+    if ((len == 0) || (! IS_END_XML_TOKEN_CHAR(txt[len]))) {
     woops:
-        pType->valType = OPARG_TYPE_NONE;
-        return skip_unkn(pzText + len);
+        typ->valType = OPARG_TYPE_NONE;
+        return skip_unkn(txt + len);
     }
 
-    switch (find_value_type_id(pzText, len)) {
+    /*
+     * The enumeration used in this switch is derived from this switch
+     * statement itself.  The "find_option_value_type_cmd" function
+     * will return VTP_CMD_INTEGER for the "txt" string value
+     * "integer", etc.
+     */
+    switch (find_option_value_type_cmd(txt, len)) {
     default:
-    case VTP_KWD_INVALID: goto woops;
+    case VTP_INVALID_CMD: goto woops;
 
-    case VTP_KWD_STRING:
-        pType->valType = OPARG_TYPE_STRING;
+    case VTP_CMD_STRING:
+        typ->valType = OPARG_TYPE_STRING;
         break;
 
-    case VTP_KWD_INTEGER:
-        pType->valType = OPARG_TYPE_NUMERIC;
+    case VTP_CMD_INTEGER:
+        typ->valType = OPARG_TYPE_NUMERIC;
         break;
 
-    case VTP_KWD_BOOL:
-    case VTP_KWD_BOOLEAN:
-        pType->valType = OPARG_TYPE_BOOLEAN;
+    case VTP_CMD_BOOL:
+    case VTP_CMD_BOOLEAN:
+        typ->valType = OPARG_TYPE_BOOLEAN;
         break;
 
-    case VTP_KWD_KEYWORD:
-        pType->valType = OPARG_TYPE_ENUMERATION;
+    case VTP_CMD_KEYWORD:
+        typ->valType = OPARG_TYPE_ENUMERATION;
         break;
 
-    case VTP_KWD_SET:
-    case VTP_KWD_SET_MEMBERSHIP:
-        pType->valType = OPARG_TYPE_MEMBERSHIP;
+    case VTP_CMD_SET:
+    case VTP_CMD_SET_MEMBERSHIP:
+        typ->valType = OPARG_TYPE_MEMBERSHIP;
         break;
 
-    case VTP_KWD_NESTED:
-    case VTP_KWD_HIERARCHY:
-        pType->valType = OPARG_TYPE_HIERARCHY;
+    case VTP_CMD_NESTED:
+    case VTP_CMD_HIERARCHY:
+        typ->valType = OPARG_TYPE_HIERARCHY;
     }
 
-    return pzText + len;
-}
-
-
-/**
- *  Skip over some unknown attribute
- */
-static char *
-skip_unkn(char* pzText)
-{
-    for (;; pzText++) {
-        if (IS_END_XML_TOKEN_CHAR(*pzText))  return pzText;
-        if (*pzText == NUL) return NULL;
-    }
+    return txt + len;
 }
 
-
-/**
- *  Make sure the option descriptor is there and that we understand it.
- *  This should be called from any user entry point where one needs to
- *  worry about validity.  (Some entry points are free to assume that
- *  the call is not the first to the library and, thus, that this has
- *  already been called.)
+/** @}
  *
- *  Upon successful completion, pzProgName and pzProgPath are set.
- *
- *  @param pOpts      program options descriptor
- *  @param pzProgram  name of program, from argv[]
- *  @returns SUCCESS or FAILURE
- */
-LOCAL tSuccess
-validate_struct(tOptions * pOpts, char const * pzProgram)
-{
-    if (pOpts == NULL) {
-        fputs(zAO_Bad, stderr);
-        return FAILURE;
-    }
-
-    /*
-     *  IF the client has enabled translation and the translation procedure
-     *  is available, then go do it.
-     */
-    if (  ((pOpts->fOptSet & OPTPROC_TRANSLATE) != 0)
-       && (pOpts->pTransProc != NULL) ) {
-        /*
-         *  If option names are not to be translated at all, then do not do
-         *  it for configuration parsing either.  (That is the bit that really
-         *  gets tested anyway.)
-         */
-        if ((pOpts->fOptSet & OPTPROC_NO_XLAT_MASK) == OPTPROC_NXLAT_OPT)
-            pOpts->fOptSet |= OPTPROC_NXLAT_OPT_CFG;
-        (*pOpts->pTransProc)();
-        pOpts->fOptSet &= ~OPTPROC_TRANSLATE;
-    }
-
-    /*
-     *  IF the struct version is not the current, and also
-     *     either too large (?!) or too small,
-     *  THEN emit error message and fail-exit
-     */
-    if (  ( pOpts->structVersion  != OPTIONS_STRUCT_VERSION  )
-       && (  (pOpts->structVersion > OPTIONS_STRUCT_VERSION  )
-          || (pOpts->structVersion < OPTIONS_MINIMUM_VERSION )
-       )  )  {
-        static char const aover[] =
-            STR(AO_CURRENT)":"STR(AO_REVISION)":"STR(AO_AGE)"\n";
-
-        fprintf(stderr, zAO_Err, pzProgram, NUM_TO_VER(pOpts->structVersion));
-        if (pOpts->structVersion > OPTIONS_STRUCT_VERSION )
-            fputs(zAO_Big, stderr);
-        else
-            fputs(zAO_Sml, stderr);
-
-        fwrite(aover, sizeof(aover) - 1, 1, stderr);
-        return FAILURE;
-    }
-
-    /*
-     *  If the program name hasn't been set, then set the name and the path
-     *  and the set of equivalent characters.
-     */
-    if (pOpts->pzProgName == NULL) {
-        char const *  pz = strrchr(pzProgram, DIRCH);
-        char const ** pp =
-            (char const **)(void **)&(pOpts->pzProgName);
-
-        if (pz != NULL) {
-            *pp = pz+1;
-        } else {
-            *pp = pzProgram;
-            pz = pathfind(getenv("PATH"), (char *)pzProgram, "rx");
-            if (pz != NULL)
-                pzProgram = (void *)pz;
-        }
-
-        pp  = (char const **)(void **)&(pOpts->pzProgPath);
-        *pp = pzProgram;
-
-        /*
-         *  when comparing long names, these are equivalent
-         */
-        strequate(zSepChars);
-    }
-
-    return SUCCESS;
-}
-
-
-/**
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index f34a6ed..7c08b87 100644 (file)
@@ -1,14 +1,16 @@
 /**
  * \file cook.c
  *
- *  Time-stamp:      "2012-02-28 19:40:47 bkorb"
- *
  *  This file contains the routines that deal with processing quoted strings
  *  into an internal format.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /* = = = START-STATIC-FORWARD = = = */
@@ -59,9 +61,9 @@ contiguous_quote(char ** pps, char * pq, int * lnct_p);
  * err:  @code{NULL} is returned if the string is mal-formed.
 =*/
 unsigned int
-ao_string_cook_escape_char(char const* pzIn, char* pRes, uint_t nl)
+ao_string_cook_escape_char(char const * pzIn, char * pRes, uint_t nl)
 {
-    unsigned int  res = 1;
+    unsigned int res = 1;
 
     switch (*pRes = *pzIn++) {
     case NUL:         /* NUL - end of input string */
@@ -86,13 +88,17 @@ ao_string_cook_escape_char(char const* pzIn, char* pRes, uint_t nl)
     case 'x':
     case 'X':         /* HEX Escape       */
         if (IS_HEX_DIGIT_CHAR(*pzIn))  {
-            char z[4], *pz = z;
+            char z[4];
+            unsigned int ct = 0;
 
-            do *(pz++) = *(pzIn++);
-            while (IS_HEX_DIGIT_CHAR(*pzIn) && (pz < z + 2));
-            *pz = NUL;
-            *pRes = (unsigned char)strtoul(z, NULL, 16);
-            res += pz - z;
+            do  {
+                z[ct] = pzIn[ct];
+                if (++ct >= 2)
+                    break;
+            } while (IS_HEX_DIGIT_CHAR(pzIn[ct]));
+            z[ct] = NUL;
+            *pRes = (char)strtoul(z, NULL, 16);
+            return ct + 1;
         }
         break;
 
@@ -101,24 +107,29 @@ ao_string_cook_escape_char(char const* pzIn, char* pRes, uint_t nl)
     {
         /*
          *  IF the character copied was an octal digit,
-         *  THEN set the output character to an octal value
+         *  THEN set the output character to an octal value.
+         *  The 3 octal digit result might exceed 0xFF, so check it.
          */
-        char z[4], *pz = z + 1;
+        char z[4];
         unsigned long val;
-        z[0] = *pRes;
+        unsigned int  ct = 0;
+
+        z[ct++] = *--pzIn;
+        while (IS_OCT_DIGIT_CHAR(pzIn[ct])) {
+            z[ct] = pzIn[ct];
+            if (++ct >= 3)
+                break;
+        }
 
-        while (IS_OCT_DIGIT_CHAR(*pzIn) && (pz < z + 3))
-            *(pz++) = *(pzIn++);
-        *pz = NUL;
+        z[ct] = NUL;
         val = strtoul(z, NULL, 8);
         if (val > 0xFF)
             val = 0xFF;
-        *pRes = (unsigned char)val;
-        res = pz - z;
-        break;
+        *pRes = (char)val;
+        return ct;
     }
 
-    default: ;
+    default: /* quoted character is result character */;
     }
 
     return res;
@@ -282,7 +293,8 @@ ao_string_cook(char * pzScan, int * lnct_p)
              *  THEN we do the full escape character processing
              */
             else if (q != '\'') {
-                int ct = ao_string_cook_escape_char(pzS, pzD-1, (uint_t)NL);
+                unsigned int ct;
+                ct = ao_string_cook_escape_char(pzS, pzD-1, (uint_t)NL);
                 if (ct == 0)
                     return NULL;
 
@@ -302,7 +314,9 @@ ao_string_cook(char * pzScan, int * lnct_p)
         }     /* switch (*(pzD++) = *(pzS++))    */
     }         /* for (;;)                        */
 }
-/*
+
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 2a9f9bc..6529083 100644 (file)
@@ -2,16 +2,19 @@
 /**
  * \file enumeration.c
  *
- * Time-stamp:      "2012-03-31 13:22:33 bkorb"
- *
- *   Automated Options Paged Usage module.
+ *  Handle options with enumeration names and bit mask bit names
+ *  for their arguments.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This routine will run run-on options through a pager so the
  *  user may examine, print or edit them at their leisure.
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 static char const * pz_enum_err_fmt;
@@ -38,14 +41,10 @@ enum_err(tOptions * pOpts, tOptDesc * pOD,
          char const * const * paz_names, int name_ct);
 
 static uintptr_t
-find_name(char const * pzName, tOptions * pOpts, tOptDesc * pOD,
+find_name(char const * name, tOptions * pOpts, tOptDesc * pOD,
           char const * const *  paz_names, unsigned int name_ct);
 
 static void
-set_memb_usage(tOptions * pOpts, tOptDesc * pOD, char const * const * paz_names,
-               unsigned int name_ct);
-
-static void
 set_memb_shell(tOptions * pOpts, tOptDesc * pOD, char const * const * paz_names,
                unsigned int name_ct);
 
@@ -105,7 +104,7 @@ enum_err(tOptions * pOpts, tOptDesc * pOD,
      */
     if (max_len > 35) {
         do  {
-            fprintf(option_usage_fp, ENUM_ERR_SEP_LINE_FMT, *(paz_names++));
+            fprintf(option_usage_fp, ENUM_ERR_LINE, *(paz_names++));
         } while (--ct_down > 0);
     }
 
@@ -128,7 +127,7 @@ enum_err(tOptions * pOpts, tOptDesc * pOD,
         unsigned int ent_no = 0;
         char  zFmt[16];  /* format for all-but-last entries on a line */
 
-        sprintf(zFmt, ENUM_ERR_STR_WIDTH_FMT, (int)max_len);
+        sprintf(zFmt, ENUM_ERR_WIDTH, (int)max_len);
         max_len = 78 / max_len; /* max_len is now max entries on a line */
         fputs(TWO_SPACES_STR, option_usage_fp);
 
@@ -170,14 +169,14 @@ enum_err(tOptions * pOpts, tOptDesc * pOD,
  * Convert a name or number into a binary number.
  * "~0" and "-1" will be converted to the largest value in the enumeration.
  *
- * @param pzName     the keyword name (number) to convert
+ * @param name       the keyword name (number) to convert
  * @param pOpts      the program's option descriptor
  * @param pOD        the option descriptor for this option
  * @param paz_names  the list of keywords for this option
  * @param name_ct    the count of keywords
  */
 static uintptr_t
-find_name(char const * pzName, tOptions * pOpts, tOptDesc * pOD,
+find_name(char const * name, tOptions * pOpts, tOptDesc * pOD,
           char const * const *  paz_names, unsigned int name_ct)
 {
     /*
@@ -185,23 +184,23 @@ find_name(char const * pzName, tOptions * pOpts, tOptDesc * pOD,
      *  The result gets stashed in a char* pointer.
      */
     uintptr_t   res = name_ct;
-    size_t      len = strlen((char*)pzName);
+    size_t      len = strlen((char*)name);
     uintptr_t   idx;
 
-    if (IS_DEC_DIGIT_CHAR(*pzName)) {
-        char * pz = (char *)(void *)pzName;
+    if (IS_DEC_DIGIT_CHAR(*name)) {
+        char * pz = (char *)(void *)name;
         unsigned long val = strtoul(pz, &pz, 0);
         if ((*pz == NUL) && (val < name_ct))
             return (uintptr_t)val;
-        pz_enum_err_fmt = zTooLarge;
+        pz_enum_err_fmt = znum_too_large;
         option_usage_fp = stderr;
         enum_err(pOpts, pOD, paz_names, (int)name_ct);
         return name_ct;
     }
 
-    if (IS_INVERSION_CHAR(*pzName) && (pzName[2] == NUL)) {
-        if (  ((pzName[0] == '~') && (pzName[1] == '0'))
-           || ((pzName[0] == '-') && (pzName[1] == '1')))
+    if (IS_INVERSION_CHAR(*name) && (name[2] == NUL)) {
+        if (  ((name[0] == '~') && (name[1] == '0'))
+           || ((name[0] == '-') && (name[1] == '1')))
         return (uintptr_t)(name_ct - 1);
         goto oops;
     }
@@ -211,23 +210,23 @@ find_name(char const * pzName, tOptions * pOpts, tOptDesc * pOD,
      *  Multiple partial matches means we have an ambiguous match.
      */
     for (idx = 0; idx < name_ct; idx++) {
-        if (strncmp((char*)paz_names[idx], (char*)pzName, len) == 0) {
+        if (strncmp((char*)paz_names[idx], (char*)name, len) == 0) {
             if (paz_names[idx][len] == NUL)
                 return idx;  /* full match */
 
             if (res == name_ct)
                 res = idx; /* save partial match */
             else
-                res = ~0;  /* may yet find full match */
+                res = (uintptr_t)~0;  /* may yet find full match */
         }
     }
 
     if (res < name_ct)
         return res; /* partial match */
 
-oops:
+ oops:
 
-    pz_enum_err_fmt = (res == name_ct) ? zNoKey : zAmbigKey;
+    pz_enum_err_fmt = (res == name_ct) ? zNoKey : zambiguous_key;
     option_usage_fp = stderr;
     enum_err(pOpts, pOD, paz_names, (int)name_ct);
     return name_ct;
@@ -249,8 +248,8 @@ oops:
 char const *
 optionKeywordName(tOptDesc * pOD, unsigned int enum_val)
 {
-    tOptDesc od = {
-        .optArg.argEnum = enum_val };
+    tOptDesc od = { 0 };
+    od.optArg.argEnum = enum_val;
 
     (*(pOD->pOptProc))(OPTPROC_RETURN_VALNAME, &od );
     return od.optArg.argString;
@@ -295,7 +294,7 @@ optionEnumerationVal(tOptions * pOpts, tOptDesc * pOD,
 
     case (uintptr_t)OPTPROC_EMIT_SHELL:
     {
-        unsigned int ix = pOD->optArg.argEnum;
+        unsigned int ix = (unsigned int)pOD->optArg.argEnum;
         /*
          *  print the name string.
          */
@@ -309,7 +308,7 @@ optionEnumerationVal(tOptions * pOpts, tOptDesc * pOD,
 
     case (uintptr_t)OPTPROC_RETURN_VALNAME:
     {
-        unsigned int ix = pOD->optArg.argEnum;
+        unsigned int ix = (unsigned int)pOD->optArg.argEnum;
         /*
          *  Replace the enumeration value with the name string.
          */
@@ -321,6 +320,9 @@ optionEnumerationVal(tOptions * pOpts, tOptDesc * pOD,
     }
 
     default:
+        if ((pOD->fOptState & OPTST_RESET) != 0)
+            break;
+
         res = find_name(pOD->optArg.argString, pOpts, pOD, paz_names, name_ct);
 
         if (pOD->fOptState & OPTST_ALLOC_ARG) {
@@ -334,17 +336,6 @@ optionEnumerationVal(tOptions * pOpts, tOptDesc * pOD,
 }
 
 static void
-set_memb_usage(tOptions * pOpts, tOptDesc * pOD, char const * const * paz_names,
-               unsigned int name_ct)
-{
-    /*
-     *  print the list of enumeration names.
-     */
-    (void)pOpts;
-    enum_err(OPTPROC_EMIT_USAGE, pOD, paz_names, (int)name_ct );
-}
-
-static void
 set_memb_shell(tOptions * pOpts, tOptDesc * pOD, char const * const * paz_names,
                unsigned int name_ct)
 {
@@ -443,7 +434,7 @@ optionSetMembers(tOptions * pOpts, tOptDesc * pOD,
      */
     switch ((uintptr_t)pOpts) {
     case (uintptr_t)OPTPROC_EMIT_USAGE:
-        set_memb_usage(pOpts, pOD, paz_names, name_ct);
+        enum_err(OPTPROC_EMIT_USAGE, pOD, paz_names, name_ct);
         return;
 
     case (uintptr_t)OPTPROC_EMIT_SHELL:
@@ -478,7 +469,7 @@ optionSetMembers(tOptions * pOpts, tOptDesc * pOD,
             if (iv)
                 pzArg = SPN_WHITESPACE_CHARS(pzArg+1);
 
-            len = BRK_SET_SEPARATOR_CHARS(pzArg) - pzArg;
+            len = (int)(BRK_SET_SEPARATOR_CHARS(pzArg) - pzArg);
             if (len == 0)
                 break;
 
@@ -510,7 +501,8 @@ optionSetMembers(tOptions * pOpts, tOptDesc * pOD,
                         p = pzArg;
                     }
 
-                    shift_ct = find_name(p, pOpts, pOD, paz_names, name_ct);
+                    shift_ct = (unsigned int)
+                        find_name(p, pOpts, pOD, paz_names, name_ct);
                     if (shift_ct >= name_ct) {
                         pOD->optCookie = (void*)0;
                         return;
@@ -534,10 +526,11 @@ optionSetMembers(tOptions * pOpts, tOptDesc * pOD,
     }
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
  * indent-tabs-mode: nil
  * End:
- * end of autoopts/enumeration.c */
+ * end of autoopts/enum.c */
index 4dd18fa..dacb551 100644 (file)
@@ -2,16 +2,18 @@
 /**
  * \file environment.c
  *
- * Time-stamp:      "2012-04-01 05:59:15 bkorb"
- *
  *  This file contains all of the routines that must be linked into
  *  an executable to use the generated option processing.  The optional
  *  routines are in separately compiled modules so that they will not
  *  necessarily be linked in.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /* = = = START-STATIC-FORWARD = = = */
@@ -45,30 +47,30 @@ do_env_opt(tOptState * os, char * env_name,
 LOCAL void
 doPrognameEnv(tOptions * pOpts, teEnvPresetType type)
 {
-    char const *  pczOptStr = getenv(pOpts->pzPROGNAME);
-    token_list_t* pTL;
-    int           sv_argc;
-    tAoUI         sv_flag;
-    char **       sv_argv;
+    char const *        env_opts = getenv(pOpts->pzPROGNAME);
+    token_list_t*       pTL;
+    int                 sv_argc;
+    proc_state_mask_t   sv_flag;
+    char **             sv_argv;
 
     /*
      *  No such beast?  Then bail now.
      */
-    if (pczOptStr == NULL)
+    if (env_opts == NULL)
         return;
 
     /*
      *  Tokenize the string.  If there's nothing of interest, we'll bail
      *  here immediately.
      */
-    pTL = ao_string_tokenize(pczOptStr);
+    pTL = ao_string_tokenize(env_opts);
     if (pTL == NULL)
         return;
 
     /*
      *  Substitute our $PROGNAME argument list for the real one
      */
-    sv_argc = pOpts->origArgCt;
+    sv_argc = (int)pOpts->origArgCt;
     sv_argv = pOpts->origArgVect;
     sv_flag = pOpts->fOptSet;
 
@@ -82,7 +84,7 @@ doPrognameEnv(tOptions * pOpts, teEnvPresetType type)
         uintptr_t v = (uintptr_t)(pTL->tkn_list);
         pOpts->origArgVect = (void *)(v - sizeof(char *));
     }
-    pOpts->origArgCt   = pTL->tkn_ct   + 1;
+    pOpts->origArgCt   = (unsigned int)pTL->tkn_ct   + 1;
     pOpts->fOptSet    &= ~OPTPROC_ERRSTOP;
 
     pOpts->curOptIdx   = 1;
@@ -108,7 +110,7 @@ doPrognameEnv(tOptions * pOpts, teEnvPresetType type)
      */
     free(pTL);
     pOpts->origArgVect = sv_argv;
-    pOpts->origArgCt   = sv_argc;
+    pOpts->origArgCt   = (unsigned int)sv_argc;
     pOpts->fOptSet     = sv_flag;
 }
 
@@ -127,6 +129,8 @@ do_env_opt(tOptState * os, char * env_name,
        && (streqvcmp(os->pzOptArg, os->pOD->pz_DisablePfx) == 0)) {
         os->flags |= OPTST_DISABLED;
         os->pzOptArg = NULL;
+        handle_opt(pOpts, os);
+        return;
     }
 
     switch (type) {
@@ -206,7 +210,7 @@ env_presets(tOptions * pOpts, teEnvPresetType type)
 
     pzFlagName = zEnvName
         + snprintf(zEnvName, sizeof(zEnvName), "%s_", pOpts->pzPROGNAME);
-    spaceLeft = AO_NAME_SIZE - (pzFlagName - zEnvName) - 1;
+    spaceLeft = AO_NAME_SIZE - (unsigned long)(pzFlagName - zEnvName) - 1;
 
     for (;ct-- > 0; st.pOD++) {
         size_t nln;
@@ -244,7 +248,7 @@ env_presets(tOptions * pOpts, teEnvPresetType type)
             return;
 
         nln = strlen(st.pOD->pz_NAME) + 1;
-            
+
         if (nln > spaceLeft)
             return;
 
@@ -253,7 +257,8 @@ env_presets(tOptions * pOpts, teEnvPresetType type)
     }
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 5a5b3eb..9218b5f 100644 (file)
@@ -2,11 +2,15 @@
 /**
  * \file file.c
  *
- *  Time-stamp:      "2011-08-06 08:49:35 bkorb"
+ * Handle options that have file names for arguments.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /**
@@ -46,9 +50,7 @@ check_existence(teOptFileType ftype, tOptions * pOpts, tOptDesc * pOD)
         if ((stat(fname, &sb) == 0) || (errno != ENOENT)) {
             if (errno == 0)
                 errno = EINVAL;
-            fprintf(stderr, zFSOptError, errno, strerror(errno),
-                    zFSOptErrNoExist, fname, pOD->pz_Name);
-            pOpts->pUsageProc(pOpts, EXIT_FAILURE);
+            fserr_exit(pOpts->pzProgName, "stat", fname);
             /* NOTREACHED */
         }
         /* FALLTHROUGH */
@@ -66,30 +68,25 @@ check_existence(teOptFileType ftype, tOptions * pOpts, tOptDesc * pOD)
              */
             break;
 
-        l = p - fname;
+        l = (size_t)(p - fname);
         p = AGALOC(l + 1, "fname");
         memcpy(p, fname, l);
         p[l] = NUL;
 
-        if ((stat(p, &sb) != 0) || (errno = EINVAL, ! S_ISDIR(sb.st_mode))) {
-            fprintf(stderr, zFSOptError, errno, strerror(errno),
-                    zFSOptErrMayExist, fname, pOD->pz_Name);
-            pOpts->pUsageProc(pOpts, EXIT_FAILURE);
+        if ((stat(p, &sb) != 0) || (errno = EINVAL, ! S_ISDIR(sb.st_mode)))
+            fserr_exit(pOpts->pzProgName, "stat", p);
             /* NOTREACHED */
-        }
+
         AGFREE(p);
         break;
     }
 
     case FTYPE_MODE_MUST_EXIST:
         if (  (stat(fname, &sb) != 0)
-           || (errno = EINVAL, ! S_ISREG(sb.st_mode)) ) {
-            fprintf(stderr, zFSOptError, errno, strerror(errno),
-                    zFSOptErrMustExist, fname,
-                    pOD->pz_Name);
-            pOpts->pUsageProc(pOpts, EXIT_FAILURE);
+           || (errno = EINVAL, ! S_ISREG(sb.st_mode))  )
+            fserr_exit(pOpts->pzProgName, "stat", fname);
             /* NOTREACHED */
-        }
+
         break;
     }
 }
@@ -105,12 +102,9 @@ static void
 open_file_fd(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
 {
     int fd = open(pOD->optArg.argString, mode.file_flags);
-    if (fd < 0) {
-        fprintf(stderr, zFSOptError, errno, strerror(errno),
-                zFSOptErrOpen, pOD->optArg.argString, pOD->pz_Name);
-        pOpts->pUsageProc(pOpts, EXIT_FAILURE);
+    if (fd < 0)
+        fserr_exit(pOpts->pzProgName, "open", pOD->optArg.argString);
         /* NOTREACHED */
-    }
 
     if ((pOD->fOptState & OPTST_ALLOC_ARG) != 0)
         pOD->optCookie = (void *)pOD->optArg.argString;
@@ -131,13 +125,10 @@ open_file_fd(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
 static void
 fopen_file_fp(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
 {
-    FILE* fp = fopen(pOD->optArg.argString, mode.file_mode);
-    if (fp == NULL) {
-        fprintf(stderr, zFSOptError, errno, strerror(errno),
-                zFSOptErrFopen, pOD->optArg.argString, pOD->pz_Name);
-        pOpts->pUsageProc(pOpts, EXIT_FAILURE);
+    FILE * fp = fopen(pOD->optArg.argString, mode.file_mode);
+    if (fp == NULL)
+        fserr_exit(pOpts->pzProgName, "fopen", pOD->optArg.argString);
         /* NOTREACHED */
-    }
 
     if ((pOD->fOptState & OPTST_ALLOC_ARG) != 0)
         pOD->optCookie = (void *)pOD->optArg.argString;
@@ -174,11 +165,11 @@ optionFileCheck(tOptions * pOpts, tOptDesc * pOD,
 
         switch (ftype & FTYPE_MODE_EXIST_MASK) {
         case FTYPE_MODE_MUST_NOT_EXIST:
-            fputs(zFileCannotExist, option_usage_fp);
+            fputs(zFileCannotExist + tab_skip_ct, option_usage_fp);
             break;
 
         case FTYPE_MODE_MUST_EXIST:
-            fputs(zFileMustExist, option_usage_fp);
+            fputs(zFileMustExist + tab_skip_ct, option_usage_fp);
             break;
         }
         return;
@@ -199,7 +190,9 @@ optionFileCheck(tOptions * pOpts, tOptDesc * pOD,
     case FTYPE_MODE_FOPEN_FP: fopen_file_fp(pOpts, pOD, mode); break;
     }
 }
-/*
+
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index f6510ee..e353429 100644 (file)
@@ -3,14 +3,16 @@
  *
  * @brief Hunt for options in the option descriptor list
  *
- *  Time-stamp:      "2012-01-29 19:07:30 bkorb"
- *
  *  This file contains the routines that deal with processing quoted strings
  *  into an internal format.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
+/* = = = START-STATIC-FORWARD = = = */
+static int
+parse_opt(char const ** nm_pp, char ** arg_pp, char * buf, size_t bufsz);
+
+static void
+opt_ambiguities(tOptions * opts, char const * name, int nm_len);
+
+static int
+opt_match_ct(tOptions * opts, char const * name, int nm_len,
+             int * ixp, bool * disable);
+
+static tSuccess
+opt_set(tOptions * opts, char * arg, int idx, bool disable, tOptState * st);
+
+static tSuccess
+opt_unknown(tOptions * opts, char const * name, char * arg, tOptState * st);
+
+static tSuccess
+opt_ambiguous(tOptions * opts, char const * name, int match_ct);
+
+static tSuccess
+get_opt_arg_must(tOptions * opts, tOptState * o_st);
+
+static tSuccess
+get_opt_arg_may(tOptions * pOpts, tOptState * o_st);
+
+static tSuccess
+get_opt_arg_none(tOptions * pOpts, tOptState* o_st);
+/* = = = END-STATIC-FORWARD = = = */
+
 /**
  * find the name and name length we are looking for
  */
@@ -44,10 +76,7 @@ parse_opt(char const ** nm_pp, char ** arg_pp, char * buf, size_t bufsz)
         case NUL: return res;
 
         case '=':
-            if (res >= (int)bufsz)
-                return -1;
-
-            memcpy(buf, *nm_pp, res);
+            memcpy(buf, *nm_pp, (size_t)res);
 
             buf[res] = NUL;
             *nm_pp   = buf;
@@ -55,7 +84,8 @@ parse_opt(char const ** nm_pp, char ** arg_pp, char * buf, size_t bufsz)
             return res;
 
         default:
-            res++;
+            if (++res >= (int)bufsz)
+                return -1;
         }
     }
 }
@@ -75,15 +105,15 @@ opt_ambiguities(tOptions * opts, char const * name, int nm_len)
     tOptDesc * pOD = opts->pOptDesc;
     int        idx = 0;
 
-    fputs(zAmbigList, stderr);
+    fputs(zambig_list_msg, stderr);
     do  {
         if (strneqvcmp(name, pOD->pz_Name, nm_len) == 0)
-            fprintf(stderr, zAmbiguous, hyph, pOD->pz_Name);
+            fprintf(stderr, zambig_file, hyph, pOD->pz_Name);
 
         else if (  (pOD->pz_DisableName != NULL)
                 && (strneqvcmp(name, pOD->pz_DisableName, nm_len) == 0)
                 )
-            fprintf(stderr, zAmbiguous, hyph, pOD->pz_DisableName);
+            fprintf(stderr, zambig_file, hyph, pOD->pz_DisableName);
     } while (pOD++, (++idx < opts->optCt));
 }
 
@@ -257,9 +287,9 @@ static tSuccess
 opt_ambiguous(tOptions * opts, char const * name, int match_ct)
 {
     if ((opts->fOptSet & OPTPROC_ERRSTOP) != 0) {
-        fprintf(stderr, zAmbigOptStr, opts->pzProgPath, name, match_ct);
+        fprintf(stderr, zambig_opt_fmt, opts->pzProgPath, name, match_ct);
         if (match_ct <= 4)
-            opt_ambiguities(opts, name, strlen(name));
+            opt_ambiguities(opts, name, (int)strlen(name));
         (*opts->pUsageProc)(opts, EXIT_FAILURE);
         /* NOTREACHED */
         _exit(EXIT_FAILURE); /* to be certain */
@@ -286,6 +316,12 @@ optionVendorOption(tOptions * pOpts, tOptDesc * pOD)
     tOptState     opt_st   = OPTSTATE_INITIALIZER(PRESET);
     char const *  vopt_str = pOD->optArg.argString;
 
+    if (pOpts <= OPTPROC_EMIT_LIMIT)
+        return;
+
+    if ((pOD->fOptState & OPTST_RESET) != 0)
+        return;
+
     if ((pOD->fOptState & OPTPROC_IMMEDIATE) == 0)
         opt_st.flags = OPTST_DEFINED;
 
@@ -293,9 +329,10 @@ optionVendorOption(tOptions * pOpts, tOptDesc * pOD)
        || ! SUCCESSFUL(opt_find_long(pOpts, vopt_str, &opt_st))
        || ! SUCCESSFUL(get_opt_arg(pOpts, &opt_st)) )
     {
-        fprintf(stderr, zIllVendOptStr, vopt_str);
+        fprintf(stderr, zIllVendOptStr, pOpts->pzProgName, vopt_str);
         (*pOpts->pUsageProc)(pOpts, EXIT_FAILURE);
         /* NOTREACHED */
+        _exit(EXIT_FAILURE); /* to be certain */
     }
 
     /*
@@ -321,31 +358,39 @@ optionVendorOption(tOptions * pOpts, tOptDesc * pOD)
 /**
  *  Find the option descriptor by full name.
  *
- * @param pOpts      option data
- * @param opt_name   name of option to look for
- * @param pOptState  state about current option
+ * @param opts      option data
+ * @param opt_name  name of option to look for
+ * @param state     state about current option
  *
  * @return success status
  */
 LOCAL tSuccess
-opt_find_long(tOptions * pOpts, char const * opt_name, tOptState * pOptState)
+opt_find_long(tOptions * opts, char const * opt_name, tOptState * state)
 {
     char    name_buf[128];
     char *  opt_arg;
     int     nm_len = parse_opt(&opt_name, &opt_arg, name_buf, sizeof(name_buf));
 
-    int     matchIdx = 0;
-    bool disable  = false;
-    int     match_ct =
-        opt_match_ct(pOpts, opt_name, nm_len, &matchIdx, &disable);
+    int     idx = 0;
+    bool    disable  = false;
+    int     ct;
+
+    if (nm_len <= 0) {
+        fprintf(stderr, zInvalOptName, opts->pzProgName, opt_name);
+        (*opts->pUsageProc)(opts, EXIT_FAILURE);
+        /* NOTREACHED */
+        _exit(EXIT_FAILURE); /* to be certain */
+    }
+
+    ct = opt_match_ct(opts, opt_name, nm_len, &idx, &disable);
 
     /*
      *  See if we found one match, no matches or multiple matches.
      */
-    switch (match_ct) {
-    case 1:  return opt_set(pOpts, opt_arg, matchIdx, disable, pOptState);
-    case 0:  return opt_unknown(pOpts, opt_name, opt_arg, pOptState);
-    default: return opt_ambiguous(pOpts, opt_name, match_ct);
+    switch (ct) {
+    case 1:  return opt_set(opts, opt_arg, idx, disable, state);
+    case 0:  return opt_unknown(opts, opt_name, opt_arg, state);
+    default: return opt_ambiguous(opts, opt_name, ct);
     }
 }
 
@@ -405,7 +450,7 @@ opt_find_short(tOptions* pOpts, uint_t optValue, tOptState* pOptState)
         return SUCCESS;
     }
 
-short_opt_error:
+ short_opt_error:
 
     /*
      *  IF we are to stop on errors (the default, actually)
@@ -421,75 +466,235 @@ short_opt_error:
     return FAILURE;
 }
 
-LOCAL tSuccess
-get_opt_arg(tOptions * pOpts, tOptState * pOptState)
+/**
+ *  Process option with a required argument.  Long options can either have a
+ *  separate command line argument, or an argument attached by the '='
+ *  character.  Figure out which.
+ *
+ *  @param[in,out] opts  the program option descriptor
+ *  @param[in,out] o_st  the option processing state
+ *  @returns SUCCESS or FAILURE
+ */
+static tSuccess
+get_opt_arg_must(tOptions * opts, tOptState * o_st)
 {
-    pOptState->flags |= (pOptState->pOD->fOptState & OPTST_PERSISTENT_MASK);
+    switch (o_st->optType) {
+    case TOPT_SHORT:
+        /*
+         *  See if an arg string follows the flag character
+         */
+        if (*++(opts->pzCurOpt) == NUL)
+            opts->pzCurOpt = opts->origArgVect[ opts->curOptIdx++ ];
+        o_st->pzOptArg = opts->pzCurOpt;
+        break;
+
+    case TOPT_LONG:
+        /*
+         *  See if an arg string has already been assigned (glued on
+         *  with an `=' character)
+         */
+        if (o_st->pzOptArg == NULL)
+            o_st->pzOptArg = opts->origArgVect[ opts->curOptIdx++ ];
+        break;
+
+    default:
+#ifdef DEBUG
+        fputs("AutoOpts lib error: option type not selected\n", stderr);
+        exit(EXIT_FAILURE);
+#endif
+
+    case TOPT_DEFAULT:
+        /*
+         *  The option was selected by default.  The current token is
+         *  the option argument.
+         */
+        break;
+    }
 
     /*
-     *  Figure out what to do about option arguments.  An argument may be
-     *  required, not associated with the option, or be optional.  We detect the
-     *  latter by examining for an option marker on the next possible argument.
-     *  Disabled mode option selection also disables option arguments.
+     *  Make sure we did not overflow the argument list.
      */
-    {
-        enum { ARG_NONE, ARG_MAY, ARG_MUST } arg_type = ARG_NONE;
-        tSuccess res;
+    if (opts->curOptIdx > opts->origArgCt) {
+        fprintf(stderr, zMisArg, opts->pzProgPath, o_st->pOD->pz_Name);
+        return FAILURE;
+    }
 
-        if ((pOptState->flags & OPTST_DISABLED) != 0)
-            arg_type = ARG_NONE;
+    opts->pzCurOpt = NULL;  /* next time advance to next arg */
+    return SUCCESS;
+}
 
-        else if (OPTST_GET_ARGTYPE(pOptState->flags) == OPARG_TYPE_NONE)
-            arg_type = ARG_NONE;
+/**
+ * Process an option with an optional argument.  For short options, it looks
+ * at the character after the option character, or it consumes the next full
+ * argument.  For long options, it looks for an '=' character attachment to
+ * the long option name before deciding to take the next command line
+ * argument.
+ *
+ * @param pOpts      the option descriptor
+ * @param o_st  a structure for managing the current processing state
+ * @returns SUCCESS or does not return
+ */
+static tSuccess
+get_opt_arg_may(tOptions * pOpts, tOptState * o_st)
+{
+    /*
+     *  An option argument is optional.
+     */
+    switch (o_st->optType) {
+    case TOPT_SHORT:
+        if (*++pOpts->pzCurOpt != NUL)
+            o_st->pzOptArg = pOpts->pzCurOpt;
+        else {
+            char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
 
-        else if (pOptState->flags & OPTST_ARG_OPTIONAL)
-            arg_type = ARG_MAY;
+            /*
+             *  BECAUSE it is optional, we must make sure
+             *  we did not find another flag and that there
+             *  is such an argument.
+             */
+            if ((pzLA == NULL) || (*pzLA == '-'))
+                o_st->pzOptArg = NULL;
+            else {
+                pOpts->curOptIdx++; /* argument found */
+                o_st->pzOptArg = pzLA;
+            }
+        }
+        break;
 
-        else
-            arg_type = ARG_MUST;
+    case TOPT_LONG:
+        /*
+         *  Look for an argument if we don't already have one (glued on
+         *  with a `=' character) *AND* we are not in named argument mode
+         */
+        if (  (o_st->pzOptArg == NULL)
+           && (! NAMED_OPTS(pOpts))) {
+            char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
 
-        switch (arg_type) {
-        case ARG_MUST: res = next_opt_arg_must(pOpts, pOptState); break;
-        case ARG_MAY:  res = next_opt_arg_may( pOpts, pOptState); break;
-        case ARG_NONE: res = next_opt_arg_none(pOpts, pOptState); break;
+            /*
+             *  BECAUSE it is optional, we must make sure
+             *  we did not find another flag and that there
+             *  is such an argument.
+             */
+            if ((pzLA == NULL) || (*pzLA == '-'))
+                o_st->pzOptArg = NULL;
+            else {
+                pOpts->curOptIdx++; /* argument found */
+                o_st->pzOptArg = pzLA;
+            }
         }
+        break;
 
-        return res;
+    default:
+    case TOPT_DEFAULT:
+        ao_bug(zbad_default_msg);
+    }
+
+    /*
+     *  After an option with an optional argument, we will
+     *  *always* start with the next option because if there
+     *  were any characters following the option name/flag,
+     *  they would be interpreted as the argument.
+     */
+    pOpts->pzCurOpt = NULL;
+    return SUCCESS;
+}
+
+/**
+ *  Process option that does not have an argument.
+ *
+ *  @param[in,out] opts  the program option descriptor
+ *  @param[in,out] o_st  the option processing state
+ *  @returns SUCCESS or FAILURE
+ */
+static tSuccess
+get_opt_arg_none(tOptions * pOpts, tOptState* o_st)
+{
+    /*
+     *  No option argument.  Make sure next time around we find
+     *  the correct option flag character for short options
+     */
+    if (o_st->optType == TOPT_SHORT)
+        (pOpts->pzCurOpt)++;
+
+    /*
+     *  It is a long option.  Make sure there was no ``=xxx'' argument
+     */
+    else if (o_st->pzOptArg != NULL) {
+        fprintf(stderr, zNoArg, pOpts->pzProgPath, o_st->pOD->pz_Name);
+        return FAILURE;
     }
+
+    /*
+     *  It is a long option.  Advance to next command line argument.
+     */
+    else
+        pOpts->pzCurOpt = NULL;
+    return SUCCESS;
 }
 
 /**
- *  Find the option descriptor for the current option
+ *  Process option.  Figure out whether or not to look for an option argument.
+ *
+ *  @param[in,out] opts  the program option descriptor
+ *  @param[in,out] o_st  the option processing state
+ *  @returns SUCCESS or FAILURE
  */
 LOCAL tSuccess
-find_opt(tOptions * pOpts, tOptState * pOptState)
+get_opt_arg(tOptions * opts, tOptState * o_st)
+{
+    o_st->flags |= (o_st->pOD->fOptState & OPTST_PERSISTENT_MASK);
+
+    /*
+     * Disabled options and options specified to not have arguments
+     * are handled with the "none" procedure.  Otherwise, check the
+     * optional flag and call either the "may" or "must" function.
+     */
+    if (  ((o_st->flags & OPTST_DISABLED) != 0)
+       || (OPTST_GET_ARGTYPE(o_st->flags) == OPARG_TYPE_NONE))
+        return get_opt_arg_none(opts, o_st);
+    
+    if (o_st->flags & OPTST_ARG_OPTIONAL)
+        return get_opt_arg_may( opts, o_st);
+    
+    return get_opt_arg_must(opts, o_st);
+}
+
+/**
+ *  Find the option descriptor for the current option.
+ *
+ *  @param[in,out] opts  the program option descriptor
+ *  @param[in,out] o_st  the option processing state
+ *  @returns SUCCESS or FAILURE
+ */
+LOCAL tSuccess
+find_opt(tOptions * opts, tOptState * o_st)
 {
     /*
      *  IF we are continuing a short option list (e.g. -xyz...)
      *  THEN continue a single flag option.
      *  OTHERWISE see if there is room to advance and then do so.
      */
-    if ((pOpts->pzCurOpt != NULL) && (*pOpts->pzCurOpt != NUL))
-        return opt_find_short(pOpts, (tAoUC)*(pOpts->pzCurOpt), pOptState);
+    if ((opts->pzCurOpt != NULL) && (*opts->pzCurOpt != NUL))
+        return opt_find_short(opts, (uint8_t)*(opts->pzCurOpt), o_st);
 
-    if (pOpts->curOptIdx >= pOpts->origArgCt)
+    if (opts->curOptIdx >= opts->origArgCt)
         return PROBLEM; /* NORMAL COMPLETION */
 
-    pOpts->pzCurOpt = pOpts->origArgVect[ pOpts->curOptIdx ];
+    opts->pzCurOpt = opts->origArgVect[ opts->curOptIdx ];
 
     /*
      *  IF all arguments must be named options, ...
      */
-    if (NAMED_OPTS(pOpts)) {
-        char *   pz  = pOpts->pzCurOpt;
-        int      def;
-        tSuccess res; 
-        tAoUS *  def_opt;
+    if (NAMED_OPTS(opts)) {
+        char *      pz  = opts->pzCurOpt;
+        int         def;
+        tSuccess    res;
+        uint16_t *  def_opt;
 
-        pOpts->curOptIdx++;
+        opts->curOptIdx++;
 
         if (*pz != '-')
-            return opt_find_long(pOpts, pz, pOptState);
+            return opt_find_long(opts, pz, o_st);
 
         /*
          *  The name is prefixed with one or more hyphens.  Strip them off
@@ -497,37 +702,37 @@ find_opt(tOptions * pOpts, tOptState * pOptState)
          *  strip off the "const" quality of the "default_opt" field.
          */
         while (*(++pz) == '-')   ;
-        def_opt = (void *)&(pOpts->specOptIdx.default_opt);
-        def = *def_opt;
+        def_opt  = (void *)&(opts->specOptIdx.default_opt);
+        def      = *def_opt;
         *def_opt = NO_EQUIVALENT;
-        res = opt_find_long(pOpts, pz, pOptState);
-        *def_opt = def;
+        res      = opt_find_long(opts, pz, o_st);
+        *def_opt = (uint16_t)def;
         return res;
     }
 
     /*
      *  Note the kind of flag/option marker
      */
-    if (*((pOpts->pzCurOpt)++) != '-')
+    if (*((opts->pzCurOpt)++) != '-')
         return PROBLEM; /* NORMAL COMPLETION - this + rest are operands */
 
     /*
      *  Special hack for a hyphen by itself
      */
-    if (*(pOpts->pzCurOpt) == NUL)
+    if (*(opts->pzCurOpt) == NUL)
         return PROBLEM; /* NORMAL COMPLETION - this + rest are operands */
 
     /*
      *  The current argument is to be processed as an option argument
      */
-    pOpts->curOptIdx++;
+    opts->curOptIdx++;
 
     /*
      *  We have an option marker.
      *  Test the next character for long option indication
      */
-    if (pOpts->pzCurOpt[0] == '-') {
-        if (*++(pOpts->pzCurOpt) == NUL)
+    if (opts->pzCurOpt[0] == '-') {
+        if (*++(opts->pzCurOpt) == NUL)
             /*
              *  NORMAL COMPLETION - NOT this arg, but rest are operands
              */
@@ -537,13 +742,12 @@ find_opt(tOptions * pOpts, tOptState * pOptState)
          *  We do not allow the hyphen to be used as a flag value.
          *  Therefore, if long options are not to be accepted, we punt.
          */
-        if ((pOpts->fOptSet & OPTPROC_LONGOPT) == 0) {
-            fprintf(stderr, zIllOptStr, pOpts->pzProgPath,
-                    pOpts->pzCurOpt-2);
+        if ((opts->fOptSet & OPTPROC_LONGOPT) == 0) {
+            fprintf(stderr, zIllOptStr, opts->pzProgPath, opts->pzCurOpt-2);
             return FAILURE;
         }
 
-        return opt_find_long(pOpts, pOpts->pzCurOpt, pOptState);
+        return opt_find_long(opts, opts->pzCurOpt, o_st);
     }
 
     /*
@@ -551,13 +755,14 @@ find_opt(tOptions * pOpts, tOptState * pOptState)
      *  option processing.  Otherwise the character must be a
      *  short (i.e. single character) option.
      */
-    if ((pOpts->fOptSet & OPTPROC_SHORTOPT) != 0)
-        return opt_find_short(pOpts, (tAoUC)*(pOpts->pzCurOpt), pOptState);
+    if ((opts->fOptSet & OPTPROC_SHORTOPT) != 0)
+        return opt_find_short(opts, (uint8_t)*(opts->pzCurOpt), o_st);
 
-    return opt_find_long(pOpts, pOpts->pzCurOpt, pOptState);
+    return opt_find_long(opts, opts->pzCurOpt, o_st);
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 16ca245..3d4f63b 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (genshell.c)
- *  
- *  It has been AutoGen-ed  May  6, 2012 at 04:20:59 PM by AutoGen 5.16pre36
+ *
+ *  It has been AutoGen-ed  March 31, 2013 at 10:41:27 AM by AutoGen 5.17.3
  *  From the definitions    genshell.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  * The genshellopt program is copyrighted and licensed
  * under the following terms:
  *
- *  Copyright (C) 1999-2012 Bruce Korb, all rights reserved.
+ *  Copyright (C) 1999-2013 Bruce Korb, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU Lesser General Public License,
+ *  version 2 or later <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>
+ *
+ *  The genshellopt library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public License as
+ *  published by the Free Software Foundation; either version 2 of the
+ *  License, or (at your option) any later version.
  *
- *  genshellopt 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.
- *  
- *  genshellopt is distributed in the hope that it will be useful, but
+ *  This library 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, see
+ *  <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>
  */
 
 #ifndef __doxygen__
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (genshellopt_opt_strs+0)
-#define zLicenseDescrip (genshellopt_opt_strs+260)
+#define zLicenseDescrip (genshellopt_opt_strs+285)
 
 extern tUsageProc genshelloptUsage;
 
@@ -64,81 +61,89 @@ extern tUsageProc genshelloptUsage;
 #  define NULL 0
 #endif
 
-/*
- *  genshellopt option static const strings
+/**
+ *  static const strings for genshellopt options
  */
-static char const genshellopt_opt_strs[1690] =
+static char const genshellopt_opt_strs[1769] =
 /*     0 */ "genshellopt 1\n"
-            "Copyright (C) 1999-2012 Bruce Korb, all rights reserved.\n"
+            "Copyright (C) 1999-2013 Bruce Korb, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   260 */ "genshellopt is free software: you can redistribute it and/or modify it\n"
-            "under the terms of the GNU General Public License as published by the Free\n"
-            "Software Foundation, either version 3 of the License, or (at your option)\n"
-            "any later version.\n\n"
-            "genshellopt is distributed in the hope that it will be useful, but WITHOUT\n"
+            "redistribution under the terms of the GNU Lesser General Public License,\n"
+            "version 2 or later <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>\n\0"
+/*   285 */ "The genshellopt library is free software; you can redistribute it and/or\n"
+            "modify it under the terms of the GNU Library General Public License as\n"
+            "published by the Free Software Foundation; either version 2 of the License,\n"
+            "or (at your option) any later version.\n\n"
+            "This library is distributed in the hope that it will be useful, but WITHOUT\n"
             "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n"
-            "FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\n"
-            "more details.\n\n"
-            "You should have received a copy of the GNU General Public License along\n"
-            "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   871 */ "Output Script File\0"
-/*   890 */ "SCRIPT\0"
-/*   897 */ "script\0"
-/*   904 */ "Shell name (follows \"#!\" magic)\0"
-/*   936 */ "SHELL\0"
-/*   942 */ "no-shell\0"
-/*   951 */ "no\0"
-/*   954 */ "Display extended usage information and exit\0"
-/*   998 */ "help\0"
-/*  1003 */ "Extended usage information passed thru pager\0"
-/*  1048 */ "more-help\0"
-/*  1058 */ "Output version information and exit\0"
-/*  1094 */ "version\0"
-/*  1102 */ "GENSHELLOPT\0"
-/*  1114 */ "genshellopt - Generate Shell Option Processing Script - Ver. 1\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/*  1235 */ "autogen-users@lists.sourceforge.net\0"
-/*  1271 */ "\n"
-            "Note that ``shell'' is only useful if the output file does not already\n"
-            "exist.  If it does, then the shell name and optional first argument will be\n"
+            "FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public\n"
+            "License for more details.\n\n"
+            "You should have received a copy of the GNU Library General Public License\n"
+            "along with this library; if not, see\n"
+            "<http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>\n\0"
+/*   957 */ "Output Script File\0"
+/*   976 */ "SCRIPT\0"
+/*   983 */ "script\0"
+/*   990 */ "Shell name (follows \"#!\" magic)\0"
+/*  1022 */ "SHELL\0"
+/*  1028 */ "no-shell\0"
+/*  1037 */ "no\0"
+/*  1040 */ "display extended usage information and exit\0"
+/*  1084 */ "help\0"
+/*  1089 */ "extended usage information passed thru pager\0"
+/*  1134 */ "more-help\0"
+/*  1144 */ "output version information and exit\0"
+/*  1180 */ "version\0"
+/*  1188 */ "GENSHELLOPT\0"
+/*  1200 */ "genshellopt - Generate Shell Option Processing Script - Ver. 1\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/*  1321 */ "autogen-users@lists.sourceforge.net\0"
+/*  1357 */ "Note that 'shell' is only useful if the output file does not already exist.\n"
+            "If it does, then the shell name and optional first argument will be\n"
             "extracted from the script file.\n\0"
-/*  1452 */ "\n"
-            "If the script file already exists and contains Automated Option Processing\n"
+/*  1534 */ "If the script file already exists and contains Automated Option Processing\n"
             "text, the second line of the file through the ending tag will be replaced\n"
-            "by the newly generated text.  The first ``#!'' line will be regenerated.\n\0"
-/*  1676 */ "genshellopt 1";
+            "by the newly generated text.  The first '#!' line will be regenerated.\n\0"
+/*  1755 */ "genshellopt 1";
 
-/*
+/**
  *  script option description:
  */
-#define SCRIPT_DESC      (genshellopt_opt_strs+871)
-#define SCRIPT_NAME      (genshellopt_opt_strs+890)
-#define SCRIPT_name      (genshellopt_opt_strs+897)
+/** Descriptive text for the script option */
+#define SCRIPT_DESC      (genshellopt_opt_strs+957)
+/** Upper-cased name for the script option */
+#define SCRIPT_NAME      (genshellopt_opt_strs+976)
+/** Name string for the script option */
+#define SCRIPT_name      (genshellopt_opt_strs+983)
+/** Compiled in flag settings for the script option */
 #define SCRIPT_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  shell option description:
  */
-#define SHELL_DESC      (genshellopt_opt_strs+904)
-#define SHELL_NAME      (genshellopt_opt_strs+936)
-#define NOT_SHELL_name  (genshellopt_opt_strs+942)
-#define NOT_SHELL_PFX   (genshellopt_opt_strs+951)
+/** Descriptive text for the shell option */
+#define SHELL_DESC      (genshellopt_opt_strs+990)
+/** Upper-cased name for the shell option */
+#define SHELL_NAME      (genshellopt_opt_strs+1022)
+/** disablement name for the shell option */
+#define NOT_SHELL_name  (genshellopt_opt_strs+1028)
+/** disablement prefix for the shell option */
+#define NOT_SHELL_PFX   (genshellopt_opt_strs+1037)
+/** Name string for the shell option */
 #define SHELL_name      (NOT_SHELL_name + 3)
+/** Compiled in flag settings for the shell option */
 #define SHELL_FLAGS     (OPTST_INITENABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (genshellopt_opt_strs+954)
-#define HELP_name       (genshellopt_opt_strs+998)
+#define HELP_DESC       (genshellopt_opt_strs+1040)
+#define HELP_name       (genshellopt_opt_strs+1084)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (genshellopt_opt_strs+1003)
-#define MORE_HELP_name  (genshellopt_opt_strs+1048)
+#define MORE_HELP_DESC  (genshellopt_opt_strs+1089)
+#define MORE_HELP_name  (genshellopt_opt_strs+1134)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -151,9 +156,9 @@ static char const genshellopt_opt_strs[1690] =
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (genshellopt_opt_strs+1058)
-#define VER_name        (genshellopt_opt_strs+1094)
-/*
+#define VER_DESC        (genshellopt_opt_strs+1144)
+#define VER_name        (genshellopt_opt_strs+1180)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -200,7 +205,7 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -214,7 +219,7 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -226,7 +231,7 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_GENSHELL_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -236,19 +241,24 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the genshellopt Option Environment
- */
-#define zPROGNAME       (genshellopt_opt_strs+1102)
-#define zUsageTitle     (genshellopt_opt_strs+1114)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of genshellopt. */
+#define zPROGNAME       (genshellopt_opt_strs+1188)
+/** Reference to the title line for genshellopt usage. */
+#define zUsageTitle     (genshellopt_opt_strs+1200)
+/** There is no genshellopt configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for genshellopt config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (genshellopt_opt_strs+1235)
-#define zExplain        (genshellopt_opt_strs+1271)
-#define zDetail         (genshellopt_opt_strs+1452)
-#define zFullVersion    (genshellopt_opt_strs+1676)
-/* extracted from optcode.tlib near line 350 */
+/** The genshellopt program bug email address. */
+#define zBugsAddr       (genshellopt_opt_strs+1321)
+/** Clarification/explanation of what genshellopt does. */
+#define zExplain        (genshellopt_opt_strs+1357)
+/** Extra detail explaining what genshellopt does. */
+#define zDetail         (genshellopt_opt_strs+1534)
+/** The full version string for genshellopt. */
+#define zFullVersion    (genshellopt_opt_strs+1755)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE
@@ -258,9 +268,7 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define genshellopt_full_usage (NULL)
-
 #define genshellopt_short_usage (NULL)
 
 #endif /* not defined __doxygen__ */
@@ -271,8 +279,8 @@ static tOptDesc optDesc[GENSHELL_OPTION_CT] = {
 /**
  * The callout function that invokes the genshelloptUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -283,7 +291,7 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
     (void)pOptDesc;
     (void)pOptions;
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with genshellopt.
@@ -299,6 +307,7 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 #ifndef  WITH_PACKAGER
 # define genshellopt_packager_info NULL
 #else
+/** Packager information for genshellopt. */
 static char const genshellopt_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -352,42 +361,69 @@ tOptions genshelloptOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * genshellopt program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(GENSHELLOPT_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -397,55 +433,411 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &genshelloptOptions;
+    tOptions * const opts = &genshelloptOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
-
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
+
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        genshelloptOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the genshelloptOptions structure noted in the comments below.  The
+     literal text is defined in genshellopt_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     genshellopt_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via genshelloptOptions.pzCopyright */
+  puts(_("genshellopt 1\n\
+Copyright (C) 1999-2013 Bruce Korb, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU Lesser General Public License,\n\
+version 2 or later <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>\n"));
+
+  /* referenced via genshelloptOptions.pzCopyNotice */
+  puts(_("The genshellopt library is free software; you can redistribute it and/or\n\
+modify it under the terms of the GNU Library General Public License as\n\
+published by the Free Software Foundation; either version 2 of the License,\n\
+or (at your option) any later version.\n\n"));
+  puts(_("This library is distributed in the hope that it will be useful, but WITHOUT\n\
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n\
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public\n\
+License for more details.\n\n"));
+  puts(_("You should have received a copy of the GNU Library General Public License\n\
+along with this library; if not, see\n\
+<http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>\n"));
+
+  /* referenced via genshelloptOptions.pOptDesc->pzText */
+  puts(_("Output Script File"));
+
+  /* referenced via genshelloptOptions.pOptDesc->pzText */
+  puts(_("Shell name (follows \"#!\" magic)"));
+
+  /* referenced via genshelloptOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via genshelloptOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via genshelloptOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via genshelloptOptions.pzUsageTitle */
+  puts(_("genshellopt - Generate Shell Option Processing Script - Ver. 1\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
+
+  /* referenced via genshelloptOptions.pzExplain */
+  puts(_("Note that 'shell' is only useful if the output file does not already exist.\n\
+If it does, then the shell name and optional first argument will be\n\
+extracted from the script file.\n"));
+
+  /* referenced via genshelloptOptions.pzDetail */
+  puts(_("If the script file already exists and contains Automated Option Processing\n\
+text, the second line of the file through the ending tag will be replaced\n\
+by the newly generated text.  The first '#!' line will be regenerated.\n"));
+
+  /* referenced via genshelloptOptions.pzFullVersion */
+  puts(_("genshellopt 1"));
+
+  /* referenced via genshelloptOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via genshelloptOptions.pzShortUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index d91c069..37ecc3b 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (genshell.h)
- *  
- *  It has been AutoGen-ed  May  6, 2012 at 04:20:59 PM by AutoGen 5.16pre36
+ *
+ *  It has been AutoGen-ed  March 31, 2013 at 10:41:27 AM by AutoGen 5.17.3
  *  From the definitions    genshell.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  * The genshellopt program is copyrighted and licensed
  * under the following terms:
  *
- *  Copyright (C) 1999-2012 Bruce Korb, all rights reserved.
+ *  Copyright (C) 1999-2013 Bruce Korb, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU Lesser General Public License,
+ *  version 2 or later <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>
  *
- *  genshellopt 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.
- *  
- *  genshellopt is distributed in the hope that it will be useful, but
+ *  The genshellopt library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public License as
+ *  published by the Free Software Foundation; either version 2 of the
+ *  License, or (at your option) any later version.
+ *
+ *  This library 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, see
+ *  <http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html>
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the genshellopt program.
  *  These macros are documented in the AutoGen info file in the
 #define AUTOOPTS_GENSHELL_H_GUARD 1
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for genshellopt
  */
 typedef enum {
     INDEX_GENSHELL_OPT_SCRIPT      =  0,
@@ -72,49 +72,71 @@ typedef enum {
     INDEX_GENSHELL_OPT_HELP        =  3,
     INDEX_GENSHELL_OPT_MORE_HELP   =  4
 } teGenshell_OptIndex;
-
+/** count of all options for genshellopt */
 #define GENSHELL_OPTION_CT    5
+/** genshellopt version */
 #define GENSHELLOPT_VERSION       "1"
+/** Full genshellopt version text */
 #define GENSHELLOPT_FULL_VERSION  "genshellopt 1"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teGenshell_OptIndex enumeration above).
  *  e.g. HAVE_GENSHELL_OPT(SCRIPT)
  */
 #define GENSHELL_DESC(n) (genshelloptOptions.pOptDesc[INDEX_GENSHELL_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_GENSHELL_OPT(n) (! UNUSED_OPT(& GENSHELL_DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      GENSHELL_OPT_ARG(n) (GENSHELL_DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_GENSHELL_OPT(n) (GENSHELL_DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_GENSHELL_OPT(n) (GENSHELL_DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_GENSHELL_OPT(n) (SELECTED_OPT(&GENSHELL_DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_GENSHELL_OPT(n) (UNUSED_OPT(& GENSHELL_DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_GENSHELL_OPT(n) (! DISABLED_OPT(& GENSHELL_DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_GENSHELL_OPT(n) (((tArgList*)(GENSHELL_DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_GENSHELL_OPT(n) (((tArgList*)(GENSHELL_DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_GENSHELL_OPT(n) STMTS( \
                 GENSHELL_DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((GENSHELL_DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     GENSHELL_DESC(n).fOptState |= OPTST_DISABLED; \
                 GENSHELL_DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of genshellopt exit codes
  */
 typedef enum {
-    GENSHELLOPT_EXIT_SUCCESS = 0,
-    GENSHELLOPT_EXIT_FAILURE = 1,
+    GENSHELLOPT_EXIT_SUCCESS        = 0,
+    GENSHELLOPT_EXIT_FAILURE        = 1,
+    GENSHELLOPT_EXIT_USAGE_ERROR    = 64,
     GENSHELLOPT_EXIT_LIBOPTS_FAILURE = 70
 } genshellopt_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_GENSHELL_OPT_SCRIPT 'o'
 #define VALUE_GENSHELL_OPT_SHELL 's'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_GENSHELL_OPT_HELP '?'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_GENSHELL_OPT_MORE_HELP '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_GENSHELL_OPT_VERSION 'v'
 /*
  *  Interface defines not associated with particular options
@@ -126,7 +148,7 @@ typedef enum {
                 genshelloptOptions.pzCurOpt  = NULL )
 #define START_GENSHELL_OPT       RESTART_GENSHELL_OPT(1)
 #define GENSHELL_USAGE(c)        (*genshelloptOptions.pUsageProc)(&genshelloptOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -142,6 +164,12 @@ extern tOptions genshelloptOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
diff --git a/src/libopts/gettext.h b/src/libopts/gettext.h
new file mode 100644 (file)
index 0000000..5cd8d6d
--- /dev/null
@@ -0,0 +1,287 @@
+/* Convenience header for conditional use of GNU <libintl.h>.
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program 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 Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+
+/* NLS can be disabled through the configure --disable-nls option.  */
+#if ENABLE_NLS
+/* Get declarations of GNU message catalog functions.  */
+# include <libintl.h>
+
+/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
+   the gettext() and ngettext() macros.  This is an alternative to calling
+   textdomain(), and is useful for libraries.  */
+# ifdef DEFAULT_TEXT_DOMAIN
+#  undef gettext
+#  define gettext(Msgid) \
+     dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
+#  undef ngettext
+#  define ngettext(Msgid1, Msgid2, N) \
+     dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
+# endif
+
+#else
+
+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
+   chokes if dcgettext is defined as a macro.  So include it now, to make
+   later inclusions of <locale.h> a NOP.  We don't include <libintl.h>
+   as well because people using "gettext.h" will not include <libintl.h>,
+   and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
+   is OK.  */
+#if defined(__sun)
+# include <locale.h>
+#endif
+
+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+   <libintl.h>, which chokes if dcgettext is defined as a macro.  So include
+   it now, to make later inclusions of <libintl.h> a NOP.  */
+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+# include <cstdlib>
+# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H
+#  include <libintl.h>
+# endif
+#endif
+
+/* Disabled NLS.
+   The casts to 'const char *' serve the purpose of producing warnings
+   for invalid uses of the value returned from these functions.
+   On pre-ANSI systems without 'const', the config.h file is supposed to
+   contain "#define const".  */
+# undef gettext
+# define gettext(Msgid) ((const char *) (Msgid))
+# undef dgettext
+# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
+# undef dcgettext
+# define dcgettext(Domainname, Msgid, Category) \
+    ((void) (Category), dgettext (Domainname, Msgid))
+# undef ngettext
+# define ngettext(Msgid1, Msgid2, N) \
+    ((N) == 1 \
+     ? ((void) (Msgid2), (const char *) (Msgid1)) \
+     : ((void) (Msgid1), (const char *) (Msgid2)))
+# undef dngettext
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+    ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
+# undef dcngettext
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+    ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N))
+# undef textdomain
+# define textdomain(Domainname) ((const char *) (Domainname))
+# undef bindtextdomain
+# define bindtextdomain(Domainname, Dirname) \
+    ((void) (Domainname), (const char *) (Dirname))
+# undef bind_textdomain_codeset
+# define bind_textdomain_codeset(Domainname, Codeset) \
+    ((void) (Domainname), (const char *) (Codeset))
+
+#endif
+
+/* Prefer gnulib's setlocale override over libintl's setlocale override.  */
+#ifdef GNULIB_defined_setlocale
+# undef setlocale
+# define setlocale rpl_setlocale
+#endif
+
+/* A pseudo function call that serves as a marker for the automated
+   extraction of messages, but does not call gettext().  The run-time
+   translation is done at a different place in the code.
+   The argument, String, should be a literal string.  Concatenated strings
+   and other string expressions won't work.
+   The macro's expansion is not parenthesized, so that it is suitable as
+   initializer for static 'char[]' or 'const char[]' variables.  */
+#define gettext_noop(String) String
+
+/* The separator between msgctxt and msgid in a .mo file.  */
+#define GETTEXT_CONTEXT_GLUE "\004"
+
+/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
+   MSGID.  MSGCTXT and MSGID must be string literals.  MSGCTXT should be
+   short and rarely need to change.
+   The letter 'p' stands for 'particular' or 'special'.  */
+#ifdef DEFAULT_TEXT_DOMAIN
+# define pgettext(Msgctxt, Msgid) \
+   pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#else
+# define pgettext(Msgctxt, Msgid) \
+   pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#endif
+#define dpgettext(Domainname, Msgctxt, Msgid) \
+  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
+  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
+#ifdef DEFAULT_TEXT_DOMAIN
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#else
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#endif
+#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
+  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+pgettext_aux (const char *domain,
+              const char *msg_ctxt_id, const char *msgid,
+              int category)
+{
+  const char *translation = dcgettext (domain, msg_ctxt_id, category);
+  if (translation == msg_ctxt_id)
+    return msgid;
+  else
+    return translation;
+}
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+npgettext_aux (const char *domain,
+               const char *msg_ctxt_id, const char *msgid,
+               const char *msgid_plural, unsigned long int n,
+               int category)
+{
+  const char *translation =
+    dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+  if (translation == msg_ctxt_id || translation == msgid_plural)
+    return (n == 1 ? msgid : msgid_plural);
+  else
+    return translation;
+}
+
+/* The same thing extended for non-constant arguments.  Here MSGCTXT and MSGID
+   can be arbitrary expressions.  But for string literals these macros are
+   less efficient than those above.  */
+
+#include <string.h>
+
+#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
+     /* || __STDC_VERSION__ >= 199901L */ )
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
+#else
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
+#endif
+
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+#include <stdlib.h>
+#endif
+
+#define pgettext_expr(Msgctxt, Msgid) \
+  dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
+#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
+  dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcpgettext_expr (const char *domain,
+                 const char *msgctxt, const char *msgid,
+                 int category)
+{
+  size_t msgctxt_len = strlen (msgctxt) + 1;
+  size_t msgid_len = strlen (msgid) + 1;
+  const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+  char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+  char buf[1024];
+  char *msg_ctxt_id =
+    (msgctxt_len + msgid_len <= sizeof (buf)
+     ? buf
+     : (char *) malloc (msgctxt_len + msgid_len));
+  if (msg_ctxt_id != NULL)
+#endif
+    {
+      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+      msg_ctxt_id[msgctxt_len - 1] = '\004';
+      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+      translation = dcgettext (domain, msg_ctxt_id, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+      if (msg_ctxt_id != buf)
+        free (msg_ctxt_id);
+#endif
+      if (translation != msg_ctxt_id)
+        return translation;
+    }
+  return msgid;
+}
+
+#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
+  dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+  dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcnpgettext_expr (const char *domain,
+                  const char *msgctxt, const char *msgid,
+                  const char *msgid_plural, unsigned long int n,
+                  int category)
+{
+  size_t msgctxt_len = strlen (msgctxt) + 1;
+  size_t msgid_len = strlen (msgid) + 1;
+  const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+  char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+  char buf[1024];
+  char *msg_ctxt_id =
+    (msgctxt_len + msgid_len <= sizeof (buf)
+     ? buf
+     : (char *) malloc (msgctxt_len + msgid_len));
+  if (msg_ctxt_id != NULL)
+#endif
+    {
+      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+      msg_ctxt_id[msgctxt_len - 1] = '\004';
+      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+      translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+      if (msg_ctxt_id != buf)
+        free (msg_ctxt_id);
+#endif
+      if (!(translation == msg_ctxt_id || translation == msgid_plural))
+        return translation;
+    }
+  return (n == 1 ? msgid : msgid_plural);
+}
+
+#endif /* _LIBGETTEXT_H */
diff --git a/src/libopts/init.c b/src/libopts/init.c
new file mode 100644 (file)
index 0000000..25dc07b
--- /dev/null
@@ -0,0 +1,297 @@
+/**
+ * \file initialize.c
+ *
+ *  initialize the libopts data structures.
+ *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
+ *  This file is part of AutoOpts, a companion to AutoGen.
+ *  AutoOpts is free software.
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
+ *
+ *  AutoOpts is available under any one of two licenses.  The license
+ *  in use must be one of these two and the choice is under the control
+ *  of the user of the license.
+ *
+ *   The GNU Lesser General Public License, version 3 or later
+ *      See the files "COPYING.lgplv3" and "COPYING.gplv3"
+ *
+ *   The Modified Berkeley Software Distribution License
+ *      See the file "COPYING.mbsd"
+ *
+ *  These files have the following sha256 sums:
+ *
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
+ */
+
+/* = = = START-STATIC-FORWARD = = = */
+static tSuccess
+do_presets(tOptions * opts);
+/* = = = END-STATIC-FORWARD = = = */
+
+/**
+ *  Make sure the option descriptor is there and that we understand it.
+ *  This should be called from any user entry point where one needs to
+ *  worry about validity.  (Some entry points are free to assume that
+ *  the call is not the first to the library and, thus, that this has
+ *  already been called.)
+ *
+ *  Upon successful completion, pzProgName and pzProgPath are set.
+ *
+ *  @param[in,out] opts   program options descriptor
+ *  @param[in]     pname  name of program, from argv[]
+ *  @returns SUCCESS or FAILURE
+ */
+LOCAL tSuccess
+validate_struct(tOptions * opts, char const * pname)
+{
+    if (opts == NULL) {
+        fputs(zno_opt_arg, stderr);
+        return FAILURE;
+    }
+
+    /*
+     *  IF the client has enabled translation and the translation procedure
+     *  is available, then go do it.
+     */
+    if (  ((opts->fOptSet & OPTPROC_TRANSLATE) != 0)
+       && (opts->pTransProc != NULL)
+       && (option_xlateable_txt.field_ct != 0) ) {
+        /*
+         *  If option names are not to be translated at all, then do not do
+         *  it for configuration parsing either.  (That is the bit that really
+         *  gets tested anyway.)
+         */
+        if ((opts->fOptSet & OPTPROC_NO_XLAT_MASK) == OPTPROC_NXLAT_OPT)
+            opts->fOptSet |= OPTPROC_NXLAT_OPT_CFG;
+        (*opts->pTransProc)();
+    }
+
+    /*
+     *  IF the struct version is not the current, and also
+     *     either too large (?!) or too small,
+     *  THEN emit error message and fail-exit
+     */
+    if (  ( opts->structVersion  != OPTIONS_STRUCT_VERSION  )
+       && (  (opts->structVersion > OPTIONS_STRUCT_VERSION  )
+          || (opts->structVersion < OPTIONS_MINIMUM_VERSION )
+       )  )  {
+
+        static char const ao_ver_string[] =
+            STR(AO_CURRENT)":"STR(AO_REVISION)":"STR(AO_AGE)"\n";
+
+        fprintf(stderr, zwrong_ver, pname, NUM_TO_VER(opts->structVersion));
+        if (opts->structVersion > OPTIONS_STRUCT_VERSION )
+            fputs(ztoo_new, stderr);
+        else
+            fputs(ztoo_old, stderr);
+
+        fwrite(ao_ver_string, sizeof(ao_ver_string) - 1, 1, stderr);
+        return FAILURE;
+    }
+
+    /*
+     *  If the program name hasn't been set, then set the name and the path
+     *  and the set of equivalent characters.
+     */
+    if (opts->pzProgName == NULL) {
+        char const *  pz = strrchr(pname, DIRCH);
+        char const ** pp =
+            (char const **)(void **)&(opts->pzProgName);
+
+        if (pz != NULL) {
+            *pp = pz+1;
+        } else {
+            *pp = pname;
+            pz = pathfind(getenv("PATH"), (char *)pname, "rx");
+            if (pz != NULL)
+                pname = (void *)pz;
+        }
+
+        pp  = (char const **)(void **)&(opts->pzProgPath);
+        *pp = pname;
+
+        /*
+         *  when comparing long names, these are equivalent
+         */
+        strequate(zSepChars);
+    }
+
+    return SUCCESS;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  DO PRESETS
+ *
+ *  The next several routines do the immediate action pass on the command
+ *  line options, then the environment variables, then the config files in
+ *  reverse order.  Once done with that, the order is reversed and all
+ *  the config files and environment variables are processed again, this
+ *  time only processing the non-immediate action options.  do_presets()
+ *  will then return for optionProcess() to do the final pass on the command
+ *  line arguments.
+ */
+
+/**
+ *  scan the command line for immediate action options.
+ *  This is only called the first time through.
+ *  While this procedure is active, the OPTPROC_IMMEDIATE is true.
+ *
+ *  @param pOpts   program options descriptor
+ *  @returns SUCCESS or FAILURE
+ */
+LOCAL tSuccess
+immediate_opts(tOptions * opts)
+{
+    tSuccess  res;
+
+    opts->fOptSet  |= OPTPROC_IMMEDIATE;
+    opts->curOptIdx = 1;     /* start by skipping program name */
+    opts->pzCurOpt  = NULL;
+
+    /*
+     *  Examine all the options from the start.  We process any options that
+     *  are marked for immediate processing.
+     */
+    for (;;) {
+        tOptState opt_st = OPTSTATE_INITIALIZER(PRESET);
+
+        res = next_opt(opts, &opt_st);
+        switch (res) {
+        case FAILURE: goto   failed_option;
+        case PROBLEM: res = SUCCESS; goto leave;
+        case SUCCESS: break;
+        }
+
+        /*
+         *  IF this is an immediate-attribute option, then do it.
+         */
+        if (! DO_IMMEDIATELY(opt_st.flags))
+            continue;
+
+        if (! SUCCESSFUL(handle_opt(opts, &opt_st)))
+            break;
+    } failed_option:;
+
+    if ((opts->fOptSet & OPTPROC_ERRSTOP) != 0)
+        (*opts->pUsageProc)(opts, EXIT_FAILURE);
+
+ leave:
+
+    opts->fOptSet &= ~OPTPROC_IMMEDIATE;
+    return res;
+}
+
+/**
+ *  check for preset values from a config files or envrionment variables
+ *
+ * @param[in,out] opts  the structure with the option names to check
+ */
+static tSuccess
+do_presets(tOptions * opts)
+{
+    tOptDesc * od = NULL;
+
+    if (! SUCCESSFUL(immediate_opts(opts)))
+        return FAILURE;
+
+    /*
+     *  IF this option set has a --save-opts option, then it also
+     *  has a --load-opts option.  See if a command line option has disabled
+     *  option presetting.
+     */
+    if (  (opts->specOptIdx.save_opts != NO_EQUIVALENT)
+       && (opts->specOptIdx.save_opts != 0)) {
+        od = opts->pOptDesc + opts->specOptIdx.save_opts + 1;
+        if (DISABLED_OPT(od))
+            return SUCCESS;
+    }
+
+    /*
+     *  Until we return from this procedure, disable non-presettable opts
+     */
+    opts->fOptSet |= OPTPROC_PRESETTING;
+    /*
+     *  IF there are no config files,
+     *  THEN do any environment presets and leave.
+     */
+    if (opts->papzHomeList == NULL) {
+        env_presets(opts, ENV_ALL);
+    }
+    else {
+        env_presets(opts, ENV_IMM);
+
+        /*
+         *  Check to see if environment variables have disabled presetting.
+         */
+        if ((od != NULL) && ! DISABLED_OPT(od))
+            intern_file_load(opts);
+
+        /*
+         *  ${PROGRAM_LOAD_OPTS} value of "no" cannot disable other environment
+         *  variable options.  Only the loading of .rc files.
+         */
+        env_presets(opts, ENV_NON_IMM);
+    }
+    opts->fOptSet &= ~OPTPROC_PRESETTING;
+
+    return SUCCESS;
+}
+
+/**
+ * AutoOpts initialization
+ *
+ * @param[in,out] opts  the structure to initialize
+ * @param[in]     a_ct  program argument count
+ * @param[in]     a_v   program argument vector
+ */
+LOCAL bool
+ao_initialize(tOptions * opts, int a_ct, char ** a_v)
+{
+    if ((opts->fOptSet & OPTPROC_INITDONE) != 0)
+        return true;
+
+    opts->origArgCt   = (unsigned int)a_ct;
+    opts->origArgVect = a_v;
+    opts->fOptSet    |= OPTPROC_INITDONE;
+
+    if (HAS_pzPkgDataDir(opts))
+        program_pkgdatadir = opts->pzPkgDataDir;
+
+    if (! SUCCESSFUL(do_presets(opts)))
+        return false;
+
+    /*
+     *  IF option name conversion was suppressed but it is not suppressed
+     *  for the command line, then it's time to translate option names.
+     *  Usage text will not get retranslated.
+     */
+    if (  ((opts->fOptSet & OPTPROC_TRANSLATE) != 0)
+       && (opts->pTransProc != NULL)
+       && ((opts->fOptSet & OPTPROC_NO_XLAT_MASK) == OPTPROC_NXLAT_OPT_CFG)
+       )  {
+        opts->fOptSet &= ~OPTPROC_NXLAT_OPT_CFG;
+        (*opts->pTransProc)();
+    }
+
+    if ((opts->fOptSet & OPTPROC_REORDER) != 0)
+        optionSort(opts);
+
+    opts->curOptIdx   = 1;
+    opts->pzCurOpt    = NULL;
+    return true;
+}
+
+/** @}
+ *
+ * Local Variables:
+ * mode: C
+ * c-file-style: "stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * end of autoopts/initialize.c */
index 07cc035..a0ff362 100644 (file)
@@ -5,16 +5,16 @@
 #include "autoopts/options.h"
 #include "autoopts/usage-txt.h"
 #include "genshell.h"
-#include "xat-attribute.h"
-#include "value-type.h"
+#include "option-xat-attribute.h"
+#include "option-value-type.h"
 #include "ao-strs.h"
 #include "ag-char-map.h"
 #include "autoopts.h"
 #include "proto.h"
 #include "parse-duration.c"
 #include "ao-strs.c"
-#include "value-type.c"
-#include "xat-attribute.c"
+#include "option-value-type.c"
+#include "option-xat-attribute.c"
 #include "autoopts.c"
 #include "alias.c"
 #include "boolean.c"
@@ -43,3 +43,4 @@
 #include "tokenize.c"
 #include "usage.c"
 #include "version.c"
+#include "init.c"
index 1ea7808..7f69cda 100644 (file)
@@ -1,15 +1,18 @@
 
 /**
  *  \file load.c
- *  Time-stamp:      "2012-03-31 13:13:34 bkorb"
  *
  *  This file contains the routines that deal with processing text strings
  *  for options, either from a NUL-terminated string passed in or from an
  *  rc/ini file.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /* = = = START-STATIC-FORWARD = = = */
 static bool
-add_prog_path(char * pzBuf, int bufSize, char const * pzName,
+add_prog_path(char * pzBuf, int b_sz, char const * pzName,
               char const * pzProgPath);
 
 static bool
-add_env_val(char * pzBuf, int bufSize, char const * pzName);
+add_env_val(char * buf, int buf_sz, char const * name);
 
 static char *
-assemble_arg_val(char * pzTxt, tOptionLoadMode mode);
+assemble_arg_val(char * txt, tOptionLoadMode mode);
 /* = = = END-STATIC-FORWARD = = = */
 
 /*=export_func  optionMakePath
@@ -92,12 +95,12 @@ assemble_arg_val(char * pzTxt, tOptionLoadMode mode);
  *                 errors (cannot resolve the resulting path).
 =*/
 bool
-optionMakePath(char * pzBuf, int bufSize, char const * pzName,
+optionMakePath(char * pzBuf, int b_sz, char const * pzName,
                char const * pzProgPath)
 {
     size_t name_len = strlen(pzName);
 
-    if (((size_t)bufSize <= name_len) || (name_len == 0))
+    if (((size_t)b_sz <= name_len) || (name_len == 0))
         return false;
 
     /*
@@ -106,7 +109,7 @@ optionMakePath(char * pzBuf, int bufSize, char const * pzName,
     if (*pzName != '$') {
         char const*  pzS = pzName;
         char* pzD = pzBuf;
-        int   ct  = bufSize;
+        int   ct  = b_sz;
 
         for (;;) {
             if ( (*(pzD++) = *(pzS++)) == NUL)
@@ -126,7 +129,7 @@ optionMakePath(char * pzBuf, int bufSize, char const * pzName,
         return false;
 
     case '$':
-        if (! add_prog_path(pzBuf, bufSize, pzName, pzProgPath))
+        if (! add_prog_path(pzBuf, b_sz, pzName, pzProgPath))
             return false;
         break;
 
@@ -134,13 +137,13 @@ optionMakePath(char * pzBuf, int bufSize, char const * pzName,
         if (program_pkgdatadir[0] == NUL)
             return false;
 
-        if (snprintf(pzBuf, bufSize, "%s%s", program_pkgdatadir, pzName + 2)
-            >= bufSize)
+        if (snprintf(pzBuf, (size_t)b_sz, "%s%s",
+                     program_pkgdatadir, pzName + 2) >= b_sz)
             return false;
         break;
 
     default:
-        if (! add_env_val(pzBuf, bufSize, pzName))
+        if (! add_env_val(pzBuf, b_sz, pzName))
             return false;
     }
 
@@ -151,7 +154,7 @@ optionMakePath(char * pzBuf, int bufSize, char const * pzName,
             return false;
 
         name_len = strlen(pz);
-        if (name_len >= (size_t)bufSize) {
+        if (name_len >= (size_t)b_sz) {
             free(pz);
             return false;
         }
@@ -168,7 +171,7 @@ optionMakePath(char * pzBuf, int bufSize, char const * pzName,
             return false;
 
         name_len = strlen(z);
-        if (name_len >= bufSize)
+        if (name_len >= b_sz)
             return false;
 
         memcpy(pzBuf, z, name_len + 1);
@@ -179,7 +182,7 @@ optionMakePath(char * pzBuf, int bufSize, char const * pzName,
 }
 
 static bool
-add_prog_path(char * pzBuf, int bufSize, char const * pzName,
+add_prog_path(char * pzBuf, int b_sz, char const * pzName,
               char const * pzProgPath)
 {
     char const*    pzPath;
@@ -224,7 +227,7 @@ add_prog_path(char * pzBuf, int bufSize, char const * pzName,
      *  Concatenate the file name to the end of the executable path.
      *  The result may be either a file or a directory.
      */
-    if ((pz - pzPath)+1 + strlen(pzName) >= (unsigned)bufSize)
+    if ((unsigned)(pz - pzPath) + 1 + strlen(pzName) >= (unsigned)b_sz)
         return false;
 
     memcpy(pzBuf, pzPath, (size_t)((pz - pzPath)+1));
@@ -239,64 +242,70 @@ add_prog_path(char * pzBuf, int bufSize, char const * pzName,
     return true;
 }
 
-
 static bool
-add_env_val(char * pzBuf, int bufSize, char const * pzName)
+add_env_val(char * buf, int buf_sz, char const * name)
 {
-    char * pzDir = pzBuf;
+    char * dir_part = buf;
 
     for (;;) {
-        int ch = (int)*++pzName;
+        int ch = (int)*++name;
         if (! IS_VALUE_NAME_CHAR(ch))
             break;
-        *(pzDir++) = (char)ch;
+        *(dir_part++) = (char)ch;
     }
 
-    if (pzDir == pzBuf)
+    if (dir_part == buf)
         return false;
 
-    *pzDir = NUL;
+    *dir_part = NUL;
 
-    pzDir = getenv(pzBuf);
+    dir_part = getenv(buf);
 
     /*
      *  Environment value not found -- skip the home list entry
      */
-    if (pzDir == NULL)
+    if (dir_part == NULL)
         return false;
 
-    if (strlen(pzDir) + 1 + strlen(pzName) >= (unsigned)bufSize)
+    if (strlen(dir_part) + 1 + strlen(name) >= (unsigned)buf_sz)
         return false;
 
-    sprintf(pzBuf, "%s%s", pzDir, pzName);
+    sprintf(buf, "%s%s", dir_part, name);
     return true;
 }
 
-
+/**
+ * Trim leading and trailing white space.
+ * If we are cooking the text and the text is quoted, then "cook"
+ * the string.  To cook, the string must be quoted.
+ *
+ * @param[in,out] txt  the input and output string
+ * @param[in]     mode the handling mode (cooking method)
+ */
 LOCAL void
-mungeString(char* pzTxt, tOptionLoadMode mode)
+munge_str(char * txt, tOptionLoadMode mode)
 {
     char * pzE;
 
     if (mode == OPTION_LOAD_KEEP)
         return;
 
-    if (IS_WHITESPACE_CHAR(*pzTxt)) {
-        char * pzS = SPN_WHITESPACE_CHARS(pzTxt+1);
+    if (IS_WHITESPACE_CHAR(*txt)) {
+        char * pzS = SPN_WHITESPACE_CHARS(txt+1);
         size_t l   = strlen(pzS) + 1;
-        memmove(pzTxt, pzS, l);
-        pzE = pzTxt + l - 1;
+        memmove(txt, pzS, l);
+        pzE = txt + l - 1;
 
     } else
-        pzE = pzTxt + strlen(pzTxt);
+        pzE = txt + strlen(txt);
 
-    pzE  = SPN_WHITESPACE_BACK(pzTxt, pzE);
+    pzE  = SPN_WHITESPACE_BACK(txt, pzE);
     *pzE = NUL;
 
     if (mode == OPTION_LOAD_UNCOOKED)
         return;
 
-    switch (*pzTxt) {
+    switch (*txt) {
     default: return;
     case '"':
     case '\'': break;
@@ -308,21 +317,20 @@ mungeString(char* pzTxt, tOptionLoadMode mode)
     case '\'': break;
     }
 
-    (void)ao_string_cook(pzTxt, NULL);
+    (void)ao_string_cook(txt, NULL);
 }
 
-
 static char *
-assemble_arg_val(char * pzTxt, tOptionLoadMode mode)
+assemble_arg_val(char * txt, tOptionLoadMode mode)
 {
-    char* pzEnd = strpbrk(pzTxt, ARG_BREAK_STR);
+    char* pzEnd = strpbrk(txt, ARG_BREAK_STR);
     int   space_break;
 
     /*
      *  Not having an argument to a configurable name is okay.
      */
     if (pzEnd == NULL)
-        return pzTxt + strlen(pzTxt);
+        return txt + strlen(txt);
 
     /*
      *  If we are keeping all whitespace, then the  modevalue starts with the
@@ -349,34 +357,41 @@ assemble_arg_val(char * pzTxt, tOptionLoadMode mode)
     return pzEnd;
 }
 
-
-/*
+/**
  *  Load an option from a block of text.  The text must start with the
  *  configurable/option name and be followed by its associated value.
  *  That value may be processed in any of several ways.  See "tOptionLoadMode"
  *  in autoopts.h.
+ *
+ * @param[in,out] opts       program options descriptor
+ * @param[in,out] opt_state  option processing state
+ * @param[in,out] line       source line with long option name in it
+ * @param[in]     direction  current processing direction (preset or not)
+ * @param[in]     load_mode  option loading mode (OPTION_LOAD_*)
  */
 LOCAL void
 loadOptionLine(
-    tOptions*   pOpts,
-    tOptState*  pOS,
-    char*       pzLine,
+    tOptions *  opts,
+    tOptState * opt_state,
+    char *      line,
     tDirection  direction,
     tOptionLoadMode   load_mode )
 {
-    pzLine = SPN_WHITESPACE_CHARS(pzLine);
+    line = SPN_LOAD_LINE_SKIP_CHARS(line);
 
     {
-        char* pzArg = assemble_arg_val(pzLine, load_mode);
+        char * arg = assemble_arg_val(line, load_mode);
 
-        if (! SUCCESSFUL(opt_find_long(pOpts, pzLine, pOS)))
+        if (! SUCCESSFUL(opt_find_long(opts, line, opt_state)))
             return;
-        if (pOS->flags & OPTST_NO_INIT)
+
+        if (opt_state->flags & OPTST_NO_INIT)
             return;
-        pOS->pzOptArg = pzArg;
+
+        opt_state->pzOptArg = arg;
     }
 
-    switch (pOS->flags & (OPTST_IMM|OPTST_DISABLE_IMM)) {
+    switch (opt_state->flags & (OPTST_IMM|OPTST_DISABLE_IMM)) {
     case 0:
         /*
          *  The selected option has no immediate action.
@@ -394,7 +409,7 @@ loadOptionLine(
              *  immediately for enablement, but normally for disablement.
              *  Therefore, skip if disabled.
              */
-            if ((pOS->flags & OPTST_DISABLED) == 0)
+            if ((opt_state->flags & OPTST_DISABLED) == 0)
                 return;
         } else {
             /*
@@ -402,7 +417,7 @@ loadOptionLine(
              *  immediately for enablement, but normally for disablement.
              *  Therefore, skip if NOT disabled.
              */
-            if ((pOS->flags & OPTST_DISABLED) != 0)
+            if ((opt_state->flags & OPTST_DISABLED) != 0)
                 return;
         }
         break;
@@ -414,7 +429,7 @@ loadOptionLine(
              *  immediately for disablement, but normally for disablement.
              *  Therefore, skip if NOT disabled.
              */
-            if ((pOS->flags & OPTST_DISABLED) != 0)
+            if ((opt_state->flags & OPTST_DISABLED) != 0)
                 return;
         } else {
             /*
@@ -422,7 +437,7 @@ loadOptionLine(
              *  immediately for disablement, but normally for disablement.
              *  Therefore, skip if disabled.
              */
-            if ((pOS->flags & OPTST_DISABLED) == 0)
+            if ((opt_state->flags & OPTST_DISABLED) == 0)
                 return;
         }
         break;
@@ -441,43 +456,42 @@ loadOptionLine(
     /*
      *  Fix up the args.
      */
-    if (OPTST_GET_ARGTYPE(pOS->pOD->fOptState) == OPARG_TYPE_NONE) {
-        if (*pOS->pzOptArg != NUL)
+    if (OPTST_GET_ARGTYPE(opt_state->pOD->fOptState) == OPARG_TYPE_NONE) {
+        if (*opt_state->pzOptArg != NUL)
             return;
-        pOS->pzOptArg = NULL;
+        opt_state->pzOptArg = NULL;
 
-    } else if (pOS->pOD->fOptState & OPTST_ARG_OPTIONAL) {
-        if (*pOS->pzOptArg == NUL)
-             pOS->pzOptArg = NULL;
+    } else if (opt_state->pOD->fOptState & OPTST_ARG_OPTIONAL) {
+        if (*opt_state->pzOptArg == NUL)
+             opt_state->pzOptArg = NULL;
         else {
-            AGDUPSTR(pOS->pzOptArg, pOS->pzOptArg, "option argument");
-            pOS->flags |= OPTST_ALLOC_ARG;
+            AGDUPSTR(opt_state->pzOptArg, opt_state->pzOptArg, "opt arg");
+            opt_state->flags |= OPTST_ALLOC_ARG;
         }
 
     } else {
-        if (*pOS->pzOptArg == NUL)
-             pOS->pzOptArg = zNil;
+        if (*opt_state->pzOptArg == NUL)
+             opt_state->pzOptArg = zNil;
         else {
-            AGDUPSTR(pOS->pzOptArg, pOS->pzOptArg, "option argument");
-            pOS->flags |= OPTST_ALLOC_ARG;
+            AGDUPSTR(opt_state->pzOptArg, opt_state->pzOptArg, "opt arg");
+            opt_state->flags |= OPTST_ALLOC_ARG;
         }
     }
 
     {
         tOptionLoadMode sv = option_load_mode;
         option_load_mode = load_mode;
-        handle_opt(pOpts, pOS);
+        handle_opt(opts, opt_state);
         option_load_mode = sv;
     }
 }
 
-
 /*=export_func  optionLoadLine
  *
  * what:  process a string for an option name and value
  *
- * arg:   tOptions*,   pOpts,  program options descriptor
- * arg:   char const*, pzLine, NUL-terminated text
+ * arg:   tOptions*,   opts,  program options descriptor
+ * arg:   char const*, line,  NUL-terminated text
  *
  * doc:
  *
@@ -488,7 +502,8 @@ loadOptionLine(
  *  When passed a pointer to the option struct and a string, it will find
  *  the option named by the first token on the string and set the option
  *  argument to the remainder of the string.  The caller must NUL terminate
- *  the string.  Any embedded new lines will be included in the option
+ *  the string.  The caller need not skip over any introductory hyphens.
+ *  Any embedded new lines will be included in the option
  *  argument.  If the input looks like one or more quoted strings, then the
  *  input will be "cooked".  The "cooking" is identical to the string
  *  formation used in AutoGen definition files (@pxref{basic expression}),
@@ -498,15 +513,16 @@ loadOptionLine(
  *        will cause a warning to print, but the function should return.
 =*/
 void
-optionLoadLine(tOptions * pOpts, char const * pzLine)
+optionLoadLine(tOptions * opts, char const * line)
 {
     tOptState st = OPTSTATE_INITIALIZER(SET);
     char* pz;
-    AGDUPSTR(pz, pzLine, "user option line");
-    loadOptionLine(pOpts, &st, pz, DIRECTION_PROCESS, OPTION_LOAD_COOKED);
+    AGDUPSTR(pz, line, "user option line");
+    loadOptionLine(opts, &st, pz, DIRECTION_PROCESS, OPTION_LOAD_COOKED);
     AGFREE(pz);
 }
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index ce083de..146861d 100644 (file)
@@ -1,8 +1,8 @@
 dnl  -*- buffer-read-only: t -*- vi: set ro:
-dnl 
+dnl
 dnl DO NOT EDIT THIS FILE   (libopts.m4)
-dnl 
-dnl It has been AutoGen-ed  May  6, 2012 at 04:20:55 PM by AutoGen 5.16pre36
+dnl
+dnl It has been AutoGen-ed  March 31, 2013 at 10:41:19 AM by AutoGen 5.17.3
 dnl From the definitions    libopts.def
 dnl and the template file   conftest.tpl
 dnl
@@ -11,7 +11,7 @@ dnl
 AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
   AC_REQUIRE([AC_HEADER_STDC])
   AC_HEADER_DIRENT
-  
+
   # =================
   # AC_CHECK_HEADERS
   # =================
@@ -19,26 +19,26 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
       sys/mman.h    sys/param.h   sys/poll.h    sys/procset.h \
       sys/select.h  sys/socket.h  sys/stropts.h sys/time.h \
       sys/un.h      sys/wait.h    dlfcn.h       errno.h \
-      fcntl.h       libgen.h      memory.h      netinet/in.h \
-      setjmp.h      stdbool.h     sysexits.h    unistd.h \
-      utime.h])
-  
+      fcntl.h       libgen.h      libintl.h     memory.h \
+      netinet/in.h  setjmp.h      stdbool.h     sysexits.h \
+      unistd.h      utime.h])
+
   AC_CHECK_HEADERS([stdarg.h     varargs.h],
       [lo_have_arg_hdr=true;break],
       [lo_have_arg_hdr=false])
-  
+
   AC_CHECK_HEADERS([string.h     strings.h],
       [lo_have_str_hdr=true;break],
       [lo_have_str_hdr=false])
-  
+
   AC_CHECK_HEADERS([limits.h     sys/limits.h  values.h],
       [lo_have_lim_hdr=true;break],
       [lo_have_lim_hdr=false])
-  
+
   AC_CHECK_HEADERS([inttypes.h   stdint.h],
       [lo_have_typ_hdr=true;break],
       [lo_have_typ_hdr=false])
-  
+
   # ----------------------------------------------------------------------
   # check for various programs used during the build.
   # On OS/X, "wchar.h" needs "runetype.h" to work properly.
@@ -49,31 +49,39 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
   # include <runetype.h>
   #endif
   ])
-  
+
+  AC_ARG_ENABLE([nls],
+  AS_HELP_STRING([--disable-nls],[disable nls support in libopts]))
+  AS_IF([test "x$enable_nls" != "xno" && \
+  test "X${ac_cv_header_libintl_h}" = Xyes], [
+  AC_DEFINE([ENABLE_NLS],[1],[nls support in libopts])])
+
   # --------------------------------------------
   # Verify certain entries from AC_CHECK_HEADERS
   # --------------------------------------------
-  [for f in sys_types sys_mman sys_param sys_stat sys_wait \
-           string errno stdlib memory setjmp
-  do eval as_ac_var=\${ac_cv_header_${f}_h+set}
-     test "${as_ac_var}" = set || {
-       ]AC_MSG_ERROR([You must have ${f}.h on your system])[
-     }
-  done
-  
-  ${lo_have_arg_hdr} || \
-    ]AC_MSG_ERROR([You must have stdarg.h or varargs.h on your system])[
-  
+  [${lo_have_arg_hdr} || \
+    ]AC_MSG_ERROR([you must have stdarg.h or varargs.h on your system])[
+
   ${lo_have_str_hdr} || \
-    ]AC_MSG_ERROR([You must have string.h or strings.h on your system])[
-  
+    ]AC_MSG_ERROR([you must have string.h or strings.h on your system])[
+
   ${lo_have_lim_hdr} || \
     ]AC_MSG_ERROR(
-      [You must have one of limits.h, sys/limits.h or values.h])[
-  
+      [you must have one of limits.h, sys/limits.h or values.h])[
+
   ${lo_have_typ_hdr} || \
-    ]AC_MSG_ERROR([You must have inttypes.h or stdint.h on your system])
-  
+    ]AC_MSG_ERROR([you must have inttypes.h or stdint.h on your system])[
+
+  for f in sys_types sys_param sys_stat \
+           string errno stdlib memory setjmp
+  do eval as_ac_var=\${ac_cv_header_${f}_h}
+     test "X${as_ac_var}" = Xyes || {
+       ]AC_MSG_ERROR([you must have ${f}.h on your system])[
+     }
+  done
+  test "X${ac_cv_header_inttypes_h-no}" = Xyes || \
+    echo '#include <stdint.h>' > inttypes.h]
+
   # ----------------------------------------------------------------------
   # Checks for typedefs
   # ----------------------------------------------------------------------
@@ -93,7 +101,7 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
   AC_CHECK_SIZEOF(int,   4)
   AC_CHECK_SIZEOF(long,  8)
   AC_CHECK_SIZEOF(short, 2)
-  
+
   # ----------------------------------------------------------------------
   # AC_CHECK_LIB for SVR4 libgen, and use it if it defines pathfind.
   # ----------------------------------------------------------------------
@@ -116,7 +124,7 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
           if ! true ; then exit 1 ; fi
           echo /bin/sh'`
       test -x "$POSIX_SHELL" && break
-      ]AC_ERROR([Cannot locate a working POSIX shell])[
+      ]AC_MSG_ERROR([cannot locate a working POSIX shell])[
   done]
   AC_DEFINE_UNQUOTED([POSIX_SHELL], ["${POSIX_SHELL}"],
            [define to a working POSIX compliant shell])
@@ -142,7 +150,7 @@ AC_DEFUN([LIBOPTS_WITH_REGEX_HEADER],[
   else
     AC_DEFINE([REGEX_HEADER],[<regex.h>],[name of regex header file])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_WITH_REGEX_HEADER
 
 
@@ -192,7 +200,6 @@ AC_DEFUN([LIBOPTS_WITHLIB_REGEX],[
   esac
   libopts_save_CPPFLAGS="${CPPFLAGS}"
   libopts_save_LIBS="${LIBS}"
-  fi ## disabled by request
 
   case "X${libopts_cv_with_libregex_cflags}" in
   Xyes|Xno|X )
@@ -209,7 +216,7 @@ AC_DEFUN([LIBOPTS_WITHLIB_REGEX],[
   LIBREGEX_LIBS=""
   AC_MSG_CHECKING([whether libregex functions properly])
   AC_CACHE_VAL([libopts_cv_with_libregex],[
-  AC_TRY_RUN([@%:@include <stdio.h>
+  AC_RUN_IFELSE([@%:@include <stdio.h>
 @%:@include <stdlib.h>
 @%:@include <sys/types.h>
 @%:@include REGEX_HEADER
@@ -230,9 +237,11 @@ int main() {
   }
   return 0; }],
     [libopts_cv_with_libregex=yes], [libopts_cv_with_libregex=no],
-    [libopts_cv_with_libregex=no]) # end of AC_TRY_RUN 
+    [libopts_cv_with_libregex=no]) # end of AC_RUN_IFELSE 
   ]) # end of AC_CACHE_VAL for libopts_cv_with_libregex
   AC_MSG_RESULT([${libopts_cv_with_libregex}])
+  fi ## disabled by request
+
   if test "X${libopts_cv_with_libregex}" != Xno
   then
     AC_DEFINE([WITH_LIBREGEX],[1],
@@ -240,22 +249,26 @@ int main() {
   else
     CPPFLAGS="${libopts_save_CPPFLAGS}"
     LIBS="${libopts_save_LIBS}"
+    libopts_cv_with_libregex_root=no
+    libopts_cv_with_libregex_cflags=no
+    libopts_cv_with_libregex_libs=no
+    AC_MSG_RESULT([the regex library does not work and will not be used])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_WITHLIB_REGEX
 
 
 AC_DEFUN([LIBOPTS_RUN_PATHFIND],[
   AC_MSG_CHECKING([whether pathfind(3) works])
   AC_CACHE_VAL([libopts_cv_run_pathfind],[
-  AC_TRY_RUN([@%:@include <string.h>
+  AC_RUN_IFELSE([@%:@include <string.h>
 @%:@include <stdlib.h>
 int main (int argc, char** argv) {
    char* pz = pathfind( getenv( "PATH" ), "sh", "x" );
    return (pz == 0) ? 1 : 0;
 }],
     [libopts_cv_run_pathfind=yes],[libopts_cv_run_pathfind=no],[libopts_cv_run_pathfind=no]
-  ) # end of TRY_RUN
+  ) # end of RUN_IFELSE
   ]) # end of AC_CACHE_VAL for libopts_cv_run_pathfind
   AC_MSG_RESULT([${libopts_cv_run_pathfind}])
   if test "X${libopts_cv_run_pathfind}" != Xno
@@ -263,7 +276,7 @@ int main (int argc, char** argv) {
     AC_DEFINE([HAVE_PATHFIND],[1],
         [Define this if pathfind(3) works])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_RUN_PATHFIND
 
 
@@ -284,14 +297,14 @@ echo ${dzero}`
     AC_DEFINE([HAVE_DEV_ZERO],[1],
         [Define this if /dev/zero is readable device])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_TEST_DEV_ZERO
 
 
 AC_DEFUN([LIBOPTS_RUN_REALPATH],[
   AC_MSG_CHECKING([whether we have a functional realpath(3C)])
   AC_CACHE_VAL([libopts_cv_run_realpath],[
-  AC_TRY_RUN([@%:@include <limits.h>
+  AC_RUN_IFELSE([@%:@include <limits.h>
 @%:@include <stdlib.h>
 int main (int argc, char** argv) {
 @%:@ifndef PATH_MAX
@@ -303,7 +316,7 @@ choke me!!
    return (pz == zPath) ? 0 : 1;
 }],
     [libopts_cv_run_realpath=yes],[libopts_cv_run_realpath=no],[libopts_cv_run_realpath=no]
-  ) # end of TRY_RUN
+  ) # end of RUN_IFELSE
   ]) # end of AC_CACHE_VAL for libopts_cv_run_realpath
   AC_MSG_RESULT([${libopts_cv_run_realpath}])
   if test "X${libopts_cv_run_realpath}" != Xno
@@ -311,14 +324,14 @@ choke me!!
     AC_DEFINE([HAVE_REALPATH],[1],
         [Define this if we have a functional realpath(3C)])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_RUN_REALPATH
 
 
 AC_DEFUN([LIBOPTS_RUN_STRFTIME],[
   AC_MSG_CHECKING([whether strftime() works])
   AC_CACHE_VAL([libopts_cv_run_strftime],[
-  AC_TRY_RUN([@%:@include <time.h>
+  AC_RUN_IFELSE([@%:@include <time.h>
 @%:@include <string.h>
 char t_buf@<:@ 64 @:>@;
 int main() {
@@ -336,7 +349,7 @@ int main() {
   strftime( t_buf, sizeof( t_buf ), "%A %b %d %j", &tm );
   return (strcmp( t_buf, z ) != 0); }],
     [libopts_cv_run_strftime=yes],[libopts_cv_run_strftime=no],[libopts_cv_run_strftime=no]
-  ) # end of TRY_RUN
+  ) # end of RUN_IFELSE
   ]) # end of AC_CACHE_VAL for libopts_cv_run_strftime
   AC_MSG_RESULT([${libopts_cv_run_strftime}])
   if test "X${libopts_cv_run_strftime}" != Xno
@@ -344,19 +357,19 @@ int main() {
     AC_DEFINE([HAVE_STRFTIME],[1],
         [Define this if strftime() works])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_RUN_STRFTIME
 
 
 AC_DEFUN([LIBOPTS_RUN_FOPEN_BINARY],[
   AC_MSG_CHECKING([whether fopen accepts "b" mode])
   AC_CACHE_VAL([libopts_cv_run_fopen_binary],[
-  AC_TRY_RUN([@%:@include <stdio.h>
+  AC_RUN_IFELSE([@%:@include <stdio.h>
 int main (int argc, char** argv) {
 FILE* fp = fopen("conftest.@S|@ac_ext", "rb");
 return (fp == NULL) ? 1 : fclose(fp); }],
     [libopts_cv_run_fopen_binary=yes],[libopts_cv_run_fopen_binary=no],[libopts_cv_run_fopen_binary=no]
-  ) # end of TRY_RUN
+  ) # end of RUN_IFELSE
   ]) # end of AC_CACHE_VAL for libopts_cv_run_fopen_binary
   AC_MSG_RESULT([${libopts_cv_run_fopen_binary}])
   if test "X${libopts_cv_run_fopen_binary}" != Xno
@@ -367,19 +380,19 @@ return (fp == NULL) ? 1 : fclose(fp); }],
     AC_DEFINE([FOPEN_BINARY_FLAG],"",
        [fopen(3) accepts a 'b' in the mode flag])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_RUN_FOPEN_BINARY
 
 
 AC_DEFUN([LIBOPTS_RUN_FOPEN_TEXT],[
   AC_MSG_CHECKING([whether fopen accepts "t" mode])
   AC_CACHE_VAL([libopts_cv_run_fopen_text],[
-  AC_TRY_RUN([@%:@include <stdio.h>
+  AC_RUN_IFELSE([@%:@include <stdio.h>
 int main (int argc, char** argv) {
 FILE* fp = fopen("conftest.@S|@ac_ext", "rt");
 return (fp == NULL) ? 1 : fclose(fp); }],
     [libopts_cv_run_fopen_text=yes],[libopts_cv_run_fopen_text=no],[libopts_cv_run_fopen_text=no]
-  ) # end of TRY_RUN
+  ) # end of RUN_IFELSE
   ]) # end of AC_CACHE_VAL for libopts_cv_run_fopen_text
   AC_MSG_RESULT([${libopts_cv_run_fopen_text}])
   if test "X${libopts_cv_run_fopen_text}" != Xno
@@ -390,7 +403,7 @@ return (fp == NULL) ? 1 : fclose(fp); }],
     AC_DEFINE([FOPEN_TEXT_FLAG],"",
        [fopen(3) accepts a 't' in the mode flag])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_RUN_FOPEN_TEXT
 
 
@@ -406,7 +419,7 @@ AC_DEFUN([LIBOPTS_DISABLE_OPTIONAL_ARGS],[
     AC_DEFINE([NO_OPTIONAL_OPT_ARGS], [1],
           [Define this if optional arguments are disallowed])
   fi
-  
+
 ]) # end of AC_DEFUN of LIBOPTS_DISABLE_OPTIONAL_ARGS
 
 
@@ -443,15 +456,13 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS],[
 
 dnl @synopsis  LIBOPTS_CHECK
 dnl
-dnl Time-stamp:        "2012-02-25 12:54:32 bkorb"
-dnl
 dnl If autoopts-config works, add the linking information to LIBS.
 dnl Otherwise, add ``libopts-${ao_rev}'' to SUBDIRS and run all
 dnl the config tests that the library needs.  Invoke the
 dnl "INVOKE_LIBOPTS_MACROS" macro iff we are building libopts.
 dnl
 dnl  This file is part of AutoGen.
-dnl  AutoGen Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+dnl  AutoGen Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
 dnl
 dnl  AutoGen is free software: you can redistribute it and/or modify it
 dnl  under the terms of the GNU General Public License as published by the
index 4a45bde..b607191 100644 (file)
@@ -1,12 +1,10 @@
 # liboptschk.m4 serial 2 (autogen - 5.11.4)
-dnl Copyright (c) 2005-2012 by Bruce Korb - all rights reserved
+dnl Copyright (C) 2005-2013 by Bruce Korb - all rights reserved
 dnl
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 dnl
-dnl Time-stamp:        "2010-12-07 12:57:56 bkorb"
-dnl
 AC_DEFUN([ag_FIND_LIBOPTS],
   [if test "X${ac_cv_header_autoopts_options_h}" = Xno
   then :
index 79edb70..f22e9f0 100644 (file)
@@ -2,14 +2,16 @@
 /**
  * \file makeshell.c
  *
- * Time-stamp:      "2012-04-07 09:03:16 bkorb"
- *
  *  This module will interpret the options set in the tOptions
  *  structure and create a Bourne shell script capable of parsing them.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 tOptions * optionParseShellOptions = NULL;
@@ -33,39 +35,60 @@ tOptions * optionParseShellOptions = NULL;
 static char const * shell_prog = NULL;
 static char * script_leader    = NULL;
 static char * script_trailer   = NULL;
+static char * script_text      = NULL;
 
 /* = = = START-STATIC-FORWARD = = = */
 static void
 emit_var_text(char const * prog, char const * var, int fdin);
 
 static void
-text_to_var(tOptions * pOpts, teTextTo whichVar, tOptDesc * pOD);
+text_to_var(tOptions * opts, teTextTo which, tOptDesc * od);
 
 static void
-emit_usage(tOptions * pOpts);
+emit_usage(tOptions * opts);
 
 static void
-emit_setup(tOptions * pOpts);
+emit_wrapup(tOptions * opts);
 
 static void
-emit_action(tOptions * pOpts, tOptDesc* pOptDesc);
+emit_setup(tOptions * opts);
 
 static void
-emit_inaction(tOptions * pOpts, tOptDesc* pOptDesc);
+emit_action(tOptions * opts, tOptDesc * od);
 
 static void
-emit_flag(tOptions * pOpts);
+emit_inaction(tOptions * opts, tOptDesc * od);
 
 static void
-emit_match_expr(char const * pzMatchName, tOptDesc* pCurOpt, tOptions* pOpts);
+emit_flag(tOptions * opts);
 
 static void
-emitLong(tOptions * pOpts);
+emit_match_expr(char const * name, tOptDesc * cod, tOptions * opts);
 
 static void
-open_out(char const * pzFile);
+emit_long(tOptions * opts);
+
+static char *
+load_old_output(char const * fname, char const * pname);
+
+static void
+open_out(char const * fname, char const * pname);
 /* = = = END-STATIC-FORWARD = = = */
 
+LOCAL void
+fserr_warn(char const * prog, char const * op, char const * fname)
+{
+    fprintf(stderr, zfserr_fmt, prog, errno, strerror(errno),
+            op, fname);
+}
+
+LOCAL void
+fserr_exit(char const * prog, char const * op, char const * fname)
+{
+    fserr_warn(prog, op, fname);
+    exit(EXIT_FAILURE);
+}
+
 /*=export_func  optionParseShell
  * private:
  *
@@ -76,7 +99,7 @@ open_out(char const * pzFile);
  *  Emit a shell script that will parse the command line options.
 =*/
 void
-optionParseShell(tOptions * pOpts)
+optionParseShell(tOptions * opts)
 {
     /*
      *  Check for our SHELL option now.
@@ -98,22 +121,22 @@ optionParseShell(tOptions * pOpts)
      *  Check for a specified output file
      */
     if (HAVE_GENSHELL_OPT(SCRIPT))
-        open_out(GENSHELL_OPT_ARG(SCRIPT));
-
-    emit_usage(pOpts);
-    emit_setup(pOpts);
+        open_out(GENSHELL_OPT_ARG(SCRIPT), opts->pzProgName);
+    
+    emit_usage(opts);
+    emit_setup(opts);
 
     /*
      *  There are four modes of option processing.
      */
-    switch (pOpts->fOptSet & (OPTPROC_LONGOPT|OPTPROC_SHORTOPT)) {
+    switch (opts->fOptSet & (OPTPROC_LONGOPT|OPTPROC_SHORTOPT)) {
     case OPTPROC_LONGOPT:
         fputs(LOOP_STR,         stdout);
 
         fputs(LONG_OPT_MARK,    stdout);
         fputs(INIT_LOPT_STR,    stdout);
-        emitLong(pOpts);
-        printf(LOPT_ARG_FMT,    pOpts->pzPROGNAME);
+        emit_long(opts);
+        printf(LOPT_ARG_FMT,    opts->pzPROGNAME);
         fputs(END_OPT_SEL_STR,  stdout);
 
         fputs(NOT_FOUND_STR,    stdout);
@@ -122,8 +145,8 @@ optionParseShell(tOptions * pOpts)
     case 0:
         fputs(ONLY_OPTS_LOOP,   stdout);
         fputs(INIT_LOPT_STR,    stdout);
-        emitLong(pOpts);
-        printf(LOPT_ARG_FMT,    pOpts->pzPROGNAME);
+        emit_long(opts);
+        printf(LOPT_ARG_FMT,    opts->pzPROGNAME);
         break;
 
     case OPTPROC_SHORTOPT:
@@ -131,8 +154,8 @@ optionParseShell(tOptions * pOpts)
 
         fputs(FLAG_OPT_MARK,    stdout);
         fputs(INIT_OPT_STR,     stdout);
-        emit_flag(pOpts);
-        printf(OPT_ARG_FMT,     pOpts->pzPROGNAME);
+        emit_flag(opts);
+        printf(OPT_ARG_FMT,     opts->pzPROGNAME);
         fputs(END_OPT_SEL_STR,  stdout);
 
         fputs(NOT_FOUND_STR,    stdout);
@@ -143,38 +166,53 @@ optionParseShell(tOptions * pOpts)
 
         fputs(LONG_OPT_MARK,    stdout);
         fputs(INIT_LOPT_STR,    stdout);
-        emitLong(pOpts);
-        printf(LOPT_ARG_FMT,    pOpts->pzPROGNAME);
+        emit_long(opts);
+        printf(LOPT_ARG_FMT,    opts->pzPROGNAME);
         fputs(END_OPT_SEL_STR,  stdout);
 
         fputs(FLAG_OPT_MARK,    stdout);
         fputs(INIT_OPT_STR,     stdout);
-        emit_flag(pOpts);
-        printf(OPT_ARG_FMT,     pOpts->pzPROGNAME);
+        emit_flag(opts);
+        printf(OPT_ARG_FMT,     opts->pzPROGNAME);
         fputs(END_OPT_SEL_STR,  stdout);
 
         fputs(NOT_FOUND_STR,    stdout);
         break;
     }
 
-    printf(zLoopEnd, pOpts->pzPROGNAME, END_MARK);
+    emit_wrapup(opts);
     if ((script_trailer != NULL) && (*script_trailer != NUL))
         fputs(script_trailer, stdout);
     else if (ENABLED_GENSHELL_OPT(SHELL))
-        printf(SHOW_PROG_ENV, pOpts->pzPROGNAME);
+        printf(SHOW_PROG_ENV, opts->pzPROGNAME);
 
 #ifdef HAVE_FCHMOD
     fchmod(STDOUT_FILENO, 0755);
 #endif
     fclose(stdout);
 
-    if (ferror(stdout)) {
-        fputs(zOutputFail, stderr);
-        exit(EXIT_FAILURE);
-    }
+    if (ferror(stdout))
+        fserr_exit(opts->pzProgName, zwriting, zstdout_name);
+
+    AGFREE(script_text);
+    script_leader    = NULL;
+    script_trailer   = NULL;
+    script_text      = NULL;
 }
 
 #ifdef HAVE_WORKING_FORK
+/**
+ * Print the value of "var" to a file descriptor.
+ * The "fdin" is the read end of a pipe to a forked process that
+ * is writing usage text to it.  We read that text in and re-emit
+ * to standard out, formatting it so that it is assigned to a
+ * shell variable.
+ *
+ * @param[in] prog  The capitalized, c-variable-formatted program name
+ * @param[in] var   a similarly formatted type name
+ *                  (LONGUSAGE, USAGE or VERSION)
+ * @param[in] fdin  the input end of a pipe
+ */
 static void
 emit_var_text(char const * prog, char const * var, int fdin)
 {
@@ -198,11 +236,11 @@ emit_var_text(char const * prog, char const * var, int fdin)
                 fputc(NL, stdout);
                 nlct--;
             }
-            fputs(apostrophy, stdout);
+            fputs(apostrophe, stdout);
             break;
 
         case EOF:
-            goto endCharLoop;
+            goto done;
 
         default:
             while (nlct > 0) {
@@ -212,97 +250,102 @@ emit_var_text(char const * prog, char const * var, int fdin)
             fputc(ch, stdout);
             break;
         }
-    } endCharLoop:;
+    } done:;
 
     fclose(fp);
 
-skip_text:
+ skip_text:
 
     fputs(END_SET_TEXT, stdout);
 }
-
 #endif
 
-/*
+/**
  *  The purpose of this function is to assign "long usage", short usage
  *  and version information to a shell variable.  Rather than wind our
  *  way through all the logic necessary to emit the text directly, we
  *  fork(), have our child process emit the text the normal way and
  *  capture the output in the parent process.
+ *
+ * @param[in] opts  the program options
+ * @param[in] which what to print: long usage, usage or version
+ * @param[in] od    for TT_VERSION, it is the version option
  */
 static void
-text_to_var(tOptions * pOpts, teTextTo whichVar, tOptDesc * pOD)
+text_to_var(tOptions * opts, teTextTo which, tOptDesc * od)
 {
 #   define _TT_(n) static char const z ## n [] = #n;
     TEXTTO_TABLE
 #   undef _TT_
 #   define _TT_(n) z ## n ,
-      static char const * apzTTNames[] = { TEXTTO_TABLE };
+      static char const * ttnames[] = { TEXTTO_TABLE };
 #   undef _TT_
 
 #if ! defined(HAVE_WORKING_FORK)
-    printf(SET_NO_TEXT_FMT, pOpts->pzPROGNAME, apzTTNames[ whichVar]);
+    printf(SET_NO_TEXT_FMT, opts->pzPROGNAME, ttnames[which]);
 #else
-    int  pipeFd[2];
+    int  fdpair[2];
 
     fflush(stdout);
     fflush(stderr);
 
-    if (pipe(pipeFd) != 0) {
-        fprintf(stderr, zBadPipe, errno, strerror(errno));
-        exit(EXIT_FAILURE);
-    }
+    if (pipe(fdpair) != 0)
+        fserr_exit(opts->pzProgName, "pipe", zinter_proc_pipe);
 
     switch (fork()) {
     case -1:
-        fprintf(stderr, zForkFail, errno, strerror(errno), pOpts->pzProgName);
-        exit(EXIT_FAILURE);
-        break;
+        fserr_exit(opts->pzProgName, "fork", opts->pzProgName);
+        /* NOTREACHED */
 
     case 0:
         /*
          * Send both stderr and stdout to the pipe.  No matter which
          * descriptor is used, we capture the output on the read end.
          */
-        dup2(pipeFd[1], STDERR_FILENO);
-        dup2(pipeFd[1], STDOUT_FILENO);
-        close(pipeFd[0]);
+        dup2(fdpair[1], STDERR_FILENO);
+        dup2(fdpair[1], STDOUT_FILENO);
+        close(fdpair[0]);
 
-        switch (whichVar) {
+        switch (which) {
         case TT_LONGUSAGE:
-            (*(pOpts->pUsageProc))(pOpts, EXIT_SUCCESS);
+            (*(opts->pUsageProc))(opts, EXIT_SUCCESS);
             /* NOTREACHED */
 
         case TT_USAGE:
-            (*(pOpts->pUsageProc))(pOpts, EXIT_FAILURE);
+            (*(opts->pUsageProc))(opts, EXIT_FAILURE);
             /* NOTREACHED */
 
         case TT_VERSION:
-            if (pOD->fOptState & OPTST_ALLOC_ARG) {
-                AGFREE(pOD->optArg.argString);
-                pOD->fOptState &= ~OPTST_ALLOC_ARG;
+            if (od->fOptState & OPTST_ALLOC_ARG) {
+                AGFREE(od->optArg.argString);
+                od->fOptState &= ~OPTST_ALLOC_ARG;
             }
-            pOD->optArg.argString = "c";
-            optionPrintVersion(pOpts, pOD);
+            od->optArg.argString = "c";
+            optionPrintVersion(opts, od);
             /* NOTREACHED */
 
         default:
             exit(EXIT_FAILURE);
+            /* NOTREACHED */
         }
+        /* NOTREACHED */
 
     default:
-        close(pipeFd[1]);
+        close(fdpair[1]);
     }
 
-    emit_var_text(pOpts->pzPROGNAME, apzTTNames[whichVar], pipeFd[0]);
+    emit_var_text(opts->pzPROGNAME, ttnames[which], fdpair[0]);
 #endif
 }
 
-
+/**
+ * capture usage text in shell variables.
+ * 
+ */
 static void
-emit_usage(tOptions * pOpts)
+emit_usage(tOptions * opts)
 {
-    char zTimeBuf[AO_NAME_SIZE];
+    char tm_nm_buf[AO_NAME_SIZE];
 
     /*
      *  First, switch stdout to the output file name.
@@ -319,7 +362,7 @@ emit_usage(tOptions * pOpts)
         {
             time_t    c_tim = time(NULL);
             struct tm * ptm = localtime(&c_tim);
-            strftime(zTimeBuf, AO_NAME_SIZE, TIME_FMT, ptm );
+            strftime(tm_nm_buf, AO_NAME_SIZE, TIME_FMT, ptm );
         }
 
         if (HAVE_GENSHELL_OPT(SCRIPT))
@@ -329,41 +372,42 @@ emit_usage(tOptions * pOpts)
         if ((script_leader == NULL) && (shell_prog != NULL))
             printf(SHELL_MAGIC, shell_prog);
 
-        printf(PREAMBLE_FMT, START_MARK, out_nm, zTimeBuf);
+        printf(PREAMBLE_FMT, START_MARK, out_nm, tm_nm_buf);
     }
 
-    printf(END_PRE_FMT, pOpts->pzPROGNAME);
+    printf(END_PRE_FMT, opts->pzPROGNAME);
 
     /*
      *  Get a copy of the original program name in lower case and
      *  fill in an approximation of the program name from it.
      */
     {
-        char *       pzPN = zTimeBuf;
-        char const * pz   = pOpts->pzPROGNAME;
+        char *       pzPN = tm_nm_buf;
+        char const * pz   = opts->pzPROGNAME;
         char **      pp;
 
+        /* Copy the program name into the time/name buffer */
         for (;;) {
             if ((*pzPN++ = (char)tolower(*pz++)) == NUL)
                 break;
         }
 
-        pp = (char **)(void *)&(pOpts->pzProgPath);
-        *pp = zTimeBuf;
-        pp  = (char **)(void *)&(pOpts->pzProgName);
-        *pp = zTimeBuf;
+        pp  = (char **)(void *)&(opts->pzProgPath);
+        *pp = tm_nm_buf;
+        pp  = (char **)(void *)&(opts->pzProgName);
+        *pp = tm_nm_buf;
     }
 
-    text_to_var(pOpts, TT_LONGUSAGE, NULL);
-    text_to_var(pOpts, TT_USAGE,     NULL);
+    text_to_var(opts, TT_LONGUSAGE, NULL);
+    text_to_var(opts, TT_USAGE,     NULL);
 
     {
-        tOptDesc* pOptDesc = pOpts->pOptDesc;
-        int       optionCt = pOpts->optCt;
+        tOptDesc* pOptDesc = opts->pOptDesc;
+        int       optionCt = opts->optCt;
 
         for (;;) {
             if (pOptDesc->pOptProc == optionPrintVersion) {
-                text_to_var(pOpts, TT_VERSION, pOptDesc);
+                text_to_var(opts, TT_VERSION, pOptDesc);
                 break;
             }
 
@@ -374,249 +418,289 @@ emit_usage(tOptions * pOpts)
     }
 }
 
+static void
+emit_wrapup(tOptions * opts)
+{
+    tOptDesc *   od     = opts->pOptDesc;
+    int          opt_ct = opts->presetOptCt;
+    char const * fmt;
+
+    printf(FINISH_LOOP, opts->pzPROGNAME);
+    for (;opt_ct > 0; od++, --opt_ct) {
+        /*
+         *  Options that are either usage documentation or are compiled out
+         *  are not to be processed.
+         */
+        if (SKIP_OPT(od) || (od->pz_NAME == NULL))
+            continue;
+
+        /*
+         *  do not presence check if there is no minimum/must-set
+         */
+        if ((od->optMinCt == 0) && ((od->fOptState & OPTST_MUST_SET) == 0))
+            continue;
+
+        if (od->optMaxCt > 1)
+             fmt = CHK_MIN_COUNT;
+        else fmt = CHK_ONE_REQUIRED;
+
+        {
+            int min = (od->optMinCt == 0) ? 1 : od->optMinCt;
+            printf(fmt, opts->pzPROGNAME, od->pz_NAME, min);
+        }
+    }
+    fputs(END_MARK, stdout);
+}
 
 static void
-emit_setup(tOptions * pOpts)
+emit_setup(tOptions * opts)
 {
-    tOptDesc *   pOptDesc = pOpts->pOptDesc;
-    int          optionCt = pOpts->presetOptCt;
-    char const * pzFmt;
-    char const * pzDefault;
+    tOptDesc *   od     = opts->pOptDesc;
+    int          opt_ct = opts->presetOptCt;
+    char const * fmt;
+    char const * def_val;
 
-    for (;optionCt > 0; pOptDesc++, --optionCt) {
-        char zVal[32];
+    for (;opt_ct > 0; od++, --opt_ct) {
+        char int_val_buf[32];
 
         /*
          *  Options that are either usage documentation or are compiled out
          *  are not to be processed.
          */
-        if (SKIP_OPT(pOptDesc) || (pOptDesc->pz_NAME == NULL))
+        if (SKIP_OPT(od) || (od->pz_NAME == NULL))
             continue;
 
-        if (pOptDesc->optMaxCt > 1)
-             pzFmt = MULTI_DEF_FMT;
-        else pzFmt = SGL_DEF_FMT;
+        if (od->optMaxCt > 1)
+             fmt = MULTI_DEF_FMT;
+        else fmt = SGL_DEF_FMT;
 
         /*
          *  IF this is an enumeration/bitmask option, then convert the value
          *  to a string before printing the default value.
          */
-        switch (OPTST_GET_ARGTYPE(pOptDesc->fOptState)) {
+        switch (OPTST_GET_ARGTYPE(od->fOptState)) {
         case OPARG_TYPE_ENUMERATION:
-            (*(pOptDesc->pOptProc))(OPTPROC_EMIT_SHELL, pOptDesc );
-            pzDefault = pOptDesc->optArg.argString;
+            (*(od->pOptProc))(OPTPROC_EMIT_SHELL, od );
+            def_val = od->optArg.argString;
             break;
 
         /*
          *  Numeric and membership bit options are just printed as a number.
          */
         case OPARG_TYPE_NUMERIC:
-            snprintf(zVal, sizeof(zVal), "%d",
-                     (int)pOptDesc->optArg.argInt);
-            pzDefault = zVal;
+            snprintf(int_val_buf, sizeof(int_val_buf), "%d",
+                     (int)od->optArg.argInt);
+            def_val = int_val_buf;
             break;
 
         case OPARG_TYPE_MEMBERSHIP:
-            snprintf(zVal, sizeof(zVal), "%lu",
-                     (unsigned long)pOptDesc->optArg.argIntptr);
-            pzDefault = zVal;
+            snprintf(int_val_buf, sizeof(int_val_buf), "%lu",
+                     (unsigned long)od->optArg.argIntptr);
+            def_val = int_val_buf;
             break;
 
         case OPARG_TYPE_BOOLEAN:
-            pzDefault = (pOptDesc->optArg.argBool) ? TRUE_STR : FALSE_STR;
+            def_val = (od->optArg.argBool) ? TRUE_STR : FALSE_STR;
             break;
 
         default:
-            if (pOptDesc->optArg.argString == NULL) {
-                if (pzFmt == SGL_DEF_FMT)
-                    pzFmt = SGL_NO_DEF_FMT;
-                pzDefault = NULL;
+            if (od->optArg.argString == NULL) {
+                if (fmt == SGL_DEF_FMT)
+                    fmt = SGL_NO_DEF_FMT;
+                def_val = NULL;
             }
             else
-                pzDefault = pOptDesc->optArg.argString;
+                def_val = od->optArg.argString;
         }
 
-        printf(pzFmt, pOpts->pzPROGNAME, pOptDesc->pz_NAME, pzDefault);
+        printf(fmt, opts->pzPROGNAME, od->pz_NAME, def_val);
     }
 }
 
 static void
-emit_action(tOptions * pOpts, tOptDesc* pOptDesc)
+emit_action(tOptions * opts, tOptDesc * od)
 {
-    if (pOptDesc->pOptProc == optionPrintVersion)
-        printf(zTextExit, pOpts->pzPROGNAME, VER_STR);
+    if (od->pOptProc == optionPrintVersion)
+        printf(ECHO_N_EXIT, opts->pzPROGNAME, VER_STR);
 
-    else if (pOptDesc->pOptProc == optionPagedUsage)
-        printf(zPagedUsageExit, pOpts->pzPROGNAME);
+    else if (od->pOptProc == optionPagedUsage)
+        printf(PAGE_USAGE_TEXT, opts->pzPROGNAME);
 
-    else if (pOptDesc->pOptProc == optionLoadOpt) {
-        printf(zCmdFmt, NO_LOAD_WARN);
-        printf(zCmdFmt, YES_NEED_OPT_ARG);
+    else if (od->pOptProc == optionLoadOpt) {
+        printf(LVL3_CMD, NO_LOAD_WARN);
+        printf(LVL3_CMD, YES_NEED_OPT_ARG);
 
-    } else if (pOptDesc->pz_NAME == NULL) {
+    } else if (od->pz_NAME == NULL) {
 
-        if (pOptDesc->pOptProc == NULL) {
-            printf(zCmdFmt, NO_SAVE_OPTS);
-            printf(zCmdFmt, OK_NEED_OPT_ARG);
+        if (od->pOptProc == NULL) {
+            printf(LVL3_CMD, NO_SAVE_OPTS);
+            printf(LVL3_CMD, OK_NEED_OPT_ARG);
         } else
-            printf(zTextExit, pOpts->pzPROGNAME, LONG_USE_STR);
+            printf(ECHO_N_EXIT, opts->pzPROGNAME, LONG_USE_STR);
 
     } else {
-        if (pOptDesc->optMaxCt == 1)
-            printf(SGL_ARG_FMT, pOpts->pzPROGNAME, pOptDesc->pz_NAME);
+        if (od->optMaxCt == 1)
+            printf(SGL_ARG_FMT, opts->pzPROGNAME, od->pz_NAME);
         else {
-            if ((unsigned)pOptDesc->optMaxCt < NOLIMIT)
-                printf(zCountTest, pOpts->pzPROGNAME,
-                       pOptDesc->pz_NAME, pOptDesc->optMaxCt);
+            if ((unsigned)od->optMaxCt < NOLIMIT)
+                printf(CHK_MAX_COUNT, opts->pzPROGNAME,
+                       od->pz_NAME, od->optMaxCt);
 
-            printf(MULTI_ARG_FMT, pOpts->pzPROGNAME, pOptDesc->pz_NAME);
+            printf(MULTI_ARG_FMT, opts->pzPROGNAME, od->pz_NAME);
         }
 
         /*
          *  Fix up the args.
          */
-        if (OPTST_GET_ARGTYPE(pOptDesc->fOptState) == OPARG_TYPE_NONE) {
-            printf(zCantArg, pOpts->pzPROGNAME, pOptDesc->pz_NAME);
+        if (OPTST_GET_ARGTYPE(od->fOptState) == OPARG_TYPE_NONE) {
+            printf(SET_MULTI_ARG, opts->pzPROGNAME, od->pz_NAME);
+            printf(LVL3_CMD, NO_ARG_NEEDED);
 
-        } else if (pOptDesc->fOptState & OPTST_ARG_OPTIONAL) {
-            printf(zMayArg,  pOpts->pzPROGNAME, pOptDesc->pz_NAME);
+        } else if (od->fOptState & OPTST_ARG_OPTIONAL) {
+            printf(SET_MULTI_ARG,  opts->pzPROGNAME, od->pz_NAME);
+            printf(LVL3_CMD, OK_NEED_OPT_ARG);
 
         } else {
-            fputs(zMustArg, stdout);
+            printf(LVL3_CMD, YES_NEED_OPT_ARG);
         }
     }
     fputs(zOptionEndSelect, stdout);
 }
 
-
 static void
-emit_inaction(tOptions * pOpts, tOptDesc* pOptDesc)
+emit_inaction(tOptions * opts, tOptDesc * od)
 {
-    if (pOptDesc->pOptProc == optionLoadOpt) {
-        printf(zCmdFmt, NO_SUPPRESS_LOAD);
+    if (od->pOptProc == optionLoadOpt) {
+        printf(LVL3_CMD, NO_SUPPRESS_LOAD);
 
-    } else if (pOptDesc->optMaxCt == 1)
-        printf(NO_SGL_ARG_FMT, pOpts->pzPROGNAME,
-               pOptDesc->pz_NAME, pOptDesc->pz_DisablePfx);
+    } else if (od->optMaxCt == 1)
+        printf(NO_SGL_ARG_FMT, opts->pzPROGNAME,
+               od->pz_NAME, od->pz_DisablePfx);
     else
-        printf(NO_MULTI_ARG_FMT, pOpts->pzPROGNAME,
-               pOptDesc->pz_NAME, pOptDesc->pz_DisablePfx);
+        printf(NO_MULTI_ARG_FMT, opts->pzPROGNAME,
+               od->pz_NAME, od->pz_DisablePfx);
 
-    printf(zCmdFmt, NO_ARG_NEEDED);
+    printf(LVL3_CMD, NO_ARG_NEEDED);
     fputs(zOptionEndSelect, stdout);
 }
 
-
+/**
+ * recognize flag options.  These go at the end.
+ * At the end, emit code to handle options we don't recognize.
+ *
+ * @param[in] opts  the program options
+ */
 static void
-emit_flag(tOptions * pOpts)
+emit_flag(tOptions * opts)
 {
-    tOptDesc* pOptDesc = pOpts->pOptDesc;
-    int       optionCt = pOpts->optCt;
+    tOptDesc* od = opts->pOptDesc;
+    int       opt_ct = opts->optCt;
 
     fputs(zOptionCase, stdout);
 
-    for (;optionCt > 0; pOptDesc++, --optionCt) {
+    for (;opt_ct > 0; od++, --opt_ct) {
 
-        if (SKIP_OPT(pOptDesc))
+        if (SKIP_OPT(od) || ! IS_GRAPHIC_CHAR(od->optValue))
             continue;
 
-        if (IS_GRAPHIC_CHAR(pOptDesc->optValue)) {
-            printf(zOptionFlag, pOptDesc->optValue);
-            emit_action(pOpts, pOptDesc);
-        }
+        printf(zOptionFlag, od->optValue);
+        emit_action(opts, od);
     }
-    printf(UNK_OPT_FMT, FLAG_STR, pOpts->pzPROGNAME);
+    printf(UNK_OPT_FMT, FLAG_STR, opts->pzPROGNAME);
 }
 
-
-/*
- *  Emit the match text for a long option
+/**
+ *  Emit the match text for a long option.  The passed in \a name may be
+ *  either the enablement name or the disablement name.
+ *
+ * @param[in] name  The current name to check.
+ * @param[in] cod   current option descriptor
+ * @param[in] opts  the program options
  */
 static void
-emit_match_expr(char const * pzMatchName, tOptDesc* pCurOpt, tOptions* pOpts)
+emit_match_expr(char const * name, tOptDesc * cod, tOptions * opts)
 {
-    tOptDesc* pOD = pOpts->pOptDesc;
-    int       oCt = pOpts->optCt;
-    int       min = 1;
-    char      zName[ 256 ];
-    char*     pz  = zName;
-
-    for (;;) {
-        int matchCt = 0;
-
-        /*
-         *  Omit the current option, Documentation opts and compiled out opts.
-         */
-        if ((pOD == pCurOpt) || SKIP_OPT(pOD)){
-            if (--oCt <= 0)
-                break;
-            pOD++;
-            continue;
-        }
+    char name_bf[32];
+    unsigned int    min_match_ct = 2;
+    unsigned int    max_match_ct = strlen(name) - 1;
 
-        /*
-         *  Check each character of the name case insensitively.
-         *  They must not be the same.  They cannot be, because it would
-         *  not compile correctly if they were.
-         */
-        while (  toupper(pOD->pz_Name[matchCt])
-              == toupper(pzMatchName[matchCt]))
-            matchCt++;
-
-        if (matchCt > min)
-            min = matchCt;
-
-        /*
-         *  Check the disablement name, too.
-         */
-        if (pOD->pz_DisableName != NULL) {
-            matchCt = 0;
-            while (  toupper(pOD->pz_DisableName[matchCt])
-                  == toupper(pzMatchName[matchCt]))
-                matchCt++;
-            if (matchCt > min)
-                min = matchCt;
+    if (max_match_ct >= sizeof(name_bf) - 1)
+        goto leave;
+    
+    {
+        tOptDesc *  od = opts->pOptDesc;
+        int         ct = opts->optCt;
+
+        for (; ct-- > 0; od++) {
+            unsigned int match_ct = 0;
+
+            /*
+             *  Omit the current option, Doc opts and compiled out opts.
+             */
+            if ((od == cod) || SKIP_OPT(od))
+                continue;
+
+            /*
+             *  Check each character of the name case insensitively.
+             *  They must not be the same.  They cannot be, because it would
+             *  not compile correctly if they were.
+             */
+            while (toupper(od->pz_Name[match_ct]) == toupper(name[match_ct]))
+                match_ct++;
+
+            if (match_ct > min_match_ct)
+                min_match_ct = match_ct;
+
+            /*
+             *  Check the disablement name, too.
+             */
+            if (od->pz_DisableName == NULL)
+                continue;
+
+            match_ct = 0;
+            while (  toupper(od->pz_DisableName[match_ct])
+                  == toupper(name[match_ct]))
+                match_ct++;
+            if (match_ct > min_match_ct)
+                min_match_ct = match_ct;
         }
-        if (--oCt <= 0)
-            break;
-        pOD++;
     }
 
     /*
-     *  IF the 'min' is all or one short of the name length,
-     *  THEN the entire string must be matched.
+     *  Don't bother emitting partial matches if there is only one possible
+     *  partial match.
      */
-    if (  (pzMatchName[min  ] == NUL)
-       || (pzMatchName[min+1] == NUL) )
-        printf(zOptionFullName, pzMatchName);
+    if (min_match_ct < max_match_ct) {
+        char *  pz    = name_bf + min_match_ct;
+        int     nm_ix = min_match_ct;
 
-    else {
-        int matchCt = 0;
-        for (; matchCt <= min; matchCt++)
-            *pz++ = pzMatchName[matchCt];
+        memcpy(name_bf, name, min_match_ct);
 
         for (;;) {
             *pz = NUL;
-            printf(zOptionPartName, zName);
-            *pz++ = pzMatchName[matchCt++];
-            if (pzMatchName[matchCt] == NUL) {
+            printf(zOptionPartName, name_bf);
+            *pz++ = name[nm_ix++];
+            if (name[nm_ix] == NUL) {
                 *pz = NUL;
-                printf(zOptionFullName, zName);
                 break;
             }
         }
     }
-}
 
+leave:
+    printf(zOptionFullName, name);
+}
 
-/*
- *  Emit GNU-standard long option handling code
+/**
+ *  Emit GNU-standard long option handling code.
+ *
+ * @param[in] opts  the program options
  */
 static void
-emitLong(tOptions * pOpts)
+emit_long(tOptions * opts)
 {
-    tOptDesc* pOD = pOpts->pOptDesc;
-    int       ct  = pOpts->optCt;
+    tOptDesc * od = opts->pOptDesc;
+    int        ct  = opts->optCt;
 
     fputs(zOptionCase, stdout);
 
@@ -627,88 +711,113 @@ emitLong(tOptions * pOpts)
         /*
          *  Documentation & compiled-out options
          */
-        if (SKIP_OPT(pOD))
+        if (SKIP_OPT(od))
             continue;
 
-        emit_match_expr(pOD->pz_Name, pOD, pOpts);
-        emit_action(pOpts, pOD);
+        emit_match_expr(od->pz_Name, od, opts);
+        emit_action(opts, od);
 
         /*
          *  Now, do the same thing for the disablement version of the option.
          */
-        if (pOD->pz_DisableName != NULL) {
-            emit_match_expr(pOD->pz_DisableName, pOD, pOpts);
-            emit_inaction(pOpts, pOD);
+        if (od->pz_DisableName != NULL) {
+            emit_match_expr(od->pz_DisableName, od, opts);
+            emit_inaction(opts, od);
         }
-    } while (pOD++, --ct > 0);
+    } while (od++, --ct > 0);
 
-    printf(UNK_OPT_FMT, OPTION_STR, pOpts->pzPROGNAME);
+    printf(UNK_OPT_FMT, OPTION_STR, opts->pzPROGNAME);
 }
 
-
-static void
-open_out(char const * pzFile)
+/**
+ * Load the previous shell script output file.  We need to preserve any
+ * hand-edited additions outside of the START_MARK and END_MARKs.
+ *
+ * @param[in] fname  the output file name
+ */
+static char *
+load_old_output(char const * fname, char const * pname)
 {
-    FILE* fp;
-    char* pzData = NULL;
+    /*
+     *  IF we cannot stat the file,
+     *  THEN assume we are creating a new file.
+     *       Skip the loading of the old data.
+     */
+    FILE * fp = fopen(fname, "r" FOPEN_BINARY_FLAG);
     struct stat stbf;
+    char * text;
+    char * scan;
 
-    do  {
-        char*    pzScan;
-        size_t sizeLeft;
+    if (fp == NULL)
+        return NULL;
 
-        /*
-         *  IF we cannot stat the file,
-         *  THEN assume we are creating a new file.
-         *       Skip the loading of the old data.
-         */
-        if (stat(pzFile, &stbf) != 0)
+    /*
+     * If we opened it, we should be able to stat it and it needs
+     * to be a regular file
+     */
+    if ((fstat(fileno(fp), &stbf) != 0) || (! S_ISREG(stbf.st_mode)))
+        fserr_exit(pname, "fstat", fname);
+
+    scan = text = AGALOC(stbf.st_size + 1, "f data");
+
+    /*
+     *  Read in all the data as fast as our OS will let us.
+     */
+    for (;;) {
+        size_t inct = fread((void*)scan, 1, (size_t)stbf.st_size, fp);
+        if (inct == 0)
             break;
 
-        /*
-         *  The file must be a regular file
-         */
-        if (! S_ISREG(stbf.st_mode)) {
-            fprintf(stderr, zNotFile, pzFile);
-            exit(EXIT_FAILURE);
-        }
+        stbf.st_size -= (ssize_t)inct;
 
-        pzData = AGALOC(stbf.st_size + 1, "f data");
-        fp = fopen(pzFile, "r" FOPEN_BINARY_FLAG);
+        if (stbf.st_size == 0)
+            break;
 
-        sizeLeft = (unsigned)stbf.st_size;
-        pzScan   = pzData;
+        scan += inct;
+    }
 
-        /*
-         *  Read in all the data as fast as our OS will let us.
-         */
-        for (;;) {
-            int inct = fread((void*)pzScan, (size_t)1, sizeLeft, fp);
-            if (inct == 0)
-                break;
+    *scan = NUL;
+    fclose(fp);
 
-            pzScan   += inct;
-            sizeLeft -= inct;
+    return text;
+}
 
-            if (sizeLeft == 0)
-                break;
-        }
+/**
+ * Open the specified output file.  If it already exists, load its
+ * contents and save the non-generated (hand edited) portions.
+ * If a "start mark" is found, everything before it is preserved leader.
+ * If not, the entire thing is a trailer.  Assuming the start is found,
+ * then everything after the end marker is the trailer.  If the end
+ * mark is not found, the file is actually corrupt, but we take the
+ * remainder to be the trailer.
+ *
+ * @param[in] fname  the output file name
+ */
+static void
+open_out(char const * fname, char const * pname)
+{
 
-        /*
-         *  NUL-terminate the leader and look for the trailer
-         */
-        *pzScan = NUL;
-        fclose(fp);
-        pzScan  = strstr(pzData, START_MARK);
-        if (pzScan == NULL) {
-            script_trailer = pzData;
+    do  {
+        char * txt = script_text = load_old_output(fname, pname);
+        char * scn;
+
+        if (txt == NULL)
+            break;
+
+        scn = strstr(txt, START_MARK);
+        if (scn == NULL) {
+            script_trailer = txt;
             break;
         }
 
-        *(pzScan++) = NUL;
-        pzScan  = strstr(pzScan, END_MARK);
-        if (pzScan == NULL) {
-            script_trailer = pzData;
+        *(scn++) = NUL;
+        scn = strstr(scn, END_MARK);
+        if (scn == NULL) {
+            /*
+             * The file is corrupt.  Set the trailer to be everything
+             * after the start mark. The user will need to fix it up.
+             */
+            script_trailer = txt + strlen(txt) + START_MARK_LEN + 1;
             break;
         }
 
@@ -716,23 +825,20 @@ open_out(char const * pzFile)
          *  Check to see if the data contains our marker.
          *  If it does, then we will skip over it
          */
-        script_trailer = pzScan + END_MARK_LEN;
-        script_leader  = pzData;
+        script_trailer = scn + END_MARK_LEN;
+        script_leader  = txt;
     } while (false);
 
-    if (freopen(pzFile, "w" FOPEN_BINARY_FLAG, stdout) != stdout) {
-        fprintf(stderr, zFreopenFail, errno, strerror(errno));
-        exit(EXIT_FAILURE);
-    }
+    if (freopen(fname, "w" FOPEN_BINARY_FLAG, stdout) != stdout)
+        fserr_exit(pname, "freopen", fname);
 }
 
-
 /*=export_func genshelloptUsage
  * private:
  * what: The usage function for the genshellopt generated program
  *
- * arg:  + tOptions* + pOpts    + program options descriptor +
- * arg:  + int       + exitCode + usage text type to produce +
+ * arg:  + tOptions* + opts    + program options descriptor +
+ * arg:  + int       + exit_cd + usage text type to produce +
  *
  * doc:
  *  This function is used to create the usage strings for the option
@@ -742,17 +848,17 @@ open_out(char const * pzFile)
  *  and create shell script variables containing the two types of text.
 =*/
 void
-genshelloptUsage(tOptions * pOpts, int exitCode)
+genshelloptUsage(tOptions * opts, int exit_cd)
 {
 #if ! defined(HAVE_WORKING_FORK)
-    optionUsage(pOpts, exitCode);
+    optionUsage(opts, exit_cd);
 #else
     /*
      *  IF not EXIT_SUCCESS,
      *  THEN emit the short form of usage.
      */
-    if (exitCode != EXIT_SUCCESS)
-        optionUsage(pOpts, exitCode);
+    if (exit_cd != EXIT_SUCCESS)
+        optionUsage(opts, exit_cd);
     fflush(stderr);
     fflush(stdout);
     if (ferror(stdout) || ferror(stderr))
@@ -765,12 +871,12 @@ genshelloptUsage(tOptions * pOpts, int exitCode)
      */
     switch (fork()) {
     case -1:
-        optionUsage(pOpts, EXIT_FAILURE);
+        optionUsage(opts, EXIT_FAILURE);
         /* NOTREACHED */
 
     case 0:
         pagerState = PAGER_STATE_CHILD;
-        optionUsage(pOpts, EXIT_SUCCESS);
+        optionUsage(opts, EXIT_SUCCESS);
         /* NOTREACHED */
         _exit(EXIT_FAILURE);
 
@@ -791,7 +897,7 @@ genshelloptUsage(tOptions * pOpts, int exitCode)
         AGDUPSTR(pz, optionParseShellOptions->pzPROGNAME, "prog name");
         *pp = pz;
         while (*pz != NUL) {
-            *pz = tolower(*pz);
+            *pz = (char)tolower(*pz);
             pz++;
         }
     }
@@ -820,16 +926,15 @@ genshelloptUsage(tOptions * pOpts, int exitCode)
     }
 
     fflush(stdout);
-    if (ferror(stdout)) {
-        fputs(zOutputFail, stderr);
-        exit(EXIT_FAILURE);
-    }
+    if (ferror(stdout))
+        fserr_exit(opts->pzProgName, zwriting, zstdout_name);
 
     exit(EXIT_SUCCESS);
 #endif
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index ed23fd2..bf55f6f 100644 (file)
@@ -2,13 +2,17 @@
 /**
  * \file nested.c
  *
- *  Time-stamp:      "2012-03-04 13:30:07 bkorb"
+ *  Handle options with arguments that contain nested values.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *   Automated Options Nested Values module.
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 typedef struct {
@@ -47,35 +51,44 @@ static xml_xlate_t const xml_xlate[] = {
 
 /* = = = START-STATIC-FORWARD = = = */
 static void
-remove_continuation(char* pzSrc);
+remove_continuation(char * src);
 
 static char const*
 scan_q_str(char const* pzTxt);
 
 static tOptionValue *
-add_string(void ** pp, char const * pzName, size_t nameLen,
+add_string(void ** pp, char const * name, size_t nm_len,
            char const* pzValue, size_t dataLen);
 
 static tOptionValue *
-add_bool(void ** pp, char const * pzName, size_t nameLen,
-         char const* pzValue, size_t dataLen);
+add_bool(void ** pp, char const * name, size_t nm_len,
+         char const * val, size_t d_len);
 
 static tOptionValue*
-add_number(void** pp, char const* pzName, size_t nameLen,
-           char const* pzValue, size_t dataLen);
+add_number(void** pp, char const* pzName, size_t nm_len,
+           char const* val, size_t d_len);
 
 static tOptionValue*
-add_nested(void** pp, char const* pzName, size_t nameLen,
-           char* pzValue, size_t dataLen);
+add_nested(void** pp, char const* pzName, size_t nm_len,
+           char* val, size_t d_len);
 
 static char const *
 scan_name(char const* pzName, tOptionValue* pRes);
 
-static char const*
-scan_xml(char const* pzName, tOptionValue* pRes);
+static char const *
+unnamed_xml(char const * txt);
+
+static char const *
+scan_xml_name(char const * name, size_t * nm_len, tOptionValue * val);
+
+static char const *
+find_end_xml(char const * src, size_t nm_len, char const * val, size_t * len);
+
+static char const *
+scan_xml(char const * xml_name, tOptionValue * res_val);
 
 static void
-sort_list(tArgList* pAL);
+sort_list(tArgList * arg_list);
 /* = = = END-STATIC-FORWARD = = = */
 
 /**
@@ -83,13 +96,13 @@ sort_list(tArgList* pAL);
  *  characters, but trim out the backslash:
  */
 static void
-remove_continuation(char* pzSrc)
+remove_continuation(char * src)
 {
     char* pzD;
 
     do  {
-        while (*pzSrc == NL)  pzSrc++;
-        pzD = strchr(pzSrc, NL);
+        while (*src == NL)  src++;
+        pzD = strchr(src, NL);
         if (pzD == NULL)
             return;
 
@@ -98,20 +111,20 @@ remove_continuation(char* pzSrc)
          *  points to a newline character.  It now becomes the source and
          *  pzD goes to the previous character.
          */
-        pzSrc = pzD--;
+        src = pzD--;
         if (*pzD != '\\')
             pzD++;
-    } while (pzD == pzSrc);
+    } while (pzD == src);
 
     /*
      *  Start shifting text.
      */
     for (;;) {
-        char ch = ((*pzD++) = *(pzSrc++));
+        char ch = ((*pzD++) = *(src++));
         switch (ch) {
         case NUL:  return;
         case '\\':
-            if (*pzSrc == NL)
+            if (*src == NL)
                 --pzD; /* rewrite on next iteration */
         }
     }
@@ -158,11 +171,11 @@ scan_q_str(char const* pzTxt)
  *  Associate a name with either a string or no value.
  */
 static tOptionValue *
-add_string(void ** pp, char const * pzName, size_t nameLen,
+add_string(void ** pp, char const * name, size_t nm_len,
            char const* pzValue, size_t dataLen)
 {
     tOptionValue* pNV;
-    size_t sz = nameLen + dataLen + sizeof(*pNV);
+    size_t sz = nm_len + dataLen + sizeof(*pNV);
 
     pNV = AGALOC(sz, "option name/str value pair");
     if (pNV == NULL)
@@ -175,14 +188,14 @@ add_string(void ** pp, char const * pzName, size_t nameLen,
     } else {
         pNV->valType = OPARG_TYPE_STRING;
         if (dataLen > 0) {
-            char const * pzSrc = pzValue;
+            char const * src = pzValue;
             char * pzDst = pNV->v.strVal;
-            int    ct    = dataLen;
+            int    ct    = (int)dataLen;
             do  {
-                int ch = *(pzSrc++) & 0xFF;
+                int ch = *(src++) & 0xFF;
                 if (ch == NUL) goto data_copy_done;
                 if (ch == '&')
-                    ch = get_special_char(&pzSrc, &ct);
+                    ch = get_special_char(&src, &ct);
                 *(pzDst++) = (char)ch;
             } while (--ct > 0);
         data_copy_done:
@@ -195,8 +208,8 @@ add_string(void ** pp, char const * pzName, size_t nameLen,
         pNV->pzName = pNV->v.strVal + dataLen + 1;
     }
 
-    memcpy(pNV->pzName, pzName, nameLen);
-    pNV->pzName[ nameLen ] = NUL;
+    memcpy(pNV->pzName, name, nm_len);
+    pNV->pzName[ nm_len ] = NUL;
     addArgListEntry(pp, pNV);
     return pNV;
 }
@@ -205,95 +218,95 @@ add_string(void ** pp, char const * pzName, size_t nameLen,
  *  Associate a name with either a string or no value.
  */
 static tOptionValue *
-add_bool(void ** pp, char const * pzName, size_t nameLen,
-         char const* pzValue, size_t dataLen)
+add_bool(void ** pp, char const * name, size_t nm_len,
+         char const * val, size_t d_len)
 {
-    tOptionValue * pNV;
+    tOptionValue * new_val;
 
     {
-        size_t sz = nameLen + sizeof(tOptionValue) + 1;
-        pNV = AGALOC(sz, "name/bool value");
+        size_t sz = nm_len + sizeof(tOptionValue) + 1;
+        new_val = AGALOC(sz, "name/bool value");
     }
 
     {
-        char * p = SPN_WHITESPACE_CHARS(pzValue);
-        dataLen -= p - pzValue;
-        pzValue  = p;
+        char * p = SPN_WHITESPACE_CHARS(val);
+        d_len -= (unsigned long)(p - val);
+        val  = p;
     }
 
-    if (dataLen == 0)
-        pNV->v.boolVal = 0;
+    if (d_len == 0)
+        new_val->v.boolVal = 0;
 
-    else if (IS_DEC_DIGIT_CHAR(*pzValue))
-        pNV->v.boolVal = atoi(pzValue);
+    else if (IS_DEC_DIGIT_CHAR(*val))
+        new_val->v.boolVal = (unsigned)atoi(val);
 
-    else pNV->v.boolVal = ! IS_FALSE_TYPE_CHAR(*pzValue);
+    else new_val->v.boolVal = ! IS_FALSE_TYPE_CHAR(*val);
 
-    pNV->valType = OPARG_TYPE_BOOLEAN;
-    pNV->pzName = (char*)(pNV + 1);
-    memcpy(pNV->pzName, pzName, nameLen);
-    pNV->pzName[ nameLen ] = NUL;
-    addArgListEntry(pp, pNV);
-    return pNV;
+    new_val->valType = OPARG_TYPE_BOOLEAN;
+    new_val->pzName = (char*)(new_val + 1);
+    memcpy(new_val->pzName, name, nm_len);
+    new_val->pzName[ nm_len ] = NUL;
+    addArgListEntry(pp, new_val);
+    return new_val;
 }
 
 /**
  *  Associate a name with either a string or no value.
  */
 static tOptionValue*
-add_number(void** pp, char const* pzName, size_t nameLen,
-           char const* pzValue, size_t dataLen)
+add_number(void** pp, char const* pzName, size_t nm_len,
+           char const* val, size_t d_len)
 {
-    tOptionValue* pNV;
-    size_t sz = nameLen + sizeof(*pNV) + 1;
+    tOptionValue* new_val;
+    size_t sz = nm_len + sizeof(*new_val) + 1;
 
-    pNV = AGALOC(sz, "option name/bool value pair");
-    if (pNV == NULL)
+    new_val = AGALOC(sz, "bool val");
+    if (new_val == NULL)
         return NULL;
-    while (IS_WHITESPACE_CHAR(*pzValue) && (dataLen > 0)) {
-        dataLen--; pzValue++;
+    while (IS_WHITESPACE_CHAR(*val) && (d_len > 0)) {
+        d_len--; val++;
     }
-    if (dataLen == 0)
-        pNV->v.longVal = 0;
+    if (d_len == 0)
+        new_val->v.longVal = 0;
     else
-        pNV->v.longVal = strtol(pzValue, 0, 0);
-
-    pNV->valType = OPARG_TYPE_NUMERIC;
-    pNV->pzName  = (char*)(pNV + 1);
-    memcpy(pNV->pzName, pzName, nameLen);
-    pNV->pzName[ nameLen ] = NUL;
-    addArgListEntry(pp, pNV);
-    return pNV;
+        new_val->v.longVal = strtol(val, 0, 0);
+
+    new_val->valType = OPARG_TYPE_NUMERIC;
+    new_val->pzName  = (char*)(new_val + 1);
+    memcpy(new_val->pzName, pzName, nm_len);
+    new_val->pzName[ nm_len ] = NUL;
+    addArgListEntry(pp, new_val);
+    return new_val;
 }
 
 /**
  *  Associate a name with either a string or no value.
  */
 static tOptionValue*
-add_nested(void** pp, char const* pzName, size_t nameLen,
-           char* pzValue, size_t dataLen)
+add_nested(void** pp, char const* pzName, size_t nm_len,
+           char* val, size_t d_len)
 {
-    tOptionValue* pNV;
+    tOptionValue* new_val;
 
-    if (dataLen == 0) {
-        size_t sz = nameLen + sizeof(*pNV) + 1;
-        pNV = AGALOC(sz, "empty nested value pair");
-        if (pNV == NULL)
+    if (d_len == 0) {
+        size_t sz = nm_len + sizeof(*new_val) + 1;
+        new_val = AGALOC(sz, "empty nest");
+        if (new_val == NULL)
             return NULL;
-        pNV->v.nestVal = NULL;
-        pNV->valType = OPARG_TYPE_HIERARCHY;
-        pNV->pzName = (char*)(pNV + 1);
-        memcpy(pNV->pzName, pzName, nameLen);
-        pNV->pzName[ nameLen ] = NUL;
+        new_val->v.nestVal = NULL;
+        new_val->valType = OPARG_TYPE_HIERARCHY;
+        new_val->pzName = (char*)(new_val + 1);
+        memcpy(new_val->pzName, pzName, nm_len);
+        new_val->pzName[ nm_len ] = NUL;
 
     } else {
-        pNV = optionLoadNested(pzValue, pzName, nameLen);
+        new_val = optionLoadNested(val, pzName, nm_len);
     }
 
-    if (pNV != NULL)
-        addArgListEntry(pp, pNV);
+    if (new_val != NULL)
+        addArgListEntry(pp, new_val);
 
-    return pNV;
+    return new_val;
 }
 
 /**
@@ -303,11 +316,11 @@ add_nested(void** pp, char const* pzName, size_t nameLen,
 static char const *
 scan_name(char const* pzName, tOptionValue* pRes)
 {
-    tOptionValue* pNV;
+    tOptionValue* new_val;
     char const * pzScan = pzName+1; /* we know first char is a name char */
     char const * pzVal;
-    size_t       nameLen = 1;
-    size_t       dataLen = 0;
+    size_t       nm_len = 1;
+    size_t       d_len = 0;
 
     /*
      *  Scan over characters that name a value.  These names may not end
@@ -316,7 +329,7 @@ scan_name(char const* pzName, tOptionValue* pRes)
     pzScan = SPN_VALUE_NAME_CHARS(pzName + 1);
     if (pzScan[-1] == ':')
         pzScan--;
-    nameLen = pzScan - pzName;
+    nm_len = (size_t)(pzScan - pzName);
 
     pzScan = SPN_HORIZ_WHITE_CHARS(pzScan);
 
@@ -336,18 +349,18 @@ scan_name(char const* pzName, tOptionValue* pRes)
         /* FALLTHROUGH */
 
     case NUL:
-        add_string(&(pRes->v.nestVal), pzName, nameLen, NULL, (size_t)0);
+        add_string(&(pRes->v.nestVal), pzName, nm_len, NULL, (size_t)0);
         break;
 
     case '"':
     case '\'':
         pzVal = pzScan;
         pzScan = scan_q_str(pzScan);
-        dataLen = pzScan - pzVal;
-        pNV = add_string(&(pRes->v.nestVal), pzName, nameLen, pzVal,
-                         dataLen);
-        if ((pNV != NULL) && (option_load_mode == OPTION_LOAD_COOKED))
-            ao_string_cook(pNV->v.strVal, NULL);
+        d_len = (size_t)(pzScan - pzVal);
+        new_val = add_string(&(pRes->v.nestVal), pzName, nm_len, pzVal,
+                         d_len);
+        if ((new_val != NULL) && (option_load_mode == OPTION_LOAD_COOKED))
+            ao_string_cook(new_val->v.strVal, NULL);
         break;
 
     default:
@@ -362,7 +375,7 @@ scan_name(char const* pzName, tOptionValue* pRes)
             switch (ch) {
             case NUL:
                 pzScan--;
-                dataLen = pzScan - pzVal;
+                d_len = (size_t)(pzScan - pzVal);
                 goto string_done;
                 /* FALLTHROUGH */
 
@@ -374,12 +387,12 @@ scan_name(char const* pzName, tOptionValue* pRes)
                 /* FALLTHROUGH */
 
             case ',':
-                dataLen = (pzScan - pzVal) - 1;
+                d_len = (size_t)(pzScan - pzVal) - 1;
             string_done:
-                pNV = add_string(&(pRes->v.nestVal), pzName, nameLen,
-                                     pzVal, dataLen);
-                if (pNV != NULL)
-                    remove_continuation(pNV->v.strVal);
+                new_val = add_string(&(pRes->v.nestVal), pzName, nm_len,
+                                     pzVal, d_len);
+                if (new_val != NULL)
+                    remove_continuation(new_val->v.strVal);
                 goto leave_scan_name;
             }
         }
@@ -390,139 +403,193 @@ scan_name(char const* pzName, tOptionValue* pRes)
 }
 
 /**
- *  We've found a '<' character.  We ignore this if it is a comment or a
- *  directive.  If it is something else, then whatever it is we are looking
- *  at is bogus.  Returning NULL stops processing.
+ * Some xml element that does not start with a name.
+ * The next character must be either '!' (introducing a comment),
+ * or '?' (introducing an XML meta-marker of some sort).
+ * We ignore these and indicate an error (NULL result) otherwise.
+ *
+ * @param[in] txt  the text within an xml bracket
+ * @returns the address of the character after the closing marker, or NULL.
  */
-static char const*
-scan_xml(char const* pzName, tOptionValue* pRes)
+static char const *
+unnamed_xml(char const * txt)
 {
-    size_t nameLen;
-    size_t valLen;
-    char const*   pzScan = ++pzName;
-    char const*   pzVal;
-    tOptionValue  valu;
-    tOptionValue* pNewVal;
-    tOptionLoadMode save_mode = option_load_mode;
-
-    if (! IS_VAR_FIRST_CHAR(*pzName)) {
-        switch (*pzName) {
-        default:
-            pzName = NULL;
-            break;
+    switch (*txt) {
+    default:
+        txt = NULL;
+        break;
 
-        case '!':
-            pzName = strstr(pzName, "-->");
-            if (pzName != NULL)
-                pzName += 3;
-            break;
+    case '!':
+        txt = strstr(txt, "-->");
+        if (txt != NULL)
+            txt += 3;
+        break;
 
-        case '?':
-            pzName = strchr(pzName, '>');
-            if (pzName != NULL)
-                pzName++;
-            break;
-        }
-        return pzName;
+    case '?':
+        txt = strchr(txt, '>');
+        if (txt != NULL)
+            txt++;
+        break;
     }
+    return txt;
+}
 
-    pzScan  = SPN_VALUE_NAME_CHARS(pzName+1);
-    nameLen = pzScan - pzName;
-    if (nameLen > 64)
+/**
+ *  Scan off the xml element name, and the rest of the header, too.
+ *  Set the value type to NONE if it ends with "/>".
+ *
+ * @param[in]  name    the first name character (alphabetic)
+ * @param[out] nm_len  the length of the name
+ * @param[out] val     set valType field to STRING or NONE.
+ *
+ * @returns the scan resumption point, or NULL on error
+ */
+static char const *
+scan_xml_name(char const * name, size_t * nm_len, tOptionValue * val)
+{
+    char const * scan = SPN_VALUE_NAME_CHARS(name + 1);
+    *nm_len = (size_t)(scan - name);
+    if (*nm_len > 64)
         return NULL;
-    valu.valType = OPARG_TYPE_STRING;
+    val->valType = OPARG_TYPE_STRING;
 
-    switch (*pzScan) {
-    case ' ':
-    case '\t':
-        pzScan = parse_attrs(
-            NULL, (char*)pzScan, &option_load_mode, &valu );
-        if (*pzScan == '>') {
-            pzScan++;
-            break;
-        }
+    if (IS_WHITESPACE_CHAR(*scan)) {
+        /*
+         * There are attributes following the name.  Parse 'em.
+         */
+        scan = SPN_WHITESPACE_CHARS(scan);
+        scan = parse_attrs(NULL, scan, &option_load_mode, val);
+        if (scan == NULL)
+            return NULL; /* oops */
+    }
 
-        if (*pzScan != '/') {
-            option_load_mode = save_mode;
-            return NULL;
-        }
-        /* FALLTHROUGH */
+    if (! IS_END_XML_TOKEN_CHAR(*scan))
+        return NULL; /* oops */
 
-    case '/':
-        if (*++pzScan != '>') {
-            option_load_mode = save_mode;
+    if (*scan == '/') {
+        /*
+         * Single element XML entries get inserted as an empty string.
+         */
+        if (*++scan != '>')
             return NULL;
-        }
-        add_string(&(pRes->v.nestVal), pzName, nameLen, NULL, (size_t)0);
-        option_load_mode = save_mode;
-        return pzScan+1;
-
-    default:
-        option_load_mode = save_mode;
-        return NULL;
-
-    case '>':
-        pzScan++;
-        break;
+        val->valType = OPARG_TYPE_NONE;
     }
+    return scan+1;
+}
+
+/**
+ * We've found a closing '>' without a preceding '/', thus we must search
+ * the text for '<name/>' where "name" is the name of the XML element.
+ *
+ * @param[in]  name     the start of the name in the element header
+ * @param[in]  nm_len   the length of that name
+ * @param[out] len      the length of the value (string between header and
+ *                      the trailer/tail.
+ * @returns the character after the trailer, or NULL if not found.
+ */
+static char const *
+find_end_xml(char const * src, size_t nm_len, char const * val, size_t * len)
+{
+    char z[72] = "</";
+    char * dst = z + 2;
 
-    pzVal = pzScan;
+    do  {
+        *(dst++) = *(src++);
+    } while (--nm_len > 0); /* nm_len is known to be 64 or less */
+    *(dst++) = '>';
+    *dst = NUL;
 
     {
-        char z[68];
-        char* pzD = z;
-        int  ct = nameLen;
-        char const* pzS = pzName;
-
-        *(pzD++) = '<';
-        *(pzD++) = '/';
-
-        do  {
-            *(pzD++) = *(pzS++);
-        } while (--ct > 0);
-        *(pzD++) = '>';
-        *pzD = NUL;
-
-        pzScan = strstr(pzScan, z);
-        if (pzScan == NULL) {
-            option_load_mode = save_mode;
-            return NULL;
+        char const * res = strstr(val, z);
+
+        if (res != NULL) {
+            char const * end = (option_load_mode != OPTION_LOAD_KEEP)
+                ? SPN_WHITESPACE_BACK(val, res)
+                : res;
+            *len = (size_t)(end - val); /* includes trailing white space */
+            res =  SPN_WHITESPACE_CHARS(res + (dst - z));
         }
-        valLen = (pzScan - pzVal);
-        pzScan += nameLen + 3;
-        pzScan = SPN_WHITESPACE_CHARS(pzScan);
+        return res;
     }
+}
+
+/**
+ *  We've found a '<' character.  We ignore this if it is a comment or a
+ *  directive.  If it is something else, then whatever it is we are looking
+ *  at is bogus.  Returning NULL stops processing.
+ *
+ * @param[in]     xml_name  the name of an xml bracket (usually)
+ * @param[in,out] res_val   the option data derived from the XML element
+ *
+ * @returns the place to resume scanning input
+ */
+static char const *
+scan_xml(char const * xml_name, tOptionValue * res_val)
+{
+    size_t          nm_len, v_len;
+    char const *    scan;
+    char const *    val_str;
+    tOptionValue    valu;
+    tOptionLoadMode save_mode = option_load_mode;
+
+    if (! IS_VAR_FIRST_CHAR(*++xml_name))
+        return unnamed_xml(xml_name);
+
+    /*
+     * "scan_xml_name()" may change "option_load_mode".
+     */
+    val_str = scan_xml_name(xml_name, &nm_len, &valu);
+    if (val_str == NULL)
+        goto bail_scan_xml;
+
+    if (valu.valType == OPARG_TYPE_NONE)
+        scan = val_str;
+    else {
+        if (option_load_mode != OPTION_LOAD_KEEP)
+            val_str = SPN_WHITESPACE_CHARS(val_str);
+        scan = find_end_xml(xml_name, nm_len, val_str, &v_len);
+        if (scan == NULL)
+            goto bail_scan_xml;
+    }
+
+    /*
+     * "scan" now points to where the scan is to resume after returning.
+     * It either points after "/>" at the end of the XML element header,
+     * or it points after the "</name>" tail based on the name in the header.
+     */
 
     switch (valu.valType) {
     case OPARG_TYPE_NONE:
-        add_string(&(pRes->v.nestVal), pzName, nameLen, NULL, (size_t)0);
+        add_string(&(res_val->v.nestVal), xml_name, nm_len, NULL, 0);
         break;
 
     case OPARG_TYPE_STRING:
-        pNewVal = add_string(
-            &(pRes->v.nestVal), pzName, nameLen, pzVal, valLen);
+    {
+        tOptionValue * new_val = add_string(
+            &(res_val->v.nestVal), xml_name, nm_len, val_str, v_len);
+
+        if (option_load_mode != OPTION_LOAD_KEEP)
+            munge_str(new_val->v.strVal, option_load_mode);
 
-        if (option_load_mode == OPTION_LOAD_KEEP)
-            break;
-        mungeString(pNewVal->v.strVal, option_load_mode);
         break;
+    }
 
     case OPARG_TYPE_BOOLEAN:
-        add_bool(&(pRes->v.nestVal), pzName, nameLen, pzVal, valLen);
+        add_bool(&(res_val->v.nestVal), xml_name, nm_len, val_str, v_len);
         break;
 
     case OPARG_TYPE_NUMERIC:
-        add_number(&(pRes->v.nestVal), pzName, nameLen, pzVal, valLen);
+        add_number(&(res_val->v.nestVal), xml_name, nm_len, val_str, v_len);
         break;
 
     case OPARG_TYPE_HIERARCHY:
     {
-        char* pz = AGALOC(valLen+1, "hierarchical scan");
+        char * pz = AGALOC(v_len+1, "h scan");
         if (pz == NULL)
             break;
-        memcpy(pz, pzVal, valLen);
-        pz[valLen] = NUL;
-        add_nested(&(pRes->v.nestVal), pzName, nameLen, pz, valLen);
+        memcpy(pz, val_str, v_len);
+        pz[v_len] = NUL;
+        add_nested(&(res_val->v.nestVal), xml_name, nm_len, pz, v_len);
         AGFREE(pz);
         break;
     }
@@ -534,7 +601,11 @@ scan_xml(char const* pzName, tOptionValue* pRes)
     }
 
     option_load_mode = save_mode;
-    return pzScan;
+    return scan;
+
+bail_scan_xml:
+    option_load_mode = save_mode;
+    return NULL;
 }
 
 
@@ -545,19 +616,19 @@ scan_xml(char const* pzName, tOptionValue* pRes)
  *  knowing what they are doing.
  */
 LOCAL void
-unload_arg_list(tArgList* pAL)
+unload_arg_list(tArgList * arg_list)
 {
-    int ct = pAL->useCt;
-    tCC** ppNV = pAL->apzArgs;
+    int ct = arg_list->useCt;
+    char const ** pnew_val = arg_list->apzArgs;
 
     while (ct-- > 0) {
-        tOptionValue* pNV = (tOptionValue*)(void*)*(ppNV++);
-        if (pNV->valType == OPARG_TYPE_HIERARCHY)
-            unload_arg_list(pNV->v.nestVal);
-        AGFREE(pNV);
+        tOptionValue* new_val = (tOptionValue*)(void*)*(pnew_val++);
+        if (new_val->valType == OPARG_TYPE_HIERARCHY)
+            unload_arg_list(new_val->v.nestVal);
+        AGFREE(new_val);
     }
 
-    AGFREE((void*)pAL);
+    AGFREE((void*)arg_list);
 }
 
 /*=export_func  optionUnloadNested
@@ -571,17 +642,17 @@ unload_arg_list(tArgList* pAL)
  *  @pxref{libopts-configFileLoad}).
 =*/
 void
-optionUnloadNested(tOptionValue const * pOV)
+optionUnloadNested(tOptionValue const * opt_val)
 {
-    if (pOV == NULL) return;
-    if (pOV->valType != OPARG_TYPE_HIERARCHY) {
+    if (opt_val == NULL) return;
+    if (opt_val->valType != OPARG_TYPE_HIERARCHY) {
         errno = EINVAL;
         return;
     }
 
-    unload_arg_list(pOV->v.nestVal);
+    unload_arg_list(opt_val->v.nestVal);
 
-    AGFREE((void*)pOV);
+    AGFREE((void*)opt_val);
 }
 
 /**
@@ -590,27 +661,27 @@ optionUnloadNested(tOptionValue const * pOV)
  *  Typically, we also hope the input is sorted.
  */
 static void
-sort_list(tArgList* pAL)
+sort_list(tArgList * arg_list)
 {
     int ix;
-    int lm = pAL->useCt;
+    int lm = arg_list->useCt;
 
     /*
      *  This loop iterates "useCt" - 1 times.
      */
     for (ix = 0; ++ix < lm;) {
         int iy = ix-1;
-        tOptionValue* pNewNV = (tOptionValue*)(void*)(pAL->apzArgs[ix]);
-        tOptionValue* pOldNV = (tOptionValue*)(void*)(pAL->apzArgs[iy]);
+        tOptionValue * new_v = C(tOptionValue *, arg_list->apzArgs[ix]);
+        tOptionValue * old_v = C(tOptionValue *, arg_list->apzArgs[iy]);
 
         /*
          *  For as long as the new entry precedes the "old" entry,
          *  move the old pointer.  Stop before trying to extract the
          *  "-1" entry.
          */
-        while (strcmp(pOldNV->pzName, pNewNV->pzName) > 0) {
-            pAL->apzArgs[iy+1] = (void*)pOldNV;
-            pOldNV = (tOptionValue*)(void*)(pAL->apzArgs[--iy]);
+        while (strcmp(old_v->pzName, new_v->pzName) > 0) {
+            arg_list->apzArgs[iy+1] = (void*)old_v;
+            old_v = (tOptionValue*)(void*)(arg_list->apzArgs[--iy]);
             if (iy < 0)
                 break;
         }
@@ -619,7 +690,7 @@ sort_list(tArgList* pAL)
          *  Always store the pointer.  Sometimes it is redundant,
          *  but the redundancy is cheaper than a test and branch sequence.
          */
-        pAL->apzArgs[iy+1] = (void*)pNewNV;
+        arg_list->apzArgs[iy+1] = (void*)new_v;
     }
 }
 
@@ -627,9 +698,9 @@ sort_list(tArgList* pAL)
  * private:
  *
  * what:  parse a hierarchical option argument
- * arg:   + char const*     + pzTxt   + the text to scan +
- * arg:   + char const*     + pzName  + the name for the text +
- * arg:   + size_t          + nameLen + the length of "name"  +
+ * arg:   + char const * + pzTxt  + the text to scan      +
+ * arg:   + char const * + pzName + the name for the text +
+ * arg:   + size_t       + nm_len + the length of "name"  +
  *
  * ret_type:  tOptionValue*
  * ret_desc:  An allocated, compound value structure
@@ -649,65 +720,57 @@ sort_list(tArgList* pAL)
  *  @code{ENOMSG} no configuration values were found
  *  @end itemize
 =*/
-LOCAL tOptionValue*
-optionLoadNested(char const* pzTxt, char const* pzName, size_t nameLen)
+LOCAL tOptionValue *
+optionLoadNested(char const * text, char const * name, size_t nm_len)
 {
-    tOptionValue* pRes;
+    tOptionValue* res_val;
 
     /*
      *  Make sure we have some data and we have space to put what we find.
      */
-    if (pzTxt == NULL) {
+    if (text == NULL) {
         errno = EINVAL;
         return NULL;
     }
-    pzTxt = SPN_WHITESPACE_CHARS(pzTxt);
-    if (*pzTxt == NUL) {
+    text = SPN_WHITESPACE_CHARS(text);
+    if (*text == NUL) {
         errno = ENOMSG;
         return NULL;
     }
-    pRes = AGALOC(sizeof(*pRes) + nameLen + 1, "nested args");
-    if (pRes == NULL) {
-        errno = ENOMEM;
-        return NULL;
-    }
-    pRes->valType   = OPARG_TYPE_HIERARCHY;
-    pRes->pzName    = (char*)(pRes + 1);
-    memcpy(pRes->pzName, pzName, nameLen);
-    pRes->pzName[nameLen] = NUL;
+    res_val = AGALOC(sizeof(*res_val) + nm_len + 1, "nest args");
+    res_val->valType = OPARG_TYPE_HIERARCHY;
+    res_val->pzName  = (char*)(res_val + 1);
+    memcpy(res_val->pzName, name, nm_len);
+    res_val->pzName[nm_len] = NUL;
 
     {
-        tArgList * pAL = AGALOC(sizeof(*pAL), "nested arg list");
-        if (pAL == NULL) {
-            AGFREE(pRes);
-            return NULL;
-        }
+        tArgList * arg_list = AGALOC(sizeof(*arg_list), "nest arg l");
 
-        pRes->v.nestVal = pAL;
-        pAL->useCt   = 0;
-        pAL->allocCt = MIN_ARG_ALLOC_CT;
+        res_val->v.nestVal = arg_list;
+        arg_list->useCt   = 0;
+        arg_list->allocCt = MIN_ARG_ALLOC_CT;
     }
 
     /*
      *  Scan until we hit a NUL.
      */
     do  {
-        pzTxt = SPN_WHITESPACE_CHARS(pzTxt);
-        if (IS_VAR_FIRST_CHAR(*pzTxt))
-            pzTxt = scan_name(pzTxt, pRes);
+        text = SPN_WHITESPACE_CHARS(text);
+        if (IS_VAR_FIRST_CHAR(*text))
+            text = scan_name(text, res_val);
 
-        else switch (*pzTxt) {
+        else switch (*text) {
         case NUL: goto scan_done;
-        case '<': pzTxt = scan_xml(pzTxt, pRes);
-                  if (pzTxt == NULL) goto woops;
-                  if (*pzTxt == ',') pzTxt++;     break;
-        case '#': pzTxt = strchr(pzTxt, NL);  break;
+        case '<': text = scan_xml(text, res_val);
+                  if (text == NULL) goto woops;
+                  if (*text == ',') text++; break;
+        case '#': text = strchr(text, NL);  break;
         default:  goto woops;
         }
-    } while (pzTxt != NULL); scan_done:;
+    } while (text != NULL); scan_done:;
 
     {
-        tArgList * al = pRes->v.nestVal;
+        tArgList * al = res_val->v.nestVal;
         if (al->useCt == 0) {
             errno = ENOMSG;
             goto woops;
@@ -716,11 +779,11 @@ optionLoadNested(char const* pzTxt, char const* pzName, size_t nameLen)
             sort_list(al);
     }
 
-    return pRes;
+    return res_val;
 
  woops:
-    AGFREE(pRes->v.nestVal);
-    AGFREE(pRes);
+    AGFREE(res_val->v.nestVal);
+    AGFREE(res_val);
     return NULL;
 }
 
@@ -728,45 +791,45 @@ optionLoadNested(char const* pzTxt, char const* pzName, size_t nameLen)
  * private:
  *
  * what:  parse a hierarchical option argument
- * arg:   + tOptions* + pOpts    + program options descriptor +
- * arg:   + tOptDesc* + pOptDesc + the descriptor for this arg +
+ * arg:   + tOptions* + opts + program options descriptor +
+ * arg:   + tOptDesc* + od   + the descriptor for this arg +
  *
  * doc:
  *  Nested value was found on the command line
 =*/
 void
-optionNestedVal(tOptions* pOpts, tOptDesc* pOD)
+optionNestedVal(tOptions * opts, tOptDesc * od)
 {
-    if (pOpts < OPTPROC_EMIT_LIMIT)
+    if (opts < OPTPROC_EMIT_LIMIT)
         return;
 
-    if (pOD->fOptState & OPTST_RESET) {
-        tArgList* pAL = pOD->optCookie;
-        int       ct;
-        tCC **    av;
+    if (od->fOptState & OPTST_RESET) {
+        tArgList *    arg_list = od->optCookie;
+        int           ct;
+        char const ** av;
 
-        if (pAL == NULL)
+        if (arg_list == NULL)
             return;
-        ct = pAL->useCt;
-        av = pAL->apzArgs;
+        ct = arg_list->useCt;
+        av = arg_list->apzArgs;
 
         while (--ct >= 0) {
             void * p = (void *)*(av++);
             optionUnloadNested((tOptionValue const *)p);
         }
 
-        AGFREE(pOD->optCookie);
+        AGFREE(od->optCookie);
 
     } else {
-        tOptionValue* pOV = optionLoadNested(
-            pOD->optArg.argString, pOD->pz_Name, strlen(pOD->pz_Name));
+        tOptionValue * opt_val = optionLoadNested(
+            od->optArg.argString, od->pz_Name, strlen(od->pz_Name));
 
-        if (pOV != NULL)
-            addArgListEntry(&(pOD->optCookie), (void*)pOV);
+        if (opt_val != NULL)
+            addArgListEntry(&(od->optCookie), (void*)opt_val);
     }
 }
 
-/*
+/**
  * get_special_char
  */
 LOCAL int
@@ -789,7 +852,7 @@ get_special_char(char const ** ppz, int * ct)
         retch = (int)strtoul(pz, (char **)&pz, base);
         if (*pz != ';')
             return '&';
-        base = ++pz - *ppz;
+        base = (int)(++pz - *ppz);
         if (base > *ct)
             return '&';
 
@@ -804,7 +867,7 @@ get_special_char(char const ** ppz, int * ct)
 
         for (;;) {
             if (  (*ct >= xlatp->xml_len)
-               && (strncmp(pz, xlatp->xml_txt, xlatp->xml_len) == 0)) {
+               && (strncmp(pz, xlatp->xml_txt, (size_t)xlatp->xml_len) == 0)) {
                 *ppz += xlatp->xml_len;
                 *ct  -= xlatp->xml_len;
                 return xlatp->xml_ch;
@@ -818,7 +881,7 @@ get_special_char(char const ** ppz, int * ct)
     return '&';
 }
 
-/*
+/**
  * emit_special_char
  */
 LOCAL void
@@ -840,7 +903,8 @@ emit_special_char(FILE * fp, int ch)
     fprintf(fp, XML_HEX_BYTE_FMT, (ch & 0xFF));
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index b709d07..260f539 100644 (file)
@@ -2,11 +2,15 @@
 /**
  * \file numeric.c
  *
- *  Time-stamp:      "2012-02-25 12:54:32 bkorb"
+ * Handle options with numeric (integer) arguments.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /*=export_func  optionShowRange
  * private:
  *
- * what:  
+ * what:  Show info about range constraints
  * arg:   + tOptions* + pOpts     + program options descriptor  +
  * arg:   + tOptDesc* + pOptDesc  + the descriptor for this arg +
  * arg:   + void *    + rng_table + the value range tables      +
@@ -42,7 +46,7 @@ optionShowRange(tOptions * pOpts, tOptDesc * pOD, void * rng_table, int rng_ct)
 {
     const struct {long const rmin, rmax;} * rng = rng_table;
 
-    char const * pz_indent = BULLET_STR;
+    char const * pz_indent = zTabHyp + tab_skip_ct;
 
     /*
      * The range is shown only for full usage requests and an error
@@ -62,7 +66,9 @@ optionShowRange(tOptions * pOpts, tOptDesc * pOD, void * rng_table, int rng_ct)
         fprintf(option_usage_fp, zRangeScaled, pz_indent);
 
     fprintf(option_usage_fp, (rng_ct > 1) ? zRangeLie : zRangeOnly, pz_indent);
-    pz_indent = (pOpts != OPTPROC_EMIT_USAGE) ? ONE_TAB_STR : DEEP_INDENT_STR;
+    pz_indent = (pOpts != OPTPROC_EMIT_USAGE)
+        ? ONE_TAB_STR
+        : (zTabSpace + tab_skip_ct);
 
     for (;;) {
         if (rng->rmax == LONG_MIN)
@@ -91,14 +97,14 @@ optionShowRange(tOptions * pOpts, tOptDesc * pOD, void * rng_table, int rng_ct)
  * private:
  *
  * what:  process an option with a numeric value.
- * arg:   + tOptions* + pOpts    + program options descriptor +
- * arg:   + tOptDesc* + pOptDesc + the descriptor for this arg +
+ * arg:   + tOptions* + opts + program options descriptor +
+ * arg:   + tOptDesc* + od   + the descriptor for this arg +
  *
  * doc:
  *  Decipher a numeric value.
 =*/
 void
-optionNumericVal(tOptions* pOpts, tOptDesc* pOD )
+optionNumericVal(tOptions * opts, tOptDesc * od)
 {
     char* pz;
     long  val;
@@ -106,20 +112,20 @@ optionNumericVal(tOptions* pOpts, tOptDesc* pOD )
     /*
      *  Numeric options may have a range associated with it.
      *  If it does, the usage procedure requests that it be
-     *  emitted by passing a NULL pOD pointer.  Also bail out
+     *  emitted by passing a NULL od pointer.  Also bail out
      *  if there is no option argument or if we are being reset.
      */
-    if (  (pOD == NULL)
-       || (pOD->optArg.argString == NULL)
-       || ((pOD->fOptState & OPTST_RESET) != 0))
+    if (  (od == NULL)
+       || (od->optArg.argString == NULL)
+       || ((od->fOptState & OPTST_RESET) != 0))
         return;
 
     errno = 0;
-    val = strtol(pOD->optArg.argString, &pz, 0);
-    if ((pz == pOD->optArg.argString) || (errno != 0))
+    val = strtol(od->optArg.argString, &pz, 0);
+    if ((pz == od->optArg.argString) || (errno != 0))
         goto bad_number;
 
-    if ((pOD->fOptState & OPTST_SCALED_NUM) != 0)
+    if ((od->fOptState & OPTST_SCALED_NUM) != 0)
         switch (*(pz++)) {
         case NUL:  pz--; break;
         case 't':  val *= 1000;
@@ -138,25 +144,26 @@ optionNumericVal(tOptions* pOpts, tOptDesc* pOD )
     if (*pz != NUL)
         goto bad_number;
 
-    if (pOD->fOptState & OPTST_ALLOC_ARG) {
-        AGFREE(pOD->optArg.argString);
-        pOD->fOptState &= ~OPTST_ALLOC_ARG;
+    if (od->fOptState & OPTST_ALLOC_ARG) {
+        AGFREE(od->optArg.argString);
+        od->fOptState &= ~OPTST_ALLOC_ARG;
     }
 
-    pOD->optArg.argInt = val;
+    od->optArg.argInt = val;
     return;
 
     bad_number:
 
-    fprintf( stderr, zNotNumber, pOpts->pzProgName, pOD->optArg.argString );
-    if ((pOpts->fOptSet & OPTPROC_ERRSTOP) != 0)
-        (*(pOpts->pUsageProc))(pOpts, EXIT_FAILURE);
+    fprintf( stderr, zNotNumber, opts->pzProgName, od->optArg.argString );
+    if ((opts->fOptSet & OPTPROC_ERRSTOP) != 0)
+        (*(opts->pUsageProc))(opts, EXIT_FAILURE);
 
     errno = EINVAL;
-    pOD->optArg.argInt = ~0;
+    od->optArg.argInt = ~0;
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
diff --git a/src/libopts/option-value-type.c b/src/libopts/option-value-type.c
new file mode 100644 (file)
index 0000000..d3b0a6c
--- /dev/null
@@ -0,0 +1,156 @@
+/*   -*- buffer-read-only: t -*- vi: set ro:
+ *
+ *  DO NOT EDIT THIS FILE   (stdin.c)
+ *
+ *  It has been AutoGen-ed  March 31, 2013 at 10:41:26 AM by AutoGen 5.17.3
+ *  From the definitions    stdin
+ *  and the template file   str2enum
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name ``Bruce Korb'' nor the name of any other
+ *    contributor may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * str2enum IS PROVIDED BY Bruce Korb ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bruce Korb OR ANY OTHER CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "option-value-type.h"
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf option-value-type.gp  */
+/* Computed positions: -k'1' */
+
+
+
+# if 0 /* gperf build options: */
+// %struct-type
+// %language=ANSI-C
+// %includes
+// %global-table
+// %omit-struct-type
+// %readonly-tables
+// %compare-strncmp
+//
+// %define slot-name               vtp_name
+// %define hash-function-name      option_value_type_hash
+// %define lookup-function-name    find_option_value_type_name
+// %define word-array-name         option_value_type_table
+// %define initializer-suffix      ,VTP_COUNT_CMD
+//
+# endif
+
+#include "option-value-type.h"
+typedef struct {
+    char const *    vtp_name;
+    option_value_type_enum_t vtp_id;
+} option_value_type_map_t;
+#include <string.h>
+
+/* maximum key range = 15, duplicates = 0 */
+
+static unsigned int
+option_value_type_hash (register const char *str, register unsigned int len)
+{
+  static const unsigned char asso_values[] =
+    {
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18,  0, 18,
+      18, 18, 18, 18,  0, 10, 18,  5, 18, 18,
+       5, 18, 18, 18, 18,  0, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+      18, 18, 18, 18, 18, 18
+    };
+  return len + asso_values[(unsigned char)str[0]];
+}
+
+static const option_value_type_map_t option_value_type_table[] =
+  {
+    {"",VTP_COUNT_CMD}, {"",VTP_COUNT_CMD},
+    {"",VTP_COUNT_CMD},
+    {"set",            VTP_CMD_SET},
+    {"bool",           VTP_CMD_BOOL},
+    {"",VTP_COUNT_CMD},
+    {"string",         VTP_CMD_STRING},
+    {"boolean",        VTP_CMD_BOOLEAN},
+    {"",VTP_COUNT_CMD},
+    {"hierarchy",      VTP_CMD_HIERARCHY},
+    {"",VTP_COUNT_CMD},
+    {"nested",         VTP_CMD_NESTED},
+    {"keyword",        VTP_CMD_KEYWORD},
+    {"",VTP_COUNT_CMD},
+    {"set-membership", VTP_CMD_SET_MEMBERSHIP},
+    {"",VTP_COUNT_CMD}, {"",VTP_COUNT_CMD},
+    {"integer",        VTP_CMD_INTEGER}
+  };
+
+static inline const option_value_type_map_t *
+find_option_value_type_name (register const char *str, register unsigned int len)
+{
+  if (len <= 14 && len >= 3)
+    {
+      register int key = (int)option_value_type_hash (str, len);
+
+      if (key <= 17 && key >= 0)
+        {
+          register const char *s = option_value_type_table[key].vtp_name;
+
+          if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
+            return &option_value_type_table[key];
+        }
+    }
+  return 0;
+}
+
+/**
+ * Convert a command (keyword) to a option_value_type_enum_t enumeration value.
+ *
+ * @param[in] str   a string that should start with a known key word.
+ * @param[in] len   the provided length of the keyword at \a str.
+ * @returns the enumeration value.
+ * If not found, that value is VTP_INVALID_CMD.
+ */
+option_value_type_enum_t
+find_option_value_type_cmd(char const * str, size_t len)
+{
+    option_value_type_map_t const * map;
+
+    map = find_option_value_type_name(str, (unsigned int)len);
+    return (map == NULL) ? VTP_INVALID_CMD : map->vtp_id;
+}
+
+/* end of option-value-type.c */
diff --git a/src/libopts/option-value-type.h b/src/libopts/option-value-type.h
new file mode 100644 (file)
index 0000000..2d99b4b
--- /dev/null
@@ -0,0 +1,60 @@
+/*   -*- buffer-read-only: t -*- vi: set ro:
+ *
+ *  DO NOT EDIT THIS FILE   (stdin.h)
+ *
+ *  It has been AutoGen-ed  March 31, 2013 at 10:41:25 AM by AutoGen 5.17.3
+ *  From the definitions    stdin
+ *  and the template file   str2enum
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name ``Bruce Korb'' nor the name of any other
+ *    contributor may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * str2enum IS PROVIDED BY Bruce Korb ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bruce Korb OR ANY OTHER CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Command/Keyword Dispatcher
+ */
+#ifndef STR2ENUM_OPTION_VALUE_TYPE_H_GUARD
+#define STR2ENUM_OPTION_VALUE_TYPE_H_GUARD 1
+#include <sys/types.h>
+#ifndef MISSING_INTTYPES_H
+# include <inttypes.h>
+#endif
+
+typedef enum {
+    VTP_INVALID_CMD = 0,
+    VTP_CMD_STRING         = 1,
+    VTP_CMD_INTEGER        = 2,
+    VTP_CMD_BOOL           = 3,
+    VTP_CMD_BOOLEAN        = 4,
+    VTP_CMD_KEYWORD        = 5,
+    VTP_CMD_SET            = 6,
+    VTP_CMD_SET_MEMBERSHIP = 7,
+    VTP_CMD_NESTED         = 8,
+    VTP_CMD_HIERARCHY      = 9,
+    VTP_COUNT_CMD
+} option_value_type_enum_t;
+
+extern option_value_type_enum_t
+find_option_value_type_cmd(char const * str, size_t len);
+
+#endif /* STR2ENUM_OPTION_VALUE_TYPE_H_GUARD */
+/* end of option-value-type.h */
diff --git a/src/libopts/option-xat-attribute.c b/src/libopts/option-xat-attribute.c
new file mode 100644 (file)
index 0000000..9f6cbdb
--- /dev/null
@@ -0,0 +1,148 @@
+/*   -*- buffer-read-only: t -*- vi: set ro:
+ *
+ *  DO NOT EDIT THIS FILE   (stdin.c)
+ *
+ *  It has been AutoGen-ed  March 31, 2013 at 10:41:24 AM by AutoGen 5.17.3
+ *  From the definitions    stdin
+ *  and the template file   str2enum
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name ``Bruce Korb'' nor the name of any other
+ *    contributor may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * str2enum IS PROVIDED BY Bruce Korb ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bruce Korb OR ANY OTHER CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "option-xat-attribute.h"
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf option-xat-attribute.gp  */
+/* Computed positions: -k'1' */
+
+
+
+# if 0 /* gperf build options: */
+// %struct-type
+// %language=ANSI-C
+// %includes
+// %global-table
+// %omit-struct-type
+// %readonly-tables
+// %compare-strncmp
+//
+// %define slot-name               xat_name
+// %define hash-function-name      option_xat_attribute_hash
+// %define lookup-function-name    find_option_xat_attribute_name
+// %define word-array-name         option_xat_attribute_table
+// %define initializer-suffix      ,XAT_COUNT_CMD
+//
+# endif
+
+#include "option-xat-attribute.h"
+typedef struct {
+    char const *    xat_name;
+    option_xat_attribute_enum_t xat_id;
+} option_xat_attribute_map_t;
+#include <string.h>
+
+/* maximum key range = 6, duplicates = 0 */
+
+static unsigned int
+option_xat_attribute_hash (register const char *str, register unsigned int len)
+{
+  static const unsigned char asso_values[] =
+    {
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10, 0,
+     10,10,10,10,10,10,10, 5,10, 0,
+     10,10,10,10,10,10, 0, 0,10, 0,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10,10,10,10,10,
+     10,10,10,10,10,10
+    };
+  return len + asso_values[(unsigned char)str[0]];
+}
+
+static const option_xat_attribute_map_t option_xat_attribute_table[] =
+  {
+    {"",XAT_COUNT_CMD}, {"",XAT_COUNT_CMD},
+    {"",XAT_COUNT_CMD}, {"",XAT_COUNT_CMD},
+    {"type",     XAT_CMD_TYPE},
+    {"words",    XAT_CMD_WORDS},
+    {"cooked",   XAT_CMD_COOKED},
+    {"members",  XAT_CMD_MEMBERS},
+    {"uncooked", XAT_CMD_UNCOOKED},
+    {"keep",     XAT_CMD_KEEP}
+  };
+
+static inline const option_xat_attribute_map_t *
+find_option_xat_attribute_name (register const char *str, register unsigned int len)
+{
+  if (len <= 8 && len >= 4)
+    {
+      register int key = (int)option_xat_attribute_hash (str, len);
+
+      if (key <= 9 && key >= 0)
+        {
+          register const char *s = option_xat_attribute_table[key].xat_name;
+
+          if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
+            return &option_xat_attribute_table[key];
+        }
+    }
+  return 0;
+}
+
+/**
+ * Convert a command (keyword) to a option_xat_attribute_enum_t enumeration value.
+ *
+ * @param[in] str   a string that should start with a known key word.
+ * @param[in] len   the provided length of the keyword at \a str.
+ * @returns the enumeration value.
+ * If not found, that value is XAT_INVALID_CMD.
+ */
+option_xat_attribute_enum_t
+find_option_xat_attribute_cmd(char const * str, size_t len)
+{
+    option_xat_attribute_map_t const * map;
+
+    map = find_option_xat_attribute_name(str, (unsigned int)len);
+    return (map == NULL) ? XAT_INVALID_CMD : map->xat_id;
+}
+
+/* end of option-xat-attribute.c */
diff --git a/src/libopts/option-xat-attribute.h b/src/libopts/option-xat-attribute.h
new file mode 100644 (file)
index 0000000..c6ac084
--- /dev/null
@@ -0,0 +1,57 @@
+/*   -*- buffer-read-only: t -*- vi: set ro:
+ *
+ *  DO NOT EDIT THIS FILE   (stdin.h)
+ *
+ *  It has been AutoGen-ed  March 31, 2013 at 10:41:24 AM by AutoGen 5.17.3
+ *  From the definitions    stdin
+ *  and the template file   str2enum
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name ``Bruce Korb'' nor the name of any other
+ *    contributor may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * str2enum IS PROVIDED BY Bruce Korb ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bruce Korb OR ANY OTHER CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Command/Keyword Dispatcher
+ */
+#ifndef STR2ENUM_OPTION_XAT_ATTRIBUTE_H_GUARD
+#define STR2ENUM_OPTION_XAT_ATTRIBUTE_H_GUARD 1
+#include <sys/types.h>
+#ifndef MISSING_INTTYPES_H
+# include <inttypes.h>
+#endif
+
+typedef enum {
+    XAT_INVALID_CMD = 0,
+    XAT_CMD_TYPE     = 1,
+    XAT_CMD_WORDS    = 2,
+    XAT_CMD_MEMBERS  = 3,
+    XAT_CMD_COOKED   = 4,
+    XAT_CMD_UNCOOKED = 5,
+    XAT_CMD_KEEP     = 6,
+    XAT_COUNT_CMD
+} option_xat_attribute_enum_t;
+
+extern option_xat_attribute_enum_t
+find_option_xat_attribute_cmd(char const * str, size_t len);
+
+#endif /* STR2ENUM_OPTION_XAT_ATTRIBUTE_H_GUARD */
+/* end of option-xat-attribute.h */
index 655a5e5..5f4496d 100644 (file)
@@ -1,18 +1,18 @@
 /* Parse a time duration and return a seconds count
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
    Written by Bruce Korb <bkorb@gnu.org>, 2008.
 
    This program 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
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1 of the License, or
    (at your option) any later version.
 
    This program 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.
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
+   You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
@@ -54,14 +54,14 @@ typedef enum {
 #define TIME_MAX        0x7FFFFFFF
 
 /* Wrapper around strtoul that does not require a cast.  */
-inline static unsigned long
+static unsigned long
 str_const_to_ul (cch_t * str, cch_t ** ppz, int base)
 {
   return strtoul (str, (char **)ppz, base);
 }
 
 /* Wrapper around strtol that does not require a cast.  */
-inline static long
+static long
 str_const_to_l (cch_t * str, cch_t ** ppz, int base)
 {
   return strtol (str, (char **)ppz, base);
@@ -70,7 +70,7 @@ str_const_to_l (cch_t * str, cch_t ** ppz, int base)
 /* Returns BASE + VAL * SCALE, interpreting BASE = BAD_TIME
    with errno set as an error situation, and returning BAD_TIME
    with errno set in an error situation.  */
-inline static time_t
+static time_t
 scale_n_add (time_t base, time_t val, int scale)
 {
   if (base == BAD_TIME)
index caefb75..cbe31b8 100644 (file)
@@ -1,18 +1,18 @@
 /* Parse a time duration and return a seconds count
-   Copyright (C) 2008-2012 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
    Written by Bruce Korb <bkorb@gnu.org>, 2008.
 
    This program 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
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1 of the License, or
    (at your option) any later version.
 
    This program 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.
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
+   You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /*
index 7eae2b0..3bc7fc3 100644 (file)
@@ -2,16 +2,18 @@
 /**
  * \file pgusage.c
  *
- * Time-stamp:      "2012-02-28 19:49:32 bkorb"
- *
  *   Automated Options Paged Usage module.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This routine will run run-on options through a pager so the
  *  user may examine, print or edit them at their leisure.
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /*=export_func  optionPagedUsage
  * private:
  *
  * what:  Decipher a boolean value
- * arg:   + tOptions* + pOpts    + program options descriptor +
- * arg:   + tOptDesc* + pOptDesc + the descriptor for this arg +
+ * arg:   + tOptions* + opts + program options descriptor +
+ * arg:   + tOptDesc* + od   + the descriptor for this arg +
  *
  * doc:
  *  Run the usage output through a pager.
  *  This is disabled on platforms without a working fork() function.
 =*/
 void
-optionPagedUsage(tOptions * pOptions, tOptDesc * pOD)
+optionPagedUsage(tOptions * opts, tOptDesc * od)
 {
 #if ! defined(HAVE_WORKING_FORK)
-    if ((pOD->fOptState & OPTST_RESET) != 0)
+    if ((od->fOptState & OPTST_RESET) != 0)
         return;
 
-    (*pOptions->pUsageProc)(pOptions, EXIT_SUCCESS);
+    (*opts->pUsageProc)(opts, EXIT_SUCCESS);
 #else
     static pid_t     my_pid;
-    char zPageUsage[ 1024 ];
+    char fil_name[1024];
 
     /*
      *  IF we are being called after the usage proc is done
@@ -62,17 +64,18 @@ optionPagedUsage(tOptions * pOptions, tOptDesc * pOD)
     switch (pagerState) {
     case PAGER_STATE_INITIAL:
     {
-        if ((pOD->fOptState & OPTST_RESET) != 0)
+        if ((od->fOptState & OPTST_RESET) != 0)
             return;
 
         my_pid  = getpid();
-        snprintf(zPageUsage, sizeof(zPageUsage), TMP_USAGE_FMT, (tAoUL)my_pid);
-        unlink(zPageUsage);
+        snprintf(fil_name, sizeof(fil_name), TMP_USAGE_FMT,
+                 (unsigned long)my_pid);
+        unlink(fil_name);
 
         /*
          *  Set usage output to this temporary file
          */
-        option_usage_fp = fopen(zPageUsage, "w" FOPEN_BINARY_FLAG);
+        option_usage_fp = fopen(fil_name, "w" FOPEN_BINARY_FLAG);
         if (option_usage_fp == NULL)
             _exit(EXIT_FAILURE);
 
@@ -87,7 +90,7 @@ optionPagedUsage(tOptions * pOptions, tOptDesc * pOD)
          *  The usage procedure will now put the usage information into
          *  the temporary file we created above.
          */
-        (*pOptions->pUsageProc)(pOptions, EXIT_SUCCESS);
+        (*opts->pUsageProc)(opts, EXIT_SUCCESS);
 
         /* NOTREACHED */
         _exit(EXIT_FAILURE);
@@ -95,23 +98,23 @@ optionPagedUsage(tOptions * pOptions, tOptDesc * pOD)
 
     case PAGER_STATE_READY:
     {
-        tCC* pzPager  = (tCC*)getenv(PAGER_NAME);
+        char const * pager  = (char const *)getenv(PAGER_NAME);
 
         /*
          *  Use the "more(1)" program if "PAGER" has not been defined
          */
-        if (pzPager == NULL)
-            pzPager = MORE_STR;
+        if (pager == NULL)
+            pager = MORE_STR;
 
         /*
          *  Page the file and remove it when done.
          */
-        snprintf(zPageUsage, sizeof(zPageUsage), PAGE_USAGE_FMT, pzPager,
-                 (tAoUL)my_pid);
+        snprintf(fil_name, sizeof(fil_name), PAGE_USAGE_FMT, pager,
+                 (unsigned long)my_pid);
         fclose(stderr);
         dup2(STDOUT_FILENO, STDERR_FILENO);
 
-        (void)system(zPageUsage);
+        ignore_val( system( fil_name));
     }
 
     case PAGER_STATE_CHILD:
@@ -123,7 +126,8 @@ optionPagedUsage(tOptions * pOptions, tOptDesc * pOD)
 #endif
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index ae1a110..7cf6c53 100644 (file)
 /* -*- buffer-read-only: t -*- vi: set ro:
  *
  * Prototypes for autoopts
- * Generated Sun May  6 16:21:08 PDT 2012
+ * Generated Sun Mar 31 10:41:38 PDT 2013
  */
 #ifndef AUTOOPTS_PROTO_H_GUARD
 #define AUTOOPTS_PROTO_H_GUARD 1
 
-#ifndef LOCAL
-#  define LOCAL extern
-#  define REDEF_LOCAL 1
-#else
-#  undef  REDEF_LOCAL
-#endif
+/*
+ *  Extracted from alias.c
+ */
+static tSuccess
+too_many_occurrences(tOptions * opts, tOptDesc * od);
+
 /*
  *  Extracted from autoopts.c
  */
-LOCAL void *
+static void *
 ao_malloc(size_t sz);
 
-LOCAL void *
+static void *
 ao_realloc(void *p, size_t sz);
 
-LOCAL char *
+static char *
 ao_strdup(char const *str);
 
-LOCAL tSuccess
-handle_opt(tOptions * pOpts, tOptState* pOptState);
+static tSuccess
+handle_opt(tOptions * opts, tOptState * o_st);
 
-LOCAL tSuccess
-immediate_opts(tOptions * pOpts);
+static tSuccess
+next_opt(tOptions * opts, tOptState * o_st);
 
-LOCAL tSuccess
-regular_opts(tOptions * pOpts);
+static tSuccess
+regular_opts(tOptions * opts);
 
 /*
  *  Extracted from check.c
  */
-LOCAL bool
+static bool
 is_consistent(tOptions * pOpts);
 
 /*
  *  Extracted from configfile.c
  */
-LOCAL void
-intern_file_load(tOptions* pOpts);
+static void
+intern_file_load(tOptions * opts);
 
-LOCAL char*
-parse_attrs(tOptions * pOpts, char * pzText, tOptionLoadMode * pMode,
+static char const *
+parse_attrs(tOptions * opts, char const * txt, tOptionLoadMode * pMode,
             tOptionValue * pType);
 
-LOCAL tSuccess
-validate_struct(tOptions * pOpts, char const * pzProgram);
-
 /*
  *  Extracted from env.c
  */
-LOCAL void
+static void
 doPrognameEnv(tOptions * pOpts, teEnvPresetType type);
 
-LOCAL void
+static void
 env_presets(tOptions * pOpts, teEnvPresetType type);
 
 /*
  *  Extracted from find.c
  */
-LOCAL tSuccess
-opt_find_long(tOptions * pOpts, char const * opt_name, tOptState * pOptState);
+static tSuccess
+opt_find_long(tOptions * opts, char const * opt_name, tOptState * state);
 
-LOCAL tSuccess
+static tSuccess
 opt_find_short(tOptions* pOpts, uint_t optValue, tOptState* pOptState);
 
-LOCAL tSuccess
-get_opt_arg(tOptions * pOpts, tOptState * pOptState);
+static tSuccess
+get_opt_arg(tOptions * opts, tOptState * o_st);
+
+static tSuccess
+find_opt(tOptions * opts, tOptState * o_st);
+
+/*
+ *  Extracted from init.c
+ */
+static tSuccess
+validate_struct(tOptions * opts, char const * pname);
+
+static tSuccess
+immediate_opts(tOptions * opts);
 
-LOCAL tSuccess
-find_opt(tOptions * pOpts, tOptState * pOptState);
+static bool
+ao_initialize(tOptions * opts, int a_ct, char ** a_v);
 
 /*
  *  Extracted from load.c
  */
-LOCAL void
-mungeString(char* pzTxt, tOptionLoadMode mode);
+static void
+munge_str(char * txt, tOptionLoadMode mode);
 
-LOCAL void
+static void
 loadOptionLine(
-    tOptions*   pOpts,
-    tOptState*  pOS,
-    char*       pzLine,
+    tOptions *  opts,
+    tOptState * opt_state,
+    char *      line,
     tDirection  direction,
     tOptionLoadMode   load_mode );
 
 /*
+ *  Extracted from makeshell.c
+ */
+static void
+fserr_warn(char const * prog, char const * op, char const * fname);
+
+static void
+fserr_exit(char const * prog, char const * op, char const * fname);
+
+/*
  *  Extracted from nested.c
  */
-LOCAL void
-unload_arg_list(tArgList* pAL);
+static void
+unload_arg_list(tArgList * arg_list);
 
-LOCAL tOptionValue*
-optionLoadNested(char const* pzTxt, char const* pzName, size_t nameLen);
+static tOptionValue *
+optionLoadNested(char const * text, char const * name, size_t nm_len);
 
-LOCAL int
+static int
 get_special_char(char const ** ppz, int * ct);
 
-LOCAL void
+static void
 emit_special_char(FILE * fp, int ch);
 
 /*
  *  Extracted from sort.c
  */
-LOCAL void
-optionSort(tOptions* pOpts);
+static void
+optionSort(tOptions * opts);
 
 /*
  *  Extracted from stack.c
  */
-LOCAL void
+static void
 addArgListEntry(void** ppAL, void* entry);
 
 /*
  *  Extracted from usage.c
  */
-LOCAL void
+static void
 set_usage_flags(tOptions * opts, char const * flg_txt);
 
-#ifdef REDEF_LOCAL
-#  undef LOCAL
-#  define LOCAL
-#endif
+static void
+ao_bug(char const * msg);
+
 #endif /* AUTOOPTS_PROTO_H_GUARD */
index d8e2d91..d210392 100644 (file)
@@ -2,15 +2,17 @@
 /**
  * \file putshell.c
  *
- * Time-stamp:      "2012-03-31 13:14:18 bkorb"
- *
  *  This module will interpret the options set in the tOptions
  *  structure and print them to standard out in a fashion that
  *  will allow them to be interpreted by the Bourne or Korn shells.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
+#define APOSTROPHE '\''
 
 /* = = = START-STATIC-FORWARD = = = */
+static size_t
+string_size(char const * scan, size_t nl_len);
+
+static char const *
+print_quoted_apostrophes(char const * str);
+
 static void
-print_quot_str(char const * pzStr);
+print_quot_str(char const * str);
 
 static void
 print_enumeration(tOptions * pOpts, tOptDesc * pOD);
@@ -43,20 +52,179 @@ static void
 print_stacked_arg(tOptions * pOpts, tOptDesc * pOD);
 
 static void
-print_reordering(tOptions * pOpts);
+print_reordering(tOptions * opts);
 /* = = = END-STATIC-FORWARD = = = */
 
-/*
- *  Make sure embedded single quotes come out okay.  The initial quote has
- *  been emitted and the closing quote will be upon return.
+/**
+ * Count the number of bytes required to represent a string as a
+ * compilable string.
+ *
+ * @param[in] scan    the text to be rewritten as a C program text string.
+ * @param[in] nl_len  the number of bytes used for each embedded newline.
+ *
+ * @returns the count, including the terminating NUL byte.
+ */
+static size_t
+string_size(char const * scan, size_t nl_len)
+{
+    /*
+     *  Start by counting the start and end quotes, plus the NUL.
+     */
+    size_t res_ln = 3;
+
+    for (;;) {
+        char ch = *(scan++);
+        if ((ch >= ' ') && (ch <= '~')) {
+
+            /*
+             * a backslash allowance for double quotes and baskslashes
+             */
+            res_ln += ((ch == '"') || (ch == '\\')) ? 2 : 1;
+        }
+
+        /*
+         *  When not a normal character, then count the characters
+         *  required to represent whatever it is.
+         */
+        else switch (ch) {
+        case NUL:
+            return res_ln;
+
+        case NL:
+            res_ln += nl_len;
+            break;
+
+        case HT:
+        case BEL:
+        case BS:
+        case FF:
+        case CR:
+        case VT:
+            res_ln += 2;
+            break;
+
+        default:
+            res_ln += 4; /* text len for \xNN */
+        }
+    }
+}
+
+/*=export_func  optionQuoteString
+ * private:
+ *
+ * what:  Print a string as quoted text suitable for a C compiler.
+ * arg:   + char const * + text  + a block of text to quote +
+ * arg:   + char const * + nl    + line splice text         +
+ *
+ * ret_type:  char const *
+ * ret_desc:  the allocated input string as a quoted string
+ *
+ * doc:
+ *  This is for internal use by autogen and autoopts.
+ *  It takes an input string and produces text the C compiler can process
+ *  to produce an exact copy of the original string.
+ *  The caller must deallocate the result.  Standard C strings and
+ *  K&R strings are distinguished by the "nl" string.
+=*/
+char const *
+optionQuoteString(char const * text, char const * nl)
+{
+    size_t   nl_len = strlen(nl);
+    char *   out;
+    char *   res = out = AGALOC(string_size(text, nl_len), "quot str");
+    *(out++) = '"';
+
+    for (;;) {
+        unsigned char ch = (unsigned char)*text;
+        if ((ch >= ' ') && (ch <= '~')) {
+            if ((ch == '"') || (ch == '\\'))
+                /*
+                 *  We must escape these characters in the output string
+                 */
+                *(out++) = '\\';
+            *(out++) = (char)ch;
+
+        } else switch (ch) {
+#       define   add_esc_ch(_ch)  { *(out++) = '\\'; *(out++) = (_ch); }
+        case BEL: add_esc_ch('a'); break;
+        case BS:  add_esc_ch('b'); break;
+        case HT:  add_esc_ch('t'); break;
+        case VT:  add_esc_ch('v'); break;
+        case FF:  add_esc_ch('f'); break;
+        case CR:  add_esc_ch('r'); break;
+
+        case LF:
+            /*
+             *  Place contiguous new-lines on a single line.
+             *  The current character is a NL, check the next one.
+             */
+            while (*++text == NL)
+                add_esc_ch('n');
+
+            /*
+             *  Insert a splice before starting next line
+             */
+            if (*text != NUL) {
+                memcpy(out, nl, nl_len);
+                out += nl_len;
+
+                continue; /* text is already at the next character */
+            }
+
+            add_esc_ch('n');
+            /* FALLTHROUGH */
+
+        case NUL:
+            /*
+             *  End of string.  Terminate the quoted output.  If necessary,
+             *  deallocate the text string.  Return the scan resumption point.
+             */
+            *(out++) = '"';
+            *out = NUL;
+            return res;
+
+        default:
+            /*
+             *  sprintf is safe here, because we already computed
+             *  the amount of space we will be using.
+             */
+            sprintf(out, MK_STR_OCT_FMT, ch);
+            out += 4;
+        }
+
+        text++;
+#       undef add_esc_ch
+    }
+}
+
+/**
+ *  Print out escaped apostorophes.
+ *
+ *  @param[in] str  the apostrophies to print
+ */
+static char const *
+print_quoted_apostrophes(char const * str)
+{
+    while (*str == APOSTROPHE) {
+        fputs(QUOT_APOS, stdout);
+        str++;
+    }
+    return str;
+}
+
+/**
+ *  Print a single quote (apostrophe quoted) string.
+ *  Other than somersaults for apostrophes, nothing else needs quoting.
+ *
+ *  @param[in] str  the string to print
  */
 static void
-print_quot_str(char const * pzStr)
+print_quot_str(char const * str)
 {
     /*
      *  Handle empty strings to make the rest of the logic simpler.
      */
-    if ((pzStr == NULL) || (*pzStr == NUL)) {
+    if ((str == NULL) || (*str == NUL)) {
         fputs(EMPTY_ARG, stdout);
         return;
     }
@@ -65,46 +233,42 @@ print_quot_str(char const * pzStr)
      *  Emit any single quotes/apostrophes at the start of the string and
      *  bail if that is all we need to do.
      */
-    while (*pzStr == '\'') {
-        fputs(QUOT_APOS, stdout);
-        pzStr++;
-    }
-    if (*pzStr == NUL)
+    str = print_quoted_apostrophes(str);
+    if (*str == NUL)
         return;
 
     /*
      *  Start the single quote string
      */
-    fputc('\'', stdout);
+    fputc(APOSTROPHE, stdout);
     for (;;) {
-        char const * pz = strchr(pzStr, '\'');
+        char const * pz = strchr(str, APOSTROPHE);
         if (pz == NULL)
             break;
 
         /*
          *  Emit the string up to the single quote (apostrophe) we just found.
          */
-        (void)fwrite(pzStr, (size_t)(pz - pzStr), (size_t)1, stdout);
-        fputc('\'', stdout);
-        pzStr = pz;
+        (void)fwrite(str, (size_t)(pz - str), (size_t)1, stdout);
 
         /*
-         *  Emit an escaped apostrophe for every one we find.
-         *  If that ends the string, do not re-open the single quotes.
+         * Close the current string, emit the apostrophes and re-open the
+         * string (IFF there is more text to print).
          */
-        while (*++pzStr == '\'')   fputs("\\'", stdout);
-        if (*pzStr == NUL)
+        fputc(APOSTROPHE, stdout);
+        str = print_quoted_apostrophes(pz);
+        if (*str == NUL)
             return;
 
-        fputc('\'', stdout);
+        fputc(APOSTROPHE, stdout);
     }
 
     /*
      *  If we broke out of the loop, we must still emit the remaining text
      *  and then close the single quote string.
      */
-    fputs(pzStr, stdout);
-    fputc('\'', stdout);
+    fputs(str, stdout);
+    fputc(APOSTROPHE, stdout);
 }
 
 static void
@@ -164,9 +328,9 @@ print_membership(tOptions * pOpts, tOptDesc * pOD)
 static void
 print_stacked_arg(tOptions * pOpts, tOptDesc * pOD)
 {
-    tArgList*    pAL = (tArgList*)pOD->optCookie;
-    tCC**        ppz = pAL->apzArgs;
-    int          ct  = pAL->useCt;
+    tArgList*       pAL = (tArgList*)pOD->optCookie;
+    char const **   ppz = pAL->apzArgs;
+    int             ct  = pAL->useCt;
 
     printf(zOptCookieCt, pOpts->pzPROGNAME, pOD->pz_NAME, ct);
 
@@ -179,34 +343,24 @@ print_stacked_arg(tOptions * pOpts, tOptDesc * pOD)
     }
 }
 
+/**
+ * emit the arguments as readily parsed text.
+ * The program options are set by emitting the shell "set" command.
+ *
+ * @param[in] opts  the program options structure
+ */
 static void
-print_reordering(tOptions * pOpts)
+print_reordering(tOptions * opts)
 {
-    unsigned int optIx;
+    unsigned int ix;
 
     fputs(set_dash, stdout);
 
-    for (optIx = pOpts->curOptIdx;
-         optIx < pOpts->origArgCt;
-         optIx++) {
-
-        char* pzArg = pOpts->origArgVect[ optIx ];
-
-        if (strchr(pzArg, '\'') == NULL)
-            printf(arg_fmt, pzArg);
-
-        else {
-            fputs(" '", stdout);
-            for (;;) {
-                char ch = *(pzArg++);
-                switch (ch) {
-                case '\'':  fputs(apostrophy, stdout); break;
-                case NUL:   goto arg_done;
-                default:    fputc(ch, stdout); break;
-                }
-            } arg_done:;
-            fputc('\'', stdout);
-        }
+    for (ix = opts->curOptIdx;
+         ix < opts->origArgCt;
+         ix++) {
+        fputc(' ', stdout);
+        print_quot_str(opts->origArgVect[ ix ]);
     }
     fputs(init_optct, stdout);
 }
@@ -352,7 +506,8 @@ optionPutShell(tOptions* pOpts)
     fflush(stdout);
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index b8c5b9e..2abe7cc 100644 (file)
@@ -2,11 +2,15 @@
 /**
  * \file reset.c
  *
- *  Time-stamp:      "2011-05-24 18:07:16 bkorb"
+ *  Reset the option state to the compiled state.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 static void
@@ -67,7 +71,7 @@ optionResetEverything(tOptions * pOpts)
  *  For example, --reset=foo will cause the --foo option to be reset.
 =*/
 void
-optionResetOpt( tOptions* pOpts, tOptDesc* pOD )
+optionResetOpt(tOptions * pOpts, tOptDesc * pOD)
 {
     static bool reset_active = false;
 
@@ -75,17 +79,18 @@ optionResetOpt( tOptions* pOpts, tOptDesc* pOD )
     char const * pzArg = pOD->optArg.argString;
     tSuccess     succ;
 
+    if (pOpts <= OPTPROC_EMIT_LIMIT)
+        return;
+
     if (reset_active)
         return;
 
     if (  (! HAS_originalOptArgArray(pOpts))
-       || (pOpts->originalOptArgCookie == NULL)) {
-        fputs(zResetNotConfig, stderr);
-        _exit(EX_SOFTWARE);
-    }
+       || (pOpts->originalOptArgCookie == NULL))
+        ao_bug(zno_reset);
 
     if ((pzArg == NULL) || (*pzArg == NUL)) {
-        fputs(zNoResetArg, stderr);
+        fprintf(stderr, zreset_arg, pOpts->pzProgName, pOD->pz_Name);
         pOpts->pUsageProc(pOpts, EXIT_FAILURE);
         /* NOTREACHED */
         assert(0 == 1);
@@ -100,7 +105,7 @@ optionResetOpt( tOptions* pOpts, tOptDesc* pOD )
             return;
         }
 
-        succ = opt_find_short(pOpts, (tAoUC)*pzArg, &opt_state);
+        succ = opt_find_short(pOpts, (uint8_t)*pzArg, &opt_state);
         if (! SUCCESSFUL(succ)) {
             fprintf(stderr, zIllOptChr, pOpts->pzProgPath, *pzArg);
             pOpts->pUsageProc(pOpts, EXIT_FAILURE);
@@ -126,7 +131,8 @@ optionResetOpt( tOptions* pOpts, tOptDesc* pOD )
     optionReset(pOpts, opt_state.pOD);
     reset_active = false;
 }
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 4fd76f8..09ecb33 100644 (file)
@@ -2,15 +2,17 @@
 /*
  * \file restore.c
  *
- * Time-stamp:      "2010-08-22 11:04:00 bkorb"
- *
  *  This module's routines will save the current option state to memory
  *  and restore it.  If saved prior to the initial optionProcess call,
  *  then the initial state will be restored.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /*
@@ -92,29 +94,20 @@ fixupSavedOptionArgs(tOptions* pOpts)
  *        Otherwise, it will always succeed.
 =*/
 void
-optionSaveState(tOptions* pOpts)
+optionSaveState(tOptions * pOpts)
 {
-    tOptions* p = (tOptions*)pOpts->pSavedState;
+    tOptions * p = (tOptions*)pOpts->pSavedState;
 
     if (p == NULL) {
-        size_t sz = sizeof(*pOpts) + (pOpts->optCt * sizeof(tOptDesc));
+        size_t sz = sizeof(*pOpts)
+            + ((size_t)pOpts->optCt * sizeof(tOptDesc));
         p = AGALOC(sz, "saved option state");
-        if (p == NULL) {
-            tCC* pzName = pOpts->pzProgName;
-            if (pzName == NULL) {
-                pzName = pOpts->pzPROGNAME;
-                if (pzName == NULL)
-                    pzName = zNil;
-            }
-            fprintf(stderr, zCantSave, pzName, sz);
-            exit(EXIT_FAILURE);
-        }
 
         pOpts->pSavedState = p;
     }
 
     memcpy(p, pOpts, sizeof(*p));
-    memcpy(p + 1, pOpts->pOptDesc, p->optCt * sizeof(tOptDesc));
+    memcpy(p + 1, pOpts->pOptDesc, (size_t)p->optCt * sizeof(tOptDesc));
 
     fixupSavedOptionArgs(pOpts);
 }
@@ -141,7 +134,7 @@ optionRestore(tOptions* pOpts)
     tOptions* p = (tOptions*)pOpts->pSavedState;
 
     if (p == NULL) {
-        tCC* pzName = pOpts->pzProgName;
+        char const * pzName = pOpts->pzProgName;
         if (pzName == NULL) {
             pzName = pOpts->pzPROGNAME;
             if (pzName == NULL)
@@ -155,7 +148,7 @@ optionRestore(tOptions* pOpts)
     optionFree(pOpts);
 
     memcpy(pOpts, p, sizeof(*p));
-    memcpy(pOpts->pOptDesc, p+1, p->optCt * sizeof(tOptDesc));
+    memcpy(pOpts->pOptDesc, p+1, (size_t)p->optCt * sizeof(tOptDesc));
     pOpts->pSavedState = p;
 
     fixupSavedOptionArgs(pOpts);
@@ -213,13 +206,15 @@ optionFree(tOptions* pOpts)
     if (pOpts->pSavedState != NULL) {
         tOptions * p = (tOptions*)pOpts->pSavedState;
         memcpy(pOpts, p, sizeof(*p));
-        memcpy(pOpts->pOptDesc, p+1, p->optCt * sizeof(tOptDesc));
+        memcpy(pOpts->pOptDesc, p+1, (size_t)p->optCt * sizeof(tOptDesc));
         AGFREE(pOpts->pSavedState);
         pOpts->pSavedState = NULL;
         goto free_saved_state;
     }
 }
-/*
+
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 9e95056..3ae046f 100644 (file)
@@ -2,15 +2,17 @@
 /*
  * \file save.c
  *
- * Time-stamp:      "2012-03-31 13:15:19 bkorb"
- *
  *  This module's routines will take the currently set options and
  *  store them into an ".rc" file for re-interpretation the next
  *  time the invoking program is run.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /* = = = START-STATIC-FORWARD = = = */
 static char const *
-find_dir_name(tOptions * pOpts, int * p_free);
+find_dir_name(tOptions * opts, int * p_free);
 
 static char const *
-find_file_name(tOptions * pOpts, int * p_free_name);
+find_file_name(tOptions * opts, int * p_free_name);
 
 static void
-prt_entry(FILE * fp, tOptDesc * p, char const * pzLA);
+prt_entry(FILE * fp, tOptDesc * od, char const * l_arg);
 
 static void
 prt_value(FILE * fp, int depth, tOptDesc * pOD, tOptionValue const * ovp);
@@ -52,7 +54,7 @@ static void
 prt_nested(FILE * fp, tOptDesc * p);
 
 static FILE *
-open_sv_file(tOptions* pOpts);
+open_sv_file(tOptions * opts);
 
 static void
 prt_no_arg_opt(FILE * fp, tOptDesc * p, tOptDesc * pOD);
@@ -64,22 +66,24 @@ static void
 prt_enum_arg(FILE * fp, tOptDesc * pOD);
 
 static void
-prt_set_arg(FILE * fp, tOptDesc * pOD);
+prt_set_arg(FILE * fp, tOptDesc * od);
 
 static void
-prt_file_arg(FILE * fp, tOptDesc * pOD, tOptions* pOpts);
+prt_file_arg(FILE * fp, tOptDesc * od, tOptions * opts);
 /* = = = END-STATIC-FORWARD = = = */
 
+/**
+ */
 static char const *
-find_dir_name(tOptions * pOpts, int * p_free)
+find_dir_name(tOptions * opts, int * p_free)
 {
     char const * pzDir;
 
-    if (  (pOpts->specOptIdx.save_opts == NO_EQUIVALENT)
-       || (pOpts->specOptIdx.save_opts == 0))
+    if (  (opts->specOptIdx.save_opts == NO_EQUIVALENT)
+       || (opts->specOptIdx.save_opts == 0))
         return NULL;
 
-    pzDir = pOpts->pOptDesc[ pOpts->specOptIdx.save_opts ].optArg.argString;
+    pzDir = opts->pOptDesc[ opts->specOptIdx.save_opts ].optArg.argString;
     if ((pzDir != NULL) && (*pzDir != NUL))
         return pzDir;
 
@@ -88,7 +92,7 @@ find_dir_name(tOptions * pOpts, int * p_free)
      *  we can stash the RC (INI) file.
      */
     {
-        char const * const* papz = pOpts->papzHomeList;
+        char const * const* papz = opts->papzHomeList;
         if (papz == NULL)
             return NULL;
 
@@ -124,7 +128,7 @@ find_dir_name(tOptions * pOpts, int * p_free)
         }
 
         if (pzEnv == NULL) {
-            fprintf(stderr, SAVE_WARN, pOpts->pzProgName);
+            fprintf(stderr, zsave_warn, opts->pzProgName);
             fprintf(stderr, zNotDef, pzDir);
             return NULL;
         }
@@ -150,14 +154,15 @@ find_dir_name(tOptions * pOpts, int * p_free)
     }
 }
 
-
+/**
+ */
 static char const *
-find_file_name(tOptions * pOpts, int * p_free_name)
+find_file_name(tOptions * opts, int * p_free_name)
 {
     struct stat stBuf;
     int    free_dir_name = 0;
 
-    char const * pzDir = find_dir_name(pOpts, &free_dir_name);
+    char const * pzDir = find_dir_name(opts, &free_dir_name);
     if (pzDir == NULL)
         return NULL;
 
@@ -175,7 +180,7 @@ find_file_name(tOptions * pOpts, int * p_free_name)
          */
         if (errno != ENOENT) {
         bogus_name:
-            fprintf(stderr, SAVE_WARN, pOpts->pzProgName);
+            fprintf(stderr, zsave_warn, opts->pzProgName);
             fprintf(stderr, zNoStat, errno, strerror(errno), pzDir);
             if (free_dir_name)
                 AGFREE((void*)pzDir);
@@ -208,14 +213,14 @@ find_file_name(tOptions * pOpts, int * p_free_name)
      *  THEN tack on the config file name
      */
     if (S_ISDIR(stBuf.st_mode)) {
-        size_t sz = strlen(pzDir) + strlen(pOpts->pzRcName) + 2;
+        size_t sz = strlen(pzDir) + strlen(opts->pzRcName) + 2;
 
         {
             char * pzPath = (char*)AGALOC(sz, "file name");
 #ifdef HAVE_SNPRINTF
-            snprintf(pzPath, sz, "%s/%s", pzDir, pOpts->pzRcName);
+            snprintf(pzPath, sz, "%s/%s", pzDir, opts->pzRcName);
 #else
-            sprintf(pzPath, "%s/%s", pzDir, pOpts->pzRcName);
+            sprintf(pzPath, "%s/%s", pzDir, opts->pzRcName);
 #endif
             if (free_dir_name)
                 AGFREE((void*)pzDir);
@@ -229,7 +234,7 @@ find_file_name(tOptions * pOpts, int * p_free_name)
          */
         if (stat(pzDir, &stBuf) != 0) {
             if (errno != ENOENT) {
-                fprintf(stderr, SAVE_WARN, pOpts->pzProgName);
+                fprintf(stderr, zsave_warn, opts->pzProgName);
                 fprintf(stderr, zNoStat, errno, strerror(errno),
                         pzDir);
                 AGFREE((void*)pzDir);
@@ -248,8 +253,7 @@ find_file_name(tOptions * pOpts, int * p_free_name)
      *  or will soon be a file.
      */
     if (! S_ISREG(stBuf.st_mode)) {
-        fprintf(stderr, SAVE_WARN, pOpts->pzProgName);
-        fprintf(stderr, zNotFile, pzDir);
+        fprintf(stderr, zsave_warn, opts->pzProgName, pzDir);
         if (free_dir_name)
             AGFREE((void*)pzDir);
         return NULL;
@@ -263,9 +267,15 @@ find_file_name(tOptions * pOpts, int * p_free_name)
     return pzDir;
 }
 
-
+/**
+ * print one option entry to the save file.
+ *
+ * @param[in] fp    the file pointer for the save file
+ * @param[in] od    the option descriptor to print
+ * @param[in] l_arg the last argument for the option
+ */
 static void
-prt_entry(FILE * fp, tOptDesc * p, char const * pzLA)
+prt_entry(FILE * fp, tOptDesc * od, char const * l_arg)
 {
     /*
      *  There is an argument.  Pad the name so values line up.
@@ -275,10 +285,10 @@ prt_entry(FILE * fp, tOptDesc * p, char const * pzLA)
      */
     {
         char const * pz;
-        if (! DISABLED_OPT(p) || (p->optEquivIndex != NO_EQUIVALENT))
-            pz = p->pz_Name;
+        if (! DISABLED_OPT(od) || (od->optEquivIndex != NO_EQUIVALENT))
+            pz = od->pz_Name;
         else
-            pz = p->pz_DisableName;
+            pz = od->pz_DisableName;
 
         fprintf(fp, "%-18s", pz);
     }
@@ -286,44 +296,45 @@ prt_entry(FILE * fp, tOptDesc * p, char const * pzLA)
      *  IF the option is numeric only,
      *  THEN the char pointer is really the number
      */
-    if (OPTST_GET_ARGTYPE(p->fOptState) == OPARG_TYPE_NUMERIC)
-        fprintf(fp, "  %d\n", (int)(t_word)pzLA);
+    if (OPTST_GET_ARGTYPE(od->fOptState) == OPARG_TYPE_NUMERIC)
+        fprintf(fp, "  %d\n", (int)(t_word)l_arg);
 
     /*
      *  OTHERWISE, FOR each line of the value text, ...
      */
-    else if (pzLA == NULL)
+    else if (l_arg == NULL)
         fputc(NL, fp);
 
     else {
         fputc(' ', fp); fputc(' ', fp);
         for (;;) {
-            char const * pzNl = strchr(pzLA, NL);
+            char const * eol = strchr(l_arg, NL);
 
             /*
              *  IF this is the last line
              *  THEN bail and print it
              */
-            if (pzNl == NULL)
+            if (eol == NULL)
                 break;
 
             /*
              *  Print the continuation and the text from the current line
              */
-            (void)fwrite(pzLA, (size_t)(pzNl - pzLA), (size_t)1, fp);
-            pzLA = pzNl+1; /* advance the Last Arg pointer */
+            (void)fwrite(l_arg, (size_t)(eol - l_arg), (size_t)1, fp);
+            l_arg = eol+1; /* advance the Last Arg pointer */
             fputs("\\\n", fp);
         }
 
         /*
          *  Terminate the entry
          */
-        fputs(pzLA, fp);
+        fputs(l_arg, fp);
         fputc(NL, fp);
     }
 }
 
-
+/**
+ */
 static void
 prt_value(FILE * fp, int depth, tOptDesc * pOD, tOptionValue const * ovp)
 {
@@ -343,7 +354,7 @@ prt_value(FILE * fp, int depth, tOptDesc * pOD, tOptionValue const * ovp)
     case OPARG_TYPE_ENUMERATION:
     case OPARG_TYPE_MEMBERSHIP:
         if (pOD != NULL) {
-            tAoUI     opt_state = pOD->fOptState;
+            uint32_t  opt_state = pOD->fOptState;
             uintptr_t val = pOD->optArg.argEnum;
             char const * typ = (ovp->valType == OPARG_TYPE_ENUMERATION)
                 ? "keyword" : "set-membership";
@@ -388,7 +399,8 @@ prt_value(FILE * fp, int depth, tOptDesc * pOD, tOptionValue const * ovp)
     }
 }
 
-
+/**
+ */
 static void
 prt_string(FILE * fp, char const * name, char const * pz)
 {
@@ -423,7 +435,8 @@ prt_string(FILE * fp, char const * name, char const * pz)
     fprintf(fp, END_XML_FMT, name);
 }
 
-
+/**
+ */
 static void
 prt_val_list(FILE * fp, char const * name, tArgList * al)
 {
@@ -458,7 +471,8 @@ prt_val_list(FILE * fp, char const * name, tArgList * al)
     fprintf(fp, "</%s>\n", name);
 }
 
-
+/**
+ */
 static void
 prt_nested(FILE * fp, tOptDesc * p)
 {
@@ -494,21 +508,26 @@ prt_nested(FILE * fp, tOptDesc * p)
     } while (--opt_ct > 0);
 }
 
-
+/**
+ * open the file for saving option state.
+ *
+ * @param[in] opts  the program options structure
+ * @returns the open file pointer.  It may be NULL.
+ */
 static FILE *
-open_sv_file(tOptions* pOpts)
+open_sv_file(tOptions * opts)
 {
     FILE * fp;
 
     {
         int   free_name = 0;
-        char const * pzFName = find_file_name(pOpts, &free_name);
+        char const * pzFName = find_file_name(opts, &free_name);
         if (pzFName == NULL)
             return NULL;
 
         fp = fopen(pzFName, "w" FOPEN_BINARY_FLAG);
         if (fp == NULL) {
-            fprintf(stderr, SAVE_WARN, pOpts->pzProgName);
+            fprintf(stderr, zsave_warn, opts->pzProgName);
             fprintf(stderr, zNoCreat, errno, strerror(errno), pzFName);
             if (free_name)
                 AGFREE((void*) pzFName );
@@ -519,30 +538,33 @@ open_sv_file(tOptions* pOpts)
             AGFREE((void*)pzFName);
     }
 
+    fputs("#  ", fp);
     {
-        char const * pz = pOpts->pzUsageTitle;
-        fputs("#  ", fp);
-        do { fputc(*pz, fp); } while (*(pz++) != NL);
+        char const * e = strchr(opts->pzUsageTitle, NL);
+        if (e++ != NULL)
+            fwrite(opts->pzUsageTitle, 1, e - opts->pzUsageTitle, fp);
     }
 
     {
-        time_t  timeVal = time(NULL);
-        char *  pzTime  = ctime(&timeVal);
+        time_t  cur_time = time(NULL);
+        char *  time_str = ctime(&cur_time);
 
-        fprintf(fp, zPresetFile, pzTime);
+        fprintf(fp, zPresetFile, time_str);
 #ifdef HAVE_ALLOCATED_CTIME
         /*
          *  The return values for ctime(), localtime(), and gmtime()
          *  normally point to static data that is overwritten by each call.
          *  The test to detect allocated ctime, so we leak the memory.
          */
-        AGFREE((void*)pzTime);
+        AGFREE((void*)time_str);
 #endif
     }
 
     return fp;
 }
 
+/**
+ */
 static void
 prt_no_arg_opt(FILE * fp, tOptDesc * p, tOptDesc * pOD)
 {
@@ -564,6 +586,8 @@ prt_no_arg_opt(FILE * fp, tOptDesc * p, tOptDesc * pOD)
     fprintf(fp, "%s\n", pznm);
 }
 
+/**
+ */
 static void
 prt_str_arg(FILE * fp, tOptDesc * pOD)
 {
@@ -585,6 +609,8 @@ prt_str_arg(FILE * fp, tOptDesc * pOD)
     }
 }
 
+/**
+ */
 static void
 prt_enum_arg(FILE * fp, tOptDesc * pOD)
 {
@@ -600,56 +626,72 @@ prt_enum_arg(FILE * fp, tOptDesc * pOD)
     pOD->optArg.argEnum = val;
 }
 
+/**
+ * Print the bits set in a bit mask option.
+ * We call the option handling function with a magic value for
+ * the options pointer and it allocates and fills in the string.
+ * We print that with a call to prt_entry().
+ *
+ * @param[in] fp  the file pointer to write to
+ * @param[in] od  the option descriptor with a bit mask value type
+ */
 static void
-prt_set_arg(FILE * fp, tOptDesc * pOD)
+prt_set_arg(FILE * fp, tOptDesc * od)
 {
-    uintptr_t val = pOD->optArg.argEnum;
+    uintptr_t val = od->optArg.argEnum;
 
     /*
      *  This is a magic incantation that will convert the
      *  bit flag values back into a string suitable for printing.
      */
-    (*(pOD->pOptProc))(OPTPROC_RETURN_VALNAME, pOD);
-    prt_entry(fp, pOD, (void*)(pOD->optArg.argString));
+    (*(od->pOptProc))(OPTPROC_RETURN_VALNAME, od);
+    prt_entry(fp, od, (void*)(od->optArg.argString));
 
-    if (pOD->optArg.argString != NULL) {
+    if (od->optArg.argString != NULL) {
         /*
          *  set membership strings get allocated
          */
-        AGFREE((void*)pOD->optArg.argString);
-        pOD->fOptState &= ~OPTST_ALLOC_ARG;
+        AGFREE((void*)od->optArg.argString);
+        od->fOptState &= ~OPTST_ALLOC_ARG;
     }
 
-    pOD->optArg.argEnum = val;
+    od->optArg.argEnum = val;
 }
 
+/**
+ * figure out what the option file name argument is.
+ * If one can be found, call prt_entry() to emit it.
+ *
+ * @param[in] fp   the file pointer to write to.
+ * @param[in] od   the option descriptor with a bit mask value type
+ * @param[in] opts the program options descriptor
+ */
 static void
-prt_file_arg(FILE * fp, tOptDesc * pOD, tOptions* pOpts)
+prt_file_arg(FILE * fp, tOptDesc * od, tOptions * opts)
 {
     /*
      *  If the cookie is not NULL, then it has the file name, period.
      *  Otherwise, if we have a non-NULL string argument, then....
      */
-    if (pOD->optCookie != NULL)
-        prt_entry(fp, pOD, pOD->optCookie);
+    if (od->optCookie != NULL)
+        prt_entry(fp, od, od->optCookie);
 
-    else if (HAS_originalOptArgArray(pOpts)) {
+    else if (HAS_originalOptArgArray(opts)) {
         char const * orig =
-            pOpts->originalOptArgArray[pOD->optIndex].argString;
+            opts->originalOptArgArray[od->optIndex].argString;
 
-        if (pOD->optArg.argString == orig)
+        if (od->optArg.argString == orig)
             return;
 
-        prt_entry(fp, pOD, pOD->optArg.argString);
+        prt_entry(fp, od, od->optArg.argString);
     }
 }
 
-
 /*=export_func  optionSaveFile
  *
  * what:  saves the option state to a file
  *
- * arg:   tOptions*,   pOpts,  program options descriptor
+ * arg:   tOptions*,   opts,  program options descriptor
  *
  * doc:
  *
@@ -675,11 +717,11 @@ prt_file_arg(FILE * fp, tOptDesc * pOD, tOptions* pOpts)
  * will be printed to @code{stderr} and the routine will return.
 =*/
 void
-optionSaveFile(tOptions* pOpts)
+optionSaveFile(tOptions * opts)
 {
-    tOptDesc* pOD;
-    int       ct;
-    FILE *    fp = open_sv_file(pOpts);
+    tOptDesc *  od;
+    int         ct;
+    FILE *      fp = open_sv_file(opts);
 
     if (fp == NULL)
         return;
@@ -687,8 +729,8 @@ optionSaveFile(tOptions* pOpts)
     /*
      *  FOR each of the defined options, ...
      */
-    ct  = pOpts->presetOptCt;
-    pOD = pOpts->pOptDesc;
+    ct = opts->presetOptCt;
+    od = opts->pOptDesc;
     do  {
         tOptDesc * p;
 
@@ -701,14 +743,14 @@ optionSaveFile(tOptions* pOpts)
          *  Equivalenced options get picked up when the equivalenced-to
          *  option is processed.
          */
-        if (UNUSED_OPT(pOD))
+        if (UNUSED_OPT(od))
             continue;
 
-        if ((pOD->fOptState & OPTST_DO_NOT_SAVE_MASK) != 0)
+        if ((od->fOptState & OPTST_DO_NOT_SAVE_MASK) != 0)
             continue;
 
-        if (  (pOD->optEquivIndex != NO_EQUIVALENT)
-           && (pOD->optEquivIndex != pOD->optIndex))
+        if (  (od->optEquivIndex != NO_EQUIVALENT)
+           && (od->optEquivIndex != od->optIndex))
             continue;
 
         /*
@@ -716,12 +758,12 @@ optionSaveFile(tOptions* pOpts)
          *  but the actual option argument type comes from the original
          *  option descriptor.  Be careful!
          */
-        p = ((pOD->fOptState & OPTST_EQUIVALENCE) != 0)
-            ? (pOpts->pOptDesc + pOD->optActualIndex) : pOD;
+        p = ((od->fOptState & OPTST_EQUIVALENCE) != 0)
+            ? (opts->pOptDesc + od->optActualIndex) : od;
 
-        switch (OPTST_GET_ARGTYPE(pOD->fOptState)) {
+        switch (OPTST_GET_ARGTYPE(od->fOptState)) {
         case OPARG_TYPE_NONE:
-            prt_no_arg_opt(fp, p, pOD);
+            prt_no_arg_opt(fp, p, od);
             break;
 
         case OPARG_TYPE_NUMERIC:
@@ -749,17 +791,18 @@ optionSaveFile(tOptions* pOpts)
             break;
 
         case OPARG_TYPE_FILE:
-            prt_file_arg(fp, p, pOpts);
+            prt_file_arg(fp, p, opts);
             break;
 
         default:
             break; /* cannot handle - skip it */
         }
-    } while (pOD++, (--ct > 0));
+    } while (od++, (--ct > 0));
 
     fclose(fp);
 }
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index a05588d..0d70e34 100644 (file)
@@ -2,13 +2,15 @@
 /*
  * \file sort.c
  *
- * Time-stamp:      "2011-05-24 18:07:14 bkorb"
- *
  *  This module implements argument sorting.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /* = = = START-STATIC-FORWARD = = = */
 static tSuccess
-mustHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
-              char** ppzOpts, int* pOptsIdx);
+must_arg(tOptions * opts, char * arg_txt, tOptState * pOS,
+         char ** opt_txt, uint32_t * opt_idx);
 
 static tSuccess
-mayHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
-             char** ppzOpts, int* pOptsIdx);
+maybe_arg(tOptions * opts, char * arg_txt, tOptState * pOS,
+          char ** opt_txt, uint32_t * opt_idx);
 
 static tSuccess
-checkShortOpts(tOptions* pOpts, char* pzArg, tOptState* pOS,
-               char** ppzOpts, int* pOptsIdx);
+short_opt_ck(tOptions * opts, char * arg_txt, tOptState * pOS,
+             char ** opt_txt, uint32_t * opt_idx);
 /* = = = END-STATIC-FORWARD = = = */
 
 /*
- *  "mustHandleArg" and "mayHandleArg" are really similar.  The biggest
+ *  "must_arg" and "maybe_arg" are really similar.  The biggest
  *  difference is that "may" will consume the next argument only if it
  *  does not start with a hyphen and "must" will consume it, hyphen or not.
  */
 static tSuccess
-mustHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
-              char** ppzOpts, int* pOptsIdx)
+must_arg(tOptions * opts, char * arg_txt, tOptState * pOS,
+         char ** opt_txt, uint32_t * opt_idx)
 {
     /*
      *  An option argument is required.  Long options can either have
@@ -61,7 +63,7 @@ mustHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
          *  See if an arg string follows the flag character.  If not,
          *  the next arg must be the option argument.
          */
-        if (*pzArg != NUL)
+        if (*arg_txt != NUL)
             return SUCCESS;
         break;
 
@@ -77,16 +79,16 @@ mustHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
     default:
         return FAILURE;
     }
-    if (pOpts->curOptIdx >= pOpts->origArgCt)
+    if (opts->curOptIdx >= opts->origArgCt)
         return FAILURE;
 
-    ppzOpts[ (*pOptsIdx)++ ] = pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+    opt_txt[ (*opt_idx)++ ] = opts->origArgVect[ (opts->curOptIdx)++ ];
     return SUCCESS;
 }
 
 static tSuccess
-mayHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
-             char** ppzOpts, int* pOptsIdx)
+maybe_arg(tOptions * opts, char * arg_txt, tOptState * pOS,
+          char ** opt_txt, uint32_t * opt_idx)
 {
     /*
      *  An option argument is optional.
@@ -98,7 +100,7 @@ mayHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
          *  THEN see if there is another argument.  If so and if it
          *  does *NOT* start with a hyphen, then it is the option arg.
          */
-        if (*pzArg != NUL)
+        if (*arg_txt != NUL)
             return SUCCESS;
         break;
 
@@ -114,12 +116,12 @@ mayHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
     default:
         return FAILURE;
     }
-    if (pOpts->curOptIdx >= pOpts->origArgCt)
+    if (opts->curOptIdx >= opts->origArgCt)
         return PROBLEM;
 
-    pzArg = pOpts->origArgVect[ pOpts->curOptIdx ];
-    if (*pzArg != '-')
-        ppzOpts[ (*pOptsIdx)++ ] = pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+    arg_txt = opts->origArgVect[ opts->curOptIdx ];
+    if (*arg_txt != '-')
+        opt_txt[ (*opt_idx)++ ] = opts->origArgVect[ (opts->curOptIdx)++ ];
     return SUCCESS;
 }
 
@@ -128,31 +130,31 @@ mayHandleArg(tOptions* pOpts, char* pzArg, tOptState* pOS,
  *  does or may take an argument, the do the argument processing and leave.
  */
 static tSuccess
-checkShortOpts(tOptions* pOpts, char* pzArg, tOptState* pOS,
-               char** ppzOpts, int* pOptsIdx)
+short_opt_ck(tOptions * opts, char * arg_txt, tOptState * pOS,
+             char ** opt_txt, uint32_t * opt_idx)
 {
-    while (*pzArg != NUL) {
-        if (FAILED(opt_find_short(pOpts, (tAoUC)*pzArg, pOS)))
+    while (*arg_txt != NUL) {
+        if (FAILED(opt_find_short(opts, (uint8_t)*arg_txt, pOS)))
             return FAILURE;
 
         /*
          *  See if we can have an arg.
          */
         if (OPTST_GET_ARGTYPE(pOS->pOD->fOptState) == OPARG_TYPE_NONE) {
-            pzArg++;
+            arg_txt++;
 
         } else if (pOS->pOD->fOptState & OPTST_ARG_OPTIONAL) {
             /*
              *  Take an argument if it is not attached and it does not
              *  start with a hyphen.
              */
-            if (pzArg[1] != NUL)
+            if (arg_txt[1] != NUL)
                 return SUCCESS;
 
-            pzArg = pOpts->origArgVect[ pOpts->curOptIdx ];
-            if (*pzArg != '-')
-                ppzOpts[ (*pOptsIdx)++ ] =
-                    pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+            arg_txt = opts->origArgVect[ opts->curOptIdx ];
+            if (*arg_txt != '-')
+                opt_txt[ (*opt_idx)++ ] =
+                    opts->origArgVect[ (opts->curOptIdx)++ ];
             return SUCCESS;
 
         } else {
@@ -160,11 +162,11 @@ checkShortOpts(tOptions* pOpts, char* pzArg, tOptState* pOS,
              *  IF we need another argument, be sure it is there and
              *  take it.
              */
-            if (pzArg[1] == NUL) {
-                if (pOpts->curOptIdx >= pOpts->origArgCt)
+            if (arg_txt[1] == NUL) {
+                if (opts->curOptIdx >= opts->origArgCt)
                     return FAILURE;
-                ppzOpts[ (*pOptsIdx)++ ] =
-                    pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+                opt_txt[ (*opt_idx)++ ] =
+                    opts->origArgVect[ (opts->curOptIdx)++ ];
             }
             return SUCCESS;
         }
@@ -177,12 +179,12 @@ checkShortOpts(tOptions* pOpts, char* pzArg, tOptState* pOS,
  *  then this routine will to the trick.
  */
 LOCAL void
-optionSort(tOptions* pOpts)
+optionSort(tOptions * opts)
 {
-    char** ppzOpts;
-    char** ppzOpds;
-    int    optsIdx = 0;
-    int    opdsIdx = 0;
+    char **  opt_txt;
+    char **  ppzOpds;
+    uint32_t optsIdx = 0;
+    uint32_t opdsIdx = 0;
 
     tOptState os = OPTSTATE_INITIALIZER(DEFINED);
 
@@ -190,24 +192,24 @@ optionSort(tOptions* pOpts)
      *  Disable for POSIX conformance, or if there are no operands.
      */
     if (  (getenv("POSIXLY_CORRECT") != NULL)
-       || NAMED_OPTS(pOpts))
+       || NAMED_OPTS(opts))
         return;
 
     /*
      *  Make sure we can allocate two full-sized arg vectors.
      */
-    ppzOpts = malloc(pOpts->origArgCt * sizeof(char*));
-    if (ppzOpts == NULL)
+    opt_txt = malloc(opts->origArgCt * sizeof(char*));
+    if (opt_txt == NULL)
         goto exit_no_mem;
 
-    ppzOpds = malloc(pOpts->origArgCt * sizeof(char*));
+    ppzOpds = malloc(opts->origArgCt * sizeof(char*));
     if (ppzOpds == NULL) {
-        free(ppzOpts);
+        free(opt_txt);
         goto exit_no_mem;
     }
 
-    pOpts->curOptIdx = 1;
-    pOpts->pzCurOpt  = NULL;
+    opts->curOptIdx = 1;
+    opts->pzCurOpt  = NULL;
 
     /*
      *  Now, process all the options from our current position onward.
@@ -215,30 +217,30 @@ optionSort(tOptions* pOpts)
      *  non-standard programs that require it.)
      */
     for (;;) {
-        char* pzArg;
+        char * arg_txt;
         tSuccess res;
 
         /*
          *  If we're out of arguments, we're done.  Join the option and
          *  operand lists into the original argument vector.
          */
-        if (pOpts->curOptIdx >= pOpts->origArgCt) {
+        if (opts->curOptIdx >= opts->origArgCt) {
             errno = 0;
             goto joinLists;
         }
 
-        pzArg = pOpts->origArgVect[ pOpts->curOptIdx ];
-        if (*pzArg != '-') {
-            ppzOpds[ opdsIdx++ ] = pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+        arg_txt = opts->origArgVect[ opts->curOptIdx ];
+        if (*arg_txt != '-') {
+            ppzOpds[ opdsIdx++ ] = opts->origArgVect[ (opts->curOptIdx)++ ];
             continue;
         }
 
-        switch (pzArg[1]) {
+        switch (arg_txt[1]) {
         case NUL:
             /*
              *  A single hyphen is an operand.
              */
-            ppzOpds[ opdsIdx++ ] = pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+            ppzOpds[ opdsIdx++ ] = opts->origArgVect[ (opts->curOptIdx)++ ];
             continue;
 
         case '-':
@@ -246,12 +248,12 @@ optionSort(tOptions* pOpts)
              *  Two consecutive hypens.  Put them on the options list and then
              *  _always_ force the remainder of the arguments to be operands.
              */
-            if (pzArg[2] == NUL) {
-                ppzOpts[ optsIdx++ ] =
-                    pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+            if (arg_txt[2] == NUL) {
+                opt_txt[ optsIdx++ ] =
+                    opts->origArgVect[ (opts->curOptIdx)++ ];
                 goto restOperands;
             }
-            res = opt_find_long(pOpts, pzArg+2, &os);
+            res = opt_find_long(opts, arg_txt+2, &os);
             break;
 
         default:
@@ -260,10 +262,10 @@ optionSort(tOptions* pOpts)
              *  option processing.  Otherwise the character must be a
              *  short (i.e. single character) option.
              */
-            if ((pOpts->fOptSet & OPTPROC_SHORTOPT) == 0) {
-                res = opt_find_long(pOpts, pzArg+1, &os);
+            if ((opts->fOptSet & OPTPROC_SHORTOPT) == 0) {
+                res = opt_find_long(opts, arg_txt+1, &os);
             } else {
-                res = opt_find_short(pOpts, (tAoUC)pzArg[1], &os);
+                res = opt_find_short(opts, (uint8_t)arg_txt[1], &os);
             }
             break;
         }
@@ -277,7 +279,7 @@ optionSort(tOptions* pOpts)
          *  Next, we have to see if we need to pull another argument to be
          *  used as the option argument.
          */
-        ppzOpts[ optsIdx++ ] = pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+        opt_txt[ optsIdx++ ] = opts->origArgVect[ (opts->curOptIdx)++ ];
 
         if (OPTST_GET_ARGTYPE(os.pOD->fOptState) == OPARG_TYPE_NONE) {
             /*
@@ -286,20 +288,20 @@ optionSort(tOptions* pOpts)
              *  of the argument string.
              */
             if (  (os.optType == TOPT_SHORT)
-               && FAILED(checkShortOpts(pOpts, pzArg+2, &os, ppzOpts,
-                                        &optsIdx)) )  {
+               && FAILED(short_opt_ck(opts, arg_txt+2, &os, opt_txt,
+                                      &optsIdx)) )  {
                 errno = EINVAL;
                 goto freeTemps;
             }
 
         } else if (os.pOD->fOptState & OPTST_ARG_OPTIONAL) {
-            switch (mayHandleArg(pOpts, pzArg+2, &os, ppzOpts, &optsIdx)) {
+            switch (maybe_arg(opts, arg_txt+2, &os, opt_txt, &optsIdx)) {
             case FAILURE: errno = EIO; goto freeTemps;
             case PROBLEM: errno = 0;   goto joinLists;
             }
 
         } else {
-            switch (mustHandleArg(pOpts, pzArg+2, &os, ppzOpts, &optsIdx)) {
+            switch (must_arg(opts, arg_txt+2, &os, opt_txt, &optsIdx)) {
             case PROBLEM:
             case FAILURE: errno = EIO; goto freeTemps;
             }
@@ -307,18 +309,19 @@ optionSort(tOptions* pOpts)
     } /* for (;;) */
 
  restOperands:
-    while (pOpts->curOptIdx < pOpts->origArgCt)
-        ppzOpds[ opdsIdx++ ] = pOpts->origArgVect[ (pOpts->curOptIdx)++ ];
+    while (opts->curOptIdx < opts->origArgCt)
+        ppzOpds[ opdsIdx++ ] = opts->origArgVect[ (opts->curOptIdx)++ ];
 
  joinLists:
     if (optsIdx > 0)
-        memcpy(pOpts->origArgVect + 1, ppzOpts, optsIdx * sizeof(char*));
+        memcpy(opts->origArgVect + 1, opt_txt,
+               (size_t)optsIdx * sizeof(char*));
     if (opdsIdx > 0)
-        memcpy(pOpts->origArgVect + 1 + optsIdx, ppzOpds,
-               opdsIdx * sizeof(char*));
+        memcpy(opts->origArgVect + 1 + optsIdx, ppzOpds,
+               (size_t)opdsIdx * sizeof(char*));
 
  freeTemps:
-    free(ppzOpts);
+    free(opt_txt);
     free(ppzOpds);
     return;
 
@@ -327,7 +330,8 @@ optionSort(tOptions* pOpts)
     return;
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 094b2a1..dc73702 100644 (file)
@@ -2,14 +2,16 @@
 /**
  * \file stack.c
  *
- *  Time-stamp:      "2012-03-31 13:16:41 bkorb"
- *
  *  This is a special option processing routine that will save the
  *  argument to an option in a FIFO queue.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 #ifdef WITH_LIBREGEX
@@ -49,8 +51,12 @@ optionUnstackArg(tOptions * pOpts, tOptDesc * pOptDesc)
 
     (void)pOpts;
 
+    if (pOpts <= OPTPROC_EMIT_LIMIT)
+        return;
+
     if ((pOptDesc->fOptState & OPTST_RESET) != 0)
         return;
+
     pAL = (tArgList*)pOptDesc->optCookie;
 
     /*
@@ -127,8 +133,8 @@ optionUnstackArg(tOptions * pOpts, tOptDesc * pOptDesc)
          *  we are keeping a define.
          */
         for (i = 0, dIdx = 0, ct = pAL->useCt; --ct >= 0; i++) {
-            tCC*      pzSrc = pAL->apzArgs[ i ];
-            char*     pzEq  = strchr(pzSrc, '=');
+            const char ** pzSrc = pAL->apzArgs[ i ];
+            char *        pzEq  = strchr(pzSrc, '=');
 
             if (pzEq != NULL)
                 *pzEq = NUL;
@@ -205,7 +211,7 @@ addArgListEntry(void** ppAL, void* entry)
          *  The base structure contains space for MIN_ARG_ALLOC_CT
          *  pointers.  We subtract it off to find our augment size.
          */
-        sz += sizeof(char*) * (pAL->allocCt - MIN_ARG_ALLOC_CT);
+        sz += sizeof(char*) * ((size_t)pAL->allocCt - MIN_ARG_ALLOC_CT);
         pAL = (tArgList*)AGREALOC((void*)pAL, sz, "expanded opt arg stack");
         if (pAL == NULL)
             return;
@@ -234,7 +240,8 @@ optionStackArg(tOptions * pOpts, tOptDesc * pOD)
 {
     char * pz;
 
-    (void)pOpts;
+    if (pOpts <= OPTPROC_EMIT_LIMIT)
+        return;
 
     if ((pOD->fOptState & OPTST_RESET) != 0) {
         tArgList* pAL = (void*)pOD->optCookie;
@@ -255,7 +262,8 @@ optionStackArg(tOptions * pOpts, tOptDesc * pOD)
         addArgListEntry(&(pOD->optCookie), (void*)pz);
     }
 }
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 54a063a..8fae58f 100644 (file)
@@ -2,8 +2,6 @@
 /**
  * \file streqvcmp.c
  *
- * Time-stamp:      "2012-03-31 13:17:39 bkorb"
- *
  *  String Equivalence Comparison
  *
  *  These routines allow any character to be mapped to any other
@@ -11,9 +9,13 @@
  *  the characters "-", "_" and "^" all need to be equivalent
  *  (because they are treated so by different development environments).
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  *
  * This array is designed for mapping upper and lower case letter
  * together for a case independent comparison.  The mappings are
@@ -98,12 +100,19 @@ static unsigned char charmap[] = {
  * err:  none checked.  Caller responsible for seg faults.
 =*/
 int
-strneqvcmp(tCC* s1, tCC* s2, int ct)
+strneqvcmp(char const * s1, char const * s2, int ct)
 {
     for (; ct > 0; --ct) {
         unsigned char u1 = (unsigned char) *s1++;
         unsigned char u2 = (unsigned char) *s2++;
-        int dif = charmap[ u1 ] - charmap[ u2 ];
+        int dif;
+        if (u1 == u2) {
+            if (u1 == NUL)
+                return 0;
+            continue;
+        }
+
+        dif = charmap[ u1 ] - charmap[ u2 ];
 
         if (dif != 0)
             return dif;
@@ -137,12 +146,19 @@ strneqvcmp(tCC* s1, tCC* s2, int ct)
  * err:  none checked.  Caller responsible for seg faults.
 =*/
 int
-streqvcmp(tCC* s1, tCC* s2)
+streqvcmp(char const * s1, char const * s2)
 {
     for (;;) {
         unsigned char u1 = (unsigned char) *s1++;
         unsigned char u2 = (unsigned char) *s2++;
-        int dif = charmap[ u1 ] - charmap[ u2 ];
+        int dif;
+        if (u1 == u2) {
+            if (u1 == NUL)
+                return 0;
+            continue;
+        }
+
+        dif = charmap[ u1 ] - charmap[ u2 ];
 
         if (dif != 0)
             return dif;
@@ -157,8 +173,8 @@ streqvcmp(tCC* s1, tCC* s2)
  *
  * what: Set the character mappings for the streqv functions
  *
- * arg:  + char + From + Input character +
- * arg:  + char + To   + Mapped-to character +
+ * arg:  + char + from + Input character +
+ * arg:  + char + to   + Mapped-to character +
  * arg:  + int  + ct   + compare length +
  *
  * doc:
@@ -182,7 +198,7 @@ streqvcmp(tCC* s1, tCC* s2)
  * err:  none.
 =*/
 void
-streqvmap(char From, char To, int ct)
+streqvmap(char from, char to, int ct)
 {
     if (ct == 0) {
         ct = sizeof(charmap) - 1;
@@ -192,14 +208,14 @@ streqvmap(char From, char To, int ct)
     }
 
     else {
-        unsigned int chTo   = (int)To   & 0xFF;
-        unsigned int chFrom = (int)From & 0xFF;
+        unsigned int i_to   = (int)to   & 0xFF;
+        unsigned int i_from = (int)from & 0xFF;
 
         do  {
-            charmap[chFrom] = (unsigned char)chTo;
-            chFrom++;
-            chTo++;
-            if ((chFrom >= sizeof(charmap)) || (chTo >= sizeof(charmap)))
+            charmap[i_from] = (unsigned char)i_to;
+            i_from++;
+            i_to++;
+            if ((i_from >= sizeof(charmap)) || (i_to >= sizeof(charmap)))
                 break;
         } while (--ct > 0);
     }
@@ -225,7 +241,7 @@ void
 strequate(char const* s)
 {
     if ((s != NULL) && (*s != NUL)) {
-        unsigned char equiv = (unsigned)*s;
+        unsigned char equiv = (unsigned char)*s;
         while (*s != NUL)
             charmap[ (unsigned)*(s++) ] = equiv;
     }
@@ -258,7 +274,8 @@ strtransform(char* d, char const* s)
     } while (*(s++) != NUL);
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 4a7aa1a..8b117c0 100644 (file)
@@ -3,11 +3,13 @@
  *
  * Map a text file, ensuring the text always has an ending NUL byte.
  *
- * Time-stamp:      "2012-01-29 09:40:21 bkorb"
- *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 #if defined(HAVE_MMAP)
 #  ifndef      MAP_ANONYMOUS
@@ -97,8 +99,7 @@ load_text_file(tmap_info_t * mapinfo, char const * pzFile)
             ssize_t rdct = read(mapinfo->txt_fd, pz, sz);
             if (rdct <= 0) {
                 mapinfo->txt_errno = errno;
-                fprintf(stderr, zFSErrReadFile,
-                        errno, strerror(errno), pzFile);
+                fserr_warn("libopts", "read", pzFile);
                 free(mapinfo->txt_data);
                 return;
             }
@@ -113,7 +114,7 @@ load_text_file(tmap_info_t * mapinfo, char const * pzFile)
     mapinfo->txt_errno   = 0;
 
 #else /* HAVE mmap */
-    size_t const pgsz = GETPAGESIZE();
+    size_t const pgsz = (size_t)GETPAGESIZE();
     void * map_addr   = NULL;
 
     (void)pzFile;
@@ -189,7 +190,7 @@ validate_mmap(char const * fname, int prot, int flags, tmap_info_t * mapinfo)
             return;
         }
 
-        mapinfo->txt_size = sb.st_size;
+        mapinfo->txt_size = (size_t)sb.st_size;
     }
 
     /*
@@ -361,7 +362,8 @@ text_munmap(tmap_info_t * mi)
     return mi->txt_errno;
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 7348bdb..6cf7faa 100644 (file)
@@ -2,11 +2,13 @@
 /**
  * \file time.c
  *
- *  Time-stamp:      "2012-01-29 12:52:31 bkorb"
- *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /*=export_func  optionTimeVal
@@ -40,6 +42,9 @@ optionTimeVal(tOptions * pOpts, tOptDesc * pOD)
 {
     time_t val;
 
+    if (pOpts <= OPTPROC_EMIT_LIMIT)
+        return;
+
     if ((pOD->fOptState & OPTST_RESET) != 0)
         return;
 
@@ -55,7 +60,7 @@ optionTimeVal(tOptions * pOpts, tOptDesc * pOD)
         pOD->fOptState &= ~OPTST_ALLOC_ARG;
     }
 
-    pOD->optArg.argInt = (unsigned long)val;
+    pOD->optArg.argInt = (long)val;
 }
 
 /*=export_func  optionTimeDate
@@ -72,6 +77,9 @@ void
 optionTimeDate(tOptions * pOpts, tOptDesc * pOD)
 {
 #if defined(HAVE_GETDATE_R) && defined(HAVE_PUTENV)
+    if (pOpts <= OPTPROC_EMIT_LIMIT)
+        return;
+
     if ((! HAS_pzPkgDataDir(pOpts)) || (pOpts->pzPkgDataDir == NULL))
         goto default_action;
 
@@ -121,14 +129,15 @@ optionTimeDate(tOptions * pOpts, tOptDesc * pOD)
     }
     return;
 
-default_action:
+ default_action:
 
 #endif
     optionTimeVal(pOpts, pOD);
     if (pOD->optArg.argInt != BAD_TIME)
-        pOD->optArg.argInt += (unsigned long)time(NULL);
+        pOD->optArg.argInt += (long)time(NULL);
 }
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index 9563713..15e7cb9 100644 (file)
@@ -1,10 +1,15 @@
+/** \file tokenize.c
+ *
+ *  Tokenize a string, accommodating quoted strings.
+ *
+ * @addtogroup autoopts
+ * @{
+ */
 /*
  *  This file defines the string_tokenize interface
- * Time-stamp:      "2012-03-04 13:23:50 bkorb"
- *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 #include <errno.h>
@@ -145,8 +150,8 @@ alloc_token_list(char const * str)
             pz = SPN_WHITESPACE_CHARS(pz);
         } while (*pz != NUL);
 
-        res = malloc(sizeof(*res) + (pz - str)
-                     + (max_token_ct * sizeof(ch_t*)));
+        res = malloc(sizeof(*res) + (size_t)(pz - str)
+                     + ((size_t)max_token_ct * sizeof(ch_t*)));
     }
 
     if (res == NULL)
@@ -324,7 +329,8 @@ main(int argc, char** argv)
 }
 #endif
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
index ebdc46a..54ae86b 100644 (file)
@@ -2,11 +2,13 @@
 /*
  * \file usage.c
  *
- * Time-stamp:      "2012-03-31 19:19:26 bkorb"
- *
  *  This module implements the default usage procedure for
  *  Automated Options.  It may be overridden, of course.
  *
+ * @addtogroup autoopts
+ * @{
+ */
+/*
  *  Sort options:
     --start=END-[S]TATIC-FORWARD --patt='^/\*($|[^:])' \
     --out=xx.c key='^[a-zA-Z0-9_]+\(' --trail='^/\*:' \
@@ -16,7 +18,7 @@
 /*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 #define OPTPROC_L_N_S  (OPTPROC_LONGOPT | OPTPROC_SHORTOPT)
+#if defined(ENABLE_NLS) && defined(HAVE_LIBINTL_H)
+# include <libintl.h>
+#endif
+
+typedef struct {
+    size_t          fnm_len;
+    uint32_t        fnm_mask;
+    char const *    fnm_name;
+} ao_flag_names_t;
+
+/**
+ * Automated Options Usage Flags.
+ * NB: no entry may be a prefix of another entry
+ */
+#define AOFLAG_TABLE                            \
+    _aof_(gnu,             OPTPROC_GNUUSAGE )   \
+    _aof_(autoopts,        ~OPTPROC_GNUUSAGE)   \
+    _aof_(no_misuse_usage, OPTPROC_MISUSE   )   \
+    _aof_(misuse_usage,    ~OPTPROC_MISUSE  )   \
+    _aof_(compute,         OPTPROC_COMPUTE  )
+
+#define _aof_(_n, _f)   AOUF_ ## _n ## _ID,
+typedef enum { AOFLAG_TABLE AOUF_COUNT } ao_flag_id_t;
+#undef  _aof_
+
+#define _aof_(_n, _f)   AOUF_ ## _n = (1 << AOUF_ ## _n ## _ID),
+typedef enum { AOFLAG_TABLE } ao_flags_t;
+#undef  _aof_
 
 /* = = = START-STATIC-FORWARD = = = */
+static unsigned int
+parse_usage_flags(ao_flag_names_t const * fnt, char const * txt);
+
 static inline bool
 do_gnu_usage(tOptions * pOpts);
 
@@ -45,133 +78,169 @@ static inline bool
 skip_misuse_usage(tOptions * pOpts);
 
 static void
+print_offer_usage(tOptions * opts);
+
+static void
 print_usage_details(tOptions * opts, int exit_code);
 
 static void
-prt_conflicts(tOptions * pOptions, tOptDesc * pOD);
+print_one_paragraph(char const * text, bool plain, FILE * fp);
+
+static void
+prt_conflicts(tOptions * opts, tOptDesc * od);
 
 static void
-prt_one_vendor(tOptions * pOptions, tOptDesc * pOD,
-               arg_types_t * pAT, char const * usefmt);
+prt_one_vendor(tOptions *    opts,  tOptDesc *   od,
+               arg_types_t * argtp, char const * usefmt);
 
 static void
-prt_vendor_opts(tOptions * pOpts, char const * pOptTitle);
+prt_vendor_opts(tOptions * opts, char const * title);
 
 static void
-prt_extd_usage(tOptions * pOpts, tOptDesc * pOD,
-               char const * pOptTitle);
+prt_extd_usage(tOptions * opts, tOptDesc * od, char const * title);
 
 static void
-prt_ini_list(char const * const * papz, bool * pInitIntro,
-             char const * pzRc, char const * pzPN);
+prt_ini_list(char const * const * papz, bool * need_intro,
+             char const * ini_file, char const * path_nm);
 
 static void
-prt_preamble(tOptions * pOptions, tOptDesc * pOD, arg_types_t * pAT);
+prt_preamble(tOptions * opts, tOptDesc * od, arg_types_t * at);
 
 static void
-prt_one_usage(tOptions * pOptions, tOptDesc * pOD, arg_types_t * pAT);
+prt_one_usage(tOptions * opts, tOptDesc * od, arg_types_t * at);
 
 static void
-prt_opt_usage(tOptions * pOpts, int ex_code, char const * pOptTitle);
+prt_opt_usage(tOptions * opts, int ex_code, char const * title);
 
 static void
-prt_prog_detail(tOptions* pOptions);
+prt_prog_detail(tOptions * opts);
 
 static int
-setGnuOptFmts(tOptions* pOpts, tCC** ppT);
+setGnuOptFmts(tOptions * opts, char const ** ptxt);
 
 static int
-setStdOptFmts(tOptions* pOpts, tCC** ppT);
+setStdOptFmts(tOptions * opts, char const ** ptxt);
 /* = = = END-STATIC-FORWARD = = = */
 
-/*
- *  NB: no entry may be a prefix of another entry
+/**
+ * Parse the option usage flags string.  Any parsing problems yield
+ * a zero (no flags set) result.  This function is internal to
+ * set_usage_flags().
+ *
+ * @param[in] fnt   Flag Name Table - maps a name to a mask
+ * @param[in] txt   the text to process.  If NULL, then
+ *                  getenv("AUTOOPTS_USAGE") is used.
+ * @returns a bit mask indicating which \a fnt entries were found.
  */
-#define AOFLAG_TABLE                            \
-    _aof_(gnu,             OPTPROC_GNUUSAGE )   \
-    _aof_(autoopts,        ~OPTPROC_GNUUSAGE)   \
-    _aof_(no_misuse_usage, OPTPROC_MISUSE   )   \
-    _aof_(misuse_usage,    ~OPTPROC_MISUSE  )
-
-LOCAL void
-set_usage_flags(tOptions * opts, char const * flg_txt)
+static unsigned int
+parse_usage_flags(ao_flag_names_t const * fnt, char const * txt)
 {
-    typedef struct {
-        size_t          fnm_len;
-        uint32_t        fnm_mask;
-        char const *    fnm_name;
-    } ao_flag_names_t;
-
-#   define _aof_(_n, _f)   AOUF_ ## _n ## _ID,
-    typedef enum { AOFLAG_TABLE AOUF_COUNT } ao_flag_id_t;
-#   undef  _aof_
-
-#   define _aof_(_n, _f)   AOUF_ ## _n = (1 << AOUF_ ## _n ## _ID),
-    typedef enum { AOFLAG_TABLE } ao_flags_t;
-#   undef  _aof_
-
-#   define _aof_(_n, _f)   { sizeof(#_n)-1, _f, #_n },
-    static ao_flag_names_t const fn_table[AOUF_COUNT] = {
-        AOFLAG_TABLE
-    };
-#   undef  _aof_
+    unsigned int res = 0;
 
-    unsigned int flg = (ao_flags_t)0;
-
-    if (flg_txt == NULL) {
-        flg_txt = getenv("AUTOOPTS_USAGE");
-        if (flg_txt == NULL) return;
+    /*
+     * The text may be passed in.  If not, use the environment variable.
+     */
+    if (txt == NULL) {
+        txt = getenv("AUTOOPTS_USAGE");
+        if (txt == NULL)
+            return 0;
     }
 
-    flg_txt = SPN_WHITESPACE_CHARS(flg_txt);
-    if (*flg_txt == NUL)
-        return;
+    txt = SPN_WHITESPACE_CHARS(txt);
+    if (*txt == NUL)
+        return 0;
 
+    /*
+     * search the string for table entries.  We must understand everything
+     * we see in the string, or we give up on it.
+     */
     for (;;) {
         int ix = 0;
-        ao_flag_names_t const * fnt = fn_table;
 
         for (;;) {
-            if (strneqvcmp(flg_txt, fnt->fnm_name, fnt->fnm_len) == 0)
+            if (strneqvcmp(txt, fnt[ix].fnm_name, (int)fnt[ix].fnm_len) == 0)
                 break;
             if (++ix >= AOUF_COUNT)
-                return;
-            fnt++;
+                return 0;
         }
 
         /*
          *  Make sure we have a full match.  Look for whitespace,
          *  a comma, or a NUL byte.
          */
-        if (! IS_END_LIST_ENTRY_CHAR(flg_txt[fnt->fnm_len]))
-            return;
+        if (! IS_END_LIST_ENTRY_CHAR(txt[fnt[ix].fnm_len]))
+            return 0;
 
-        flg |= 1 << ix;
-        flg_txt = SPN_WHITESPACE_CHARS(flg_txt + fnt->fnm_len);
+        res |= 1U << ix;
+        txt = SPN_WHITESPACE_CHARS(txt + fnt[ix].fnm_len);
 
-        if (*flg_txt == NUL)
-            break;
+        switch (*txt) {
+        case NUL:
+            return res;
 
-        if (*flg_txt == ',') {
-            /*
-             *  skip the comma and following white space
-             */
-            flg_txt = SPN_WHITESPACE_CHARS(flg_txt + 1);
-            if (*flg_txt == NUL)
-                break;
+        case ',':
+            txt = SPN_WHITESPACE_CHARS(txt + 1);
+            /* Something must follow the comma */
+
+        default:
+            continue;
         }
     }
+}
 
+/**
+ * Set option usage flags.  Any parsing problems yield no changes to options.
+ * Three different bits may be fiddled: \a OPTPROC_GNUUSAGE, \a OPTPROC_MISUSE
+ * and \a OPTPROC_COMPUTE.
+ *
+ * @param[in] flg_txt   text to parse.  If NULL, then the AUTOOPTS_USAGE
+ *                      environment variable is parsed.
+ * @param[in,out] opts  the program option descriptor
+ */
+LOCAL void
+set_usage_flags(tOptions * opts, char const * flg_txt)
+{
+#   define _aof_(_n, _f)   { sizeof(#_n)-1, _f, #_n },
+    static ao_flag_names_t const fn_table[AOUF_COUNT] = {
+        AOFLAG_TABLE
+    };
+#   undef  _aof_
+
+    /*
+     * the flag word holds a bit for each selected table entry.
+     */
+    unsigned int flg = parse_usage_flags(fn_table, flg_txt);
+    if (flg == 0) return;
+
+    /*
+     * Ensure we do not have conflicting selections
+     */
     {
-        ao_flag_names_t const * fnm = fn_table;
+        static unsigned int const form_mask =
+            AOUF_gnu | AOUF_autoopts;
+        static unsigned int const misuse_mask =
+            AOUF_no_misuse_usage | AOUF_misuse_usage;
+        if (  ((flg & form_mask)   == form_mask)
+           || ((flg & misuse_mask) == misuse_mask) )
+            return;
+    }
 
-        while (flg != 0) {
+    /*
+     * Now fiddle the fOptSet bits, based on settings.
+     * The OPTPROC_LONGOPT bit is immutable, thus if it is set,
+     * then fnm points to a mask off mask.
+     */
+    {
+        ao_flag_names_t const * fnm = fn_table;
+        for (;;) {
             if ((flg & 1) != 0) {
                 if ((fnm->fnm_mask & OPTPROC_LONGOPT) != 0)
                      opts->fOptSet &= fnm->fnm_mask;
                 else opts->fOptSet |= fnm->fnm_mask;
             }
             flg >>= 1;
+            if (flg == 0)
+                break;
             fnm++;
         }
     }
@@ -230,28 +299,97 @@ optionOnlyUsage(tOptions * pOpts, int ex_code)
     prt_opt_usage(pOpts, ex_code, pOptTitle);
 
     fflush(option_usage_fp);
-    if (ferror(option_usage_fp) != 0) {
-        fputs(zOutputFail, stderr);
-        exit(EXIT_FAILURE);
+    if (ferror(option_usage_fp) != 0)
+        fserr_exit(pOpts->pzProgName, zwriting, (option_usage_fp == stderr)
+                   ? zstderr_name : zstdout_name);
+}
+
+LOCAL void
+ao_bug(char const * msg)
+{
+    fprintf(stderr, zao_bug_msg, msg);
+    exit(EX_SOFTWARE);
+}
+
+/**
+ * Print a message suggesting how to get help.
+ *
+ * @param[in] opts      the program options
+ */
+static void
+print_offer_usage(tOptions * opts)
+{
+    char help[24];
+
+    if (HAS_opt_usage_t(opts)) {
+        int ix = opts->presetOptCt;
+        tOptDesc * od = opts->pOptDesc + ix;
+        while (od->optUsage != AOUSE_HELP) {
+            if (++ix >= opts->optCt)
+                ao_bug(zmissing_help_msg);
+            od++;
+        }
+        switch (opts->fOptSet & (OPTPROC_LONGOPT | OPTPROC_SHORTOPT)) {
+        case OPTPROC_SHORTOPT:
+            help[0] = '-';
+            help[1] = od->optValue;
+            help[2] = NUL;
+            break;
+
+        case OPTPROC_LONGOPT:
+        case (OPTPROC_LONGOPT | OPTPROC_SHORTOPT):
+            help[0] = help[1] = '-';
+            strncpy(help + 2, od->pz_Name, 20);
+            break;
+        
+        case 0:
+            strncpy(help, od->pz_Name, 20);
+            break;
+        }
+
+    } else {
+        switch (opts->fOptSet & (OPTPROC_LONGOPT | OPTPROC_SHORTOPT)) {
+        case OPTPROC_SHORTOPT:
+            strcpy(help, "-h");
+            break;
+
+        case OPTPROC_LONGOPT:
+        case (OPTPROC_LONGOPT | OPTPROC_SHORTOPT):
+            strcpy(help, "--help");
+        
+        case 0:
+            strcpy(help, "help");
+            break;
+        }
     }
+
+    fprintf(option_usage_fp, zoffer_usage_fmt, opts->pzProgName, help);
 }
 
+/**
+ * Print information about each option.
+ *
+ * @param[in] opts      the program options
+ * @param[in] exit_code whether or not there was a usage error reported.
+ *                      used to select full usage versus abbreviated.
+ */
 static void
 print_usage_details(tOptions * opts, int exit_code)
 {
     {
         char const * pOptTitle = NULL;
+        int flen;
 
         /*
          *  Determine which header and which option formatting strings to use
          */
         if (do_gnu_usage(opts)) {
-            int flen = setGnuOptFmts(opts, &pOptTitle);
+            flen = setGnuOptFmts(opts, &pOptTitle);
             sprintf(line_fmt_buf, zFmtFmt, flen);
             fputc(NL, option_usage_fp);
         }
         else {
-            int flen = setStdOptFmts(opts, &pOptTitle);
+            flen = setStdOptFmts(opts, &pOptTitle);
             sprintf(line_fmt_buf, zFmtFmt, flen);
 
             /*
@@ -265,6 +403,9 @@ print_usage_details(tOptions * opts, int exit_code)
                 fputs(pOptTitle, option_usage_fp);
         }
 
+        flen = 4 - ((flen + 15) / 8);
+        if (flen > 0)
+            tab_skip_ct = flen;
         prt_opt_usage(opts, exit_code, pOptTitle);
     }
 
@@ -305,18 +446,150 @@ print_usage_details(tOptions * opts, int exit_code)
 
     fflush(option_usage_fp);
 
-    if (ferror(option_usage_fp) != 0) {
-        fputs(zOutputFail, stderr);
-        exit(EXIT_FAILURE);
+    if (ferror(option_usage_fp) != 0)
+        fserr_exit(opts->pzProgName, zwriting, (option_usage_fp == stderr)
+                   ? zstderr_name : zstdout_name);
+}
+
+static void
+print_one_paragraph(char const * text, bool plain, FILE * fp)
+{
+    if (plain) {
+#ifdef ENABLE_NLS
+#ifdef HAVE_LIBINTL_H
+#ifdef DEBUG_ENABLED
+#undef gettext
+#endif
+        char * buf = dgettext("libopts", text);
+        if (buf == text)
+            text = gettext(text);
+#endif /* HAVE_LIBINTL_H */
+#endif /* ENABLE_NLS */
+        fputs(text, fp);
+    }
+
+    else {
+        char const * t = optionQuoteString(text, LINE_SPLICE);
+        fprintf(fp, PUTS_FMT, t);
+        AGFREE((void *)t);
     }
 }
+/*=export_func  optionPrintParagraphs
+ * private:
+ *
+ * what:  Print a paragraph of usage text
+ * arg:   + char const * + text  + a block of text that has bee i18n-ed +
+ * arg:   + bool         + plain + false -> wrap text in fputs()        +
+ * arg:   + FILE *       + fp    + the stream file pointer for output   +
+ *
+ * doc:
+ *  This procedure is called in two contexts: when a full or short usage text
+ *  has been provided for display, and when autogen is assembling a list of
+ *  translatable texts in the optmain.tlib template.  In the former case, \a
+ *  plain is set to \a true, otherwise \a false.
+ *
+ *  Anything less than 256 characters in size is printed as a single unit.
+ *  Otherwise, paragraphs are detected.  A paragraph break is defined as just
+ *  before a non-empty line preceded by two newlines or a line that starts
+ *  with at least one space character but fewer than 8 space characters.
+ *  Lines indented with tabs or more than 7 spaces are considered continuation
+ *  lines.
+ *
+ *  If 'plain' is true, we are emitting text for a user to see.  So, if it is
+ *  true and NLS is not enabled, then just write the whole thing at once.
+=*/
+void
+optionPrintParagraphs(char const * text, bool plain, FILE * fp)
+{
+    size_t len = strlen(text);
+    char * buf;
+#ifndef ENABLE_NLS
+    if (plain || (len < 256))
+#else
+    if (len < 256)
+#endif
+    {
+        print_one_paragraph(text, plain, fp);
+        return;
+    }
+
+    AGDUPSTR(buf, text, "ppara");
+    text = buf;
 
+    for (;;) {
+        char * scan;
+
+        if (len < 256) {
+        done:
+            print_one_paragraph(buf, plain, fp);
+            break;
+        }
+        scan = buf;
+
+    try_longer:
+        scan = strchr(scan, NL);
+        if (scan == NULL)
+            goto done;
+
+        if ((scan - buf) < 40) {
+            scan++;
+            goto try_longer;
+        }
+
+        scan++;
+        if ((! isspace((int)*scan)) || (*scan == HT))
+            /*
+             * line starts with tab or non-whitespace --> continuation
+             */
+            goto try_longer;
+
+        if (*scan == NL) {
+            /*
+             * Double newline -> paragraph break
+             * Include all newlines in current paragraph.
+             */
+            while (*++scan == NL)  /*continue*/;
+
+        } else {
+            char * p = scan;
+            int   sp_ct = 0;
+
+            while (*p == ' ') {
+                if (++sp_ct >= 8) {
+                    /*
+                     * Too many spaces --> continuation line
+                     */
+                    scan = p;
+                    goto try_longer;
+                }
+                p++;
+            }
+        }
+
+        /*
+         * "scan" points to the first character of a paragraph or the
+         * terminating NUL byte.
+         */
+        {
+            char svch = *scan;
+            *scan = NUL;
+            print_one_paragraph(buf, plain, fp);
+            len -= scan - buf;
+            if (len <= 0)
+                break;
+            *scan = svch;
+            buf = scan;
+        }
+    }
+    AGFREE((void *)text);
+}
 
 /*=export_func  optionUsage
  * private:
  *
  * what:  Print usage text
- * arg:   + tOptions* + pOptions + program options descriptor +
+ * arg:   + tOptions* + opts + program options descriptor +
  * arg:   + int       + exitCode + exit code for calling exit(3) +
  *
  * doc:
@@ -329,12 +602,13 @@ print_usage_details(tOptions * opts, int exit_code)
  *  to stdout and the actual exit code will be "EXIT_SUCCESS".
 =*/
 void
-optionUsage(tOptions * pOptions, int usage_exit_code)
+optionUsage(tOptions * opts, int usage_exit_code)
 {
     int exit_code = (usage_exit_code == AO_EXIT_REQ_USAGE)
         ? EXIT_SUCCESS : usage_exit_code;
 
     displayEnum = false;
+    set_usage_flags(opts, NULL);
 
     /*
      *  Paged usage will preset option_usage_fp to an output file.
@@ -348,32 +622,42 @@ optionUsage(tOptions * pOptions, int usage_exit_code)
         char const * pz;
 
         if (exit_code == EXIT_SUCCESS) {
-            pz = (pOptions->structVersion >= 30 * 4096)
-                ? pOptions->pzFullUsage : NULL;
+            pz = (opts->structVersion >= 30 * 4096)
+                ? opts->pzFullUsage : NULL;
 
             if (option_usage_fp == NULL)
                 option_usage_fp = stdout;
         } else {
-            pz = (pOptions->structVersion >= 30 * 4096)
-                ? pOptions->pzShortUsage : NULL;
+            pz = (opts->structVersion >= 30 * 4096)
+                ? opts->pzShortUsage : NULL;
 
             if (option_usage_fp == NULL)
                 option_usage_fp = stderr;
         }
 
-        if (pz != NULL) {
-            fputs(pz, option_usage_fp);
-            exit(exit_code);
+        if (((opts->fOptSet & OPTPROC_COMPUTE) == 0) && (pz != NULL)) {
+            if ((opts->fOptSet & OPTPROC_TRANSLATE) != 0)
+                optionPrintParagraphs(pz, true, option_usage_fp);
+            else
+                fputs(pz, option_usage_fp);
+            goto flush_and_exit;
         }
     }
 
-    fprintf(option_usage_fp, pOptions->pzUsageTitle, pOptions->pzProgName);
-    set_usage_flags(pOptions, NULL);
+    fprintf(option_usage_fp, opts->pzUsageTitle, opts->pzProgName);
 
     if ((exit_code == EXIT_SUCCESS) ||
-        (! skip_misuse_usage(pOptions)))
+        (! skip_misuse_usage(opts)))
 
-        print_usage_details(pOptions, usage_exit_code);
+        print_usage_details(opts, usage_exit_code);
+    else
+        print_offer_usage(opts);
+    
+ flush_and_exit:
+    fflush(option_usage_fp);
+    if (ferror(option_usage_fp) != 0)
+        fserr_exit(opts->pzProgName, zwriting, (option_usage_fp == stdout)
+                   ? zstdout_name : zstderr_name);
 
     exit(exit_code);
 }
@@ -384,62 +668,74 @@ optionUsage(tOptions * pOptions, int usage_exit_code)
 /**
  * print option conflicts.
  *
- * @param pOptions the program option descriptor
- * @param pOD      the option descriptor
- * @param pAT      names of the option argument types
+ * @param opts the program option descriptor
+ * @param od   the option descriptor
  */
 static void
-prt_conflicts(tOptions * pOptions, tOptDesc * pOD)
+prt_conflicts(tOptions * opts, tOptDesc * od)
 {
-
-    fputs(zTabHyp, option_usage_fp);
+    const int * opt_no;
+    fputs(zTabHyp + tab_skip_ct, option_usage_fp);
 
     /*
      *  REQUIRED:
      */
-    if (pOD->pOptMust != NULL) {
-        const int* pOptNo = pOD->pOptMust;
+    if (od->pOptMust != NULL) {
+        opt_no = od->pOptMust;
 
-        fputs(zReqThese, option_usage_fp);
-        for (;;) {
-            fprintf(option_usage_fp, zTabout,
-                    pOptions->pOptDesc[*pOptNo].pz_Name);
-            if (*++pOptNo == NO_EQUIVALENT)
-                break;
+        if (opt_no[1] == NO_EQUIVALENT) {
+            fprintf(option_usage_fp, zReqOne,
+                    opts->pOptDesc[*opt_no].pz_Name);
+        } else {
+            fputs(zReqThese, option_usage_fp);
+            for (;;) {
+                fprintf(option_usage_fp, zTabout + tab_skip_ct,
+                        opts->pOptDesc[*opt_no].pz_Name);
+                if (*++opt_no == NO_EQUIVALENT)
+                    break;
+            }
         }
 
-        if (pOD->pOptCant != NULL)
-            fputs(zTabHypAnd, option_usage_fp);
+        if (od->pOptCant != NULL)
+            fputs(zTabHypAnd + tab_skip_ct, option_usage_fp);
     }
 
     /*
      *  CONFLICTS:
      */
-    if (pOD->pOptCant != NULL) {
-        const int* pOptNo = pOD->pOptCant;
+    if (od->pOptCant == NULL)
+        return;
 
-        fputs(zProhib, option_usage_fp);
-        for (;;) {
-            fprintf(option_usage_fp, zTabout,
-                    pOptions->pOptDesc[*pOptNo].pz_Name);
-            if (*++pOptNo == NO_EQUIVALENT)
-                break;
-        }
+    opt_no = od->pOptCant;
+
+    if (opt_no[1] == NO_EQUIVALENT) {
+        fprintf(option_usage_fp, zProhibOne,
+                opts->pOptDesc[*opt_no].pz_Name);
+        return;
+    }
+
+    fputs(zProhib, option_usage_fp);
+    for (;;) {
+        fprintf(option_usage_fp, zTabout + tab_skip_ct,
+                opts->pOptDesc[*opt_no].pz_Name);
+        if (*++opt_no == NO_EQUIVALENT)
+            break;
     }
 }
 
 /**
  *  Print the usage information for a single vendor option.
  *
- * @param pOpts     the program option descriptor
- * @param pOD       the option descriptor
- * @param pAT       names of the option argument types
+ * @param[in] opts    the program option descriptor
+ * @param[in] od      the option descriptor
+ * @param[in] argtp   names of the option argument types
+ * @param[in] usefmt  format for primary usage line
  */
 static void
-prt_one_vendor(tOptions * pOptions, tOptDesc * pOD,
-               arg_types_t * pAT, char const * usefmt)
+prt_one_vendor(tOptions *    opts,  tOptDesc *   od,
+               arg_types_t * argtp, char const * usefmt)
 {
-    prt_preamble(pOptions, pOD, pAT);
+    prt_preamble(opts, od, argtp);
 
     {
         char z[ 80 ];
@@ -450,52 +746,52 @@ prt_one_vendor(tOptions * pOptions, tOptDesc * pOD,
          *  when the option argument is required, base the type string on the
          *  argument type.
          */
-        if (pOD->fOptState & OPTST_ARG_OPTIONAL) {
-            pzArgType = pAT->pzOpt;
-
-        } else switch (OPTST_GET_ARGTYPE(pOD->fOptState)) {
-        case OPARG_TYPE_NONE:        pzArgType = pAT->pzNo;   break;
-        case OPARG_TYPE_ENUMERATION: pzArgType = pAT->pzKey;  break;
-        case OPARG_TYPE_FILE:        pzArgType = pAT->pzFile; break;
-        case OPARG_TYPE_MEMBERSHIP:  pzArgType = pAT->pzKeyL; break;
-        case OPARG_TYPE_BOOLEAN:     pzArgType = pAT->pzBool; break;
-        case OPARG_TYPE_NUMERIC:     pzArgType = pAT->pzNum;  break;
-        case OPARG_TYPE_HIERARCHY:   pzArgType = pAT->pzNest; break;
-        case OPARG_TYPE_STRING:      pzArgType = pAT->pzStr;  break;
-        case OPARG_TYPE_TIME:        pzArgType = pAT->pzTime; break;
+        if (od->fOptState & OPTST_ARG_OPTIONAL) {
+            pzArgType = argtp->pzOpt;
+
+        } else switch (OPTST_GET_ARGTYPE(od->fOptState)) {
+        case OPARG_TYPE_NONE:        pzArgType = argtp->pzNo;   break;
+        case OPARG_TYPE_ENUMERATION: pzArgType = argtp->pzKey;  break;
+        case OPARG_TYPE_FILE:        pzArgType = argtp->pzFile; break;
+        case OPARG_TYPE_MEMBERSHIP:  pzArgType = argtp->pzKeyL; break;
+        case OPARG_TYPE_BOOLEAN:     pzArgType = argtp->pzBool; break;
+        case OPARG_TYPE_NUMERIC:     pzArgType = argtp->pzNum;  break;
+        case OPARG_TYPE_HIERARCHY:   pzArgType = argtp->pzNest; break;
+        case OPARG_TYPE_STRING:      pzArgType = argtp->pzStr;  break;
+        case OPARG_TYPE_TIME:        pzArgType = argtp->pzTime; break;
         default:                     goto bogus_desc;
         }
 
         pzArgType = SPN_WHITESPACE_CHARS(pzArgType);
         if (*pzArgType == NUL)
-            snprintf(z, sizeof(z), "%s", pOD->pz_Name);
+            snprintf(z, sizeof(z), "%s", od->pz_Name);
         else
-            snprintf(z, sizeof(z), "%s=%s", pOD->pz_Name, pzArgType);
-        fprintf(option_usage_fp, usefmt, z, pOD->pzText);
+            snprintf(z, sizeof(z), "%s=%s", od->pz_Name, pzArgType);
+        fprintf(option_usage_fp, usefmt, z, od->pzText);
 
-        switch (OPTST_GET_ARGTYPE(pOD->fOptState)) {
+        switch (OPTST_GET_ARGTYPE(od->fOptState)) {
         case OPARG_TYPE_ENUMERATION:
         case OPARG_TYPE_MEMBERSHIP:
-            displayEnum = (pOD->pOptProc != NULL) ? true : displayEnum;
+            displayEnum = (od->pOptProc != NULL) ? true : displayEnum;
         }
     }
 
     return;
 
-bogus_desc:
-    fprintf(stderr, zInvalOptDesc, pOD->pz_Name);
-    exit(EX_SOFTWARE);
+ bogus_desc:
+    fprintf(stderr, zbad_od, opts->pzProgName, od->pz_Name);
+    ao_bug(zbad_arg_type_msg);
 }
 
 /**
  * Print the long options processed with "-W".  These options will be the
  * ones that do *not* have flag characters.
  *
- * @param pOptions the program option descriptor
- * @param pOD      the option descriptor
+ * @param opts  the program option descriptor
+ * @param title the title for the options
  */
 static void
-prt_vendor_opts(tOptions * pOpts, char const * pOptTitle)
+prt_vendor_opts(tOptions * opts, char const * title)
 {
     static unsigned int const not_vended_mask =
         OPTST_NO_USAGE_MASK | OPTST_DOCUMENT;
@@ -507,51 +803,57 @@ prt_vendor_opts(tOptions * pOpts, char const * pOptTitle)
      *  Only handle client specified options.  The "vendor option" follows
      *  "presetOptCt", so we won't loop/recurse indefinitely.
      */
-    int          ct     = pOpts->presetOptCt;
-    tOptDesc *   pOD    = pOpts->pOptDesc;
-    size_t       nmlen  = 0;
+    int          ct     = opts->presetOptCt;
+    tOptDesc *   od     = opts->pOptDesc;
+    fprintf(option_usage_fp, zTabout + tab_skip_ct, zVendOptsAre);
+
+    {
+        size_t   nmlen  = 0;
+        do  {
+            size_t l;
+            if (  ((od->fOptState & not_vended_mask) != 0)
+               || IS_GRAPHIC_CHAR(od->optValue))
+                continue;
 
-    fprintf(option_usage_fp, zTabout, zVendOptsAre);
+            l = strlen(od->pz_Name);
+            if (l > nmlen)  nmlen = l;
+        } while (od++, (--ct > 0));
 
-    do  {
-        size_t l;
-        if (  ((pOD->fOptState & not_vended_mask) != 0)
-           || IS_GRAPHIC_CHAR(pOD->optValue))
-            continue;
+        snprintf(vfmt, sizeof(vfmt), vfmtfmt, (unsigned int)nmlen + 4);
+    }
 
-        l = strlen(pOD->pz_Name);
-        if (l > nmlen)  nmlen = l;
-    } while (pOD++, (--ct > 0));
+    if (tab_skip_ct > 0)
+        tab_skip_ct--;
 
-    sprintf(vfmt, vfmtfmt, (unsigned int)nmlen + 4);
-    ct     = pOpts->presetOptCt;
-    pOD    = pOpts->pOptDesc;
+    ct    = opts->presetOptCt;
+    od    = opts->pOptDesc;
 
     do  {
-        if (  ((pOD->fOptState & not_vended_mask) != 0)
-           || IS_GRAPHIC_CHAR(pOD->optValue))
+        if (  ((od->fOptState & not_vended_mask) != 0)
+           || IS_GRAPHIC_CHAR(od->optValue))
             continue;
 
-        prt_one_vendor(pOpts, pOD, &argTypes, vfmt);
-        prt_extd_usage(pOpts, pOD, pOptTitle);
+        prt_one_vendor(opts, od, &argTypes, vfmt);
+        prt_extd_usage(opts, od, title);
+
+    } while (od++, (--ct > 0));
 
-    } while (pOD++, (--ct > 0));
+    /* no need to restore "tab_skip_ct" - options are done now */
 }
 
 /**
  * Print extended usage.  Usage/help was requested.
  *
- * @param pOptions the program option descriptor
- * @param pOD      the option descriptor
- * @param pAT      names of the option argument types
+ * @param opts  the program option descriptor
+ * @param od   the option descriptor
+ * @param title the title for the options
  */
 static void
-prt_extd_usage(tOptions * pOpts, tOptDesc * pOD,
-               char const * pOptTitle)
+prt_extd_usage(tOptions * opts, tOptDesc * od, char const * title)
 {
-    if (  ((pOpts->fOptSet & OPTPROC_VENDOR_OPT) != 0)
-       && (pOD->optActualValue == VENDOR_OPTION_VALUE)) {
-        prt_vendor_opts(pOpts, pOptTitle);
+    if (  ((opts->fOptSet & OPTPROC_VENDOR_OPT) != 0)
+       && (od->optActualValue == VENDOR_OPTION_VALUE)) {
+        prt_vendor_opts(opts, title);
         return;
     }
 
@@ -559,34 +861,33 @@ prt_extd_usage(tOptions * pOpts, tOptDesc * pOD,
      *  IF there are option conflicts or dependencies,
      *  THEN print them here.
      */
-    if (  (pOD->pOptMust != NULL)
-       || (pOD->pOptCant != NULL) )
-        prt_conflicts(pOpts, pOD);
+    if ((od->pOptMust != NULL) || (od->pOptCant != NULL))
+        prt_conflicts(opts, od);
 
     /*
      *  IF there is a disablement string
      *  THEN print the disablement info
      */
-    if (pOD->pz_DisableName != NULL )
-        fprintf(option_usage_fp, zDis, pOD->pz_DisableName);
+    if (od->pz_DisableName != NULL )
+        fprintf(option_usage_fp, zDis + tab_skip_ct, od->pz_DisableName);
 
     /*
      *  Check for argument types that have callbacks with magical properties
      */
-    switch (OPTST_GET_ARGTYPE(pOD->fOptState)) {
+    switch (OPTST_GET_ARGTYPE(od->fOptState)) {
     case OPARG_TYPE_NUMERIC:
         /*
          *  IF the numeric option has a special callback,
          *  THEN call it, requesting the range or other special info
          */
-        if (  (pOD->pOptProc != NULL)
-           && (pOD->pOptProc != optionNumericVal) ) {
-            (*(pOD->pOptProc))(OPTPROC_EMIT_USAGE, pOD);
+        if (  (od->pOptProc != NULL)
+           && (od->pOptProc != optionNumericVal) ) {
+            (*(od->pOptProc))(OPTPROC_EMIT_USAGE, od);
         }
         break;
 
     case OPARG_TYPE_FILE:
-        (*(pOD->pOptProc))(OPTPROC_EMIT_USAGE, pOD);
+        (*(od->pOptProc))(OPTPROC_EMIT_USAGE, od);
         break;
     }
 
@@ -594,18 +895,18 @@ prt_extd_usage(tOptions * pOpts, tOptDesc * pOD,
      *  IF the option defaults to being enabled,
      *  THEN print that out
      */
-    if (pOD->fOptState & OPTST_INITENABLED)
-        fputs(zEnab, option_usage_fp);
+    if (od->fOptState & OPTST_INITENABLED)
+        fputs(zEnab + tab_skip_ct, option_usage_fp);
 
     /*
      *  IF  the option is in an equivalence class
      *        AND not the designated lead
      *  THEN print equivalence and leave it at that.
      */
-    if (  (pOD->optEquivIndex != NO_EQUIVALENT)
-       && (pOD->optEquivIndex != pOD->optActualIndex )  )  {
-        fprintf(option_usage_fp, zAlt,
-                 pOpts->pOptDesc[ pOD->optEquivIndex ].pz_Name);
+    if (  (od->optEquivIndex != NO_EQUIVALENT)
+       && (od->optEquivIndex != od->optActualIndex )  )  {
+        fprintf(option_usage_fp, zalt_opt + tab_skip_ct,
+                 opts->pOptDesc[ od->optEquivIndex ].pz_Name);
         return;
     }
 
@@ -615,32 +916,33 @@ prt_extd_usage(tOptions * pOpts, tOptDesc * pOD,
      *    AND it is not an auto-managed option (e.g. --help, et al.)
      *  THEN advise that this option may not be preset.
      */
-    if (  ((pOD->fOptState & OPTST_NO_INIT) != 0)
-       && (  (pOpts->papzHomeList != NULL)
-          || (pOpts->pzPROGNAME != NULL)
+    if (  ((od->fOptState & OPTST_NO_INIT) != 0)
+       && (  (opts->papzHomeList != NULL)
+          || (opts->pzPROGNAME != NULL)
           )
-       && (pOD->optIndex < pOpts->presetOptCt)
+       && (od->optIndex < opts->presetOptCt)
        )
 
-        fputs(zNoPreset, option_usage_fp);
+        fputs(zNoPreset + tab_skip_ct, option_usage_fp);
 
     /*
      *  Print the appearance requirements.
      */
-    if (OPTST_GET_ARGTYPE(pOD->fOptState) == OPARG_TYPE_MEMBERSHIP)
-        fputs(zMembers, option_usage_fp);
+    if (OPTST_GET_ARGTYPE(od->fOptState) == OPARG_TYPE_MEMBERSHIP)
+        fputs(zMembers + tab_skip_ct, option_usage_fp);
 
-    else switch (pOD->optMinCt) {
+    else switch (od->optMinCt) {
     case 1:
     case 0:
-        switch (pOD->optMaxCt) {
-        case 0:       fputs(zPreset, option_usage_fp); break;
-        case NOLIMIT: fputs(zNoLim, option_usage_fp);  break;
+        switch (od->optMaxCt) {
+        case 0:       fputs(zPreset + tab_skip_ct, option_usage_fp); break;
+        case NOLIMIT: fputs(zNoLim  + tab_skip_ct, option_usage_fp); break;
         case 1:       break;
             /*
              * IF the max is more than one but limited, print "UP TO" message
              */
-        default:      fprintf(option_usage_fp, zUpTo, pOD->optMaxCt);  break;
+        default:
+            fprintf(option_usage_fp, zUpTo + tab_skip_ct, od->optMaxCt); break;
         }
         break;
 
@@ -648,12 +950,13 @@ prt_extd_usage(tOptions * pOpts, tOptDesc * pOD,
         /*
          *  More than one is required.  Print the range.
          */
-        fprintf(option_usage_fp, zMust, pOD->optMinCt, pOD->optMaxCt);
+        fprintf(option_usage_fp, zMust + tab_skip_ct,
+                od->optMinCt, od->optMaxCt);
     }
 
-    if (  NAMED_OPTS(pOpts)
-       && (pOpts->specOptIdx.default_opt == pOD->optIndex))
-        fputs(zDefaultOpt, option_usage_fp);
+    if (  NAMED_OPTS(opts)
+       && (opts->specOptIdx.default_opt == od->optIndex))
+        fputs(zDefaultOpt + tab_skip_ct, option_usage_fp);
 }
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -664,53 +967,53 @@ prt_extd_usage(tOptions * pOpts, tOptDesc * pOD,
  *   squishy, but important to tell users how to find these files.
  */
 static void
-prt_ini_list(char const * const * papz, bool * pInitIntro,
-             char const * pzRc, char const * pzPN)
+prt_ini_list(char const * const * papz, bool * need_intro,
+             char const * ini_file, char const * path_nm)
 {
-    char zPath[AG_PATH_MAX+1];
+    char pth_buf[AG_PATH_MAX+1];
 
     if (papz == NULL)
         return;
 
     fputs(zPresetIntro, option_usage_fp);
-    *pInitIntro = false;
+    *need_intro = false;
 
     for (;;) {
-        char const * pzPath = *(papz++);
-        char const * pzReal = zPath;
+        char const * path   = *(papz++);
+        char const * nm_buf = pth_buf;
 
-        if (pzPath == NULL)
+        if (path == NULL)
             break;
 
         /*
          * Ignore any invalid paths
          */
-        if (! optionMakePath(zPath, (int)sizeof(zPath), pzPath, pzPN))
-            pzReal = pzPath;
+        if (! optionMakePath(pth_buf, (int)sizeof(pth_buf), path, path_nm))
+            nm_buf = path;
 
         /*
          * Expand paths that are relative to the executable or installation
          * directories.  Leave alone paths that use environment variables.
          */
-        else if ((*pzPath == '$')
-                 && ((pzPath[1] == '$') || (pzPath[1] == '@')))
-            pzPath = pzReal;
+        else if ((*path == '$')
+                 && ((path[1] == '$') || (path[1] == '@')))
+            path = nm_buf;
 
         /*
          *  Print the name of the "homerc" file.  If the "rcfile" name is
          *  not empty, we may or may not print that, too...
          */
-        fprintf(option_usage_fp, zPathFmt, pzPath);
-        if (*pzRc != NUL) {
+        fprintf(option_usage_fp, zPathFmt, path);
+        if (*ini_file != NUL) {
             struct stat sb;
 
             /*
              *  IF the "homerc" file is a directory,
              *  then append the "rcfile" name.
              */
-            if ((stat(pzReal, &sb) == 0) && S_ISDIR(sb.st_mode)) {
-                fputc(DIRCH, option_usage_fp);
-                fputs(pzRc,  option_usage_fp);
+            if ((stat(nm_buf, &sb) == 0) && S_ISDIR(sb.st_mode)) {
+                fputc(DIRCH,    option_usage_fp);
+                fputs(ini_file, option_usage_fp);
             }
         }
 
@@ -720,7 +1023,7 @@ prt_ini_list(char const * const * papz, bool * pInitIntro,
 
 
 static void
-prt_preamble(tOptions * pOptions, tOptDesc * pOD, arg_types_t * pAT)
+prt_preamble(tOptions * opts, tOptDesc * od, arg_types_t * at)
 {
     /*
      *  Flag prefix: IF no flags at all, then omit it.  If not printable
@@ -728,18 +1031,18 @@ prt_preamble(tOptions * pOptions, tOptDesc * pOD, arg_types_t * pAT)
      *  Follow it with a comma if we are doing GNU usage and long
      *  opts are to be printed too.
      */
-    if ((pOptions->fOptSet & OPTPROC_SHORTOPT) == 0)
-        fputs(pAT->pzSpc, option_usage_fp);
+    if ((opts->fOptSet & OPTPROC_SHORTOPT) == 0)
+        fputs(at->pzSpc, option_usage_fp);
 
-    else if (! IS_GRAPHIC_CHAR(pOD->optValue)) {
-        if (  (pOptions->fOptSet & (OPTPROC_GNUUSAGE|OPTPROC_LONGOPT))
+    else if (! IS_GRAPHIC_CHAR(od->optValue)) {
+        if (  (opts->fOptSet & (OPTPROC_GNUUSAGE|OPTPROC_LONGOPT))
            == (OPTPROC_GNUUSAGE|OPTPROC_LONGOPT))
             fputc(' ', option_usage_fp);
-        fputs(pAT->pzNoF, option_usage_fp);
+        fputs(at->pzNoF, option_usage_fp);
 
     } else {
-        fprintf(option_usage_fp, "   -%c", pOD->optValue);
-        if (  (pOptions->fOptSet & (OPTPROC_GNUUSAGE|OPTPROC_LONGOPT))
+        fprintf(option_usage_fp, "   -%c", od->optValue);
+        if (  (opts->fOptSet & (OPTPROC_GNUUSAGE|OPTPROC_LONGOPT))
            == (OPTPROC_GNUUSAGE|OPTPROC_LONGOPT))
             fputs(", ", option_usage_fp);
     }
@@ -748,56 +1051,63 @@ prt_preamble(tOptions * pOptions, tOptDesc * pOD, arg_types_t * pAT)
 /**
  *  Print the usage information for a single option.
  *
- * @param pOpts     the program option descriptor
- * @param pOD       the option descriptor
- * @param pAT       names of the option argument types
+ * @param opts  the program option descriptor
+ * @param od    the option descriptor
+ * @param at    names of the option argument types
  */
 static void
-prt_one_usage(tOptions * pOptions, tOptDesc * pOD, arg_types_t * pAT)
+prt_one_usage(tOptions * opts, tOptDesc * od, arg_types_t * at)
 {
-    prt_preamble(pOptions, pOD, pAT);
+    prt_preamble(opts, od, at);
 
     {
-        char z[ 80 ];
-        char const *  pzArgType;
+        char z[80];
+        char const * atyp;
 
         /*
          *  Determine the argument type string first on its usage, then,
          *  when the option argument is required, base the type string on the
          *  argument type.
          */
-        if (pOD->fOptState & OPTST_ARG_OPTIONAL) {
-            pzArgType = pAT->pzOpt;
-
-        } else switch (OPTST_GET_ARGTYPE(pOD->fOptState)) {
-        case OPARG_TYPE_NONE:        pzArgType = pAT->pzNo;   break;
-        case OPARG_TYPE_ENUMERATION: pzArgType = pAT->pzKey;  break;
-        case OPARG_TYPE_FILE:        pzArgType = pAT->pzFile; break;
-        case OPARG_TYPE_MEMBERSHIP:  pzArgType = pAT->pzKeyL; break;
-        case OPARG_TYPE_BOOLEAN:     pzArgType = pAT->pzBool; break;
-        case OPARG_TYPE_NUMERIC:     pzArgType = pAT->pzNum;  break;
-        case OPARG_TYPE_HIERARCHY:   pzArgType = pAT->pzNest; break;
-        case OPARG_TYPE_STRING:      pzArgType = pAT->pzStr;  break;
-        case OPARG_TYPE_TIME:        pzArgType = pAT->pzTime; break;
+        if (od->fOptState & OPTST_ARG_OPTIONAL) {
+            atyp = at->pzOpt;
+
+        } else switch (OPTST_GET_ARGTYPE(od->fOptState)) {
+        case OPARG_TYPE_NONE:        atyp = at->pzNo;   break;
+        case OPARG_TYPE_ENUMERATION: atyp = at->pzKey;  break;
+        case OPARG_TYPE_FILE:        atyp = at->pzFile; break;
+        case OPARG_TYPE_MEMBERSHIP:  atyp = at->pzKeyL; break;
+        case OPARG_TYPE_BOOLEAN:     atyp = at->pzBool; break;
+        case OPARG_TYPE_NUMERIC:     atyp = at->pzNum;  break;
+        case OPARG_TYPE_HIERARCHY:   atyp = at->pzNest; break;
+        case OPARG_TYPE_STRING:      atyp = at->pzStr;  break;
+        case OPARG_TYPE_TIME:        atyp = at->pzTime; break;
         default:                     goto bogus_desc;
         }
 
-        snprintf(z, sizeof(z), pAT->pzOptFmt, pzArgType, pOD->pz_Name,
-                 (pOD->optMinCt != 0) ? pAT->pzReq : pAT->pzOpt);
+#ifdef _WIN32
+        if (at->pzOptFmt == zGnuOptFmt)
+            snprintf(z, sizeof(z), "--%s%s", od->pz_Name, atyp);
+        else if (at->pzOptFmt == zGnuOptFmt + 2)
+            snprintf(z, sizeof(z), "%s%s", od->pz_Name, atyp);
+        else
+#endif
+        snprintf(z, sizeof(z), at->pzOptFmt, atyp, od->pz_Name,
+                 (od->optMinCt != 0) ? at->pzReq : at->pzOpt);
 
-        fprintf(option_usage_fp, line_fmt_buf, z, pOD->pzText);
+        fprintf(option_usage_fp, line_fmt_buf, z, od->pzText);
 
-        switch (OPTST_GET_ARGTYPE(pOD->fOptState)) {
+        switch (OPTST_GET_ARGTYPE(od->fOptState)) {
         case OPARG_TYPE_ENUMERATION:
         case OPARG_TYPE_MEMBERSHIP:
-            displayEnum = (pOD->pOptProc != NULL) ? true : displayEnum;
+            displayEnum = (od->pOptProc != NULL) ? true : displayEnum;
         }
     }
 
     return;
 
-bogus_desc:
-    fprintf(stderr, zInvalOptDesc, pOD->pz_Name);
+ bogus_desc:
+    fprintf(stderr, zbad_od, opts->pzProgName, od->pz_Name);
     exit(EX_SOFTWARE);
 }
 
@@ -805,11 +1115,11 @@ bogus_desc:
  *  Print out the usage information for just the options.
  */
 static void
-prt_opt_usage(tOptions * pOpts, int ex_code, char const * pOptTitle)
+prt_opt_usage(tOptions * opts, int ex_code, char const * title)
 {
-    int         ct     = pOpts->optCt;
+    int         ct     = opts->optCt;
     int         optNo  = 0;
-    tOptDesc *  pOD    = pOpts->pOptDesc;
+    tOptDesc *  od     = opts->pOptDesc;
     int         docCt  = 0;
 
     do  {
@@ -818,7 +1128,7 @@ prt_opt_usage(tOptions * pOpts, int ex_code, char const * pOptTitle)
          * deprecated -- strongly discouraged (OPTST_DEPRECATED), or
          * compiled out of current object code (OPTST_OMITTED)
          */
-        if ((pOD->fOptState & OPTST_NO_USAGE_MASK) != 0) {
+        if ((od->fOptState & OPTST_NO_USAGE_MASK) != 0) {
 
             /*
              * IF      this is a compiled-out option
@@ -826,23 +1136,23 @@ prt_opt_usage(tOptions * pOpts, int ex_code, char const * pOptTitle)
              *   *AND* this is NOT abbreviated usage
              * THEN display this option.
              */
-            if (  (pOD->fOptState == (OPTST_OMITTED | OPTST_NO_INIT))
-               && (pOD->pz_Name != NULL)
+            if (  (od->fOptState == (OPTST_OMITTED | OPTST_NO_INIT))
+               && (od->pz_Name != NULL)
                && (ex_code == EXIT_SUCCESS))  {
 
                 char const * why_pz =
-                    (pOD->pzText == NULL) ? zDisabledWhy : pOD->pzText;
-                prt_preamble(pOpts, pOD, &argTypes);
-                fprintf(option_usage_fp, zDisabledOpt, pOD->pz_Name, why_pz);
+                    (od->pzText == NULL) ? zDisabledWhy : od->pzText;
+                prt_preamble(opts, od, &argTypes);
+                fprintf(option_usage_fp, zDisabledOpt, od->pz_Name, why_pz);
             }
 
             continue;
         }
 
-        if ((pOD->fOptState & OPTST_DOCUMENT) != 0) {
+        if ((od->fOptState & OPTST_DOCUMENT) != 0) {
             if (ex_code == EXIT_SUCCESS) {
-                fprintf(option_usage_fp, argTypes.pzBrk, pOD->pzText,
-                        pOptTitle);
+                fprintf(option_usage_fp, argTypes.pzBrk, od->pzText,
+                        title);
                 docCt++;
             }
 
@@ -850,8 +1160,8 @@ prt_opt_usage(tOptions * pOpts, int ex_code, char const * pOptTitle)
         }
 
         /* Skip name only options when we have a vendor option */
-        if (  ((pOpts->fOptSet & OPTPROC_VENDOR_OPT) != 0)
-           && (! IS_GRAPHIC_CHAR(pOD->optValue)))
+        if (  ((opts->fOptSet & OPTPROC_VENDOR_OPT) != 0)
+           && (! IS_GRAPHIC_CHAR(od->optValue)))
             continue;
 
         /*
@@ -862,25 +1172,25 @@ prt_opt_usage(tOptions * pOpts, int ex_code, char const * pOptTitle)
          *  THEN document that the remaining options are not user opts
          */
         if ((docCt > 0) && (ex_code == EXIT_SUCCESS)) {
-            if (pOpts->presetOptCt == optNo) {
-                if ((pOD[-1].fOptState & OPTST_DOCUMENT) == 0)
-                    fprintf(option_usage_fp, argTypes.pzBrk, zAuto, pOptTitle);
+            if (opts->presetOptCt == optNo) {
+                if ((od[-1].fOptState & OPTST_DOCUMENT) == 0)
+                    fprintf(option_usage_fp, argTypes.pzBrk, zAuto, title);
 
             } else if ((ct == 1) &&
-                       (pOpts->fOptSet & OPTPROC_VENDOR_OPT))
-                fprintf(option_usage_fp, argTypes.pzBrk, zVendIntro, pOptTitle);
+                       (opts->fOptSet & OPTPROC_VENDOR_OPT))
+                fprintf(option_usage_fp, argTypes.pzBrk, zVendIntro, title);
         }
 
-        prt_one_usage(pOpts, pOD, &argTypes);
+        prt_one_usage(opts, od, &argTypes);
 
         /*
          *  IF we were invoked because of the --help option,
          *  THEN print all the extra info
          */
         if (ex_code == EXIT_SUCCESS)
-            prt_extd_usage(pOpts, pOD, pOptTitle);
+            prt_extd_usage(opts, od, title);
 
-    } while (pOD++, optNo++, (--ct > 0));
+    } while (od++, optNo++, (--ct > 0));
 
     fputc(NL, option_usage_fp);
 }
@@ -891,24 +1201,24 @@ prt_opt_usage(tOptions * pOpts, int ex_code, char const * pOptTitle)
  *   PROGRAM DETAILS
  */
 static void
-prt_prog_detail(tOptions* pOptions)
+prt_prog_detail(tOptions * opts)
 {
-    bool  initIntro = true;
+    bool need_intro = true;
 
     /*
      *  Display all the places we look for config files
      */
-    prt_ini_list(pOptions->papzHomeList, &initIntro,
-                 pOptions->pzRcName, pOptions->pzProgPath);
+    prt_ini_list(opts->papzHomeList, &need_intro,
+                 opts->pzRcName, opts->pzProgPath);
 
     /*
      *  Let the user know about environment variable settings
      */
-    if ((pOptions->fOptSet & OPTPROC_ENVIRON) != 0) {
-        if (initIntro)
+    if ((opts->fOptSet & OPTPROC_ENVIRON) != 0) {
+        if (need_intro)
             fputs(zPresetIntro, option_usage_fp);
 
-        fprintf(option_usage_fp, zExamineFmt, pOptions->pzPROGNAME);
+        fprintf(option_usage_fp, zExamineFmt, opts->pzPROGNAME);
     }
 
     /*
@@ -917,26 +1227,26 @@ prt_prog_detail(tOptions* pOptions)
      *       option struct pointer.  That tells it to display the keywords.
      */
     if (displayEnum) {
-        int        ct     = pOptions->optCt;
+        int        ct     = opts->optCt;
         int        optNo  = 0;
-        tOptDesc*  pOD    = pOptions->pOptDesc;
+        tOptDesc * od     = opts->pOptDesc;
 
         fputc(NL, option_usage_fp);
         fflush(option_usage_fp);
         do  {
-            switch (OPTST_GET_ARGTYPE(pOD->fOptState)) {
+            switch (OPTST_GET_ARGTYPE(od->fOptState)) {
             case OPARG_TYPE_ENUMERATION:
             case OPARG_TYPE_MEMBERSHIP:
-                (*(pOD->pOptProc))(OPTPROC_EMIT_USAGE, pOD);
+                (*(od->pOptProc))(OPTPROC_EMIT_USAGE, od);
             }
-        } while (pOD++, optNo++, (--ct > 0));
+        } while (od++, optNo++, (--ct > 0));
     }
 
     /*
      *  If there is a detail string, now is the time for that.
      */
-    if (pOptions->pzDetail != NULL)
-        fputs(pOptions->pzDetail, option_usage_fp);
+    if (opts->pzDetail != NULL)
+        fputs(opts->pzDetail, option_usage_fp);
 }
 
 
@@ -955,11 +1265,11 @@ prt_prog_detail(tOptions* pOptions)
  *  Set up the formatting for GNU-style output
  */
 static int
-setGnuOptFmts(tOptions* pOpts, tCC** ppT)
+setGnuOptFmts(tOptions * opts, char const ** ptxt)
 {
     static char const zOneSpace[] = " ";
     int  flen = 22;
-    *ppT = zNoRq_ShrtTtl;
+    *ptxt = zNoRq_ShrtTtl;
 
     argTypes.pzStr  = zGnuStrArg;
     argTypes.pzReq  = zOneSpace;
@@ -976,7 +1286,7 @@ setGnuOptFmts(tOptions* pOpts, tCC** ppT)
     argTypes.pzNoF  = zSixSpaces;
     argTypes.pzSpc  = zThreeSpaces;
 
-    switch (pOpts->fOptSet & OPTPROC_L_N_S) {
+    switch (opts->fOptSet & OPTPROC_L_N_S) {
     case OPTPROC_L_N_S:    argTypes.pzOptFmt = zGnuOptFmt;     break;
     case OPTPROC_LONGOPT:  argTypes.pzOptFmt = zGnuOptFmt;     break;
     case 0:                argTypes.pzOptFmt = zGnuOptFmt + 2; break;
@@ -996,7 +1306,7 @@ setGnuOptFmts(tOptions* pOpts, tCC** ppT)
  *  Standard (AutoOpts normal) option line formatting
  */
 static int
-setStdOptFmts(tOptions* pOpts, tCC** ppT)
+setStdOptFmts(tOptions * opts, char const ** ptxt)
 {
     int  flen = 0;
 
@@ -1015,27 +1325,27 @@ setStdOptFmts(tOptions* pOpts, tCC** ppT)
     argTypes.pzNoF  = zFiveSpaces;
     argTypes.pzSpc  = zTwoSpaces;
 
-    switch (pOpts->fOptSet & (OPTPROC_NO_REQ_OPT | OPTPROC_SHORTOPT)) {
+    switch (opts->fOptSet & (OPTPROC_NO_REQ_OPT | OPTPROC_SHORTOPT)) {
     case (OPTPROC_NO_REQ_OPT | OPTPROC_SHORTOPT):
-        *ppT = zNoRq_ShrtTtl;
+        *ptxt = zNoRq_ShrtTtl;
         argTypes.pzOptFmt = zNrmOptFmt;
         flen = 19;
         break;
 
     case OPTPROC_NO_REQ_OPT:
-        *ppT = zNoRq_NoShrtTtl;
+        *ptxt = zNoRq_NoShrtTtl;
         argTypes.pzOptFmt = zNrmOptFmt;
         flen = 19;
         break;
 
     case OPTPROC_SHORTOPT:
-        *ppT = zReq_ShrtTtl;
+        *ptxt = zReq_ShrtTtl;
         argTypes.pzOptFmt = zReqOptFmt;
         flen = 24;
         break;
 
     case 0:
-        *ppT = zReq_NoShrtTtl;
+        *ptxt = zReq_NoShrtTtl;
         argTypes.pzOptFmt = zReqOptFmt;
         flen = 24;
     }
@@ -1043,8 +1353,8 @@ setStdOptFmts(tOptions* pOpts, tCC** ppT)
     return flen;
 }
 
-
-/*:
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
diff --git a/src/libopts/value-type.c b/src/libopts/value-type.c
deleted file mode 100644 (file)
index ff98c0a..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/* ANSI-C code produced by gperf version 3.0.4 */
-
-
-#if 0 /* gperf build options: */
-// %struct-type
-// %language=ANSI-C
-// %includes
-// %global-table
-// %omit-struct-type
-// %readonly-tables
-// %compare-strncmp
-// 
-// %define slot-name               vtp_name
-// %define hash-function-name      value_type_hash
-// %define lookup-function-name    find_value_type_name
-// %define word-array-name         value_type_table
-// %define initializer-suffix      ,VTP_COUNT_KWD
-#endif /* gperf build options: */
-
-#include "value-type.h"
-
-typedef struct {
-    char const *    vtp_name;
-    value_type_enum_t   vtp_id;
-} value_type_map_t;
-#include <string.h>
-
-/* maximum key range = 20, duplicates = 0 */
-
-#ifdef __GNUC__
-#else
-#ifdef __cplusplus
-#endif
-#endif
-inline static unsigned int
-value_type_hash (register const char *str, register unsigned int len)
-{
-  static const unsigned char asso_values[] =
-    {
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 10, 23, 23, 23, 23, 23, 23, 23, 23,
-      23,  5, 23, 23,  5,  0,  0, 23, 15, 23,
-      23, 10, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-      23, 23, 23, 23, 23, 23
-    };
-  return len + asso_values[(unsigned char)str[2]];
-}
-
-static const value_type_map_t value_type_table[] =
-  {
-    {"",VTP_COUNT_KWD}, {"",VTP_COUNT_KWD},
-    {"",VTP_COUNT_KWD},
-    {"set",             VTP_KWD_SET},
-    {"",VTP_COUNT_KWD}, {"",VTP_COUNT_KWD},
-    {"nested",          VTP_KWD_NESTED},
-    {"integer",         VTP_KWD_INTEGER},
-    {"",VTP_COUNT_KWD},
-    {"bool",            VTP_KWD_BOOL},
-    {"",VTP_COUNT_KWD},
-    {"string",          VTP_KWD_STRING},
-    {"boolean",         VTP_KWD_BOOLEAN},
-    {"",VTP_COUNT_KWD},
-    {"set-membership",  VTP_KWD_SET_MEMBERSHIP},
-    {"",VTP_COUNT_KWD}, {"",VTP_COUNT_KWD},
-    {"keyword",         VTP_KWD_KEYWORD},
-    {"",VTP_COUNT_KWD},
-    {"hierarchy",       VTP_KWD_HIERARCHY},
-    {"",VTP_COUNT_KWD}, {"",VTP_COUNT_KWD},
-    {"invalid",         VTP_KWD_INVALID}
-  };
-
-#ifdef __GNUC__
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
-static inline const value_type_map_t *
-find_value_type_name (register const char *str, register unsigned int len)
-{
-  if (len <= 14 && len >= 3)
-    {
-      register int key = value_type_hash (str, len);
-
-      if (key <= 22 && key >= 0)
-        {
-          register const char *s = value_type_table[key].vtp_name;
-
-          if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
-            return &value_type_table[key];
-        }
-    }
-  return 0;
-}
-
-
-value_type_enum_t
-find_value_type_id(char const * str, unsigned int len)
-{
-    const value_type_map_t * p =
-        find_value_type_name(str, len);
-    return (p == 0) ? VTP_KWD_INVALID : p->vtp_id;
-}
diff --git a/src/libopts/value-type.h b/src/libopts/value-type.h
deleted file mode 100644 (file)
index d91b0fe..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- *  Generated header for gperf generated source Sun May  6 16:20:59 PDT 2012
- *  This file enumerates the list of names and declares the
- *  procedure for mapping string names to the enum value.
- */
-#ifndef AUTOOPTS_VALUE_TYPE_H_GUARD
-#define AUTOOPTS_VALUE_TYPE_H_GUARD 1
-
-typedef enum {
-    VTP_KWD_INVALID,
-    VTP_KWD_STRING,
-    VTP_KWD_INTEGER,
-    VTP_KWD_BOOLEAN,
-    VTP_KWD_BOOL,
-    VTP_KWD_KEYWORD,
-    VTP_KWD_SET,
-    VTP_KWD_SET_MEMBERSHIP,
-    VTP_KWD_NESTED,
-    VTP_KWD_HIERARCHY,
-    VTP_COUNT_KWD
-} value_type_enum_t;
-
-extern value_type_enum_t
-find_value_type_id(char const * str, unsigned int len);
-#endif /* AUTOOPTS_VALUE_TYPE_H_GUARD */
index 24041b2..8f2b1db 100644 (file)
@@ -1,15 +1,16 @@
 
-/*
- * Time-stamp:      "2012-01-29 19:44:24 bkorb"
+/** \file version.c
  *
  *  This module implements the default usage procedure for
  *  Automated Options.  It may be overridden, of course.
+ *
+ * @addtogroup autoopts
+ * @{
  */
-
 /*
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is Copyright (c) 1992-2012 by Bruce Korb - all rights reserved
+ *  AutoOpts is Copyright (C) 1992-2013 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
  *   The Modified Berkeley Software Distribution License
  *      See the file "COPYING.mbsd"
  *
- *  These files have the following md5sums:
+ *  These files have the following sha256 sums:
  *
- *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
- *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
- *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+ *  8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95  COPYING.gplv3
+ *  4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b  COPYING.lgplv3
+ *  13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239  COPYING.mbsd
  */
 
 /*=export_func  optionVersion
 char const*
 optionVersion(void)
 {
-    static char const zVersion[] =
-        STR(AO_CURRENT.AO_REVISION);
+    static char const ver[] = OPTIONS_DOTTED_VERSION;
+    return ver;
+}
 
-    return zVersion;
+static void
+emit_first_line(
+    FILE * fp, char const * alt1, char const * alt2, char const * alt3)
+{
+    char const * p = (alt1 != NULL) ? alt1 : ((alt2 != NULL) ? alt2 : alt3);
+    char const * e;
+    if (p == NULL)
+        return;
+    e = strchr(p, NL);
+    if (e == NULL)
+        fputs(p, fp);
+    else
+        fwrite(p, 1, (e - p), fp);
+    fputc(NL, fp);
 }
 
 /**
  * Select among various ways to emit version information.
  *
- * @param pOpts the option descriptor
- * @param fp    the output stream
+ * @param[in] o   the option descriptor
+ * @param[in] fp  the output stream
  */
 static void
-emit_simple_ver(tOptions * pOpts, FILE * fp)
+emit_simple_ver(tOptions * o, FILE * fp)
 {
-    /*
-     *  Use the supplied string
-     */
-    if (pOpts->pzFullVersion != NULL)
-        fputs(pOpts->pzFullVersion, fp);
-
-    /*
-     *  Extract the interesting part of the copyright string
-     */
-    else if (pOpts->pzCopyright != NULL) {
-        char const * pe = strchr(pOpts->pzCopyright, NL);
-        if (pe == NULL)
-            pe = pOpts->pzCopyright + strlen(pOpts->pzCopyright);
-        fwrite(pOpts->pzCopyright, 1, pe - pOpts->pzCopyright, fp);
-    }
-
-    /*
-     *  Extract the interesting part of the usage title string
-     */
-    else {
-        char const * pe = strchr(pOpts->pzUsageTitle, NL);
-        if (pe == NULL)
-            pe = pOpts->pzUsageTitle + strlen(pOpts->pzUsageTitle);
-        fwrite(pOpts->pzUsageTitle, 1, pe - pOpts->pzUsageTitle, fp);
-    }
-    fputc(NL, fp);
+    emit_first_line(fp, o->pzFullVersion, o->pzCopyright, o->pzUsageTitle);
 }
 
+/**
+ * print the version with a copyright notice.
+ *
+ * @param[in] o   the option descriptor
+ * @param[in] fp  the output stream
+ */
 static void
-emit_copy_ver(tOptions * pOpts, FILE * fp)
+emit_copy_full(tOptions * o, FILE * fp)
 {
-    if (pOpts->pzCopyright != NULL)
-        fputs(pOpts->pzCopyright, fp);
-
-    else if (pOpts->pzFullVersion != NULL)
-        fputs(pOpts->pzFullVersion, fp);
-
-    else {
-        char const * pe = strchr(pOpts->pzUsageTitle, NL);
-        if (pe == NULL)
-            pe = pOpts->pzUsageTitle + strlen(pOpts->pzUsageTitle);
-        fwrite(pOpts->pzUsageTitle, 1, pe - pOpts->pzCopyright, fp);
-    }
+    if (o->pzCopyright != NULL)
+        fputs(o->pzCopyright, fp);
 
-    fputc(NL, fp);
+    else if (o->pzFullVersion != NULL)
+        fputs(o->pzFullVersion, fp);
 
-    if (HAS_pzPkgDataDir(pOpts) && (pOpts->pzPackager != NULL))
-        fputs(pOpts->pzPackager, fp);
+    else
+        emit_first_line(fp, o->pzUsageTitle, NULL, NULL);
+    
+    if (HAS_pzPkgDataDir(o) && (o->pzPackager != NULL)) {
+        fputc(NL, fp);
+        fputs(o->pzPackager, fp);
 
-    else if (pOpts->pzBugAddr != NULL)
-        fprintf(fp, zPlsSendBugs, pOpts->pzBugAddr);
+    } else if (o->pzBugAddr != NULL) {
+        fputc(NL, fp);
+        fprintf(fp, zPlsSendBugs, o->pzBugAddr);
+    }
 }
 
+/**
+ * print the version and any copyright notice.
+ * The version with a full copyright and additional notes.
+ *
+ * @param[in] opts  the option descriptor
+ * @param[in] fp    the output stream
+ */
 static void
-emit_copy_note(tOptions * pOpts, FILE * fp)
+emit_copy_note(tOptions * opts, FILE * fp)
 {
-    if (pOpts->pzCopyright != NULL) {
-        fputs(pOpts->pzCopyright, fp);
+    if (opts->pzCopyright != NULL)
+        fputs(opts->pzCopyright, fp);
+
+    if (opts->pzCopyNotice != NULL)
+        fputs(opts->pzCopyNotice, fp);
+
+    fputc(NL, fp);
+    fprintf(fp, zao_ver_fmt, optionVersion());
+    
+    if (HAS_pzPkgDataDir(opts) && (opts->pzPackager != NULL)) {
         fputc(NL, fp);
-    }
+        fputs(opts->pzPackager, fp);
 
-    if (pOpts->pzCopyNotice != NULL) {
-        fputs(pOpts->pzCopyNotice, fp);
+    } else if (opts->pzBugAddr != NULL) {
         fputc(NL, fp);
+        fprintf(fp, zPlsSendBugs, opts->pzBugAddr);
     }
-
-    fprintf(fp, zAO_Ver, optionVersion());
-
-    if (HAS_pzPkgDataDir(pOpts) && (pOpts->pzPackager != NULL))
-        fputs(pOpts->pzPackager, fp);
-
-    else if (pOpts->pzBugAddr != NULL)
-        fprintf(fp, zPlsSendBugs, pOpts->pzBugAddr);
 }
 
+/**
+ * Handle the version printing.  We must see how much information
+ * is being requested and select the correct printing routine.
+ */
 static void
-print_ver(tOptions * pOpts, tOptDesc * pOD, FILE * fp)
+print_ver(tOptions * opts, tOptDesc * od, FILE * fp)
 {
     char ch;
 
+    if (opts <= OPTPROC_EMIT_LIMIT)
+        return;
+
     /*
      *  IF we have an argument for this option, use it
      *  Otherwise, default to version only or copyright note,
      *  depending on whether the layout is GNU standard form or not.
      */
-    if (  (pOD->fOptState & OPTST_ARG_OPTIONAL)
-       && (pOD->optArg.argString != NULL)
-       && (pOD->optArg.argString[0] != NUL))
+    if (  (od->fOptState & OPTST_ARG_OPTIONAL)
+       && (od->optArg.argString != NULL)
+       && (od->optArg.argString[0] != NUL))
 
-        ch = pOD->optArg.argString[0];
+        ch = od->optArg.argString[0];
 
     else {
-        set_usage_flags(pOpts, NULL);
-        ch = (pOpts->fOptSet & OPTPROC_GNUUSAGE) ? 'c' : 'v';
+        set_usage_flags(opts, NULL);
+        ch = (opts->fOptSet & OPTPROC_GNUUSAGE) ? 'c' : 'v';
     }
 
     switch (ch) {
     case NUL: /* arg provided, but empty */
-    case 'v': case 'V': emit_simple_ver(pOpts, fp); break;
-    case 'c': case 'C': emit_copy_ver(pOpts, fp);   break;
-    case 'n': case 'N': emit_copy_note(pOpts, fp);  break;
+    case 'v': case 'V': emit_simple_ver(opts, fp); break;
+    case 'c': case 'C': emit_copy_full( opts, fp); break;
+    case 'n': case 'N': emit_copy_note( opts, fp); break;
 
     default:
         fprintf(stderr, zBadVerArg, ch);
@@ -163,10 +170,10 @@ print_ver(tOptions * pOpts, tOptDesc * pOD, FILE * fp)
     }
 
     fflush(fp);
-    if (ferror(fp) != 0) {
-        fputs(zOutputFail, stderr);
-        exit(EXIT_FAILURE);
-    }
+    if (ferror(fp))
+        fserr_exit(opts->pzProgName, zwriting,
+                   (fp == stdout) ? zstdout_name : zstderr_name);
+
     exit(EXIT_SUCCESS);
 }
 
@@ -174,35 +181,36 @@ print_ver(tOptions * pOpts, tOptDesc * pOD, FILE * fp)
  * private:
  *
  * what:  Print the program version
- * arg:   + tOptions* + pOpts    + program options descriptor +
- * arg:   + tOptDesc* + pOptDesc + the descriptor for this arg +
+ * arg:   + tOptions* + opts + program options descriptor +
+ * arg:   + tOptDesc* + od   + the descriptor for this arg +
  *
  * doc:
  *  This routine will print the version to stdout.
 =*/
 void
-optionPrintVersion(tOptions * pOpts, tOptDesc * pOD)
+optionPrintVersion(tOptions * opts, tOptDesc * od)
 {
-    print_ver(pOpts, pOD, stdout);
+    print_ver(opts, od, stdout);
 }
 
 /*=export_func  optionVersionStderr
  * private:
  *
  * what:  Print the program version to stderr
- * arg:   + tOptions* + pOpts    + program options descriptor +
- * arg:   + tOptDesc* + pOptDesc + the descriptor for this arg +
+ * arg:   + tOptions* + opts + program options descriptor +
+ * arg:   + tOptDesc* + od   + the descriptor for this arg +
  *
  * doc:
  *  This routine will print the version to stderr.
 =*/
 void
-optionVersionStderr(tOptions * pOpts, tOptDesc * pOD)
+optionVersionStderr(tOptions * opts, tOptDesc * od)
 {
-    print_ver(pOpts, pOD, stderr);
+    print_ver(opts, od, stderr);
 }
 
-/*
+/** @}
+ *
  * Local Variables:
  * mode: C
  * c-file-style: "stroustrup"
diff --git a/src/libopts/xat-attribute.c b/src/libopts/xat-attribute.c
deleted file mode 100644 (file)
index db47531..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/* ANSI-C code produced by gperf version 3.0.4 */
-
-
-#if 0 /* gperf build options: */
-// %struct-type
-// %language=ANSI-C
-// %includes
-// %global-table
-// %omit-struct-type
-// %readonly-tables
-// %compare-strncmp
-// 
-// %define slot-name               xat_name
-// %define hash-function-name      xat_attribute_hash
-// %define lookup-function-name    find_xat_attribute_name
-// %define word-array-name         xat_attribute_table
-// %define initializer-suffix      ,XAT_COUNT_KWD
-#endif /* gperf build options: */
-
-#include "xat-attribute.h"
-
-typedef struct {
-    char const *    xat_name;
-    xat_attribute_enum_t   xat_id;
-} xat_attribute_map_t;
-#include <string.h>
-
-/* maximum key range = 9, duplicates = 0 */
-
-#ifdef __GNUC__
-#else
-#ifdef __cplusplus
-#endif
-#endif
-inline static unsigned int
-xat_attribute_hash (register const char *str, register unsigned int len)
-{
-  static const unsigned char asso_values[] =
-    {
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13,  0,
-      13, 13, 13, 13, 13,  5, 13,  5, 13,  0,
-      13, 13, 13, 13, 13, 13,  0,  0, 13,  0,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-      13, 13, 13, 13, 13, 13
-    };
-  return len + asso_values[(unsigned char)str[0]];
-}
-
-static const xat_attribute_map_t xat_attribute_table[] =
-  {
-    {"",XAT_COUNT_KWD}, {"",XAT_COUNT_KWD},
-    {"",XAT_COUNT_KWD}, {"",XAT_COUNT_KWD},
-    {"type",            XAT_KWD_TYPE},
-    {"words",           XAT_KWD_WORDS},
-    {"cooked",          XAT_KWD_COOKED},
-    {"members",         XAT_KWD_MEMBERS},
-    {"uncooked",        XAT_KWD_UNCOOKED},
-    {"keep",            XAT_KWD_KEEP},
-    {"",XAT_COUNT_KWD}, {"",XAT_COUNT_KWD},
-    {"invalid",         XAT_KWD_INVALID}
-  };
-
-#ifdef __GNUC__
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
-static inline const xat_attribute_map_t *
-find_xat_attribute_name (register const char *str, register unsigned int len)
-{
-  if (len <= 8 && len >= 4)
-    {
-      register int key = xat_attribute_hash (str, len);
-
-      if (key <= 12 && key >= 0)
-        {
-          register const char *s = xat_attribute_table[key].xat_name;
-
-          if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
-            return &xat_attribute_table[key];
-        }
-    }
-  return 0;
-}
-
-
-xat_attribute_enum_t
-find_xat_attribute_id(char const * str, unsigned int len)
-{
-    const xat_attribute_map_t * p =
-        find_xat_attribute_name(str, len);
-    return (p == 0) ? XAT_KWD_INVALID : p->xat_id;
-}
diff --git a/src/libopts/xat-attribute.h b/src/libopts/xat-attribute.h
deleted file mode 100644 (file)
index e12bd4a..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- *  Generated header for gperf generated source Sun May  6 16:20:59 PDT 2012
- *  This file enumerates the list of names and declares the
- *  procedure for mapping string names to the enum value.
- */
-#ifndef AUTOOPTS_XAT_ATTRIBUTE_H_GUARD
-#define AUTOOPTS_XAT_ATTRIBUTE_H_GUARD 1
-
-typedef enum {
-    XAT_KWD_INVALID,
-    XAT_KWD_TYPE,
-    XAT_KWD_WORDS,
-    XAT_KWD_MEMBERS,
-    XAT_KWD_COOKED,
-    XAT_KWD_UNCOOKED,
-    XAT_KWD_KEEP,
-    XAT_COUNT_KWD
-} xat_attribute_enum_t;
-
-extern xat_attribute_enum_t
-find_xat_attribute_id(char const * str, unsigned int len);
-#endif /* AUTOOPTS_XAT_ATTRIBUTE_H_GUARD */
index bccf5ef..8690f9d 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (ocsptool-args.c)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:49 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:15 PM by AutoGen 5.17.3
  *  From the definitions    ocsptool-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  ocsptool 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.
- *  
+ *
  *  ocsptool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (ocsptool_opt_strs+0)
-#define zLicenseDescrip (ocsptool_opt_strs+276)
+#define zLicenseDescrip (ocsptool_opt_strs+272)
 
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
-/*
- *  ocsptool option static const strings
+/**
+ *  static const strings for ocsptool options
  */
-static char const ocsptool_opt_strs[2264] =
-/*     0 */ "ocsptool 3.0.21\n"
+static char const ocsptool_opt_strs[2244] =
+/*     0 */ "ocsptool 3.0.30\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   276 */ "ocsptool is free software: you can redistribute it and/or modify it under\n"
+            "redistribution under the terms of the GNU General Public License,\n"
+            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
+/*   272 */ "ocsptool is free software: you can redistribute it and/or modify it under\n"
             "the terms of the GNU General Public License as published by the Free\n"
             "Software Foundation, either version 3 of the License, or (at your option)\n"
             "any later version.\n\n"
@@ -84,244 +79,318 @@ static char const ocsptool_opt_strs[2264] =
             "details.\n\n"
             "You should have received a copy of the GNU General Public License along\n"
             "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   881 */ "Enable debugging.\0"
-/*   899 */ "DEBUG\0"
-/*   905 */ "debug\0"
-/*   911 */ "More verbose output\0"
-/*   931 */ "VERBOSE\0"
-/*   939 */ "verbose\0"
-/*   947 */ "Input file\0"
-/*   958 */ "INFILE\0"
-/*   965 */ "infile\0"
-/*   972 */ "Output file\0"
-/*   984 */ "OUTFILE\0"
-/*   992 */ "outfile\0"
-/*  1000 */ "Ask an OCSP/HTTP server on a certificate validity\0"
-/*  1050 */ "ASK\0"
-/*  1054 */ "ask\0"
-/*  1058 */ "Verify response\0"
-/*  1074 */ "VERIFY_RESPONSE\0"
-/*  1090 */ "verify-response\0"
-/*  1106 */ "Print information on a OCSP request\0"
-/*  1142 */ "REQUEST_INFO\0"
-/*  1155 */ "request-info\0"
-/*  1168 */ "Print information on a OCSP response\0"
-/*  1205 */ "RESPONSE_INFO\0"
-/*  1219 */ "response-info\0"
-/*  1233 */ "Generate an OCSP request\0"
-/*  1258 */ "GENERATE_REQUEST\0"
-/*  1275 */ "generate-request\0"
-/*  1292 */ "Don't add nonce to OCSP request\0"
-/*  1324 */ "NONCE\0"
-/*  1330 */ "no-nonce\0"
-/*  1339 */ "no\0"
-/*  1342 */ "Read issuer certificate from file\0"
-/*  1376 */ "LOAD_ISSUER\0"
-/*  1388 */ "load-issuer\0"
-/*  1400 */ "Read certificate to check from file\0"
-/*  1436 */ "LOAD_CERT\0"
-/*  1446 */ "load-cert\0"
-/*  1456 */ "Read OCSP trust anchors from file\0"
-/*  1490 */ "LOAD_TRUST\0"
-/*  1501 */ "load-trust\0"
-/*  1512 */ "Read OCSP response signer from file\0"
-/*  1548 */ "LOAD_SIGNER\0"
-/*  1560 */ "load-signer\0"
-/*  1572 */ "Use DER format for input certificates and private keys\0"
-/*  1627 */ "INDER\0"
-/*  1633 */ "no-inder\0"
-/*  1642 */ "Read DER encoded OCSP request from file\0"
-/*  1682 */ "LOAD_REQUEST\0"
-/*  1695 */ "load-request\0"
-/*  1708 */ "Read DER encoded OCSP response from file\0"
-/*  1749 */ "LOAD_RESPONSE\0"
-/*  1763 */ "load-response\0"
-/*  1777 */ "Display extended usage information and exit\0"
-/*  1821 */ "help\0"
-/*  1826 */ "Extended usage information passed thru pager\0"
-/*  1871 */ "more-help\0"
-/*  1881 */ "Output version information and exit\0"
-/*  1917 */ "version\0"
-/*  1925 */ "OCSPTOOL\0"
-/*  1934 */ "ocsptool - GnuTLS OCSP tool - Ver. 3.0.21\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/*  2034 */ "bug-gnutls@gnu.org\0"
-/*  2053 */ "\n\n\0"
-/*  2056 */ "\n"
-            "Ocsptool is a program that can parse and print information about OCSP\n"
+/*   877 */ "Enable debugging.\0"
+/*   895 */ "DEBUG\0"
+/*   901 */ "debug\0"
+/*   907 */ "More verbose output\0"
+/*   927 */ "VERBOSE\0"
+/*   935 */ "verbose\0"
+/*   943 */ "Input file\0"
+/*   954 */ "INFILE\0"
+/*   961 */ "infile\0"
+/*   968 */ "Output file\0"
+/*   980 */ "OUTFILE\0"
+/*   988 */ "outfile\0"
+/*   996 */ "Ask an OCSP/HTTP server on a certificate validity\0"
+/*  1046 */ "ASK\0"
+/*  1050 */ "ask\0"
+/*  1054 */ "Verify response\0"
+/*  1070 */ "VERIFY_RESPONSE\0"
+/*  1086 */ "verify-response\0"
+/*  1102 */ "Print information on a OCSP request\0"
+/*  1138 */ "REQUEST_INFO\0"
+/*  1151 */ "request-info\0"
+/*  1164 */ "Print information on a OCSP response\0"
+/*  1201 */ "RESPONSE_INFO\0"
+/*  1215 */ "response-info\0"
+/*  1229 */ "Generate an OCSP request\0"
+/*  1254 */ "GENERATE_REQUEST\0"
+/*  1271 */ "generate-request\0"
+/*  1288 */ "Don't add nonce to OCSP request\0"
+/*  1320 */ "NONCE\0"
+/*  1326 */ "no-nonce\0"
+/*  1335 */ "no\0"
+/*  1338 */ "Read issuer certificate from file\0"
+/*  1372 */ "LOAD_ISSUER\0"
+/*  1384 */ "load-issuer\0"
+/*  1396 */ "Read certificate to check from file\0"
+/*  1432 */ "LOAD_CERT\0"
+/*  1442 */ "load-cert\0"
+/*  1452 */ "Read OCSP trust anchors from file\0"
+/*  1486 */ "LOAD_TRUST\0"
+/*  1497 */ "load-trust\0"
+/*  1508 */ "Read OCSP response signer from file\0"
+/*  1544 */ "LOAD_SIGNER\0"
+/*  1556 */ "load-signer\0"
+/*  1568 */ "Use DER format for input certificates and private keys\0"
+/*  1623 */ "INDER\0"
+/*  1629 */ "no-inder\0"
+/*  1638 */ "Read DER encoded OCSP request from file\0"
+/*  1678 */ "LOAD_REQUEST\0"
+/*  1691 */ "load-request\0"
+/*  1704 */ "Read DER encoded OCSP response from file\0"
+/*  1745 */ "LOAD_RESPONSE\0"
+/*  1759 */ "load-response\0"
+/*  1773 */ "display extended usage information and exit\0"
+/*  1817 */ "help\0"
+/*  1822 */ "extended usage information passed thru pager\0"
+/*  1867 */ "more-help\0"
+/*  1877 */ "output version information and exit\0"
+/*  1913 */ "version\0"
+/*  1921 */ "OCSPTOOL\0"
+/*  1930 */ "ocsptool - GnuTLS OCSP tool\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/*  2016 */ "bug-gnutls@gnu.org\0"
+/*  2035 */ "\n\0"
+/*  2037 */ "Ocsptool is a program that can parse and print information about OCSP\n"
             "requests/responses, generate requests and verify responses.\n\0"
-/*  2188 */ "ocsptool 3.0.21\0"
-/*  2204 */ "ocsptool [options]\n"
+/*  2168 */ "ocsptool 3.0.30\0"
+/*  2184 */ "ocsptool [options]\n"
             "ocsptool --help for usage instructions.\n";
 
-/*
+/**
  *  debug option description:
  */
-#define DEBUG_DESC      (ocsptool_opt_strs+881)
-#define DEBUG_NAME      (ocsptool_opt_strs+899)
-#define DEBUG_name      (ocsptool_opt_strs+905)
+/** Descriptive text for the debug option */
+#define DEBUG_DESC      (ocsptool_opt_strs+877)
+/** Upper-cased name for the debug option */
+#define DEBUG_NAME      (ocsptool_opt_strs+895)
+/** Name string for the debug option */
+#define DEBUG_name      (ocsptool_opt_strs+901)
+/** Compiled in flag settings for the debug option */
 #define DEBUG_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  verbose option description:
  */
-#define VERBOSE_DESC      (ocsptool_opt_strs+911)
-#define VERBOSE_NAME      (ocsptool_opt_strs+931)
-#define VERBOSE_name      (ocsptool_opt_strs+939)
+/** Descriptive text for the verbose option */
+#define VERBOSE_DESC      (ocsptool_opt_strs+907)
+/** Upper-cased name for the verbose option */
+#define VERBOSE_NAME      (ocsptool_opt_strs+927)
+/** Name string for the verbose option */
+#define VERBOSE_name      (ocsptool_opt_strs+935)
+/** Compiled in flag settings for the verbose option */
 #define VERBOSE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  infile option description:
  */
-#define INFILE_DESC      (ocsptool_opt_strs+947)
-#define INFILE_NAME      (ocsptool_opt_strs+958)
-#define INFILE_name      (ocsptool_opt_strs+965)
+/** Descriptive text for the infile option */
+#define INFILE_DESC      (ocsptool_opt_strs+943)
+/** Upper-cased name for the infile option */
+#define INFILE_NAME      (ocsptool_opt_strs+954)
+/** Name string for the infile option */
+#define INFILE_name      (ocsptool_opt_strs+961)
+/** Compiled in flag settings for the infile option */
 #define INFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  outfile option description:
  */
-#define OUTFILE_DESC      (ocsptool_opt_strs+972)
-#define OUTFILE_NAME      (ocsptool_opt_strs+984)
-#define OUTFILE_name      (ocsptool_opt_strs+992)
+/** Descriptive text for the outfile option */
+#define OUTFILE_DESC      (ocsptool_opt_strs+968)
+/** Upper-cased name for the outfile option */
+#define OUTFILE_NAME      (ocsptool_opt_strs+980)
+/** Name string for the outfile option */
+#define OUTFILE_name      (ocsptool_opt_strs+988)
+/** Compiled in flag settings for the outfile option */
 #define OUTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  ask option description with
  *  "Must also have options" and "Incompatible options":
  */
-#define ASK_DESC      (ocsptool_opt_strs+1000)
-#define ASK_NAME      (ocsptool_opt_strs+1050)
-#define ASK_name      (ocsptool_opt_strs+1054)
+/** Descriptive text for the ask option */
+#define ASK_DESC      (ocsptool_opt_strs+996)
+/** Upper-cased name for the ask option */
+#define ASK_NAME      (ocsptool_opt_strs+1046)
+/** Name string for the ask option */
+#define ASK_name      (ocsptool_opt_strs+1050)
+/** Other options that are required by the ask option */
 static int const aAskMustList[] = {
     INDEX_OPT_LOAD_CERT,
     INDEX_OPT_LOAD_ISSUER, NO_EQUIVALENT };
+/** Compiled in flag settings for the ask option */
 #define ASK_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | OPTST_ARG_OPTIONAL)
 
-/*
+/**
  *  verify-response option description:
  */
-#define VERIFY_RESPONSE_DESC      (ocsptool_opt_strs+1058)
-#define VERIFY_RESPONSE_NAME      (ocsptool_opt_strs+1074)
-#define VERIFY_RESPONSE_name      (ocsptool_opt_strs+1090)
+/** Descriptive text for the verify-response option */
+#define VERIFY_RESPONSE_DESC      (ocsptool_opt_strs+1054)
+/** Upper-cased name for the verify-response option */
+#define VERIFY_RESPONSE_NAME      (ocsptool_opt_strs+1070)
+/** Name string for the verify-response option */
+#define VERIFY_RESPONSE_name      (ocsptool_opt_strs+1086)
+/** Compiled in flag settings for the verify-response option */
 #define VERIFY_RESPONSE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  request-info option description:
  */
-#define REQUEST_INFO_DESC      (ocsptool_opt_strs+1106)
-#define REQUEST_INFO_NAME      (ocsptool_opt_strs+1142)
-#define REQUEST_INFO_name      (ocsptool_opt_strs+1155)
+/** Descriptive text for the request-info option */
+#define REQUEST_INFO_DESC      (ocsptool_opt_strs+1102)
+/** Upper-cased name for the request-info option */
+#define REQUEST_INFO_NAME      (ocsptool_opt_strs+1138)
+/** Name string for the request-info option */
+#define REQUEST_INFO_name      (ocsptool_opt_strs+1151)
+/** Compiled in flag settings for the request-info option */
 #define REQUEST_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  response-info option description:
  */
-#define RESPONSE_INFO_DESC      (ocsptool_opt_strs+1168)
-#define RESPONSE_INFO_NAME      (ocsptool_opt_strs+1205)
-#define RESPONSE_INFO_name      (ocsptool_opt_strs+1219)
+/** Descriptive text for the response-info option */
+#define RESPONSE_INFO_DESC      (ocsptool_opt_strs+1164)
+/** Upper-cased name for the response-info option */
+#define RESPONSE_INFO_NAME      (ocsptool_opt_strs+1201)
+/** Name string for the response-info option */
+#define RESPONSE_INFO_name      (ocsptool_opt_strs+1215)
+/** Compiled in flag settings for the response-info option */
 #define RESPONSE_INFO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-request option description:
  */
-#define GENERATE_REQUEST_DESC      (ocsptool_opt_strs+1233)
-#define GENERATE_REQUEST_NAME      (ocsptool_opt_strs+1258)
-#define GENERATE_REQUEST_name      (ocsptool_opt_strs+1275)
+/** Descriptive text for the generate-request option */
+#define GENERATE_REQUEST_DESC      (ocsptool_opt_strs+1229)
+/** Upper-cased name for the generate-request option */
+#define GENERATE_REQUEST_NAME      (ocsptool_opt_strs+1254)
+/** Name string for the generate-request option */
+#define GENERATE_REQUEST_name      (ocsptool_opt_strs+1271)
+/** Compiled in flag settings for the generate-request option */
 #define GENERATE_REQUEST_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  nonce option description:
  */
-#define NONCE_DESC      (ocsptool_opt_strs+1292)
-#define NONCE_NAME      (ocsptool_opt_strs+1324)
-#define NOT_NONCE_name  (ocsptool_opt_strs+1330)
-#define NOT_NONCE_PFX   (ocsptool_opt_strs+1339)
+/** Descriptive text for the nonce option */
+#define NONCE_DESC      (ocsptool_opt_strs+1288)
+/** Upper-cased name for the nonce option */
+#define NONCE_NAME      (ocsptool_opt_strs+1320)
+/** disablement name for the nonce option */
+#define NOT_NONCE_name  (ocsptool_opt_strs+1326)
+/** disablement prefix for the nonce option */
+#define NOT_NONCE_PFX   (ocsptool_opt_strs+1335)
+/** Name string for the nonce option */
 #define NONCE_name      (NOT_NONCE_name + 3)
+/** Compiled in flag settings for the nonce option */
 #define NONCE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  load-issuer option description:
  */
-#define LOAD_ISSUER_DESC      (ocsptool_opt_strs+1342)
-#define LOAD_ISSUER_NAME      (ocsptool_opt_strs+1376)
-#define LOAD_ISSUER_name      (ocsptool_opt_strs+1388)
+/** Descriptive text for the load-issuer option */
+#define LOAD_ISSUER_DESC      (ocsptool_opt_strs+1338)
+/** Upper-cased name for the load-issuer option */
+#define LOAD_ISSUER_NAME      (ocsptool_opt_strs+1372)
+/** Name string for the load-issuer option */
+#define LOAD_ISSUER_name      (ocsptool_opt_strs+1384)
+/** Compiled in flag settings for the load-issuer option */
 #define LOAD_ISSUER_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  load-cert option description:
  */
-#define LOAD_CERT_DESC      (ocsptool_opt_strs+1400)
-#define LOAD_CERT_NAME      (ocsptool_opt_strs+1436)
-#define LOAD_CERT_name      (ocsptool_opt_strs+1446)
+/** Descriptive text for the load-cert option */
+#define LOAD_CERT_DESC      (ocsptool_opt_strs+1396)
+/** Upper-cased name for the load-cert option */
+#define LOAD_CERT_NAME      (ocsptool_opt_strs+1432)
+/** Name string for the load-cert option */
+#define LOAD_CERT_name      (ocsptool_opt_strs+1442)
+/** Compiled in flag settings for the load-cert option */
 #define LOAD_CERT_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  load-trust option description with
  *  "Must also have options" and "Incompatible options":
  */
-#define LOAD_TRUST_DESC      (ocsptool_opt_strs+1456)
-#define LOAD_TRUST_NAME      (ocsptool_opt_strs+1490)
-#define LOAD_TRUST_name      (ocsptool_opt_strs+1501)
+/** Descriptive text for the load-trust option */
+#define LOAD_TRUST_DESC      (ocsptool_opt_strs+1452)
+/** Upper-cased name for the load-trust option */
+#define LOAD_TRUST_NAME      (ocsptool_opt_strs+1486)
+/** Name string for the load-trust option */
+#define LOAD_TRUST_name      (ocsptool_opt_strs+1497)
+/** Other options that appear in conjunction with the load-trust option */
 static int const aLoad_TrustCantList[] = {
     INDEX_OPT_LOAD_SIGNER, NO_EQUIVALENT };
+/** Compiled in flag settings for the load-trust option */
 #define LOAD_TRUST_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  load-signer option description with
  *  "Must also have options" and "Incompatible options":
  */
-#define LOAD_SIGNER_DESC      (ocsptool_opt_strs+1512)
-#define LOAD_SIGNER_NAME      (ocsptool_opt_strs+1548)
-#define LOAD_SIGNER_name      (ocsptool_opt_strs+1560)
+/** Descriptive text for the load-signer option */
+#define LOAD_SIGNER_DESC      (ocsptool_opt_strs+1508)
+/** Upper-cased name for the load-signer option */
+#define LOAD_SIGNER_NAME      (ocsptool_opt_strs+1544)
+/** Name string for the load-signer option */
+#define LOAD_SIGNER_name      (ocsptool_opt_strs+1556)
+/** Other options that appear in conjunction with the load-signer option */
 static int const aLoad_SignerCantList[] = {
     INDEX_OPT_LOAD_TRUST, NO_EQUIVALENT };
+/** Compiled in flag settings for the load-signer option */
 #define LOAD_SIGNER_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  inder option description:
  */
-#define INDER_DESC      (ocsptool_opt_strs+1572)
-#define INDER_NAME      (ocsptool_opt_strs+1627)
-#define NOT_INDER_name  (ocsptool_opt_strs+1633)
-#define NOT_INDER_PFX   (ocsptool_opt_strs+1339)
+/** Descriptive text for the inder option */
+#define INDER_DESC      (ocsptool_opt_strs+1568)
+/** Upper-cased name for the inder option */
+#define INDER_NAME      (ocsptool_opt_strs+1623)
+/** disablement name for the inder option */
+#define NOT_INDER_name  (ocsptool_opt_strs+1629)
+/** disablement prefix for the inder option */
+#define NOT_INDER_PFX   (ocsptool_opt_strs+1335)
+/** Name string for the inder option */
 #define INDER_name      (NOT_INDER_name + 3)
+/** Compiled in flag settings for the inder option */
 #define INDER_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  load-request option description:
  */
-#define LOAD_REQUEST_DESC      (ocsptool_opt_strs+1642)
-#define LOAD_REQUEST_NAME      (ocsptool_opt_strs+1682)
-#define LOAD_REQUEST_name      (ocsptool_opt_strs+1695)
+/** Descriptive text for the load-request option */
+#define LOAD_REQUEST_DESC      (ocsptool_opt_strs+1638)
+/** Upper-cased name for the load-request option */
+#define LOAD_REQUEST_NAME      (ocsptool_opt_strs+1678)
+/** Name string for the load-request option */
+#define LOAD_REQUEST_name      (ocsptool_opt_strs+1691)
+/** Compiled in flag settings for the load-request option */
 #define LOAD_REQUEST_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  load-response option description:
  */
-#define LOAD_RESPONSE_DESC      (ocsptool_opt_strs+1708)
-#define LOAD_RESPONSE_NAME      (ocsptool_opt_strs+1749)
-#define LOAD_RESPONSE_name      (ocsptool_opt_strs+1763)
+/** Descriptive text for the load-response option */
+#define LOAD_RESPONSE_DESC      (ocsptool_opt_strs+1704)
+/** Upper-cased name for the load-response option */
+#define LOAD_RESPONSE_NAME      (ocsptool_opt_strs+1745)
+/** Name string for the load-response option */
+#define LOAD_RESPONSE_name      (ocsptool_opt_strs+1759)
+/** Compiled in flag settings for the load-response option */
 #define LOAD_RESPONSE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (ocsptool_opt_strs+1777)
-#define HELP_name       (ocsptool_opt_strs+1821)
+#define HELP_DESC       (ocsptool_opt_strs+1773)
+#define HELP_name       (ocsptool_opt_strs+1817)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (ocsptool_opt_strs+1826)
-#define MORE_HELP_name  (ocsptool_opt_strs+1871)
+#define MORE_HELP_DESC  (ocsptool_opt_strs+1822)
+#define MORE_HELP_name  (ocsptool_opt_strs+1867)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -334,9 +403,9 @@ static int const aLoad_SignerCantList[] = {
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (ocsptool_opt_strs+1881)
-#define VER_name        (ocsptool_opt_strs+1917)
-/*
+#define VER_DESC        (ocsptool_opt_strs+1877)
+#define VER_name        (ocsptool_opt_strs+1913)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -565,7 +634,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -579,7 +648,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -591,7 +660,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -601,19 +670,24 @@ static tOptDesc optDesc[OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the ocsptool Option Environment
- */
-#define zPROGNAME       (ocsptool_opt_strs+1925)
-#define zUsageTitle     (ocsptool_opt_strs+1934)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of ocsptool. */
+#define zPROGNAME       (ocsptool_opt_strs+1921)
+/** Reference to the title line for ocsptool usage. */
+#define zUsageTitle     (ocsptool_opt_strs+1930)
+/** There is no ocsptool configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for ocsptool config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (ocsptool_opt_strs+2034)
-#define zExplain        (ocsptool_opt_strs+2053)
-#define zDetail         (ocsptool_opt_strs+2056)
-#define zFullVersion    (ocsptool_opt_strs+2188)
-/* extracted from optcode.tlib near line 350 */
+/** The ocsptool program bug email address. */
+#define zBugsAddr       (ocsptool_opt_strs+2016)
+/** Clarification/explanation of what ocsptool does. */
+#define zExplain        (ocsptool_opt_strs+2035)
+/** Extra detail explaining what ocsptool does. */
+#define zDetail         (ocsptool_opt_strs+2037)
+/** The full version string for ocsptool. */
+#define zFullVersion    (ocsptool_opt_strs+2168)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -623,10 +697,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define ocsptool_full_usage (NULL)
-
-#define ocsptool_short_usage (ocsptool_opt_strs+2204)
+#define ocsptool_short_usage (ocsptool_opt_strs+2184)
 
 #endif /* not defined __doxygen__ */
 
@@ -636,8 +708,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 /**
  * The callout function that invokes the optionUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -652,9 +724,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the debug option.
- *
- * @param pOptions the ocsptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * Specifies the debug level.
+ * @param[in] pOptions the ocsptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -680,8 +752,7 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -689,8 +760,8 @@ emit_ranges:
 /**
  * Code to handle the infile option.
  *
- * @param pOptions the ocsptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the ocsptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -703,6 +774,9 @@ doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -710,8 +784,8 @@ doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-issuer option.
  *
- * @param pOptions the ocsptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the ocsptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Issuer(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -724,6 +798,9 @@ doOptLoad_Issuer(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -731,8 +808,8 @@ doOptLoad_Issuer(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-cert option.
  *
- * @param pOptions the ocsptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the ocsptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Cert(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -745,6 +822,9 @@ doOptLoad_Cert(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -752,8 +832,8 @@ doOptLoad_Cert(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-trust option.
  *
- * @param pOptions the ocsptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the ocsptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Trust(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -766,6 +846,9 @@ doOptLoad_Trust(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -773,8 +856,8 @@ doOptLoad_Trust(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-signer option.
  *
- * @param pOptions the ocsptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the ocsptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Signer(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -787,6 +870,9 @@ doOptLoad_Signer(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -794,8 +880,8 @@ doOptLoad_Signer(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-request option.
  *
- * @param pOptions the ocsptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the ocsptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -808,6 +894,9 @@ doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -815,8 +904,8 @@ doOptLoad_Request(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-response option.
  *
- * @param pOptions the ocsptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the ocsptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Response(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -829,9 +918,12 @@ doOptLoad_Response(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with ocsptool.
@@ -847,6 +939,7 @@ doOptLoad_Response(tOptions* pOptions, tOptDesc* pOptDesc)
 #ifndef  WITH_PACKAGER
 # define ocsptool_packager_info NULL
 #else
+/** Packager information for ocsptool. */
 static char const ocsptool_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -902,42 +995,69 @@ tOptions ocsptoolOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * ocsptool program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(OCSPTOOL_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -947,56 +1067,453 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &ocsptoolOptions;
+    tOptions * const opts = &ocsptoolOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
-
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        coerce_it((void*)&(pOpt->pzShortUsage));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
+
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        ocsptoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the ocsptoolOptions structure noted in the comments below.  The
+     literal text is defined in ocsptool_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     ocsptool_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via ocsptoolOptions.pzCopyright */
+  puts(_("ocsptool 3.0.30\n\
+Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU General Public License,\n\
+version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
+
+  /* referenced via ocsptoolOptions.pzCopyNotice */
+  puts(_("ocsptool is free software: you can redistribute it and/or modify it under\n\
+the terms of the GNU General Public License as published by the Free\n\
+Software Foundation, either version 3 of the License, or (at your option)\n\
+any later version.\n\n"));
+  puts(_("ocsptool is distributed in the hope that it will be useful, but WITHOUT ANY\n\
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more\n\
+details.\n\n"));
+  puts(_("You should have received a copy of the GNU General Public License along\n\
+with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Enable debugging."));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("More verbose output"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Input file"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Output file"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Ask an OCSP/HTTP server on a certificate validity"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Verify response"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Print information on a OCSP request"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Print information on a OCSP response"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Generate an OCSP request"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Don't add nonce to OCSP request"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Read issuer certificate from file"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Read certificate to check from file"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Read OCSP trust anchors from file"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Read OCSP response signer from file"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Use DER format for input certificates and private keys"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Read DER encoded OCSP request from file"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("Read DER encoded OCSP response from file"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via ocsptoolOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via ocsptoolOptions.pzUsageTitle */
+  puts(_("ocsptool - GnuTLS OCSP tool\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
+
+  /* referenced via ocsptoolOptions.pzExplain */
+  puts(_("\n"));
+
+  /* referenced via ocsptoolOptions.pzDetail */
+  puts(_("Ocsptool is a program that can parse and print information about OCSP\n\
+requests/responses, generate requests and verify responses.\n"));
+
+  /* referenced via ocsptoolOptions.pzFullVersion */
+  puts(_("ocsptool 3.0.30"));
+
+  /* referenced via ocsptoolOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via ocsptoolOptions.pzShortUsage */
+  puts(_("ocsptool [options]\n\
+ocsptool --help for usage instructions.\n"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index c87a587..f0151a7 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (ocsptool-args.h)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:48 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:15 PM by AutoGen 5.17.3
  *  From the definitions    ocsptool-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  ocsptool 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.
- *  
+ *
  *  ocsptool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the ocsptool program.
  *  These macros are documented in the AutoGen info file in the
 #include "config.h"
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for ocsptool
  */
 typedef enum {
     INDEX_OPT_DEBUG             =  0,
@@ -88,44 +87,63 @@ typedef enum {
     INDEX_OPT_HELP              = 18,
     INDEX_OPT_MORE_HELP         = 19
 } teOptIndex;
-
+/** count of all options for ocsptool */
 #define OPTION_CT    20
-#define OCSPTOOL_VERSION       "3.0.21"
-#define OCSPTOOL_FULL_VERSION  "ocsptool 3.0.21"
+/** ocsptool version */
+#define OCSPTOOL_VERSION       "3.0.30"
+/** Full ocsptool version text */
+#define OCSPTOOL_FULL_VERSION  "ocsptool 3.0.30"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teOptIndex enumeration above).
  *  e.g. HAVE_OPT(DEBUG)
  */
 #define         DESC(n) (ocsptoolOptions.pOptDesc[INDEX_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      OPT_ARG(n) (DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_OPT(n) (DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_OPT(n) STMTS( \
                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     DESC(n).fOptState |= OPTST_DISABLED; \
                 DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of ocsptool exit codes
  */
 typedef enum {
-    OCSPTOOL_EXIT_SUCCESS = 0,
-    OCSPTOOL_EXIT_FAILURE = 1,
-    OCSPTOOL_EXIT_LIBOPTS_FAILURE = 70
+    OCSPTOOL_EXIT_SUCCESS           = 0,
+    OCSPTOOL_EXIT_FAILURE           = 1,
+    OCSPTOOL_EXIT_USAGE_ERROR       = 64,
+    OCSPTOOL_EXIT_LIBOPTS_FAILURE   = 70
 } ocsptool_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_OPT_DEBUG          'd'
 
@@ -146,8 +164,11 @@ typedef enum {
 #define VALUE_OPT_INDER          14
 #define VALUE_OPT_LOAD_REQUEST   'Q'
 #define VALUE_OPT_LOAD_RESPONSE  'S'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_MORE_HELP     '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_VERSION       'v'
 /*
  *  Interface defines not associated with particular options
@@ -159,7 +180,7 @@ typedef enum {
                 ocsptoolOptions.pzCurOpt  = NULL)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*ocsptoolOptions.pUsageProc)(&ocsptoolOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -179,6 +200,12 @@ extern tOptions ocsptoolOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
index 639e2c8..2c90878 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (p11tool-args.c)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:51 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:18 PM by AutoGen 5.17.3
  *  From the definitions    p11tool-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  p11tool 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.
- *  
+ *
  *  p11tool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (p11tool_opt_strs+0)
-#define zLicenseDescrip (p11tool_opt_strs+275)
+#define zLicenseDescrip (p11tool_opt_strs+271)
 
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
-/*
- *  p11tool option static const strings
+/**
+ *  static const strings for p11tool options
  */
-static char const p11tool_opt_strs[3146] =
-/*     0 */ "p11tool 3.0.21\n"
+static char const p11tool_opt_strs[3129] =
+/*     0 */ "p11tool 3.0.30\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   275 */ "p11tool is free software: you can redistribute it and/or modify it under\n"
+            "redistribution under the terms of the GNU General Public License,\n"
+            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
+/*   271 */ "p11tool is free software: you can redistribute it and/or modify it under\n"
             "the terms of the GNU General Public License as published by the Free\n"
             "Software Foundation, either version 3 of the License, or (at your option)\n"
             "any later version.\n\n"
@@ -84,394 +79,526 @@ static char const p11tool_opt_strs[3146] =
             "details.\n\n"
             "You should have received a copy of the GNU General Public License along\n"
             "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   878 */ "Enable debugging.\0"
-/*   896 */ "DEBUG\0"
-/*   902 */ "debug\0"
-/*   908 */ "Output file\0"
-/*   920 */ "OUTFILE\0"
-/*   928 */ "outfile\0"
-/*   936 */ "List all available tokens\0"
-/*   962 */ "LIST_TOKENS\0"
-/*   974 */ "list-tokens\0"
-/*   986 */ "Export the object specified by the URL\0"
-/*  1025 */ "EXPORT\0"
-/*  1032 */ "export\0"
-/*  1039 */ "List all available mechanisms in a token\0"
-/*  1080 */ "LIST_MECHANISMS\0"
-/*  1096 */ "list-mechanisms\0"
-/*  1112 */ "List all available objects in a token\0"
-/*  1150 */ "LIST_ALL\0"
-/*  1159 */ "list-all\0"
-/*  1168 */ "List all available certificates in a token\0"
-/*  1211 */ "LIST_ALL_CERTS\0"
-/*  1226 */ "list-all-certs\0"
-/*  1241 */ "List all certificates that have an associated private key\0"
-/*  1299 */ "LIST_CERTS\0"
-/*  1310 */ "list-certs\0"
-/*  1321 */ "List all available private keys in a token\0"
-/*  1364 */ "LIST_ALL_PRIVKEYS\0"
-/*  1382 */ "list-all-privkeys\0"
-/*  1400 */ "List all available certificates marked as trusted\0"
-/*  1450 */ "LIST_ALL_TRUSTED\0"
-/*  1467 */ "list-all-trusted\0"
-/*  1484 */ "Initializes a PKCS #11 token\0"
-/*  1513 */ "INITIALIZE\0"
-/*  1524 */ "initialize\0"
-/*  1535 */ "Writes the loaded objects to a PKCS #11 token\0"
-/*  1581 */ "WRITE\0"
-/*  1587 */ "write\0"
-/*  1593 */ "Deletes the objects matching the PKCS #11 URL\0"
-/*  1639 */ "DELETE\0"
-/*  1646 */ "delete\0"
-/*  1653 */ "Generate an RSA private-public key pair\0"
-/*  1693 */ "GENERATE_RSA\0"
-/*  1706 */ "generate-rsa\0"
-/*  1719 */ "GENERATE_DSA\0"
-/*  1732 */ "generate-dsa\0"
-/*  1745 */ "GENERATE_ECC\0"
-/*  1758 */ "generate-ecc\0"
-/*  1771 */ "Sets a label for the write operation\0"
-/*  1808 */ "LABEL\0"
-/*  1814 */ "label\0"
-/*  1820 */ "Marks the object to be written as trusted\0"
-/*  1862 */ "TRUSTED\0"
-/*  1870 */ "no-trusted\0"
-/*  1881 */ "no\0"
-/*  1884 */ "Marks the object to be written as private\0"
-/*  1926 */ "PRIVATE\0"
-/*  1934 */ "no-private\0"
-/*  1945 */ "Force login to token\0"
-/*  1966 */ "LOGIN\0"
-/*  1972 */ "no-login\0"
-/*  1981 */ "Print detailed URLs\0"
-/*  2001 */ "DETAILED_URL\0"
-/*  2014 */ "no-detailed-url\0"
-/*  2030 */ "Provide a hex encoded secret key\0"
-/*  2063 */ "SECRET_KEY\0"
-/*  2074 */ "secret-key\0"
-/*  2085 */ "Private key file to use\0"
-/*  2109 */ "LOAD_PRIVKEY\0"
-/*  2122 */ "load-privkey\0"
-/*  2135 */ "Public key file to use\0"
-/*  2158 */ "LOAD_PUBKEY\0"
-/*  2170 */ "load-pubkey\0"
-/*  2182 */ "Certificate file to use\0"
-/*  2206 */ "LOAD_CERTIFICATE\0"
-/*  2223 */ "load-certificate\0"
-/*  2240 */ "Use PKCS #8 format for private keys\0"
-/*  2276 */ "PKCS8\0"
-/*  2282 */ "pkcs8\0"
-/*  2288 */ "Specify the number of bits for key generate\0"
-/*  2332 */ "BITS\0"
-/*  2337 */ "bits\0"
-/*  2342 */ "Specify the security level\0"
-/*  2369 */ "SEC_PARAM\0"
-/*  2379 */ "sec-param\0"
-/*  2389 */ "Use DER/RAW format for input\0"
-/*  2418 */ "INDER\0"
-/*  2424 */ "no-inder\0"
-/*  2433 */ "This is an alias for 'inder'\0"
-/*  2462 */ "inraw\0"
-/*  2468 */ "Specify the PKCS #11 provider library\0"
-/*  2506 */ "PROVIDER\0"
-/*  2515 */ "provider\0"
-/*  2524 */ "Display extended usage information and exit\0"
-/*  2568 */ "help\0"
-/*  2573 */ "Extended usage information passed thru pager\0"
-/*  2618 */ "more-help\0"
-/*  2628 */ "Output version information and exit\0"
-/*  2664 */ "version\0"
-/*  2672 */ "P11TOOL\0"
-/*  2680 */ "p11tool - GnuTLS PKCS #11 tool - Ver. 3.0.21\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [url]\n\0"
-/*  2789 */ "bug-gnutls@gnu.org\0"
-/*  2808 */ "\n\n\0"
-/*  2811 */ "\n"
-            "Program that allows handling data from PKCS #11 smart cards and security\n"
+/*   874 */ "Enable debugging.\0"
+/*   892 */ "DEBUG\0"
+/*   898 */ "debug\0"
+/*   904 */ "Output file\0"
+/*   916 */ "OUTFILE\0"
+/*   924 */ "outfile\0"
+/*   932 */ "List all available tokens\0"
+/*   958 */ "LIST_TOKENS\0"
+/*   970 */ "list-tokens\0"
+/*   982 */ "Export the object specified by the URL\0"
+/*  1021 */ "EXPORT\0"
+/*  1028 */ "export\0"
+/*  1035 */ "List all available mechanisms in a token\0"
+/*  1076 */ "LIST_MECHANISMS\0"
+/*  1092 */ "list-mechanisms\0"
+/*  1108 */ "List all available objects in a token\0"
+/*  1146 */ "LIST_ALL\0"
+/*  1155 */ "list-all\0"
+/*  1164 */ "List all available certificates in a token\0"
+/*  1207 */ "LIST_ALL_CERTS\0"
+/*  1222 */ "list-all-certs\0"
+/*  1237 */ "List all certificates that have an associated private key\0"
+/*  1295 */ "LIST_CERTS\0"
+/*  1306 */ "list-certs\0"
+/*  1317 */ "List all available private keys in a token\0"
+/*  1360 */ "LIST_ALL_PRIVKEYS\0"
+/*  1378 */ "list-all-privkeys\0"
+/*  1396 */ "List all available certificates marked as trusted\0"
+/*  1446 */ "LIST_ALL_TRUSTED\0"
+/*  1463 */ "list-all-trusted\0"
+/*  1480 */ "Initializes a PKCS #11 token\0"
+/*  1509 */ "INITIALIZE\0"
+/*  1520 */ "initialize\0"
+/*  1531 */ "Writes the loaded objects to a PKCS #11 token\0"
+/*  1577 */ "WRITE\0"
+/*  1583 */ "write\0"
+/*  1589 */ "Deletes the objects matching the PKCS #11 URL\0"
+/*  1635 */ "DELETE\0"
+/*  1642 */ "delete\0"
+/*  1649 */ "Generate an RSA private-public key pair\0"
+/*  1689 */ "GENERATE_RSA\0"
+/*  1702 */ "generate-rsa\0"
+/*  1715 */ "GENERATE_DSA\0"
+/*  1728 */ "generate-dsa\0"
+/*  1741 */ "GENERATE_ECC\0"
+/*  1754 */ "generate-ecc\0"
+/*  1767 */ "Sets a label for the write operation\0"
+/*  1804 */ "LABEL\0"
+/*  1810 */ "label\0"
+/*  1816 */ "Marks the object to be written as trusted\0"
+/*  1858 */ "TRUSTED\0"
+/*  1866 */ "no-trusted\0"
+/*  1877 */ "no\0"
+/*  1880 */ "Marks the object to be written as private\0"
+/*  1922 */ "PRIVATE\0"
+/*  1930 */ "no-private\0"
+/*  1941 */ "Force login to token\0"
+/*  1962 */ "LOGIN\0"
+/*  1968 */ "no-login\0"
+/*  1977 */ "Print detailed URLs\0"
+/*  1997 */ "DETAILED_URL\0"
+/*  2010 */ "no-detailed-url\0"
+/*  2026 */ "Provide a hex encoded secret key\0"
+/*  2059 */ "SECRET_KEY\0"
+/*  2070 */ "secret-key\0"
+/*  2081 */ "Private key file to use\0"
+/*  2105 */ "LOAD_PRIVKEY\0"
+/*  2118 */ "load-privkey\0"
+/*  2131 */ "Public key file to use\0"
+/*  2154 */ "LOAD_PUBKEY\0"
+/*  2166 */ "load-pubkey\0"
+/*  2178 */ "Certificate file to use\0"
+/*  2202 */ "LOAD_CERTIFICATE\0"
+/*  2219 */ "load-certificate\0"
+/*  2236 */ "Use PKCS #8 format for private keys\0"
+/*  2272 */ "PKCS8\0"
+/*  2278 */ "pkcs8\0"
+/*  2284 */ "Specify the number of bits for key generate\0"
+/*  2328 */ "BITS\0"
+/*  2333 */ "bits\0"
+/*  2338 */ "Specify the security level\0"
+/*  2365 */ "SEC_PARAM\0"
+/*  2375 */ "sec-param\0"
+/*  2385 */ "Use DER/RAW format for input\0"
+/*  2414 */ "INDER\0"
+/*  2420 */ "no-inder\0"
+/*  2429 */ "an alias for the 'inder' option\0"
+/*  2461 */ "inraw\0"
+/*  2467 */ "Specify the PKCS #11 provider library\0"
+/*  2505 */ "PROVIDER\0"
+/*  2514 */ "provider\0"
+/*  2523 */ "display extended usage information and exit\0"
+/*  2567 */ "help\0"
+/*  2572 */ "extended usage information passed thru pager\0"
+/*  2617 */ "more-help\0"
+/*  2627 */ "output version information and exit\0"
+/*  2663 */ "version\0"
+/*  2671 */ "P11TOOL\0"
+/*  2679 */ "p11tool - GnuTLS PKCS #11 tool\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [url]\n\0"
+/*  2774 */ "bug-gnutls@gnu.org\0"
+/*  2793 */ "\n\0"
+/*  2795 */ "Program that allows handling data from PKCS #11 smart cards and security\n"
             "modules.\n\n"
             "To use PKCS #11 tokens with gnutls the configuration file\n"
             "/etc/gnutls/pkcs11.conf has to exist and contain a number of lines of the\n"
             "form 'load=/usr/lib/opensc-pkcs11.so'.\n\0"
-/*  3067 */ "p11tool 3.0.21\0"
-/*  3082 */ "p11tool [options] [url]\n"
+/*  3050 */ "p11tool 3.0.30\0"
+/*  3065 */ "p11tool [options] [url]\n"
             "p11tool --help for usage instructions.\n";
 
-/*
+/**
  *  debug option description:
  */
-#define DEBUG_DESC      (p11tool_opt_strs+878)
-#define DEBUG_NAME      (p11tool_opt_strs+896)
-#define DEBUG_name      (p11tool_opt_strs+902)
+/** Descriptive text for the debug option */
+#define DEBUG_DESC      (p11tool_opt_strs+874)
+/** Upper-cased name for the debug option */
+#define DEBUG_NAME      (p11tool_opt_strs+892)
+/** Name string for the debug option */
+#define DEBUG_name      (p11tool_opt_strs+898)
+/** Compiled in flag settings for the debug option */
 #define DEBUG_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  outfile option description:
  */
-#define OUTFILE_DESC      (p11tool_opt_strs+908)
-#define OUTFILE_NAME      (p11tool_opt_strs+920)
-#define OUTFILE_name      (p11tool_opt_strs+928)
+/** Descriptive text for the outfile option */
+#define OUTFILE_DESC      (p11tool_opt_strs+904)
+/** Upper-cased name for the outfile option */
+#define OUTFILE_NAME      (p11tool_opt_strs+916)
+/** Name string for the outfile option */
+#define OUTFILE_name      (p11tool_opt_strs+924)
+/** Compiled in flag settings for the outfile option */
 #define OUTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  list-tokens option description:
  */
-#define LIST_TOKENS_DESC      (p11tool_opt_strs+936)
-#define LIST_TOKENS_NAME      (p11tool_opt_strs+962)
-#define LIST_TOKENS_name      (p11tool_opt_strs+974)
+/** Descriptive text for the list-tokens option */
+#define LIST_TOKENS_DESC      (p11tool_opt_strs+932)
+/** Upper-cased name for the list-tokens option */
+#define LIST_TOKENS_NAME      (p11tool_opt_strs+958)
+/** Name string for the list-tokens option */
+#define LIST_TOKENS_name      (p11tool_opt_strs+970)
+/** Compiled in flag settings for the list-tokens option */
 #define LIST_TOKENS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  export option description:
  */
-#define EXPORT_DESC      (p11tool_opt_strs+986)
-#define EXPORT_NAME      (p11tool_opt_strs+1025)
-#define EXPORT_name      (p11tool_opt_strs+1032)
+/** Descriptive text for the export option */
+#define EXPORT_DESC      (p11tool_opt_strs+982)
+/** Upper-cased name for the export option */
+#define EXPORT_NAME      (p11tool_opt_strs+1021)
+/** Name string for the export option */
+#define EXPORT_name      (p11tool_opt_strs+1028)
+/** Compiled in flag settings for the export option */
 #define EXPORT_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  list-mechanisms option description:
  */
-#define LIST_MECHANISMS_DESC      (p11tool_opt_strs+1039)
-#define LIST_MECHANISMS_NAME      (p11tool_opt_strs+1080)
-#define LIST_MECHANISMS_name      (p11tool_opt_strs+1096)
+/** Descriptive text for the list-mechanisms option */
+#define LIST_MECHANISMS_DESC      (p11tool_opt_strs+1035)
+/** Upper-cased name for the list-mechanisms option */
+#define LIST_MECHANISMS_NAME      (p11tool_opt_strs+1076)
+/** Name string for the list-mechanisms option */
+#define LIST_MECHANISMS_name      (p11tool_opt_strs+1092)
+/** Compiled in flag settings for the list-mechanisms option */
 #define LIST_MECHANISMS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  list-all option description:
  */
-#define LIST_ALL_DESC      (p11tool_opt_strs+1112)
-#define LIST_ALL_NAME      (p11tool_opt_strs+1150)
-#define LIST_ALL_name      (p11tool_opt_strs+1159)
+/** Descriptive text for the list-all option */
+#define LIST_ALL_DESC      (p11tool_opt_strs+1108)
+/** Upper-cased name for the list-all option */
+#define LIST_ALL_NAME      (p11tool_opt_strs+1146)
+/** Name string for the list-all option */
+#define LIST_ALL_name      (p11tool_opt_strs+1155)
+/** Compiled in flag settings for the list-all option */
 #define LIST_ALL_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  list-all-certs option description:
  */
-#define LIST_ALL_CERTS_DESC      (p11tool_opt_strs+1168)
-#define LIST_ALL_CERTS_NAME      (p11tool_opt_strs+1211)
-#define LIST_ALL_CERTS_name      (p11tool_opt_strs+1226)
+/** Descriptive text for the list-all-certs option */
+#define LIST_ALL_CERTS_DESC      (p11tool_opt_strs+1164)
+/** Upper-cased name for the list-all-certs option */
+#define LIST_ALL_CERTS_NAME      (p11tool_opt_strs+1207)
+/** Name string for the list-all-certs option */
+#define LIST_ALL_CERTS_name      (p11tool_opt_strs+1222)
+/** Compiled in flag settings for the list-all-certs option */
 #define LIST_ALL_CERTS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  list-certs option description:
  */
-#define LIST_CERTS_DESC      (p11tool_opt_strs+1241)
-#define LIST_CERTS_NAME      (p11tool_opt_strs+1299)
-#define LIST_CERTS_name      (p11tool_opt_strs+1310)
+/** Descriptive text for the list-certs option */
+#define LIST_CERTS_DESC      (p11tool_opt_strs+1237)
+/** Upper-cased name for the list-certs option */
+#define LIST_CERTS_NAME      (p11tool_opt_strs+1295)
+/** Name string for the list-certs option */
+#define LIST_CERTS_name      (p11tool_opt_strs+1306)
+/** Compiled in flag settings for the list-certs option */
 #define LIST_CERTS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  list-all-privkeys option description:
  */
-#define LIST_ALL_PRIVKEYS_DESC      (p11tool_opt_strs+1321)
-#define LIST_ALL_PRIVKEYS_NAME      (p11tool_opt_strs+1364)
-#define LIST_ALL_PRIVKEYS_name      (p11tool_opt_strs+1382)
+/** Descriptive text for the list-all-privkeys option */
+#define LIST_ALL_PRIVKEYS_DESC      (p11tool_opt_strs+1317)
+/** Upper-cased name for the list-all-privkeys option */
+#define LIST_ALL_PRIVKEYS_NAME      (p11tool_opt_strs+1360)
+/** Name string for the list-all-privkeys option */
+#define LIST_ALL_PRIVKEYS_name      (p11tool_opt_strs+1378)
+/** Compiled in flag settings for the list-all-privkeys option */
 #define LIST_ALL_PRIVKEYS_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  list-all-trusted option description:
  */
-#define LIST_ALL_TRUSTED_DESC      (p11tool_opt_strs+1400)
-#define LIST_ALL_TRUSTED_NAME      (p11tool_opt_strs+1450)
-#define LIST_ALL_TRUSTED_name      (p11tool_opt_strs+1467)
+/** Descriptive text for the list-all-trusted option */
+#define LIST_ALL_TRUSTED_DESC      (p11tool_opt_strs+1396)
+/** Upper-cased name for the list-all-trusted option */
+#define LIST_ALL_TRUSTED_NAME      (p11tool_opt_strs+1446)
+/** Name string for the list-all-trusted option */
+#define LIST_ALL_TRUSTED_name      (p11tool_opt_strs+1463)
+/** Compiled in flag settings for the list-all-trusted option */
 #define LIST_ALL_TRUSTED_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  initialize option description:
  */
-#define INITIALIZE_DESC      (p11tool_opt_strs+1484)
-#define INITIALIZE_NAME      (p11tool_opt_strs+1513)
-#define INITIALIZE_name      (p11tool_opt_strs+1524)
+/** Descriptive text for the initialize option */
+#define INITIALIZE_DESC      (p11tool_opt_strs+1480)
+/** Upper-cased name for the initialize option */
+#define INITIALIZE_NAME      (p11tool_opt_strs+1509)
+/** Name string for the initialize option */
+#define INITIALIZE_name      (p11tool_opt_strs+1520)
+/** Compiled in flag settings for the initialize option */
 #define INITIALIZE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  write option description:
  */
-#define WRITE_DESC      (p11tool_opt_strs+1535)
-#define WRITE_NAME      (p11tool_opt_strs+1581)
-#define WRITE_name      (p11tool_opt_strs+1587)
+/** Descriptive text for the write option */
+#define WRITE_DESC      (p11tool_opt_strs+1531)
+/** Upper-cased name for the write option */
+#define WRITE_NAME      (p11tool_opt_strs+1577)
+/** Name string for the write option */
+#define WRITE_name      (p11tool_opt_strs+1583)
+/** Compiled in flag settings for the write option */
 #define WRITE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  delete option description:
  */
-#define DELETE_DESC      (p11tool_opt_strs+1593)
-#define DELETE_NAME      (p11tool_opt_strs+1639)
-#define DELETE_name      (p11tool_opt_strs+1646)
+/** Descriptive text for the delete option */
+#define DELETE_DESC      (p11tool_opt_strs+1589)
+/** Upper-cased name for the delete option */
+#define DELETE_NAME      (p11tool_opt_strs+1635)
+/** Name string for the delete option */
+#define DELETE_name      (p11tool_opt_strs+1642)
+/** Compiled in flag settings for the delete option */
 #define DELETE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-rsa option description:
  */
-#define GENERATE_RSA_DESC      (p11tool_opt_strs+1653)
-#define GENERATE_RSA_NAME      (p11tool_opt_strs+1693)
-#define GENERATE_RSA_name      (p11tool_opt_strs+1706)
+/** Descriptive text for the generate-rsa option */
+#define GENERATE_RSA_DESC      (p11tool_opt_strs+1649)
+/** Upper-cased name for the generate-rsa option */
+#define GENERATE_RSA_NAME      (p11tool_opt_strs+1689)
+/** Name string for the generate-rsa option */
+#define GENERATE_RSA_name      (p11tool_opt_strs+1702)
+/** Compiled in flag settings for the generate-rsa option */
 #define GENERATE_RSA_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-dsa option description:
  */
-#define GENERATE_DSA_DESC      (p11tool_opt_strs+1653)
-#define GENERATE_DSA_NAME      (p11tool_opt_strs+1719)
-#define GENERATE_DSA_name      (p11tool_opt_strs+1732)
+/** Descriptive text for the generate-dsa option */
+#define GENERATE_DSA_DESC      (p11tool_opt_strs+1649)
+/** Upper-cased name for the generate-dsa option */
+#define GENERATE_DSA_NAME      (p11tool_opt_strs+1715)
+/** Name string for the generate-dsa option */
+#define GENERATE_DSA_name      (p11tool_opt_strs+1728)
+/** Compiled in flag settings for the generate-dsa option */
 #define GENERATE_DSA_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate-ecc option description:
  */
-#define GENERATE_ECC_DESC      (p11tool_opt_strs+1653)
-#define GENERATE_ECC_NAME      (p11tool_opt_strs+1745)
-#define GENERATE_ECC_name      (p11tool_opt_strs+1758)
+/** Descriptive text for the generate-ecc option */
+#define GENERATE_ECC_DESC      (p11tool_opt_strs+1649)
+/** Upper-cased name for the generate-ecc option */
+#define GENERATE_ECC_NAME      (p11tool_opt_strs+1741)
+/** Name string for the generate-ecc option */
+#define GENERATE_ECC_name      (p11tool_opt_strs+1754)
+/** Compiled in flag settings for the generate-ecc option */
 #define GENERATE_ECC_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  label option description:
  */
-#define LABEL_DESC      (p11tool_opt_strs+1771)
-#define LABEL_NAME      (p11tool_opt_strs+1808)
-#define LABEL_name      (p11tool_opt_strs+1814)
+/** Descriptive text for the label option */
+#define LABEL_DESC      (p11tool_opt_strs+1767)
+/** Upper-cased name for the label option */
+#define LABEL_NAME      (p11tool_opt_strs+1804)
+/** Name string for the label option */
+#define LABEL_name      (p11tool_opt_strs+1810)
+/** Compiled in flag settings for the label option */
 #define LABEL_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  trusted option description:
  */
-#define TRUSTED_DESC      (p11tool_opt_strs+1820)
-#define TRUSTED_NAME      (p11tool_opt_strs+1862)
-#define NOT_TRUSTED_name  (p11tool_opt_strs+1870)
-#define NOT_TRUSTED_PFX   (p11tool_opt_strs+1881)
+/** Descriptive text for the trusted option */
+#define TRUSTED_DESC      (p11tool_opt_strs+1816)
+/** Upper-cased name for the trusted option */
+#define TRUSTED_NAME      (p11tool_opt_strs+1858)
+/** disablement name for the trusted option */
+#define NOT_TRUSTED_name  (p11tool_opt_strs+1866)
+/** disablement prefix for the trusted option */
+#define NOT_TRUSTED_PFX   (p11tool_opt_strs+1877)
+/** Name string for the trusted option */
 #define TRUSTED_name      (NOT_TRUSTED_name + 3)
+/** Compiled in flag settings for the trusted option */
 #define TRUSTED_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  private option description:
  */
-#define PRIVATE_DESC      (p11tool_opt_strs+1884)
-#define PRIVATE_NAME      (p11tool_opt_strs+1926)
-#define NOT_PRIVATE_name  (p11tool_opt_strs+1934)
-#define NOT_PRIVATE_PFX   (p11tool_opt_strs+1881)
+/** Descriptive text for the private option */
+#define PRIVATE_DESC      (p11tool_opt_strs+1880)
+/** Upper-cased name for the private option */
+#define PRIVATE_NAME      (p11tool_opt_strs+1922)
+/** disablement name for the private option */
+#define NOT_PRIVATE_name  (p11tool_opt_strs+1930)
+/** disablement prefix for the private option */
+#define NOT_PRIVATE_PFX   (p11tool_opt_strs+1877)
+/** Name string for the private option */
 #define PRIVATE_name      (NOT_PRIVATE_name + 3)
+/** Compiled in flag settings for the private option */
 #define PRIVATE_FLAGS     (OPTST_INITENABLED)
 
-/*
+/**
  *  login option description:
  */
-#define LOGIN_DESC      (p11tool_opt_strs+1945)
-#define LOGIN_NAME      (p11tool_opt_strs+1966)
-#define NOT_LOGIN_name  (p11tool_opt_strs+1972)
-#define NOT_LOGIN_PFX   (p11tool_opt_strs+1881)
+/** Descriptive text for the login option */
+#define LOGIN_DESC      (p11tool_opt_strs+1941)
+/** Upper-cased name for the login option */
+#define LOGIN_NAME      (p11tool_opt_strs+1962)
+/** disablement name for the login option */
+#define NOT_LOGIN_name  (p11tool_opt_strs+1968)
+/** disablement prefix for the login option */
+#define NOT_LOGIN_PFX   (p11tool_opt_strs+1877)
+/** Name string for the login option */
 #define LOGIN_name      (NOT_LOGIN_name + 3)
+/** Compiled in flag settings for the login option */
 #define LOGIN_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  detailed-url option description:
  */
-#define DETAILED_URL_DESC      (p11tool_opt_strs+1981)
-#define DETAILED_URL_NAME      (p11tool_opt_strs+2001)
-#define NOT_DETAILED_URL_name  (p11tool_opt_strs+2014)
-#define NOT_DETAILED_URL_PFX   (p11tool_opt_strs+1881)
+/** Descriptive text for the detailed-url option */
+#define DETAILED_URL_DESC      (p11tool_opt_strs+1977)
+/** Upper-cased name for the detailed-url option */
+#define DETAILED_URL_NAME      (p11tool_opt_strs+1997)
+/** disablement name for the detailed-url option */
+#define NOT_DETAILED_URL_name  (p11tool_opt_strs+2010)
+/** disablement prefix for the detailed-url option */
+#define NOT_DETAILED_URL_PFX   (p11tool_opt_strs+1877)
+/** Name string for the detailed-url option */
 #define DETAILED_URL_name      (NOT_DETAILED_URL_name + 3)
+/** Compiled in flag settings for the detailed-url option */
 #define DETAILED_URL_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  secret-key option description:
  */
-#define SECRET_KEY_DESC      (p11tool_opt_strs+2030)
-#define SECRET_KEY_NAME      (p11tool_opt_strs+2063)
-#define SECRET_KEY_name      (p11tool_opt_strs+2074)
+/** Descriptive text for the secret-key option */
+#define SECRET_KEY_DESC      (p11tool_opt_strs+2026)
+/** Upper-cased name for the secret-key option */
+#define SECRET_KEY_NAME      (p11tool_opt_strs+2059)
+/** Name string for the secret-key option */
+#define SECRET_KEY_name      (p11tool_opt_strs+2070)
+/** Compiled in flag settings for the secret-key option */
 #define SECRET_KEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  load-privkey option description:
  */
-#define LOAD_PRIVKEY_DESC      (p11tool_opt_strs+2085)
-#define LOAD_PRIVKEY_NAME      (p11tool_opt_strs+2109)
-#define LOAD_PRIVKEY_name      (p11tool_opt_strs+2122)
+/** Descriptive text for the load-privkey option */
+#define LOAD_PRIVKEY_DESC      (p11tool_opt_strs+2081)
+/** Upper-cased name for the load-privkey option */
+#define LOAD_PRIVKEY_NAME      (p11tool_opt_strs+2105)
+/** Name string for the load-privkey option */
+#define LOAD_PRIVKEY_name      (p11tool_opt_strs+2118)
+/** Compiled in flag settings for the load-privkey option */
 #define LOAD_PRIVKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  load-pubkey option description:
  */
-#define LOAD_PUBKEY_DESC      (p11tool_opt_strs+2135)
-#define LOAD_PUBKEY_NAME      (p11tool_opt_strs+2158)
-#define LOAD_PUBKEY_name      (p11tool_opt_strs+2170)
+/** Descriptive text for the load-pubkey option */
+#define LOAD_PUBKEY_DESC      (p11tool_opt_strs+2131)
+/** Upper-cased name for the load-pubkey option */
+#define LOAD_PUBKEY_NAME      (p11tool_opt_strs+2154)
+/** Name string for the load-pubkey option */
+#define LOAD_PUBKEY_name      (p11tool_opt_strs+2166)
+/** Compiled in flag settings for the load-pubkey option */
 #define LOAD_PUBKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  load-certificate option description:
  */
-#define LOAD_CERTIFICATE_DESC      (p11tool_opt_strs+2182)
-#define LOAD_CERTIFICATE_NAME      (p11tool_opt_strs+2206)
-#define LOAD_CERTIFICATE_name      (p11tool_opt_strs+2223)
+/** Descriptive text for the load-certificate option */
+#define LOAD_CERTIFICATE_DESC      (p11tool_opt_strs+2178)
+/** Upper-cased name for the load-certificate option */
+#define LOAD_CERTIFICATE_NAME      (p11tool_opt_strs+2202)
+/** Name string for the load-certificate option */
+#define LOAD_CERTIFICATE_name      (p11tool_opt_strs+2219)
+/** Compiled in flag settings for the load-certificate option */
 #define LOAD_CERTIFICATE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pkcs8 option description:
  */
-#define PKCS8_DESC      (p11tool_opt_strs+2240)
-#define PKCS8_NAME      (p11tool_opt_strs+2276)
-#define PKCS8_name      (p11tool_opt_strs+2282)
+/** Descriptive text for the pkcs8 option */
+#define PKCS8_DESC      (p11tool_opt_strs+2236)
+/** Upper-cased name for the pkcs8 option */
+#define PKCS8_NAME      (p11tool_opt_strs+2272)
+/** Name string for the pkcs8 option */
+#define PKCS8_name      (p11tool_opt_strs+2278)
+/** Compiled in flag settings for the pkcs8 option */
 #define PKCS8_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  bits option description:
  */
-#define BITS_DESC      (p11tool_opt_strs+2288)
-#define BITS_NAME      (p11tool_opt_strs+2332)
-#define BITS_name      (p11tool_opt_strs+2337)
+/** Descriptive text for the bits option */
+#define BITS_DESC      (p11tool_opt_strs+2284)
+/** Upper-cased name for the bits option */
+#define BITS_NAME      (p11tool_opt_strs+2328)
+/** Name string for the bits option */
+#define BITS_name      (p11tool_opt_strs+2333)
+/** Compiled in flag settings for the bits option */
 #define BITS_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  sec-param option description:
  */
-#define SEC_PARAM_DESC      (p11tool_opt_strs+2342)
-#define SEC_PARAM_NAME      (p11tool_opt_strs+2369)
-#define SEC_PARAM_name      (p11tool_opt_strs+2379)
+/** Descriptive text for the sec-param option */
+#define SEC_PARAM_DESC      (p11tool_opt_strs+2338)
+/** Upper-cased name for the sec-param option */
+#define SEC_PARAM_NAME      (p11tool_opt_strs+2365)
+/** Name string for the sec-param option */
+#define SEC_PARAM_name      (p11tool_opt_strs+2375)
+/** Compiled in flag settings for the sec-param option */
 #define SEC_PARAM_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  inder option description:
  */
-#define INDER_DESC      (p11tool_opt_strs+2389)
-#define INDER_NAME      (p11tool_opt_strs+2418)
-#define NOT_INDER_name  (p11tool_opt_strs+2424)
-#define NOT_INDER_PFX   (p11tool_opt_strs+1881)
+/** Descriptive text for the inder option */
+#define INDER_DESC      (p11tool_opt_strs+2385)
+/** Upper-cased name for the inder option */
+#define INDER_NAME      (p11tool_opt_strs+2414)
+/** disablement name for the inder option */
+#define NOT_INDER_name  (p11tool_opt_strs+2420)
+/** disablement prefix for the inder option */
+#define NOT_INDER_PFX   (p11tool_opt_strs+1877)
+/** Name string for the inder option */
 #define INDER_name      (NOT_INDER_name + 3)
+/** Compiled in flag settings for the inder option */
 #define INDER_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  inraw option description:
  */
-#define INRAW_DESC    (p11tool_opt_strs+2433)
+/** Descriptive text for the inraw option */
+#define INRAW_DESC    (p11tool_opt_strs+2429)
 #define INRAW_NAME    NULL
-#define INRAW_name    (p11tool_opt_strs+2462)
+/** Unmodified name string for the inraw option */
+#define INRAW_name    (p11tool_opt_strs+2461)
+/** Compiled in flag settings for the inraw option */
 #define INRAW_FLAGS     (INDER_FLAGS | OPTST_ALIAS)
 
-/*
+/**
  *  provider option description:
  */
-#define PROVIDER_DESC      (p11tool_opt_strs+2468)
-#define PROVIDER_NAME      (p11tool_opt_strs+2506)
-#define PROVIDER_name      (p11tool_opt_strs+2515)
+/** Descriptive text for the provider option */
+#define PROVIDER_DESC      (p11tool_opt_strs+2467)
+/** Upper-cased name for the provider option */
+#define PROVIDER_NAME      (p11tool_opt_strs+2505)
+/** Name string for the provider option */
+#define PROVIDER_name      (p11tool_opt_strs+2514)
+/** Compiled in flag settings for the provider option */
 #define PROVIDER_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (p11tool_opt_strs+2524)
-#define HELP_name       (p11tool_opt_strs+2568)
+#define HELP_DESC       (p11tool_opt_strs+2523)
+#define HELP_name       (p11tool_opt_strs+2567)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (p11tool_opt_strs+2573)
-#define MORE_HELP_name  (p11tool_opt_strs+2618)
+#define MORE_HELP_DESC  (p11tool_opt_strs+2572)
+#define MORE_HELP_name  (p11tool_opt_strs+2617)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -484,9 +611,9 @@ static char const p11tool_opt_strs[3146] =
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (p11tool_opt_strs+2628)
-#define VER_name        (p11tool_opt_strs+2664)
-/*
+#define VER_DESC        (p11tool_opt_strs+2627)
+#define VER_name        (p11tool_opt_strs+2663)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -883,7 +1010,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -897,7 +1024,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -909,7 +1036,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -919,19 +1046,24 @@ static tOptDesc optDesc[OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the p11tool Option Environment
- */
-#define zPROGNAME       (p11tool_opt_strs+2672)
-#define zUsageTitle     (p11tool_opt_strs+2680)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of p11tool. */
+#define zPROGNAME       (p11tool_opt_strs+2671)
+/** Reference to the title line for p11tool usage. */
+#define zUsageTitle     (p11tool_opt_strs+2679)
+/** There is no p11tool configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for p11tool config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (p11tool_opt_strs+2789)
-#define zExplain        (p11tool_opt_strs+2808)
-#define zDetail         (p11tool_opt_strs+2811)
-#define zFullVersion    (p11tool_opt_strs+3067)
-/* extracted from optcode.tlib near line 350 */
+/** The p11tool program bug email address. */
+#define zBugsAddr       (p11tool_opt_strs+2774)
+/** Clarification/explanation of what p11tool does. */
+#define zExplain        (p11tool_opt_strs+2793)
+/** Extra detail explaining what p11tool does. */
+#define zDetail         (p11tool_opt_strs+2795)
+/** The full version string for p11tool. */
+#define zFullVersion    (p11tool_opt_strs+3050)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -941,10 +1073,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define p11tool_full_usage (NULL)
-
-#define p11tool_short_usage (p11tool_opt_strs+3082)
+#define p11tool_short_usage (p11tool_opt_strs+3065)
 
 #endif /* not defined __doxygen__ */
 
@@ -954,8 +1084,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 /**
  * The callout function that invokes the optionUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -970,9 +1100,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the debug option.
- *
- * @param pOptions the p11tool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * Specifies the debug level.
+ * @param[in] pOptions the p11tool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -998,8 +1128,7 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -1007,8 +1136,8 @@ emit_ranges:
 /**
  * Code to handle the load-privkey option.
  *
- * @param pOptions the p11tool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the p11tool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Privkey(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1021,6 +1150,9 @@ doOptLoad_Privkey(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1028,8 +1160,8 @@ doOptLoad_Privkey(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-pubkey option.
  *
- * @param pOptions the p11tool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the p11tool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Pubkey(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1042,6 +1174,9 @@ doOptLoad_Pubkey(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1049,8 +1184,8 @@ doOptLoad_Pubkey(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the load-certificate option.
  *
- * @param pOptions the p11tool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the p11tool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptLoad_Certificate(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1063,6 +1198,9 @@ doOptLoad_Certificate(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1070,24 +1208,24 @@ doOptLoad_Certificate(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the inraw option.
  *
- * @param pOptions the p11tool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the p11tool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
 {
     int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_INDER);
     if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
-        USAGE(P11TOOL_EXIT_FAILURE);
+        USAGE(P11TOOL_EXIT_USAGE_ERROR);
 
 }
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the provider option.
- *
- * @param pOptions the p11tool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * This will override the default options in /etc/gnutls/pkcs11.conf
+ * @param[in] pOptions the p11tool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptProvider(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1100,9 +1238,12 @@ doOptProvider(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with p11tool.
@@ -1118,6 +1259,7 @@ doOptProvider(tOptions* pOptions, tOptDesc* pOptDesc)
 #ifndef  WITH_PACKAGER
 # define p11tool_packager_info NULL
 #else
+/** Packager information for p11tool. */
 static char const p11tool_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -1173,42 +1315,69 @@ tOptions p11toolOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * p11tool program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(P11TOOL_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -1218,56 +1387,498 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &p11toolOptions;
+    tOptions * const opts = &p11toolOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
-
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        coerce_it((void*)&(pOpt->pzShortUsage));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
+
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        p11toolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the p11toolOptions structure noted in the comments below.  The
+     literal text is defined in p11tool_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     p11tool_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via p11toolOptions.pzCopyright */
+  puts(_("p11tool 3.0.30\n\
+Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU General Public License,\n\
+version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
+
+  /* referenced via p11toolOptions.pzCopyNotice */
+  puts(_("p11tool is free software: you can redistribute it and/or modify it under\n\
+the terms of the GNU General Public License as published by the Free\n\
+Software Foundation, either version 3 of the License, or (at your option)\n\
+any later version.\n\n"));
+  puts(_("p11tool is distributed in the hope that it will be useful, but WITHOUT ANY\n\
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more\n\
+details.\n\n"));
+  puts(_("You should have received a copy of the GNU General Public License along\n\
+with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Enable debugging."));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Output file"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("List all available tokens"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Export the object specified by the URL"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("List all available mechanisms in a token"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("List all available objects in a token"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("List all available certificates in a token"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("List all certificates that have an associated private key"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("List all available private keys in a token"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("List all available certificates marked as trusted"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Initializes a PKCS #11 token"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Writes the loaded objects to a PKCS #11 token"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Deletes the objects matching the PKCS #11 URL"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Generate an RSA private-public key pair"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Generate an RSA private-public key pair"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Generate an RSA private-public key pair"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Sets a label for the write operation"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Marks the object to be written as trusted"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Marks the object to be written as private"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Force login to token"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Print detailed URLs"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Provide a hex encoded secret key"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Private key file to use"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Public key file to use"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Certificate file to use"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Use PKCS #8 format for private keys"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Specify the number of bits for key generate"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Specify the security level"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Use DER/RAW format for input"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("an alias for the 'inder' option"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("Specify the PKCS #11 provider library"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via p11toolOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via p11toolOptions.pzUsageTitle */
+  puts(_("p11tool - GnuTLS PKCS #11 tool\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [url]\n"));
+
+  /* referenced via p11toolOptions.pzExplain */
+  puts(_("\n"));
+
+  /* referenced via p11toolOptions.pzDetail */
+  puts(_("Program that allows handling data from PKCS #11 smart cards and security\n\
+modules.\n\n\
+To use PKCS #11 tokens with gnutls the configuration file\n\
+/etc/gnutls/pkcs11.conf has to exist and contain a number of lines of the\n\
+form 'load=/usr/lib/opensc-pkcs11.so'.\n"));
+
+  /* referenced via p11toolOptions.pzFullVersion */
+  puts(_("p11tool 3.0.30"));
+
+  /* referenced via p11toolOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via p11toolOptions.pzShortUsage */
+  puts(_("p11tool [options] [url]\n\
+p11tool --help for usage instructions.\n"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index 2dba13a..a159607 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (p11tool-args.h)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:51 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:18 PM by AutoGen 5.17.3
  *  From the definitions    p11tool-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  p11tool 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.
- *  
+ *
  *  p11tool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the p11tool program.
  *  These macros are documented in the AutoGen info file in the
 #include "config.h"
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for p11tool
  */
 typedef enum {
     INDEX_OPT_DEBUG              =  0,
@@ -102,44 +101,63 @@ typedef enum {
     INDEX_OPT_HELP               = 32,
     INDEX_OPT_MORE_HELP          = 33
 } teOptIndex;
-
+/** count of all options for p11tool */
 #define OPTION_CT    34
-#define P11TOOL_VERSION       "3.0.21"
-#define P11TOOL_FULL_VERSION  "p11tool 3.0.21"
+/** p11tool version */
+#define P11TOOL_VERSION       "3.0.30"
+/** Full p11tool version text */
+#define P11TOOL_FULL_VERSION  "p11tool 3.0.30"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teOptIndex enumeration above).
  *  e.g. HAVE_OPT(DEBUG)
  */
 #define         DESC(n) (p11toolOptions.pOptDesc[INDEX_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      OPT_ARG(n) (DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_OPT(n) (DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_OPT(n) STMTS( \
                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     DESC(n).fOptState |= OPTST_DISABLED; \
                 DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of p11tool exit codes
  */
 typedef enum {
-    P11TOOL_EXIT_SUCCESS = 0,
-    P11TOOL_EXIT_FAILURE = 1,
-    P11TOOL_EXIT_LIBOPTS_FAILURE = 70
+    P11TOOL_EXIT_SUCCESS            = 0,
+    P11TOOL_EXIT_FAILURE            = 1,
+    P11TOOL_EXIT_USAGE_ERROR        = 64,
+    P11TOOL_EXIT_LIBOPTS_FAILURE    = 70
 } p11tool_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_OPT_DEBUG          'd'
 
@@ -176,8 +194,11 @@ typedef enum {
 #define VALUE_OPT_INDER          28
 #define VALUE_OPT_INRAW          29
 #define VALUE_OPT_PROVIDER       30
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_MORE_HELP     '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_VERSION       'v'
 /*
  *  Interface defines not associated with particular options
@@ -189,7 +210,7 @@ typedef enum {
                 p11toolOptions.pzCurOpt  = NULL)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*p11toolOptions.pUsageProc)(&p11toolOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -209,6 +230,12 @@ extern tOptions p11toolOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
index 1487dc7..bef58a1 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (psk-args.c)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:55 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:21 PM by AutoGen 5.17.3
  *  From the definitions    psk-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  psktool 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.
- *  
+ *
  *  psktool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (psktool_opt_strs+0)
-#define zLicenseDescrip (psktool_opt_strs+275)
+#define zLicenseDescrip (psktool_opt_strs+271)
 
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
-/*
- *  psktool option static const strings
+/**
+ *  static const strings for psktool options
  */
-static char const psktool_opt_strs[1496] =
-/*     0 */ "psktool 3.0.21\n"
+static char const psktool_opt_strs[1476] =
+/*     0 */ "psktool 3.0.30\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   275 */ "psktool is free software: you can redistribute it and/or modify it under\n"
+            "redistribution under the terms of the GNU General Public License,\n"
+            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
+/*   271 */ "psktool is free software: you can redistribute it and/or modify it under\n"
             "the terms of the GNU General Public License as published by the Free\n"
             "Software Foundation, either version 3 of the License, or (at your option)\n"
             "any later version.\n\n"
@@ -84,80 +79,95 @@ static char const psktool_opt_strs[1496] =
             "details.\n\n"
             "You should have received a copy of the GNU General Public License along\n"
             "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   878 */ "Enable debugging.\0"
-/*   896 */ "DEBUG\0"
-/*   902 */ "debug\0"
-/*   908 */ "specify the key size in bytes\0"
-/*   938 */ "KEYSIZE\0"
-/*   946 */ "keysize\0"
-/*   954 */ "specify a username\0"
-/*   973 */ "USERNAME\0"
-/*   982 */ "username\0"
-/*   991 */ "specify a password file.\0"
-/*  1016 */ "PASSWD\0"
-/*  1023 */ "passwd\0"
-/*  1030 */ "Display extended usage information and exit\0"
-/*  1074 */ "help\0"
-/*  1079 */ "Extended usage information passed thru pager\0"
-/*  1124 */ "more-help\0"
-/*  1134 */ "Output version information and exit\0"
-/*  1170 */ "version\0"
-/*  1178 */ "PSKTOOL\0"
-/*  1186 */ "psktool - GnuTLS PSK tool - Ver. 3.0.21\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/*  1284 */ "bug-gnutls@gnu.org\0"
-/*  1303 */ "\n\n\0"
-/*  1306 */ "\n"
-            "Program that generates random keys for use with TLS-PSK.  The keys are\n"
+/*   874 */ "Enable debugging.\0"
+/*   892 */ "DEBUG\0"
+/*   898 */ "debug\0"
+/*   904 */ "specify the key size in bytes\0"
+/*   934 */ "KEYSIZE\0"
+/*   942 */ "keysize\0"
+/*   950 */ "specify a username\0"
+/*   969 */ "USERNAME\0"
+/*   978 */ "username\0"
+/*   987 */ "specify a password file.\0"
+/*  1012 */ "PASSWD\0"
+/*  1019 */ "passwd\0"
+/*  1026 */ "display extended usage information and exit\0"
+/*  1070 */ "help\0"
+/*  1075 */ "extended usage information passed thru pager\0"
+/*  1120 */ "more-help\0"
+/*  1130 */ "output version information and exit\0"
+/*  1166 */ "version\0"
+/*  1174 */ "PSKTOOL\0"
+/*  1182 */ "psktool - GnuTLS PSK tool\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/*  1266 */ "bug-gnutls@gnu.org\0"
+/*  1285 */ "\n\0"
+/*  1287 */ "Program that generates random keys for use with TLS-PSK.  The keys are\n"
             "stored in hexadecimal format in a key file.\n\0"
-/*  1423 */ "psktool 3.0.21\0"
-/*  1438 */ "psktool [options]\n"
+/*  1403 */ "psktool 3.0.30\0"
+/*  1418 */ "psktool [options]\n"
             "psktool --help for usage instructions.\n";
 
-/*
+/**
  *  debug option description:
  */
-#define DEBUG_DESC      (psktool_opt_strs+878)
-#define DEBUG_NAME      (psktool_opt_strs+896)
-#define DEBUG_name      (psktool_opt_strs+902)
+/** Descriptive text for the debug option */
+#define DEBUG_DESC      (psktool_opt_strs+874)
+/** Upper-cased name for the debug option */
+#define DEBUG_NAME      (psktool_opt_strs+892)
+/** Name string for the debug option */
+#define DEBUG_name      (psktool_opt_strs+898)
+/** Compiled in flag settings for the debug option */
 #define DEBUG_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  keysize option description:
  */
-#define KEYSIZE_DESC      (psktool_opt_strs+908)
-#define KEYSIZE_NAME      (psktool_opt_strs+938)
-#define KEYSIZE_name      (psktool_opt_strs+946)
+/** Descriptive text for the keysize option */
+#define KEYSIZE_DESC      (psktool_opt_strs+904)
+/** Upper-cased name for the keysize option */
+#define KEYSIZE_NAME      (psktool_opt_strs+934)
+/** Name string for the keysize option */
+#define KEYSIZE_name      (psktool_opt_strs+942)
+/** Compiled in flag settings for the keysize option */
 #define KEYSIZE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  username option description:
  */
-#define USERNAME_DESC      (psktool_opt_strs+954)
-#define USERNAME_NAME      (psktool_opt_strs+973)
-#define USERNAME_name      (psktool_opt_strs+982)
+/** Descriptive text for the username option */
+#define USERNAME_DESC      (psktool_opt_strs+950)
+/** Upper-cased name for the username option */
+#define USERNAME_NAME      (psktool_opt_strs+969)
+/** Name string for the username option */
+#define USERNAME_name      (psktool_opt_strs+978)
+/** Compiled in flag settings for the username option */
 #define USERNAME_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  passwd option description:
  */
-#define PASSWD_DESC      (psktool_opt_strs+991)
-#define PASSWD_NAME      (psktool_opt_strs+1016)
-#define PASSWD_name      (psktool_opt_strs+1023)
+/** Descriptive text for the passwd option */
+#define PASSWD_DESC      (psktool_opt_strs+987)
+/** Upper-cased name for the passwd option */
+#define PASSWD_NAME      (psktool_opt_strs+1012)
+/** Name string for the passwd option */
+#define PASSWD_name      (psktool_opt_strs+1019)
+/** Compiled in flag settings for the passwd option */
 #define PASSWD_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (psktool_opt_strs+1030)
-#define HELP_name       (psktool_opt_strs+1074)
+#define HELP_DESC       (psktool_opt_strs+1026)
+#define HELP_name       (psktool_opt_strs+1070)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (psktool_opt_strs+1079)
-#define MORE_HELP_name  (psktool_opt_strs+1124)
+#define MORE_HELP_DESC  (psktool_opt_strs+1075)
+#define MORE_HELP_name  (psktool_opt_strs+1120)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -170,9 +180,9 @@ static char const psktool_opt_strs[1496] =
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (psktool_opt_strs+1134)
-#define VER_name        (psktool_opt_strs+1170)
-/*
+#define VER_DESC        (psktool_opt_strs+1130)
+#define VER_name        (psktool_opt_strs+1166)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -243,7 +253,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -257,7 +267,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -269,7 +279,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -279,19 +289,24 @@ static tOptDesc optDesc[OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the psktool Option Environment
- */
-#define zPROGNAME       (psktool_opt_strs+1178)
-#define zUsageTitle     (psktool_opt_strs+1186)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of psktool. */
+#define zPROGNAME       (psktool_opt_strs+1174)
+/** Reference to the title line for psktool usage. */
+#define zUsageTitle     (psktool_opt_strs+1182)
+/** There is no psktool configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for psktool config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (psktool_opt_strs+1284)
-#define zExplain        (psktool_opt_strs+1303)
-#define zDetail         (psktool_opt_strs+1306)
-#define zFullVersion    (psktool_opt_strs+1423)
-/* extracted from optcode.tlib near line 350 */
+/** The psktool program bug email address. */
+#define zBugsAddr       (psktool_opt_strs+1266)
+/** Clarification/explanation of what psktool does. */
+#define zExplain        (psktool_opt_strs+1285)
+/** Extra detail explaining what psktool does. */
+#define zDetail         (psktool_opt_strs+1287)
+/** The full version string for psktool. */
+#define zFullVersion    (psktool_opt_strs+1403)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -301,10 +316,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define psktool_full_usage (NULL)
-
-#define psktool_short_usage (psktool_opt_strs+1438)
+#define psktool_short_usage (psktool_opt_strs+1418)
 
 #endif /* not defined __doxygen__ */
 
@@ -314,8 +327,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 /**
  * The callout function that invokes the optionUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -330,9 +343,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the debug option.
- *
- * @param pOptions the psktool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * Specifies the debug level.
+ * @param[in] pOptions the psktool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -358,8 +371,7 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -367,8 +379,8 @@ emit_ranges:
 /**
  * Code to handle the keysize option.
  *
- * @param pOptions the psktool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the psktool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptKeysize(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -394,11 +406,10 @@ doOptKeysize(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with psktool.
@@ -414,6 +425,7 @@ emit_ranges:
 #ifndef  WITH_PACKAGER
 # define psktool_packager_info NULL
 #else
+/** Packager information for psktool. */
 static char const psktool_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -468,42 +480,69 @@ tOptions psktoolOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * psktool program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(PSKTOOL_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -513,56 +552,414 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &psktoolOptions;
+    tOptions * const opts = &psktoolOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
-
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        coerce_it((void*)&(pOpt->pzShortUsage));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
+
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        psktoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the psktoolOptions structure noted in the comments below.  The
+     literal text is defined in psktool_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     psktool_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via psktoolOptions.pzCopyright */
+  puts(_("psktool 3.0.30\n\
+Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU General Public License,\n\
+version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
+
+  /* referenced via psktoolOptions.pzCopyNotice */
+  puts(_("psktool is free software: you can redistribute it and/or modify it under\n\
+the terms of the GNU General Public License as published by the Free\n\
+Software Foundation, either version 3 of the License, or (at your option)\n\
+any later version.\n\n"));
+  puts(_("psktool is distributed in the hope that it will be useful, but WITHOUT ANY\n\
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more\n\
+details.\n\n"));
+  puts(_("You should have received a copy of the GNU General Public License along\n\
+with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
+
+  /* referenced via psktoolOptions.pOptDesc->pzText */
+  puts(_("Enable debugging."));
+
+  /* referenced via psktoolOptions.pOptDesc->pzText */
+  puts(_("specify the key size in bytes"));
+
+  /* referenced via psktoolOptions.pOptDesc->pzText */
+  puts(_("specify a username"));
+
+  /* referenced via psktoolOptions.pOptDesc->pzText */
+  puts(_("specify a password file."));
+
+  /* referenced via psktoolOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via psktoolOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via psktoolOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via psktoolOptions.pzUsageTitle */
+  puts(_("psktool - GnuTLS PSK tool\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
+
+  /* referenced via psktoolOptions.pzExplain */
+  puts(_("\n"));
+
+  /* referenced via psktoolOptions.pzDetail */
+  puts(_("Program that generates random keys for use with TLS-PSK.  The keys are\n\
+stored in hexadecimal format in a key file.\n"));
+
+  /* referenced via psktoolOptions.pzFullVersion */
+  puts(_("psktool 3.0.30"));
+
+  /* referenced via psktoolOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via psktoolOptions.pzShortUsage */
+  puts(_("psktool [options]\n\
+psktool --help for usage instructions.\n"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index 88c2d58..566139d 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (psk-args.h)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:55 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:21 PM by AutoGen 5.17.3
  *  From the definitions    psk-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  psktool 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.
- *  
+ *
  *  psktool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the psktool program.
  *  These macros are documented in the AutoGen info file in the
 #include "config.h"
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for psktool
  */
 typedef enum {
     INDEX_OPT_DEBUG       =  0,
@@ -75,44 +74,63 @@ typedef enum {
     INDEX_OPT_HELP        =  5,
     INDEX_OPT_MORE_HELP   =  6
 } teOptIndex;
-
+/** count of all options for psktool */
 #define OPTION_CT    7
-#define PSKTOOL_VERSION       "3.0.21"
-#define PSKTOOL_FULL_VERSION  "psktool 3.0.21"
+/** psktool version */
+#define PSKTOOL_VERSION       "3.0.30"
+/** Full psktool version text */
+#define PSKTOOL_FULL_VERSION  "psktool 3.0.30"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teOptIndex enumeration above).
  *  e.g. HAVE_OPT(DEBUG)
  */
 #define         DESC(n) (psktoolOptions.pOptDesc[INDEX_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      OPT_ARG(n) (DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_OPT(n) (DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_OPT(n) STMTS( \
                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     DESC(n).fOptState |= OPTST_DISABLED; \
                 DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of psktool exit codes
  */
 typedef enum {
-    PSKTOOL_EXIT_SUCCESS = 0,
-    PSKTOOL_EXIT_FAILURE = 1,
-    PSKTOOL_EXIT_LIBOPTS_FAILURE = 70
+    PSKTOOL_EXIT_SUCCESS            = 0,
+    PSKTOOL_EXIT_FAILURE            = 1,
+    PSKTOOL_EXIT_USAGE_ERROR        = 64,
+    PSKTOOL_EXIT_LIBOPTS_FAILURE    = 70
 } psktool_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_OPT_DEBUG          'd'
 
@@ -122,8 +140,11 @@ typedef enum {
 #define OPT_VALUE_KEYSIZE        (DESC(KEYSIZE).optArg.argInt)
 #define VALUE_OPT_USERNAME       'u'
 #define VALUE_OPT_PASSWD         'p'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_MORE_HELP     '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_VERSION       'v'
 /*
  *  Interface defines not associated with particular options
@@ -135,7 +156,7 @@ typedef enum {
                 psktoolOptions.pzCurOpt  = NULL)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*psktoolOptions.pUsageProc)(&psktoolOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -155,6 +176,12 @@ extern tOptions psktoolOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
index 4b18c25..98820c3 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (serv-args.c)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:57 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:24 PM by AutoGen 5.17.3
  *  From the definitions    serv-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  gnutls-serv 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-serv 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (gnutls_serv_opt_strs+0)
-#define zLicenseDescrip (gnutls_serv_opt_strs+279)
+#define zLicenseDescrip (gnutls_serv_opt_strs+275)
 
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
-/*
- *  gnutls-serv option static const strings
+/**
+ *  static const strings for gnutls-serv options
  */
-static char const gnutls_serv_opt_strs[2938] =
-/*     0 */ "gnutls-serv 3.0.21\n"
+static char const gnutls_serv_opt_strs[2918] =
+/*     0 */ "gnutls-serv 3.0.30\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   279 */ "gnutls-serv is free software: you can redistribute it and/or modify it\n"
+            "redistribution under the terms of the GNU General Public License,\n"
+            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
+/*   275 */ "gnutls-serv is free software: you can redistribute it and/or modify it\n"
             "under the terms of the GNU General Public License as published by the Free\n"
             "Software Foundation, either version 3 of the License, or (at your option)\n"
             "any later version.\n\n"
@@ -84,402 +79,529 @@ static char const gnutls_serv_opt_strs[2938] =
             "more details.\n\n"
             "You should have received a copy of the GNU General Public License along\n"
             "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   890 */ "Enable debugging.\0"
-/*   908 */ "DEBUG\0"
-/*   914 */ "debug\0"
-/*   920 */ "Don't accept session tickets\0"
-/*   949 */ "NOTICKET\0"
-/*   958 */ "noticket\0"
-/*   967 */ "Generate Diffie-Hellman and RSA-export parameters\0"
-/*  1017 */ "GENERATE\0"
-/*  1026 */ "generate\0"
-/*  1035 */ "Suppress some messages\0"
-/*  1058 */ "QUIET\0"
-/*  1064 */ "quiet\0"
-/*  1070 */ "Do not use a resumption database\0"
-/*  1103 */ "NODB\0"
-/*  1108 */ "nodb\0"
-/*  1113 */ "Act as an HTTP server\0"
-/*  1135 */ "HTTP\0"
-/*  1140 */ "http\0"
-/*  1145 */ "Act as an Echo server\0"
-/*  1167 */ "ECHO\0"
-/*  1172 */ "echo\0"
-/*  1177 */ "Use DTLS (datagram TLS) over UDP\0"
-/*  1210 */ "UDP\0"
-/*  1214 */ "udp\0"
-/*  1218 */ "Set MTU for datagram TLS\0"
-/*  1243 */ "MTU\0"
-/*  1247 */ "mtu\0"
-/*  1251 */ "Do not request a client certificate\0"
-/*  1287 */ "DISABLE_CLIENT_CERT\0"
-/*  1307 */ "disable-client-cert\0"
-/*  1327 */ "Require a client certificate\0"
-/*  1356 */ "REQUIRE_CLIENT_CERT\0"
-/*  1376 */ "require-client-cert\0"
-/*  1396 */ "Use DER format for certificates to read from\0"
-/*  1441 */ "X509FMTDER\0"
-/*  1452 */ "x509fmtder\0"
-/*  1463 */ "Priorities string\0"
-/*  1481 */ "PRIORITY\0"
-/*  1490 */ "priority\0"
-/*  1499 */ "DH params file to use\0"
-/*  1521 */ "DHPARAMS\0"
-/*  1530 */ "dhparams\0"
-/*  1539 */ "Certificate file or PKCS #11 URL to use\0"
-/*  1579 */ "X509CAFILE\0"
-/*  1590 */ "x509cafile\0"
-/*  1601 */ "CRL file to use\0"
-/*  1617 */ "X509CRLFILE\0"
-/*  1629 */ "x509crlfile\0"
-/*  1641 */ "PGP Key file to use\0"
-/*  1661 */ "PGPKEYFILE\0"
-/*  1672 */ "pgpkeyfile\0"
-/*  1683 */ "PGP Key ring file to use\0"
-/*  1708 */ "PGPKEYRING\0"
-/*  1719 */ "pgpkeyring\0"
-/*  1730 */ "PGP Public Key (certificate) file to use\0"
-/*  1771 */ "PGPCERTFILE\0"
-/*  1783 */ "pgpcertfile\0"
-/*  1795 */ "X.509 key file or PKCS #11 URL to use\0"
-/*  1833 */ "X509KEYFILE\0"
-/*  1845 */ "x509keyfile\0"
-/*  1857 */ "X.509 Certificate file or PKCS #11 URL to use\0"
-/*  1903 */ "X509CERTFILE\0"
-/*  1916 */ "x509certfile\0"
-/*  1929 */ "Alternative X.509 key file or PKCS #11 URL to use\0"
-/*  1979 */ "X509DSAKEYFILE\0"
-/*  1994 */ "x509dsakeyfile\0"
-/*  2009 */ "Alternative X.509 Certificate file or PKCS #11 URL to use\0"
-/*  2067 */ "X509DSACERTFILE\0"
-/*  2083 */ "x509dsacertfile\0"
-/*  2099 */ "X509ECCKEYFILE\0"
-/*  2114 */ "x509ecckeyfile\0"
-/*  2129 */ "X509ECCCERTFILE\0"
-/*  2145 */ "x509ecccertfile\0"
-/*  2161 */ "PGP subkey to use (hex or auto)\0"
-/*  2193 */ "PGPSUBKEY\0"
-/*  2203 */ "pgpsubkey\0"
-/*  2213 */ "SRP password file to use\0"
-/*  2238 */ "SRPPASSWD\0"
-/*  2248 */ "srppasswd\0"
-/*  2258 */ "SRP password configuration file to use\0"
-/*  2297 */ "SRPPASSWDCONF\0"
-/*  2311 */ "srppasswdconf\0"
-/*  2325 */ "PSK password file to use\0"
-/*  2350 */ "PSKPASSWD\0"
-/*  2360 */ "pskpasswd\0"
-/*  2370 */ "PSK identity hint to use\0"
-/*  2395 */ "PSKHINT\0"
-/*  2403 */ "pskhint\0"
-/*  2411 */ "The port to connect to\0"
-/*  2434 */ "PORT\0"
-/*  2439 */ "port\0"
-/*  2444 */ "Print a list of the supported algorithms and modes\0"
-/*  2495 */ "LIST\0"
-/*  2500 */ "list\0"
-/*  2505 */ "Display extended usage information and exit\0"
-/*  2549 */ "help\0"
-/*  2554 */ "Extended usage information passed thru pager\0"
-/*  2599 */ "more-help\0"
-/*  2609 */ "Output version information and exit\0"
-/*  2645 */ "version\0"
-/*  2653 */ "GNUTLS_SERV\0"
-/*  2665 */ "gnutls-serv - GnuTLS server - Ver. 3.0.21\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/*  2765 */ "bug-gnutls@gnu.org\0"
-/*  2784 */ "\n\n\0"
-/*  2787 */ "\n"
-            "Server program that listens to incoming TLS connections.\n\0"
-/*  2846 */ "gnutls-serv 3.0.21\0"
-/*  2865 */ "Usage: gnutls-serv [options]\n"
+/*   886 */ "Enable debugging.\0"
+/*   904 */ "DEBUG\0"
+/*   910 */ "debug\0"
+/*   916 */ "Don't accept session tickets\0"
+/*   945 */ "NOTICKET\0"
+/*   954 */ "noticket\0"
+/*   963 */ "Generate Diffie-Hellman and RSA-export parameters\0"
+/*  1013 */ "GENERATE\0"
+/*  1022 */ "generate\0"
+/*  1031 */ "Suppress some messages\0"
+/*  1054 */ "QUIET\0"
+/*  1060 */ "quiet\0"
+/*  1066 */ "Do not use a resumption database\0"
+/*  1099 */ "NODB\0"
+/*  1104 */ "nodb\0"
+/*  1109 */ "Act as an HTTP server\0"
+/*  1131 */ "HTTP\0"
+/*  1136 */ "http\0"
+/*  1141 */ "Act as an Echo server\0"
+/*  1163 */ "ECHO\0"
+/*  1168 */ "echo\0"
+/*  1173 */ "Use DTLS (datagram TLS) over UDP\0"
+/*  1206 */ "UDP\0"
+/*  1210 */ "udp\0"
+/*  1214 */ "Set MTU for datagram TLS\0"
+/*  1239 */ "MTU\0"
+/*  1243 */ "mtu\0"
+/*  1247 */ "Do not request a client certificate\0"
+/*  1283 */ "DISABLE_CLIENT_CERT\0"
+/*  1303 */ "disable-client-cert\0"
+/*  1323 */ "Require a client certificate\0"
+/*  1352 */ "REQUIRE_CLIENT_CERT\0"
+/*  1372 */ "require-client-cert\0"
+/*  1392 */ "Use DER format for certificates to read from\0"
+/*  1437 */ "X509FMTDER\0"
+/*  1448 */ "x509fmtder\0"
+/*  1459 */ "Priorities string\0"
+/*  1477 */ "PRIORITY\0"
+/*  1486 */ "priority\0"
+/*  1495 */ "DH params file to use\0"
+/*  1517 */ "DHPARAMS\0"
+/*  1526 */ "dhparams\0"
+/*  1535 */ "Certificate file or PKCS #11 URL to use\0"
+/*  1575 */ "X509CAFILE\0"
+/*  1586 */ "x509cafile\0"
+/*  1597 */ "CRL file to use\0"
+/*  1613 */ "X509CRLFILE\0"
+/*  1625 */ "x509crlfile\0"
+/*  1637 */ "PGP Key file to use\0"
+/*  1657 */ "PGPKEYFILE\0"
+/*  1668 */ "pgpkeyfile\0"
+/*  1679 */ "PGP Key ring file to use\0"
+/*  1704 */ "PGPKEYRING\0"
+/*  1715 */ "pgpkeyring\0"
+/*  1726 */ "PGP Public Key (certificate) file to use\0"
+/*  1767 */ "PGPCERTFILE\0"
+/*  1779 */ "pgpcertfile\0"
+/*  1791 */ "X.509 key file or PKCS #11 URL to use\0"
+/*  1829 */ "X509KEYFILE\0"
+/*  1841 */ "x509keyfile\0"
+/*  1853 */ "X.509 Certificate file or PKCS #11 URL to use\0"
+/*  1899 */ "X509CERTFILE\0"
+/*  1912 */ "x509certfile\0"
+/*  1925 */ "Alternative X.509 key file or PKCS #11 URL to use\0"
+/*  1975 */ "X509DSAKEYFILE\0"
+/*  1990 */ "x509dsakeyfile\0"
+/*  2005 */ "Alternative X.509 Certificate file or PKCS #11 URL to use\0"
+/*  2063 */ "X509DSACERTFILE\0"
+/*  2079 */ "x509dsacertfile\0"
+/*  2095 */ "X509ECCKEYFILE\0"
+/*  2110 */ "x509ecckeyfile\0"
+/*  2125 */ "X509ECCCERTFILE\0"
+/*  2141 */ "x509ecccertfile\0"
+/*  2157 */ "PGP subkey to use (hex or auto)\0"
+/*  2189 */ "PGPSUBKEY\0"
+/*  2199 */ "pgpsubkey\0"
+/*  2209 */ "SRP password file to use\0"
+/*  2234 */ "SRPPASSWD\0"
+/*  2244 */ "srppasswd\0"
+/*  2254 */ "SRP password configuration file to use\0"
+/*  2293 */ "SRPPASSWDCONF\0"
+/*  2307 */ "srppasswdconf\0"
+/*  2321 */ "PSK password file to use\0"
+/*  2346 */ "PSKPASSWD\0"
+/*  2356 */ "pskpasswd\0"
+/*  2366 */ "PSK identity hint to use\0"
+/*  2391 */ "PSKHINT\0"
+/*  2399 */ "pskhint\0"
+/*  2407 */ "The port to connect to\0"
+/*  2430 */ "PORT\0"
+/*  2435 */ "port\0"
+/*  2440 */ "Print a list of the supported algorithms and modes\0"
+/*  2491 */ "LIST\0"
+/*  2496 */ "list\0"
+/*  2501 */ "display extended usage information and exit\0"
+/*  2545 */ "help\0"
+/*  2550 */ "extended usage information passed thru pager\0"
+/*  2595 */ "more-help\0"
+/*  2605 */ "output version information and exit\0"
+/*  2641 */ "version\0"
+/*  2649 */ "GNUTLS_SERV\0"
+/*  2661 */ "gnutls-serv - GnuTLS server\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/*  2747 */ "bug-gnutls@gnu.org\0"
+/*  2766 */ "\n\0"
+/*  2768 */ "Server program that listens to incoming TLS connections.\n\0"
+/*  2826 */ "gnutls-serv 3.0.30\0"
+/*  2845 */ "Usage: gnutls-serv [options]\n"
             "gnutls-serv --help for usage instructions.\n";
 
-/*
+/**
  *  debug option description:
  */
-#define DEBUG_DESC      (gnutls_serv_opt_strs+890)
-#define DEBUG_NAME      (gnutls_serv_opt_strs+908)
-#define DEBUG_name      (gnutls_serv_opt_strs+914)
+/** Descriptive text for the debug option */
+#define DEBUG_DESC      (gnutls_serv_opt_strs+886)
+/** Upper-cased name for the debug option */
+#define DEBUG_NAME      (gnutls_serv_opt_strs+904)
+/** Name string for the debug option */
+#define DEBUG_name      (gnutls_serv_opt_strs+910)
+/** Compiled in flag settings for the debug option */
 #define DEBUG_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  noticket option description:
  */
-#define NOTICKET_DESC      (gnutls_serv_opt_strs+920)
-#define NOTICKET_NAME      (gnutls_serv_opt_strs+949)
-#define NOTICKET_name      (gnutls_serv_opt_strs+958)
+/** Descriptive text for the noticket option */
+#define NOTICKET_DESC      (gnutls_serv_opt_strs+916)
+/** Upper-cased name for the noticket option */
+#define NOTICKET_NAME      (gnutls_serv_opt_strs+945)
+/** Name string for the noticket option */
+#define NOTICKET_name      (gnutls_serv_opt_strs+954)
+/** Compiled in flag settings for the noticket option */
 #define NOTICKET_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  generate option description:
  */
-#define GENERATE_DESC      (gnutls_serv_opt_strs+967)
-#define GENERATE_NAME      (gnutls_serv_opt_strs+1017)
-#define GENERATE_name      (gnutls_serv_opt_strs+1026)
+/** Descriptive text for the generate option */
+#define GENERATE_DESC      (gnutls_serv_opt_strs+963)
+/** Upper-cased name for the generate option */
+#define GENERATE_NAME      (gnutls_serv_opt_strs+1013)
+/** Name string for the generate option */
+#define GENERATE_name      (gnutls_serv_opt_strs+1022)
+/** Compiled in flag settings for the generate option */
 #define GENERATE_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  quiet option description:
  */
-#define QUIET_DESC      (gnutls_serv_opt_strs+1035)
-#define QUIET_NAME      (gnutls_serv_opt_strs+1058)
-#define QUIET_name      (gnutls_serv_opt_strs+1064)
+/** Descriptive text for the quiet option */
+#define QUIET_DESC      (gnutls_serv_opt_strs+1031)
+/** Upper-cased name for the quiet option */
+#define QUIET_NAME      (gnutls_serv_opt_strs+1054)
+/** Name string for the quiet option */
+#define QUIET_name      (gnutls_serv_opt_strs+1060)
+/** Compiled in flag settings for the quiet option */
 #define QUIET_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  nodb option description:
  */
-#define NODB_DESC      (gnutls_serv_opt_strs+1070)
-#define NODB_NAME      (gnutls_serv_opt_strs+1103)
-#define NODB_name      (gnutls_serv_opt_strs+1108)
+/** Descriptive text for the nodb option */
+#define NODB_DESC      (gnutls_serv_opt_strs+1066)
+/** Upper-cased name for the nodb option */
+#define NODB_NAME      (gnutls_serv_opt_strs+1099)
+/** Name string for the nodb option */
+#define NODB_name      (gnutls_serv_opt_strs+1104)
+/** Compiled in flag settings for the nodb option */
 #define NODB_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  http option description:
  */
-#define HTTP_DESC      (gnutls_serv_opt_strs+1113)
-#define HTTP_NAME      (gnutls_serv_opt_strs+1135)
-#define HTTP_name      (gnutls_serv_opt_strs+1140)
+/** Descriptive text for the http option */
+#define HTTP_DESC      (gnutls_serv_opt_strs+1109)
+/** Upper-cased name for the http option */
+#define HTTP_NAME      (gnutls_serv_opt_strs+1131)
+/** Name string for the http option */
+#define HTTP_name      (gnutls_serv_opt_strs+1136)
+/** Compiled in flag settings for the http option */
 #define HTTP_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  echo option description:
  */
-#define ECHO_DESC      (gnutls_serv_opt_strs+1145)
-#define ECHO_NAME      (gnutls_serv_opt_strs+1167)
-#define ECHO_name      (gnutls_serv_opt_strs+1172)
+/** Descriptive text for the echo option */
+#define ECHO_DESC      (gnutls_serv_opt_strs+1141)
+/** Upper-cased name for the echo option */
+#define ECHO_NAME      (gnutls_serv_opt_strs+1163)
+/** Name string for the echo option */
+#define ECHO_name      (gnutls_serv_opt_strs+1168)
+/** Compiled in flag settings for the echo option */
 #define ECHO_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  udp option description:
  */
-#define UDP_DESC      (gnutls_serv_opt_strs+1177)
-#define UDP_NAME      (gnutls_serv_opt_strs+1210)
-#define UDP_name      (gnutls_serv_opt_strs+1214)
+/** Descriptive text for the udp option */
+#define UDP_DESC      (gnutls_serv_opt_strs+1173)
+/** Upper-cased name for the udp option */
+#define UDP_NAME      (gnutls_serv_opt_strs+1206)
+/** Name string for the udp option */
+#define UDP_name      (gnutls_serv_opt_strs+1210)
+/** Compiled in flag settings for the udp option */
 #define UDP_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  mtu option description:
  */
-#define MTU_DESC      (gnutls_serv_opt_strs+1218)
-#define MTU_NAME      (gnutls_serv_opt_strs+1243)
-#define MTU_name      (gnutls_serv_opt_strs+1247)
+/** Descriptive text for the mtu option */
+#define MTU_DESC      (gnutls_serv_opt_strs+1214)
+/** Upper-cased name for the mtu option */
+#define MTU_NAME      (gnutls_serv_opt_strs+1239)
+/** Name string for the mtu option */
+#define MTU_name      (gnutls_serv_opt_strs+1243)
+/** Compiled in flag settings for the mtu option */
 #define MTU_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  disable-client-cert option description:
  */
-#define DISABLE_CLIENT_CERT_DESC      (gnutls_serv_opt_strs+1251)
-#define DISABLE_CLIENT_CERT_NAME      (gnutls_serv_opt_strs+1287)
-#define DISABLE_CLIENT_CERT_name      (gnutls_serv_opt_strs+1307)
+/** Descriptive text for the disable-client-cert option */
+#define DISABLE_CLIENT_CERT_DESC      (gnutls_serv_opt_strs+1247)
+/** Upper-cased name for the disable-client-cert option */
+#define DISABLE_CLIENT_CERT_NAME      (gnutls_serv_opt_strs+1283)
+/** Name string for the disable-client-cert option */
+#define DISABLE_CLIENT_CERT_name      (gnutls_serv_opt_strs+1303)
+/** Compiled in flag settings for the disable-client-cert option */
 #define DISABLE_CLIENT_CERT_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  require-client-cert option description:
  */
-#define REQUIRE_CLIENT_CERT_DESC      (gnutls_serv_opt_strs+1327)
-#define REQUIRE_CLIENT_CERT_NAME      (gnutls_serv_opt_strs+1356)
-#define REQUIRE_CLIENT_CERT_name      (gnutls_serv_opt_strs+1376)
+/** Descriptive text for the require-client-cert option */
+#define REQUIRE_CLIENT_CERT_DESC      (gnutls_serv_opt_strs+1323)
+/** Upper-cased name for the require-client-cert option */
+#define REQUIRE_CLIENT_CERT_NAME      (gnutls_serv_opt_strs+1352)
+/** Name string for the require-client-cert option */
+#define REQUIRE_CLIENT_CERT_name      (gnutls_serv_opt_strs+1372)
+/** Compiled in flag settings for the require-client-cert option */
 #define REQUIRE_CLIENT_CERT_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  x509fmtder option description:
  */
-#define X509FMTDER_DESC      (gnutls_serv_opt_strs+1396)
-#define X509FMTDER_NAME      (gnutls_serv_opt_strs+1441)
-#define X509FMTDER_name      (gnutls_serv_opt_strs+1452)
+/** Descriptive text for the x509fmtder option */
+#define X509FMTDER_DESC      (gnutls_serv_opt_strs+1392)
+/** Upper-cased name for the x509fmtder option */
+#define X509FMTDER_NAME      (gnutls_serv_opt_strs+1437)
+/** Name string for the x509fmtder option */
+#define X509FMTDER_name      (gnutls_serv_opt_strs+1448)
+/** Compiled in flag settings for the x509fmtder option */
 #define X509FMTDER_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  priority option description:
  */
-#define PRIORITY_DESC      (gnutls_serv_opt_strs+1463)
-#define PRIORITY_NAME      (gnutls_serv_opt_strs+1481)
-#define PRIORITY_name      (gnutls_serv_opt_strs+1490)
+/** Descriptive text for the priority option */
+#define PRIORITY_DESC      (gnutls_serv_opt_strs+1459)
+/** Upper-cased name for the priority option */
+#define PRIORITY_NAME      (gnutls_serv_opt_strs+1477)
+/** Name string for the priority option */
+#define PRIORITY_name      (gnutls_serv_opt_strs+1486)
+/** Compiled in flag settings for the priority option */
 #define PRIORITY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  dhparams option description:
  */
-#define DHPARAMS_DESC      (gnutls_serv_opt_strs+1499)
-#define DHPARAMS_NAME      (gnutls_serv_opt_strs+1521)
-#define DHPARAMS_name      (gnutls_serv_opt_strs+1530)
+/** Descriptive text for the dhparams option */
+#define DHPARAMS_DESC      (gnutls_serv_opt_strs+1495)
+/** Upper-cased name for the dhparams option */
+#define DHPARAMS_NAME      (gnutls_serv_opt_strs+1517)
+/** Name string for the dhparams option */
+#define DHPARAMS_name      (gnutls_serv_opt_strs+1526)
+/** Compiled in flag settings for the dhparams option */
 #define DHPARAMS_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  x509cafile option description:
  */
-#define X509CAFILE_DESC      (gnutls_serv_opt_strs+1539)
-#define X509CAFILE_NAME      (gnutls_serv_opt_strs+1579)
-#define X509CAFILE_name      (gnutls_serv_opt_strs+1590)
+/** Descriptive text for the x509cafile option */
+#define X509CAFILE_DESC      (gnutls_serv_opt_strs+1535)
+/** Upper-cased name for the x509cafile option */
+#define X509CAFILE_NAME      (gnutls_serv_opt_strs+1575)
+/** Name string for the x509cafile option */
+#define X509CAFILE_name      (gnutls_serv_opt_strs+1586)
+/** Compiled in flag settings for the x509cafile option */
 #define X509CAFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509crlfile option description:
  */
-#define X509CRLFILE_DESC      (gnutls_serv_opt_strs+1601)
-#define X509CRLFILE_NAME      (gnutls_serv_opt_strs+1617)
-#define X509CRLFILE_name      (gnutls_serv_opt_strs+1629)
+/** Descriptive text for the x509crlfile option */
+#define X509CRLFILE_DESC      (gnutls_serv_opt_strs+1597)
+/** Upper-cased name for the x509crlfile option */
+#define X509CRLFILE_NAME      (gnutls_serv_opt_strs+1613)
+/** Name string for the x509crlfile option */
+#define X509CRLFILE_name      (gnutls_serv_opt_strs+1625)
+/** Compiled in flag settings for the x509crlfile option */
 #define X509CRLFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pgpkeyfile option description:
  */
-#define PGPKEYFILE_DESC      (gnutls_serv_opt_strs+1641)
-#define PGPKEYFILE_NAME      (gnutls_serv_opt_strs+1661)
-#define PGPKEYFILE_name      (gnutls_serv_opt_strs+1672)
+/** Descriptive text for the pgpkeyfile option */
+#define PGPKEYFILE_DESC      (gnutls_serv_opt_strs+1637)
+/** Upper-cased name for the pgpkeyfile option */
+#define PGPKEYFILE_NAME      (gnutls_serv_opt_strs+1657)
+/** Name string for the pgpkeyfile option */
+#define PGPKEYFILE_name      (gnutls_serv_opt_strs+1668)
+/** Compiled in flag settings for the pgpkeyfile option */
 #define PGPKEYFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pgpkeyring option description:
  */
-#define PGPKEYRING_DESC      (gnutls_serv_opt_strs+1683)
-#define PGPKEYRING_NAME      (gnutls_serv_opt_strs+1708)
-#define PGPKEYRING_name      (gnutls_serv_opt_strs+1719)
+/** Descriptive text for the pgpkeyring option */
+#define PGPKEYRING_DESC      (gnutls_serv_opt_strs+1679)
+/** Upper-cased name for the pgpkeyring option */
+#define PGPKEYRING_NAME      (gnutls_serv_opt_strs+1704)
+/** Name string for the pgpkeyring option */
+#define PGPKEYRING_name      (gnutls_serv_opt_strs+1715)
+/** Compiled in flag settings for the pgpkeyring option */
 #define PGPKEYRING_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pgpcertfile option description:
  */
-#define PGPCERTFILE_DESC      (gnutls_serv_opt_strs+1730)
-#define PGPCERTFILE_NAME      (gnutls_serv_opt_strs+1771)
-#define PGPCERTFILE_name      (gnutls_serv_opt_strs+1783)
+/** Descriptive text for the pgpcertfile option */
+#define PGPCERTFILE_DESC      (gnutls_serv_opt_strs+1726)
+/** Upper-cased name for the pgpcertfile option */
+#define PGPCERTFILE_NAME      (gnutls_serv_opt_strs+1767)
+/** Name string for the pgpcertfile option */
+#define PGPCERTFILE_name      (gnutls_serv_opt_strs+1779)
+/** Compiled in flag settings for the pgpcertfile option */
 #define PGPCERTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  x509keyfile option description:
  */
-#define X509KEYFILE_DESC      (gnutls_serv_opt_strs+1795)
-#define X509KEYFILE_NAME      (gnutls_serv_opt_strs+1833)
-#define X509KEYFILE_name      (gnutls_serv_opt_strs+1845)
+/** Descriptive text for the x509keyfile option */
+#define X509KEYFILE_DESC      (gnutls_serv_opt_strs+1791)
+/** Upper-cased name for the x509keyfile option */
+#define X509KEYFILE_NAME      (gnutls_serv_opt_strs+1829)
+/** Name string for the x509keyfile option */
+#define X509KEYFILE_name      (gnutls_serv_opt_strs+1841)
+/** Compiled in flag settings for the x509keyfile option */
 #define X509KEYFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509certfile option description:
  */
-#define X509CERTFILE_DESC      (gnutls_serv_opt_strs+1857)
-#define X509CERTFILE_NAME      (gnutls_serv_opt_strs+1903)
-#define X509CERTFILE_name      (gnutls_serv_opt_strs+1916)
+/** Descriptive text for the x509certfile option */
+#define X509CERTFILE_DESC      (gnutls_serv_opt_strs+1853)
+/** Upper-cased name for the x509certfile option */
+#define X509CERTFILE_NAME      (gnutls_serv_opt_strs+1899)
+/** Name string for the x509certfile option */
+#define X509CERTFILE_name      (gnutls_serv_opt_strs+1912)
+/** Compiled in flag settings for the x509certfile option */
 #define X509CERTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509dsakeyfile option description:
  */
-#define X509DSAKEYFILE_DESC      (gnutls_serv_opt_strs+1929)
-#define X509DSAKEYFILE_NAME      (gnutls_serv_opt_strs+1979)
-#define X509DSAKEYFILE_name      (gnutls_serv_opt_strs+1994)
+/** Descriptive text for the x509dsakeyfile option */
+#define X509DSAKEYFILE_DESC      (gnutls_serv_opt_strs+1925)
+/** Upper-cased name for the x509dsakeyfile option */
+#define X509DSAKEYFILE_NAME      (gnutls_serv_opt_strs+1975)
+/** Name string for the x509dsakeyfile option */
+#define X509DSAKEYFILE_name      (gnutls_serv_opt_strs+1990)
+/** Compiled in flag settings for the x509dsakeyfile option */
 #define X509DSAKEYFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509dsacertfile option description:
  */
-#define X509DSACERTFILE_DESC      (gnutls_serv_opt_strs+2009)
-#define X509DSACERTFILE_NAME      (gnutls_serv_opt_strs+2067)
-#define X509DSACERTFILE_name      (gnutls_serv_opt_strs+2083)
+/** Descriptive text for the x509dsacertfile option */
+#define X509DSACERTFILE_DESC      (gnutls_serv_opt_strs+2005)
+/** Upper-cased name for the x509dsacertfile option */
+#define X509DSACERTFILE_NAME      (gnutls_serv_opt_strs+2063)
+/** Name string for the x509dsacertfile option */
+#define X509DSACERTFILE_name      (gnutls_serv_opt_strs+2079)
+/** Compiled in flag settings for the x509dsacertfile option */
 #define X509DSACERTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509ecckeyfile option description:
  */
-#define X509ECCKEYFILE_DESC      (gnutls_serv_opt_strs+1929)
-#define X509ECCKEYFILE_NAME      (gnutls_serv_opt_strs+2099)
-#define X509ECCKEYFILE_name      (gnutls_serv_opt_strs+2114)
+/** Descriptive text for the x509ecckeyfile option */
+#define X509ECCKEYFILE_DESC      (gnutls_serv_opt_strs+1925)
+/** Upper-cased name for the x509ecckeyfile option */
+#define X509ECCKEYFILE_NAME      (gnutls_serv_opt_strs+2095)
+/** Name string for the x509ecckeyfile option */
+#define X509ECCKEYFILE_name      (gnutls_serv_opt_strs+2110)
+/** Compiled in flag settings for the x509ecckeyfile option */
 #define X509ECCKEYFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  x509ecccertfile option description:
  */
-#define X509ECCCERTFILE_DESC      (gnutls_serv_opt_strs+2009)
-#define X509ECCCERTFILE_NAME      (gnutls_serv_opt_strs+2129)
-#define X509ECCCERTFILE_name      (gnutls_serv_opt_strs+2145)
+/** Descriptive text for the x509ecccertfile option */
+#define X509ECCCERTFILE_DESC      (gnutls_serv_opt_strs+2005)
+/** Upper-cased name for the x509ecccertfile option */
+#define X509ECCCERTFILE_NAME      (gnutls_serv_opt_strs+2125)
+/** Name string for the x509ecccertfile option */
+#define X509ECCCERTFILE_name      (gnutls_serv_opt_strs+2141)
+/** Compiled in flag settings for the x509ecccertfile option */
 #define X509ECCCERTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  pgpsubkey option description:
  */
-#define PGPSUBKEY_DESC      (gnutls_serv_opt_strs+2161)
-#define PGPSUBKEY_NAME      (gnutls_serv_opt_strs+2193)
-#define PGPSUBKEY_name      (gnutls_serv_opt_strs+2203)
+/** Descriptive text for the pgpsubkey option */
+#define PGPSUBKEY_DESC      (gnutls_serv_opt_strs+2157)
+/** Upper-cased name for the pgpsubkey option */
+#define PGPSUBKEY_NAME      (gnutls_serv_opt_strs+2189)
+/** Name string for the pgpsubkey option */
+#define PGPSUBKEY_name      (gnutls_serv_opt_strs+2199)
+/** Compiled in flag settings for the pgpsubkey option */
 #define PGPSUBKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  srppasswd option description:
  */
-#define SRPPASSWD_DESC      (gnutls_serv_opt_strs+2213)
-#define SRPPASSWD_NAME      (gnutls_serv_opt_strs+2238)
-#define SRPPASSWD_name      (gnutls_serv_opt_strs+2248)
+/** Descriptive text for the srppasswd option */
+#define SRPPASSWD_DESC      (gnutls_serv_opt_strs+2209)
+/** Upper-cased name for the srppasswd option */
+#define SRPPASSWD_NAME      (gnutls_serv_opt_strs+2234)
+/** Name string for the srppasswd option */
+#define SRPPASSWD_name      (gnutls_serv_opt_strs+2244)
+/** Compiled in flag settings for the srppasswd option */
 #define SRPPASSWD_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  srppasswdconf option description:
  */
-#define SRPPASSWDCONF_DESC      (gnutls_serv_opt_strs+2258)
-#define SRPPASSWDCONF_NAME      (gnutls_serv_opt_strs+2297)
-#define SRPPASSWDCONF_name      (gnutls_serv_opt_strs+2311)
+/** Descriptive text for the srppasswdconf option */
+#define SRPPASSWDCONF_DESC      (gnutls_serv_opt_strs+2254)
+/** Upper-cased name for the srppasswdconf option */
+#define SRPPASSWDCONF_NAME      (gnutls_serv_opt_strs+2293)
+/** Name string for the srppasswdconf option */
+#define SRPPASSWDCONF_name      (gnutls_serv_opt_strs+2307)
+/** Compiled in flag settings for the srppasswdconf option */
 #define SRPPASSWDCONF_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pskpasswd option description:
  */
-#define PSKPASSWD_DESC      (gnutls_serv_opt_strs+2325)
-#define PSKPASSWD_NAME      (gnutls_serv_opt_strs+2350)
-#define PSKPASSWD_name      (gnutls_serv_opt_strs+2360)
+/** Descriptive text for the pskpasswd option */
+#define PSKPASSWD_DESC      (gnutls_serv_opt_strs+2321)
+/** Upper-cased name for the pskpasswd option */
+#define PSKPASSWD_NAME      (gnutls_serv_opt_strs+2346)
+/** Name string for the pskpasswd option */
+#define PSKPASSWD_name      (gnutls_serv_opt_strs+2356)
+/** Compiled in flag settings for the pskpasswd option */
 #define PSKPASSWD_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
 
-/*
+/**
  *  pskhint option description:
  */
-#define PSKHINT_DESC      (gnutls_serv_opt_strs+2370)
-#define PSKHINT_NAME      (gnutls_serv_opt_strs+2395)
-#define PSKHINT_name      (gnutls_serv_opt_strs+2403)
+/** Descriptive text for the pskhint option */
+#define PSKHINT_DESC      (gnutls_serv_opt_strs+2366)
+/** Upper-cased name for the pskhint option */
+#define PSKHINT_NAME      (gnutls_serv_opt_strs+2391)
+/** Name string for the pskhint option */
+#define PSKHINT_name      (gnutls_serv_opt_strs+2399)
+/** Compiled in flag settings for the pskhint option */
 #define PSKHINT_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  port option description:
  */
-#define PORT_DESC      (gnutls_serv_opt_strs+2411)
-#define PORT_NAME      (gnutls_serv_opt_strs+2434)
-#define PORT_name      (gnutls_serv_opt_strs+2439)
+/** Descriptive text for the port option */
+#define PORT_DESC      (gnutls_serv_opt_strs+2407)
+/** Upper-cased name for the port option */
+#define PORT_NAME      (gnutls_serv_opt_strs+2430)
+/** Name string for the port option */
+#define PORT_name      (gnutls_serv_opt_strs+2435)
+/** Compiled in flag settings for the port option */
 #define PORT_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  list option description:
  */
-#define LIST_DESC      (gnutls_serv_opt_strs+2444)
-#define LIST_NAME      (gnutls_serv_opt_strs+2495)
-#define LIST_name      (gnutls_serv_opt_strs+2500)
+/** Descriptive text for the list option */
+#define LIST_DESC      (gnutls_serv_opt_strs+2440)
+/** Upper-cased name for the list option */
+#define LIST_NAME      (gnutls_serv_opt_strs+2491)
+/** Name string for the list option */
+#define LIST_name      (gnutls_serv_opt_strs+2496)
+/** Compiled in flag settings for the list option */
 #define LIST_FLAGS     (OPTST_DISABLED)
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (gnutls_serv_opt_strs+2505)
-#define HELP_name       (gnutls_serv_opt_strs+2549)
+#define HELP_DESC       (gnutls_serv_opt_strs+2501)
+#define HELP_name       (gnutls_serv_opt_strs+2545)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (gnutls_serv_opt_strs+2554)
-#define MORE_HELP_name  (gnutls_serv_opt_strs+2599)
+#define MORE_HELP_DESC  (gnutls_serv_opt_strs+2550)
+#define MORE_HELP_name  (gnutls_serv_opt_strs+2595)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -492,9 +614,9 @@ static char const gnutls_serv_opt_strs[2938] =
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (gnutls_serv_opt_strs+2609)
-#define VER_name        (gnutls_serv_opt_strs+2645)
-/*
+#define VER_DESC        (gnutls_serv_opt_strs+2605)
+#define VER_name        (gnutls_serv_opt_strs+2641)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -904,7 +1026,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -918,7 +1040,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -930,7 +1052,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -940,19 +1062,24 @@ static tOptDesc optDesc[OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the gnutls-serv Option Environment
- */
-#define zPROGNAME       (gnutls_serv_opt_strs+2653)
-#define zUsageTitle     (gnutls_serv_opt_strs+2665)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of gnutls-serv. */
+#define zPROGNAME       (gnutls_serv_opt_strs+2649)
+/** Reference to the title line for gnutls-serv usage. */
+#define zUsageTitle     (gnutls_serv_opt_strs+2661)
+/** There is no gnutls-serv configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for gnutls-serv config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (gnutls_serv_opt_strs+2765)
-#define zExplain        (gnutls_serv_opt_strs+2784)
-#define zDetail         (gnutls_serv_opt_strs+2787)
-#define zFullVersion    (gnutls_serv_opt_strs+2846)
-/* extracted from optcode.tlib near line 350 */
+/** The gnutls-serv program bug email address. */
+#define zBugsAddr       (gnutls_serv_opt_strs+2747)
+/** Clarification/explanation of what gnutls-serv does. */
+#define zExplain        (gnutls_serv_opt_strs+2766)
+/** Extra detail explaining what gnutls-serv does. */
+#define zDetail         (gnutls_serv_opt_strs+2768)
+/** The full version string for gnutls-serv. */
+#define zFullVersion    (gnutls_serv_opt_strs+2826)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -962,10 +1089,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define gnutls_serv_full_usage (NULL)
-
-#define gnutls_serv_short_usage (gnutls_serv_opt_strs+2865)
+#define gnutls_serv_short_usage (gnutls_serv_opt_strs+2845)
 
 #endif /* not defined __doxygen__ */
 
@@ -975,8 +1100,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 /**
  * The callout function that invokes the optionUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -991,9 +1116,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the debug option.
- *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * Specifies the debug level.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1019,8 +1144,7 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -1028,8 +1152,8 @@ emit_ranges:
 /**
  * Code to handle the mtu option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptMtu(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1055,8 +1179,7 @@ doOptMtu(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
@@ -1064,8 +1187,8 @@ emit_ranges:
 /**
  * Code to handle the dhparams option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDhparams(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1078,6 +1201,9 @@ doOptDhparams(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1085,8 +1211,8 @@ doOptDhparams(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the x509crlfile option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptX509crlfile(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1099,6 +1225,9 @@ doOptX509crlfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1106,8 +1235,8 @@ doOptX509crlfile(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the pgpkeyfile option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptPgpkeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1120,6 +1249,9 @@ doOptPgpkeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1127,8 +1259,8 @@ doOptPgpkeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the pgpkeyring option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptPgpkeyring(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1141,6 +1273,9 @@ doOptPgpkeyring(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1148,8 +1283,8 @@ doOptPgpkeyring(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the pgpcertfile option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1162,6 +1297,9 @@ doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1169,8 +1307,8 @@ doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the srppasswd option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptSrppasswd(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1183,6 +1321,9 @@ doOptSrppasswd(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1190,8 +1331,8 @@ doOptSrppasswd(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the srppasswdconf option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptSrppasswdconf(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1204,6 +1345,9 @@ doOptSrppasswdconf(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
 
@@ -1211,8 +1355,8 @@ doOptSrppasswdconf(tOptions* pOptions, tOptDesc* pOptDesc)
 /**
  * Code to handle the pskpasswd option.
  *
- * @param pOptions the gnutls-serv options data structure
- * @param pOptDesc the option descriptor for this option.
+ * @param[in] pOptions the gnutls-serv options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptPskpasswd(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1225,9 +1369,12 @@ doOptPskpasswd(tOptions* pOptions, tOptDesc* pOptDesc)
 #endif
     mode.file_flags = O_CLOEXEC;
 
+    /*
+     * This function handles special invalid values for "pOptions"
+     */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with gnutls-serv.
@@ -1243,6 +1390,7 @@ doOptPskpasswd(tOptions* pOptions, tOptDesc* pOptDesc)
 #ifndef  WITH_PACKAGER
 # define gnutls_serv_packager_info NULL
 #else
+/** Packager information for gnutls-serv. */
 static char const gnutls_serv_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -1297,42 +1445,69 @@ tOptions gnutls_servOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * gnutls-serv program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(GNUTLS_SERV_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -1342,56 +1517,497 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &gnutls_servOptions;
+    tOptions * const opts = &gnutls_servOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
-
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        coerce_it((void*)&(pOpt->pzShortUsage));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
+
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        gnutls_servOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the gnutls_servOptions structure noted in the comments below.  The
+     literal text is defined in gnutls_serv_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     gnutls_serv_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via gnutls_servOptions.pzCopyright */
+  puts(_("gnutls-serv 3.0.30\n\
+Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU General Public License,\n\
+version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
+
+  /* referenced via gnutls_servOptions.pzCopyNotice */
+  puts(_("gnutls-serv is free software: you can redistribute it and/or modify it\n\
+under the terms of the GNU General Public License as published by the Free\n\
+Software Foundation, either version 3 of the License, or (at your option)\n\
+any later version.\n\n"));
+  puts(_("gnutls-serv is distributed in the hope that it will be useful, but WITHOUT\n\
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n\
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\n\
+more details.\n\n"));
+  puts(_("You should have received a copy of the GNU General Public License along\n\
+with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Enable debugging."));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Don't accept session tickets"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Generate Diffie-Hellman and RSA-export parameters"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Suppress some messages"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Do not use a resumption database"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Act as an HTTP server"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Act as an Echo server"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Use DTLS (datagram TLS) over UDP"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Set MTU for datagram TLS"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Do not request a client certificate"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Require a client certificate"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Use DER format for certificates to read from"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Priorities string"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("DH params file to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Certificate file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("CRL file to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("PGP Key file to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("PGP Key ring file to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("PGP Public Key (certificate) file to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("X.509 key file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("X.509 Certificate file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Alternative X.509 key file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Alternative X.509 Certificate file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Alternative X.509 key file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Alternative X.509 Certificate file or PKCS #11 URL to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("PGP subkey to use (hex or auto)"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("SRP password file to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("SRP password configuration file to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("PSK password file to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("PSK identity hint to use"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("The port to connect to"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("Print a list of the supported algorithms and modes"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via gnutls_servOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via gnutls_servOptions.pzUsageTitle */
+  puts(_("gnutls-serv - GnuTLS server\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
+
+  /* referenced via gnutls_servOptions.pzExplain */
+  puts(_("\n"));
+
+  /* referenced via gnutls_servOptions.pzDetail */
+  puts(_("Server program that listens to incoming TLS connections.\n"));
+
+  /* referenced via gnutls_servOptions.pzFullVersion */
+  puts(_("gnutls-serv 3.0.30"));
+
+  /* referenced via gnutls_servOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via gnutls_servOptions.pzShortUsage */
+  puts(_("Usage: gnutls-serv [options]\n\
+gnutls-serv --help for usage instructions.\n"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index 2f01c14..4cb439d 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (serv-args.h)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:05:57 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:23 PM by AutoGen 5.17.3
  *  From the definitions    serv-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  gnutls-serv 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-serv 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the gnutls-serv program.
  *  These macros are documented in the AutoGen info file in the
 #include "config.h"
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for gnutls-serv
  */
 typedef enum {
     INDEX_OPT_DEBUG                =  0,
@@ -103,44 +102,63 @@ typedef enum {
     INDEX_OPT_HELP                 = 33,
     INDEX_OPT_MORE_HELP            = 34
 } teOptIndex;
-
+/** count of all options for gnutls-serv */
 #define OPTION_CT    35
-#define GNUTLS_SERV_VERSION       "3.0.21"
-#define GNUTLS_SERV_FULL_VERSION  "gnutls-serv 3.0.21"
+/** gnutls-serv version */
+#define GNUTLS_SERV_VERSION       "3.0.30"
+/** Full gnutls-serv version text */
+#define GNUTLS_SERV_FULL_VERSION  "gnutls-serv 3.0.30"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teOptIndex enumeration above).
  *  e.g. HAVE_OPT(DEBUG)
  */
 #define         DESC(n) (gnutls_servOptions.pOptDesc[INDEX_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      OPT_ARG(n) (DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_OPT(n) (DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_OPT(n) STMTS( \
                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     DESC(n).fOptState |= OPTST_DISABLED; \
                 DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of gnutls-serv exit codes
  */
 typedef enum {
-    GNUTLS_SERV_EXIT_SUCCESS = 0,
-    GNUTLS_SERV_EXIT_FAILURE = 1,
+    GNUTLS_SERV_EXIT_SUCCESS        = 0,
+    GNUTLS_SERV_EXIT_FAILURE        = 1,
+    GNUTLS_SERV_EXIT_USAGE_ERROR    = 64,
     GNUTLS_SERV_EXIT_LIBOPTS_FAILURE = 70
 } gnutls_serv_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_OPT_DEBUG          'd'
 
@@ -180,8 +198,11 @@ typedef enum {
 
 #define OPT_VALUE_PORT           (DESC(PORT).optArg.argInt)
 #define VALUE_OPT_LIST           'l'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_MORE_HELP     '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_VERSION       'v'
 /*
  *  Interface defines not associated with particular options
@@ -193,7 +214,7 @@ typedef enum {
                 gnutls_servOptions.pzCurOpt  = NULL)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*gnutls_servOptions.pUsageProc)(&gnutls_servOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -213,6 +234,12 @@ extern tOptions gnutls_servOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
index 52fcdde..c7c104a 100644 (file)
@@ -730,6 +730,17 @@ listen_socket (const char *name, int listen_port, int socktype)
           continue;
         }
 
+#ifdef HAVE_IPV6
+      if (ptr->ai_family == AF_INET6)
+        {
+          yes = 1;
+          /* avoid listen on ipv6 addresses failing
+          * because already listening on ipv4 addresses: */
+          setsockopt (s, IPPROTO_IPV6, IPV6_V6ONLY,
+                          (const void *) &yes, sizeof (yes));
+        }
+#endif
+
       if (socktype == SOCK_STREAM)
         {
           yes = 1;
index 17cedd5..a01fbdf 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (srptool-args.c)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:06:00 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:27 PM by AutoGen 5.17.3
  *  From the definitions    srptool-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This source file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  srptool 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.
- *  
+ *
  *  srptool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 extern "C" {
 #endif
 extern FILE * option_usage_fp;
-
-/* TRANSLATORS: choose the translation for option names wisely because you
-                cannot ever change your mind. */
 #define zCopyright      (srptool_opt_strs+0)
-#define zLicenseDescrip (srptool_opt_strs+275)
+#define zLicenseDescrip (srptool_opt_strs+271)
 
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
-/*
- *  srptool option static const strings
+/**
+ *  static const strings for srptool options
  */
-static char const srptool_opt_strs[2040] =
-/*     0 */ "srptool 3.0.21\n"
+static char const srptool_opt_strs[2020] =
+/*     0 */ "srptool 3.0.30\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
-            "redistribution under the terms of the\n"
-            "GNU General Public License, version 3 or later\n"
-            "    <http://gnu.org/licenses/gpl.html>\n\0"
-/*   275 */ "srptool is free software: you can redistribute it and/or modify it under\n"
+            "redistribution under the terms of the GNU General Public License,\n"
+            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
+/*   271 */ "srptool is free software: you can redistribute it and/or modify it under\n"
             "the terms of the GNU General Public License as published by the Free\n"
             "Software Foundation, either version 3 of the License, or (at your option)\n"
             "any later version.\n\n"
@@ -84,130 +79,161 @@ static char const srptool_opt_strs[2040] =
             "details.\n\n"
             "You should have received a copy of the GNU General Public License along\n"
             "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
-/*   878 */ "Enable debugging.\0"
-/*   896 */ "DEBUG\0"
-/*   902 */ "debug\0"
-/*   908 */ "specify the index of the group parameters in tpasswd.conf to use.\0"
-/*   974 */ "INDEX\0"
-/*   980 */ "index\0"
-/*   986 */ "specify a username\0"
-/*  1005 */ "USERNAME\0"
-/*  1014 */ "username\0"
-/*  1023 */ "specify a password file.\0"
-/*  1048 */ "PASSWD\0"
-/*  1055 */ "passwd\0"
-/*  1062 */ "specify salt size.\0"
-/*  1081 */ "SALT\0"
-/*  1086 */ "salt\0"
-/*  1091 */ "just verify the password.\0"
-/*  1117 */ "VERIFY\0"
-/*  1124 */ "verify\0"
-/*  1131 */ "specify a password conf file.\0"
-/*  1161 */ "PASSWD_CONF\0"
-/*  1173 */ "passwd-conf\0"
-/*  1185 */ "Generate a password configuration file.\0"
-/*  1225 */ "CREATE_CONF\0"
-/*  1237 */ "create-conf\0"
-/*  1249 */ "Display extended usage information and exit\0"
-/*  1293 */ "help\0"
-/*  1298 */ "Extended usage information passed thru pager\0"
-/*  1343 */ "more-help\0"
-/*  1353 */ "Output version information and exit\0"
-/*  1389 */ "version\0"
-/*  1397 */ "SRPTOOL\0"
-/*  1405 */ "srptool - GnuTLS SRP tool - Ver. 3.0.21\n"
-            "USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/*  1503 */ "bug-gnutls@gnu.org\0"
-/*  1522 */ "\n\n\0"
-/*  1525 */ "\n"
-            "Simple program that emulates the programs in the Stanford SRP (Secure\n"
+/*   874 */ "Enable debugging.\0"
+/*   892 */ "DEBUG\0"
+/*   898 */ "debug\0"
+/*   904 */ "specify the index of the group parameters in tpasswd.conf to use.\0"
+/*   970 */ "INDEX\0"
+/*   976 */ "index\0"
+/*   982 */ "specify a username\0"
+/*  1001 */ "USERNAME\0"
+/*  1010 */ "username\0"
+/*  1019 */ "specify a password file.\0"
+/*  1044 */ "PASSWD\0"
+/*  1051 */ "passwd\0"
+/*  1058 */ "specify salt size.\0"
+/*  1077 */ "SALT\0"
+/*  1082 */ "salt\0"
+/*  1087 */ "just verify the password.\0"
+/*  1113 */ "VERIFY\0"
+/*  1120 */ "verify\0"
+/*  1127 */ "specify a password conf file.\0"
+/*  1157 */ "PASSWD_CONF\0"
+/*  1169 */ "passwd-conf\0"
+/*  1181 */ "Generate a password configuration file.\0"
+/*  1221 */ "CREATE_CONF\0"
+/*  1233 */ "create-conf\0"
+/*  1245 */ "display extended usage information and exit\0"
+/*  1289 */ "help\0"
+/*  1294 */ "extended usage information passed thru pager\0"
+/*  1339 */ "more-help\0"
+/*  1349 */ "output version information and exit\0"
+/*  1385 */ "version\0"
+/*  1393 */ "SRPTOOL\0"
+/*  1401 */ "srptool - GnuTLS SRP tool\n"
+            "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
+/*  1485 */ "bug-gnutls@gnu.org\0"
+/*  1504 */ "\n\0"
+/*  1506 */ "Simple program that emulates the programs in the Stanford SRP (Secure\n"
             "Remote Password) libraries using GnuTLS.  It is intended for use in places\n"
             "where you don't expect SRP authentication to be the used for system users.\n\n"
             "In brief, to use SRP you need to create two files.  These are the password\n"
             "file that holds the users and the verifiers associated with them and the\n"
             "configuration file to hold the group parameters (called tpasswd.conf).\n\0"
-/*  1967 */ "srptool 3.0.21\0"
-/*  1982 */ "srptool [options]\n"
+/*  1947 */ "srptool 3.0.30\0"
+/*  1962 */ "srptool [options]\n"
             "srptool --help for usage instructions.\n";
 
-/*
+/**
  *  debug option description:
  */
-#define DEBUG_DESC      (srptool_opt_strs+878)
-#define DEBUG_NAME      (srptool_opt_strs+896)
-#define DEBUG_name      (srptool_opt_strs+902)
+/** Descriptive text for the debug option */
+#define DEBUG_DESC      (srptool_opt_strs+874)
+/** Upper-cased name for the debug option */
+#define DEBUG_NAME      (srptool_opt_strs+892)
+/** Name string for the debug option */
+#define DEBUG_name      (srptool_opt_strs+898)
+/** Compiled in flag settings for the debug option */
 #define DEBUG_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  index option description:
  */
-#define INDEX_DESC      (srptool_opt_strs+908)
-#define INDEX_NAME      (srptool_opt_strs+974)
-#define INDEX_name      (srptool_opt_strs+980)
+/** Descriptive text for the index option */
+#define INDEX_DESC      (srptool_opt_strs+904)
+/** Upper-cased name for the index option */
+#define INDEX_NAME      (srptool_opt_strs+970)
+/** Name string for the index option */
+#define INDEX_name      (srptool_opt_strs+976)
+/** Compiled in flag settings for the index option */
 #define INDEX_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  username option description:
  */
-#define USERNAME_DESC      (srptool_opt_strs+986)
-#define USERNAME_NAME      (srptool_opt_strs+1005)
-#define USERNAME_name      (srptool_opt_strs+1014)
+/** Descriptive text for the username option */
+#define USERNAME_DESC      (srptool_opt_strs+982)
+/** Upper-cased name for the username option */
+#define USERNAME_NAME      (srptool_opt_strs+1001)
+/** Name string for the username option */
+#define USERNAME_name      (srptool_opt_strs+1010)
+/** Compiled in flag settings for the username option */
 #define USERNAME_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  passwd option description:
  */
-#define PASSWD_DESC      (srptool_opt_strs+1023)
-#define PASSWD_NAME      (srptool_opt_strs+1048)
-#define PASSWD_name      (srptool_opt_strs+1055)
+/** Descriptive text for the passwd option */
+#define PASSWD_DESC      (srptool_opt_strs+1019)
+/** Upper-cased name for the passwd option */
+#define PASSWD_NAME      (srptool_opt_strs+1044)
+/** Name string for the passwd option */
+#define PASSWD_name      (srptool_opt_strs+1051)
+/** Compiled in flag settings for the passwd option */
 #define PASSWD_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  salt option description:
  */
-#define SALT_DESC      (srptool_opt_strs+1062)
-#define SALT_NAME      (srptool_opt_strs+1081)
-#define SALT_name      (srptool_opt_strs+1086)
+/** Descriptive text for the salt option */
+#define SALT_DESC      (srptool_opt_strs+1058)
+/** Upper-cased name for the salt option */
+#define SALT_NAME      (srptool_opt_strs+1077)
+/** Name string for the salt option */
+#define SALT_name      (srptool_opt_strs+1082)
+/** Compiled in flag settings for the salt option */
 #define SALT_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/*
+/**
  *  verify option description:
  */
-#define VERIFY_DESC      (srptool_opt_strs+1091)
-#define VERIFY_NAME      (srptool_opt_strs+1117)
-#define VERIFY_name      (srptool_opt_strs+1124)
+/** Descriptive text for the verify option */
+#define VERIFY_DESC      (srptool_opt_strs+1087)
+/** Upper-cased name for the verify option */
+#define VERIFY_NAME      (srptool_opt_strs+1113)
+/** Name string for the verify option */
+#define VERIFY_name      (srptool_opt_strs+1120)
+/** Compiled in flag settings for the verify option */
 #define VERIFY_FLAGS     (OPTST_DISABLED)
 
-/*
+/**
  *  passwd-conf option description:
  */
-#define PASSWD_CONF_DESC      (srptool_opt_strs+1131)
-#define PASSWD_CONF_NAME      (srptool_opt_strs+1161)
-#define PASSWD_CONF_name      (srptool_opt_strs+1173)
+/** Descriptive text for the passwd-conf option */
+#define PASSWD_CONF_DESC      (srptool_opt_strs+1127)
+/** Upper-cased name for the passwd-conf option */
+#define PASSWD_CONF_NAME      (srptool_opt_strs+1157)
+/** Name string for the passwd-conf option */
+#define PASSWD_CONF_name      (srptool_opt_strs+1169)
+/** Compiled in flag settings for the passwd-conf option */
 #define PASSWD_CONF_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/*
+/**
  *  create-conf option description:
  */
-#define CREATE_CONF_DESC      (srptool_opt_strs+1185)
-#define CREATE_CONF_NAME      (srptool_opt_strs+1225)
-#define CREATE_CONF_name      (srptool_opt_strs+1237)
+/** Descriptive text for the create-conf option */
+#define CREATE_CONF_DESC      (srptool_opt_strs+1181)
+/** Upper-cased name for the create-conf option */
+#define CREATE_CONF_NAME      (srptool_opt_strs+1221)
+/** Name string for the create-conf option */
+#define CREATE_CONF_name      (srptool_opt_strs+1233)
+/** Compiled in flag settings for the create-conf option */
 #define CREATE_CONF_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (srptool_opt_strs+1249)
-#define HELP_name       (srptool_opt_strs+1293)
+#define HELP_DESC       (srptool_opt_strs+1245)
+#define HELP_name       (srptool_opt_strs+1289)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (srptool_opt_strs+1298)
-#define MORE_HELP_name  (srptool_opt_strs+1343)
+#define MORE_HELP_DESC  (srptool_opt_strs+1294)
+#define MORE_HELP_name  (srptool_opt_strs+1339)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -220,9 +246,9 @@ static char const srptool_opt_strs[2040] =
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (srptool_opt_strs+1353)
-#define VER_name        (srptool_opt_strs+1389)
-/*
+#define VER_DESC        (srptool_opt_strs+1349)
+#define VER_name        (srptool_opt_strs+1385)
+/**
  *  Declare option callback procedures
  */
 extern tOptProc
@@ -341,7 +367,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ VER_FLAGS, 0,
+     /* opt state flags  */ VER_FLAGS, AOUSE_VERSION,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -355,7 +381,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
+     /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL, NULL,
@@ -367,7 +393,7 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ MORE_HELP_FLAGS, 0,
+     /* opt state flags  */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
      /* last opt argumnt */ { NULL },
      /* arg list/cookie  */ NULL,
      /* must/cannot opts */ NULL,  NULL,
@@ -377,19 +403,24 @@ static tOptDesc optDesc[OPTION_CT] = {
 };
 
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *  Define the srptool Option Environment
- */
-#define zPROGNAME       (srptool_opt_strs+1397)
-#define zUsageTitle     (srptool_opt_strs+1405)
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/** Reference to the upper cased version of srptool. */
+#define zPROGNAME       (srptool_opt_strs+1393)
+/** Reference to the title line for srptool usage. */
+#define zUsageTitle     (srptool_opt_strs+1401)
+/** There is no srptool configuration file. */
 #define zRcName         NULL
+/** There are no directories to search for srptool config files. */
 #define apzHomeList     NULL
-#define zBugsAddr       (srptool_opt_strs+1503)
-#define zExplain        (srptool_opt_strs+1522)
-#define zDetail         (srptool_opt_strs+1525)
-#define zFullVersion    (srptool_opt_strs+1967)
-/* extracted from optcode.tlib near line 350 */
+/** The srptool program bug email address. */
+#define zBugsAddr       (srptool_opt_strs+1485)
+/** Clarification/explanation of what srptool does. */
+#define zExplain        (srptool_opt_strs+1504)
+/** Extra detail explaining what srptool does. */
+#define zDetail         (srptool_opt_strs+1506)
+/** The full version string for srptool. */
+#define zFullVersion    (srptool_opt_strs+1947)
+/* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -399,10 +430,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 # define translate_option_strings NULL
 #endif /* ENABLE_NLS */
 
-
 #define srptool_full_usage (NULL)
-
-#define srptool_short_usage (srptool_opt_strs+1982)
+#define srptool_short_usage (srptool_opt_strs+1962)
 
 #endif /* not defined __doxygen__ */
 
@@ -412,8 +441,8 @@ static tOptDesc optDesc[OPTION_CT] = {
 /**
  * The callout function that invokes the optionUsage function.
  *
- * @param pOptions the AutoOpts option description structure
- * @param pOptDesc the descriptor for the "help" (usage) option.
+ * @param[in] pOptions the AutoOpts option description structure
+ * @param[in] pOptDesc the descriptor for the "help" (usage) option.
  * @noreturn
  */
 static void
@@ -428,9 +457,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the debug option.
- *
- * @param pOptions the srptool options data structure
- * @param pOptDesc the option descriptor for this option.
+ * Specifies the debug level.
+ * @param[in] pOptions the srptool options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
  */
 static void
 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -456,11 +485,10 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
 
     option_usage_fp = stderr;
 
-emit_ranges:
-
+ emit_ranges:
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
-/* extracted from optmain.tlib near line 1113 */
+/* extracted from optmain.tlib near line 1254 */
 
 /**
  * The directory containing the data associated with srptool.
@@ -476,6 +504,7 @@ emit_ranges:
 #ifndef  WITH_PACKAGER
 # define srptool_packager_info NULL
 #else
+/** Packager information for srptool. */
 static char const srptool_packager_info[] =
     "Packaged by " WITH_PACKAGER
 
@@ -530,42 +559,69 @@ tOptions srptoolOptions = {
 };
 
 #if ENABLE_NLS
+/**
+ * This code is designed to translate translatable option text for the
+ * srptool program.  These translations happen upon entry
+ * to optionProcess().
+ */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_DCGETTEXT
+# include <gettext.h>
+#endif
 #include <autoopts/usage-txt.h>
 
-static char* AO_gettext(char const* pz);
-static void  coerce_it(void** s);
+static char * AO_gettext(char const * pz);
+static void   coerce_it(void ** s);
 
 /**
- * AutoGen specific wrapper function for gettext.
- * It relies on the macro _() to convert from English to the target
- * language, then strdup-duplicates the result string.
+ * AutoGen specific wrapper function for gettext.  It relies on the macro _()
+ * to convert from English to the target language, then strdup-duplicates the
+ * result string.  It tries the "libopts" domain first, then whatever has been
+ * set via the \a textdomain(3) call.
  *
  * @param[in] pz the input text used as a lookup key.
  * @returns the translated text (if there is one),
  *   or the original text (if not).
  */
 static char *
-AO_gettext(char const* pz)
+AO_gettext(char const * pz)
 {
-    char* pzRes;
+    char * res;
     if (pz == NULL)
         return NULL;
-    pzRes = _(pz);
-    if (pzRes == pz)
-        return pzRes;
-    pzRes = strdup(pzRes);
-    if (pzRes == NULL) {
+#ifdef HAVE_DCGETTEXT
+    /*
+     * While processing the option_xlateable_txt data, try to use the
+     * "libopts" domain.  Once we switch to the option descriptor data,
+     * do *not* use that domain.
+     */
+    if (option_xlateable_txt.field_ct != 0) {
+        res = dgettext("libopts", pz);
+        if (res == pz)
+            res = (char *)(void *)_(pz);
+    } else
+        res = (char *)(void *)_(pz);
+#else
+    res = (char *)(void *)_(pz);
+#endif
+    if (res == pz)
+        return res;
+    res = strdup(res);
+    if (res == NULL) {
         fputs(_("No memory for duping translated strings\n"), stderr);
         exit(SRPTOOL_EXIT_FAILURE);
     }
-    return pzRes;
+    return res;
 }
 
-static void coerce_it(void** s) { *s = AO_gettext(*s);
+/**
+ * All the pointers we use are marked "* const", but they are stored in
+ * writable memory.  Coerce the mutability and set the pointer.
+ */
+static void coerce_it(void ** s) { *s = AO_gettext(*s);
 }
 
 /**
@@ -575,56 +631,430 @@ static void coerce_it(void** s) { *s = AO_gettext(*s);
 static void
 translate_option_strings(void)
 {
-    tOptions * const pOpt = &srptoolOptions;
+    tOptions * const opts = &srptoolOptions;
 
     /*
      *  Guard against re-translation.  It won't work.  The strings will have
      *  been changed by the first pass through this code.  One shot only.
      */
-    if (option_usage_text.field_ct != 0) {
+    if (option_xlateable_txt.field_ct != 0) {
         /*
          *  Do the translations.  The first pointer follows the field count
          *  field.  The field count field is the size of a pointer.
          */
-        tOptDesc * pOD = pOpt->pOptDesc;
-        char **    ppz = (char**)(void*)&(option_usage_text);
-        int        ix  = option_usage_text.field_ct;
+        char ** ppz = (char**)(void*)&(option_xlateable_txt);
+        int     ix  = option_xlateable_txt.field_ct;
 
         do {
-            ppz++;
+            ppz++; /* skip over field_ct */
             *ppz = AO_gettext(*ppz);
         } while (--ix > 0);
+        /* prevent re-translation and disable "libopts" domain lookup */
+        option_xlateable_txt.field_ct = 0;
 
-        coerce_it((void*)&(pOpt->pzCopyright));
-        coerce_it((void*)&(pOpt->pzCopyNotice));
-        coerce_it((void*)&(pOpt->pzFullVersion));
-        coerce_it((void*)&(pOpt->pzUsageTitle));
-        coerce_it((void*)&(pOpt->pzExplain));
-        coerce_it((void*)&(pOpt->pzDetail));
-        coerce_it((void*)&(pOpt->pzPackager));
-        coerce_it((void*)&(pOpt->pzShortUsage));
-        option_usage_text.field_ct = 0;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
-            coerce_it((void*)&(pOD->pzText));
-    }
-
-    if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
-        tOptDesc * pOD = pOpt->pOptDesc;
-        int        ix;
-
-        for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
-            coerce_it((void*)&(pOD->pz_Name));
-            coerce_it((void*)&(pOD->pz_DisableName));
-            coerce_it((void*)&(pOD->pz_DisablePfx));
+        coerce_it((void*)&(opts->pzCopyright));
+        coerce_it((void*)&(opts->pzCopyNotice));
+        coerce_it((void*)&(opts->pzFullVersion));
+        coerce_it((void*)&(opts->pzUsageTitle));
+        coerce_it((void*)&(opts->pzExplain));
+        coerce_it((void*)&(opts->pzDetail));
+        {
+            tOptDesc * od = opts->pOptDesc;
+            for (ix = opts->optCt; ix > 0; ix--, od++)
+                coerce_it((void*)&(od->pzText));
         }
-        /* prevent re-translation */
-        srptoolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
     }
 }
-
 #endif /* ENABLE_NLS */
 
+#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
+/** I18N function strictly for xgettext.  Do not compile. */
+static void bogus_function(void) {
+  /* TRANSLATORS:
+
+     The following dummy function was crated solely so that xgettext can extract
+     the correct strings.  These strings are actually referenced by a field name
+     in the srptoolOptions structure noted in the comments below.  The
+     literal text is defined in srptool_opt_strs.
+   
+     NOTE: the strings below are segmented with respect to the source string
+     srptool_opt_strs.  The strings above are handed off for translation
+     at run time a paragraph at a time.  Consequently, they are presented here
+     for translation a paragraph at a time.
+   
+     ALSO: often the description for an option will reference another option
+     by name.  These are set off with apostrophe quotes (I hope).  Do not
+     translate option names.
+   */
+  /* referenced via srptoolOptions.pzCopyright */
+  puts(_("srptool 3.0.30\n\
+Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
+This is free software. It is licensed for use, modification and\n\
+redistribution under the terms of the GNU General Public License,\n\
+version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
+
+  /* referenced via srptoolOptions.pzCopyNotice */
+  puts(_("srptool is free software: you can redistribute it and/or modify it under\n\
+the terms of the GNU General Public License as published by the Free\n\
+Software Foundation, either version 3 of the License, or (at your option)\n\
+any later version.\n\n"));
+  puts(_("srptool is distributed in the hope that it will be useful, but WITHOUT ANY\n\
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more\n\
+details.\n\n"));
+  puts(_("You should have received a copy of the GNU General Public License along\n\
+with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("Enable debugging."));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("specify the index of the group parameters in tpasswd.conf to use."));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("specify a username"));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("specify a password file."));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("specify salt size."));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("just verify the password."));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("specify a password conf file."));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("Generate a password configuration file."));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("display extended usage information and exit"));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("extended usage information passed thru pager"));
+
+  /* referenced via srptoolOptions.pOptDesc->pzText */
+  puts(_("output version information and exit"));
+
+  /* referenced via srptoolOptions.pzUsageTitle */
+  puts(_("srptool - GnuTLS SRP tool\n\
+Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
+
+  /* referenced via srptoolOptions.pzExplain */
+  puts(_("\n"));
+
+  /* referenced via srptoolOptions.pzDetail */
+  puts(_("Simple program that emulates the programs in the Stanford SRP (Secure\n\
+Remote Password) libraries using GnuTLS.  It is intended for use in places\n\
+where you don't expect SRP authentication to be the used for system users.\n\n"));
+  puts(_("In brief, to use SRP you need to create two files.  These are the password\n\
+file that holds the users and the verifiers associated with them and the\n\
+configuration file to hold the group parameters (called tpasswd.conf).\n"));
+
+  /* referenced via srptoolOptions.pzFullVersion */
+  puts(_("srptool 3.0.30"));
+
+  /* referenced via srptoolOptions.pzFullUsage */
+  puts(_("<<<NOT-FOUND>>>"));
+
+  /* referenced via srptoolOptions.pzShortUsage */
+  puts(_("srptool [options]\n\
+srptool --help for usage instructions.\n"));
+  /* LIBOPTS-MESSAGES: */
+#line 60 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 86 "../autoopts.c"
+  puts(_("allocation of %d bytes failed\n"));
+#line 53 "../init.c"
+  puts(_("AutoOpts function called without option descriptor\n"));
+#line 89 "../init.c"
+  puts(_("\tThis exceeds the compiled library version:  "));
+#line 87 "../init.c"
+  puts(_("Automated Options Processing Error!\n"
+       "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+#line 73 "../autoopts.c"
+  puts(_("realloc of %d bytes at 0x%p failed\n"));
+#line 91 "../init.c"
+  puts(_("\tThis is less than the minimum library version:  "));
+#line 121 "../version.c"
+  puts(_("Automated Options version %s\n"
+       "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
+#line 310 "../usage.c"
+  puts(_("(AutoOpts bug):  %s.\n"));
+#line 90 "../reset.c"
+  puts(_("optionResetOpt() called, but reset-option not configured"));
+#line 329 "../usage.c"
+  puts(_("could not locate the 'help' option"));
+#line 351 "../autoopts.c"
+  puts(_("optionProcess() was called with invalid data"));
+#line 783 "../usage.c"
+  puts(_("invalid argument type specified"));
+#line 589 "../find.c"
+  puts(_("defaulted to option with optional arg"));
+#line 76 "../alias.c"
+  puts(_("aliasing option is out of range."));
+#line 229 "../enum.c"
+  puts(_("%s error:  the keyword '%s' is ambiguous for %s\n"));
+#line 108 "../find.c"
+  puts(_("  The following options match:\n"));
+#line 290 "../find.c"
+  puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
+#line 161 "../check.c"
+  puts(_("%s: Command line arguments required\n"));
+#line 43 "../alias.c"
+  puts(_("%d %s%s options allowed\n"));
+#line 81 "../makeshell.c"
+  puts(_("%s error %d (%s) calling %s for '%s'\n"));
+#line 293 "../makeshell.c"
+  puts(_("interprocess pipe"));
+#line 168 "../version.c"
+  puts(_("error: version option argument '%c' invalid.  Use:\n"
+       "\t'v' - version only\n"
+       "\t'c' - version and copyright\n"
+       "\t'n' - version and full copyright notice\n"));
+#line 58 "../check.c"
+  puts(_("%s error:  the '%s' and '%s' options conflict\n"));
+#line 214 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 421 "../find.c"
+  puts(_("%s: The '%s' option has been disabled."));
+#line 38 "../alias.c"
+  puts(_("-equivalence"));
+#line 460 "../find.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 110 "../reset.c"
+  puts(_("%s: illegal option -- %c\n"));
+#line 268 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 746 "../find.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 118 "../reset.c"
+  puts(_("%s: illegal option -- %s\n"));
+#line 332 "../find.c"
+  puts(_("%s: unknown vendor extension option -- %s\n"));
+#line 154 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 164 "../enum.c"
+  puts(_("  or an integer from %d through %d\n"));
+#line 782 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 1110 "../usage.c"
+  puts(_("%s error:  invalid option descriptor for %s\n"));
+#line 379 "../find.c"
+  puts(_("%s: invalid option name: %s\n"));
+#line 518 "../find.c"
+  puts(_("%s: The '%s' option requires an argument.\n"));
+#line 171 "../autoopts.c"
+  puts(_("(AutoOpts bug):  Equivalenced option '%s' was equivalenced to both\n"
+       "\t'%s' and '%s'."));
+#line 94 "../check.c"
+  puts(_("%s error:  The %s option is required\n"));
+#line 623 "../find.c"
+  puts(_("%s: The '%s' option cannot have an argument.\n"));
+#line 151 "../check.c"
+  puts(_("%s: Command line arguments are not allowed.\n"));
+#line 531 "../save.c"
+  puts(_("error %d (%s) creating %s\n"));
+#line 229 "../enum.c"
+  puts(_("%s error:  '%s' does not match any %s keywords.\n"));
+#line 93 "../reset.c"
+  puts(_("%s error: The '%s' option requires an argument.\n"));
+#line 184 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 238 "../save.c"
+  puts(_("error %d (%s) stat-ing %s\n"));
+#line 143 "../restore.c"
+  puts(_("%s error: no saved option state\n"));
+#line 246 "../autoopts.c"
+  puts(_("'%s' is not a command line option.\n"));
+#line 114 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable date/time.\n"));
+#line 132 "../save.c"
+  puts(_("'%s' not defined\n"));
+#line 53 "../time.c"
+  puts(_("%s error:  '%s' is not a recognizable time duration.\n"));
+#line 92 "../check.c"
+  puts(_("%s error:  The %s option must appear %d times.\n"));
+#line 157 "../numeric.c"
+  puts(_("%s error:  '%s' is not a recognizable number.\n"));
+#line 195 "../enum.c"
+  puts(_("%s error:  %s exceeds %s keyword count\n"));
+#line 366 "../usage.c"
+  puts(_("Try '%s %s' for more information.\n"));
+#line 45 "../alias.c"
+  puts(_("one %s%s option allowed\n"));
+#line 195 "../makeshell.c"
+  puts(_("standard output"));
+#line 930 "../makeshell.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard output"));
+#line 451 "../usage.c"
+  puts(_("standard output"));
+#line 660 "../usage.c"
+  puts(_("standard output"));
+#line 175 "../version.c"
+  puts(_("standard output"));
+#line 304 "../usage.c"
+  puts(_("standard error"));
+#line 451 "../usage.c"
+  puts(_("standard error"));
+#line 660 "../usage.c"
+  puts(_("standard error"));
+#line 175 "../version.c"
+  puts(_("standard error"));
+#line 195 "../makeshell.c"
+  puts(_("write"));
+#line 930 "../makeshell.c"
+  puts(_("write"));
+#line 303 "../usage.c"
+  puts(_("write"));
+#line 450 "../usage.c"
+  puts(_("write"));
+#line 659 "../usage.c"
+  puts(_("write"));
+#line 174 "../version.c"
+  puts(_("write"));
+#line 60 "../numeric.c"
+  puts(_("%s error:  %s option value %ld is out of range.\n"));
+#line 44 "../check.c"
+  puts(_("%s error:  %s option requires the %s option\n"));
+#line 131 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 183 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 237 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 256 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+#line 530 "../save.c"
+  puts(_("%s warning:  cannot save options - %s not regular file\n"));
+  /* END-LIBOPTS-MESSAGES */
+
+  /* USAGE-TEXT: */
+#line 908 "../usage.c"
+  puts(_("\t\t\t\t- an alternate for '%s'\n"));
+#line 1177 "../usage.c"
+  puts(_("Version, usage and configuration options:"));
+#line 959 "../usage.c"
+  puts(_("\t\t\t\t- default option for unnamed options\n"));
+#line 872 "../usage.c"
+  puts(_("\t\t\t\t- disabled as '--%s'\n"));
+#line 1146 "../usage.c"
+  puts(_(" --- %-14s %s\n"));
+#line 1144 "../usage.c"
+  puts(_("This option has been disabled"));
+#line 899 "../usage.c"
+  puts(_("\t\t\t\t- enabled by default\n"));
+#line 40 "../alias.c"
+  puts(_("%s error:  only "));
+#line 1221 "../usage.c"
+  puts(_(" - examining environment variables named %s_*\n"));
+#line 168 "../file.c"
+  puts(_("\t\t\t\t- file must not pre-exist\n"));
+#line 172 "../file.c"
+  puts(_("\t\t\t\t- file must pre-exist\n"));
+#line 416 "../usage.c"
+  puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+       "hyphen and the flag character.\n"));
+#line 908 "../makeshell.c"
+  puts(_("\n"
+       "= = = = = = = =\n\n"
+       "This incarnation of genshell will produce\n"
+       "a shell script to parse the options for %s:\n\n"));
+#line 161 "../enum.c"
+  puts(_("  or an integer mask with any of the lower %d bits set\n"));
+#line 932 "../usage.c"
+  puts(_("\t\t\t\t- is a set membership option\n"));
+#line 953 "../usage.c"
+  puts(_("\t\t\t\t- must appear between %d and %d times\n"));
+#line 418 "../usage.c"
+  puts(_("Options are specified by single or double hyphens and their name.\n"));
+#line 939 "../usage.c"
+  puts(_("\t\t\t\t- may appear multiple times\n"));
+#line 926 "../usage.c"
+  puts(_("\t\t\t\t- may not be preset\n"));
+#line 1336 "../usage.c"
+  puts(_("   Arg Option-Name    Description\n"));
+#line 1272 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1330 "../usage.c"
+  puts(_("  Flg Arg Option-Name    Description\n"));
+#line 1331 "../usage.c"
+  puts(_(" %3s %s"));
+#line 1337 "../usage.c"
+  puts(_(" %3s %s"));
+#line 423 "../usage.c"
+  puts(_("The '-#<number>' option may omit the hash char\n"));
+#line 419 "../usage.c"
+  puts(_("All arguments are named options.\n"));
+#line 1006 "../usage.c"
+  puts(_(" - reading file %s"));
+#line 445 "../usage.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 100 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 129 "../version.c"
+  puts(_("\n"
+       "Please send bug reports to:  <%s>\n"));
+#line 938 "../usage.c"
+  puts(_("\t\t\t\t- may NOT appear - preset only\n"));
+#line 978 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 1219 "../usage.c"
+  puts(_("\n"
+       "The following option preset mechanisms are supported:\n"));
+#line 717 "../usage.c"
+  puts(_("prohibits these options:\n"));
+#line 712 "../usage.c"
+  puts(_("prohibits the option '%s'\n"));
+#line 81 "../numeric.c"
+  puts(_("%s%ld to %ld"));
+#line 79 "../numeric.c"
+  puts(_("%sgreater than or equal to %ld"));
+#line 75 "../numeric.c"
+  puts(_("%s%ld exactly"));
+#line 68 "../numeric.c"
+  puts(_("%sit must lie in one of the ranges:\n"));
+#line 68 "../numeric.c"
+  puts(_("%sit must be in the range:\n"));
+#line 88 "../numeric.c"
+  puts(_(", or\n"));
+#line 66 "../numeric.c"
+  puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
+#line 77 "../numeric.c"
+  puts(_("%sless than or equal to %ld"));
+#line 426 "../usage.c"
+  puts(_("Operands and options may be intermixed.  They will be reordered.\n"));
+#line 687 "../usage.c"
+  puts(_("requires the option '%s'\n"));
+#line 690 "../usage.c"
+  puts(_("requires these options:\n"));
+#line 1348 "../usage.c"
+  puts(_("   Arg Option-Name   Req?  Description\n"));
+#line 1342 "../usage.c"
+  puts(_("  Flg Arg Option-Name   Req?  Description\n"));
+#line 162 "../enum.c"
+  puts(_("or you may use a numeric representation.  Preceding these with a '!'\n"
+       "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
+       "will set them all.  Multiple entries may be passed as an option\n"
+       "argument list.\n"));
+#line 945 "../usage.c"
+  puts(_("\t\t\t\t- may appear up to %d times\n"));
+#line 72 "../enum.c"
+  puts(_("The valid \"%s\" option keywords are:\n"));
+#line 1181 "../usage.c"
+  puts(_("The next option supports vendor supported extra options:"));
+#line 808 "../usage.c"
+  puts(_("These additional options are:"));
+  /* END-USAGE-TEXT */
+}
+#endif /* uncompilable code */
 #ifdef  __cplusplus
 }
 #endif
index e642576..827f6c3 100644 (file)
@@ -1,12 +1,12 @@
 /*   -*- buffer-read-only: t -*- vi: set ro:
- *  
+ *
  *  DO NOT EDIT THIS FILE   (srptool-args.h)
- *  
- *  It has been AutoGen-ed  July  3, 2012 at 12:06:00 AM by AutoGen 5.16
+ *
+ *  It has been AutoGen-ed  June  1, 2013 at 01:07:27 PM by AutoGen 5.17.3
  *  From the definitions    srptool-args.def
  *  and the template file   options
  *
- * Generated from AutoOpts 36:4:11 templates.
+ * Generated from AutoOpts 38:0:13 templates.
  *
  *  AutoOpts is a copyrighted work.  This header file is not encumbered
  *  by AutoOpts licensing, but is provided under the licensing terms chosen
  *
  *  Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
  *  This is free software. It is licensed for use, modification and
- *  redistribution under the terms of the
- *  GNU General Public License, version 3 or later
- *      <http://gnu.org/licenses/gpl.html>
+ *  redistribution under the terms of the GNU General Public License,
+ *  version 3 or later <http://gnu.org/licenses/gpl.html>
  *
  *  srptool 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.
- *  
+ *
  *  srptool 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 this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
+/**
  *  This file contains the programmatic interface to the Automated
  *  Options generated for the srptool program.
  *  These macros are documented in the AutoGen info file in the
 #include "config.h"
 #include <autoopts/options.h>
 
-/*
+/**
  *  Ensure that the library used for compiling this generated header is at
  *  least as new as the version current when the header template was released
  *  (not counting patch version increments).  Also ensure that the oldest
  *  tolerable version is at least as old as what was current when the header
  *  template was released.
  */
-#define AO_TEMPLATE_VERSION 147460
+#define AO_TEMPLATE_VERSION 155648
 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
  || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
 # error option template version mismatches autoopts/options.h header
   Choke Me.
 #endif
 
-/*
- *  Enumeration of each option:
+/**
+ *  Enumeration of each option type for srptool
  */
 typedef enum {
     INDEX_OPT_DEBUG        =  0,
@@ -79,44 +78,63 @@ typedef enum {
     INDEX_OPT_HELP         =  9,
     INDEX_OPT_MORE_HELP    = 10
 } teOptIndex;
-
+/** count of all options for srptool */
 #define OPTION_CT    11
-#define SRPTOOL_VERSION       "3.0.21"
-#define SRPTOOL_FULL_VERSION  "srptool 3.0.21"
+/** srptool version */
+#define SRPTOOL_VERSION       "3.0.30"
+/** Full srptool version text */
+#define SRPTOOL_FULL_VERSION  "srptool 3.0.30"
 
-/*
+/**
  *  Interface defines for all options.  Replace "n" with the UPPER_CASED
  *  option name (as in the teOptIndex enumeration above).
  *  e.g. HAVE_OPT(DEBUG)
  */
 #define         DESC(n) (srptoolOptions.pOptDesc[INDEX_OPT_## n])
+/** 'true' if an option has been specified in any way */
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
+/** The string argument to an option. The argument type must be "string". */
 #define      OPT_ARG(n) (DESC(n).optArg.argString)
+/** Mask the option state revealing how an option was specified.
+ *  It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
+ * \a OPTST_DEFINED, \a OPTST_RESET or zero.
+ */
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
+/** Count of option's occurrances *on the command line*. */
 #define    COUNT_OPT(n) (DESC(n).optOccCt)
+/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
 #define    ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
+/** 'true' if \a HAVE_OPT would yield 'false'. */
 #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
+/** 'true' if OPTST_DISABLED bit not set. */
 #define  ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
+/** number of stacked option arguments.
+ *  Valid only for stacked option arguments. */
 #define  STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
+/** stacked argument vector.
+ *  Valid only for stacked option arguments. */
 #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
+/** Reset an option. */
 #define    CLEAR_OPT(n) STMTS( \
                 DESC(n).fOptState &= OPTST_PERSISTENT_MASK;   \
                 if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
                     DESC(n).fOptState |= OPTST_DISABLED; \
                 DESC(n).optCookie = NULL )
 
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Enumeration of srptool exit codes
  */
 typedef enum {
-    SRPTOOL_EXIT_SUCCESS = 0,
-    SRPTOOL_EXIT_FAILURE = 1,
-    SRPTOOL_EXIT_LIBOPTS_FAILURE = 70
+    SRPTOOL_EXIT_SUCCESS            = 0,
+    SRPTOOL_EXIT_FAILURE            = 1,
+    SRPTOOL_EXIT_USAGE_ERROR        = 64,
+    SRPTOOL_EXIT_LIBOPTS_FAILURE    = 70
 } srptool_exit_code_t;
-/* * * * * *
- *
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
  *  Interface defines for specific options.
+ * @{
  */
 #define VALUE_OPT_DEBUG          'd'
 
@@ -130,8 +148,11 @@ typedef enum {
 #define VALUE_OPT_VERIFY         5
 #define VALUE_OPT_PASSWD_CONF    'v'
 #define VALUE_OPT_CREATE_CONF    7
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_MORE_HELP     '!'
+/** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_VERSION       'v'
 /*
  *  Interface defines not associated with particular options
@@ -143,7 +164,7 @@ typedef enum {
                 srptoolOptions.pzCurOpt  = NULL)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*srptoolOptions.pUsageProc)(&srptoolOptions, c)
-/* extracted from opthead.tlib near line 484 */
+/* extracted from opthead.tlib near line 538 */
 
 #ifdef  __cplusplus
 extern "C" {
@@ -163,6 +184,12 @@ extern tOptions srptoolOptions;
 #if defined(ENABLE_NLS)
 # ifndef _
 #   include <stdio.h>
+#   ifndef HAVE_GETTEXT
+      extern char * gettext(char const *);
+#   else
+#     include <libintl.h>
+#   endif
+
 static inline char* aoGetsText(char const* pz) {
     if (pz == NULL) return NULL;
     return (char*)gettext(pz);
index 788a5e0..cd02906 100644 (file)
@@ -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 mini-overhead
 
 if ENABLE_OCSP
 ctests += ocsp
index ad2cb26..d1cadea 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -88,14 +105,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -239,8 +259,9 @@ am__EXEEXT_6 = mini-deflate$(EXEEXT) simple$(EXEEXT) gc$(EXEEXT) \
        rsa-encrypt-decrypt$(EXEEXT) mini-loss-time$(EXEEXT) \
        mini-tdb$(EXEEXT) mini-dtls-rehandshake$(EXEEXT) \
        mini-record$(EXEEXT) mini-termination$(EXEEXT) \
-       mini-x509-cas$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
-       $(am__EXEEXT_3) $(am__EXEEXT_4) $(am__EXEEXT_5)
+       mini-x509-cas$(EXEEXT) mini-overhead$(EXEEXT) $(am__EXEEXT_1) \
+       $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \
+       $(am__EXEEXT_5)
 anonself_SOURCES = anonself.c
 anonself_OBJECTS = anonself.$(OBJEXT)
 anonself_LDADD = $(LDADD)
@@ -380,6 +401,12 @@ mini_loss_time_LDADD = $(LDADD)
 mini_loss_time_DEPENDENCIES = ../lib/libgnutls.la ../gl/libgnu.la \
        libutils.la $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
+mini_overhead_SOURCES = mini-overhead.c
+mini_overhead_OBJECTS = mini-overhead.$(OBJEXT)
+mini_overhead_LDADD = $(LDADD)
+mini_overhead_DEPENDENCIES = ../lib/libgnutls.la ../gl/libgnu.la \
+       libutils.la $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
 mini_record_SOURCES = mini-record.c
 mini_record_OBJECTS = mini-record.$(OBJEXT)
 mini_record_LDADD = $(LDADD)
@@ -617,12 +644,12 @@ SOURCES = $(libutils_la_SOURCES) anonself.c certder.c \
        cve-2009-1416.c dhepskself.c dn.c dn2.c gc.c hostname-check.c \
        infoaccess.c init_roundtrip.c mini.c mini-deflate.c \
        mini-dtls-rehandshake.c mini-eagain.c mini-eagain-dtls.c \
-       mini-loss-time.c mini-record.c mini-rehandshake.c mini-tdb.c \
-       mini-termination.c mini-x509.c mini-x509-cas.c moredn.c mpi.c \
-       nul-in-x509-names.c ocsp.c openpgp-auth.c openpgp-auth2.c \
-       openpgp-keyring.c openpgpself.c openssl.c parse_ca.c \
-       pgps2kgnu.c pkcs12_encode.c pkcs12_s2k.c pkcs12_s2k_pem.c \
-       pskself.c resume.c resume-dtls.c rng-fork.c \
+       mini-loss-time.c mini-overhead.c mini-record.c \
+       mini-rehandshake.c mini-tdb.c mini-termination.c mini-x509.c \
+       mini-x509-cas.c moredn.c mpi.c nul-in-x509-names.c ocsp.c \
+       openpgp-auth.c openpgp-auth2.c openpgp-keyring.c openpgpself.c \
+       openssl.c parse_ca.c pgps2kgnu.c pkcs12_encode.c pkcs12_s2k.c \
+       pkcs12_s2k_pem.c pskself.c resume.c resume-dtls.c rng-fork.c \
        rsa-encrypt-decrypt.c set_pkcs12_cred.c setcredcrash.c \
        simple.c x509_altname.c x509cert.c x509cert-tl.c x509dn.c \
        x509self.c x509sign-verify.c
@@ -632,12 +659,12 @@ DIST_SOURCES = $(libutils_la_SOURCES) anonself.c certder.c \
        cve-2009-1416.c dhepskself.c dn.c dn2.c gc.c hostname-check.c \
        infoaccess.c init_roundtrip.c mini.c mini-deflate.c \
        mini-dtls-rehandshake.c mini-eagain.c mini-eagain-dtls.c \
-       mini-loss-time.c mini-record.c mini-rehandshake.c mini-tdb.c \
-       mini-termination.c mini-x509.c mini-x509-cas.c moredn.c mpi.c \
-       nul-in-x509-names.c ocsp.c openpgp-auth.c openpgp-auth2.c \
-       openpgp-keyring.c openpgpself.c openssl.c parse_ca.c \
-       pgps2kgnu.c pkcs12_encode.c pkcs12_s2k.c pkcs12_s2k_pem.c \
-       pskself.c resume.c resume-dtls.c rng-fork.c \
+       mini-loss-time.c mini-overhead.c mini-record.c \
+       mini-rehandshake.c mini-tdb.c mini-termination.c mini-x509.c \
+       mini-x509-cas.c moredn.c mpi.c nul-in-x509-names.c ocsp.c \
+       openpgp-auth.c openpgp-auth2.c openpgp-keyring.c openpgpself.c \
+       openssl.c parse_ca.c pgps2kgnu.c pkcs12_encode.c pkcs12_s2k.c \
+       pkcs12_s2k_pem.c pskself.c resume.c resume-dtls.c rng-fork.c \
        rsa-encrypt-decrypt.c set_pkcs12_cred.c setcredcrash.c \
        simple.c x509_altname.c x509cert.c x509cert-tl.c x509dn.c \
        x509self.c x509sign-verify.c
@@ -648,6 +675,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -1003,6 +1035,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -1288,7 +1321,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -1362,6 +1394,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1497,8 +1530,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1517,7 +1550,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1748,6 +1780,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
@@ -1944,8 +1977,9 @@ 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 $(am__append_4) $(am__append_5) \
-       $(am__append_6) $(am__append_7) $(am__append_8)
+       mini-termination mini-x509-cas mini-overhead $(am__append_4) \
+       $(am__append_5) $(am__append_6) $(am__append_7) \
+       $(am__append_8)
 @ENABLE_OPENSSL_TRUE@openssl_LDADD = $(LDADD) ../extra/libgnutls-openssl.la
 dist_check_SCRIPTS = rfc2253-escape-test
 TESTS_ENVIRONMENT = CAFILE=$(srcdir)/cert-tests/ca-certs.pem \
@@ -2077,6 +2111,9 @@ mini-eagain-dtls$(EXEEXT): $(mini_eagain_dtls_OBJECTS) $(mini_eagain_dtls_DEPEND
 mini-loss-time$(EXEEXT): $(mini_loss_time_OBJECTS) $(mini_loss_time_DEPENDENCIES) $(EXTRA_mini_loss_time_DEPENDENCIES) 
        @rm -f mini-loss-time$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(mini_loss_time_OBJECTS) $(mini_loss_time_LDADD) $(LIBS)
+mini-overhead$(EXEEXT): $(mini_overhead_OBJECTS) $(mini_overhead_DEPENDENCIES) $(EXTRA_mini_overhead_DEPENDENCIES) 
+       @rm -f mini-overhead$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(mini_overhead_OBJECTS) $(mini_overhead_LDADD) $(LIBS)
 mini-record$(EXEEXT): $(mini_record_OBJECTS) $(mini_record_DEPENDENCIES) $(EXTRA_mini_record_DEPENDENCIES) 
        @rm -f mini-record$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(mini_record_OBJECTS) $(mini_record_LDADD) $(LIBS)
@@ -2208,6 +2245,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-eagain-dtls.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-eagain.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-loss-time.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-overhead.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-record.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-rehandshake.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-tdb.Po@am__quote@
@@ -2532,13 +2570,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
index 694c3eb..8e30e59 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index b1704a9..62572ac 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 6c68531..840b2f9 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -73,14 +90,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -225,6 +245,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = dtls-stress.c
 DIST_SOURCES = dtls-stress.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors = \
@@ -547,6 +572,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -832,7 +858,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -906,6 +931,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1041,8 +1067,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1061,7 +1087,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1292,6 +1317,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index fb3eff3..0375604 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 308a04b..2ad1f31 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
diff --git a/tests/mini-overhead.c b/tests/mini-overhead.c
new file mode 100644 (file)
index 0000000..0edce8b
--- /dev/null
@@ -0,0 +1,352 @@
+/*
+ * Copyright (C) 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
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#if defined(_WIN32)
+
+int main()
+{
+  exit(77);
+}
+
+#else
+
+#include <string.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/dtls.h>
+#include <signal.h>
+
+#include "utils.h"
+
+static void terminate(void);
+
+/* This program tests the robustness of record
+ * decoding.
+ */
+
+static void
+server_log_func (int level, const char *str)
+{
+//  fprintf (stderr, "server|<%d>| %s", level, str);
+}
+
+static void
+client_log_func (int level, const char *str)
+{
+  fprintf (stderr, "client|<%d>| %s", level, str);
+}
+
+static unsigned char server_cert_pem[] =
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n"
+  "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n"
+  "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n"
+  "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n"
+  "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n"
+  "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n"
+  "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n"
+  "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n"
+  "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n"
+  "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n"
+  "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n"
+  "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n"
+  "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_cert = { server_cert_pem,
+  sizeof (server_cert_pem)
+};
+
+static unsigned char server_key_pem[] =
+  "-----BEGIN RSA PRIVATE KEY-----\n"
+  "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n"
+  "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n"
+  "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n"
+  "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n"
+  "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n"
+  "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n"
+  "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n"
+  "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n"
+  "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n"
+  "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n"
+  "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n"
+  "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n"
+  "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n"
+  "-----END RSA PRIVATE KEY-----\n";
+
+const gnutls_datum_t server_key = { server_key_pem,
+  sizeof (server_key_pem)
+};
+
+
+/* A very basic TLS client, with anonymous authentication.
+ */
+
+#define MAX_BUF 1024
+#define MTU 1500
+
+static void
+client (int fd, const char* prio, unsigned overhead)
+{
+  int ret;
+  gnutls_anon_client_credentials_t anoncred;
+  gnutls_certificate_credentials_t x509_cred;
+  gnutls_session_t session;
+  /* Need to enable anonymous KX specifically. */
+
+  gnutls_global_init ();
+
+  if (debug)
+    {
+      gnutls_global_set_log_function (client_log_func);
+      gnutls_global_set_log_level (7);
+    }
+
+  gnutls_anon_allocate_client_credentials (&anoncred);
+  gnutls_certificate_allocate_credentials (&x509_cred);
+
+  /* Initialize TLS session
+   */
+  gnutls_init (&session, GNUTLS_CLIENT|GNUTLS_DATAGRAM);
+
+  /* Use default priorities */
+  ret = gnutls_priority_set_direct (session, prio, NULL);
+  if (ret < 0)
+    {
+      fail("error in setting priority: %s\n", prio);
+      exit(1);
+    }
+
+  /* put the anonymous credentials to the current session
+   */
+  gnutls_credentials_set (session, GNUTLS_CRD_ANON, anoncred);
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+
+  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) fd);
+
+  /* Perform the TLS handshake
+   */
+  do 
+    {
+      ret = gnutls_handshake (session);
+    }
+  while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+  if (ret < 0)
+    {
+      fail ("client: Handshake failed\n");
+      gnutls_perror (ret);
+      exit(1);
+    }
+  else
+    {
+      if (debug)
+        success ("client: Handshake was completed\n");
+    }
+
+  if (debug)
+    success ("client: TLS version is: %s\n",
+             gnutls_protocol_get_name (gnutls_protocol_get_version
+                                       (session)));
+
+  gnutls_dtls_set_mtu(session, MTU);
+  ret = gnutls_dtls_get_data_mtu(session);
+  
+  if (MTU-ret != (int)overhead)
+    {
+      fail("overhead for %s is %d, expected %u\n", prio, MTU-ret, overhead);
+      exit(1);
+    }
+  
+  close (fd);
+
+  gnutls_deinit (session);
+
+  gnutls_anon_free_client_credentials (anoncred);
+  gnutls_certificate_free_credentials (x509_cred);
+
+  gnutls_global_deinit ();
+}
+
+
+/* These are global */
+gnutls_anon_server_credentials_t anoncred;
+gnutls_certificate_credentials_t x509_cred;
+pid_t child;
+
+static gnutls_session_t
+initialize_tls_session (const char* prio)
+{
+  gnutls_session_t session;
+
+  gnutls_init (&session, GNUTLS_SERVER|GNUTLS_DATAGRAM);
+
+  /* avoid calling all the priority functions, since the defaults
+   * are adequate.
+   */
+  gnutls_priority_set_direct (session, prio, NULL);
+
+  gnutls_credentials_set (session, GNUTLS_CRD_ANON, anoncred);
+  gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+
+  return session;
+}
+
+static void terminate(void)
+{
+  kill(child, SIGTERM);
+  exit(1);
+}
+
+static void
+server (int fd, const char* prio)
+{
+int ret;
+char buffer[MAX_BUF + 1];
+gnutls_session_t session;
+
+  /* this must be called once in the program
+   */
+  gnutls_global_init ();
+  memset(buffer, 0, sizeof(buffer));
+
+  if (debug)
+    {
+      gnutls_global_set_log_function (server_log_func);
+      gnutls_global_set_log_level (4711);
+    }
+
+  gnutls_certificate_allocate_credentials (&x509_cred);
+  gnutls_certificate_set_x509_key_mem (x509_cred, &server_cert, &server_key,
+                                       GNUTLS_X509_FMT_PEM);
+
+  gnutls_anon_allocate_server_credentials (&anoncred);
+
+  session = initialize_tls_session (prio);
+
+  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) fd);
+
+  do 
+    {
+      ret = gnutls_handshake (session);
+    }
+  while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+  if (ret < 0)
+    {
+      close (fd);
+      gnutls_deinit (session);
+      fail ("server: Handshake has failed (%s)\n\n", gnutls_strerror (ret));
+      terminate();
+    }
+  if (debug)
+    success ("server: Handshake was completed\n");
+
+  if (debug)
+    success ("server: TLS version is: %s\n",
+             gnutls_protocol_get_name (gnutls_protocol_get_version
+                                       (session)));
+  close(fd);
+  gnutls_deinit (session);
+
+  gnutls_anon_free_server_credentials (anoncred);
+  gnutls_certificate_free_credentials (x509_cred);
+
+  gnutls_global_deinit ();
+
+  if (debug)
+    success ("server: finished\n");
+}
+
+static void start (const char* prio, unsigned overhead)
+{
+  int fd[2];
+  int ret;
+  
+  ret = socketpair(AF_UNIX, SOCK_STREAM, 0, fd);
+  if (ret < 0)
+    {
+      perror("socketpair");
+      exit(1);
+    }
+
+  child = fork ();
+  if (child < 0)
+    {
+      perror ("fork");
+      fail ("fork");
+      exit(1);
+    }
+
+  if (child)
+    {
+      /* parent */
+      close(fd[1]);
+      server (fd[0], prio);
+      waitpid(-1, NULL, 0);
+      //kill(child, SIGTERM);
+    }
+  else 
+    {
+      close(fd[0]);
+      client (fd[1], prio, overhead);
+      exit(0);
+    }
+}
+
+static void ch_handler(int sig)
+{
+int status = 0;
+
+  waitpid(-1, &status, 0);
+  if (WEXITSTATUS(status) != 0 ||
+      (WIFSIGNALED(status) && WTERMSIG(status) == SIGSEGV))
+    {
+      if (WIFSIGNALED(status))
+        fail("Child died with sigsegv\n");
+      else
+        fail("Child died with status %d\n", WEXITSTATUS(status));
+      terminate();
+    }
+  return;
+}
+
+void
+doit (void)
+{
+  signal(SIGCHLD, ch_handler);
+
+  start("NONE:+VERS-DTLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA", 65);
+  start("NONE:+VERS-DTLS1.0:+AES-128-GCM:+AEAD:+SIGN-ALL:+COMP-NULL:+RSA", 33);
+}
+
+#endif /* _WIN32 */
index d3e521c..548d511 100644 (file)
@@ -60,7 +60,7 @@ doit ()
   int err, i;
   int sockets[2];
   const char *srcdir;
-  char *pub_key_path, *priv_key_path;
+  char pub_key_path[512], priv_key_path[512];
   pid_t child;
 
   gnutls_global_init ();
@@ -87,12 +87,16 @@ doit ()
       if (err != 0)
         fail ("socketpair %s\n", strerror (errno));
 
-      pub_key_path = alloca (strlen (srcdir) + strlen (pub_key_file) + 2);
+      if (sizeof(pub_key_path) < strlen (srcdir) + strlen (pub_key_file) + 2)
+        abort();
+
       strcpy (pub_key_path, srcdir);
       strcat (pub_key_path, "/");
       strcat (pub_key_path, pub_key_file);
 
-      priv_key_path = alloca (strlen (srcdir) + strlen (priv_key_file) + 2);
+      if (sizeof(priv_key_path) < strlen (srcdir) + strlen (priv_key_file) + 2)
+        abort();
+
       strcpy (priv_key_path, srcdir);
       strcat (priv_key_path, "/");
       strcat (priv_key_path, priv_key_file);
index 92253fd..79a7ad9 100644 (file)
@@ -69,7 +69,7 @@ doit ()
   int err;
   int sockets[2];
   const char *srcdir;
-  char *pub_key_path, *priv_key_path;
+  char pub_key_path[512], priv_key_path[512];
   pid_t child;
 
   gnutls_global_init ();
@@ -86,12 +86,16 @@ doit ()
   if (err != 0)
     fail ("socketpair %s\n", strerror (errno));
 
-  pub_key_path = alloca (strlen (srcdir) + strlen (pub_key_file) + 2);
+  if (sizeof(pub_key_path) < strlen (srcdir) + strlen (pub_key_file) + 2)
+    abort();
+
   strcpy (pub_key_path, srcdir);
   strcat (pub_key_path, "/");
   strcat (pub_key_path, pub_key_file);
 
-  priv_key_path = alloca (strlen (srcdir) + strlen (priv_key_file) + 2);
+  if (sizeof(priv_key_path) < strlen (srcdir) + strlen (priv_key_file) + 2)
+    abort();
+
   strcpy (priv_key_path, srcdir);
   strcat (priv_key_path, "/");
   strcat (priv_key_path, priv_key_file);
index 1e19e05..723f0c8 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -70,14 +87,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -192,6 +212,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -512,6 +537,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -797,7 +823,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -871,6 +896,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1006,8 +1032,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1026,7 +1052,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1257,6 +1282,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index d7626c1..17a835f 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 76d0a28..65e29ca 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 24e4883..734d389 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 3235c8a..c10a4b1 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 6bbec3a..554efa9 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -71,14 +88,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -249,6 +269,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = srn0.c srn1.c srn2.c srn3.c srn4.c srn5.c
 DIST_SOURCES = srn0.c srn1.c srn2.c srn3.c srn4.c srn5.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors = \
@@ -571,6 +596,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -856,7 +882,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -930,6 +955,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1065,8 +1091,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1085,7 +1111,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1316,6 +1341,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 89efb14..c317af2 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -71,14 +88,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -193,6 +213,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -511,6 +536,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -796,7 +822,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -870,6 +895,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1005,8 +1031,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1025,7 +1051,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1256,6 +1281,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 32a5d77..bb9db65 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 8fe35c4..5145568 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -71,14 +88,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -233,6 +253,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = cipher-test.c gendh.c keygen.c
 DIST_SOURCES = cipher-test.c gendh.c keygen.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors = \
@@ -555,6 +580,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -840,7 +866,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -914,6 +939,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1049,8 +1075,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1069,7 +1095,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1300,6 +1325,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 08118ed..fd619f3 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -73,14 +90,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -225,6 +245,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = mini-srp.c
 DIST_SOURCES = mini-srp.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors = \
@@ -547,6 +572,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -832,7 +858,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -906,6 +931,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1041,8 +1067,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1061,7 +1087,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1292,6 +1317,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index 30d72aa..bf95855 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -261,6 +281,11 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(nodist_libecore_la_SOURCES) $(nodist_eagain_cli_SOURCES)
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors = \
@@ -583,6 +608,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -868,7 +894,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -942,6 +967,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1077,8 +1103,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1097,7 +1123,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1328,6 +1353,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
index a3f6a92..c17c513 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # along with this file; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -72,14 +89,17 @@ am__aclocal_m4_deps = $(top_srcdir)/src/libopts/m4/libopts.m4 \
        $(top_srcdir)/gl/m4/exponentf.m4 \
        $(top_srcdir)/gl/m4/exponentl.m4 \
        $(top_srcdir)/gl/m4/extensions.m4 \
+       $(top_srcdir)/gl/m4/extern-inline.m4 \
        $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
        $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
        $(top_srcdir)/gl/m4/frexp.m4 $(top_srcdir)/gl/m4/frexpl.m4 \
        $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \
-       $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/ftell.m4 \
-       $(top_srcdir)/gl/m4/ftello.m4 $(top_srcdir)/gl/m4/ftruncate.m4 \
-       $(top_srcdir)/gl/m4/func.m4 $(top_srcdir)/gl/m4/getaddrinfo.m4 \
+       $(top_srcdir)/gl/m4/fseterr.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+       $(top_srcdir)/gl/m4/ftell.m4 $(top_srcdir)/gl/m4/ftello.m4 \
+       $(top_srcdir)/gl/m4/ftruncate.m4 $(top_srcdir)/gl/m4/func.m4 \
+       $(top_srcdir)/gl/m4/getaddrinfo.m4 \
        $(top_srcdir)/gl/m4/getcwd.m4 $(top_srcdir)/gl/m4/getdelim.m4 \
+       $(top_srcdir)/gl/m4/getdtablesize.m4 \
        $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \
        $(top_srcdir)/gl/m4/getpagesize.m4 \
        $(top_srcdir)/gl/m4/getpass.m4 \
@@ -194,6 +214,11 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +539,7 @@ GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
 GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SELECT = @GNULIB_SELECT@
 GNULIB_SEND = @GNULIB_SEND@
 GNULIB_SENDTO = @GNULIB_SENDTO@
@@ -799,7 +825,6 @@ HAVE_LCHOWN = @HAVE_LCHOWN@
 HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LIBNETTLE = @HAVE_LIBNETTLE@
 HAVE_LIBPTHREAD = @HAVE_LIBPTHREAD@
-HAVE_LIBTASN1 = @HAVE_LIBTASN1@
 HAVE_LIBZ = @HAVE_LIBZ@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
@@ -873,6 +898,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
 HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGACTION = @HAVE_SIGACTION@
@@ -1008,8 +1034,8 @@ LIBPTHREAD_PREFIX = @LIBPTHREAD_PREFIX@
 LIBPTH_PREFIX = @LIBPTH_PREFIX@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
-LIBTASN1 = @LIBTASN1@
-LIBTASN1_PREFIX = @LIBTASN1_PREFIX@
+LIBTASN1_CFLAGS = @LIBTASN1_CFLAGS@
+LIBTASN1_LIBS = @LIBTASN1_LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
@@ -1028,7 +1054,6 @@ LTLIBNETTLE = @LTLIBNETTLE@
 LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBPTHREAD = @LTLIBPTHREAD@
-LTLIBTASN1 = @LTLIBTASN1@
 LTLIBTHREAD = @LTLIBTHREAD@
 LTLIBZ = @LTLIBZ@
 LT_AGE = @LT_AGE@
@@ -1259,6 +1284,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@